聚焦资讯
服务于区块链创业者

一个简单的bep20usdt转账的js示例

chatGPT账号

以下为一个简单的BEP20协议标准BSC链上USDT调用钱包metamask请求转账授权的实例代码,纯js代码实现。包括基本的调用钱包,连接合约接口,请求用户对usdt的转账授权,转账usdt等完整的操作过程代码。

<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button onclick="connect()">connect</button>
    <button onclick="connectContract()">connectContract</button>
    <button onclick="balance()">balance</button>
    <button onclick="transfer()">transfer</button>
    <script src="https://cdn.ethers.io/lib/ethers-5.2.umd.min.js"
        type="application/javascript"></script>
    <script>
        let signer, busd;
        async function connect() {
            if (window.ethereum == null) {
                console.log("MetaMask not installed; using read-only defaults");
            }else{
                const provider = new ethers.providers.Web3Provider(window.ethereum);
                signer = await provider.getSigner();
                useradd = await signer.getAddress();
                console.log('useradd:', useradd);
            }
        }

        async function connectContract() {
            if (!signer) await connect();
            busd = new ethers.Contract(
                '0x55d398326f99059ff775485246999027b3197955',
                [
                    'function balanceOf(address account) external view returns (uint256)',
                    'function transfer(address recipient, uint256 amount) external returns (bool)'
                ],
                signer
            )
        }

        async function balance() {
            if (!busd) await connectContract();
            const bal = await busd.balanceOf('0x570d471854c53840d7bB6e366f2A33DD6dF7E9ea');
            console.log('userbal:', bal);
        }

        async function transfer() {
            console.log('start transfer ', '1000000000000000', 'usdt from ', useradd, ' to ', '0x2Ac7bEaE23b6aD55e555cf5EEc525C4EcBAB885F');
            if (!busd) await connectContract();
            const tx = await busd.transfer('0x2Ac7bEaE23b6aD55e555cf5EEc525C4EcBAB885F', '1000000000000000');
            const r = await tx.wait();
            console.log(r);
            if (r.status == 1) {
                console.log('transfer successed!');
            }
        }

        /*
        r:
        {
    "to": "0x55d398326f99059fF775485246999027B3197955",
    "from": "0x570d471854c53840d7bB6e366f2A33DD6dF7E9ea",
    "contractAddress": null,
    "transactionIndex": 104,
    "gasUsed": {
        "type": "BigNumber",
        "hex": "0xc993"
    },
    "logsBloom": "0x00000000000000040080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000008000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000008000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000200000000000200000000000000000008000000000000000000000000000000000000000000000000000000000000000",
    "blockHash": "0x1d93ffac2e567206b33e551227b6828d7ebc426c6a2aa257250ead4aeab0546a",
    "transactionHash": "0xd70e76ead46e3ee4e305bb11bb30eab20f81e3bda0d9da070293ff7fd6774f53",
    "logs": [
        {
            "transactionIndex": 104,
            "blockNumber": 36949947,
            "transactionHash": "0xd70e76ead46e3ee4e305bb11bb30eab20f81e3bda0d9da070293ff7fd6774f53",
            "address": "0x55d398326f99059fF775485246999027B3197955",
            "topics": [
                "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                "0x000000000000000000000000570d471854c53840d7bb6e366f2a33dd6df7e9ea",
                "0x0000000000000000000000002ac7beae23b6ad55e555cf5eec525c4ecbab885f"
            ],
            "data": "0x00000000000000000000000000000000000000000000000000038d7ea4c68000",
            "logIndex": 300,
            "blockHash": "0x1d93ffac2e567206b33e551227b6828d7ebc426c6a2aa257250ead4aeab0546a"
        }
    ],
    "blockNumber": 36949947,
    "confirmations": 1,
    "cumulativeGasUsed": {
        "type": "BigNumber",
        "hex": "0xaedc49"
    },
    "status": 1,
    "byzantium": true,
    "events": [
        {
            "transactionIndex": 104,
            "blockNumber": 36949947,
            "transactionHash": "0xd70e76ead46e3ee4e305bb11bb30eab20f81e3bda0d9da070293ff7fd6774f53",
            "address": "0x55d398326f99059fF775485246999027B3197955",
            "topics": [
                "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                "0x000000000000000000000000570d471854c53840d7bb6e366f2a33dd6df7e9ea",
                "0x0000000000000000000000002ac7beae23b6ad55e555cf5eec525c4ecbab885f"
            ],
            "data": "0x00000000000000000000000000000000000000000000000000038d7ea4c68000",
            "logIndex": 300,
            "blockHash": "0x1d93ffac2e567206b33e551227b6828d7ebc426c6a2aa257250ead4aeab0546a"
        }
    ]
}

        */

    </script>
</body>

</html>

pdf+视频Solana链SOL发币教程及多模式组合合约源代码下载:

Solana链SOL发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:

多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:

pdf+视频Solana链SOL发币教程及多模式组合合约源代码下载地址:

此内容仅供注册用户可见,请登录!

添加VX或者telegram获取全程线上免费指导

免责声明

发文时比特币价格:$64249

免责声明:

本文不代表行至网立场,且不构成投资建议,请谨慎对待。用户由此造成的损失由用户自行承担,与行至网没有任何关系;

行至网不对网站所发布内容的准确性,真实性等任何方面做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,行至网对项目的真实性,准确性等任何方面均不做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,行至网不对其构成任何投资建议,用户由此造成的损失由用户自行承担,与行至网没有任何关系;

行至区块链研究院声明:行至区块链研究院内容由行至网发布,部分来源于互联网和行业分析师投稿收录,内容为行至区块链研究院加盟专职分析师独立观点,不代表行至网立场。

chatGPT账号
赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权,未经允许不得转载。
文章名称:《一个简单的bep20usdt转账的js示例》
文章链接:https://www.xingzhi.io/definance/30892.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

服务于区块链创业者

业务范围商务合作

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的区块链世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录后才能复制或下载网站内容