Solidity

接受多個 ERC20 代幣

  • July 30, 2021

我一直在做我的一個小項目,使用者可以向某個活動捐贈乙太幣以達到某個目標,但我想進一步擴展這個項目,並希望允許使用者捐贈多個 ERC20 代幣。

因此,假設使用者聲明他只在他的競選活動中接受 DAI,但捐贈者的賬戶中只有 WETH。

我需要在我的項目中實施什麼來使用 ERC20 代幣進行交易?(我問這個是因為到目前為止我已經在兩個地址之間進行了簡單的 ETH 交易)

我如何將 WETH 換成 DAI(在這種情況下),我什至如何讓那些 ERC20 代幣來測試它是否有效,因為我在 Rinkeby 測試網上做這個項目?

我一直在閱讀有關 Uniswap 路由器的資訊,但我不知道我是否可以在 Rinkeby 上做到這一點。

uniswap 路由器在 Rinkeby 上的地址與它在主網上的地址相同(可能要仔細檢查一下,但我很確定這是對的)。你要做的是創建一個相當簡單的智能合約,它有一個函式可以接受任何token(令牌合約地址)和amount(一個 uint)作為輸入,amounttoken使用者錢包轉移到智能合約(使用 ERC20stransferFrom函式) ,然後在uniswap路由器上使用swapExactTokensForTokens(或者swapExactTokensForTokensSupportingFeeOnTransferTokens如果您計劃支持那種令牌)將其交換為目標令牌(在您的情況下為DAI),然後獲取自己的目標令牌餘額,最後將其發送到目標地址

引用自:https://ethereum.stackexchange.com/questions/106311