0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RPCエンドポイントを利用してウォレットを実装してみる #2送金

Posted at

テーマ設定

RPCエンドポイントを利用してウォレットの送金機能を実装してみる。

前提環境

web3のインストール

npm install web3

実装

以下の内容で.envファイルを作成してください。

PRIVATE_KEY=*********** # 送信元アドレスにペアリングする秘密鍵

以下の内容でsend_transaction.jsファイルを作成してください。

require('dotenv').config(); // dotenvの読み込み
const { Web3 } = require('web3');

// RPCエンドポイント
const rpcURL = 'https://gateway-api.cabinet-node.com/{access_token}';
const web3 = new Web3(rpcURL);

// ウォレット情報
const senderAddress = SENDER_WALLET_ADDRESS'; // 送信元アドレス
const privateKey = process.env.PRIVATE_KEY; // 環境変数から秘密鍵を取得
const toAddress = ’RECEIVER_WALLET_ADDRESS'; // 送信先アドレス
const amountToSend = '0.01'; // 送金額(Ether)

async function sendTransaction() {
   try {
       // nonce を取得
       const nonce = await web3.eth.getTransactionCount(senderAddress, 'latest');

       // トランザクションオブジェクトを作成
       const tx = {
           from: senderAddress,
           to: toAddress,
           value: web3.utils.toWei(amountToSend, 'ether'),
           gas: 2000000, // ガスリミット
           gasPrice: await web3.eth.getGasPrice(),
           nonce: nonce,
           chainId: 11155111 // Ethereum Sepolia
       };

       // トランザクションに署名
       const signedTx = await web3.eth.accounts.signTransaction(tx, privateKey);

       // トランザクションを送信
       const receipt = await web3.eth.sendSignedTransaction(signedTx.rawTransaction);
       console.log('Transaction receipt:', receipt);
   } catch (error) {
       console.error('Error sending transaction:', error);
   }
}

sendTransaction();

実行

node send_transaction.js

結果の例

Transaction receip: ********************
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?