agentcash 0.13.8 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/cjs/run-server.cjs +76 -19
  2. package/dist/esm/{add-skill-5O3R2PAD.js → add-skill-JHBOH5SG.js} +4 -3
  3. package/dist/esm/{add-skill-5O3R2PAD.js.map → add-skill-JHBOH5SG.js.map} +1 -1
  4. package/dist/esm/{bridge-3T5NWKDE.js → bridge-YU2PE54M.js} +4 -3
  5. package/dist/esm/{bridge-3T5NWKDE.js.map → bridge-YU2PE54M.js.map} +1 -1
  6. package/dist/esm/{chunk-THSTTUNV.js → chunk-6I5J7IHC.js} +2 -2
  7. package/dist/esm/{chunk-DBP743M5.js → chunk-7ZLVTQTS.js} +24 -6
  8. package/dist/esm/chunk-7ZLVTQTS.js.map +1 -0
  9. package/dist/esm/{chunk-QCP7Q6UF.js → chunk-BFOYXXLG.js} +2 -27
  10. package/dist/esm/chunk-BFOYXXLG.js.map +1 -0
  11. package/dist/esm/{chunk-54KBJ4F6.js → chunk-BNFMFAEF.js} +5 -5
  12. package/dist/esm/{chunk-UNG335FG.js → chunk-E52LAD7Z.js} +6 -4
  13. package/dist/esm/{chunk-UNG335FG.js.map → chunk-E52LAD7Z.js.map} +1 -1
  14. package/dist/esm/{chunk-2NMSPXMD.js → chunk-G5FHPXQL.js} +9 -7
  15. package/dist/esm/{chunk-2NMSPXMD.js.map → chunk-G5FHPXQL.js.map} +1 -1
  16. package/dist/esm/{chunk-NQ7OJNSO.js → chunk-KJCWPVQE.js} +5 -3
  17. package/dist/esm/{chunk-NQ7OJNSO.js.map → chunk-KJCWPVQE.js.map} +1 -1
  18. package/dist/esm/{chunk-CWU2QWNS.js → chunk-MSNAPI5G.js} +5 -3
  19. package/dist/esm/{chunk-CWU2QWNS.js.map → chunk-MSNAPI5G.js.map} +1 -1
  20. package/dist/esm/chunk-U6FRXL3X.js +28 -0
  21. package/dist/esm/chunk-U6FRXL3X.js.map +1 -0
  22. package/dist/esm/{chunk-OJGYNAKF.js → chunk-UCADMHNP.js} +2 -2
  23. package/dist/esm/{chunk-PZNRMIWW.js → chunk-V3HBA7NZ.js} +3 -3
  24. package/dist/esm/{chunk-TCXITLKU.js → chunk-XC5JT2NQ.js} +2 -2
  25. package/dist/esm/chunk-Y2J274RB.js +109 -0
  26. package/dist/esm/chunk-Y2J274RB.js.map +1 -0
  27. package/dist/esm/{chunk-FYEDHLYF.js → chunk-Y4BYJBYU.js} +5 -3
  28. package/dist/esm/{chunk-FYEDHLYF.js.map → chunk-Y4BYJBYU.js.map} +1 -1
  29. package/dist/esm/{chunk-63TCLGO6.js → chunk-YUPRVVFP.js} +6 -6
  30. package/dist/esm/{discover-PMVCPMAP.js → discover-654M2PZ3.js} +4 -3
  31. package/dist/esm/discover-654M2PZ3.js.map +1 -0
  32. package/dist/esm/{fetch-WACX4GKY.js → fetch-GPYZNSPB.js} +5 -4
  33. package/dist/esm/{fetch-WACX4GKY.js.map → fetch-GPYZNSPB.js.map} +1 -1
  34. package/dist/esm/{fund-QLGZGIUE.js → fund-HHL4QEU5.js} +5 -4
  35. package/dist/esm/{fund-QLGZGIUE.js.map → fund-HHL4QEU5.js.map} +1 -1
  36. package/dist/esm/index.js +24 -24
  37. package/dist/esm/{install-KTU4GOMT.js → install-D2IVOSIS.js} +8 -7
  38. package/dist/esm/{install-KTU4GOMT.js.map → install-D2IVOSIS.js.map} +1 -1
  39. package/dist/esm/{onboard-YNZPSS34.js → onboard-5SZ6ZCM5.js} +11 -10
  40. package/dist/esm/{onboard-YNZPSS34.js.map → onboard-5SZ6ZCM5.js.map} +1 -1
  41. package/dist/esm/{origins-UCEONL2Q.js → origins-JAC2K5A4.js} +4 -3
  42. package/dist/esm/{origins-UCEONL2Q.js.map → origins-JAC2K5A4.js.map} +1 -1
  43. package/dist/esm/{register-UN5RG5QY.js → register-AD43YD5O.js} +5 -4
  44. package/dist/esm/{register-UN5RG5QY.js.map → register-AD43YD5O.js.map} +1 -1
  45. package/dist/esm/{report-error-PIRP6TAE.js → report-error-V2J7LNUZ.js} +5 -4
  46. package/dist/esm/{report-error-PIRP6TAE.js.map → report-error-V2J7LNUZ.js.map} +1 -1
  47. package/dist/esm/{search-FDAGE4G3.js → search-WV2FO7OG.js} +6 -5
  48. package/dist/esm/{search-FDAGE4G3.js.map → search-WV2FO7OG.js.map} +1 -1
  49. package/dist/esm/{server-RHNWYLER.js → server-ADTFQX5M.js} +20 -16
  50. package/dist/esm/server-ADTFQX5M.js.map +1 -0
  51. package/dist/esm/{server-PEG4DEHG.js → server-RHVPZZ4R.js} +2 -2
  52. package/dist/esm/{try-2JMNINOB.js → try-36SR5JEG.js} +7 -6
  53. package/dist/esm/try-36SR5JEG.js.map +1 -0
  54. package/dist/esm/{wallet-IWRIAD6V.js → wallet-QOS3FPSF.js} +7 -6
  55. package/dist/esm/{wallet-IWRIAD6V.js.map → wallet-QOS3FPSF.js.map} +1 -1
  56. package/package.json +3 -3
  57. package/dist/esm/chunk-CR6PFCYR.js +0 -49
  58. package/dist/esm/chunk-CR6PFCYR.js.map +0 -1
  59. package/dist/esm/chunk-DBP743M5.js.map +0 -1
  60. package/dist/esm/chunk-QCP7Q6UF.js.map +0 -1
  61. package/dist/esm/discover-PMVCPMAP.js.map +0 -1
  62. package/dist/esm/server-RHNWYLER.js.map +0 -1
  63. package/dist/esm/try-2JMNINOB.js.map +0 -1
  64. /package/dist/esm/{chunk-THSTTUNV.js.map → chunk-6I5J7IHC.js.map} +0 -0
  65. /package/dist/esm/{chunk-54KBJ4F6.js.map → chunk-BNFMFAEF.js.map} +0 -0
  66. /package/dist/esm/{chunk-OJGYNAKF.js.map → chunk-UCADMHNP.js.map} +0 -0
  67. /package/dist/esm/{chunk-PZNRMIWW.js.map → chunk-V3HBA7NZ.js.map} +0 -0
  68. /package/dist/esm/{chunk-TCXITLKU.js.map → chunk-XC5JT2NQ.js.map} +0 -0
  69. /package/dist/esm/{chunk-63TCLGO6.js.map → chunk-YUPRVVFP.js.map} +0 -0
  70. /package/dist/esm/{server-PEG4DEHG.js.map → server-RHVPZZ4R.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/operations/bridge.ts","../../src/shared/network.ts","../../../../internal/bridge/src/quote.ts","../../../../internal/bridge/src/client.ts","../../../../internal/bridge/src/execute.ts","../../../../internal/bridge/src/relay-svm-wallet-adapter.ts","../../src/shared/neverthrow/bridge/index.ts"],"sourcesContent":["import z from 'zod';\n\nimport { createWalletClient, http } from 'viem';\n\nimport { EVM_CONFIGS, Network, networkSchema } from '@agentcash/networks';\n\nimport { toTypedNetworkAddress } from '@/shared/network';\nimport { TOOL_PARAMS } from '@/shared/descriptions';\nimport {\n safeExecuteQuote,\n safeExecuteSolana,\n safeGetBridgeDepositQuote,\n} from '@/shared/neverthrow/bridge';\nimport { safeFetchJson } from '@/shared/neverthrow/fetch';\nimport { getBaseUrl } from '@/shared/utils';\n\nimport type { Wallets } from '@/wallet';\nimport type { Execute } from '@agentcash/bridge';\nimport type { GlobalFlags } from '@/types';\n\nexport const bridgeSchema = z\n .object({\n from: networkSchema.describe(TOOL_PARAMS.bridge.from),\n to: networkSchema.describe(TOOL_PARAMS.bridge.to),\n amount: z.number().positive().describe(TOOL_PARAMS.bridge.amount),\n })\n .refine(({ from, to }) => from !== to, {\n message: 'From and to networks cannot be the same',\n });\n\nexport type BridgeInput = z.input<typeof bridgeSchema>;\n\nexport const bridge = async (\n args: GlobalFlags<z.infer<typeof bridgeSchema>>,\n wallets: Wallets\n) => {\n const { from, to, amount } = args;\n\n if (from === Network.SOLANA) {\n const request = new Request(`${getBaseUrl(args.dev)}/api/bridge/solana`, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify({\n fromAddress: wallets.svm.address,\n to: toTypedNetworkAddress(to, wallets),\n amount,\n }),\n });\n const response = await safeFetchJson(\n 'bridge',\n request,\n z.object({\n success: z.literal(true),\n partiallySignedTransaction: z.string(),\n quote: z.custom<Execute>(),\n })\n );\n\n if (response.isErr()) {\n return response;\n }\n\n const { partiallySignedTransaction, quote } = response.value;\n\n const executeResult = await safeExecuteSolana('bridge', {\n quote,\n signer: wallets.svm,\n partiallySignedTransaction,\n });\n\n return executeResult.map(\n result => result.data.details ?? { success: true }\n );\n } else {\n const quote = await safeGetBridgeDepositQuote('bridge', {\n from: toTypedNetworkAddress(from, wallets),\n to: toTypedNetworkAddress(to, wallets),\n amount,\n });\n\n if (quote.isErr()) {\n return quote;\n }\n\n const executeResult = await safeExecuteQuote(\n 'bridge',\n quote.value,\n createWalletClient({\n account: wallets.evm,\n chain: EVM_CONFIGS[from].chain,\n transport: http(\n from === Network.TEMPO\n ? 'https://eng:acard-melody-fashion-finish@rpc.mainnet.tempo.xyz'\n : undefined\n ),\n })\n );\n\n return executeResult.map(\n result => result.data.details ?? { success: true }\n );\n }\n};\n","import { Network } from '@agentcash/networks';\n\nimport type { TypedNetworkAddress } from '@agentcash/networks';\nimport type { Wallets } from '@/wallet';\n\nexport const toTypedNetworkAddress = (\n network: Network,\n wallets: Wallets\n): TypedNetworkAddress => {\n if (network === Network.SOLANA) {\n return {\n address: wallets.svm.address,\n network: Network.SOLANA,\n };\n }\n return {\n address: wallets.evm.address,\n network: network,\n };\n};\n","import {\n Network,\n solanaAddressSchema,\n typedAddressSchema,\n usdc,\n} from '@agentcash/networks';\nimport z from 'zod';\n\nimport { relayClient, relayChainId } from './client';\n\nexport const getBridgeDepositQuoteSchema = z.object({\n from: typedAddressSchema,\n to: typedAddressSchema,\n amount: z.number(),\n depositFeePayer: solanaAddressSchema.optional(),\n});\n\nexport const getBridgeDepositQuote = async (\n input: z.input<typeof getBridgeDepositQuoteSchema>\n) => {\n const parseResult = getBridgeDepositQuoteSchema.safeParse(input);\n if (!parseResult.success) {\n throw new Error('Invalid input');\n }\n\n const { from, to, amount, depositFeePayer } = parseResult.data;\n\n const fromCurrency = usdc(from.network);\n const toCurrency = usdc(to.network);\n\n return await relayClient.actions.getQuote({\n chainId: relayChainId(from.network),\n toChainId: relayChainId(to.network),\n currency: fromCurrency.address,\n toCurrency: toCurrency.address,\n tradeType: 'EXACT_INPUT',\n user: from.address,\n recipient: to.address,\n amount: (amount * 10 ** fromCurrency.decimals).toString(),\n options: {\n refundTo: from.address,\n depositFeePayer:\n from.network === Network.SOLANA ? depositFeePayer : undefined,\n usePermit: from.network !== Network.SOLANA,\n },\n });\n};\n","import {\n createClient,\n convertViemChainToRelayChain,\n MAINNET_RELAY_API,\n} from '@relayprotocol/relay-sdk';\n\nimport { Network, chainId, EVM_CONFIGS } from '@agentcash/networks';\n\nimport type { RelayChain } from '@relayprotocol/relay-sdk';\n\nexport const SOLANA_RELAY_CHAIN: RelayChain = {\n id: 792703809,\n name: 'solana',\n displayName: 'Solana',\n httpRpcUrl: 'https://api.mainnet-beta.solana.com',\n wsRpcUrl: '',\n explorerUrl: 'https://solscan.io',\n depositEnabled: true,\n tokenSupport: 'All',\n currency: {\n id: 'sol',\n symbol: 'SOL',\n name: 'Solana',\n address: '11111111111111111111111111111111',\n decimals: 9,\n supportsBridging: true,\n },\n featuredTokens: [\n {\n id: 'sol',\n symbol: 'SOL',\n name: 'Solana',\n address: '11111111111111111111111111111111',\n decimals: 9,\n supportsBridging: true,\n metadata: {\n logoURI:\n 'https://upload.wikimedia.org/wikipedia/en/b/b9/Solana_logo.png',\n },\n },\n {\n id: 'usdc',\n symbol: 'USDC',\n name: 'USD Coin',\n address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',\n decimals: 6,\n supportsBridging: true,\n metadata: {\n logoURI:\n 'https://coin-images.coingecko.com/coins/images/6319/large/usdc.png?1696506694',\n },\n },\n {\n id: 'usdt',\n symbol: 'USDT',\n name: 'USDT',\n address: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',\n decimals: 6,\n supportsBridging: true,\n metadata: {\n logoURI:\n 'https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661',\n },\n },\n ],\n erc20Currencies: [\n {\n id: 'pengu',\n symbol: 'PENGU',\n name: 'Pudgy Penguins',\n address: '2zMMhcVQEXDtdE6vsFS7S7D5oUodfJHE8vd1gnBouauv',\n decimals: 6,\n supportsBridging: true,\n withdrawalFee: 25,\n depositFee: 0,\n surgeEnabled: false,\n },\n {\n id: 'usdc',\n symbol: 'USDC',\n name: 'USD Coin',\n address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',\n decimals: 6,\n supportsBridging: true,\n supportsPermit: true,\n withdrawalFee: 2.25,\n depositFee: 2,\n surgeEnabled: false,\n },\n {\n id: 'usdt',\n symbol: 'USDT',\n name: 'USDT',\n address: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',\n decimals: 6,\n supportsBridging: true,\n withdrawalFee: 5,\n depositFee: 2,\n surgeEnabled: false,\n },\n {\n id: 'cash',\n symbol: 'CASH',\n name: 'CASH',\n address: 'CASHx9KJUStyftLFWGvEVf59SGeG9sh5FfcnZMVPCASH',\n decimals: 6,\n supportsBridging: true,\n withdrawalFee: 25,\n depositFee: 0,\n surgeEnabled: false,\n },\n {\n id: 'pyusd',\n symbol: 'PYUSD',\n name: 'PayPal USD',\n address: '2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo',\n decimals: 6,\n supportsBridging: true,\n withdrawalFee: 25,\n depositFee: 0,\n surgeEnabled: false,\n },\n ],\n solverCurrencies: [\n {\n id: 'pengu',\n symbol: 'PENGU',\n name: 'Pudgy Penguins',\n address: '2zMMhcVQEXDtdE6vsFS7S7D5oUodfJHE8vd1gnBouauv',\n decimals: 6,\n },\n {\n id: 'usdc',\n symbol: 'USDC',\n name: 'USD Coin',\n address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',\n decimals: 6,\n },\n {\n id: 'usdt',\n symbol: 'USDT',\n name: 'USDT',\n address: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',\n decimals: 6,\n },\n {\n id: 'cash',\n symbol: 'CASH',\n name: 'CASH',\n address: 'CASHx9KJUStyftLFWGvEVf59SGeG9sh5FfcnZMVPCASH',\n decimals: 6,\n },\n {\n id: 'pyusd',\n symbol: 'PYUSD',\n name: 'PayPal USD',\n address: '2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo',\n decimals: 6,\n },\n {\n id: 'sol',\n symbol: 'SOL',\n name: 'Solana',\n address: '11111111111111111111111111111111',\n decimals: 9,\n },\n ],\n iconUrl: 'https://assets.relay.link/icons/792703809/light.png',\n vmType: 'svm',\n baseChainId: 1,\n tags: [],\n protocol: {\n v2: {\n chainId: 'solana',\n depository: '99vQwtBwYtrqqD9YSXbdum3KBdxPAVxYTaQ3cfnJSrN2',\n },\n },\n};\n\nexport const relayChainId = (network: Network) => {\n switch (network) {\n case Network.BASE:\n case Network.TEMPO:\n return chainId(network);\n case Network.SOLANA:\n return SOLANA_RELAY_CHAIN.id;\n }\n};\n\nexport const relayClient = createClient({\n baseApiUrl: MAINNET_RELAY_API,\n source: 'https://agentcash.dev',\n chains: [\n ...Object.values(EVM_CONFIGS).map(config =>\n convertViemChainToRelayChain(config.chain)\n ),\n SOLANA_RELAY_CHAIN,\n ],\n});\n","import { adaptViemWallet } from '@relayprotocol/relay-sdk';\n\nimport { relayClient } from './client';\nimport type { AdaptSolanaKitWalletParams } from './relay-svm-wallet-adapter';\nimport { adaptSolanaKitWallet } from './relay-svm-wallet-adapter';\n\nimport type { WalletClient } from 'viem';\nimport type { Execute } from '@relayprotocol/relay-sdk';\n\nexport const executeQuote = async (quote: Execute, account: WalletClient) => {\n return await relayClient.actions.execute({\n wallet: adaptViemWallet(account),\n quote,\n });\n};\n\nexport interface ExecuteSolanaParams extends AdaptSolanaKitWalletParams {\n quote: Execute;\n}\n\nexport const executeSolana = async ({\n quote,\n ...rest\n}: ExecuteSolanaParams) => {\n return await relayClient.actions.execute({\n wallet: adaptSolanaKitWallet(rest),\n quote,\n });\n};\n","import {\n assertIsSendableTransaction,\n assertIsTransactionWithinSizeLimit,\n createSolanaRpc,\n getBase64EncodedWireTransaction,\n getCompiledTransactionMessageDecoder,\n getSignatureFromTransaction,\n getTransactionDecoder,\n getTransactionLifetimeConstraintFromCompiledTransactionMessage,\n isTransactionModifyingSigner,\n isTransactionPartialSigner,\n isTransactionSendingSigner,\n} from '@solana/kit';\nimport { LogLevel, getClient } from '@relayprotocol/relay-sdk';\n\nimport { SOLANA_RELAY_CHAIN } from './client';\n\nimport type { AdaptedWallet } from '@relayprotocol/relay-sdk';\nimport type {\n ClusterUrl,\n Signature,\n Transaction,\n TransactionSigner,\n TransactionWithLifetime,\n TransactionWithinSizeLimit,\n} from '@solana/kit';\n\nconst BASE58_SIGNATURE_REGEX = /^[1-9A-HJ-NP-Za-km-z]+$/;\nconst DEFAULT_CONFIRM_TIMEOUT_MS = 120_000;\nconst DEFAULT_CONFIRM_POLL_MS = 2_000;\n\nexport interface AdaptSolanaKitWalletParams {\n signer: TransactionSigner;\n partiallySignedTransaction: string;\n rpcUrl?: ClusterUrl;\n}\n\ntype SignableTransaction = Transaction &\n TransactionWithLifetime &\n TransactionWithinSizeLimit;\n\nconst assertBase58TransactionSignature = (signature: string | undefined) => {\n if (\n typeof signature !== 'string' ||\n signature.length === 0 ||\n !BASE58_SIGNATURE_REGEX.test(signature)\n ) {\n throw new Error('Invalid Solana signature: expected base58.');\n }\n};\n\nconst sleep = async (ms: number) =>\n await new Promise(resolve => setTimeout(resolve, ms));\n\nasync function decodePartiallySignedTransaction(\n partiallySignedTransaction: string\n): Promise<SignableTransaction> {\n const decodedTransaction = getTransactionDecoder().decode(\n Uint8Array.from(Buffer.from(partiallySignedTransaction, 'base64'))\n );\n const compiledTransactionMessage =\n getCompiledTransactionMessageDecoder().decode(\n decodedTransaction.messageBytes\n );\n const lifetimeConstraint =\n await getTransactionLifetimeConstraintFromCompiledTransactionMessage(\n compiledTransactionMessage\n );\n const transactionWithLifetime = {\n ...decodedTransaction,\n lifetimeConstraint,\n };\n\n assertIsTransactionWithinSizeLimit(transactionWithLifetime);\n\n return transactionWithLifetime;\n}\n\nasync function signTransactionWithSigner(\n transaction: SignableTransaction,\n signer: TransactionSigner\n): Promise<SignableTransaction> {\n if (isTransactionModifyingSigner(signer)) {\n const [signedTransaction] = await signer.modifyAndSignTransactions([\n transaction,\n ]);\n\n if (!signedTransaction) {\n throw new Error('Modifying signer did not return a signed transaction');\n }\n\n return signedTransaction;\n }\n\n if (isTransactionPartialSigner(signer)) {\n const [signatureDictionary] = await signer.signTransactions([transaction]);\n\n if (!signatureDictionary) {\n throw new Error('Transaction signer did not return signatures');\n }\n\n return {\n ...transaction,\n signatures: Object.freeze({\n ...transaction.signatures,\n ...signatureDictionary,\n }),\n };\n }\n\n if (isTransactionSendingSigner(signer)) {\n throw new Error(\n 'TransactionSendingSigner is not supported by Relay Solana adapter'\n );\n }\n\n throw new Error(\n 'Unsupported Solana transaction signer provided to Relay adapter'\n );\n}\n\nexport const adaptSolanaKitWallet = ({\n rpcUrl = SOLANA_RELAY_CHAIN.httpRpcUrl as ClusterUrl,\n signer,\n partiallySignedTransaction,\n}: AdaptSolanaKitWalletParams): AdaptedWallet => {\n const rpc = createSolanaRpc(rpcUrl);\n return {\n vmType: 'svm',\n getChainId: () => Promise.resolve(SOLANA_RELAY_CHAIN.id),\n address: () => Promise.resolve(signer.address),\n handleSignMessageStep: () => {\n throw new Error('Message signing not implemented for Solana');\n },\n handleSendTransactionStep: async () => {\n const client = getClient();\n const decodedTransaction = await decodePartiallySignedTransaction(\n partiallySignedTransaction\n );\n const signedTransaction = await signTransactionWithSigner(\n decodedTransaction,\n signer\n );\n\n assertIsSendableTransaction(signedTransaction);\n const wireTransaction =\n getBase64EncodedWireTransaction(signedTransaction);\n const signature = getSignatureFromTransaction(signedTransaction);\n\n await rpc\n .sendTransaction(wireTransaction, {\n encoding: 'base64',\n skipPreflight: false,\n preflightCommitment: 'confirmed',\n })\n .send();\n\n assertBase58TransactionSignature(signature);\n\n client.log(\n ['Transaction Signature obtained', { signature }],\n LogLevel.Verbose\n );\n\n return signature;\n },\n handleConfirmTransactionStep: async txHash => {\n assertBase58TransactionSignature(txHash);\n\n const deadline = Date.now() + DEFAULT_CONFIRM_TIMEOUT_MS;\n\n while (Date.now() < deadline) {\n const { value: statuses } = await rpc\n .getSignatureStatuses([txHash as Signature])\n .send();\n\n const status = statuses[0];\n\n if (status) {\n if (status.err) {\n throw new Error(\n `Transaction failed: ${JSON.stringify(status.err)}`\n );\n }\n\n if (\n status.confirmationStatus === 'confirmed' ||\n status.confirmationStatus === 'finalized'\n ) {\n return {\n blockHash: status.slot.toString(),\n blockNumber: Number(status.slot),\n txHash,\n };\n }\n }\n\n await sleep(DEFAULT_CONFIRM_POLL_MS);\n }\n\n throw new Error(\n `Transaction not confirmed within ${DEFAULT_CONFIRM_TIMEOUT_MS}ms: ${txHash}`\n );\n },\n switchChain: () => {\n throw new Error('Switching chains not implemented for Solana');\n },\n };\n};\n","import {\n executeQuote,\n executeSolana,\n getBridgeDepositQuote,\n} from '@agentcash/bridge';\nimport { err, resultFromPromise } from '@agentcash/neverthrow';\n\nimport type { BaseBridgeError } from './types';\n\nconst errorType = 'bridge';\n\nexport const bridgeErr = (surface: string, error: BaseBridgeError) =>\n err(errorType, surface, error);\n\nconst bridgeResultFromPromise = <T>(\n surface: string,\n promise: Promise<T>,\n error: (e: unknown) => BaseBridgeError\n) => resultFromPromise(errorType, surface, promise, error);\n\nconst getErrorMessage = (error: unknown, fallback: string) => {\n if (error instanceof Error && error.message) {\n return error.message;\n }\n\n if (typeof error === 'string' && error.length > 0) {\n return error;\n }\n\n return fallback;\n};\n\nexport const safeGetBridgeDepositQuote = (\n surface: string,\n ...args: Parameters<typeof getBridgeDepositQuote>\n) =>\n bridgeResultFromPromise(surface, getBridgeDepositQuote(...args), error => {\n const errorMessage = getErrorMessage(\n error,\n 'Failed to get bridge deposit quote'\n );\n\n return {\n cause: 'get_bridge_deposit_quote',\n errorMessage,\n message: `Failed to get bridge deposit quote: ${errorMessage}`,\n };\n });\n\nexport const safeExecuteQuote = (\n surface: string,\n ...args: Parameters<typeof executeQuote>\n) =>\n bridgeResultFromPromise(surface, executeQuote(...args), error => {\n const errorMessage = getErrorMessage(error, 'Failed to execute quote');\n\n return {\n cause: 'execute_quote',\n errorMessage,\n message: `Failed to execute quote: ${errorMessage}`,\n };\n });\n\nexport const safeExecuteSolana = (\n surface: string,\n ...args: Parameters<typeof executeSolana>\n) =>\n bridgeResultFromPromise(surface, executeSolana(...args), error => {\n const errorMessage = getErrorMessage(\n error,\n 'Failed to execute Solana bridge transaction'\n );\n\n return {\n cause: 'execute_solana',\n errorMessage,\n message: `Failed to execute Solana bridge transaction: ${errorMessage}`,\n };\n });\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,QAAO;AAEd,SAAS,oBAAoB,YAAY;;;ACGlC,IAAM,wBAAwB,CACnC,SACA,YACwB;AACxB,MAAI,mCAA4B;AAC9B,WAAO;AAAA,MACL,SAAS,QAAQ,IAAI;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL,SAAS,QAAQ,IAAI;AAAA,IACrB;AAAA,EACF;AACF;;;ACbA,OAAO,OAAO;;;ACNd;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAMA,IAAM,qBAAiC;AAAA,EAC5C,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,EACpB;AAAA,EACA,gBAAgB;AAAA,IACd;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,UAAU;AAAA,QACR,SACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,UAAU;AAAA,QACR,SACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,UAAU;AAAA,QACR,SACE;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,MAAM,CAAC;AAAA,EACP,UAAU;AAAA,IACR,IAAI;AAAA,MACF,SAAS;AAAA,MACT,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEO,IAAM,eAAe,CAAC,YAAqB;AAChD,UAAQ,SAAS;AAAA,IACf;AAAA,IACA;AACE,aAAO,QAAQ,OAAO;AAAA,IACxB;AACE,aAAO,mBAAmB;AAAA,EAC9B;AACF;AAEO,IAAM,cAAc,aAAa;AAAA,EACtC,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,IACN,GAAG,OAAO,OAAO,WAAW,EAAE;AAAA,MAAI,YAChC,6BAA6B,OAAO,KAAK;AAAA,IAC3C;AAAA,IACA;AAAA,EACF;AACF,CAAC;;;AD5LM,IAAM,8BAA8B,EAAE,OAAO;AAAA,EAClD,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,QAAQ,EAAE,OAAO;AAAA,EACjB,iBAAiB,oBAAoB,SAAS;AAChD,CAAC;AAEM,IAAM,wBAAwB,OACnC,UACG;AACH,QAAM,cAAc,4BAA4B,UAAU,KAAK;AAC/D,MAAI,CAAC,YAAY,SAAS;AACxB,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAEA,QAAM,EAAE,MAAM,IAAI,QAAQ,gBAAgB,IAAI,YAAY;AAE1D,QAAM,eAAe,KAAK,KAAK,OAAO;AACtC,QAAM,aAAa,KAAK,GAAG,OAAO;AAElC,SAAO,MAAM,YAAY,QAAQ,SAAS;AAAA,IACxC,SAAS,aAAa,KAAK,OAAO;AAAA,IAClC,WAAW,aAAa,GAAG,OAAO;AAAA,IAClC,UAAU,aAAa;AAAA,IACvB,YAAY,WAAW;AAAA,IACvB,WAAW;AAAA,IACX,MAAM,KAAK;AAAA,IACX,WAAW,GAAG;AAAA,IACd,SAAS,SAAS,MAAM,aAAa,UAAU,SAAS;AAAA,IACxD,SAAS;AAAA,MACP,UAAU,KAAK;AAAA,MACf,iBACE,KAAK,oCAA6B,kBAAkB;AAAA,MACtD,WAAW,KAAK;AAAA,IAClB;AAAA,EACF,CAAC;AACH;;;AE9CA,SAAS,uBAAuB;;;ACAhC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,UAAU,iBAAiB;AAcpC,IAAM,yBAAyB;AAC/B,IAAM,6BAA6B;AACnC,IAAM,0BAA0B;AAYhC,IAAM,mCAAmC,CAAC,cAAkC;AAC1E,MACE,OAAO,cAAc,YACrB,UAAU,WAAW,KACrB,CAAC,uBAAuB,KAAK,SAAS,GACtC;AACA,UAAM,IAAI,MAAM,4CAA4C;AAAA,EAC9D;AACF;AAEA,IAAM,QAAQ,OAAO,OACnB,MAAM,IAAI,QAAQ,aAAW,WAAW,SAAS,EAAE,CAAC;AAEtD,eAAe,iCACb,4BAC8B;AAC9B,QAAM,qBAAqB,sBAAsB,EAAE;AAAA,IACjD,WAAW,KAAK,OAAO,KAAK,4BAA4B,QAAQ,CAAC;AAAA,EACnE;AACA,QAAM,6BACJ,qCAAqC,EAAE;AAAA,IACrC,mBAAmB;AAAA,EACrB;AACF,QAAM,qBACJ,MAAM;AAAA,IACJ;AAAA,EACF;AACF,QAAM,0BAA0B;AAAA,IAC9B,GAAG;AAAA,IACH;AAAA,EACF;AAEA,qCAAmC,uBAAuB;AAE1D,SAAO;AACT;AAEA,eAAe,0BACb,aACA,QAC8B;AAC9B,MAAI,6BAA6B,MAAM,GAAG;AACxC,UAAM,CAAC,iBAAiB,IAAI,MAAM,OAAO,0BAA0B;AAAA,MACjE;AAAA,IACF,CAAC;AAED,QAAI,CAAC,mBAAmB;AACtB,YAAM,IAAI,MAAM,sDAAsD;AAAA,IACxE;AAEA,WAAO;AAAA,EACT;AAEA,MAAI,2BAA2B,MAAM,GAAG;AACtC,UAAM,CAAC,mBAAmB,IAAI,MAAM,OAAO,iBAAiB,CAAC,WAAW,CAAC;AAEzE,QAAI,CAAC,qBAAqB;AACxB,YAAM,IAAI,MAAM,8CAA8C;AAAA,IAChE;AAEA,WAAO;AAAA,MACL,GAAG;AAAA,MACH,YAAY,OAAO,OAAO;AAAA,QACxB,GAAG,YAAY;AAAA,QACf,GAAG;AAAA,MACL,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,2BAA2B,MAAM,GAAG;AACtC,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,IAAI;AAAA,IACR;AAAA,EACF;AACF;AAEO,IAAM,uBAAuB,CAAC;AAAA,EACnC,SAAS,mBAAmB;AAAA,EAC5B;AAAA,EACA;AACF,MAAiD;AAC/C,QAAM,MAAM,gBAAgB,MAAM;AAClC,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,YAAY,MAAM,QAAQ,QAAQ,mBAAmB,EAAE;AAAA,IACvD,SAAS,MAAM,QAAQ,QAAQ,OAAO,OAAO;AAAA,IAC7C,uBAAuB,MAAM;AAC3B,YAAM,IAAI,MAAM,4CAA4C;AAAA,IAC9D;AAAA,IACA,2BAA2B,YAAY;AACrC,YAAM,SAAS,UAAU;AACzB,YAAM,qBAAqB,MAAM;AAAA,QAC/B;AAAA,MACF;AACA,YAAM,oBAAoB,MAAM;AAAA,QAC9B;AAAA,QACA;AAAA,MACF;AAEA,kCAA4B,iBAAiB;AAC7C,YAAM,kBACJ,gCAAgC,iBAAiB;AACnD,YAAM,YAAY,4BAA4B,iBAAiB;AAE/D,YAAM,IACH,gBAAgB,iBAAiB;AAAA,QAChC,UAAU;AAAA,QACV,eAAe;AAAA,QACf,qBAAqB;AAAA,MACvB,CAAC,EACA,KAAK;AAER,uCAAiC,SAAS;AAE1C,aAAO;AAAA,QACL,CAAC,kCAAkC,EAAE,UAAU,CAAC;AAAA,QAChD,SAAS;AAAA,MACX;AAEA,aAAO;AAAA,IACT;AAAA,IACA,8BAA8B,OAAM,WAAU;AAC5C,uCAAiC,MAAM;AAEvC,YAAM,WAAW,KAAK,IAAI,IAAI;AAE9B,aAAO,KAAK,IAAI,IAAI,UAAU;AAC5B,cAAM,EAAE,OAAO,SAAS,IAAI,MAAM,IAC/B,qBAAqB,CAAC,MAAmB,CAAC,EAC1C,KAAK;AAER,cAAM,SAAS,SAAS,CAAC;AAEzB,YAAI,QAAQ;AACV,cAAI,OAAO,KAAK;AACd,kBAAM,IAAI;AAAA,cACR,uBAAuB,KAAK,UAAU,OAAO,GAAG,CAAC;AAAA,YACnD;AAAA,UACF;AAEA,cACE,OAAO,uBAAuB,eAC9B,OAAO,uBAAuB,aAC9B;AACA,mBAAO;AAAA,cACL,WAAW,OAAO,KAAK,SAAS;AAAA,cAChC,aAAa,OAAO,OAAO,IAAI;AAAA,cAC/B;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,cAAM,MAAM,uBAAuB;AAAA,MACrC;AAEA,YAAM,IAAI;AAAA,QACR,oCAAoC,0BAA0B,OAAO,MAAM;AAAA,MAC7E;AAAA,IACF;AAAA,IACA,aAAa,MAAM;AACjB,YAAM,IAAI,MAAM,6CAA6C;AAAA,IAC/D;AAAA,EACF;AACF;;;ADvMO,IAAM,eAAe,OAAO,OAAgB,YAA0B;AAC3E,SAAO,MAAM,YAAY,QAAQ,QAAQ;AAAA,IACvC,QAAQ,gBAAgB,OAAO;AAAA,IAC/B;AAAA,EACF,CAAC;AACH;AAMO,IAAM,gBAAgB,OAAO;AAAA,EAClC;AAAA,EACA,GAAG;AACL,MAA2B;AACzB,SAAO,MAAM,YAAY,QAAQ,QAAQ;AAAA,IACvC,QAAQ,qBAAqB,IAAI;AAAA,IACjC;AAAA,EACF,CAAC;AACH;;;AEnBA,IAAM,YAAY;AAKlB,IAAM,0BAA0B,CAC9B,SACA,SACA,UACG,kBAAkB,WAAW,SAAS,SAAS,KAAK;AAEzD,IAAM,kBAAkB,CAAC,OAAgB,aAAqB;AAC5D,MAAI,iBAAiB,SAAS,MAAM,SAAS;AAC3C,WAAO,MAAM;AAAA,EACf;AAEA,MAAI,OAAO,UAAU,YAAY,MAAM,SAAS,GAAG;AACjD,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,IAAM,4BAA4B,CACvC,YACG,SAEH,wBAAwB,SAAS,sBAAsB,GAAG,IAAI,GAAG,WAAS;AACxE,QAAM,eAAe;AAAA,IACnB;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA,SAAS,uCAAuC,YAAY;AAAA,EAC9D;AACF,CAAC;AAEI,IAAM,mBAAmB,CAC9B,YACG,SAEH,wBAAwB,SAAS,aAAa,GAAG,IAAI,GAAG,WAAS;AAC/D,QAAM,eAAe,gBAAgB,OAAO,yBAAyB;AAErE,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA,SAAS,4BAA4B,YAAY;AAAA,EACnD;AACF,CAAC;AAEI,IAAM,oBAAoB,CAC/B,YACG,SAEH,wBAAwB,SAAS,cAAc,GAAG,IAAI,GAAG,WAAS;AAChE,QAAM,eAAe;AAAA,IACnB;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA,SAAS,gDAAgD,YAAY;AAAA,EACvE;AACF,CAAC;;;AN1DI,IAAM,eAAeC,GACzB,OAAO;AAAA,EACN,MAAM,cAAc,SAAS,YAAY,OAAO,IAAI;AAAA,EACpD,IAAI,cAAc,SAAS,YAAY,OAAO,EAAE;AAAA,EAChD,QAAQA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,YAAY,OAAO,MAAM;AAClE,CAAC,EACA,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,SAAS,IAAI;AAAA,EACrC,SAAS;AACX,CAAC;AAII,IAAM,SAAS,OACpB,MACA,YACG;AACH,QAAM,EAAE,MAAM,IAAI,OAAO,IAAI;AAE7B,MAAI,gCAAyB;AAC3B,UAAM,UAAU,IAAI,QAAQ,GAAG,WAAW,KAAK,GAAG,CAAC,sBAAsB;AAAA,MACvE,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACnB,aAAa,QAAQ,IAAI;AAAA,QACzB,IAAI,sBAAsB,IAAI,OAAO;AAAA,QACrC;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,UAAM,WAAW,MAAM;AAAA,MACrB;AAAA,MACA;AAAA,MACAA,GAAE,OAAO;AAAA,QACP,SAASA,GAAE,QAAQ,IAAI;AAAA,QACvB,4BAA4BA,GAAE,OAAO;AAAA,QACrC,OAAOA,GAAE,OAAgB;AAAA,MAC3B,CAAC;AAAA,IACH;AAEA,QAAI,SAAS,MAAM,GAAG;AACpB,aAAO;AAAA,IACT;AAEA,UAAM,EAAE,4BAA4B,MAAM,IAAI,SAAS;AAEvD,UAAM,gBAAgB,MAAM,kBAAkB,UAAU;AAAA,MACtD;AAAA,MACA,QAAQ,QAAQ;AAAA,MAChB;AAAA,IACF,CAAC;AAED,WAAO,cAAc;AAAA,MACnB,YAAU,OAAO,KAAK,WAAW,EAAE,SAAS,KAAK;AAAA,IACnD;AAAA,EACF,OAAO;AACL,UAAM,QAAQ,MAAM,0BAA0B,UAAU;AAAA,MACtD,MAAM,sBAAsB,MAAM,OAAO;AAAA,MACzC,IAAI,sBAAsB,IAAI,OAAO;AAAA,MACrC;AAAA,IACF,CAAC;AAED,QAAI,MAAM,MAAM,GAAG;AACjB,aAAO;AAAA,IACT;AAEA,UAAM,gBAAgB,MAAM;AAAA,MAC1B;AAAA,MACA,MAAM;AAAA,MACN,mBAAmB;AAAA,QACjB,SAAS,QAAQ;AAAA,QACjB,OAAO,YAAY,IAAI,EAAE;AAAA,QACzB,WAAW;AAAA,UACT,+BACI,kEACA;AAAA,QACN;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WAAO,cAAc;AAAA,MACnB,YAAU,OAAO,KAAK,WAAW,EAAE,SAAS,KAAK;AAAA,IACnD;AAAA,EACF;AACF;","names":["z","z"]}
1
+ {"version":3,"sources":["../../src/operations/bridge.ts","../../src/shared/network.ts","../../../../internal/bridge/src/quote.ts","../../../../internal/bridge/src/client.ts","../../../../internal/bridge/src/execute.ts","../../../../internal/bridge/src/relay-svm-wallet-adapter.ts","../../src/shared/neverthrow/bridge/index.ts"],"sourcesContent":["import z from 'zod';\n\nimport { createWalletClient, http } from 'viem';\n\nimport { EVM_CONFIGS, Network, networkSchema } from '@agentcash/networks';\n\nimport { toTypedNetworkAddress } from '@/shared/network';\nimport { TOOL_PARAMS } from '@/shared/descriptions';\nimport {\n safeExecuteQuote,\n safeExecuteSolana,\n safeGetBridgeDepositQuote,\n} from '@/shared/neverthrow/bridge';\nimport { safeFetchJson } from '@/shared/neverthrow/fetch';\nimport { getBaseUrl } from '@/shared/utils';\n\nimport type { Wallets } from '@/wallet';\nimport type { Execute } from '@agentcash/bridge';\nimport type { GlobalFlags } from '@/types';\n\nexport const bridgeSchema = z\n .object({\n from: networkSchema.describe(TOOL_PARAMS.bridge.from),\n to: networkSchema.describe(TOOL_PARAMS.bridge.to),\n amount: z.number().positive().describe(TOOL_PARAMS.bridge.amount),\n })\n .refine(({ from, to }) => from !== to, {\n message: 'From and to networks cannot be the same',\n });\n\nexport type BridgeInput = z.input<typeof bridgeSchema>;\n\nexport const bridge = async (\n args: GlobalFlags<z.infer<typeof bridgeSchema>>,\n wallets: Wallets\n) => {\n const { from, to, amount } = args;\n\n if (from === Network.SOLANA) {\n const request = new Request(`${getBaseUrl(args.dev)}/api/bridge/solana`, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify({\n fromAddress: wallets.svm.address,\n to: toTypedNetworkAddress(to, wallets),\n amount,\n }),\n });\n const response = await safeFetchJson(\n 'bridge',\n request,\n z.object({\n success: z.literal(true),\n partiallySignedTransaction: z.string(),\n quote: z.custom<Execute>(),\n })\n );\n\n if (response.isErr()) {\n return response;\n }\n\n const { partiallySignedTransaction, quote } = response.value;\n\n const executeResult = await safeExecuteSolana('bridge', {\n quote,\n signer: wallets.svm,\n partiallySignedTransaction,\n });\n\n return executeResult.map(\n result => result.data.details ?? { success: true }\n );\n } else {\n const quote = await safeGetBridgeDepositQuote('bridge', {\n from: toTypedNetworkAddress(from, wallets),\n to: toTypedNetworkAddress(to, wallets),\n amount,\n });\n\n if (quote.isErr()) {\n return quote;\n }\n\n const executeResult = await safeExecuteQuote(\n 'bridge',\n quote.value,\n createWalletClient({\n account: wallets.evm,\n chain: EVM_CONFIGS[from].chain,\n transport: http(\n from === Network.TEMPO\n ? 'https://eng:acard-melody-fashion-finish@rpc.mainnet.tempo.xyz'\n : undefined\n ),\n })\n );\n\n return executeResult.map(\n result => result.data.details ?? { success: true }\n );\n }\n};\n","import { Network } from '@agentcash/networks';\n\nimport type { TypedNetworkAddress } from '@agentcash/networks';\nimport type { Wallets } from '@/wallet';\n\nexport const toTypedNetworkAddress = (\n network: Network,\n wallets: Wallets\n): TypedNetworkAddress => {\n if (network === Network.SOLANA) {\n return {\n address: wallets.svm.address,\n network: Network.SOLANA,\n };\n }\n return {\n address: wallets.evm.address,\n network: network,\n };\n};\n","import {\n Network,\n solanaAddressSchema,\n typedAddressSchema,\n usdc,\n} from '@agentcash/networks';\nimport z from 'zod';\n\nimport { relayClient, relayChainId } from './client';\n\nexport const getBridgeDepositQuoteSchema = z.object({\n from: typedAddressSchema,\n to: typedAddressSchema,\n amount: z.number(),\n depositFeePayer: solanaAddressSchema.optional(),\n});\n\nexport const getBridgeDepositQuote = async (\n input: z.input<typeof getBridgeDepositQuoteSchema>\n) => {\n const parseResult = getBridgeDepositQuoteSchema.safeParse(input);\n if (!parseResult.success) {\n throw new Error('Invalid input');\n }\n\n const { from, to, amount, depositFeePayer } = parseResult.data;\n\n const fromCurrency = usdc(from.network);\n const toCurrency = usdc(to.network);\n\n return await relayClient.actions.getQuote({\n chainId: relayChainId(from.network),\n toChainId: relayChainId(to.network),\n currency: fromCurrency.address,\n toCurrency: toCurrency.address,\n tradeType: 'EXACT_INPUT',\n user: from.address,\n recipient: to.address,\n amount: (amount * 10 ** fromCurrency.decimals).toString(),\n options: {\n refundTo: from.address,\n depositFeePayer:\n from.network === Network.SOLANA ? depositFeePayer : undefined,\n usePermit: from.network !== Network.SOLANA,\n },\n });\n};\n","import {\n createClient,\n convertViemChainToRelayChain,\n MAINNET_RELAY_API,\n} from '@relayprotocol/relay-sdk';\n\nimport { Network, chainId, EVM_CONFIGS } from '@agentcash/networks';\n\nimport type { RelayChain } from '@relayprotocol/relay-sdk';\n\nexport const SOLANA_RELAY_CHAIN: RelayChain = {\n id: 792703809,\n name: 'solana',\n displayName: 'Solana',\n httpRpcUrl: 'https://api.mainnet-beta.solana.com',\n wsRpcUrl: '',\n explorerUrl: 'https://solscan.io',\n depositEnabled: true,\n tokenSupport: 'All',\n currency: {\n id: 'sol',\n symbol: 'SOL',\n name: 'Solana',\n address: '11111111111111111111111111111111',\n decimals: 9,\n supportsBridging: true,\n },\n featuredTokens: [\n {\n id: 'sol',\n symbol: 'SOL',\n name: 'Solana',\n address: '11111111111111111111111111111111',\n decimals: 9,\n supportsBridging: true,\n metadata: {\n logoURI:\n 'https://upload.wikimedia.org/wikipedia/en/b/b9/Solana_logo.png',\n },\n },\n {\n id: 'usdc',\n symbol: 'USDC',\n name: 'USD Coin',\n address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',\n decimals: 6,\n supportsBridging: true,\n metadata: {\n logoURI:\n 'https://coin-images.coingecko.com/coins/images/6319/large/usdc.png?1696506694',\n },\n },\n {\n id: 'usdt',\n symbol: 'USDT',\n name: 'USDT',\n address: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',\n decimals: 6,\n supportsBridging: true,\n metadata: {\n logoURI:\n 'https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661',\n },\n },\n ],\n erc20Currencies: [\n {\n id: 'pengu',\n symbol: 'PENGU',\n name: 'Pudgy Penguins',\n address: '2zMMhcVQEXDtdE6vsFS7S7D5oUodfJHE8vd1gnBouauv',\n decimals: 6,\n supportsBridging: true,\n withdrawalFee: 25,\n depositFee: 0,\n surgeEnabled: false,\n },\n {\n id: 'usdc',\n symbol: 'USDC',\n name: 'USD Coin',\n address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',\n decimals: 6,\n supportsBridging: true,\n supportsPermit: true,\n withdrawalFee: 2.25,\n depositFee: 2,\n surgeEnabled: false,\n },\n {\n id: 'usdt',\n symbol: 'USDT',\n name: 'USDT',\n address: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',\n decimals: 6,\n supportsBridging: true,\n withdrawalFee: 5,\n depositFee: 2,\n surgeEnabled: false,\n },\n {\n id: 'cash',\n symbol: 'CASH',\n name: 'CASH',\n address: 'CASHx9KJUStyftLFWGvEVf59SGeG9sh5FfcnZMVPCASH',\n decimals: 6,\n supportsBridging: true,\n withdrawalFee: 25,\n depositFee: 0,\n surgeEnabled: false,\n },\n {\n id: 'pyusd',\n symbol: 'PYUSD',\n name: 'PayPal USD',\n address: '2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo',\n decimals: 6,\n supportsBridging: true,\n withdrawalFee: 25,\n depositFee: 0,\n surgeEnabled: false,\n },\n ],\n solverCurrencies: [\n {\n id: 'pengu',\n symbol: 'PENGU',\n name: 'Pudgy Penguins',\n address: '2zMMhcVQEXDtdE6vsFS7S7D5oUodfJHE8vd1gnBouauv',\n decimals: 6,\n },\n {\n id: 'usdc',\n symbol: 'USDC',\n name: 'USD Coin',\n address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',\n decimals: 6,\n },\n {\n id: 'usdt',\n symbol: 'USDT',\n name: 'USDT',\n address: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',\n decimals: 6,\n },\n {\n id: 'cash',\n symbol: 'CASH',\n name: 'CASH',\n address: 'CASHx9KJUStyftLFWGvEVf59SGeG9sh5FfcnZMVPCASH',\n decimals: 6,\n },\n {\n id: 'pyusd',\n symbol: 'PYUSD',\n name: 'PayPal USD',\n address: '2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo',\n decimals: 6,\n },\n {\n id: 'sol',\n symbol: 'SOL',\n name: 'Solana',\n address: '11111111111111111111111111111111',\n decimals: 9,\n },\n ],\n iconUrl: 'https://assets.relay.link/icons/792703809/light.png',\n vmType: 'svm',\n baseChainId: 1,\n tags: [],\n protocol: {\n v2: {\n chainId: 'solana',\n depository: '99vQwtBwYtrqqD9YSXbdum3KBdxPAVxYTaQ3cfnJSrN2',\n },\n },\n};\n\nexport const relayChainId = (network: Network) => {\n switch (network) {\n case Network.BASE:\n case Network.TEMPO:\n return chainId(network);\n case Network.SOLANA:\n return SOLANA_RELAY_CHAIN.id;\n }\n};\n\nexport const relayClient = createClient({\n baseApiUrl: MAINNET_RELAY_API,\n source: 'https://agentcash.dev',\n chains: [\n ...Object.values(EVM_CONFIGS).map(config =>\n convertViemChainToRelayChain(config.chain)\n ),\n SOLANA_RELAY_CHAIN,\n ],\n});\n","import { adaptViemWallet } from '@relayprotocol/relay-sdk';\n\nimport { relayClient } from './client';\nimport type { AdaptSolanaKitWalletParams } from './relay-svm-wallet-adapter';\nimport { adaptSolanaKitWallet } from './relay-svm-wallet-adapter';\n\nimport type { WalletClient } from 'viem';\nimport type { Execute } from '@relayprotocol/relay-sdk';\n\nexport const executeQuote = async (quote: Execute, account: WalletClient) => {\n return await relayClient.actions.execute({\n wallet: adaptViemWallet(account),\n quote,\n });\n};\n\nexport interface ExecuteSolanaParams extends AdaptSolanaKitWalletParams {\n quote: Execute;\n}\n\nexport const executeSolana = async ({\n quote,\n ...rest\n}: ExecuteSolanaParams) => {\n return await relayClient.actions.execute({\n wallet: adaptSolanaKitWallet(rest),\n quote,\n });\n};\n","import {\n assertIsSendableTransaction,\n assertIsTransactionWithinSizeLimit,\n createSolanaRpc,\n getBase64EncodedWireTransaction,\n getCompiledTransactionMessageDecoder,\n getSignatureFromTransaction,\n getTransactionDecoder,\n getTransactionLifetimeConstraintFromCompiledTransactionMessage,\n isTransactionModifyingSigner,\n isTransactionPartialSigner,\n isTransactionSendingSigner,\n} from '@solana/kit';\nimport { LogLevel, getClient } from '@relayprotocol/relay-sdk';\n\nimport { SOLANA_RELAY_CHAIN } from './client';\n\nimport type { AdaptedWallet } from '@relayprotocol/relay-sdk';\nimport type {\n ClusterUrl,\n Signature,\n Transaction,\n TransactionSigner,\n TransactionWithLifetime,\n TransactionWithinSizeLimit,\n} from '@solana/kit';\n\nconst BASE58_SIGNATURE_REGEX = /^[1-9A-HJ-NP-Za-km-z]+$/;\nconst DEFAULT_CONFIRM_TIMEOUT_MS = 120_000;\nconst DEFAULT_CONFIRM_POLL_MS = 2_000;\n\nexport interface AdaptSolanaKitWalletParams {\n signer: TransactionSigner;\n partiallySignedTransaction: string;\n rpcUrl?: ClusterUrl;\n}\n\ntype SignableTransaction = Transaction &\n TransactionWithLifetime &\n TransactionWithinSizeLimit;\n\nconst assertBase58TransactionSignature = (signature: string | undefined) => {\n if (\n typeof signature !== 'string' ||\n signature.length === 0 ||\n !BASE58_SIGNATURE_REGEX.test(signature)\n ) {\n throw new Error('Invalid Solana signature: expected base58.');\n }\n};\n\nconst sleep = async (ms: number) =>\n await new Promise(resolve => setTimeout(resolve, ms));\n\nasync function decodePartiallySignedTransaction(\n partiallySignedTransaction: string\n): Promise<SignableTransaction> {\n const decodedTransaction = getTransactionDecoder().decode(\n Uint8Array.from(Buffer.from(partiallySignedTransaction, 'base64'))\n );\n const compiledTransactionMessage =\n getCompiledTransactionMessageDecoder().decode(\n decodedTransaction.messageBytes\n );\n const lifetimeConstraint =\n await getTransactionLifetimeConstraintFromCompiledTransactionMessage(\n compiledTransactionMessage\n );\n const transactionWithLifetime = {\n ...decodedTransaction,\n lifetimeConstraint,\n };\n\n assertIsTransactionWithinSizeLimit(transactionWithLifetime);\n\n return transactionWithLifetime;\n}\n\nasync function signTransactionWithSigner(\n transaction: SignableTransaction,\n signer: TransactionSigner\n): Promise<SignableTransaction> {\n if (isTransactionModifyingSigner(signer)) {\n const [signedTransaction] = await signer.modifyAndSignTransactions([\n transaction,\n ]);\n\n if (!signedTransaction) {\n throw new Error('Modifying signer did not return a signed transaction');\n }\n\n return signedTransaction;\n }\n\n if (isTransactionPartialSigner(signer)) {\n const [signatureDictionary] = await signer.signTransactions([transaction]);\n\n if (!signatureDictionary) {\n throw new Error('Transaction signer did not return signatures');\n }\n\n return {\n ...transaction,\n signatures: Object.freeze({\n ...transaction.signatures,\n ...signatureDictionary,\n }),\n };\n }\n\n if (isTransactionSendingSigner(signer)) {\n throw new Error(\n 'TransactionSendingSigner is not supported by Relay Solana adapter'\n );\n }\n\n throw new Error(\n 'Unsupported Solana transaction signer provided to Relay adapter'\n );\n}\n\nexport const adaptSolanaKitWallet = ({\n rpcUrl = SOLANA_RELAY_CHAIN.httpRpcUrl as ClusterUrl,\n signer,\n partiallySignedTransaction,\n}: AdaptSolanaKitWalletParams): AdaptedWallet => {\n const rpc = createSolanaRpc(rpcUrl);\n return {\n vmType: 'svm',\n getChainId: () => Promise.resolve(SOLANA_RELAY_CHAIN.id),\n address: () => Promise.resolve(signer.address),\n handleSignMessageStep: () => {\n throw new Error('Message signing not implemented for Solana');\n },\n handleSendTransactionStep: async () => {\n const client = getClient();\n const decodedTransaction = await decodePartiallySignedTransaction(\n partiallySignedTransaction\n );\n const signedTransaction = await signTransactionWithSigner(\n decodedTransaction,\n signer\n );\n\n assertIsSendableTransaction(signedTransaction);\n const wireTransaction =\n getBase64EncodedWireTransaction(signedTransaction);\n const signature = getSignatureFromTransaction(signedTransaction);\n\n await rpc\n .sendTransaction(wireTransaction, {\n encoding: 'base64',\n skipPreflight: false,\n preflightCommitment: 'confirmed',\n })\n .send();\n\n assertBase58TransactionSignature(signature);\n\n client.log(\n ['Transaction Signature obtained', { signature }],\n LogLevel.Verbose\n );\n\n return signature;\n },\n handleConfirmTransactionStep: async txHash => {\n assertBase58TransactionSignature(txHash);\n\n const deadline = Date.now() + DEFAULT_CONFIRM_TIMEOUT_MS;\n\n while (Date.now() < deadline) {\n const { value: statuses } = await rpc\n .getSignatureStatuses([txHash as Signature])\n .send();\n\n const status = statuses[0];\n\n if (status) {\n if (status.err) {\n throw new Error(\n `Transaction failed: ${JSON.stringify(status.err)}`\n );\n }\n\n if (\n status.confirmationStatus === 'confirmed' ||\n status.confirmationStatus === 'finalized'\n ) {\n return {\n blockHash: status.slot.toString(),\n blockNumber: Number(status.slot),\n txHash,\n };\n }\n }\n\n await sleep(DEFAULT_CONFIRM_POLL_MS);\n }\n\n throw new Error(\n `Transaction not confirmed within ${DEFAULT_CONFIRM_TIMEOUT_MS}ms: ${txHash}`\n );\n },\n switchChain: () => {\n throw new Error('Switching chains not implemented for Solana');\n },\n };\n};\n","import {\n executeQuote,\n executeSolana,\n getBridgeDepositQuote,\n} from '@agentcash/bridge';\nimport { err, resultFromPromise } from '@agentcash/neverthrow';\n\nimport type { BaseBridgeError } from './types';\n\nconst errorType = 'bridge';\n\nexport const bridgeErr = (surface: string, error: BaseBridgeError) =>\n err(errorType, surface, error);\n\nconst bridgeResultFromPromise = <T>(\n surface: string,\n promise: Promise<T>,\n error: (e: unknown) => BaseBridgeError\n) => resultFromPromise(errorType, surface, promise, error);\n\nconst getErrorMessage = (error: unknown, fallback: string) => {\n if (error instanceof Error && error.message) {\n return error.message;\n }\n\n if (typeof error === 'string' && error.length > 0) {\n return error;\n }\n\n return fallback;\n};\n\nexport const safeGetBridgeDepositQuote = (\n surface: string,\n ...args: Parameters<typeof getBridgeDepositQuote>\n) =>\n bridgeResultFromPromise(surface, getBridgeDepositQuote(...args), error => {\n const errorMessage = getErrorMessage(\n error,\n 'Failed to get bridge deposit quote'\n );\n\n return {\n cause: 'get_bridge_deposit_quote',\n errorMessage,\n message: `Failed to get bridge deposit quote: ${errorMessage}`,\n };\n });\n\nexport const safeExecuteQuote = (\n surface: string,\n ...args: Parameters<typeof executeQuote>\n) =>\n bridgeResultFromPromise(surface, executeQuote(...args), error => {\n const errorMessage = getErrorMessage(error, 'Failed to execute quote');\n\n return {\n cause: 'execute_quote',\n errorMessage,\n message: `Failed to execute quote: ${errorMessage}`,\n };\n });\n\nexport const safeExecuteSolana = (\n surface: string,\n ...args: Parameters<typeof executeSolana>\n) =>\n bridgeResultFromPromise(surface, executeSolana(...args), error => {\n const errorMessage = getErrorMessage(\n error,\n 'Failed to execute Solana bridge transaction'\n );\n\n return {\n cause: 'execute_solana',\n errorMessage,\n message: `Failed to execute Solana bridge transaction: ${errorMessage}`,\n };\n });\n"],"mappings":"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","names":["z","z"]}
@@ -3,14 +3,14 @@ import {
3
3
  } from "./chunk-ISF2WVEZ.js";
4
4
  import {
5
5
  getBalance
6
- } from "./chunk-NQ7OJNSO.js";
7
- import {
8
- getBaseUrl,
9
- getDepositLink
10
- } from "./chunk-QCP7Q6UF.js";
6
+ } from "./chunk-KJCWPVQE.js";
11
7
  import {
12
8
  Network
13
9
  } from "./chunk-NPJV7AMV.js";
10
+ import {
11
+ getBaseUrl,
12
+ getDepositLink
13
+ } from "./chunk-U6FRXL3X.js";
14
14
 
15
15
  // src/operations/onboarding-cta.ts
16
16
  function shouldShowOnboardingCta(totalBalance) {
@@ -90,4 +90,4 @@ export {
90
90
  getBalances,
91
91
  listAccountsWithBalances
92
92
  };
93
- //# sourceMappingURL=chunk-63TCLGO6.js.map
93
+ //# sourceMappingURL=chunk-YUPRVVFP.js.map
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  discoverResources
3
- } from "./chunk-CR6PFCYR.js";
3
+ } from "./chunk-Y2J274RB.js";
4
4
  import "./chunk-CR2YGI3I.js";
5
5
  import "./chunk-FB5CMO3J.js";
6
+ import "./chunk-U6FRXL3X.js";
6
7
  import {
7
8
  errorResponse,
8
9
  outputAndExit,
@@ -15,7 +16,7 @@ import "./chunk-ITCDZXBZ.js";
15
16
 
16
17
  // src/cli/commands/discover.ts
17
18
  var discoverCommand = async (input) => {
18
- const result = await discoverResources("cli:discover", input);
19
+ const result = await discoverResources("cli:discover", input, { flags: input });
19
20
  if (result.found) {
20
21
  return outputAndExit(successResponse(result), input);
21
22
  }
@@ -34,4 +35,4 @@ var discoverCommand = async (input) => {
34
35
  export {
35
36
  discoverCommand
36
37
  };
37
- //# sourceMappingURL=discover-PMVCPMAP.js.map
38
+ //# sourceMappingURL=discover-654M2PZ3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/cli/commands/discover.ts"],"sourcesContent":["import { successResponse, errorResponse, outputAndExit } from '@/cli/output';\n\nimport { discoverResources } from '@/operations/discover';\n\nimport type { Command } from '@/types';\nimport type { DiscoverResourcesInput } from '@/operations/discover';\n\nexport const discoverCommand: Command<DiscoverResourcesInput> = async input => {\n const result = await discoverResources('cli:discover', input, { flags: input });\n\n if (result.found) {\n return outputAndExit(successResponse(result), input);\n }\n\n const origin = 'origin' in result ? result.origin : input.url;\n return outputAndExit(\n errorResponse({\n code: 'GENERAL_ERROR',\n message:\n result.message ??\n `No OpenAPI spec found for ${origin}. Tried: /openapi.json, /.well-known/x402`,\n surface: 'cli:discover',\n cause: result.cause,\n details: { origin },\n }),\n input\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAOO,IAAM,kBAAmD,OAAM,UAAS;AAC7E,QAAM,SAAS,MAAM,kBAAkB,gBAAgB,OAAO,EAAE,OAAO,MAAM,CAAC;AAE9E,MAAI,OAAO,OAAO;AAChB,WAAO,cAAc,gBAAgB,MAAM,GAAG,KAAK;AAAA,EACrD;AAEA,QAAM,SAAS,YAAY,SAAS,OAAO,SAAS,MAAM;AAC1D,SAAO;AAAA,IACL,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SACE,OAAO,WACP,6BAA6B,MAAM;AAAA,MACrC,SAAS;AAAA,MACT,OAAO,OAAO;AAAA,MACd,SAAS,EAAE,OAAO;AAAA,IACpB,CAAC;AAAA,IACD;AAAA,EACF;AACF;","names":[]}
@@ -5,14 +5,14 @@ import "./chunk-JWU363NX.js";
5
5
  import "./chunk-CR2YGI3I.js";
6
6
  import {
7
7
  executeFetch
8
- } from "./chunk-2NMSPXMD.js";
8
+ } from "./chunk-G5FHPXQL.js";
9
9
  import "./chunk-JX2XE6FD.js";
10
10
  import "./chunk-IKPLMFAK.js";
11
11
  import "./chunk-LNJIXYCU.js";
12
- import "./chunk-NQ7OJNSO.js";
12
+ import "./chunk-KJCWPVQE.js";
13
13
  import {
14
14
  safeParseResponse
15
- } from "./chunk-QCP7Q6UF.js";
15
+ } from "./chunk-BFOYXXLG.js";
16
16
  import {
17
17
  getWalletOrExit
18
18
  } from "./chunk-7AT3NXJ2.js";
@@ -20,6 +20,7 @@ import "./chunk-F3KGAMIA.js";
20
20
  import "./chunk-NPJV7AMV.js";
21
21
  import "./chunk-KVSTJRSJ.js";
22
22
  import "./chunk-FB5CMO3J.js";
23
+ import "./chunk-U6FRXL3X.js";
23
24
  import {
24
25
  errorResponse,
25
26
  fromNeverthrowError,
@@ -88,4 +89,4 @@ var fetchCommand = async (input) => {
88
89
  export {
89
90
  fetchCommand
90
91
  };
91
- //# sourceMappingURL=fetch-WACX4GKY.js.map
92
+ //# sourceMappingURL=fetch-GPYZNSPB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/fetch.ts"],"sourcesContent":["import {\n successResponse,\n errorResponse,\n fromNeverthrowError,\n outputAndExit,\n} from '@/cli/output';\n\nimport { safeParseResponse } from '@/shared/neverthrow/fetch';\nimport { executeFetch } from '@/operations/fetch';\nimport { cliFetchRequestSchema } from '@/shared/request/schemas/cli';\nimport { getWalletOrExit } from '../lib/get-wallet-or-exit';\n\nimport type z from 'zod';\nimport type { Command } from '@/types';\n\nconst SURFACE = 'cli:fetch';\n\nexport const fetchCommand: Command<\n z.input<typeof cliFetchRequestSchema>\n> = async input => {\n const requestInput = cliFetchRequestSchema.safeParse(input);\n if (!requestInput.success) {\n return outputAndExit(\n errorResponse({\n code: 'INVALID_INPUT',\n message: requestInput.error.message,\n surface: SURFACE,\n cause: 'validation',\n }),\n input\n );\n }\n const wallets = await getWalletOrExit(input);\n\n const fetchResult = await executeFetch(requestInput.data, {\n surface: SURFACE,\n wallets,\n flags: input,\n params: input,\n });\n\n if (fetchResult.isErr()) {\n return outputAndExit(fromNeverthrowError(fetchResult), input);\n }\n\n const { response, paymentInfo } = fetchResult.value;\n\n if (!response.ok) {\n const parseResult = await safeParseResponse(SURFACE, response);\n return outputAndExit(\n errorResponse({\n code: 'HTTP_ERROR',\n message: response.statusText,\n surface: SURFACE,\n cause: 'http',\n details: parseResult.match(\n data => ({\n statusCode: response.status,\n type: data.type,\n body:\n data.type === 'json' || data.type === 'text'\n ? data.data\n : undefined,\n }),\n () => ({ statusCode: response.status })\n ),\n }),\n input\n );\n }\n\n const parseResponseResult = await safeParseResponse(SURFACE, response);\n if (parseResponseResult.isErr()) {\n return outputAndExit(fromNeverthrowError(parseResponseResult), input);\n }\n\n const parsedResponse = parseResponseResult.value;\n\n const data =\n parsedResponse.type === 'json' || parsedResponse.type === 'text'\n ? parsedResponse.data\n : { type: parsedResponse.type };\n\n outputAndExit(successResponse(data, paymentInfo), input);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAM,UAAU;AAET,IAAM,eAET,OAAM,UAAS;AACjB,QAAM,eAAe,sBAAsB,UAAU,KAAK;AAC1D,MAAI,CAAC,aAAa,SAAS;AACzB,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,aAAa,MAAM;AAAA,QAC5B,SAAS;AAAA,QACT,OAAO;AAAA,MACT,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,MAAM,gBAAgB,KAAK;AAE3C,QAAM,cAAc,MAAM,aAAa,aAAa,MAAM;AAAA,IACxD,SAAS;AAAA,IACT;AAAA,IACA,OAAO;AAAA,IACP,QAAQ;AAAA,EACV,CAAC;AAED,MAAI,YAAY,MAAM,GAAG;AACvB,WAAO,cAAc,oBAAoB,WAAW,GAAG,KAAK;AAAA,EAC9D;AAEA,QAAM,EAAE,UAAU,YAAY,IAAI,YAAY;AAE9C,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,cAAc,MAAM,kBAAkB,SAAS,QAAQ;AAC7D,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,SAAS,YAAY;AAAA,UACnB,CAAAA,WAAS;AAAA,YACP,YAAY,SAAS;AAAA,YACrB,MAAMA,MAAK;AAAA,YACX,MACEA,MAAK,SAAS,UAAUA,MAAK,SAAS,SAClCA,MAAK,OACL;AAAA,UACR;AAAA,UACA,OAAO,EAAE,YAAY,SAAS,OAAO;AAAA,QACvC;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAEA,QAAM,sBAAsB,MAAM,kBAAkB,SAAS,QAAQ;AACrE,MAAI,oBAAoB,MAAM,GAAG;AAC/B,WAAO,cAAc,oBAAoB,mBAAmB,GAAG,KAAK;AAAA,EACtE;AAEA,QAAM,iBAAiB,oBAAoB;AAE3C,QAAM,OACJ,eAAe,SAAS,UAAU,eAAe,SAAS,SACtD,eAAe,OACf,EAAE,MAAM,eAAe,KAAK;AAElC,gBAAc,gBAAgB,MAAM,WAAW,GAAG,KAAK;AACzD;","names":["data"]}
1
+ {"version":3,"sources":["../../src/cli/commands/fetch.ts"],"sourcesContent":["import {\n successResponse,\n errorResponse,\n fromNeverthrowError,\n outputAndExit,\n} from '@/cli/output';\n\nimport { safeParseResponse } from '@/shared/neverthrow/fetch';\nimport { executeFetch } from '@/operations/fetch';\nimport { cliFetchRequestSchema } from '@/shared/request/schemas/cli';\nimport { getWalletOrExit } from '../lib/get-wallet-or-exit';\n\nimport type z from 'zod';\nimport type { Command } from '@/types';\n\nconst SURFACE = 'cli:fetch';\n\nexport const fetchCommand: Command<\n z.input<typeof cliFetchRequestSchema>\n> = async input => {\n const requestInput = cliFetchRequestSchema.safeParse(input);\n if (!requestInput.success) {\n return outputAndExit(\n errorResponse({\n code: 'INVALID_INPUT',\n message: requestInput.error.message,\n surface: SURFACE,\n cause: 'validation',\n }),\n input\n );\n }\n const wallets = await getWalletOrExit(input);\n\n const fetchResult = await executeFetch(requestInput.data, {\n surface: SURFACE,\n wallets,\n flags: input,\n params: input,\n });\n\n if (fetchResult.isErr()) {\n return outputAndExit(fromNeverthrowError(fetchResult), input);\n }\n\n const { response, paymentInfo } = fetchResult.value;\n\n if (!response.ok) {\n const parseResult = await safeParseResponse(SURFACE, response);\n return outputAndExit(\n errorResponse({\n code: 'HTTP_ERROR',\n message: response.statusText,\n surface: SURFACE,\n cause: 'http',\n details: parseResult.match(\n data => ({\n statusCode: response.status,\n type: data.type,\n body:\n data.type === 'json' || data.type === 'text'\n ? data.data\n : undefined,\n }),\n () => ({ statusCode: response.status })\n ),\n }),\n input\n );\n }\n\n const parseResponseResult = await safeParseResponse(SURFACE, response);\n if (parseResponseResult.isErr()) {\n return outputAndExit(fromNeverthrowError(parseResponseResult), input);\n }\n\n const parsedResponse = parseResponseResult.value;\n\n const data =\n parsedResponse.type === 'json' || parsedResponse.type === 'text'\n ? parsedResponse.data\n : { type: parsedResponse.type };\n\n outputAndExit(successResponse(data, paymentInfo), input);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAM,UAAU;AAET,IAAM,eAET,OAAM,UAAS;AACjB,QAAM,eAAe,sBAAsB,UAAU,KAAK;AAC1D,MAAI,CAAC,aAAa,SAAS;AACzB,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,aAAa,MAAM;AAAA,QAC5B,SAAS;AAAA,QACT,OAAO;AAAA,MACT,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,MAAM,gBAAgB,KAAK;AAE3C,QAAM,cAAc,MAAM,aAAa,aAAa,MAAM;AAAA,IACxD,SAAS;AAAA,IACT;AAAA,IACA,OAAO;AAAA,IACP,QAAQ;AAAA,EACV,CAAC;AAED,MAAI,YAAY,MAAM,GAAG;AACvB,WAAO,cAAc,oBAAoB,WAAW,GAAG,KAAK;AAAA,EAC9D;AAEA,QAAM,EAAE,UAAU,YAAY,IAAI,YAAY;AAE9C,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,cAAc,MAAM,kBAAkB,SAAS,QAAQ;AAC7D,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,SAAS,YAAY;AAAA,UACnB,CAAAA,WAAS;AAAA,YACP,YAAY,SAAS;AAAA,YACrB,MAAMA,MAAK;AAAA,YACX,MACEA,MAAK,SAAS,UAAUA,MAAK,SAAS,SAClCA,MAAK,OACL;AAAA,UACR;AAAA,UACA,OAAO,EAAE,YAAY,SAAS,OAAO;AAAA,QACvC;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAEA,QAAM,sBAAsB,MAAM,kBAAkB,SAAS,QAAQ;AACrE,MAAI,oBAAoB,MAAM,GAAG;AAC/B,WAAO,cAAc,oBAAoB,mBAAmB,GAAG,KAAK;AAAA,EACtE;AAEA,QAAM,iBAAiB,oBAAoB;AAE3C,QAAM,OACJ,eAAe,SAAS,UAAU,eAAe,SAAS,SACtD,eAAe,OACf,EAAE,MAAM,eAAe,KAAK;AAElC,gBAAc,gBAAgB,MAAM,WAAW,GAAG,KAAK;AACzD;","names":["data"]}
@@ -1,15 +1,16 @@
1
1
  import {
2
2
  promptDeposit
3
- } from "./chunk-54KBJ4F6.js";
3
+ } from "./chunk-BNFMFAEF.js";
4
4
  import "./chunk-DZNSJ2BA.js";
5
- import "./chunk-CWU2QWNS.js";
5
+ import "./chunk-MSNAPI5G.js";
6
6
  import "./chunk-ISF2WVEZ.js";
7
- import "./chunk-QCP7Q6UF.js";
7
+ import "./chunk-BFOYXXLG.js";
8
8
  import {
9
9
  getWallet
10
10
  } from "./chunk-F3KGAMIA.js";
11
11
  import "./chunk-NPJV7AMV.js";
12
12
  import "./chunk-KVSTJRSJ.js";
13
+ import "./chunk-U6FRXL3X.js";
13
14
  import {
14
15
  log
15
16
  } from "./chunk-QZCSZB7E.js";
@@ -34,4 +35,4 @@ var fundMcpServer = async (args) => {
34
35
  export {
35
36
  fundMcpServer
36
37
  };
37
- //# sourceMappingURL=fund-QLGZGIUE.js.map
38
+ //# sourceMappingURL=fund-HHL4QEU5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/fund.ts"],"sourcesContent":["import type { Command } from '@/types';\nimport { intro, log as clackLog, outro } from '@clack/prompts';\nimport chalk from 'chalk';\nimport { promptDeposit } from '@/cli/lib/deposit';\nimport { log } from '@/shared/log';\nimport { getWallet } from '@/wallet';\n\nexport const fundMcpServer: Command = async args => {\n intro(chalk.bold(`Fund ${chalk.hex('#2563eb')('agentcash MCP')}`));\n\n const walletResult = await getWallet();\n\n if (walletResult.isErr()) {\n log.error(walletResult.error.message);\n clackLog.error(walletResult.error.message);\n outro(chalk.bold.red('Failed to get wallet'));\n process.exit(1);\n }\n\n await promptDeposit('fund', args, walletResult.value);\n\n outro(chalk.bold.green('Your agentcash MCP server is funded!'));\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA,SAAS,OAAO,OAAO,UAAU,aAAa;AAC9C,OAAO,WAAW;AAKX,IAAM,gBAAyB,OAAM,SAAQ;AAClD,QAAM,MAAM,KAAK,QAAQ,MAAM,IAAI,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC;AAEjE,QAAM,eAAe,MAAM,UAAU;AAErC,MAAI,aAAa,MAAM,GAAG;AACxB,QAAI,MAAM,aAAa,MAAM,OAAO;AACpC,aAAS,MAAM,aAAa,MAAM,OAAO;AACzC,UAAM,MAAM,KAAK,IAAI,sBAAsB,CAAC;AAC5C,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,cAAc,QAAQ,MAAM,aAAa,KAAK;AAEpD,QAAM,MAAM,KAAK,MAAM,sCAAsC,CAAC;AAChE;","names":[]}
1
+ {"version":3,"sources":["../../src/cli/commands/fund.ts"],"sourcesContent":["import type { Command } from '@/types';\nimport { intro, log as clackLog, outro } from '@clack/prompts';\nimport chalk from 'chalk';\nimport { promptDeposit } from '@/cli/lib/deposit';\nimport { log } from '@/shared/log';\nimport { getWallet } from '@/wallet';\n\nexport const fundMcpServer: Command = async args => {\n intro(chalk.bold(`Fund ${chalk.hex('#2563eb')('agentcash MCP')}`));\n\n const walletResult = await getWallet();\n\n if (walletResult.isErr()) {\n log.error(walletResult.error.message);\n clackLog.error(walletResult.error.message);\n outro(chalk.bold.red('Failed to get wallet'));\n process.exit(1);\n }\n\n await promptDeposit('fund', args, walletResult.value);\n\n outro(chalk.bold.green('Your agentcash MCP server is funded!'));\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,SAAS,OAAO,OAAO,UAAU,aAAa;AAC9C,OAAO,WAAW;AAKX,IAAM,gBAAyB,OAAM,SAAQ;AAClD,QAAM,MAAM,KAAK,QAAQ,MAAM,IAAI,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC;AAEjE,QAAM,eAAe,MAAM,UAAU;AAErC,MAAI,aAAa,MAAM,GAAG;AACxB,QAAI,MAAM,aAAa,MAAM,OAAO;AACpC,aAAS,MAAM,aAAa,MAAM,OAAO;AACzC,UAAM,MAAM,KAAK,IAAI,sBAAsB,CAAC;AAC5C,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,cAAc,QAAQ,MAAM,aAAa,KAAK;AAEpD,QAAM,MAAM,KAAK,MAAM,sCAAsC,CAAC;AAChE;","names":[]}
package/dist/esm/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-YIU364NZ.js";
8
8
  import {
9
9
  MCP_VERSION
10
- } from "./chunk-TCXITLKU.js";
10
+ } from "./chunk-XC5JT2NQ.js";
11
11
  import {
12
12
  paymentNetworks,
13
13
  paymentProtocols,
@@ -117,7 +117,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
117
117
  DESCRIPTIONS.fetch.epilogue
118
118
  ),
119
119
  async (args) => {
120
- const { fetchCommand } = await import("./fetch-WACX4GKY.js");
120
+ const { fetchCommand } = await import("./fetch-GPYZNSPB.js");
121
121
  await fetchCommand(args);
122
122
  }
123
123
  ).command(
@@ -129,7 +129,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
129
129
  DESCRIPTIONS.fetchWithAuth.epilogue
130
130
  ),
131
131
  async (args) => {
132
- const { fetchCommand } = await import("./fetch-WACX4GKY.js");
132
+ const { fetchCommand } = await import("./fetch-GPYZNSPB.js");
133
133
  await fetchCommand(args);
134
134
  }
135
135
  ).command(
@@ -173,7 +173,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
173
173
  demandOption: true
174
174
  }),
175
175
  async (args) => {
176
- const { tryCommand } = await import("./try-2JMNINOB.js");
176
+ const { tryCommand } = await import("./try-36SR5JEG.js");
177
177
  await tryCommand(args);
178
178
  }
179
179
  ).command(
@@ -185,7 +185,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
185
185
  demandOption: true
186
186
  }),
