首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【精解】EOS智能合约演练

EOS,智能合约,abi,wasm,cleos,eosiocpp,开发调试,钱包,账户,签名权限 热身 本文旨在针对EOS智能合约进行一个完整实操演练,过程中深入熟悉掌握整个EOS智能合约流程...本文会主要跟随EOS官方Wiki智能合约部分进行研究学习,主要分为 开启一个私有链 创建钱包 载入基础IO智能合约支持 创建账户 智能合约学习: token 交易所 智能合约实战: Helloworld...token 为了避免混淆,我们根据上面学习过内容,重新创建一个账户eosio.token专门用来执行token智能合约。...接下来,我们使用这个账户部署eosio.token智能合约,同样通过上面学习到方式:指定路径,指定加密账户{-p eosio.token}: liuwenbin@liuwenbin-H81M-DS2:...但是这种情况下,eosio.token智能合约会要求我们token必须有所有的账户余额,通过计算引用过他们所有交易动作总和。

1.7K60
您找到你想要的搜索结果了吗?
是的
没有找到

【刘文彬】【精解】EOS智能合约演练

,钱包,账户,签名权限 热身 本文旨在针对EOS智能合约进行一个完整实操演练,过程中深入熟悉掌握整个EOS智能合约流程,过程中出现问题也会及时研究并入我们自己知识体系。...本文会主要跟随EOS官方Wiki智能合约部分进行研究学习,主要分为 开启一个私有链 创建钱包 载入基础IO智能合约支持 创建账户 智能合约学习: token 交易所 智能合约实战: Helloworld...token 为了避免混淆,我们根据上面学习过内容,重新创建一个账户eosio.token专门用来执行token智能合约。...接下来,我们使用这个账户部署eosio.token智能合约,同样通过上面学习到方式:指定路径,指定加密账户{-p eosio.token}: liuwenbin@liuwenbin-H81M-DS2:...实战 以上我们提取了eos.io合约三个,进行了部署、学习与操作演练,下面我们将尝试开发自己基于eos智能合约。 eosiocpp构建合约文件系统 eosiocpp:智能合约引导程序工具。

63130

3大“钞级骗局”与真伪 EOS那些猫腻儿!

今天咱们聊聊伪 EOS 及其变种攻击带来安全隐患。 本文会让你在趣味学习同时,写出更加牢固智能合约,防患于未然,保护好你数字加密资产。 寓目暂为实,过者即为虚。...基础知识铺垫 EOS 智能合约架构 EOS 智能合约是由一系列 action 组成,每个 action 代表一条合约条款,以实现条款中具体规则。...执行一个 EOS 智能合约分为制作、部署、调用三个部分。 其中,在部署智能合约这一步,每个EOS智能合约必须实现一个apply()函数,作用是将action请求映射到具体处理函数。...攻击分析: 在EOS 链上通用代币为EOS token,EOS token是由EOSIO部署eosio.token合约生成,但是eosio.token代码是开源,任何eos账户都可以自己部署eosio.token...漏洞分析: 漏洞原因是智能合约处理逻辑transfer函数内缺少对to判断:如果缺少to判断,合约无法判断收到转账是不是自己,可能在没有收到转账情况下继续执行逻辑功能。

61130

eos源码赏析(十一):EOS之从“狼人游戏”看智能合约调用及权限分配(上)

在上篇中主要包括: eosio智能合约通信方式 eosio.token智能合约源码分析 eosio智能合约调用实例 eosio智能合约通信方式 关于eosio智能合约通信方式,官方给出了具体解释,...eosio.token智能合约源码分析 有很多朋友加了我好友之后,最经常问问题就是可以教我怎么在eos上发币么。作为开发人员,如果一心只想着发币我想这种心态还是不成熟。...eosio.token transfer '[ "user", "tester", "25.0000 SYS", "m" ]' -p user@active 在创建eosio.token这个账户之后部署智能合约...图4 require_recipient相关解释 智能合约之间通信 了解了智能合约之间通信方式即内联通信和延迟通信,让我们来了解下两个智能合约之间相互调用。...eosio.token合约部署,及发币、空投、转账等操作,其中涉及到内联通信,及权限校验相关内容。

46820

这样生日礼物, 简直不可思议...

获取 eosio 账户所有合约代码如下: eos.getCode({account_name:"eosio"},callback) 11、获取智能合约 ABI 获取智能合约 ABI 代码如下: eos.getAbi...('contract_name', JSON.parse(abi)) // @returns {Promise} 25、智能合约执行 对智能合约进行调用方法如下。...我们将部署 EOS 附带标准代币,但你可以轻松地修改和自定义 eosio.Token 合约,或从头开始构建自己代币合约。 首先,我们将创建部署代币合约账户。...接下来将向你展示如何利用 react 实现前端与智能合约之间交互。...//账户中看到5 TOK,在user1账户中看到95TOK }); 最后,在前端 html 页面中调用这些函数,就可以完成智能合约交互啦。 试一试,OK了吗?

1.4K20

智能合约没有你想那么智能

