@paysponge/sdk 0.1.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 (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +138 -0
  3. package/dist/admin.d.ts +81 -0
  4. package/dist/admin.d.ts.map +1 -0
  5. package/dist/admin.js +108 -0
  6. package/dist/admin.js.map +1 -0
  7. package/dist/api/agents.d.ts +37 -0
  8. package/dist/api/agents.d.ts.map +1 -0
  9. package/dist/api/agents.js +63 -0
  10. package/dist/api/agents.js.map +1 -0
  11. package/dist/api/http.d.ts +29 -0
  12. package/dist/api/http.d.ts.map +1 -0
  13. package/dist/api/http.js +101 -0
  14. package/dist/api/http.js.map +1 -0
  15. package/dist/api/index.d.ts +6 -0
  16. package/dist/api/index.d.ts.map +1 -0
  17. package/dist/api/index.js +6 -0
  18. package/dist/api/index.js.map +1 -0
  19. package/dist/api/public-tools.d.ts +52 -0
  20. package/dist/api/public-tools.d.ts.map +1 -0
  21. package/dist/api/public-tools.js +68 -0
  22. package/dist/api/public-tools.js.map +1 -0
  23. package/dist/api/transactions.d.ts +30 -0
  24. package/dist/api/transactions.d.ts.map +1 -0
  25. package/dist/api/transactions.js +176 -0
  26. package/dist/api/transactions.js.map +1 -0
  27. package/dist/api/wallets.d.ts +33 -0
  28. package/dist/api/wallets.d.ts.map +1 -0
  29. package/dist/api/wallets.js +121 -0
  30. package/dist/api/wallets.js.map +1 -0
  31. package/dist/auth/credentials.d.ts +37 -0
  32. package/dist/auth/credentials.d.ts.map +1 -0
  33. package/dist/auth/credentials.js +100 -0
  34. package/dist/auth/credentials.js.map +1 -0
  35. package/dist/auth/device-flow.d.ts +25 -0
  36. package/dist/auth/device-flow.d.ts.map +1 -0
  37. package/dist/auth/device-flow.js +161 -0
  38. package/dist/auth/device-flow.js.map +1 -0
  39. package/dist/auth/index.d.ts +3 -0
  40. package/dist/auth/index.d.ts.map +1 -0
  41. package/dist/auth/index.js +3 -0
  42. package/dist/auth/index.js.map +1 -0
  43. package/dist/bin/cli.d.ts +3 -0
  44. package/dist/bin/cli.d.ts.map +1 -0
  45. package/dist/bin/cli.js +116 -0
  46. package/dist/bin/cli.js.map +1 -0
  47. package/dist/client.d.ts +383 -0
  48. package/dist/client.d.ts.map +1 -0
  49. package/dist/client.js +384 -0
  50. package/dist/client.js.map +1 -0
  51. package/dist/index.d.ts +11 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +18 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/mcp/config.d.ts +27 -0
  56. package/dist/mcp/config.d.ts.map +1 -0
  57. package/dist/mcp/config.js +34 -0
  58. package/dist/mcp/config.js.map +1 -0
  59. package/dist/mcp/index.d.ts +2 -0
  60. package/dist/mcp/index.d.ts.map +1 -0
  61. package/dist/mcp/index.js +2 -0
  62. package/dist/mcp/index.js.map +1 -0
  63. package/dist/tools/definitions.d.ts +16 -0
  64. package/dist/tools/definitions.d.ts.map +1 -0
  65. package/dist/tools/definitions.js +330 -0
  66. package/dist/tools/definitions.js.map +1 -0
  67. package/dist/tools/executor.d.ts +56 -0
  68. package/dist/tools/executor.d.ts.map +1 -0
  69. package/dist/tools/executor.js +182 -0
  70. package/dist/tools/executor.js.map +1 -0
  71. package/dist/tools/index.d.ts +3 -0
  72. package/dist/tools/index.d.ts.map +1 -0
  73. package/dist/tools/index.js +3 -0
  74. package/dist/tools/index.js.map +1 -0
  75. package/dist/types/index.d.ts +2 -0
  76. package/dist/types/index.d.ts.map +1 -0
  77. package/dist/types/index.js +2 -0
  78. package/dist/types/index.js.map +1 -0
  79. package/dist/types/schemas.d.ts +924 -0
  80. package/dist/types/schemas.d.ts.map +1 -0
  81. package/dist/types/schemas.js +360 -0
  82. package/dist/types/schemas.js.map +1 -0
  83. package/package.json +70 -0
@@ -0,0 +1,52 @@
1
+ import { type Chain, type EvmTransferOptions, type SolanaTransferOptions, type SubmitTransaction, type DetailedBalances, type SolanaTokensResponse, type SolanaTokenSearchResponse, type FundingRequestResponse, type WithdrawToMainWalletResponse, type TransactionHistoryDetailed, type SpongeResponse, type X402PaymentResponse, type SolanaChain } from "../types/schemas.js";
2
+ import type { HttpClient } from "./http.js";
3
+ export interface DetailedBalanceOptions {
4
+ chain?: Chain | "all";
5
+ allowedChains?: Chain[];
6
+ onlyUsdc?: boolean;
7
+ }
8
+ export interface TransactionHistoryDetailedOptions {
9
+ limit?: number;
10
+ chain?: Chain;
11
+ }
12
+ export interface FundingRequestOptions {
13
+ amount: string;
14
+ reason?: string;
15
+ chain?: Chain;
16
+ currency?: string;
17
+ }
18
+ export interface WithdrawToMainWalletOptions {
19
+ chain: Chain;
20
+ amount: string;
21
+ currency?: "native" | "USDC";
22
+ }
23
+ export interface SpongeRequest {
24
+ [key: string]: unknown;
25
+ }
26
+ export interface CreateX402PaymentOptions {
27
+ chain: Chain;
28
+ to: string;
29
+ token?: string;
30
+ amount: string;
31
+ decimals?: number;
32
+ valid_for_seconds?: number;
33
+ resource_url?: string;
34
+ resource_description?: string;
35
+ fee_payer?: string;
36
+ http_method?: "GET" | "POST";
37
+ }
38
+ export declare class PublicToolsApi {
39
+ private readonly http;
40
+ constructor(http: HttpClient);
41
+ getDetailedBalances(options?: DetailedBalanceOptions): Promise<DetailedBalances>;
42
+ evmTransfer(options: EvmTransferOptions): Promise<SubmitTransaction>;
43
+ solanaTransfer(options: SolanaTransferOptions): Promise<SubmitTransaction>;
44
+ getSolanaTokens(chain: SolanaChain): Promise<SolanaTokensResponse>;
45
+ searchSolanaTokens(query: string, limit?: number): Promise<SolanaTokenSearchResponse>;
46
+ getTransactionHistoryDetailed(options?: TransactionHistoryDetailedOptions): Promise<TransactionHistoryDetailed>;
47
+ requestFunding(options: FundingRequestOptions): Promise<FundingRequestResponse>;
48
+ withdrawToMainWallet(options: WithdrawToMainWalletOptions): Promise<WithdrawToMainWalletResponse>;
49
+ sponge(request: SpongeRequest): Promise<SpongeResponse>;
50
+ createX402Payment(options: CreateX402PaymentOptions): Promise<X402PaymentResponse>;
51
+ }
52
+ //# sourceMappingURL=public-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-tools.d.ts","sourceRoot":"","sources":["../../src/api/public-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,KAAK,EACV,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACtB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iCAAiC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC9B;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEvC,mBAAmB,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgBpF,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAMpE,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAM1E,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAKlE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAOrF,6BAA6B,CACjC,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,0BAA0B,CAAC;IAQhC,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK/E,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAKjG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAKvD,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAIzF"}
@@ -0,0 +1,68 @@
1
+ import { DetailedBalancesSchema, EvmTransferOptionsSchema, SolanaTransferOptionsSchema, SubmitTransactionSchema, SolanaTokensResponseSchema, SolanaTokenSearchResponseSchema, FundingRequestResponseSchema, WithdrawToMainWalletResponseSchema, TransactionHistoryDetailedSchema, SpongeResponseSchema, X402PaymentResponseSchema, } from "../types/schemas.js";
2
+ export class PublicToolsApi {
3
+ http;
4
+ constructor(http) {
5
+ this.http = http;
6
+ }
7
+ async getDetailedBalances(options = {}) {
8
+ const params = {};
9
+ if (options.chain) {
10
+ params.chain = options.chain;
11
+ }
12
+ if (options.allowedChains?.length) {
13
+ params.allowedChains = options.allowedChains.join(",");
14
+ }
15
+ if (options.onlyUsdc) {
16
+ params.onlyUsdc = "true";
17
+ }
18
+ const response = await this.http.get("/api/balances", params);
19
+ return DetailedBalancesSchema.parse(response);
20
+ }
21
+ async evmTransfer(options) {
22
+ const validated = EvmTransferOptionsSchema.parse(options);
23
+ const response = await this.http.post("/api/transfers/evm", validated);
24
+ return SubmitTransactionSchema.parse(response);
25
+ }
26
+ async solanaTransfer(options) {
27
+ const validated = SolanaTransferOptionsSchema.parse(options);
28
+ const response = await this.http.post("/api/transfers/solana", validated);
29
+ return SubmitTransactionSchema.parse(response);
30
+ }
31
+ async getSolanaTokens(chain) {
32
+ const response = await this.http.get("/api/solana/tokens", { chain });
33
+ return SolanaTokensResponseSchema.parse(response);
34
+ }
35
+ async searchSolanaTokens(query, limit) {
36
+ const params = { query };
37
+ if (limit !== undefined)
38
+ params.limit = limit.toString();
39
+ const response = await this.http.get("/api/solana/tokens/search", params);
40
+ return SolanaTokenSearchResponseSchema.parse(response);
41
+ }
42
+ async getTransactionHistoryDetailed(options = {}) {
43
+ const params = {};
44
+ if (options.limit !== undefined)
45
+ params.limit = options.limit.toString();
46
+ if (options.chain)
47
+ params.chain = options.chain;
48
+ const response = await this.http.get("/api/transactions/history", params);
49
+ return TransactionHistoryDetailedSchema.parse(response);
50
+ }
51
+ async requestFunding(options) {
52
+ const response = await this.http.post("/api/funding-requests", options);
53
+ return FundingRequestResponseSchema.parse(response);
54
+ }
55
+ async withdrawToMainWallet(options) {
56
+ const response = await this.http.post("/api/wallets/withdraw-to-main", options);
57
+ return WithdrawToMainWalletResponseSchema.parse(response);
58
+ }
59
+ async sponge(request) {
60
+ const response = await this.http.post("/api/sponge", request);
61
+ return SpongeResponseSchema.parse(response);
62
+ }
63
+ async createX402Payment(options) {
64
+ const response = await this.http.post("/api/x402/payments", options);
65
+ return X402PaymentResponseSchema.parse(response);
66
+ }
67
+ }
68
+ //# sourceMappingURL=public-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-tools.js","sourceRoot":"","sources":["../../src/api/public-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type TransactionResult, type TransactionStatus, type TransferOptions, type SwapOptions, type Chain } from "../types/schemas.js";
2
+ import type { HttpClient } from "./http.js";
3
+ export declare class TransactionsApi {
4
+ private readonly http;
5
+ private readonly agentId;
6
+ constructor(http: HttpClient, agentId: string);
7
+ /**
8
+ * Transfer tokens (EVM or Solana)
9
+ * Uses the /api/transactions/transfer endpoint
10
+ */
11
+ transfer(options: TransferOptions): Promise<TransactionResult>;
12
+ /**
13
+ * Swap tokens (Solana via Jupiter)
14
+ * Uses the /api/transactions/swap endpoint
15
+ */
16
+ swap(options: SwapOptions): Promise<TransactionResult>;
17
+ /**
18
+ * Get transaction status
19
+ * Uses the /api/transactions/status/:txHash endpoint
20
+ */
21
+ getStatus(txHash: string, chain: Chain): Promise<TransactionStatus>;
22
+ /**
23
+ * Get transaction history
24
+ */
25
+ getHistory(options?: {
26
+ limit?: number;
27
+ offset?: number;
28
+ }): Promise<TransactionStatus[]>;
29
+ }
30
+ //# sourceMappingURL=transactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../src/api/transactions.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,KAAK,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AA2C5C,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM;IAGlC;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2EpE;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoB5D;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqBzE;;OAEG;IACG,UAAU,CACd,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAsBhC"}
@@ -0,0 +1,176 @@
1
+ import { z } from "zod";
2
+ import { TransactionResultSchema, TransactionStatusSchema, TransferOptionsSchema, SwapOptionsSchema, SubmitTransactionSchema, CHAIN_IDS, } from "../types/schemas.js";
3
+ // Swap response from API
4
+ const SwapResponseSchema = z.object({
5
+ signature: z.string(),
6
+ inputToken: z.string(),
7
+ outputToken: z.string(),
8
+ inputAmount: z.string(),
9
+ outputAmount: z.string(),
10
+ explorerUrl: z.string().optional(),
11
+ });
12
+ // Transaction status response from API
13
+ const TransactionStatusResponseSchema = z.object({
14
+ transactionHash: z.string(),
15
+ status: z.enum(["pending", "confirmed", "failed"]),
16
+ confirmations: z.number().nullable(),
17
+ blockNumber: z.number().nullable(),
18
+ gasUsed: z.string().nullable(),
19
+ effectiveGasPrice: z.string().nullable(),
20
+ });
21
+ // Transaction history response from API
22
+ const TransactionHistoryResponseSchema = z.object({
23
+ items: z.array(z.object({
24
+ id: z.string(),
25
+ txHash: z.string().nullable(),
26
+ txStatus: z.string(),
27
+ fromAddress: z.string(),
28
+ toAddress: z.string(),
29
+ value: z.string(),
30
+ chainId: z.number(),
31
+ txType: z.string(),
32
+ createdAt: z.coerce.date(),
33
+ })),
34
+ total: z.number(),
35
+ page: z.number(),
36
+ perPage: z.number(),
37
+ totalPages: z.number(),
38
+ });
39
+ export class TransactionsApi {
40
+ http;
41
+ agentId;
42
+ constructor(http, agentId) {
43
+ this.http = http;
44
+ this.agentId = agentId;
45
+ }
46
+ /**
47
+ * Transfer tokens (EVM or Solana)
48
+ * Uses the /api/transactions/transfer endpoint
49
+ */
50
+ async transfer(options) {
51
+ const validated = TransferOptionsSchema.parse(options);
52
+ const chainId = CHAIN_IDS[validated.chain];
53
+ if (chainId === undefined) {
54
+ throw new Error(`Unknown chain: ${validated.chain}`);
55
+ }
56
+ // Solana transfers
57
+ if (validated.chain === "solana" || validated.chain === "solana-devnet") {
58
+ if (validated.currency !== "SOL" && validated.currency !== "USDC") {
59
+ throw new Error(`Currency ${validated.currency} not supported on ${validated.chain}`);
60
+ }
61
+ const response = await this.http.post("/api/transfers/solana", {
62
+ chain: validated.chain,
63
+ to: validated.to,
64
+ amount: validated.amount,
65
+ currency: validated.currency,
66
+ });
67
+ const parsed = SubmitTransactionSchema.parse(response);
68
+ const status = parsed.status === "pending" || parsed.status === "submitted" ? "pending" : "confirmed";
69
+ return TransactionResultSchema.parse({
70
+ txHash: parsed.transactionHash,
71
+ status,
72
+ explorerUrl: parsed.explorerUrl,
73
+ chainId,
74
+ });
75
+ }
76
+ // Tempo pathUSD transfers
77
+ if (validated.chain === "tempo" || validated.currency === "pathUSD") {
78
+ if (validated.chain !== "tempo" || validated.currency !== "pathUSD") {
79
+ throw new Error("pathUSD transfers are only supported on the tempo chain");
80
+ }
81
+ const response = await this.http.post("/api/transfers/tempo", {
82
+ to: validated.to,
83
+ amount: validated.amount,
84
+ use_gas_sponsorship: true,
85
+ });
86
+ const parsed = SubmitTransactionSchema.parse(response);
87
+ const status = parsed.status === "pending" || parsed.status === "submitted" ? "pending" : "confirmed";
88
+ return TransactionResultSchema.parse({
89
+ txHash: parsed.transactionHash,
90
+ status,
91
+ explorerUrl: parsed.explorerUrl,
92
+ chainId,
93
+ });
94
+ }
95
+ // EVM transfers
96
+ if (validated.currency !== "ETH" && validated.currency !== "USDC") {
97
+ throw new Error(`Currency ${validated.currency} not supported on ${validated.chain}`);
98
+ }
99
+ const response = await this.http.post("/api/transfers/evm", {
100
+ chain: validated.chain,
101
+ to: validated.to,
102
+ amount: validated.amount,
103
+ currency: validated.currency,
104
+ });
105
+ const parsed = SubmitTransactionSchema.parse(response);
106
+ const status = parsed.status === "pending" || parsed.status === "submitted" ? "pending" : "confirmed";
107
+ return TransactionResultSchema.parse({
108
+ txHash: parsed.transactionHash,
109
+ status,
110
+ explorerUrl: parsed.explorerUrl,
111
+ chainId,
112
+ });
113
+ }
114
+ /**
115
+ * Swap tokens (Solana via Jupiter)
116
+ * Uses the /api/transactions/swap endpoint
117
+ */
118
+ async swap(options) {
119
+ const validated = SwapOptionsSchema.parse(options);
120
+ const response = await this.http.post("/api/transactions/swap", {
121
+ chain: validated.chain,
122
+ inputToken: validated.from,
123
+ outputToken: validated.to,
124
+ amount: validated.amount,
125
+ slippageBps: validated.slippageBps,
126
+ });
127
+ const parsed = SwapResponseSchema.parse(response);
128
+ return TransactionResultSchema.parse({
129
+ txHash: parsed.signature,
130
+ status: "confirmed",
131
+ explorerUrl: parsed.explorerUrl,
132
+ });
133
+ }
134
+ /**
135
+ * Get transaction status
136
+ * Uses the /api/transactions/status/:txHash endpoint
137
+ */
138
+ async getStatus(txHash, chain) {
139
+ const params = {
140
+ chain,
141
+ };
142
+ const response = await this.http.get(`/api/transactions/status/${txHash}`, params);
143
+ const parsed = TransactionStatusResponseSchema.parse(response);
144
+ return TransactionStatusSchema.parse({
145
+ txHash: parsed.transactionHash,
146
+ status: parsed.status,
147
+ blockNumber: parsed.blockNumber,
148
+ confirmations: parsed.confirmations,
149
+ errorMessage: null,
150
+ });
151
+ }
152
+ /**
153
+ * Get transaction history
154
+ */
155
+ async getHistory(options) {
156
+ const params = {
157
+ agentId: this.agentId,
158
+ };
159
+ if (options?.limit !== undefined) {
160
+ params.limit = options.limit.toString();
161
+ }
162
+ if (options?.offset !== undefined) {
163
+ params.offset = options.offset.toString();
164
+ }
165
+ const response = await this.http.get("/api/transactions", params);
166
+ const parsed = TransactionHistoryResponseSchema.parse(response);
167
+ return parsed.items.map((tx) => ({
168
+ txHash: tx.txHash ?? "",
169
+ status: tx.txStatus,
170
+ blockNumber: null,
171
+ confirmations: null,
172
+ errorMessage: null,
173
+ }));
174
+ }
175
+ }
176
+ //# sourceMappingURL=transactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../src/api/transactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type Wallet, type Chain, type Balance } from "../types/schemas.js";
2
+ import type { HttpClient } from "./http.js";
3
+ export declare class WalletsApi {
4
+ private readonly http;
5
+ constructor(http: HttpClient);
6
+ /**
7
+ * List all wallets for an agent
8
+ */
9
+ list(agentId: string, options?: {
10
+ includeBalances?: boolean;
11
+ }): Promise<Wallet[]>;
12
+ /**
13
+ * Get a specific wallet by ID
14
+ */
15
+ get(walletId: string): Promise<Wallet>;
16
+ /**
17
+ * Get wallet balance
18
+ */
19
+ getBalance(walletId: string, chainId?: number): Promise<Balance>;
20
+ /**
21
+ * Get balances for all wallets of an agent
22
+ */
23
+ getAllBalances(agentId: string): Promise<Record<Chain, Balance>>;
24
+ /**
25
+ * Get wallet address for a specific chain
26
+ */
27
+ getAddress(agentId: string, chain: Chain): Promise<string | null>;
28
+ /**
29
+ * Get all wallet addresses for an agent
30
+ */
31
+ getAllAddresses(agentId: string): Promise<Record<Chain, string>>;
32
+ }
33
+ //# sourceMappingURL=wallets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/api/wallets.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,OAAO,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAyB5C,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,MAAM,EAAE,CAAC;IAepB;;OAEG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5C;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BtE;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IA4BtE;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQvE;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAoBvE"}
@@ -0,0 +1,121 @@
1
+ import { z } from "zod";
2
+ import { WalletSchema, ChainSchema, CHAIN_IDS, } from "../types/schemas.js";
3
+ // Balance response from API
4
+ const BalanceResponseSchema = z.object({
5
+ walletId: z.string(),
6
+ address: z.string(),
7
+ chainId: z.number(),
8
+ balance: z.string(),
9
+ balanceFormatted: z.string(),
10
+ symbol: z.string(),
11
+ tokenBalances: z
12
+ .array(z.object({
13
+ tokenAddress: z.string(),
14
+ symbol: z.string(),
15
+ name: z.string(),
16
+ decimals: z.number(),
17
+ balance: z.string(),
18
+ formatted: z.string(),
19
+ usdValue: z.string().optional(),
20
+ }))
21
+ .optional(),
22
+ });
23
+ export class WalletsApi {
24
+ http;
25
+ constructor(http) {
26
+ this.http = http;
27
+ }
28
+ /**
29
+ * List all wallets for an agent
30
+ */
31
+ async list(agentId, options) {
32
+ const params = {
33
+ agentId,
34
+ };
35
+ if (options?.includeBalances) {
36
+ params.includeBalances = "true";
37
+ }
38
+ const response = await this.http.get(`/api/wallets`, params);
39
+ return z.array(WalletSchema).parse(response);
40
+ }
41
+ /**
42
+ * Get a specific wallet by ID
43
+ */
44
+ async get(walletId) {
45
+ const response = await this.http.get(`/api/wallets/${walletId}`);
46
+ return WalletSchema.parse(response);
47
+ }
48
+ /**
49
+ * Get wallet balance
50
+ */
51
+ async getBalance(walletId, chainId) {
52
+ const params = {};
53
+ if (chainId !== undefined) {
54
+ params.chainId = chainId.toString();
55
+ }
56
+ const response = await this.http.get(`/api/wallets/${walletId}/balance`, params);
57
+ const parsed = BalanceResponseSchema.parse(response);
58
+ // Convert to simple balance map
59
+ const balance = {
60
+ [parsed.symbol]: parsed.balanceFormatted,
61
+ };
62
+ // Add token balances
63
+ if (parsed.tokenBalances) {
64
+ for (const token of parsed.tokenBalances) {
65
+ balance[token.symbol] = token.formatted;
66
+ }
67
+ }
68
+ return balance;
69
+ }
70
+ /**
71
+ * Get balances for all wallets of an agent
72
+ */
73
+ async getAllBalances(agentId) {
74
+ const wallets = await this.list(agentId, { includeBalances: true });
75
+ const balances = {};
76
+ for (const wallet of wallets) {
77
+ // Find chain name from chainId
78
+ const chainEntry = Object.entries(CHAIN_IDS).find(([_, id]) => id === wallet.chainId);
79
+ if (!chainEntry)
80
+ continue;
81
+ const chainName = chainEntry[0];
82
+ const chainResult = ChainSchema.safeParse(chainName);
83
+ if (!chainResult.success)
84
+ continue;
85
+ const balance = {};
86
+ if (wallet.symbol && wallet.balance) {
87
+ balance[wallet.symbol] = wallet.balance;
88
+ }
89
+ balances[chainResult.data] = balance;
90
+ }
91
+ return balances;
92
+ }
93
+ /**
94
+ * Get wallet address for a specific chain
95
+ */
96
+ async getAddress(agentId, chain) {
97
+ const chainId = CHAIN_IDS[chain];
98
+ const wallets = await this.list(agentId);
99
+ const wallet = wallets.find((w) => w.chainId === chainId);
100
+ return wallet?.address ?? null;
101
+ }
102
+ /**
103
+ * Get all wallet addresses for an agent
104
+ */
105
+ async getAllAddresses(agentId) {
106
+ const wallets = await this.list(agentId);
107
+ const addresses = {};
108
+ for (const wallet of wallets) {
109
+ const chainEntry = Object.entries(CHAIN_IDS).find(([_, id]) => id === wallet.chainId);
110
+ if (!chainEntry)
111
+ continue;
112
+ const chainName = chainEntry[0];
113
+ const chainResult = ChainSchema.safeParse(chainName);
114
+ if (!chainResult.success)
115
+ continue;
116
+ addresses[chainResult.data] = wallet.address;
117
+ }
118
+ return addresses;
119
+ }
120
+ }
121
+ //# sourceMappingURL=wallets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../src/api/wallets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { type Credentials } from "../types/schemas.js";
2
+ export type { Credentials };
3
+ /**
4
+ * Get the credentials directory path
5
+ */
6
+ export declare function getCredentialsDir(): string;
7
+ /**
8
+ * Get the credentials file path
9
+ */
10
+ export declare function getCredentialsPath(): string;
11
+ /**
12
+ * Load credentials from disk
13
+ * @returns Credentials if found and valid, null otherwise
14
+ */
15
+ export declare function loadCredentials(): Credentials | null;
16
+ /**
17
+ * Save credentials to disk
18
+ */
19
+ export declare function saveCredentials(credentials: Credentials): void;
20
+ /**
21
+ * Delete credentials from disk
22
+ */
23
+ export declare function deleteCredentials(): void;
24
+ /**
25
+ * Check if credentials exist
26
+ */
27
+ export declare function hasCredentials(): boolean;
28
+ /**
29
+ * Get API key from environment variable or credentials file
30
+ * @param envVarName Name of the environment variable to check (default: SPONGE_API_KEY)
31
+ */
32
+ export declare function getApiKey(envVarName?: string): string | null;
33
+ /**
34
+ * Get agent ID from credentials file
35
+ */
36
+ export declare function getAgentId(): string | null;
37
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/auth/credentials.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAG1E,YAAY,EAAE,WAAW,EAAE,CAAC;AAK5B;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAYD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAsBpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAU9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,UAAU,SAAmB,GAAG,MAAM,GAAG,IAAI,CAUtE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAG1C"}