187
187
  async (args) => {
188
- const { searchCommand } = await import("./search-FDAGE4G3.js");
188
+ const { searchCommand } = await import("./search-WV2FO7OG.js");
189
189
  await searchCommand(args);
190
190
  }
191
191
  ).command(
@@ -200,7 +200,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
200
200
  description: TOOL_PARAMS.discoverApiEndpoints.includeGuidance
201
201
  }).epilogue(DESCRIPTIONS.discoverApiEndpoints.epilogue),
202
202
  async (args) => {
203
- const { discoverCommand } = await import("./discover-PMVCPMAP.js");
203
+ const { discoverCommand } = await import("./discover-654M2PZ3.js");
204
204
  await discoverCommand(args);
205
205
  }
206
206
  ).command(
@@ -212,7 +212,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
212
212
  demandOption: true
213
213
  }),
214
214
  async (args) => {
215
- const { registerCommand } = await import("./register-UN5RG5QY.js");
215
+ const { registerCommand } = await import("./register-AD43YD5O.js");
216
216
  await registerCommand(args);
217
217
  }
218
218
  ).command(
@@ -224,7 +224,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
224
224
  demandOption: true
225
225
  }),
226
226
  async (args) => {
227
- const { addSkillCommand } = await import("./add-skill-5O3R2PAD.js");
227
+ const { addSkillCommand } = await import("./add-skill-JHBOH5SG.js");
228
228
  await addSkillCommand(args);
229
229
  }
