首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与其他ERC20令牌交换ERC20令牌

与其他ERC20令牌交换ERC20令牌
EN

Stack Overflow用户
提问于 2019-09-24 04:17:05
回答 2查看 285关注 0票数 1

我有两个ERC20令牌。合同被设计为标准的ERC20。以下是两个令牌作为示例-

代码语言:javascript
复制
AUDC --> Contract address: (0xContractAUDC)
         Wallet Address:   (0xWalletAUDC)
DAI  --> Contract address: (0xContractDAI)
         Wallet Address:   (0xWalletDAI)

我想将一些DAI从wallet 0xWalletDAI转移到0xWalletAUDC,以接收转换后的AUDC作为回报(我有两个wallet的私钥)。

寻找一些帮助,以了解如何实现这一点。如果需要的话,我会尽力提供更多的信息。

我正在使用ethers.js v4.0与区块链交互。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-02 12:09:57

我找到了使用ethers.js实现这一点的解决方案-

代码语言:javascript
复制
const ethers = require('ethers');

let provider = ethers.getDefaultProvider();

// WALLETS
const DAIUserWalletObj = new ethers.Wallet(DAIUserPrivateKey, provider);
const AUDCWalletObj = new ethers.Wallet(AUDCPrivateKey, provider);

//CONTRACTS
const contractDAI = new ethers.Contract(DAIContractAddress, DAIContractABI, provider);
constractDAI = contractDAI.connect(DAIUserWalletObj);
const contractAUDC = new ethers.Contract(AUDCContractAddress, AUDCContractABI, provider);
contractAUDC = contractAUDC.connect(AUDCWalletObj);

let overRide = { gasLimit: 7500000 }
let numDAITokens = 20;  // Just for example
let numOfAUDCTokens = 40; // Just for example
const receipt1 = await contractDAI.transfer(AUDCContractAddress, numDAITokens, overRide);
const receipt2 = await contractAUDC.transfer(DAIUserWalletAddress, numOfAUDCTokens, overRide);
console.log(receipt1);
console.log(receipt2);
票数 1
EN

Stack Overflow用户

发布于 2021-08-13 18:22:14

如果这些是ERC20令牌,那么您将需要自己进行记帐。我建议你有单独的合同来处理这件事。

这是an example,可以根据您的用例重新调整用途。

其思想是将一个ERC20令牌发送到执行交换计算的合约,然后将资金从一个令牌移动到另一个令牌。

如果从DAI到AUD的汇率没有波动,那么您可以在合约中将此汇率作为一个常数。不过,这很可能会波动,在这种情况下,交换将会稍微复杂一些。

像UniSwap这样的去中心化交易所使用一种使用可用流动性作为输入的算法自动处理交易所。做这样的事情是一个相当复杂的过程。

另一种选择是拥有一个可由特定签名者调用的approve函数。该签名者可以是作为交换工作流一部分的集中式服务。

或者,您可以使用oracles定期更新两个令牌之间的汇率,但这将耗费大量资源,而且除非您有大量数据,否则可能不是最具成本效益的选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58069633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档