簡體   English   中英

使用 web3 + 元掩碼發送自定義令牌

[英]Sending a custom token with web3 + metamask

我正在嘗試使用 web3 發送帶有元掩碼 API 的 USDT(自定義令牌)。 我正在 ReactJS 上開發,我可以從元掩碼中正確檢測到用戶帳戶。

我的代碼:

const web3 = new Web3(window.web3.currentProvider);
const contractInstance = new web3.eth.Contract(abiUSDT, addressUSDT);
const amount = 200;
const tx = {
from: 'PERSON_SENDER',
to: contractInstance._address,
data: contractInstance.methods.transfer('PERSON_RECIPIENT', web3.utils.toWei( amount.toString() ) ).encodeABI(),
        }
        web3.eth.sendTransaction(tx).then(res => {
            console.log("res",res)
        }).catch(err => {
            console.log("err",err)
        });

顯然,我將名為PERSON_SENDERPERSON_RECIPIENT的字段替換為:

PERSON_SENDER : 用戶帳戶

PERSON_RECIPIENT : 我的個人賬戶(我想存入這個賬戶)

使用此配置,當我簽入 etherscan 時,交易不會發送到我的帳戶(並且金額已發送到合約的地址),並且用戶傳達說,如果他為真實帳戶使用真實值,metamask 不會不要碰他的金額。

我制作了相同的代碼並且它有效。 但請檢查正確的 ABI 和地址格式。 地址“FROM”必須與連接元掩碼的地址相同。

我的代碼:

 var contractABI = [{"YOUR TOKEN ABI HERE"}]

addressUSDT = "0xf80e1C5e28226cAfc7B0Ee6729E553ef54A7774F"; //IT'S OTHER CONTRACT              
const web3 = new Web3(window.web3.currentProvider);
const contractInstance = new web3.eth.Contract(contractABI, addressUSDT);
const amount = 200;
const tx = {
from: '0x2acd4F50ee814d5092d9FC892d2BDEab91f5594d',
to: contractInstance._address,
data: contractInstance.methods.transfer('0xe54356F4e1aD4215973E7180BeBb4644a07DF508', web3.utils.toWei( amount.toString() ) ).encodeABI(),
        }
        web3.eth.sendTransaction(tx).then(res => {
            console.log("res",res)
        }).catch(err => {
            console.log("err",err)
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM