MCP Blockchain Server

import { api } from './api'; export type TransactionStatus = 'PENDING' | 'APPROVED' | 'REJECTED' | 'SUBMITTED' | 'CONFIRMED' | 'FAILED'; export interface Transaction { id: string; chainId: string; from?: string; to: string; value: string; data?: string; gasLimit?: string; status: TransactionStatus; txHash?: string; createdAt: string; updatedAt: string; } export interface PrepareTransactionRequest { chainId: string; to: string; value?: string; data?: string; gasLimit?: string; } export interface PrepareTransactionResponse { id: string; url: string; } /** * Prepare a transaction for user approval */ export async function prepareTransaction(request: PrepareTransactionRequest): Promise<PrepareTransactionResponse> { try { const response = await api.transactions.prepare(request); return response; } catch (error) { console.error('Error preparing transaction:', error); throw error; } } /** * Get transaction details */ export async function getTransaction(uuid: string): Promise<Transaction> { try { const response = await api.transactions.get(uuid); return response; } catch (error) { console.error(`Error getting transaction ${uuid}:`, error); throw error; } } /** * Submit a signed transaction */ export async function submitTransaction( uuid: string, signedTransaction: string ): Promise<{ id: string; status: string; txHash?: string }> { try { const response = await api.transactions.submit(uuid, signedTransaction); return response; } catch (error) { console.error(`Error submitting transaction ${uuid}:`, error); throw error; } } /** * Get user transactions */ export async function getUserTransactions(): Promise<Transaction[]> { try { const response = await api.user.getTransactions(); return response.transactions; } catch (error) { console.error('Error getting user transactions:', error); throw error; } }