230
230
  ).command(
@@ -239,7 +239,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
239
239
  demandOption: true
240
240
  }),
241
241
  async (args) => {
242
- const { originsAddCommand } = await import("./origins-UCEONL2Q.js");
242
+ const { originsAddCommand } = await import("./origins-JAC2K5A4.js");
243
243
  await originsAddCommand(args);
244
244
  }
245
245
  ).command(
@@ -247,7 +247,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
247
247
  "List all registered origins",
248
248
  (yargs3) => yargs3,
249
249
  async (args) => {
250
- const { originsListCommand } = await import("./origins-UCEONL2Q.js");
250
+ const { originsListCommand } = await import("./origins-JAC2K5A4.js");
251
251
  await originsListCommand(args);
252
252
  }
253
253
  ).command(
@@ -259,7 +259,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
259
259
  demandOption: true
260
260
  }),
261
261
  async (args) => {
262
- const { originsRemoveCommand } = await import("./origins-UCEONL2Q.js");
262
+ const { originsRemoveCommand } = await import("./origins-JAC2K5A4.js");
263
263
  await originsRemoveCommand(args);
264
264
  }
265
265
  ).demandCommand(1, "You must specify an origins subcommand").strict(),
@@ -273,7 +273,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
273
273
  description: "The invite code to redeem (optional)"
