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