首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为usdt交换令牌,创建函数发送1个usdt和接收1个令牌。

为usdt交换令牌,创建函数发送1个usdt和接收1个令牌。
EN

Ethereum用户
提问于 2021-02-21 21:50:52
回答 1查看 1.6K关注 0票数 1

我需要创建一个智能契约,其中我的每个令牌将被交换为1个usdt,也就是说,一个人将1个usdt发送到该函数,而他将一个令牌添加到他的资产负债表中。我该怎么做呢?对于eth来说,这很简单,但是usdt对我来说是一个挑战。有人举过例子吗?我如何在这个网络上进行测试?

EN

回答 1

Ethereum用户

发布于 2021-02-22 04:28:03

对于ERC20,通常的方法是要求用户批准您的合同。

你必须从前端开始做这样的事情。

代码语言:javascript
复制
// USDT parameters
const erc20Token = new web3.eth.Contract(USDT_ABI, USDT_ADDRESS)

// Contract that will receive USDT
const recipient = new web3.eth.Contract(RECIPIENT_ABI, RECIPIENT_ADDRESS)

// Require user approval
await erc20Token.approve(AMOUNT, RECIPIENT_ADDRESS).send({from: USER_ADDRESS})

// Call function on recipient to retrieve USDT
await recipient.deposit(AMOUNT).send({from: USER_ADDRESS})

Smart合同

代码语言:javascript
复制
contract Recipient {
    // USDT token
    IERC20 usdt = IERC20(USDT_ADDRESS);

    // Token to send for USDT
    IERC20 token = IERC20(token);

    function deposit(uint256 amount) public {
        // Transfer amount USDT tokens from msg.sender to contract
        usdt.transferFrom(msg.sender, address(this), amount);

        // Send amount tokens to msg.sender
        token.transfer(msg.sender, amount);
    }
}
票数 4
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/93770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档