274
274
  }),
275
275
  async (args) => {
276
- const { onboardCommand } = await import("./onboard-YNZPSS34.js");
276
+ const { onboardCommand } = await import("./onboard-5SZ6ZCM5.js");
277
277
  await onboardCommand({ ...args, code: args.code ?? args.invite });
278
278
  }
279
279
  ).command(
@@ -284,7 +284,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
284
284
  "Deprecated alias. Prints migration guidance for 'balance' and 'accounts'.",
285
285
  (yargs3) => yargs3,
286
286
  async (args) => {
287
- const { legacyWalletInfoCommand } = await import("./wallet-IWRIAD6V.js");
287
+ const { legacyWalletInfoCommand } = await import("./wallet-QOS3FPSF.js");
288
288
  await legacyWalletInfoCommand(args);
289
289
  }
290
290
  ).command(
@@ -292,7 +292,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
292
292
  "Deprecated alias. Prints migration guidance for 'balance'.",
293
293
  (yargs3) => yargs3,
294
294
  async (args) => {
295
- const { legacyWalletBalanceCommand } = await import("./wallet-IWRIAD6V.js");
295
+ const { legacyWalletBalanceCommand } = await import("./wallet-QOS3FPSF.js");
296
296
  await legacyWalletBalanceCommand(args);
297
297
  }
298
298
  ).command(
@@ -304,7 +304,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
304
304
  demandOption: true
305
305
  }),
