0

質問

EVM でトランザクションを成功させるには、何を変更する必要がありますか? 以下のコードのどこが間違っていますか。

私がやった事

Web3 を使用して自分のウォレット アドレスから別のウォレット アドレスにトークンを送信しようとしています。以下は私がこれを試みた方法ですが、私のトランザクションは決して成功しません。

トークン web3 と ABI コードを開始する

//TestAccount01
const TA1 = {
   address: '0x57ece112876fb585c6a2b37114c91be752b7578c',
   privateKey:
      'privatekey',
};

const Web3 = require('web3');
const web3 = new Web3(
   'https://rinkeby.infura.io/v3/api_endpint_url_id'
);

let minABI = [
   // transfer
   {
      constant: false,
      inputs: [
         {
            name: '_to',
            type: 'address',
         },
         {
            name: '_value',
            type: 'uint256',
         },
      ],
      name: 'transfer',
      outputs: [
         {
            name: '',
            type: 'bool',
         },
      ],
      type: 'function',
   },
];

トークン TXN をアドレスに送信する関数

async function sendToken() {
   let contract = new web3.eth.Contract(
      minABI,
      //contract address
      '0xD92E713d051C37EbB2561803a3b5FBAbc4962431'
   );

   let tx = await contract.methods.transfer(TA1.address, 1000);

   let data = tx.encodeABI();
   let gas = 61963;
   let gasPrice = 1649999980;

   console.log('creating transaction');
   let transaction = await web3.eth.accounts.signTransaction(
      {
         data,
         gas,
         gasPrice,
      },
      'my private key'
   );

   console.log('sending transaction');
   let recipt = await web3.eth
      .sendSignedTransaction(transaction.rawTransaction)
      .catch(err => {
         console.log('error in sending tx');
         console.error(err);
      });

   console.log(recipt);
}

await sendToken();

これにより、エラーが表示され、 https://rinkeby.etherscan.io/tx/0x7f0ca267163219d2c8c783e9fdc8ec3a4c1d1c0c1c52d6a405c3763cac240d9cで自分で確認できる魔女Error: Transaction has been reverted by the EVM: のトランザクションハッシュが表示されます0x7f0ca267163219d2c8c783e9fdc8ec3a4c1d1c0c1c52d6a405c3763cac240d9c

アドレスから送信するトークンを取得するために多くの変数 (特にガスと Ga) を変更しようとしましたTA1.addressが、トランザクションは EVM によって元に戻され続けます

別物。ガス制限をどれだけ高く設定しても、Etherscan はそれを 100% 使用したと言っていることに気付きました。ガス制限を非常に高い数値に設定しましたが、使用率は常に 100% です。

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1