草庐IT

钻石合约

全部标签

基于区块链智能合约的疫苗溯源系统

绪论该系统基于以太坊的Solidity进行智能合约开发,并通过hardhat进行部署在了本机,通过Mocha和Chai进行了单元测试的编写,同时提供了一个基于React的前端界面与用户进行交互。区块链的介绍不难看出,区块链技术对现有的经济社会产生了巨大的影响。在未来,将会出现越来越多的成熟的应用。同时,区块链技术的发展也将会对人类的互联网活动产生巨大影响。根据区块链体系弱中心化的特性,未来区块链系统架构将是构建多中心化的体系。随着区块链应用的不断扩大,未来区块链技术也将应用到更多的行业中。此外,区块链技术具有通过链式存储数据与合约,只能读取和写入,不能篡改的特点,这也给智能合约的社会化带来了无

Java智能合约工具包|Java调用智能合约|Java调用ERC20、ERC721、ERC1155合约

Magician-ContractsTools是一个用于调用智能合约的工具包,你可以非常容易地在Java程序中调用智能合约进行查询和写入操作。有三个内置的标准合约模板,分别是ERC20、ERC721和ERC1155,如果你需要调用这三个合约中的标准函数,可以帮助你非常快速地完成工作。除了内置的合同模板外,如果你需要调用自定义的合同函数也是很容易的。一、导入依赖dependency>groupId>com.github.yuyenews/groupId>artifactId>Magician-ContractsTools/artifactId>version>1.0.0/version>/dep

truffle 创建测试合约并部署到测试网络

1、npm安装trufflenpminstall-gtruffle2、创建truffle项目mkdirimooc-on-blockchain-truffle&&cdimooc-on-blockchain-truffle3、初始化truffle目录,会生成如下几个目录contracts存放.sol合约文件migrations部署脚本目录test测试文件目录truffle-config.jstruffle配置文件%truffleinit%ls-lcontractsmigrationstesttruffle-config.js4、编译合约编译合约以后会生成build目录,存放编译好生成的合约的jso

go - 在 Go 中构建原始以太坊交易 - 合约函数调用

我正在修改go-ethereum,以便能够使用我们正在创建的token处理合并挖掘。因此,每当矿工使用我们的geth版本运行和挖掘时,如果他们找到一个区block,他们将通过我们的合约收到X数量的代币。契约(Contract)的建立是为了处理向区block的矿工发放奖励。我只需要修改go-ethereum来处理在合约中添加调用奖励函数的交易,并在提交block之前将其添加到tx池中。在go-ethereum中,我在miner包中添加了一个新的go文件token_claim.go。查看miner.go文件,似乎我需要添加此代码以在/go-ethereum-1.6.7/miner/work

go - 在 Go 中构建原始以太坊交易 - 合约函数调用

我正在修改go-ethereum,以便能够使用我们正在创建的token处理合并挖掘。因此,每当矿工使用我们的geth版本运行和挖掘时,如果他们找到一个区block,他们将通过我们的合约收到X数量的代币。契约(Contract)的建立是为了处理向区block的矿工发放奖励。我只需要修改go-ethereum来处理在合约中添加调用奖励函数的交易,并在提交block之前将其添加到tx池中。在go-ethereum中,我在miner包中添加了一个新的go文件token_claim.go。查看miner.go文件,似乎我需要添加此代码以在/go-ethereum-1.6.7/miner/work

智能合约BSC添加流动性

一、制定比率我们想要代币具有买卖的功能,需要先制定好代币和USDT/BNB的汇率,并添加pool的流动性后,才能够进行买卖。我们首先打开薄饼,制定代币的汇率,点击增加流动性,将我们的合约地址复制进去,下面可以看到薄饼已经出现了SbZilla的名称,此时点击导入即可,这里会有一个未知来源确认的弹窗,我们勾选上我了解,点击导入。例如我们想定义汇率为是十万个SbZilla来兑换1USDT。那么,我们在流动性池子中就填写好数值即可,如下:  确认本次的gas费用:二、流动性池子汇率添加完成后,继续点击添加池子,由于是测试,我们这里只添加1U的资金作为底池,这里也可以验证,我们刚刚定义的10万比1的汇率

调用智能合约报错分析小技巧 Error: execution reverted

前端在调试调用合约的时候经常会遇到合约revert的情况,大部分区块浏览器只会显示executionreverted,并不会把具体原因告诉我们。这个时候一般会去找合约大哥帮忙分析错误,但是合约大哥是怎么分析报错的呢?这篇文章给你一个解题方法。直接上代码constmain=async(txHash)=>{consttx=awaitprovider.getTransaction(txHash)if(!tx){console.log('txnotfound')}else{constcode=awaitprovider.call(tx)console.log('revertreason:',code)

史上最全的智能合约--扣税,分红,加池子,回流,黑白名单,防机器人,增发,丢权限之分红,加池子

前面一章分享了智能合约扣税的原理,以及用什么方法实现扣税的,下面这篇文章,分享一下自动分红以为加池子的方法和注意事项。废话不多说,先上代码。//feihongpool这个变量是指预留在合约中的预分红的币的数量。_maxfeihong这个变量是指预留在合约的币达到什么样的数量之后分红。if(fenhongpool>=_maxfenhong){//这个例子是对所有的lp分红,那么,在fenhongpool变量之后,为什么要多乘以一个10的18次方呢,这里要特别说明一下,如果lp总的有1万个,fenhongpool是200个,那么,如果除了之后,就变成一个小于1的值了,在solidity中,不支持小

【合约安全】重入 (Reentrancy) 攻击

前言重入(Reentrancy)攻击是合约攻击中比较常见的攻击手段。黑客利用自己攻击合约中的fallback()函数(或者具有回调逻辑的函数)和多余的gas将合约中本不属于自己的ETH转走。重入攻击的本质是:黑客合约在一次交易中不断的回调被攻击合约的函数,造成资产损失。fallback()fallback函数,回退函数,是合约里的特殊无名函数,有且仅有一个。它在合约调用没有匹配到函数签名被调用;调用(call,send,transfer)没有带任何数据时被自动调用;第一种情况多见于函数调用错误,第二种情况多见于原生币(链币)转账。我们再来看看官方文档的内容:如果在一个对合约调用中,没有sele

数字藏品指南系列第五篇:验证智能合约

文章目录前言警告获取智能合约完整代码验证合约总结捐赠渠道前言在以太坊区块浏览器上验证智能合约有很多好处:作为合约的创建者,它可以提升我们的开发体验,因为对于验证通过的智能合约,浏览器上可以直接阅读合约代码,并且提供了接入合约的方法。对于参与合约的用户来言,由于合约代码开源可见,用户可以自行鉴定代码的安全性,这样无形之间建造了合约和用户之间的信任。对于数字藏品来说,通过唯一的tokenid,任何人都可以查询到对应的元数据,提供了验证tokenid的方法。警告本指南仅供学习交流使用,不得用于违法用途,如果侵犯了国家法律,责任自负。获取智能合约完整代码验证智能合约需要提供合约代码,这里我们采用的是单