Erc-20

網頁地址到地址的簡單轉賬erc20

  • April 1, 2022

這是問題:

ETC…..

沒有單一的答案顯示誰來做

$$ not just here $$. 我只是在尋找最簡單的方法來在網頁上從一個地址轉移到另一個地址。 我需要前端部分。有可能做到嗎?

我在測試網上複製了 USDT。我也使用元遮罩 web3。

我理解“ transferFrom 方法只有在所有者(_from 地址)允許接收者(_to 地址)提取資金時才有效,這是通過呼叫函式approve(address _spender, uint256 _value) 來完成的。

您首先需要將您的錢包連接到網頁(和庫)。我喜歡使用Ethers作為 web3 客戶端庫。

const provider = new ethers.providers.Web3Provider(window.ethereum, "any");
// Prompt user for account connections
await provider.send("eth_requestAccounts", []);
const signer = provider.getSigner();
console.log("Account:", await signer.getAddress());

在此之後,您需要為您的合約創建介面。為此,您需要兩件事,地址ABI

地址是 ERC20 代幣的部署地址。此處使用USDC 代幣地址,並指定代幣中的小數位數。

const CONTRACT_ADDRESS = "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48";
const DECIMALS = 6

合約的完整 ABI 是在從 Solidity 建構時創建的。如果幸運的話,您可以從 Etherscan 獲得它。

幸運的是,ERC20 合約是標準化的,因此您可以使用通用 ERC20 abi,​​或者只提供您正在使用的單一方法的 ABI,如下所示:

const abi = ["function transfer(address to, uint amount)"];

現在您可以啟動合約並呼叫該Transfer方法。

const erc20 = new ethers.Contract(CONTRACT_ADDRESS, abi, provider);

const transferToAddress = "0x..."
const amount = ethers.utils.parseUnits("1", DECIMALS);

await erc20.transfer(transferToAddress, amount)

這是一個有效的程式碼框

密碼箱截圖

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