ERC20トークンのWeb3の例とコード


  1. ERC20トークンの作成

最初に、Solidityプログラミング言語を使用してERC20トークンのスマートコントラクトを作成します。以下は、簡単なERC20トークンのスマートコントラクトの例です。

pragma solidity ^0.8.0;
contract MyToken {
    string public name;
    string public symbol;
    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
    constructor(uint256 initialSupply, string memory tokenName, string memory tokenSymbol) {
        totalSupply = initialSupply;
        balanceOf[msg.sender] = initialSupply;
        name = tokenName;
        symbol = tokenSymbol;
    }
    function transfer(address to, uint256 amount) public {
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        balanceOf[msg.sender] -= amount;
        balanceOf[to] += amount;
    }
}
  1. トークンのデプロイ

上記のスマートコントラクトをデプロイするために、Web3を使用します。以下は、JavaScriptでのWeb3の例です。

const Web3 = require('web3');
const contractABI = [/* コントラクトのABI */];
const contractAddress = 'デプロイしたコントラクトのアドレス';
// Web3プロバイダーの設定
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
// コントラクトのインスタンスを作成
const contract = new web3.eth.Contract(contractABI, contractAddress);
// トークンのバランスを取得する例
async function getBalance(address) {
    const balance = await contract.methods.balanceOf(address).call();
    return balance;
}
// バランスの取得例
getBalance('0x123456789...').then(balance => {
    console.log('バランス:', balance);
}).catch(error => {
    console.error('エラー:', error);
});
// トークンの転送の例
async function transferTokens(to, amount) {
    const accounts = await web3.eth.getAccounts();
    await contract.methods.transfer(to, amount).send({ from: accounts[0] });
    console.log('転送が完了しました');
}
// トークンの転送の呼び出し例
transferTokens('0x987654321...', 100).catch(error => {
    console.error('エラー:', error);
});

以上が、ERC20トークンのWeb3の例とコードです。これらの例を使用して、ERC20トークンの作成、デプロイ、バランスの取得、トークンの転送などを行うことができます。