智能合约的部署之后需要记住abi和合约地址,方便以后调用。
定义合约的abi
var abi = [ { "constant": false, "inputs": [ { "name": "s", "type": "uint256" } ], "name": "getSum", "outputs": [ { "name": "Sum", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" } ]定义合约地址:(注:此处需要 “” 号);var address = “0x8926f6d1f56c66f80ceda0a89930dff5aa2b3928”实例化合约:
var contract = eth.contract(abi).at(address);此处可能需要解锁账户地址:(注:需要加 “” 号)
personal.unlockAccount("0x8926f6d1f56c66f80ceda0a89930dff5aa2b3928");至此,智能合约实例化完毕。

调用智能合约有两种方式:
contract.getSum.call().call()用call被调用的时候,功能在以太坊虚拟机被本地执行,功能返回值和功能一起返回。用这种方式进行的调用不会记录在区块链上,因此也不会改变合约内部状态。这种调用方式被称为恒定功能调用。
contract.getSum.sendTranstaction(参数,{from:"0x12345555"})
.sendTransaction()当用sendTransaction被调用的时候,功能调用通过发送交易来执行。需要花费以太币来发送,调用会永久记录在区块链上。用这种方式进行的调用返回值是交易散表。

本文介绍智能合约部署后的关键步骤,包括记住ABI和合约地址,以及如何实例化合约。文中详细解释了两种调用合约的方式:使用call进行的恒定功能调用,以及使用sendTransaction进行的交易调用。
1218

被折叠的 条评论
为什么被折叠?