306
306
  async (args) => {
307
- const { legacyWalletRedeemCommand } = await import("./wallet-IWRIAD6V.js");
307
+ const { legacyWalletRedeemCommand } = await import("./wallet-QOS3FPSF.js");
308
308
  await legacyWalletRedeemCommand(args);
309
309
  }
310
310
  ).command(
@@ -312,7 +312,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
312
312
  "Deprecated alias for wallet address lookup.",
313
313
  (yargs3) => yargs3,
314
314
  async (args) => {
315
- const { legacyWalletAddressCommand } = await import("./wallet-IWRIAD6V.js");
315
+ const { legacyWalletAddressCommand } = await import("./wallet-QOS3FPSF.js");
316
316
  await legacyWalletAddressCommand(args);
317
317
  }
318
318
  ).demandCommand(1, "You must specify a wallet subcommand").strict(),
@@ -323,7 +323,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
323
323
  DESCRIPTIONS.getBalance.cli,
324
324
  (yargs2) => yargs2,
325
325
  async (args) => {
326
- const { getBalanceCommand } = await import("./wallet-IWRIAD6V.js");
326
+ const { getBalanceCommand } = await import("./wallet-QOS3FPSF.js");
327
327
  await getBalanceCommand(args);
328
328
  }
329
329
  ).command(
@@ -331,7 +331,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
331
331
  DESCRIPTIONS.listAccounts.cli,
332
332
  (yargs2) => yargs2,
333
333
  async (args) => {
334
- const { listAccountsCommand } = await import("./wallet-IWRIAD6V.js");
334
+ const { listAccountsCommand } = await import("./wallet-QOS3FPSF.js");
335
335
  await listAccountsCommand(args);
336
336
  }
337
337
  ).command(
@@ -343,7 +343,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
343
343
  demandOption: true
344
344
  }),
