UNPKG

run402-mcp

Version:

MCP server for Run402 — full-stack backend infrastructure for AI agents: Postgres, auth, storage, serverless functions and atomic deploys. Paid with x402/MPP. Includes $0.03 image generation.

54 lines • 2.68 kB
/** * A wallet whose key lives in AWS KMS (spec `wallet-signers`). The key never * leaves KMS: the client hashes locally, KMS signs the 32-byte digest, and the * DER signature becomes an Ethereum signature with a low-s value (EIP-2) and * the recovery id under which it recovers to the wallet's address. A signature * that recovers to no address of this wallet is refused before anything * carrying it is sent. * * The algorithm mirrors the gateway's `services/kms-signer.ts`; both keep the * same vectors in their tests. */ import type { Hex, LocalAccount } from "viem"; import type { WalletSigner } from "../../../core-dist/wallet.js"; import { LocalError } from "../../errors.js"; import { type KmsStack } from "../_paid-stack.js"; /** The part of a KMS client the signer uses; tests pass a fake. */ export interface KmsClientLike { send(command: unknown): Promise<unknown>; } /** Parse an ECDSA DER signature (SEQUENCE { INTEGER r, INTEGER s }). */ export declare function parseDerSignature(der: Uint8Array): { r: bigint; s: bigint; }; /** * KMS's DER signature over `hash` → a 65-byte Ethereum signature that recovers * to `address`, or `SIGNER_ADDRESS_MISMATCH`. */ export declare function derToEthereumSignature(viem: Pick<KmsStack["viem"], "recoverAddress" | "serializeSignature" | "numberToHex">, der: Uint8Array, hash: Hex, address: string): Promise<Hex>; /** A KMS/AWS failure as a named local error with its remedy; never renders a credential. */ export declare function kmsError(err: unknown, signer: WalletSigner, context: string): LocalError; export interface KmsAccountOptions { /** Test seam: a stack (or part of one) in place of the lazily loaded peers. */ stack?: KmsStack; client?: KmsClientLike; } /** A viem account that signs through `signer` as `address`. */ export declare function kmsAccount(signer: WalletSigner, address: string, opts?: KmsAccountOptions): Promise<LocalAccount>; export interface AdoptedKmsKey { address: string; key_spec: string; key_usage: string; } /** * Read a KMS key's public key and metadata (read-only: `GetPublicKey` only) * and derive its address; `KMS_KEY_UNSUITABLE` unless it is a secp256k1 * signing key. */ export declare function adoptKmsKey(signer: WalletSigner, opts?: KmsAccountOptions): Promise<AdoptedKmsKey>; /** The EVM address of a secp256k1 SubjectPublicKeyInfo (what KMS GetPublicKey returns). */ export declare function addressFromSpki(viem: Pick<KmsStack["viem"], "keccak256" | "getAddress">, der: Uint8Array): string; /** Test seam: forget cached clients. */ export declare function resetKmsClientsForTests(): void; //# sourceMappingURL=kms.d.ts.map