CentOS 7 环境 web3安装 及 对象的创建_m0_47233175的博客-CSDN博客https://blog.csdn.net/m0_47233175/article/details/121960931还未安装web3环境,请参照以上博文
1.创建 abi对象 保存合约编译后的abi文件
var abi = [{"inputs":[],"name":"getData","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"pureAdd","outputs":[{"internalType":"uint256","name":"sum","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"newData","type":"uint256"}],"name":"setData","outputs":[],"stateMutability":"nonpayable","type":"function"}]
注:等式右边请输入你自己智能合约的abi
将 .sol 文件编译为 abi 文件,请执行以下代码
solcjs --abi SimpleStorage.sol
solcjs的安装请参照以下博文
CentOS 7 环境 npm及solc的配置安装_m0_47233175的博客-CSDN博客https://blog.csdn.net/m0_47233175/article/details/1219597782.创建合约实例
var Contract = web3.eth.contract(abi)
3.创建对象保存智能合约的字节码
var byteCodes = '0x'+'608060405234801561001057600080fd5b50610266806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633bc5de30146100465780635b4b73a914610064578063aea3f28c14610080575b600080fd5b61004e6100b0565b60405161005b91906100f2565b60405180910390f35b61007e6004803603810190610079919061013e565b6100b9565b005b61009a6004803603810190610095919061016b565b6100c3565b6040516100a791906100f2565b60405180910390f35b60008054905090565b8060008190555050565b600081836100d191906101da565b905092915050565b6000819050919050565b6100ec816100d9565b82525050565b600060208201905061010760008301846100e3565b92915050565b600080fd5b61011b816100d9565b811461012657600080fd5b50565b60008135905061013881610112565b92915050565b6000602082840312156101545761015361010d565b5b600061016284828501610129565b91505092915050565b600080604083850312156101825761018161010d565b5b600061019085828601610129565b92505060206101a185828601610129565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006101e5826100d9565b91506101f0836100d9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610225576102246101ab565b5b82820190509291505056fea2646970667358221220285cd0219738571b50d7f92ff2d9fe2bff2a520218860de30eaebb5d92a678cb64736f6c634300080a0033'
注:等式右边请输入你自己智能合约的bin,并加上 ' 0x ' 。
将 .sol 文件编译为 bin 文件,请执行以下代码
solcjs --bin SimpleStorage.sol
4.创建一个部署合约的交易对象
var deployTxObject = {from:web3.eth.accounts[0],data: byteCodes, gas:1000000}
5.提交部署合约的交易
var contractInstance = Contract.new(deployTxObject)
若已经部署过该合约,合约已经有address,则使用地址初始化合约实例
var contractInstance = Contract.at(address)