以太坊发展过程中里程碑式技术,bitgo的新版合约测试代码
发布于 3 年前 作者 insightcj 1169 次浏览 来自 以太坊

BitGo的新版智能合约,create2技术  GitHub在这里 下面有测试代码,看合约加测试就会了。 这个解决了很多问题,共享经济的等等应用场景。

终于做出来了,代码在这里:

const forwardAddress = ‘0xc9967AD91f3db4c6Ba4A50aC7D74aCa229e4A2C0’; const forwardFactory = ‘0x24F24Fbd10848Eb8F57FaAAF289c06Ad305FF9a3’; const parentAddress = ‘0xAfC28904Fc9fFbA207181e60a183716af4e5bce2’; const util = require(‘ethereumjs-util’); const abi = require(‘ethereumjs-abi’);

const getNextContractAddressCreate2 = (address, salt, initCode) => { const addressBuffer = Buffer.from(util.stripHexPrefix(address), ‘hex’); const initCodeBuffer = Buffer.from(util.stripHexPrefix(initCode), ‘hex’); return util.toChecksumAddress( util.bufferToHex(util.generateAddress2(addressBuffer, salt, initCodeBuffer)) ); };

const getInitCode = (targetAddress) => { const target = util .stripHexPrefix(targetAddress.toLowerCase()) .padStart(40, ‘0’); return 0x3d602d80600a3d3981f3363d3d373d3d3d363d73${target}5af43d82803e903d91602b57fd5bf3; };

const createForwarder = async ( factory, implementationAddress, parent, salt ) => { const inputSalt = util.setLengthLeft( Buffer.from(util.stripHexPrefix(salt), ‘hex’), 32 ); const calculationSalt = abi.soliditySHA3( [‘address’, ‘bytes32’], [parent, inputSalt] ); const initCode = getInitCode( util.stripHexPrefix(implementationAddress) ); const forwarderAddress = getNextContractAddressCreate2( forwardFactory, calculationSalt, initCode ); console.log(parent, inputSalt, inputSalt.toString(‘hex’)); // await factory.createForwarder(parent, inputSalt, { from: sender }); return forwarderAddress; };

const testFirst = async () => { const salt = ‘0x1234’; const _forwarderAddress = await createForwarder( forwardFactory, forwardAddress, parentAddress, salt ); console.log(_forwarderAddress); };

testFirst();

测试结果:下面两个图产生的本地forward地址和未来在链上生成的是一样的: 0xb7A8d9F4524e59eBfdA5BC2a7DE14E4dEA945800 Screen Shot 2021-02-10 at 17.19.49.png

Screen Shot 2021-02-10 at 17.20.18.png

欢迎使用OKX交易所
17 回复

收藏了,以后懂了技术再去看

@heyxbb 收藏太多东西了,小心爆仓啊

@mikepittbo 哈哈哈哈哈 不会吧

@mikepittbo 过年了说点吉利话!!

我也要收藏这个帖子

感谢楼主分享, 收藏收藏,以后有时间再慢慢看

感谢财经哥的分享,以后在慢慢细细的品品

感謝財哥分享,雖然看不太懂,哈,但還是覺得很厲害的感覺,會好好努力繼續學習的

收藏了,虽然看不太懂,但是版主太厉害了~~敬佩~我还是多看看版主的视频 多学习学习先

感谢老大分享,虽然完全看不懂,反正老大牛逼就完事儿了

这个代码还是不怎么看得懂,得加油学习了

现在的收益确实不错的,现在买到正规矿池的算力或者布局矿机都是比囤币强的, 问题:如果想要慢慢学技术又没推荐的流程

直接贴代码啊,楼主大佬也太硬核了。大家压力大了

@letcoin 确实太硬核了,我一个学文科的,看见代码就一阵眩晕啊,哈哈哈。

回到顶部