问题标签 [uniswap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
111 浏览

javascript - 无法使用 Uniswap V3 SwapRouter 进行多跳交换,SwapRouter.exactInput(params) 抛出“UNPREDICTABLE_GAS_LIMIT”

我正在尝试使用新的 Uniswap V3 合约实现交换。我正在使用 Quoter 合同来获取报价,并使用 SwapRouter 来进行交换。例如,如果我使用直接交换的方法(当令牌有池时)--

一切正常,但是当我尝试使用多跳引号和多跳交换时,如果失败

为了编码参数,我使用了测试中的 uniswap 示例:

最后是我为引号做的示例代码:

和交换:

路径应该是 [address,fee,address,fee,address] ,我不确定它的编码,但没有找到任何其他示例。实际上没有找到任何进行 uniswap v3 多跳交换的示例,即使在 UniDocs 中也有 Trade 示例和单池交换......有人能指出我在这里做错了什么吗?引用和交换时同样的错误:/

我正在 Polygon Mainnet 上进行测试,我可以直接在 uniswap 上进行相同的路径交换,但是当我触发脚本时它会失败......

0 投票
1 回答
28 浏览

solidity - uniswap 程序集 create2 函数如何工作?

我正在通过 uniswap 代码试图理解代码,其中大部分都很清楚,但我确实有几个问题。

在这个函数中:

有流水线。根据solidity docs,这部署了一个新合同,因为我不明白它是如何工作的,它从哪里获取代码等等。

那么是否有可能以某种方式将其“翻译”为坚固性?非常感谢!

0 投票
0 回答
23 浏览

python-3.x - 如何从流动性池对中解码代币?

https://etherscan.io/tx/0x81ba1e834346b2f47187827184a87c8b432fc714bb54e7c3abb14fddbff98136

上面是一个示例交易。Unoswap 是 1 英寸的交换功能。其中一个参数是pools并且在示例pools中等于 0x80000000000000003b6d03402d2104906e109cee827b64238fa5ba604621b5a0。从 Etherscan 我可以看到交换是从WETHDog Collar Token。使用 Web3,如何从“pool”参数中获取代币的合约地址?

0 投票
1 回答
115 浏览

blockchain - 为什么我会收到此错误错误:事务在没有原因字符串的情况下恢复。尝试在 uniswap 上交换代币时?

我正在尝试在 unsing hardhat 的主网分叉上交换 uniswap 上的令牌,但我收到此错误:Error: Transaction reverted without a reason string. 我真的不知道为什么。

这是我的交换功能:

这是一个简单的功能,它应该可以工作。这就是我所说的:

感谢您的回答!

这里还有我打电话的地址,只是为了验证它们是否正确,但我很确定它们是:

0 投票
2 回答
37 浏览

solidity - Uniswap 错误:在 `_transfer` 函数中调用 `fpoSwap.swapAndLiquidity()` 时发生传输错误

这些代码向 uniswap 合约发送交易并收取一定的手续费,为资金池增加流动性。但是,我不知道“_transfer”函数哪里出错了,它调用fpoSwap.swapAndLiquidity()了“FPOSwap”合约中的一个方法。它会引发传输错误。我分别测试了“swapTokensForToken”函数和“addLiquidity”函数,都通过了。这是传递函数

这是 fpoSwap 合约

0 投票
1 回答
18 浏览

ethereum - 如何使用 web3js 从不同的交易所获取历史掉期数据

![这就是我想要实现的][1]

web3.eth.getTransaction() 没有提供我正在寻找的数据我想获取从代币到代币的交换历史数据以及金额,感谢您提前提供帮助。我在下面发布了一张图片

https://i.stack.imgur.com/hJXaQ.jpg

0 投票
0 回答
20 浏览

blockchain - 在 DEX 上获取代币交易的实时价格和交易量数据(适用于 EVM 兼容链)

我想获取 DEX 中代币交易的实时价格和交易量数据以显示在网站上,考虑到当前流行的 Web3 开发平台(如 Moralis)不支持相关网络(Metis-Andromeda),我将如何实现这一点. 指向正确方向的指针会对我有好处。

0 投票
1 回答
29 浏览

solidity - Uniswap V2 ERC20 代币稳固性代码:代币名称是硬编码的吗?

我正在重新实现 Uniswap v2 合约,但我无法弄清楚这一点。

https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol

所以,据我了解:

如果在添加流动性时不存在交易对/流动性池,UniswapFactory.sol 会创建一个新的 LP 池合约。

这个矿池合约 UniswapV2pair.sol 本身就是一个 ERC20 合约。但是,我对它继承的 UniswapV2ERC20 合约有一些疑问。

https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2ERC20.sol

似乎名称和符号被硬编码到合同中

,因此当从前端向流动性矿池合约调用“name”时,它将始终返回字符串“Uniswap V2”,无论底层 LP 代币是什么(如 DAI-ETH、USDC-ETH.. 等)。

我对此的理解正确吗?我知道功能应该没问题,因为所有这些 Pair Liquidity 池合约都部署为单独的合约,但对我来说,名称和符号不能只是设置为“DAI-ETH LP”之类的东西,这对我来说似乎有点奇怪。构造函数而不是全部作为相同的“uniswap v2”。

谢谢

0 投票
0 回答
37 浏览

ethereum - 尝试通过 web3py 在 uniswap v3 上增加流动性

我正在 Ropsten 上尝试此代码,但一直失败:

交易失败:https ://ropsten.etherscan.io/tx/0xc2f3d6ffff164df331dd4b46fc65dadc5dba8f135f6e13ef1cd383a73a2d0c4b

0 投票
0 回答
22 浏览

solidity - 多次调用 swapExactETHForTokens 后事务退出并出现错误(状态 0)

我正在分叉的本地环境中尝试 UniswapV2(ganache --fork [mainnet]。我能够部署自己的代币,与位于分叉上的 uniswapv2 合约进行交互,并为代币/eth 对增加流动性。接下来我可以swapExactETHForTokens从任意测试中做一个帐户,但是当再次尝试交换时,它给了我:

我已经看过的内容:

  1. 设置适当的批准(自发送 eth 以来没有)
  2. 账户有足够的余额(是的,测试账户 1000 eth)
  3. 合约错误:代币合约是 ERC20 默认代币。

确实在寻找有关此错误源自何处的一些线索,代码在这里共享很多,因此我为其创建了一个存储库,可以在以下位置找到:https://github.com/4compu/TestToken

任何帮助表示赞赏。