agentwallet-sdk 5.1.1 → 6.0.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.
- package/LICENSE +21 -0
- package/README.md +463 -24
- package/dist/bridge/__tests__/solana.test.d.ts +2 -0
- package/dist/bridge/__tests__/solana.test.d.ts.map +1 -0
- package/dist/bridge/__tests__/solana.test.js +106 -0
- package/dist/bridge/__tests__/solana.test.js.map +1 -0
- package/dist/bridge/client.d.ts +21 -7
- package/dist/bridge/client.d.ts.map +1 -1
- package/dist/bridge/client.js +16 -1
- package/dist/bridge/client.js.map +1 -1
- package/dist/bridge/index.d.ts +12 -1
- package/dist/bridge/index.d.ts.map +1 -1
- package/dist/bridge/index.js +11 -0
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/solana.d.ts +132 -0
- package/dist/bridge/solana.d.ts.map +1 -0
- package/dist/bridge/solana.js +313 -0
- package/dist/bridge/solana.js.map +1 -0
- package/dist/bridge/types.d.ts +35 -10
- package/dist/bridge/types.d.ts.map +1 -1
- package/dist/bridge/types.js +16 -4
- package/dist/bridge/types.js.map +1 -1
- package/dist/escrow/MutualStakeEscrow.d.ts.map +1 -1
- package/dist/escrow/MutualStakeEscrow.js +3 -5
- package/dist/escrow/MutualStakeEscrow.js.map +1 -1
- package/dist/index.d.ts +192 -469
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -8
- package/dist/index.js.map +1 -1
- package/dist/policy/SpendingPolicy.test.js.map +1 -1
- package/dist/swap/SwapModule.d.ts +17 -3
- package/dist/swap/SwapModule.d.ts.map +1 -1
- package/dist/swap/SwapModule.js +21 -5
- package/dist/swap/SwapModule.js.map +1 -1
- package/dist/swap/index.d.ts +9 -2
- package/dist/swap/index.d.ts.map +1 -1
- package/dist/swap/index.js +8 -1
- package/dist/swap/index.js.map +1 -1
- package/dist/swap/types.d.ts +58 -1
- package/dist/swap/types.d.ts.map +1 -1
- package/dist/swap/types.js +56 -1
- package/dist/swap/types.js.map +1 -1
- package/dist/tokens/__tests__/decimals.test.d.ts +2 -0
- package/dist/tokens/__tests__/decimals.test.d.ts.map +1 -0
- package/dist/tokens/__tests__/decimals.test.js +107 -0
- package/dist/tokens/__tests__/decimals.test.js.map +1 -0
- package/dist/tokens/__tests__/registry.test.d.ts +2 -0
- package/dist/tokens/__tests__/registry.test.d.ts.map +1 -0
- package/dist/tokens/__tests__/registry.test.js +191 -0
- package/dist/tokens/__tests__/registry.test.js.map +1 -0
- package/dist/tokens/__tests__/transfers.test.d.ts +2 -0
- package/dist/tokens/__tests__/transfers.test.d.ts.map +1 -0
- package/dist/tokens/__tests__/transfers.test.js +103 -0
- package/dist/tokens/__tests__/transfers.test.js.map +1 -0
- package/dist/tokens/decimals.d.ts +65 -0
- package/dist/tokens/decimals.d.ts.map +1 -0
- package/dist/tokens/decimals.js +112 -0
- package/dist/tokens/decimals.js.map +1 -0
- package/dist/tokens/index.d.ts +14 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.js +14 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/registry.d.ts +82 -0
- package/dist/tokens/registry.d.ts.map +1 -0
- package/dist/tokens/registry.js +293 -0
- package/dist/tokens/registry.js.map +1 -0
- package/dist/tokens/solana.d.ts +108 -0
- package/dist/tokens/solana.d.ts.map +1 -0
- package/dist/tokens/solana.js +306 -0
- package/dist/tokens/solana.js.map +1 -0
- package/dist/tokens/transfers.d.ts +95 -0
- package/dist/tokens/transfers.d.ts.map +1 -0
- package/dist/tokens/transfers.js +196 -0
- package/dist/tokens/transfers.js.map +1 -0
- package/dist/types.d.ts +20 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -1
- package/dist/x402/__tests__/client.test.js +77 -5
- package/dist/x402/__tests__/client.test.js.map +1 -1
- package/dist/x402/chains/abstract/index.d.ts.map +1 -1
- package/dist/x402/chains/abstract/index.js.map +1 -1
- package/dist/x402/chains/stellar/index.d.ts +149 -0
- package/dist/x402/chains/stellar/index.d.ts.map +1 -0
- package/dist/x402/chains/stellar/index.js +199 -0
- package/dist/x402/chains/stellar/index.js.map +1 -0
- package/dist/x402/client.d.ts +7 -1
- package/dist/x402/client.d.ts.map +1 -1
- package/dist/x402/client.js +24 -13
- package/dist/x402/client.js.map +1 -1
- package/dist/x402/index.d.ts +1 -0
- package/dist/x402/index.d.ts.map +1 -1
- package/dist/x402/index.js +2 -0
- package/dist/x402/index.js.map +1 -1
- package/dist/x402/middleware.d.ts.map +1 -1
- package/dist/x402/middleware.js +0 -3
- package/dist/x402/middleware.js.map +1 -1
- package/dist/x402/multi-asset.d.ts +54 -0
- package/dist/x402/multi-asset.d.ts.map +1 -0
- package/dist/x402/multi-asset.js +123 -0
- package/dist/x402/multi-asset.js.map +1 -0
- package/dist/x402/types.d.ts +22 -3
- package/dist/x402/types.d.ts.map +1 -1
- package/dist/x402/types.js +34 -4
- package/dist/x402/types.js.map +1 -1
- package/package.json +21 -6
- package/dist/ap2/index.d.ts +0 -185
- package/dist/ap2/index.d.ts.map +0 -1
- package/dist/ap2/index.js +0 -255
- package/dist/ap2/index.js.map +0 -1
- package/dist/bridge/unified.d.ts +0 -101
- package/dist/bridge/unified.d.ts.map +0 -1
- package/dist/bridge/unified.js +0 -284
- package/dist/bridge/unified.js.map +0 -1
- package/dist/chains.d.ts +0 -62
- package/dist/chains.d.ts.map +0 -1
- package/dist/chains.js +0 -108
- package/dist/chains.js.map +0 -1
- package/dist/fiat/index.d.ts +0 -10
- package/dist/fiat/index.d.ts.map +0 -1
- package/dist/fiat/index.js +0 -9
- package/dist/fiat/index.js.map +0 -1
- package/dist/fiat/onramp.d.ts +0 -101
- package/dist/fiat/onramp.d.ts.map +0 -1
- package/dist/fiat/onramp.js +0 -155
- package/dist/fiat/onramp.js.map +0 -1
- package/dist/fiat/providers/index.d.ts +0 -16
- package/dist/fiat/providers/index.d.ts.map +0 -1
- package/dist/fiat/providers/index.js +0 -30
- package/dist/fiat/providers/index.js.map +0 -1
- package/dist/fiat/providers/moonpay.d.ts +0 -22
- package/dist/fiat/providers/moonpay.d.ts.map +0 -1
- package/dist/fiat/providers/moonpay.js +0 -107
- package/dist/fiat/providers/moonpay.js.map +0 -1
- package/dist/fiat/providers/stripe.d.ts +0 -26
- package/dist/fiat/providers/stripe.d.ts.map +0 -1
- package/dist/fiat/providers/stripe.js +0 -135
- package/dist/fiat/providers/stripe.js.map +0 -1
- package/dist/fiat/providers/transak.d.ts +0 -26
- package/dist/fiat/providers/transak.d.ts.map +0 -1
- package/dist/fiat/providers/transak.js +0 -119
- package/dist/fiat/providers/transak.js.map +0 -1
- package/dist/fiat/types.d.ts +0 -106
- package/dist/fiat/types.d.ts.map +0 -1
- package/dist/fiat/types.js +0 -13
- package/dist/fiat/types.js.map +0 -1
- package/dist/flash/executor.d.ts +0 -119
- package/dist/flash/executor.d.ts.map +0 -1
- package/dist/flash/executor.js +0 -195
- package/dist/flash/executor.js.map +0 -1
- package/dist/flash/index.d.ts +0 -28
- package/dist/flash/index.d.ts.map +0 -1
- package/dist/flash/index.js +0 -29
- package/dist/flash/index.js.map +0 -1
- package/dist/flash/scanner.d.ts +0 -133
- package/dist/flash/scanner.d.ts.map +0 -1
- package/dist/flash/scanner.js +0 -212
- package/dist/flash/scanner.js.map +0 -1
- package/dist/flash/types.d.ts +0 -136
- package/dist/flash/types.d.ts.map +0 -1
- package/dist/flash/types.js +0 -23
- package/dist/flash/types.js.map +0 -1
- package/dist/gas/index.d.ts +0 -4
- package/dist/gas/index.d.ts.map +0 -1
- package/dist/gas/index.js +0 -3
- package/dist/gas/index.js.map +0 -1
- package/dist/gas/sponsor.d.ts +0 -70
- package/dist/gas/sponsor.d.ts.map +0 -1
- package/dist/gas/sponsor.js +0 -193
- package/dist/gas/sponsor.js.map +0 -1
- package/dist/gas/types.d.ts +0 -76
- package/dist/gas/types.d.ts.map +0 -1
- package/dist/gas/types.js +0 -21
- package/dist/gas/types.js.map +0 -1
- package/dist/identity/agent-identity.d.ts +0 -276
- package/dist/identity/agent-identity.d.ts.map +0 -1
- package/dist/identity/agent-identity.js +0 -300
- package/dist/identity/agent-identity.js.map +0 -1
- package/dist/identity/email-resolver.d.ts +0 -235
- package/dist/identity/email-resolver.js +0 -283
- package/dist/identity/erc6551.d.ts +0 -441
- package/dist/identity/erc6551.d.ts.map +0 -1
- package/dist/identity/erc6551.js +0 -517
- package/dist/identity/erc6551.js.map +0 -1
- package/dist/mev/index.d.ts +0 -4
- package/dist/mev/index.d.ts.map +0 -1
- package/dist/mev/index.js +0 -8
- package/dist/mev/index.js.map +0 -1
- package/dist/mev/protection.d.ts +0 -54
- package/dist/mev/protection.d.ts.map +0 -1
- package/dist/mev/protection.js +0 -185
- package/dist/mev/protection.js.map +0 -1
- package/dist/mev/risk.d.ts +0 -19
- package/dist/mev/risk.d.ts.map +0 -1
- package/dist/mev/risk.js +0 -95
- package/dist/mev/risk.js.map +0 -1
- package/dist/mev/types.d.ts +0 -49
- package/dist/mev/types.d.ts.map +0 -1
- package/dist/mev/types.js +0 -2
- package/dist/mev/types.js.map +0 -1
- package/dist/plugins/elizaos.d.ts +0 -52
- package/dist/plugins/elizaos.d.ts.map +0 -1
- package/dist/plugins/elizaos.js +0 -89
- package/dist/plugins/elizaos.js.map +0 -1
- package/dist/settlement/index.d.ts +0 -4
- package/dist/settlement/index.d.ts.map +0 -1
- package/dist/settlement/index.js +0 -3
- package/dist/settlement/index.js.map +0 -1
- package/dist/settlement/types.d.ts +0 -66
- package/dist/settlement/types.d.ts.map +0 -1
- package/dist/settlement/types.js +0 -37
- package/dist/settlement/types.js.map +0 -1
- package/dist/settlement/verifier.d.ts +0 -75
- package/dist/settlement/verifier.d.ts.map +0 -1
- package/dist/settlement/verifier.js +0 -354
- package/dist/settlement/verifier.js.map +0 -1
- package/dist/solana/bridge.d.ts +0 -144
- package/dist/solana/bridge.d.ts.map +0 -1
- package/dist/solana/bridge.js +0 -352
- package/dist/solana/bridge.js.map +0 -1
- package/dist/solana/index.d.ts +0 -8
- package/dist/solana/index.d.ts.map +0 -1
- package/dist/solana/index.js +0 -6
- package/dist/solana/index.js.map +0 -1
- package/dist/solana/swap.d.ts +0 -85
- package/dist/solana/swap.d.ts.map +0 -1
- package/dist/solana/swap.js +0 -173
- package/dist/solana/swap.js.map +0 -1
- package/dist/solana/types.d.ts +0 -126
- package/dist/solana/types.d.ts.map +0 -1
- package/dist/solana/types.js +0 -10
- package/dist/solana/types.js.map +0 -1
- package/dist/solana/wallet.d.ts +0 -83
- package/dist/solana/wallet.d.ts.map +0 -1
- package/dist/solana/wallet.js +0 -164
- package/dist/solana/wallet.js.map +0 -1
- package/dist/solana/x402.d.ts +0 -69
- package/dist/solana/x402.d.ts.map +0 -1
- package/dist/solana/x402.js +0 -154
- package/dist/solana/x402.js.map +0 -1
- package/dist/solver/adapter.d.ts +0 -47
- package/dist/solver/adapter.d.ts.map +0 -1
- package/dist/solver/adapter.js +0 -146
- package/dist/solver/adapter.js.map +0 -1
- package/dist/solver/analyzer.d.ts +0 -48
- package/dist/solver/analyzer.d.ts.map +0 -1
- package/dist/solver/analyzer.js +0 -171
- package/dist/solver/analyzer.js.map +0 -1
- package/dist/solver/builder.d.ts +0 -31
- package/dist/solver/builder.d.ts.map +0 -1
- package/dist/solver/builder.js +0 -60
- package/dist/solver/builder.js.map +0 -1
- package/dist/solver/index.d.ts +0 -22
- package/dist/solver/index.d.ts.map +0 -1
- package/dist/solver/index.js +0 -25
- package/dist/solver/index.js.map +0 -1
- package/dist/solver/types.d.ts +0 -115
- package/dist/solver/types.d.ts.map +0 -1
- package/dist/solver/types.js +0 -10
- package/dist/solver/types.js.map +0 -1
- package/dist/spend-guard/index.d.ts +0 -125
- package/dist/spend-guard/index.d.ts.map +0 -1
- package/dist/spend-guard/index.js +0 -150
- package/dist/spend-guard/index.js.map +0 -1
- package/dist/swap/router/cache.d.ts +0 -13
- package/dist/swap/router/cache.d.ts.map +0 -1
- package/dist/swap/router/cache.js +0 -30
- package/dist/swap/router/cache.js.map +0 -1
- package/dist/swap/router/flashbots.d.ts +0 -10
- package/dist/swap/router/flashbots.d.ts.map +0 -1
- package/dist/swap/router/flashbots.js +0 -43
- package/dist/swap/router/flashbots.js.map +0 -1
- package/dist/swap/router/health.d.ts +0 -17
- package/dist/swap/router/health.d.ts.map +0 -1
- package/dist/swap/router/health.js +0 -38
- package/dist/swap/router/health.js.map +0 -1
- package/dist/swap/router/index.d.ts +0 -10
- package/dist/swap/router/index.d.ts.map +0 -1
- package/dist/swap/router/index.js +0 -10
- package/dist/swap/router/index.js.map +0 -1
- package/dist/swap/router/providers/cowswap.d.ts +0 -11
- package/dist/swap/router/providers/cowswap.d.ts.map +0 -1
- package/dist/swap/router/providers/cowswap.js +0 -79
- package/dist/swap/router/providers/cowswap.js.map +0 -1
- package/dist/swap/router/providers/index.d.ts +0 -20
- package/dist/swap/router/providers/index.d.ts.map +0 -1
- package/dist/swap/router/providers/index.js +0 -32
- package/dist/swap/router/providers/index.js.map +0 -1
- package/dist/swap/router/providers/jupiter.d.ts +0 -12
- package/dist/swap/router/providers/jupiter.d.ts.map +0 -1
- package/dist/swap/router/providers/jupiter.js +0 -73
- package/dist/swap/router/providers/jupiter.js.map +0 -1
- package/dist/swap/router/providers/lifi.d.ts +0 -11
- package/dist/swap/router/providers/lifi.d.ts.map +0 -1
- package/dist/swap/router/providers/lifi.js +0 -123
- package/dist/swap/router/providers/lifi.js.map +0 -1
- package/dist/swap/router/providers/oneinch.d.ts +0 -13
- package/dist/swap/router/providers/oneinch.d.ts.map +0 -1
- package/dist/swap/router/providers/oneinch.js +0 -71
- package/dist/swap/router/providers/oneinch.js.map +0 -1
- package/dist/swap/router/providers/paraswap.d.ts +0 -11
- package/dist/swap/router/providers/paraswap.d.ts.map +0 -1
- package/dist/swap/router/providers/paraswap.js +0 -73
- package/dist/swap/router/providers/paraswap.js.map +0 -1
- package/dist/swap/router/providers/uniswap.d.ts +0 -31
- package/dist/swap/router/providers/uniswap.d.ts.map +0 -1
- package/dist/swap/router/providers/uniswap.js +0 -237
- package/dist/swap/router/providers/uniswap.js.map +0 -1
- package/dist/swap/router/providers/zerox.d.ts +0 -13
- package/dist/swap/router/providers/zerox.d.ts.map +0 -1
- package/dist/swap/router/providers/zerox.js +0 -94
- package/dist/swap/router/providers/zerox.js.map +0 -1
- package/dist/swap/router/router.d.ts +0 -86
- package/dist/swap/router/router.d.ts.map +0 -1
- package/dist/swap/router/router.js +0 -224
- package/dist/swap/router/router.js.map +0 -1
- package/dist/swap/router/rsi/engine.d.ts +0 -60
- package/dist/swap/router/rsi/engine.d.ts.map +0 -1
- package/dist/swap/router/rsi/engine.js +0 -483
- package/dist/swap/router/rsi/engine.js.map +0 -1
- package/dist/swap/router/rsi/index.d.ts +0 -3
- package/dist/swap/router/rsi/index.d.ts.map +0 -1
- package/dist/swap/router/rsi/index.js +0 -3
- package/dist/swap/router/rsi/index.js.map +0 -1
- package/dist/swap/router/rsi/types.d.ts +0 -106
- package/dist/swap/router/rsi/types.d.ts.map +0 -1
- package/dist/swap/router/rsi/types.js +0 -3
- package/dist/swap/router/rsi/types.js.map +0 -1
- package/dist/swap/router/types.d.ts +0 -120
- package/dist/swap/router/types.d.ts.map +0 -1
- package/dist/swap/router/types.js +0 -16
- package/dist/swap/router/types.js.map +0 -1
- package/dist/tax/engine.d.ts +0 -131
- package/dist/tax/engine.d.ts.map +0 -1
- package/dist/tax/engine.js +0 -307
- package/dist/tax/engine.js.map +0 -1
- package/dist/tax/index.d.ts +0 -9
- package/dist/tax/index.d.ts.map +0 -1
- package/dist/tax/index.js +0 -12
- package/dist/tax/index.js.map +0 -1
- package/dist/tax/lots.d.ts +0 -60
- package/dist/tax/lots.d.ts.map +0 -1
- package/dist/tax/lots.js +0 -129
- package/dist/tax/lots.js.map +0 -1
- package/dist/tax/types.d.ts +0 -113
- package/dist/tax/types.d.ts.map +0 -1
- package/dist/tax/types.js +0 -18
- package/dist/tax/types.js.map +0 -1
- package/dist/verifiable-intent/index.d.ts +0 -84
- package/dist/verifiable-intent/index.js +0 -385
- package/dist/yield/index.d.ts +0 -26
- package/dist/yield/index.d.ts.map +0 -1
- package/dist/yield/index.js +0 -29
- package/dist/yield/index.js.map +0 -1
- package/dist/yield/rates.d.ts +0 -114
- package/dist/yield/rates.d.ts.map +0 -1
- package/dist/yield/rates.js +0 -351
- package/dist/yield/rates.js.map +0 -1
- package/dist/yield/types.d.ts +0 -134
- package/dist/yield/types.d.ts.map +0 -1
- package/dist/yield/types.js +0 -24
- package/dist/yield/types.js.map +0 -1
- package/dist/yield/vault.d.ts +0 -112
- package/dist/yield/vault.d.ts.map +0 -1
- package/dist/yield/vault.js +0 -264
- package/dist/yield/vault.js.map +0 -1
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module tokens/transfers
|
|
3
|
+
* Multi-token transfer utilities for AgentWallet v6.
|
|
4
|
+
*
|
|
5
|
+
* Provides send/balance functions for any ERC-20 token or native gas token,
|
|
6
|
+
* with flexible amount input (raw bigint or human-readable string).
|
|
7
|
+
*
|
|
8
|
+
* All transfer functions go through viem's wallet client — they do NOT
|
|
9
|
+
* route through the AgentAccountV2 contract (use agentTransferToken for that).
|
|
10
|
+
* These are direct EOA/smart-wallet operations for wallets that hold the key.
|
|
11
|
+
*/
|
|
12
|
+
import { encodeFunctionData, parseAbi, zeroAddress, } from 'viem';
|
|
13
|
+
import { getGlobalRegistry } from './registry.js';
|
|
14
|
+
import { parseAmount, toHuman, formatBalance } from './decimals.js';
|
|
15
|
+
// ─── ERC20 ABI (minimal) ─────────────────────────────────────────────────────
|
|
16
|
+
const ERC20_ABI = parseAbi([
|
|
17
|
+
'function transfer(address to, uint256 amount) returns (bool)',
|
|
18
|
+
'function balanceOf(address account) view returns (uint256)',
|
|
19
|
+
'function decimals() view returns (uint8)',
|
|
20
|
+
'function symbol() view returns (string)',
|
|
21
|
+
'function name() view returns (string)',
|
|
22
|
+
]);
|
|
23
|
+
// ─── Core transfer functions ──────────────────────────────────────────────────
|
|
24
|
+
/**
|
|
25
|
+
* Send any ERC-20 token.
|
|
26
|
+
*
|
|
27
|
+
* @param ctx - Public + wallet clients and account
|
|
28
|
+
* @param to - Recipient address
|
|
29
|
+
* @param amount - Amount as raw bigint OR human-readable string (requires tokenAddress decimals lookup)
|
|
30
|
+
* @param tokenAddress - ERC-20 contract address
|
|
31
|
+
* @param options - Optional gas overrides
|
|
32
|
+
*/
|
|
33
|
+
export async function sendToken(ctx, to, amount, tokenAddress, options = {}) {
|
|
34
|
+
let rawAmount;
|
|
35
|
+
if (typeof amount === 'string') {
|
|
36
|
+
// Need decimals to parse string amount
|
|
37
|
+
let decimals;
|
|
38
|
+
// Try registry first
|
|
39
|
+
if (ctx.chainId != null) {
|
|
40
|
+
const entry = getGlobalRegistry().getTokenByAddress(tokenAddress, ctx.chainId);
|
|
41
|
+
decimals = entry?.decimals ?? await fetchTokenDecimals(ctx.publicClient, tokenAddress);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
decimals = await fetchTokenDecimals(ctx.publicClient, tokenAddress);
|
|
45
|
+
}
|
|
46
|
+
rawAmount = parseAmount(amount, decimals);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
rawAmount = amount;
|
|
50
|
+
}
|
|
51
|
+
const data = encodeFunctionData({
|
|
52
|
+
abi: ERC20_ABI,
|
|
53
|
+
functionName: 'transfer',
|
|
54
|
+
args: [to, rawAmount],
|
|
55
|
+
});
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
|
+
return ctx.walletClient.sendTransaction({
|
|
58
|
+
account: ctx.account,
|
|
59
|
+
to: tokenAddress,
|
|
60
|
+
data,
|
|
61
|
+
...buildGasOptions(options),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Send native gas token (ETH, MATIC, AVAX, etc.).
|
|
66
|
+
*
|
|
67
|
+
* @param ctx - Transfer context
|
|
68
|
+
* @param to - Recipient address
|
|
69
|
+
* @param amount - Raw bigint OR human-readable string (18 decimals for ETH/MATIC/AVAX)
|
|
70
|
+
* @param options - Optional gas overrides
|
|
71
|
+
*/
|
|
72
|
+
export async function sendNative(ctx, to, amount, options = {}) {
|
|
73
|
+
const rawAmount = parseAmount(amount, 18);
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
75
|
+
return ctx.walletClient.sendTransaction({
|
|
76
|
+
account: ctx.account,
|
|
77
|
+
to,
|
|
78
|
+
value: rawAmount,
|
|
79
|
+
...buildGasOptions(options),
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get the ERC-20 balance of the current account (or a specified address).
|
|
84
|
+
*
|
|
85
|
+
* @param ctx - Transfer context
|
|
86
|
+
* @param tokenAddress - ERC-20 contract address
|
|
87
|
+
* @param holder - Address to check (defaults to ctx.account)
|
|
88
|
+
*/
|
|
89
|
+
export async function getTokenBalance(ctx, tokenAddress, holder) {
|
|
90
|
+
const target = holder ?? ctx.account;
|
|
91
|
+
// Batch read: balanceOf + decimals + symbol + name
|
|
92
|
+
const [rawBalance, decimals, symbol, name] = await Promise.all([
|
|
93
|
+
ctx.publicClient.readContract({
|
|
94
|
+
address: tokenAddress,
|
|
95
|
+
abi: ERC20_ABI,
|
|
96
|
+
functionName: 'balanceOf',
|
|
97
|
+
args: [target],
|
|
98
|
+
}),
|
|
99
|
+
ctx.publicClient.readContract({
|
|
100
|
+
address: tokenAddress,
|
|
101
|
+
abi: ERC20_ABI,
|
|
102
|
+
functionName: 'decimals',
|
|
103
|
+
}),
|
|
104
|
+
ctx.publicClient.readContract({
|
|
105
|
+
address: tokenAddress,
|
|
106
|
+
abi: ERC20_ABI,
|
|
107
|
+
functionName: 'symbol',
|
|
108
|
+
}),
|
|
109
|
+
ctx.publicClient.readContract({
|
|
110
|
+
address: tokenAddress,
|
|
111
|
+
abi: ERC20_ABI,
|
|
112
|
+
functionName: 'name',
|
|
113
|
+
}),
|
|
114
|
+
]);
|
|
115
|
+
const humanBalance = toHuman(rawBalance, decimals);
|
|
116
|
+
const formatted = formatBalance(rawBalance, { symbol, decimals });
|
|
117
|
+
return { address: tokenAddress, symbol, name, decimals, rawBalance, humanBalance, formatted };
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get the native gas token balance of the current account (or a specified address).
|
|
121
|
+
*
|
|
122
|
+
* @param ctx - Transfer context
|
|
123
|
+
* @param holder - Address to check (defaults to ctx.account)
|
|
124
|
+
*/
|
|
125
|
+
export async function getNativeBalance(ctx, holder) {
|
|
126
|
+
const target = holder ?? ctx.account;
|
|
127
|
+
const rawBalance = await ctx.publicClient.getBalance({ address: target });
|
|
128
|
+
// Determine native token symbol from registry if chainId is known
|
|
129
|
+
let symbol = 'ETH';
|
|
130
|
+
if (ctx.chainId != null) {
|
|
131
|
+
const native = getGlobalRegistry().getTokenByAddress(zeroAddress, ctx.chainId);
|
|
132
|
+
symbol = native?.symbol ?? 'ETH';
|
|
133
|
+
}
|
|
134
|
+
const humanBalance = toHuman(rawBalance, 18);
|
|
135
|
+
return { symbol, decimals: 18, rawBalance, humanBalance };
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Batch query balances for multiple ERC-20 tokens.
|
|
139
|
+
*
|
|
140
|
+
* @param ctx - Transfer context
|
|
141
|
+
* @param tokenAddresses - List of ERC-20 addresses to query (or null/empty for all registry tokens)
|
|
142
|
+
* @param holder - Address to check (defaults to ctx.account)
|
|
143
|
+
*/
|
|
144
|
+
export async function getBalances(ctx, tokenAddresses, holder) {
|
|
145
|
+
const target = holder ?? ctx.account;
|
|
146
|
+
let addresses = tokenAddresses;
|
|
147
|
+
// If no addresses provided and chainId is known, use all registry tokens
|
|
148
|
+
if (!addresses || addresses.length === 0) {
|
|
149
|
+
if (ctx.chainId != null) {
|
|
150
|
+
const tokens = getGlobalRegistry().listTokens(ctx.chainId);
|
|
151
|
+
addresses = tokens
|
|
152
|
+
.filter(t => !t.isNative)
|
|
153
|
+
.map(t => t.address);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
return [];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Parallel balance fetches
|
|
160
|
+
const results = await Promise.allSettled(addresses.map(addr => getTokenBalance(ctx, addr, target)));
|
|
161
|
+
return results
|
|
162
|
+
.filter((r) => r.status === 'fulfilled')
|
|
163
|
+
.map(r => r.value);
|
|
164
|
+
}
|
|
165
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
166
|
+
async function fetchTokenDecimals(publicClient, tokenAddress) {
|
|
167
|
+
return publicClient.readContract({
|
|
168
|
+
address: tokenAddress,
|
|
169
|
+
abi: ERC20_ABI,
|
|
170
|
+
functionName: 'decimals',
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
function buildGasOptions(options) {
|
|
174
|
+
const gas = {};
|
|
175
|
+
if (options.gas != null)
|
|
176
|
+
gas.gas = options.gas;
|
|
177
|
+
if (options.gasPrice != null)
|
|
178
|
+
gas.gasPrice = options.gasPrice;
|
|
179
|
+
if (options.maxFeePerGas != null)
|
|
180
|
+
gas.maxFeePerGas = options.maxFeePerGas;
|
|
181
|
+
if (options.maxPriorityFeePerGas != null)
|
|
182
|
+
gas.maxPriorityFeePerGas = options.maxPriorityFeePerGas;
|
|
183
|
+
return gas;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Encode an ERC-20 transfer call as raw calldata.
|
|
187
|
+
* Useful for building calldata for agentExecute() or multicall.
|
|
188
|
+
*/
|
|
189
|
+
export function encodeERC20Transfer(to, amount) {
|
|
190
|
+
return encodeFunctionData({
|
|
191
|
+
abi: ERC20_ABI,
|
|
192
|
+
functionName: 'transfer',
|
|
193
|
+
args: [to, amount],
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=transfers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfers.js","sourceRoot":"","sources":["../../src/tokens/transfers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,kBAAkB,EAClB,QAAQ,EAKR,WAAW,GACZ,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGpE,gFAAgF;AAEhF,MAAM,SAAS,GAAG,QAAQ,CAAC;IACzB,8DAA8D;IAC9D,4DAA4D;IAC5D,0CAA0C;IAC1C,yCAAyC;IACzC,uCAAuC;CACxC,CAAC,CAAC;AA6CH,iFAAiF;AAEjF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAoB,EACpB,EAAW,EACX,MAAuB,EACvB,YAAqB,EACrB,UAA2B,EAAE;IAE7B,IAAI,SAAiB,CAAC;IAEtB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,uCAAuC;QACvC,IAAI,QAAgB,CAAC;QAErB,qBAAqB;QACrB,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/E,QAAQ,GAAG,KAAK,EAAE,QAAQ,IAAI,MAAM,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACtE,CAAC;QAED,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;KACtB,CAAC,CAAC;IAEH,8DAA8D;IAC9D,OAAQ,GAAG,CAAC,YAAoB,CAAC,eAAe,CAAC;QAC/C,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,EAAE,EAAE,YAAY;QAChB,IAAI;QACJ,GAAG,eAAe,CAAC,OAAO,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAoB,EACpB,EAAW,EACX,MAAuB,EACvB,UAA2B,EAAE;IAE7B,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAE1C,8DAA8D;IAC9D,OAAQ,GAAG,CAAC,YAAoB,CAAC,eAAe,CAAC;QAC/C,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,EAAE;QACF,KAAK,EAAE,SAAS;QAChB,GAAG,eAAe,CAAC,OAAO,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAoB,EACpB,YAAqB,EACrB,MAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC;IAErC,mDAAmD;IACnD,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7D,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,MAAM,CAAC;SACf,CAAoB;QACrB,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,UAAU;SACzB,CAAoB;QACrB,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,QAAQ;SACvB,CAAoB;QACrB,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,MAAM;SACrB,CAAoB;KACtB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAElE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AAChG,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAoB,EACpB,MAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1E,kEAAkE;IAClE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC;IACnC,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAoB,EACpB,cAA0B,EAC1B,MAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC;IAErC,IAAI,SAAS,GAAG,cAAc,CAAC;IAE/B,yEAAyE;IACzE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3D,SAAS,GAAG,MAAM;iBACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAC1D,CAAC;IAEF,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAmD,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;SACxF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,kBAAkB,CAC/B,YAA0B,EAC1B,YAAqB;IAErB,OAAO,YAAY,CAAC,YAAY,CAAC;QAC/B,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,UAAU;KACzB,CAAoB,CAAC;AACxB,CAAC;AAED,SAAS,eAAe,CAAC,OAAwB;IAC/C,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI;QAAiB,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAC9D,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI;QAAY,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACxE,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI;QAAQ,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAChF,IAAI,OAAO,CAAC,oBAAoB,IAAI,IAAI;QAAE,GAAG,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAClG,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAW,EAAE,MAAc;IAC7D,OAAO,kBAAkB,CAAC;QACxB,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;AACL,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module types
|
|
3
|
+
* Core type definitions for the AgentWallet SDK.
|
|
4
|
+
*
|
|
5
|
+
* Contains shared interfaces, constants, and type utilities used across all
|
|
6
|
+
* SDK modules: spending policies, wallet config, chain identifiers, and
|
|
7
|
+
* value-add diagnostic types (BudgetForecast, WalletHealth, ActivityEntry).
|
|
8
|
+
*
|
|
9
|
+
* Supported chains: Base, Ethereum, Arbitrum, Polygon, Optimism, Avalanche,
|
|
10
|
+
* Unichain, Linea, Sonic, Worldchain, and Base Sepolia (testnet).
|
|
11
|
+
*/
|
|
1
12
|
import type { Address, Hash, Hex } from 'viem';
|
|
2
13
|
/** Spend policy for a single token */
|
|
3
14
|
export interface SpendPolicy {
|
|
@@ -38,7 +49,7 @@ export interface ExecuteResult {
|
|
|
38
49
|
/** Config for creating an AgentWallet client */
|
|
39
50
|
export interface AgentWalletConfig {
|
|
40
51
|
accountAddress: Address;
|
|
41
|
-
chain: 'base' | 'base-sepolia' | 'ethereum' | 'arbitrum' | 'polygon';
|
|
52
|
+
chain: 'base' | 'base-sepolia' | 'ethereum' | 'arbitrum' | 'polygon' | 'optimism' | 'avalanche' | 'unichain' | 'linea' | 'sonic' | 'worldchain';
|
|
42
53
|
rpcUrl?: string;
|
|
43
54
|
}
|
|
44
55
|
/** Event emitted when a transaction exceeds spend limits */
|
|
@@ -106,5 +117,13 @@ export declare const CHAIN_IDS: {
|
|
|
106
117
|
readonly ethereum: 1;
|
|
107
118
|
readonly arbitrum: 42161;
|
|
108
119
|
readonly polygon: 137;
|
|
120
|
+
readonly optimism: 10;
|
|
121
|
+
readonly avalanche: 43114;
|
|
122
|
+
readonly unichain: 130;
|
|
123
|
+
readonly linea: 59144;
|
|
124
|
+
readonly sonic: 146;
|
|
125
|
+
readonly worldchain: 480;
|
|
109
126
|
};
|
|
127
|
+
/** Supported chain name type */
|
|
128
|
+
export type SupportedChain = keyof typeof CHAIN_IDS;
|
|
110
129
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE/C,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,6DAA6D;AAC7D,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,IAAI,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA2HA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAS,IAAI;IACnB,cAAc,EAAE,KAAK;IACrB,UAAU,EAAK,CAAC;IAChB,UAAU,EAAK,KAAK;IACpB,SAAS,EAAM,GAAG;IAClB,UAAU,EAAK,EAAE;IACjB,WAAW,EAAI,KAAK;IACpB,UAAU,EAAK,GAAG;IAClB,OAAO,EAAQ,KAAK;IACpB,OAAO,EAAQ,GAAG;IAClB,YAAY,EAAG,GAAG;CACV,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// [MAX-ADDED] Tests for x402 Client — protocol parsing and payment selection
|
|
2
2
|
import { describe, it, expect } from 'vitest';
|
|
3
3
|
import { X402Client } from '../client.js';
|
|
4
|
+
import { USDC_ADDRESSES } from '../types.js';
|
|
4
5
|
// Mock wallet (we test protocol logic, not on-chain execution)
|
|
5
6
|
const mockWallet = {};
|
|
6
7
|
describe('X402Client', () => {
|
|
@@ -67,8 +68,8 @@ describe('X402Client', () => {
|
|
|
67
68
|
});
|
|
68
69
|
});
|
|
69
70
|
describe('selectPaymentOption', () => {
|
|
70
|
-
it('selects Base USDC exact scheme', () => {
|
|
71
|
-
const client = new X402Client(mockWallet);
|
|
71
|
+
it('selects Base USDC exact scheme when base is in supported networks', () => {
|
|
72
|
+
const client = new X402Client(mockWallet, { supportedNetworks: ['base:8453'] });
|
|
72
73
|
const accepts = [
|
|
73
74
|
{ scheme: 'exact', network: 'ethereum:1', asset: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', amount: '1000000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
74
75
|
{ scheme: 'exact', network: 'base:8453', asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', amount: '1000000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
@@ -77,8 +78,47 @@ describe('X402Client', () => {
|
|
|
77
78
|
expect(selected).not.toBeNull();
|
|
78
79
|
expect(selected.network).toBe('base:8453');
|
|
79
80
|
});
|
|
81
|
+
it('selects Arbitrum USDC when configured for arbitrum', () => {
|
|
82
|
+
const client = new X402Client(mockWallet, { supportedNetworks: ['arbitrum:42161'] });
|
|
83
|
+
const accepts = [
|
|
84
|
+
{ scheme: 'exact', network: 'base:8453', asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', amount: '1000000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
85
|
+
{ scheme: 'exact', network: 'arbitrum:42161', asset: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', amount: '1000000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
86
|
+
];
|
|
87
|
+
const selected = client.selectPaymentOption(accepts);
|
|
88
|
+
expect(selected).not.toBeNull();
|
|
89
|
+
expect(selected.network).toBe('arbitrum:42161');
|
|
90
|
+
});
|
|
91
|
+
it('selects Optimism USDC when configured for optimism', () => {
|
|
92
|
+
const client = new X402Client(mockWallet, { supportedNetworks: ['optimism:10'] });
|
|
93
|
+
const accepts = [
|
|
94
|
+
{ scheme: 'exact', network: 'optimism:10', asset: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', amount: '2000000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
95
|
+
];
|
|
96
|
+
const selected = client.selectPaymentOption(accepts);
|
|
97
|
+
expect(selected).not.toBeNull();
|
|
98
|
+
expect(selected.network).toBe('optimism:10');
|
|
99
|
+
});
|
|
100
|
+
it('selects Polygon USDC when configured for polygon', () => {
|
|
101
|
+
const client = new X402Client(mockWallet, { supportedNetworks: ['polygon:137'] });
|
|
102
|
+
const accepts = [
|
|
103
|
+
{ scheme: 'exact', network: 'polygon:137', asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', amount: '500000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
104
|
+
];
|
|
105
|
+
const selected = client.selectPaymentOption(accepts);
|
|
106
|
+
expect(selected).not.toBeNull();
|
|
107
|
+
expect(selected.network).toBe('polygon:137');
|
|
108
|
+
});
|
|
109
|
+
it('selects any supported network when multi-chain configured', () => {
|
|
110
|
+
const client = new X402Client(mockWallet, {
|
|
111
|
+
supportedNetworks: ['base:8453', 'ethereum:1', 'arbitrum:42161'],
|
|
112
|
+
});
|
|
113
|
+
const accepts = [
|
|
114
|
+
{ scheme: 'exact', network: 'arbitrum:42161', asset: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', amount: '1000000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
115
|
+
];
|
|
116
|
+
const selected = client.selectPaymentOption(accepts);
|
|
117
|
+
expect(selected).not.toBeNull();
|
|
118
|
+
expect(selected.network).toBe('arbitrum:42161');
|
|
119
|
+
});
|
|
80
120
|
it('prefers lowest amount among compatible options', () => {
|
|
81
|
-
const client = new X402Client(mockWallet);
|
|
121
|
+
const client = new X402Client(mockWallet, { supportedNetworks: ['base:8453'] });
|
|
82
122
|
const accepts = [
|
|
83
123
|
{ scheme: 'exact', network: 'base:8453', asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', amount: '5000000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
84
124
|
{ scheme: 'exact', network: 'base:8453', asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', amount: '1000000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
@@ -87,14 +127,22 @@ describe('X402Client', () => {
|
|
|
87
127
|
expect(selected.amount).toBe('1000000');
|
|
88
128
|
});
|
|
89
129
|
it('returns null when no compatible option exists', () => {
|
|
90
|
-
const client = new X402Client(mockWallet);
|
|
130
|
+
const client = new X402Client(mockWallet, { supportedNetworks: ['base:8453'] });
|
|
91
131
|
const accepts = [
|
|
92
132
|
{ scheme: 'exact', network: 'solana:mainnet', asset: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', amount: '1000000', payTo: 'sol_addr', maxTimeoutSeconds: 30, extra: {} },
|
|
93
133
|
];
|
|
94
134
|
expect(client.selectPaymentOption(accepts)).toBeNull();
|
|
95
135
|
});
|
|
136
|
+
it('returns null when network matches but asset is not supported USDC', () => {
|
|
137
|
+
const client = new X402Client(mockWallet, { supportedNetworks: ['base:8453'] });
|
|
138
|
+
const accepts = [
|
|
139
|
+
{ scheme: 'exact', network: 'base:8453', asset: '0xDeAdBeEfDeAdBeEfDeAdBeEfDeAdBeEfDeAdBeEf', amount: '1000000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
140
|
+
];
|
|
141
|
+
// Asset is not the known USDC address — should be rejected
|
|
142
|
+
expect(client.selectPaymentOption(accepts)).toBeNull();
|
|
143
|
+
});
|
|
96
144
|
it('prefers exact scheme over others', () => {
|
|
97
|
-
const client = new X402Client(mockWallet);
|
|
145
|
+
const client = new X402Client(mockWallet, { supportedNetworks: ['base:8453'] });
|
|
98
146
|
const accepts = [
|
|
99
147
|
{ scheme: 'upto', network: 'base:8453', asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', amount: '500000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
100
148
|
{ scheme: 'exact', network: 'base:8453', asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', amount: '1000000', payTo: '0x1', maxTimeoutSeconds: 30, extra: {} },
|
|
@@ -104,4 +152,28 @@ describe('X402Client', () => {
|
|
|
104
152
|
});
|
|
105
153
|
});
|
|
106
154
|
});
|
|
155
|
+
// ─── USDC_ADDRESSES coverage tests ───
|
|
156
|
+
describe('USDC_ADDRESSES multi-chain coverage', () => {
|
|
157
|
+
it('covers all 10 mainnet chains', () => {
|
|
158
|
+
const mainnetChains = [
|
|
159
|
+
'base:8453',
|
|
160
|
+
'ethereum:1',
|
|
161
|
+
'arbitrum:42161',
|
|
162
|
+
'polygon:137',
|
|
163
|
+
'optimism:10',
|
|
164
|
+
'avalanche:43114',
|
|
165
|
+
'unichain:130',
|
|
166
|
+
'linea:59144',
|
|
167
|
+
'sonic:146',
|
|
168
|
+
'worldchain:480',
|
|
169
|
+
];
|
|
170
|
+
for (const chain of mainnetChains) {
|
|
171
|
+
expect(USDC_ADDRESSES[chain]).toBeDefined();
|
|
172
|
+
expect(USDC_ADDRESSES[chain]).toMatch(/^0x[0-9a-fA-F]{40}$/);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
it('includes base-sepolia testnet', () => {
|
|
176
|
+
expect(USDC_ADDRESSES['base-sepolia:84532']).toBe('0x036CbD53842c5426634e7929541eC2318f3dCF7e');
|
|
177
|
+
});
|
|
178
|
+
});
|
|
107
179
|
//# sourceMappingURL=client.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../../src/x402/__tests__/client.test.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../../src/x402/__tests__/client.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/x402/chains/abstract/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/x402/chains/abstract/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAKvD,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,uDAAuD;AACvD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGjD,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,8BAA8B,EAAE,OAAO,EAEnD,CAAC;AAwBF,MAAM,WAAW,8BAA8B;IAC7C,sFAAsF;IACtF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,eAAe,EAAE,GAAG,CAAC;IACrB,gEAAgE;IAChE,UAAU,EAAE,GAAG,CAAC;IAChB,yCAAyC;IACzC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,mCAAmC;IAC9C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,OAAO,CAAS;gBAGtB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,8BAA8B,EACtC,OAAO,GAAE,MAAmC;IA4B9C;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAoDlC;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAkBpC,+CAA+C;IAC/C,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIhD,kFAAkF;IAClF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAGjD;AAID;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmB5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/x402/chains/abstract/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/x402/chains/abstract/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stellar x402 Payment Adapter
|
|
3
|
+
*
|
|
4
|
+
* Implements x402 payment protocol on Stellar network.
|
|
5
|
+
* Stellar x402 support went live March 11, 2026.
|
|
6
|
+
*
|
|
7
|
+
* Chain identifiers:
|
|
8
|
+
* - Stellar Mainnet: "stellar:pubnet"
|
|
9
|
+
* - Stellar Testnet: "stellar:testnet"
|
|
10
|
+
*
|
|
11
|
+
* Key differences from EVM chains:
|
|
12
|
+
* - Uses Ed25519 keypairs (not secp256k1)
|
|
13
|
+
* - Transaction format: Stellar XDR (not EVM tx)
|
|
14
|
+
* - Settlement: ~5 seconds (1 ledger close)
|
|
15
|
+
* - Fees: ~0.00001 XLM per operation (effectively free at scale)
|
|
16
|
+
* - USDC: Circle-issued USDC on Stellar
|
|
17
|
+
*/
|
|
18
|
+
export declare const STELLAR_NETWORK: {
|
|
19
|
+
readonly pubnet: {
|
|
20
|
+
readonly horizonUrl: "https://horizon.stellar.org";
|
|
21
|
+
readonly networkPassphrase: "Public Global Stellar Network ; September 2015";
|
|
22
|
+
readonly chainId: "stellar:pubnet";
|
|
23
|
+
};
|
|
24
|
+
readonly testnet: {
|
|
25
|
+
readonly horizonUrl: "https://horizon-testnet.stellar.org";
|
|
26
|
+
readonly networkPassphrase: "Test SDF Network ; September 2015";
|
|
27
|
+
readonly chainId: "stellar:testnet";
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Circle USDC on Stellar (Mainnet)
|
|
32
|
+
* Asset code: USDC
|
|
33
|
+
* Issuer: GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN
|
|
34
|
+
*/
|
|
35
|
+
export declare const STELLAR_USDC: {
|
|
36
|
+
readonly pubnet: {
|
|
37
|
+
readonly code: "USDC";
|
|
38
|
+
readonly issuer: "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN";
|
|
39
|
+
};
|
|
40
|
+
readonly testnet: {
|
|
41
|
+
readonly code: "USDC";
|
|
42
|
+
readonly issuer: "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5";
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export type StellarNetwork = 'pubnet' | 'testnet';
|
|
46
|
+
export interface StellarPaymentConfig {
|
|
47
|
+
/** Which Stellar network to use */
|
|
48
|
+
network?: StellarNetwork;
|
|
49
|
+
/** x402 resource identifier (for memo) */
|
|
50
|
+
resource?: string;
|
|
51
|
+
/** Custom Horizon URL (overrides default) */
|
|
52
|
+
horizonUrl?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface StellarPaymentRequest {
|
|
55
|
+
/** Destination Stellar account (G... address) */
|
|
56
|
+
destination: string;
|
|
57
|
+
/** Amount in USDC (decimal string, e.g. "0.50") */
|
|
58
|
+
amount: string;
|
|
59
|
+
/** Source Stellar account public key */
|
|
60
|
+
sourcePublicKey: string;
|
|
61
|
+
/** x402 resource path for memo */
|
|
62
|
+
resource?: string;
|
|
63
|
+
/** Network to use */
|
|
64
|
+
network?: StellarNetwork;
|
|
65
|
+
}
|
|
66
|
+
export interface StellarPaymentResult {
|
|
67
|
+
/** Stellar transaction hash */
|
|
68
|
+
hash: string;
|
|
69
|
+
/** Ledger number the transaction landed in */
|
|
70
|
+
ledger: number;
|
|
71
|
+
/** Successful */
|
|
72
|
+
successful: boolean;
|
|
73
|
+
/** Network used */
|
|
74
|
+
network: StellarNetwork;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* StellarX402Adapter
|
|
78
|
+
*
|
|
79
|
+
* Handles x402 payment flow for Stellar network.
|
|
80
|
+
*
|
|
81
|
+
* Usage (with stellar-sdk):
|
|
82
|
+
* ```typescript
|
|
83
|
+
* import { StellarX402Adapter } from 'agentwallet-sdk/x402/stellar';
|
|
84
|
+
* import { Keypair, Networks } from '@stellar/stellar-sdk';
|
|
85
|
+
*
|
|
86
|
+
* const adapter = new StellarX402Adapter({ network: 'pubnet' });
|
|
87
|
+
* const result = await adapter.pay({
|
|
88
|
+
* destination: 'GDESTWVX3VMLQCXPHPVLS3FMNMG2X7L5IGGQT7BQMIZXZZ4V7KBQVS',
|
|
89
|
+
* amount: '0.50',
|
|
90
|
+
* sourcePublicKey: keypair.publicKey(),
|
|
91
|
+
* resource: '/api/data-endpoint',
|
|
92
|
+
* }, keypair.secret());
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* Note: stellar-sdk must be installed separately:
|
|
96
|
+
* npm install @stellar/stellar-sdk
|
|
97
|
+
*/
|
|
98
|
+
export declare class StellarX402Adapter {
|
|
99
|
+
private network;
|
|
100
|
+
private horizonUrl;
|
|
101
|
+
constructor(config?: StellarPaymentConfig);
|
|
102
|
+
/**
|
|
103
|
+
* Parse an x402 402 response and extract Stellar payment details.
|
|
104
|
+
* The 402 response should include X-Payment-Chains: stellar:pubnet
|
|
105
|
+
* and X-Payment-Amount, X-Payment-Destination headers.
|
|
106
|
+
*/
|
|
107
|
+
parseX402Response(headers: Record<string, string>): {
|
|
108
|
+
supported: boolean;
|
|
109
|
+
destination?: string;
|
|
110
|
+
amount?: string;
|
|
111
|
+
resource?: string;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Build a Stellar USDC payment transaction.
|
|
115
|
+
*
|
|
116
|
+
* Requires @stellar/stellar-sdk to be installed:
|
|
117
|
+
* npm install @stellar/stellar-sdk
|
|
118
|
+
*
|
|
119
|
+
* Returns the XDR-encoded transaction envelope for signing and submission.
|
|
120
|
+
*/
|
|
121
|
+
buildPaymentTransaction(request: StellarPaymentRequest): Promise<string>;
|
|
122
|
+
/**
|
|
123
|
+
* Submit a signed Stellar transaction to Horizon.
|
|
124
|
+
*/
|
|
125
|
+
submitTransaction(signedXdr: string): Promise<StellarPaymentResult>;
|
|
126
|
+
private _loadAccount;
|
|
127
|
+
/** Chain ID for this adapter (e.g. "stellar:pubnet") */
|
|
128
|
+
get chainId(): string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Full x402 payment flow for Stellar.
|
|
132
|
+
* 1. Detects 402 response from API
|
|
133
|
+
* 2. Parses Stellar payment details from headers
|
|
134
|
+
* 3. Builds, signs, and submits Stellar USDC payment
|
|
135
|
+
* 4. Retries the original request with payment proof
|
|
136
|
+
*
|
|
137
|
+
* Requires stellar-sdk: npm install @stellar/stellar-sdk
|
|
138
|
+
*/
|
|
139
|
+
export declare function stellarX402Pay(params: {
|
|
140
|
+
/** The 402 response headers */
|
|
141
|
+
responseHeaders: Record<string, string>;
|
|
142
|
+
/** Source account public key */
|
|
143
|
+
sourcePublicKey: string;
|
|
144
|
+
/** Signer function that takes XDR and returns signed XDR */
|
|
145
|
+
sign: (xdr: string) => Promise<string>;
|
|
146
|
+
/** Network to use */
|
|
147
|
+
network?: StellarNetwork;
|
|
148
|
+
}): Promise<StellarPaymentResult>;
|
|
149
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/x402/chains/stellar/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,eAAO,MAAM,eAAe;;;;;;;;;;;CAWlB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAC;AAIX,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,mBAAmB;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,GAAE,oBAAyB;IAK7C;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAClD,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAgBD;;;;;;;OAOG;IACG,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IA+C9E;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;YA6B3D,YAAY;IAe1B,wDAAwD;IACxD,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAID;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,qBAAqB;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqBhC"}
|