Solidity

當使用乙太幣從 ERC20 呼叫 transfer 時,交易通過並被探勘,但令牌不顯示

  • August 1, 2021

我對這一切都很陌生,如果有人能指導我到一個我可以更深入地閱讀有關此內容並給我解釋為什麼這不起作用以及解決方案為何起作用的地方,我將不勝感激。非常感謝。

const USDT2 = new ethers.Contract(contract address, abi,wallet);//The wallet itself works fine
async function geterc20(){
   const options = {
       gasLimit: 150000,
       gasPrice: ethers.utils.parseUnits('10.0', 'gwei')
   };
   
  await USDT2.transfer(ACCOUNT2_PUBLIC_KEY,ethers.BigNumber.from(100),options).then(res=>{
       console.log(res);
   }).catch(error=>{
       console.log(ethers.utils.toUtf8String(Object.values(error.body)));
   });

   
}

當您ethers.BigNumber.from(100)在使用十進制值 6 的 USDT 合約上轉移價值時,您實際上是在轉移 0.0001 USDT。

您應該使用ethers.utils.parseUnits('100', 6)來生成代表 100 USDT 的適當值。

現在,即使從技術上講您發送了 0.0001 USDT,但根據您用於查看餘額的使用者界面,它可能會四捨五入為 2 位小數。

如果您想驗證您可以使用USDT2.balanceOf(ACCOUNT2_PUBLIC_KEY)查看確切的餘額。

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