EOS环境搭建 + 自带合约介绍 + HelloWorld合约(3)
鉴于网上有很多EOS内置合约的介绍,我就直接介绍HelloWorld合约的编写和实现吧。
因为坑太多,ubuntu我又不是很懂,所以怕忘了,就赶紧记上。
15.我们自此就已经有了一个账号了。接下来我们要做的事情是
(1)编写helloworld合约,C++。
(2)eosiocpp工具编译合约
(3)启动合约
下面就继续我们的坑逼之路
(1)编写合约
打开终端,创建文件夹eos-workspace,在这个文件夹内创建hello,在hello文件夹创建一个空文档,叫做hello.cpp。(此处注意,在后面设置合约的时候,他定位是定的hello文件夹,而不是这个合约文件,所以最好文件夹名字与您的合约名字相同。)
然后,在hello.cpp中编写helloworld合约,见下图
(2)编译合约
编译合约是需要两步,及两条命令。使用到的工具是自带的eosiocpp。但是不知道为什么我不能直接使用eosiocpp命令,可能是前面编译源码的时候出现问题。所以,我必须到eos/build/tools文件夹下才可以使用eosiocpp命令。
命令:cd eos/build/tools
命令:./eosiocpp -o ~/eos-workspace/hello/hello.wast ~/eos-workspace/hello/hello.cpp 把cpp文件编译成wast文件,在eos-workspace/hello这个目录里。
命令:./eosiocpp -g ~/eos-workspace/hello/hello.abi ~/eos-workspace/hello/hello.cpp 把cpp文件编译成abi文件,在eos-workspace/hello这个目录里。
最后编译好,就会有四个文件在hello文件夹内:如下图
(3)启动合约
①首先把刚才的创建的钱包解锁了
命令:./cleos wallet unlock -n lkxing --password 你的钱包密码
②给账户设置合约
命令:./cleos set contract lkxaccount ~/eos-workspace/hello -p lkxaccount
设置合约,定位一定只是到文件夹,而不是文件。 -p lkxaccount 意思为,lkxaccount授权。
③使用合约
命令:./cleos push action lkxaccount hi '["keybman"]' -p lkxaccount
意思为:启动lkxaccount内的合约的hi方法,输入参数 keybman
成功!
此时你可以看一下你节点出块的那个终端,他打印了一个 Hello,keybman。
真的要吐血了!哪怕是在写这个笔记的时候,也出现了一些坑。大家共同努力,一起进步!