zetrix_ws_submit_transaction
Submit blockchain transactions via WebSocket to receive real-time status updates and confirmations for Zetrix network operations.
Instructions
Submit transaction via WebSocket and get real-time status updates
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| transaction | Yes | Transaction object | |
| signatures | Yes | Array of signature objects with public_key and sign_data | |
| trigger | No | Optional trigger object |
Implementation Reference
- src/zetrix-websocket.ts:247-278 (handler)Core handler logic: constructs CHAIN_SUBMITTRANSACTION WebSocket message and awaits tx_status response with timeout handling.submitTransaction( transaction: any, signatures: Array<{ public_key: string; sign_data: string }>, trigger?: any ): Promise<ChainTxStatusResponse> { return new Promise((resolve, reject) => { if (!this.isRegistered) { reject(new Error("WebSocket not registered. Call registerAndConnect first.")); return; } const request: ChainSubmitTransactionRequest = { type: ChainMessageType.CHAIN_SUBMITTRANSACTION, transaction, signatures, trigger, }; const timeout = setTimeout(() => { this.off("tx_status", onTxStatus); reject(new Error("Transaction submission timeout")); }, 30000); const onTxStatus = (response: ChainTxStatusResponse) => { clearTimeout(timeout); resolve(response); }; this.once("tx_status", onTxStatus); this.sendMessage(request); }); }
- src/index.ts:1072-1090 (handler)MCP CallTool request handler: validates args, gets WebSocket client singleton, calls submitTransaction, and formats response.case "zetrix_ws_submit_transaction": { if (!args) { throw new Error("Missing arguments"); } const wsClient = getWebSocketClient(); const result = await wsClient.submitTransaction( args.transaction, args.signatures as Array<{ public_key: string; sign_data: string }>, args.trigger ); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }
- src/index.ts:368-389 (registration)Tool registration entry in ListTools response: defines name, description, input schema (transaction, signatures, optional trigger).{ name: "zetrix_ws_submit_transaction", description: "Submit transaction via WebSocket and get real-time status updates", inputSchema: { type: "object", properties: { transaction: { type: "object", description: "Transaction object", }, signatures: { type: "array", description: "Array of signature objects with public_key and sign_data", }, trigger: { type: "object", description: "Optional trigger object", }, }, required: ["transaction", "signatures"], }, },
- src/index.ts:371-388 (schema)Input schema validation: requires transaction object and signatures array, optional trigger.inputSchema: { type: "object", properties: { transaction: { type: "object", description: "Transaction object", }, signatures: { type: "array", description: "Array of signature objects with public_key and sign_data", }, trigger: { type: "object", description: "Optional trigger object", }, }, required: ["transaction", "signatures"], },