智能合约,有时也是非常愚蠢 “smart”一词总会让人觉得智能合约会很智能。然而,真实情况,往往并不是这样。也许,智能合约独特之处就在于不需要第三方确认。...按照合约已既定结果强大执行力是智能合约独特之处,而不是智能合约本身存在什么智能。 ​...然而,事实恰恰相反,智能合约根本不智能智能合约是完全基于制定规则,除了合约之内条条款款,并不会进行其他方面的考虑,这是不符合法律本质。...智能合约,貌似并不简单 受以太坊社区对智能合约大量集中宣传影响,也许你会认为,智能合约只应用于以太坊平台之上,这种看法是错误。...智能合约也是这样,但目前情况是,任何人,包括IT新人,都可以去写智能合约,事实上,有些人并不懂需要什么样安全保障。 从各种已被证明存在缺陷智能合约中就可以清楚地看出这一点。

46830

eos源码赏析(十二):EOS之从“狼人游戏”看智能合约调用及权限分配(下)

而在withdraw中使用action send形式调用eosio.token给分红者或最后中奖者转出一定量eos代币,此处使用了该合约账户active权限。...关于多重签名使用,集中在系统四大合约之一eosio.msig智能合约中,我们有时间再进行讨论。...我们来思考一个问题,假设狼人团队获取了账户useractive权限,他们是否可以通过更新智能合约形式偷偷调用eosio.tokentransfer函数转走usereos代币呢?...也就印证了我们上面所说action发起人必须授权其active权限中加入智能合约账户eosio.code权限,这样针对eosio.token这个合约智能合约才能用action发起人active...不管是合约开发者还是代币持有者,都要时刻对权限授权增加警惕 为了整个生态持续良好发展,智能合约开发者在无法公开源码情况下,上交出智能合约账户部分权限或许是一种很好方式 多重签名是区块链行业发展重要组成部分

40220

写出可升级智能合约

译文出自:登链翻译计划[1] 译者:Alvan[2] 校对:Tiny 熊[3] 随着其自身发展,智能合约已经远非一个基础合约”而已了。现在我们用智能合约创造了一整个生态!...主从合约(Master-Slave contracts) 主从合约智能合约可升级化最基础和易懂技术之一。这个方法就是在部署其他所有合约同时,部署一个主合约( master contract )。...我们只需要把新合约部署上去然后在主合约上修改地址记录,既可以完成合约升级了。这自然不是开发可升级合约最佳方法,但确是最简单。这种方法有很多限制,比如老合约数据和账户很难迁移到新合约。...数据合约做成永久,不可升级。逻辑合约可能多次升级,而数据合约去响应它变化。...希望这篇文章能帮您写出可升级智能合约

71720

关于编写安全智能合约

译文出自:登链翻译计划[1] 译者:翻译小组[2] 校对:Tiny 熊[3] 译者注:本文作者是Matthew Di Ferrante[4], 是 ZK Labs 创始人,也是一个知名智能合约开发者及审计人员...举个例子:现在有多少人在写智能合约时知道 ETH 可以在不调用回退函数情况下被发送到合约中,即使该函数是不可支付(non-payable?)?...有多少智能合约在持有 USDC 时,在其内部逻辑中正确处理了这种情况:USDC 管理员将他们地址列入黑名单,并使所有的转账调用失败或抹去其余额?...简单例子:写一个测试,试图从一个你不持有余额合约中提取余额,确保它恢复原状。...最后,没有比阅读其他人智能合约更好投资回报率了--阅读比你差的人代码,这样你可以从他们错误中学习,来自比你好的人代码,这样你可以看到你可能做错了什么,阅读尽可能多不同来源和领域代码。

39820

solidity 智能合约之间调用

智能合约之间调用 在区块链上,有些功能往往无法通过一个智能合约完成,此时便会用到智能合约之间调用。本篇文章带大家通过具体示例来了解一下智能合约之间调用。...在智能合约编译过程中,有两种情况:调用者和被调用者在一个sol文件中和分别在不同文件中。...同sol文件智能合约调用 在下面的智能合约中,Demo1和Demo在同一个文件中,可进行同时编译,然后逐个发布。...传递第一个参数为Demo1智能合约地址,第二个参数为要设置值。 不同sol文件智能合约调用 在大多数情况下,两个智能合约不存在于同一个sol文件中,那么就需要使用另外一种形式来进行调用。...原文链接:https://www.choupangxia.com/2019/07/30/solidity-智能合约之间调用/

2.6K20

EOS实践篇

eosjs 测试网:http://jungle.cryptolions.io/ docker:https://www.docker.com/get-started 文档/参考 eos官方文档 EOS 智能合约...账号创建管理 账号创建和管理交给插件Scatter,玩家进入游戏时候获取账号,如果没有,则提示玩家创建账号 前端调用合约方法 前端通过eos.contract方法来调用合约方法,通过eos.getTableRows...方法来查询调用结果 关于事件 由于eos合约不包含事件,因此采用轮询机制获取表数据 另外客户端调用合约方法,客户端可以得到具体结果,通过返回正常调用结果来判断方法调用是否成功 关于转账 eos 开发一个记录转账信息智能合约...EOS智能合约开发闯关(3)—-合约内调用另一个合约接口 EOS 智能合约内部调用 EOS 币转账功能 ?...设置合约时候提示找不到路径 原因:在docker中没有该文件 解决方法:以账号test,合约hello为例 cd /todo eosio-cpp -o hello.wasm hello.cpp

