105月

EOS智能合约开发及授权(一)转账

围绕周转:

观察本文从前,前提您早已能启动单植物的节EOSIO node,假使你不克不及得体的巧妙地控制,请参阅正式的维基。:

巧妙地控制零碎:MACOS,EOSIO版本号:

定做和约研制与份量,单植物的节巧妙地控制,这事一道菜更简略。,印象类似于,像这样,上面的一道菜是在心不在焉围绕的情境下中止的。。

巧妙地控制途径:

1。启动EOS围绕。,发现两组密码

启动NODE:

nodeos –data-dir tmpdata -e -p eosio –plugin eosio::wallet_api_plugin –plugin eosio::chain_api_plugin–plugin eosio::history_api_plugin –max-transaction-time=1000(控制使历时过久设置1000)

发现KEY:

cleos create key

2。应用发现的公钥,发现用户,发现布置合约账户cactus,转帐从

create account eosio EOS6JowfuTT7CZe4ResHqNvEWAnuYjCT68gw97KxsHY99sUk2t1j8 EOS6JowfuTT7CZe4ResHqNvEWAnuYjCT68gw97KxsHY99sUk2t1j8

create account eosio cactus EOS6JowfuTT7CZe4ResHqNvEWAnuYjCT68gw97KxsHY99sUk2t1j8 EOS6JowfuTT7CZe4ResHqNvEWAnuYjCT68gw97KxsHY99sUk2t1j8

create account eosio from EOS6JowfuTT7CZe4ResHqNvEWAnuYjCT68gw97KxsHY99sUk2t1j8 EOS6JowfuTT7CZe4ResHqNvEWAnuYjCT68gw97KxsHY99sUk2t1j8

  解锁和包或钱袋相似的东西

cleos wallet unlock –password PW5JCM32pkoqwfNwfMnLih8Gh5s5edbQyys6vP3Ci9NxL2x6EKecq

  导入私钥

导入用户公有密码:

cleos wallet import –private-key 5JC3dp6z2imXiAnq4M4JAQXetRntU23QLoFNZJxwBB1yxPVsSW3

导入eosio的private_key:

cleos wallet import –private-key 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

三。签订和约

   到eosio列于表上/build/programs/cleos

cleos set contract ../../contracts/

   发现预兆:预示或象征:

cleos push action create ”[“eosio”,”1000000000.0000 SYS”,0,0,0]” -p

   发行预兆:预示或象征

cleos push action issue ”[“eosio”,”1000000000.0000 SYS”,成绩 -p eosio

因此,根底任务实现,可以先中止植物的节植物的节。,开端排自定义让和约。


4。发现自定义让和约

开源软件列于表上盟约,新建列于表上,发现源文档,此合约应用了inline_action的程度调动合约的transfer行使职责,inline 明确的指的是智能和约编码C的效能。。举措(XX)发送,明确的决定因素的理性是:Action(permssion_level, other_contract_account_name, method, ARGS)

action(permission_level{from, n(锻炼),

            N(), N(使分娩), 

            STD::, to,quantity,STD::仙人球 传送)发送

此处,和约调动 转变程度从报告转变报告。,像这样,强制的接纳用户的积极分子批准。,不然,你不克不及巧妙地控制。,明确的的辩解在8个地区明确的阐明。。

在意:列于表上名与主发送名类似于。,应用列于表上名布置布置和约

5。土地WAST和WASM的发生,ABI发送

cd 到EOSIO列于表上/和约

产额.wast、Wasm发送,假定的机的重读和应用

eosiocpp -o .wast

产额ABI发送

eosiocpp -g .abi

将此命令演技到发送夹 copy到build/contracts/

cp -R ../ ../../build/contracts/    

6。重新开始植物的节植物的节。:

nodeos –data-dir tmpdata -e -p eosio –plugin eosio::wallet_api_plugin –plugin eosio::chain_api_plugin–plugin eosio::history_api_plugin –max-transaction-time=1000(控制使历时过久设置1000) 

7。布置和约

将自定义和约布置到报告仙人球,此刻,界石CD eosio主列于表上/build/contracts :    

cleos  set contract cactus

您可以音符,下图显示了输入。

8。辩解

    里面的靠动力行进

附加里面的特别释放,用于巩固内联 法制变得安全,智能和约调动智能和约编码时,,编码无法获取一点私钥。,心不在焉程度签字声称的批准。,即没程度作证该智能合约有着action声称的靠动力行进from@active。此刻,零碎编码确保了变得安全。,像这样,该零碎筹集了假定的靠动力行进。。明确的逻辑演技时间,靠动力行进反省逻辑 ,仙人球@评论员早已引起。。那么authorization_manager只需化验from@active设想辩解给cactus@那就够了。关口这种假定的的靠动力行进作证处理了和约调动合约的靠动力行进检测成绩。

假使图标是白色的,证实和约布置报告的靠动力行进,控制内联 举措调动时呈现变得安全成绩。

       合约账户辩解

智能和约切中要害和约让,把预兆:预示或象征从里面翻摆脱。,强制的关口辩解。,纵然,和约的演技需求和约的批准。,像这样,从@锻炼靠动力行进强制的决定给仙人球@演技。

cleos set account permission from active {门槛 : 1, “keys” : [{“key”:”EOS5CoAP5TqEzvzVjdhCfDrhffZ7JdpN7dnxgEqjAoVd2n4vRa5Zb”,”weight”:1}], “accounts” : [ {靠动力行进〉:{假冒者〉:仙人球,批准:},”weight”:1}]}” owner -p 从@物主

演技水果:

   检查A的靠动力行进知识:

cleos get account from

演技水果如图所示。

9。应用和约让报告。

cleos push action cactus transfer [源自],”cactus”,”10.0000 零碎 -p from

巧妙地控制水果:

因此,自定义和约使转移的编码和辩解巧妙地控制的完毕。

发表评论

电子邮件地址不会被公开。 必填项已用*标注