345
345
  async (args) => {
346
- const { walletRedeemCommand } = await import("./wallet-IWRIAD6V.js");
346
+ const { walletRedeemCommand } = await import("./wallet-QOS3FPSF.js");
347
347
  await walletRedeemCommand(args);
348
348
  }
349
349
  ).command(
@@ -402,7 +402,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
402
402
  description: TOOL_PARAMS.reportError.fullReport
403
403
  }),
404
404
  async (args) => {
405
- const { reportErrorCommand } = await import("./report-error-PIRP6TAE.js");
405
+ const { reportErrorCommand } = await import("./report-error-V2J7LNUZ.js");
406
406
  await reportErrorCommand(args);
407
407
  }
408
408
  ).command(
@@ -424,7 +424,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
424
424
  required: true
425
425
  }),
426
426
  async (args) => {
427
- const { bridgeCommand } = await import("./bridge-3T5NWKDE.js");
427
+ const { bridgeCommand } = await import("./bridge-YU2PE54M.js");
428
428
  await bridgeCommand(args);
429
429
  }
430
430
  ).command(
@@ -432,7 +432,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
432
432
  "Start the MCP server (default when no command specified)",
433
433
  (yargs2) => yargs2,
434
434
  async (args) => {
435
- const { serverCommand } = await import("./server-PEG4DEHG.js");
435
+ const { serverCommand } = await import("./server-RHVPZZ4R.js");
436
436
  await serverCommand(args);
437
437
  }
438
438
  ).command(
@@ -446,7 +446,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
446
446
  default: isClaudeCode ? "claude-code" /* ClaudeCode */ : void 0
447
447
  }),
