gpt4 book ai didi

使用安全帽通过 Uniswap 流动性配置测试代币

转载 作者:行者123 更新时间:2023-12-05 01:28:30 26 4
gpt4 key购买 nike

我正在尝试 fork Safemoon(或者实际上是 NotSafeMoon),并将其用作学习智能合约开发的工具。 (我有大量您可能称之为“Web 2.0”的开发经验)。

假设我的构造函数中有这样的东西:

constructor () {
_rOwned[_msgSender()] = _rTotal;
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); // binance PANCAKE V2
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

当我使用 npx hardhat test 运行测试时,出现以下故障:

Compilation finished successfully


TestToken contract
Deployment
1) "before each" hook for "Has the right name"


0 passing (807ms)
1 failing

1) TestToken contract
"before each" hook for "Has the right name":
Error: Transaction reverted: function call to a non-contract account

现在,这确实很有意义,毕竟我正在尝试调用 Pancakeswap v2 路由器合约。我如何绕过这个限制?有没有办法将路由器的契约(Contract)地址作为环境变量注入(inject)?我可以使用 UniswapRouter 的模拟构造函数吗?一般来说,这类事情如何通过智能合约开发以可测试的方式完成(以及如何测试)?

最佳答案

hardhat 测试将合约部署到 hardhat 本地网络(默认情况下)。这个本地网络只有很少的预注资和解锁账户,但没有部署智能合约。包括 PancakeSwap v2 路由器(0x10ED43...)。


无需部署和配置路由器合约的本地副本及其所有依赖项,您可以创建一个从生产 BSC 派生的新安全帽网络。

https://hardhat.org/guides/mainnet-forking.html

这将运行一个具有可用路由器合约的本地网络,但您的操作只会影响本地网络(而不是主网)。

关于使用安全帽通过 Uniswap 流动性配置测试代币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68514907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com