A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天无意中看到以前以太坊学习时记录的一篇发币笔记,同时以太坊系列正好缺一篇智能合约实战的文章,于是整理了下并以EOS代币以太坊智能合约为例讲述了整个部署调用流程,算是补全吧,有需要的自取。

安装MetaMask

    用到了Chrome应用商店,科学上网是必须的,当然大家也可以通过下载插件文件离线安装。



进入主界面后可以选择网络,然后通过keystore和私钥方式导入钱包



    如果要连接本地私有网络,geth需要增加 --rpccorsdomain参数

geth --networkid 15 --rpc --rpcaddr 0.0.0.0 --rpcapi personal,db,eth,net,web3,miner --nodiscover --rpccorsdomain --rpcport 8545 --rpccorsdomain *



浏览器打开在线编辑工具BrowserSolidity



        https://remix.ethereum.org/  ,速度有点,可能还需要科学上网



编译发币智能合约并部署



        下面我们就以EOS代币智能合约为例来实践,EOS代币智能合约代码可以在下面链接找到:

https://etherscan.io/address/0x8 ... eb3b3b78ecfdb0#code

拷贝里面的代码粘贴到BrowserSolidity即可,BrowserSolidity会自动编译。





然后我们就开始部署,部署有两种方式

1)MetaMask部署

    我们点击Run选项选择Injected Web3,如果显示没有网络连接,请在MetaMask切换网络刷新。

然后点击Deploy和确认即完成部署。Account栏请选择你要发起合约部署的账号,部署合约的费用都会从这个账号

扣掉。









2)手工部署



       将上面的代码输入到geth命令终端即可。

        这里需要注意的是将web3.eth.accounts[0]改成你自己的钱包地址,且部署前先解锁

> personal.unlockAccount(eth.accounts[0])

调用智能合约的函数

    EOS代币比较特殊,初始化后TotalSupply=0, 需要调用mint函数增加供应,下面就以mint为例来说明

    也有很多方法

web3js等第三方库

这个网上有很多教程,我这里就不说了

使用BrowserSolidity





使用geth命令行

1)  使用abi构造合约结构

var dsauthContract = web3.eth.contract([{"constant":false,"inputs":

。。。。。。

[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]);

           上面的代码还是从BrowserSolidity拷贝的

           2)使用合约地址创建合约实例

contractInstance = dsauthContract.at("0x692a70d2e424a56d2c6c27aa97d1a86395877b3a");

            上面的地址是创建合约时返回的,就是智能合约的地址

          3)调用mint, transfer方法

contractInstance.transfer(1000000000000, {from:eth.accounts[0]});

//eth.accounts[0]账号有EOS后,给accounts[1]转账

contractInstance.transfer(eth.accounts[1], 1000, {from:eth.accounts[0]});


---------------------
【转载】
作者:ITleaks
原文:https://blog.csdn.net/ITleaks/article/details/81697345


2 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马