鹅厂之区块链(6)-智能合约调用(实例化)

智能合约的部署之后需要记住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被调用的时候,功能调用通过发送交易来执行。需要花费以太币来发送,调用会永久记录在区块链上。用这种方式进行的调用返回值是交易散表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值