448
448
  async (args) => {
449
- const { installMcpServer } = await import("./install-KTU4GOMT.js");
449
+ const { installMcpServer } = await import("./install-D2IVOSIS.js");
450
450
  await installMcpServer(args);
451
451
  }
452
452
  ).command(
@@ -454,7 +454,7 @@ void yargs(hideBin(process.argv)).scriptName("agentcash").usage("$0 [command] [o
454
454
  "Open the funding page to add USDC to your wallet",
455
455
  (yargs2) => yargs2,
456
456
  async (args) => {
457
- const { fundMcpServer } = await import("./fund-QLGZGIUE.js");
457
+ const { fundMcpServer } = await import("./fund-HHL4QEU5.js");
458
458
  await fundMcpServer(args);
459
459
  }
460
460
  ).example(
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  promptDeposit
3
- } from "./chunk-54KBJ4F6.js";
3
+ } from "./chunk-BNFMFAEF.js";
4
4
  import {
5
5
  addServer
6
- } from "./chunk-DBP743M5.js";
6
+ } from "./chunk-7ZLVTQTS.js";
7
7
  import {
8
8
  wait
9
9
  } from "./chunk-DZNSJ2BA.js";
10
10
  import {
11
11
  redeemInviteCode
12
- } from "./chunk-CWU2QWNS.js";
12
+ } from "./chunk-MSNAPI5G.js";
13
13
  import {
14
14
  Clients,
15
15
  clientMetadata
16
16
  } from "./chunk-27DZCYDB.js";
