mcpField
B
Bankr Dev - Arbitrary Transactions

Bankr Dev - Arbitrary Transactions

github.com/bankrbot開発88370 回インストール31 週間前に更新
リポジトリ

Bankr Dev - Arbitrary Transactions について

Bankr Dev - Arbitrary Transactionsは、Bankr API経由で生のEVMトランザクションを送信する開発者向けスキルです。宛先、calldata、送金額、チェーンIDを指定し、コントラクト呼び出しやデータ付き送金を行えます。

主な機能

  1. 01事前構築したcalldataの送信
  2. 02カスタムコントラクト呼び出し
  3. 03calldata付きの送金
  4. 04チェーンと取引項目の指定

活用シーン

  1. 01エンコード済みコントラクト取引の送信
  2. 02コントラクト関数の呼び出し
  3. 03calldata実行を伴う送金

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bankrbot/claude-plugins --skill bankr-dev---arbitrary-transactions

インストール後、Claude Code で/bankr-dev---arbitrary-transactionsを入力して読み込まれたか確認します。

詳細

任意トランザクション機能

Bankr API を使用して、明示的な calldata を含む生の EVM トランザクションを送信します。

できること

操作説明
calldata の送信サポート対象の任意のチェーンで、事前に構築した calldata を実行します
カスタムコントラクト呼び出し生の関数呼び出しを使用して、任意のコントラクトとやり取りします
データ付きの送金calldata を実行しながら ETH/MATIC を送信します

JSON スキーマ

{
  "to": "0x...",
  "data": "0x...",
  "value": "0",
  "chainId": 8453
}
フィールド型必須説明
tostringはいコントラクトアドレス(0x + 40 桁の 16 進数)
datastringはいcalldata(0x + 16 進数、または空の場合は "0x")
valuestringはい文字列形式の Wei 額
chainIdnumberはい対象チェーン(1、137、または 8453)

サポート対象チェーン

チェーンチェーン ID
Ethereum1
Polygon137
Base8453
Unichain130

使用方法

import { execute } from "./bankr-client";

// Submit arbitrary transaction
const txJson = {
  to: "0x1234567890abcdef1234567890abcdef12345678",
  data: "0xa9059cbb...",
  value: "0",
  chainId: 8453
};

await execute(`Submit this transaction: ${JSON.stringify(txJson)}`);

統合パターン

import { execute } from "./bankr-client";

interface ArbitraryTx {
  to: string;
  data: string;
  value: string;
  chainId: number;
}

async function submitArbitraryTx(tx: ArbitraryTx): Promise<void> {
  // Validate before submission
  if (!tx.to.match(/^0x[a-fA-F0-9]{40}$/)) {
    throw new Error("Invalid address format");
  }
  if (!tx.data.startsWith("0x")) {
    throw new Error("Calldata must start with 0x");
  }
  if (![1, 137, 8453, 130].includes(tx.chainId)) {
    throw new Error("Unsupported chain");
  }

  const prompt = `Submit this transaction: ${JSON.stringify(tx)}`;
  await execute(prompt);
}

// Example: ERC-20 transfer
await submitArbitraryTx({
  to: "0xTokenContractAddress...",
  data: "0xa9059cbb000000000000000000000000...", // transfer(address,uint256)
  value: "0",
  chainId: 8453
});

エラー処理

try {
  await submitArbitraryTx(tx);
} catch (error) {
  if (error.message.includes("reverted")) {
    // Transaction reverted - check calldata encoding
    console.error("Transaction reverted:", error);
  } else if (error.message.includes("insufficient")) {
    // Not enough funds for gas + value
    console.error("Insufficient funds:", error);
  } else if (error.message.includes("unsupported")) {
    // Chain not supported
    console.error("Unsupported chain:", error);
  }
}

関連スキル

  • bankr-client-patterns - クライアントのセットアップと execute 関数
  • bankr-api-basics - API の基本
  • bankr-token-trading - より高度な取引操作

コメント