【区块链2.0实战学习笔记】————15、链上部署智能合约

1、编写智能合约

pragma solidity ^0.4.4;
 
contract test { 
 
    function multiply(uint a) returns(uint d){
 
        return a * 7;
    }
 
}

2、获取智能合约字节码和abi

将上面的合约代码拷贝到https://remix.ethereum.org,编译,然后拷贝字节码

Bytecode:

{
    "object": "606060405260788060106000396000f360606040526000357c010000000000000000000000000000000000000000000000000000000090048063c6888fa1146039576035565b6002565b34600257605160048080359060200190919050506067565b6040518082815260200191505060405180910390f35b60006007820290506073565b91905056",
    "opcodes": "PUSH1 0x60 PUSH1 0x40 MSTORE PUSH1 0x78 DUP1 PUSH1 0x10 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN PUSH1 0x60 PUSH1 0x40 MSTORE PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xC6888FA1 EQ PUSH1 0x39 JUMPI PUSH1 0x35 JUMP JUMPDEST PUSH1 0x2 JUMP JUMPDEST CALLVALUE PUSH1 0x2 JUMPI PUSH1 0x51 PUSH1 0x4 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP2 SWAP1 POP POP PUSH1 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 MUL SWAP1 POP PUSH1 0x73 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP ",
    "sourceMap": "28:106:0:-;;;;;;;;;",
    "linkReferences": {}
}

ABI:

[
    {
        "constant": false,
        "inputs": [
            {
                "name": "a",
                "type": "uint256"
            }
        ],
        "name": "multiply",
        "outputs": [
            {
                "name": "d",
                "type": "uint256"
            }
        ],
        "payable": false,
        "type": "function",
        "stateMutability": "nonpayable"
    }
]

3、在bejson中转义成字符串

http://www.bejson.com/jsonviewernew/

[{\"constant\":false,\"inputs\":[{\"name\":\"a\",\"type\":\"uint256\"}],\"name\":\"multiply\",\"outputs\":[{\"name\":\"d\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\",\"stateMutability\":\"nonpayable\"}]

4、通过abi创建合约对象

5、检查coinbase账户余额

注:如果这里的余额大于0,则继续,否则,开始挖矿,等你觉得差不多的时候再停止就OK1

6、解锁coinbase账户,并使用coinbase账户来部署合约

7、预估手续费

注:字节码前面需要添加0x。手续费大概为84251gas

8、部署合约(这里增加一个回调函数为了看效果)

9、现在开始挖矿

从上面的截图中可以看到矿工成功挖到矿,而我们的合约也已经部署了,现在我们停止挖矿,之后查看合约是否真的部署成功!

9、验证合约部署成功与否

10、调用合约方法

既然我们通过上面的方法成功部署了合约,那么下面我们看看合约是否可以被成功的调用与执行:

至此,实验效果完成!

 

写作不易,请作者喝杯奶茶吧!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLy_鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值