npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

deploy_smart_contract

v1.0.10

Published

This module can be used to deploy smart contracts on any networks (ex. testnets, private net). Your wallet address and public key is needed to sign the transactions of contract creation. The default network connected is rinkeby testnet, but you can always

Downloads

13

Readme

Overview

This module can be used to deploy smart contracts on any networks (ex. testnets, private net). Your wallet address and public key is needed to sign the transactions of contract creation. The default network connected is rinkeby testnet, but you can always change it as you wish by the setWeb3Provider(your_provider) and setWeb3ToCurrentProvider() function (listed below).

Sample Use Case

var helper = require('deploy_smart_contract');
//helper.setWeb3ToCurrentProvider(); // optional, write this if you're connecting to injected web3 like MetaMask or parity

source = "contract test { function hi() public returns (uint256) { return 123; }}";
address = "your_account_address";
pkey = "your_private_key";
// After sending the transaction, wait for the contract to be mined. The waiting time depends on the connected network (can be around 30 seconds)
helper.sendRawTnx(source, address, pkey, function (err, address) { 
    if (!err) {
        var contractAddress = address;
        console.log('contract address:', address);
        var myContract = helper.contractObject(source, contractAddress); 
        console.log('call contract method:', myContract.hi.call().toNumber()); 
        var contractBalance = helper.etherBalance(myContract);
        console.log('contract balance:', contractBalance); 
    } else console.error(err);
});

Output

contract address: 'your_contract_address'
call contract method: 123
contract balance: 0 // if no ether is sent to this contract address

Notes

  • In the second line, run helper.setWeb3Provider('your_provider') instead if you want to specify other provider
  • If no web3 provider is defined, the default is the rinkeby infura endpoint(your smart contract will be deployed onto the rinkeby testnet)
  • If you are using the rinkeby testnet, feel free to go to https://rinkeby.etherscan.io/address/<your_account_address> to see the transactions' status

List of available functions

  1. setWeb3Provider(provider): set web3 provider to the specific provider
  2. setWeb3ToCurrentProvider(): set web3 provider to current provider, often used for injected web3
  3. contractName(source): return the contract name from contract source code
  4. loadContract(path): return the source code in contract file (ex. myContract.sol)
  5. sendRawTnx(source, address, pkey, _callback): given the contract source code, address to sign transaction, and private key string, create the contract object and deploy it onto the blockchain. After the contract is mined, the callback function will be fired to get the contract address. Note: The contract mining status is checked every 2 seconds.
  6. contractObject(source, contractAddress): return a contrat object to interact with the contract once it is deployed onto the blockchain
  7. etherBalance(contract): return the ether amount in the specified smart contract

Dependencies version

  1. ethereumjs-tx: ^1.3.3
  2. fs: 0.0.1-security
  3. solc: ^0.4.15
  4. web3: 0.20.1 (the newest version is too unstable)