UNPKG

@myronkoch/andromeda-mcp-server

Version:

Production-ready MCP server for Andromeda blockchain - v2.0 with 98% functionality, fixed core bugs, and complete ADO ecosystem support

250 lines 14.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.QueryAirdropSchema = exports.ClaimAirdropTokensSchema = exports.DeployMerkleAirdropSchema = exports.ClaimStakingRewardsSchema = exports.UnstakeCW20TokensSchema = exports.StakeCW20TokensSchema = exports.DeployCW20StakingSchema = exports.FinalizeAuctionSchema = exports.PlaceAuctionBidSchema = exports.StartAuctionSchema = exports.DeployAuctionSchema = exports.QueryCW20SaleSchema = exports.CancelCW20SaleSchema = exports.PurchaseCW20TokensSchema = exports.StartCW20SaleSchema = exports.DeployCW20ExchangeSchema = exports.SplitterUpdateSchema = exports.AuctionBidSchema = exports.MarketplaceListSchema = exports.CW721MintSchema = exports.CW20MintSchema = exports.PublishADOSchema = exports.MigrateADOSchema = exports.DeployADOSchema = exports.AppInfoSchema = exports.CreateAppSchema = exports.GraphQLQuerySchema = exports.ADOCodeIdSchema = exports.ADODBQuerySchema = exports.DateRangeSchema = exports.TransferSchema = exports.WalletSchema = exports.ADOExecuteSchema = exports.ADOQuerySchema = exports.AddressSchema = exports.TransactionSchema = exports.BlockHeightSchema = void 0; const zod_1 = require("zod"); // Input validation schemas exports.BlockHeightSchema = zod_1.z.object({ height: zod_1.z.number().optional().describe('Block height to query (latest if not specified)') }); exports.TransactionSchema = zod_1.z.object({ txHash: zod_1.z.string().describe('Transaction hash to query') }); exports.AddressSchema = zod_1.z.object({ address: zod_1.z.string().describe('Andromeda address to query') }); exports.ADOQuerySchema = zod_1.z.object({ contractAddress: zod_1.z.string().describe('ADO contract address'), query: zod_1.z.record(zod_1.z.any()).describe('Query message to send to ADO') }); exports.ADOExecuteSchema = zod_1.z.object({ contractAddress: zod_1.z.string().describe('ADO contract address'), msg: zod_1.z.record(zod_1.z.any()).describe('Execute message to send to ADO'), funds: zod_1.z.array(zod_1.z.object({ denom: zod_1.z.string(), amount: zod_1.z.string() })).optional().describe('Funds to send with execution'), mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction'), gas: zod_1.z.string().optional().describe('Gas limit (default: auto)') }); exports.WalletSchema = zod_1.z.object({ mnemonic: zod_1.z.string().describe('BIP-39 mnemonic phrase for wallet generation') }); exports.TransferSchema = zod_1.z.object({ recipient: zod_1.z.string().describe('Recipient address'), amount: zod_1.z.string().describe('Amount to transfer'), denom: zod_1.z.string().default('uandr').describe('Token denomination'), mnemonic: zod_1.z.string().describe('Sender wallet mnemonic'), memo: zod_1.z.string().optional().describe('Transaction memo') }); exports.DateRangeSchema = zod_1.z.object({ startDate: zod_1.z.string().optional().describe('Start date (ISO string)'), endDate: zod_1.z.string().optional().describe('End date (ISO string)'), limit: zod_1.z.number().default(100).describe('Maximum number of results') }); exports.ADODBQuerySchema = zod_1.z.object({ adoType: zod_1.z.string().optional().describe('ADO type to query'), startAfter: zod_1.z.string().optional().describe('Pagination start after') }); exports.ADOCodeIdSchema = zod_1.z.object({ adoType: zod_1.z.string().describe('ADO type to get code ID for'), version: zod_1.z.string().optional().describe('Specific version (latest if not specified)') }); exports.GraphQLQuerySchema = zod_1.z.object({ query: zod_1.z.string().describe('GraphQL query string'), variables: zod_1.z.record(zod_1.z.any()).optional().describe('GraphQL variables') }); exports.CreateAppSchema = zod_1.z.object({ name: zod_1.z.string().describe('Name of the App'), components: zod_1.z.array(zod_1.z.object({ name: zod_1.z.string(), ado_type: zod_1.z.string(), component_type: zod_1.z.record(zod_1.z.any()) })).describe('ADO components to include in the App'), mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction') }); exports.AppInfoSchema = zod_1.z.object({ appAddress: zod_1.z.string().describe('App contract address') }); exports.DeployADOSchema = zod_1.z.object({ adoType: zod_1.z.string().describe('Type of ADO to deploy'), name: zod_1.z.string().describe('Name for the ADO instance'), instantiateMsg: zod_1.z.record(zod_1.z.any()).describe('Instantiation message'), mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction'), codeId: zod_1.z.number().optional().describe('Code ID (will fetch from ADODB if not provided)') }); exports.MigrateADOSchema = zod_1.z.object({ contractAddress: zod_1.z.string().describe('ADO contract address to migrate'), newCodeId: zod_1.z.number().describe('New code ID to migrate to'), migrateMsg: zod_1.z.record(zod_1.z.any()).describe('Migration message'), mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction') }); exports.PublishADOSchema = zod_1.z.object({ codeId: zod_1.z.number().describe('Code ID to publish'), adoType: zod_1.z.string().describe('ADO type name'), version: zod_1.z.string().describe('Version number'), mnemonic: zod_1.z.string().describe('Publisher wallet mnemonic') }); exports.CW20MintSchema = zod_1.z.object({ contractAddress: zod_1.z.string().describe('CW20 contract address'), recipient: zod_1.z.string().describe('Recipient address'), amount: zod_1.z.string().describe('Amount to mint'), mnemonic: zod_1.z.string().describe('Minter wallet mnemonic') }); exports.CW721MintSchema = zod_1.z.object({ contractAddress: zod_1.z.string().describe('CW721 contract address'), tokenId: zod_1.z.string().describe('NFT token ID'), owner: zod_1.z.string().describe('NFT owner address'), mnemonic: zod_1.z.string().describe('Minter wallet mnemonic'), tokenUri: zod_1.z.string().optional().describe('Token metadata URI'), extension: zod_1.z.record(zod_1.z.any()).optional().describe('Extension metadata'), }); exports.MarketplaceListSchema = zod_1.z.object({ marketplaceAddress: zod_1.z.string().describe('Marketplace contract address'), nftContract: zod_1.z.string().describe('NFT contract address'), tokenId: zod_1.z.string().describe('NFT token ID'), price: zod_1.z.object({ amount: zod_1.z.string(), denom: zod_1.z.string() }).describe('Listing price'), mnemonic: zod_1.z.string().describe('Seller wallet mnemonic') }); exports.AuctionBidSchema = zod_1.z.object({ auctionAddress: zod_1.z.string().describe('Auction contract address'), amount: zod_1.z.string().describe('Bid amount'), denom: zod_1.z.string().default('uandr').describe('Token denomination'), mnemonic: zod_1.z.string().describe('Bidder wallet mnemonic') }); exports.SplitterUpdateSchema = zod_1.z.object({ splitterAddress: zod_1.z.string().describe('Splitter contract address'), recipients: zod_1.z.array(zod_1.z.object({ address: zod_1.z.string(), percent: zod_1.z.string() })).describe('New recipient configuration'), mnemonic: zod_1.z.string().describe('Admin wallet mnemonic') }); // CW20 Exchange Schemas exports.DeployCW20ExchangeSchema = zod_1.z.object({ tokenAddress: zod_1.z.string().describe('CW20 token contract address to create exchange for'), name: zod_1.z.string().describe('Name for the CW20 Exchange instance'), mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction') }); exports.StartCW20SaleSchema = zod_1.z.object({ exchangeAddress: zod_1.z.string().describe('CW20 Exchange contract address'), tokenAddress: zod_1.z.string().describe('CW20 token contract address'), amount: zod_1.z.string().describe('Amount of tokens to put up for sale'), asset: zod_1.z.object({ type: zod_1.z.enum(['native', 'cw20']), value: zod_1.z.string() }).describe('Asset that can be used to purchase the tokens'), exchangeRate: zod_1.z.string().describe('Amount of purchasing asset required for one token'), mnemonic: zod_1.z.string().describe('Seller wallet mnemonic'), recipient: zod_1.z.string().optional().describe('Recipient of sale proceeds (defaults to sender)'), startTime: zod_1.z.number().optional().describe('Sale start time in milliseconds'), duration: zod_1.z.number().optional().describe('Sale duration in milliseconds') }); exports.PurchaseCW20TokensSchema = zod_1.z.object({ exchangeAddress: zod_1.z.string().describe('CW20 Exchange contract address'), purchaseAsset: zod_1.z.object({ type: zod_1.z.enum(['native', 'cw20']), address: zod_1.z.string(), amount: zod_1.z.string(), denom: zod_1.z.string() }).describe('Asset to use for purchasing tokens'), mnemonic: zod_1.z.string().describe('Buyer wallet mnemonic'), recipient: zod_1.z.string().optional().describe('Recipient of purchased tokens (defaults to sender)') }); exports.CancelCW20SaleSchema = zod_1.z.object({ exchangeAddress: zod_1.z.string().describe('CW20 Exchange contract address'), asset: zod_1.z.object({ type: zod_1.z.enum(['native', 'cw20']), value: zod_1.z.string() }).describe('Asset of the sale to cancel'), mnemonic: zod_1.z.string().describe('Exchange owner wallet mnemonic') }); exports.QueryCW20SaleSchema = zod_1.z.object({ exchangeAddress: zod_1.z.string().describe('CW20 Exchange contract address'), asset: zod_1.z.object({ type: zod_1.z.enum(['native', 'cw20']), value: zod_1.z.string() }).describe('Asset of the sale to query') }); // Auction Schemas exports.DeployAuctionSchema = zod_1.z.object({ name: zod_1.z.string().describe('Name for the Auction instance'), authorizedTokenAddresses: zod_1.z.array(zod_1.z.string()).optional().describe('Authorized NFT contract addresses'), authorizedCw20Address: zod_1.z.string().optional().describe('Authorized CW20 payment token address'), mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction') }); exports.StartAuctionSchema = zod_1.z.object({ auctionAddress: zod_1.z.string().describe('Auction contract address'), tokenId: zod_1.z.string().describe('NFT token ID to auction'), tokenAddress: zod_1.z.string().describe('NFT contract address'), startTime: zod_1.z.number().optional().describe('Auction start time (milliseconds since epoch)'), duration: zod_1.z.number().describe('Auction duration in milliseconds'), coinDenom: zod_1.z.string().default('uandr').describe('Denomination for bids'), startingBid: zod_1.z.string().optional().describe('Minimum starting bid amount'), recipient: zod_1.z.string().optional().describe('Recipient of auction proceeds'), mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction') }); exports.PlaceAuctionBidSchema = zod_1.z.object({ auctionAddress: zod_1.z.string().describe('Auction contract address'), tokenId: zod_1.z.string().describe('NFT token ID being auctioned'), tokenAddress: zod_1.z.string().describe('NFT contract address'), bidAmount: zod_1.z.string().describe('Bid amount'), denom: zod_1.z.string().default('uandr').describe('Token denomination'), mnemonic: zod_1.z.string().describe('Bidder wallet mnemonic') }); exports.FinalizeAuctionSchema = zod_1.z.object({ auctionAddress: zod_1.z.string().describe('Auction contract address'), tokenId: zod_1.z.string().describe('NFT token ID being auctioned'), tokenAddress: zod_1.z.string().describe('NFT contract address'), mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction') }); // CW20-Staking Schemas (DeFi-focused) exports.DeployCW20StakingSchema = zod_1.z.object({ name: zod_1.z.string().describe('Name for the CW20-Staking instance'), stakingToken: zod_1.z.string().describe('CW20 token contract address for staking'), rewardToken: zod_1.z.string().describe('CW20 token contract address for rewards'), rewardAllocation: zod_1.z.string().describe('Reward allocation for the reward token'), mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction'), unbondingPeriod: zod_1.z.number().optional().describe('Unbonding period in seconds (optional)') }); exports.StakeCW20TokensSchema = zod_1.z.object({ stakingAddress: zod_1.z.string().describe('CW20-Staking contract address'), tokenAddress: zod_1.z.string().describe('CW20 token contract address to stake'), amount: zod_1.z.string().describe('Amount of tokens to stake'), mnemonic: zod_1.z.string().describe('Staker wallet mnemonic') }); exports.UnstakeCW20TokensSchema = zod_1.z.object({ stakingAddress: zod_1.z.string().describe('CW20-Staking contract address'), amount: zod_1.z.string().describe('Amount of tokens to unstake'), mnemonic: zod_1.z.string().describe('Staker wallet mnemonic') }); exports.ClaimStakingRewardsSchema = zod_1.z.object({ stakingAddress: zod_1.z.string().describe('CW20-Staking contract address'), mnemonic: zod_1.z.string().describe('Staker wallet mnemonic') }); // Merkle Airdrop Schemas exports.DeployMerkleAirdropSchema = zod_1.z.object({ name: zod_1.z.string().describe('Name for the Merkle Airdrop instance'), asset: zod_1.z.object({ type: zod_1.z.enum(['native', 'cw20']), value: zod_1.z.string() }).describe('Asset to distribute in the airdrop'), merkleRoot: zod_1.z.string().describe('Merkle root hash for the airdrop tree'), totalAmount: zod_1.z.string().describe('Total amount to distribute'), mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction'), startTime: zod_1.z.number().optional().describe('Airdrop start time in milliseconds'), endTime: zod_1.z.number().optional().describe('Airdrop end time in milliseconds') }); exports.ClaimAirdropTokensSchema = zod_1.z.object({ airdropAddress: zod_1.z.string().describe('Merkle Airdrop contract address'), amount: zod_1.z.string().describe('Amount to claim'), proof: zod_1.z.array(zod_1.z.string()).describe('Merkle proof for the claim'), mnemonic: zod_1.z.string().describe('Claimer wallet mnemonic') }); exports.QueryAirdropSchema = zod_1.z.object({ airdropAddress: zod_1.z.string().describe('Merkle Airdrop contract address'), address: zod_1.z.string().describe('Address to check claim status for') }); //# sourceMappingURL=validation.js.map