2.7K20

智能合约是怎样运作?三分钟读懂智能合约

智能合约能让这一切变得简单很多。智能合约和上述传统合约区别,就在于“智能”,不涉及人类主观想法,一切皆代码。...但如果有了智能合约,一旦男生们猜中,不管瑞秋和莫妮卡怎样耍赖,智能合约代码将自动执行,并把这100美元(真实情况是数字货币)打到男生们账户。...2)一旦编码完成,这份智能合约就被上传到区块链网络上,即全网验证节点都会接收到你和A租房合约。 3)智能合约会定期检查是否存在相关事件和触发条件;满足条件事件将会推送到待验证队列中。...智能合约比淘宝推广还狠,如果预支付以太币不足以支撑整个执行过程,就算进行到半路,合约也会回到初始状态;更郁闷是,消耗以太币也不会退回给合约发起人。 智能合约有什么用?...编者注: [1]以太坊是资历最老智能合约系统,近年还出现其他智能合约平台,比如针对金融机构Symbiont。 [2]在区块链上,智能合约发送给A钥匙是秘钥。

2.6K40

被‘’虐‘’姿势一箩筐: 一文看尽智能合约安全干货, 建议收藏哟!

智能合约代码问题 代码溢出之类漏洞 (狼人杀案例) 这个就不多说了,漏洞细节,就是当时eos版本中 asset 类乘法存在 检查溢出无效问题。...项目方,利用转账通知回调transfer,来执行业务,但是这个 transfer通知,有可能来自 非 eosio.token (俗称假币 假EOS), 所以对 code == eosio.token...同步开奖时被利用智能合约钩子,回滚交易 早期被黑项目中,还存在一些 “错误实践” , 也值得提一下。...有两种方法, 第一种,就是直接在另一个智能合约里发起调用。 第二种,就是改造下你客户端。不要在push aciton时候,去调用abi。...所以,如果你智能合约,仅仅是用来和其他智能合约交互,而不是面向客户用户(cleos、eosjs),那 abi 都可以不用部署。

44331

EOSIO 4.0测试网络启动教程

EOS4.0在昨天已经发布,本片文章将介绍EOS4.0网络搭建过程。 与EOS3.0相比,EOS4.0无疑是具有重要意义预发布版。其中对eosio.system合约更改相当大。...创建token 由于eosio.system已经没有发布代币操作了,所有创建和发放代币只能通过eosio.token合约。...warning: transaction executed locally, but may not be confirmed by the network yet 发布eosio.token合约 cleos...必须创建代币后才能发布合约 > 2. 运行节点主机速度必须块否则,发布合约可能会失败最后内存在16G以上。...2.创建账号是否只能够使用eosio.system合约newaccount 等等。。 希望后来者提出更多问题,也期望后来者能解决问题,谢谢~ 未经允许不得转载,如需转载请联系作者,谢谢!!!

1.6K50

Binance 跨链`Ethereum`智能合约

Binance跨链原子交换分为两种:ETH跨链原子交换合约、基于Ethereum合约ERC20跨链原子交换合约。...两份合约实现上几乎一致,唯一区别在于:ETH作为Ethereum原生token与基于ERC20合约token,转账有些不同。 合约代码 以ETH跨链原子交换合约为例....sender: 该笔院子交换发起者 recipientAddr: 该笔原子交换接收者 swaps: 合约中存储原子交换信息;当指定原子交换被claim或refund时,会从合约中删除该原子交换信息...; 在htlt中,进行一些检查后,将一则原子交换信息存储至合约状态下,更新原子交换信息状态 在claim中,将锁定在合约地址中指定金额发送至接收者账户,更新原子交换信息状态 由合约代码可以看出...在refund中,将锁定在合约地址中指定金额返还给发送者,更新原子交换信息状态 由合约代码可以看出,refund交易任何人都可以发送。

39120

智能合约Gas 优化几个技术

在本博客中将讨论两种 "类型" Gas : 交易 Gas:用户每次与智能合约交互时支付 Gas 量。实现 Gas 高效函数,必须尽可能地减少 Gas 消耗。...部署 Gas :每次部署智能合约时,需要支付 Gas 量。部署智能合约通常只发生一次,尽管如此,仍然可以节省 Gas 也是很有趣。...有时,减少一种 Gas 技术会导致另一种 Gas 增加,这是我们必须处理权衡...... 这是一份清单,在处理你智能合约时应该记住事情,以便节省 Gas。...你将不需要存储所有交易哈希值。 尽量减少链上操作 在智能合约上执行功能,应该只在出于安全、法律或任何其他非常好理由下才添加。...独立部署库合约:包含 public 或外部函数库。这些库被部署一次,然后所有导入这些库智能合约将实际委托给它们调用。这意味着库代码只被部署一次,然后被所有智能合约使用。

1.2K20
领券