[英]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_SENDER
和PERSON_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.