1703878439
1703878440
Oraclize提供了一个Web IDE,使用它就可以编写、编译和测试以Oraclize为基础的应用(参见http://DApp.Oraclize.it/browser-Solidity/)。
1703878441
1703878442
如果访问该链接,将注意到它和Browser Solidity看起来一模一样,它实际上就是Browser Solidity添加的一个额外功能。为了理解这个功能是什么,我们需要更深入地理解Browser Solidity。
1703878443
1703878444
Browser Solidity不仅允许用户为合约编写、编译和生成web3.js代码,还允许测试合约。到目前为止,为了测试合约,我们设置一个以太坊节点并向它发送交易。但是Browser Solidity可以不用连接至任何节点就执行合约,所有操作都在内存中进行。之所以能够这样,是因为使用了ethereumjs-vm(EVM的一种JavaScript实现)。用户可以使用ethereumjs-vm创建自己的EVM和运行字节码,也可以通过提供目标URL来配置Browser Solidity,以使用以太坊节点。UI的信息量很大,用户可以自己尝试一遍。
1703878445
1703878446
Oraclize Web IDE的特殊之处在于,它在in-memory执行环境下部署Oraclize合约,这样就不需要连接到测试网或者主网节点,但是使用Browser Solidity时必须连接到测试网或者主网节点,以测试Oraclize API。
1703878447
1703878448
1703878449
如需更多关于Oraclize的资源,请访问https://dev.Oraclize.it/。
1703878450
1703878451
1703878452
1703878453
1703878455
区块链项目开发指南 7.2 处理字符串
1703878456
1703878457
在Solidity中,处理字符串不像在其他高级编程语言(例如JavaScript、Python等)中那么简单。因此,许多Solidity开发人员使用多种库和合约,以简化字符串的处理。
1703878458
1703878459
strings库是最常见的字符串库。它通过把字符串转换为slice(切片),来进行添加、连接、分割、比较等操作。slice是一个包含字符串长度和字符串地址的数据类型。由于一个slice只需要指定offset(位移)和length(长度),因此复制和操作slices比复制和操作它们所引用的字符串要高效得多。
1703878460
1703878461
为了进一步降低gas成本,slice上的大部分函数在需要返回slice时通常会修改原slice,而非分配一个新的slice,例如,s.split(”.”)要返回第一个”.“之前的文本,将修改s以包含”.“之后的字符串部分。假设不想修改原slice,就可以使用.copy()进行备份,例如s.copy().split(”.”)。注意避免循环使用copy,因为Solidity没有内存管理,copy将导致分配很多临时的、之后被舍弃的slices。
1703878462
1703878463
复制字符串数据的函数将返回字符串,而不是slices;如果需要,这些字符串可以返回到slices用于后续处理。
1703878464
1703878465
下面来看几个使用strings库处理字符串的示例:
1703878466
1703878467
1703878468
1703878469
1703878470
该程序代码无须解释。
1703878471
1703878472
返回两个slices的函数共有两个版本:nonallocating版本(用第二个slice作实参,在适当位置进行修改)和allocating版本(分配并返回第二个slice),示例如下:
1703878473
1703878474
1703878475
1703878476
1703878477
1703878478
要更深入地学习字符串库,可以访问https://github.com/Arachnid/Solidity-stringutils。
1703878479
1703878480
1703878481
1703878482
1703878484
区块链项目开发指南 7.3 创建投注合约
1703878485
1703878486
在投注应用中,两个人可以就一场足球比赛押注,一个支持主队,另一个支持客队。他们押注同样多的钱,赢家拿走所有钱。如果比赛结果是平局,则各自拿回自己的钱。
1703878487
1703878488
我们将使用FastestLiveScores API读取比赛结果。它提供一个免费接口,允许每小时免费进行100个请求。首先,创建一个账户,然后生成一个API key。为了创建一个账户,访问https://customer.fastestlivescores.com/register,一旦建立了账户,API key就在https://customer.fastestlivescores.com/可视。可以在https://docs.crowdscores.com/找到API文档。
[
上一页 ]
[ :1.703878439e+09 ]
[
下一页 ]