17
- import "./chunk-TCXITLKU.js";
17
+ import "./chunk-XC5JT2NQ.js";
18
18
  import "./chunk-ISF2WVEZ.js";
19
19
  import {
20
20
  getBalance
21
- } from "./chunk-NQ7OJNSO.js";
22
- import "./chunk-QCP7Q6UF.js";
21
+ } from "./chunk-KJCWPVQE.js";
22
+ import "./chunk-BFOYXXLG.js";
23
23
  import {
24
24
  getWallet
25
25
  } from "./chunk-F3KGAMIA.js";
@@ -27,6 +27,7 @@ import {
27
27
  getTxExplorerUrl
28
28
  } from "./chunk-NPJV7AMV.js";
29
29
  import "./chunk-KVSTJRSJ.js";
30
+ import "./chunk-U6FRXL3X.js";
30
31
  import {
31
32
  log
32
33
  } from "./chunk-QZCSZB7E.js";
@@ -175,4 +176,4 @@ var installMcpServer = async (args) => {
175
176
  export {
176
177
  installMcpServer
177
178
  };
178
- //# sourceMappingURL=install-KTU4GOMT.js.map
179
+ //# sourceMappingURL=install-D2IVOSIS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/install/index.ts","../../src/cli/commands/install/1-get-client/index.ts","../../src/cli/commands/install/3-redeem-invite/index.ts","../../src/cli/commands/install/4-add-funds/index.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { intro, outro } from '@clack/prompts';\n\nimport { log } from '@/shared/log';\n\nimport { getClient } from './1-get-client';\nimport { addServer } from './2-add-server';\nimport { redeemInviteCode } from './3-redeem-invite';\nimport { addFunds } from './4-add-funds';\n\nimport { getWallet } from '@/wallet';\n\nimport type { Command } from '@/types';\nimport type { Clients } from './clients';\n\nexport interface InstallArgs {\n client?: Clients;\n}\n\nexport const installMcpServer: Command<InstallArgs> = async args => {\n intro(chalk.green.bold(`Install agentcash MCP`));\n\n const walletResult = await getWallet();\n\n if (walletResult.isErr()) {\n log.error(JSON.stringify(walletResult.error, null, 2));\n outro(chalk.bold.red('Failed to get wallet'));\n process.exit(1);\n }\n\n const client = await getClient(args);\n\n await addServer(client, args);\n\n const inviteRedeemed = args.invite\n ? await redeemInviteCode(\n {\n ...args,\n code: args.invite,\n },\n walletResult.value\n )\n : false;\n\n if (!inviteRedeemed) {\n await addFunds({\n args,\n wallets: walletResult.value,\n });\n }\n\n outro(chalk.bold.green('Your agentcash MCP server is ready to use!'));\n};\n","import z from 'zod';\n\nimport { select, outro } from '@clack/prompts';\n\nimport chalk from 'chalk';\n\nimport { clientMetadata, Clients } from '../clients';\n\nimport type { InstallArgs } from '..';\nimport type { GlobalFlags } from '@/types';\n\nexport const getClient = async ({ client, yes }: GlobalFlags<InstallArgs>) => {\n if (yes) {\n if (!client) {\n throw new Error(\n `Client is required when yes is true. Pass --client as one of these values: ${Object.values(Clients).join(', ')}`\n );\n }\n return client;\n }\n if (client) {\n return client;\n }\n const selectedClient = await select({\n message: 'Where would you like to install the agentcash MCP server?',\n options: Object.values(Clients).map(client => {\n const metadata = clientMetadata[client];\n return {\n label: metadata.name,\n value: client,\n };\n }),\n maxItems: 7,\n });\n\n const parsedClientSelection = z.enum(Clients).safeParse(selectedClient);\n if (parsedClientSelection.success) {\n return parsedClientSelection.data;\n }\n outro(chalk.bold.red('No MCP client selected'));\n process.exit(0);\n};\n","import chalk from 'chalk';\nimport { log, spinner } from '@clack/prompts';\n\nimport { wait } from '@/cli/lib/wait';\n\nimport { redeemInviteCode as redeemInviteCodeLib } from '@/shared/redeem-invite';\nimport { getTxExplorerUrl, Network } from '@agentcash/networks';\n\nimport type { RedeemInviteArgs } from '@/shared/redeem-invite';\nimport type { GlobalFlags } from '@/types';\nimport type { Wallets } from '@/wallet';\n\nconst SURFACE = 'cli:redeem-invite';\n\nexport const redeemInviteCode = async (\n args: GlobalFlags<RedeemInviteArgs>,\n wallets: Wallets\n) => {\n const s = spinner();\n\n if (!args.yes) {\n s.start('Redeeming invite code...');\n }\n\n const result = await redeemInviteCodeLib(SURFACE, args, args, wallets);\n\n return result.match(\n async ({ amount, txHash, network }) => {\n if (!args.yes) {\n s.stop('Invite code redeemed successfully!');\n\n await wait({\n startText: 'Processing...',\n stopText: chalk.green(\n `${chalk.bold(amount)} USDC has been sent to your wallet!`\n ),\n ms: 1000,\n });\n }\n\n const resolvedNetwork =\n network === Network.SOLANA ? Network.SOLANA : Network.BASE;\n log.info(\n chalk.dim(`Transaction: ${getTxExplorerUrl(txHash, resolvedNetwork)}`)\n );\n\n return true;\n },\n error => {\n if (!args.yes) {\n s.stop('Invite code redemption failed');\n }\n log.warning(\n chalk.yellow(`Failed to redeem invite code: ${error.message}`)\n );\n return false;\n }\n );\n};\n","import chalk from 'chalk';\nimport { log, spinner } from '@clack/prompts';\n\nimport { getBalance } from '@/shared/balance';\nimport { promptDeposit } from '@/cli/lib/deposit';\n\nimport { Network } from '@agentcash/networks';\n\nimport type { Wallets } from '@/wallet';\nimport type { GlobalFlags } from '@/types';\n\ninterface AddFundsProps {\n args: GlobalFlags;\n wallets: Wallets;\n}\n\nexport const addFunds = async ({ args, wallets }: AddFundsProps) => {\n const { start, stop } = spinner();\n\n start('Checking balance...');\n const balanceResult = await getBalance(\n 'add-funds',\n {\n address: wallets.evm.address,\n network: Network.BASE,\n },\n args\n );\n\n if (balanceResult.isOk()) {\n stop(`Balance: ${chalk.bold(`${balanceResult.value.balance} USDC`)} `);\n } else {\n stop(`Error: ${balanceResult.error.message}`);\n return;\n }\n\n const balance = balanceResult.value.balance;\n\n if (balance === 0) {\n log.info('To use paid API tools, you will need USDC in your wallet.');\n await promptDeposit('add-funds', args, wallets);\n } else {\n if (balance < 1) {\n log.warning(\n chalk.bold(`Your balance is low ($${balance}). Consider topping up.`)\n );\n await promptDeposit('install', args, wallets);\n }\n }\n};\n"],"mappings":"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","names":["chalk","outro","client","chalk","log","redeemInviteCode","chalk","log","chalk","log","spinner","spinner","chalk","log","chalk","outro","redeemInviteCode"]}
1
+ {"version":3,"sources":["../../src/cli/commands/install/index.ts","../../src/cli/commands/install/1-get-client/index.ts","../../src/cli/commands/install/3-redeem-invite/index.ts","../../src/cli/commands/install/4-add-funds/index.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { intro, outro } from '@clack/prompts';\n\nimport { log } from '@/shared/log';\n\nimport { getClient } from './1-get-client';\nimport { addServer } from './2-add-server';\nimport { redeemInviteCode } from './3-redeem-invite';\nimport { addFunds } from './4-add-funds';\n\nimport { getWallet } from '@/wallet';\n\nimport type { Command } from '@/types';\nimport type { Clients } from './clients';\n\nexport interface InstallArgs {\n client?: Clients;\n}\n\nexport const installMcpServer: Command<InstallArgs> = async args => {\n intro(chalk.green.bold(`Install agentcash MCP`));\n\n const walletResult = await getWallet();\n\n if (walletResult.isErr()) {\n log.error(JSON.stringify(walletResult.error, null, 2));\n outro(chalk.bold.red('Failed to get wallet'));\n process.exit(1);\n }\n\n const client = await getClient(args);\n\n await addServer(client, args);\n\n const inviteRedeemed = args.invite\n ? await redeemInviteCode(\n {\n ...args,\n code: args.invite,\n },\n walletResult.value\n )\n : false;\n\n if (!inviteRedeemed) {\n await addFunds({\n args,\n wallets: walletResult.value,\n });\n }\n\n outro(chalk.bold.green('Your agentcash MCP server is ready to use!'));\n};\n","import z from 'zod';\n\nimport { select, outro } from '@clack/prompts';\n\nimport chalk from 'chalk';\n\nimport { clientMetadata, Clients } from '../clients';\n\nimport type { InstallArgs } from '..';\nimport type { GlobalFlags } from '@/types';\n\nexport const getClient = async ({ client, yes }: GlobalFlags<InstallArgs>) => {\n if (yes) {\n if (!client) {\n throw new Error(\n `Client is required when yes is true. Pass --client as one of these values: ${Object.values(Clients).join(', ')}`\n );\n }\n return client;\n }\n if (client) {\n return client;\n }\n const selectedClient = await select({\n message: 'Where would you like to install the agentcash MCP server?',\n options: Object.values(Clients).map(client => {\n const metadata = clientMetadata[client];\n return {\n label: metadata.name,\n value: client,\n };\n }),\n maxItems: 7,\n });\n\n const parsedClientSelection = z.enum(Clients).safeParse(selectedClient);\n if (parsedClientSelection.success) {\n return parsedClientSelection.data;\n }\n outro(chalk.bold.red('No MCP client selected'));\n process.exit(0);\n};\n","import chalk from 'chalk';\nimport { log, spinner } from '@clack/prompts';\n\nimport { wait } from '@/cli/lib/wait';\n\nimport { redeemInviteCode as redeemInviteCodeLib } from '@/shared/redeem-invite';\nimport { getTxExplorerUrl, Network } from '@agentcash/networks';\n\nimport type { RedeemInviteArgs } from '@/shared/redeem-invite';\nimport type { GlobalFlags } from '@/types';\nimport type { Wallets } from '@/wallet';\n\nconst SURFACE = 'cli:redeem-invite';\n\nexport const redeemInviteCode = async (\n args: GlobalFlags<RedeemInviteArgs>,\n wallets: Wallets\n) => {\n const s = spinner();\n\n if (!args.yes) {\n s.start('Redeeming invite code...');\n }\n\n const result = await redeemInviteCodeLib(SURFACE, args, args, wallets);\n\n return result.match(\n async ({ amount, txHash, network }) => {\n if (!args.yes) {\n s.stop('Invite code redeemed successfully!');\n\n await wait({\n startText: 'Processing...',\n stopText: chalk.green(\n `${chalk.bold(amount)} USDC has been sent to your wallet!`\n ),\n ms: 1000,\n });\n }\n\n const resolvedNetwork =\n network === Network.SOLANA ? Network.SOLANA : Network.BASE;\n log.info(\n chalk.dim(`Transaction: ${getTxExplorerUrl(txHash, resolvedNetwork)}`)\n );\n\n return true;\n },\n error => {\n if (!args.yes) {\n s.stop('Invite code redemption failed');\n }\n log.warning(\n chalk.yellow(`Failed to redeem invite code: ${error.message}`)\n );\n return false;\n }\n );\n};\n","import chalk from 'chalk';\nimport { log, spinner } from '@clack/prompts';\n\nimport { getBalance } from '@/shared/balance';\nimport { promptDeposit } from '@/cli/lib/deposit';\n\nimport { Network } from '@agentcash/networks';\n\nimport type { Wallets } from '@/wallet';\nimport type { GlobalFlags } from '@/types';\n\ninterface AddFundsProps {\n args: GlobalFlags;\n wallets: Wallets;\n}\n\nexport const addFunds = async ({ args, wallets }: AddFundsProps) => {\n const { start, stop } = spinner();\n\n start('Checking balance...');\n const balanceResult = await getBalance(\n 'add-funds',\n {\n address: wallets.evm.address,\n network: Network.BASE,\n },\n args\n );\n\n if (balanceResult.isOk()) {\n stop(`Balance: ${chalk.bold(`${balanceResult.value.balance} USDC`)} `);\n } else {\n stop(`Error: ${balanceResult.error.message}`);\n return;\n }\n\n const balance = balanceResult.value.balance;\n\n if (balance === 0) {\n log.info('To use paid API tools, you will need USDC in your wallet.');\n await promptDeposit('add-funds', args, wallets);\n } else {\n if (balance < 1) {\n log.warning(\n chalk.bold(`Your balance is low ($${balance}). Consider topping up.`)\n );\n await promptDeposit('install', args, wallets);\n }\n }\n};\n"],"mappings":"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","names":["chalk","outro","client","chalk","log","redeemInviteCode","chalk","log","chalk","log","spinner","spinner","chalk","log","chalk","outro","redeemInviteCode"]}