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
setWeb3Provider(provider)
: set web3 provider to the specific providersetWeb3ToCurrentProvider()
: set web3 provider to current provider, often used for injected web3contractName(source)
: return the contract name from contract source codeloadContract(path)
: return the source code in contract file (ex. myContract.sol)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.contractObject(source, contractAddress)
: return a contrat object to interact with the contract once it is deployed onto the blockchainetherBalance(contract)
: return the ether amount in the specified smart contract
Dependencies version
- ethereumjs-tx: ^1.3.3
- fs: 0.0.1-security
- solc: ^0.4.15
- web3: 0.20.1 (the newest version is too unstable)