@atxp/client 0.7.4 → 0.8.1

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 (55) hide show
  1. package/dist/atxpClient.d.ts +1 -1
  2. package/dist/atxpClient.d.ts.map +1 -1
  3. package/dist/atxpClient.js +17 -2
  4. package/dist/atxpClient.js.map +1 -1
  5. package/dist/atxpFetcher.d.ts +5 -15
  6. package/dist/atxpFetcher.d.ts.map +1 -1
  7. package/dist/atxpFetcher.js +95 -229
  8. package/dist/atxpFetcher.js.map +1 -1
  9. package/dist/baseAccount.d.ts +10 -7
  10. package/dist/baseAccount.d.ts.map +1 -1
  11. package/dist/baseAccount.js +18 -8
  12. package/dist/baseAccount.js.map +1 -1
  13. package/dist/basePaymentMaker.d.ts +4 -3
  14. package/dist/basePaymentMaker.d.ts.map +1 -1
  15. package/dist/basePaymentMaker.js +20 -3
  16. package/dist/basePaymentMaker.js.map +1 -1
  17. package/dist/clientTestHelpers.d.ts.map +1 -1
  18. package/dist/destinationMakers/atxpDestinationMaker.d.ts +15 -0
  19. package/dist/destinationMakers/atxpDestinationMaker.d.ts.map +1 -0
  20. package/dist/destinationMakers/atxpDestinationMaker.js +128 -0
  21. package/dist/destinationMakers/atxpDestinationMaker.js.map +1 -0
  22. package/dist/destinationMakers/index.d.ts +9 -0
  23. package/dist/destinationMakers/index.d.ts.map +1 -0
  24. package/dist/destinationMakers/index.js +45 -0
  25. package/dist/destinationMakers/index.js.map +1 -0
  26. package/dist/destinationMakers/passthroughDestinationMaker.d.ts +8 -0
  27. package/dist/destinationMakers/passthroughDestinationMaker.d.ts.map +1 -0
  28. package/dist/destinationMakers/passthroughDestinationMaker.js +27 -0
  29. package/dist/destinationMakers/passthroughDestinationMaker.js.map +1 -0
  30. package/dist/index.cjs +566 -466
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.ts +102 -55
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +555 -467
  35. package/dist/index.js.map +1 -1
  36. package/dist/polygonConstants.d.ts +53 -0
  37. package/dist/polygonConstants.d.ts.map +1 -0
  38. package/dist/polygonConstants.js +84 -0
  39. package/dist/polygonConstants.js.map +1 -0
  40. package/dist/solanaAccount.d.ts +8 -4
  41. package/dist/solanaAccount.d.ts.map +1 -1
  42. package/dist/solanaAccount.js +16 -4
  43. package/dist/solanaAccount.js.map +1 -1
  44. package/dist/solanaPaymentMaker.d.ts +4 -3
  45. package/dist/solanaPaymentMaker.d.ts.map +1 -1
  46. package/dist/solanaPaymentMaker.js +24 -5
  47. package/dist/solanaPaymentMaker.js.map +1 -1
  48. package/dist/types.d.ts +5 -23
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/types.js.map +1 -1
  51. package/package.json +2 -2
  52. package/dist/atxpAccount.d.ts +0 -18
  53. package/dist/atxpAccount.d.ts.map +0 -1
  54. package/dist/atxpAccount.js +0 -123
  55. package/dist/atxpAccount.js.map +0 -1
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Polygon Chain configuration type, compatible with viem's Chain interface
3
+ */
4
+ export type PolygonChain = {
5
+ readonly id: number;
6
+ readonly name: string;
7
+ readonly nativeCurrency: {
8
+ readonly name: string;
9
+ readonly symbol: string;
10
+ readonly decimals: number;
11
+ };
12
+ readonly rpcUrls: {
13
+ readonly default: {
14
+ readonly http: readonly string[];
15
+ };
16
+ };
17
+ readonly blockExplorers: {
18
+ readonly default: {
19
+ readonly name: string;
20
+ readonly url: string;
21
+ };
22
+ };
23
+ readonly testnet?: boolean;
24
+ };
25
+ export declare const USDC_CONTRACT_ADDRESS_POLYGON_MAINNET = "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359";
26
+ export declare const USDC_CONTRACT_ADDRESS_POLYGON_AMOY = "0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582";
27
+ export declare const POLYGON_MAINNET: PolygonChain;
28
+ export declare const POLYGON_AMOY: PolygonChain;
29
+ /**
30
+ * Get Polygon Mainnet configuration with custom RPC URL (e.g., with API key)
31
+ * @param rpcUrl - Custom RPC URL, e.g., 'https://polygon-mainnet.g.alchemy.com/v2/YOUR_API_KEY'
32
+ */
33
+ export declare const getPolygonMainnetWithRPC: (rpcUrl: string) => PolygonChain;
34
+ /**
35
+ * Get Polygon Amoy Testnet configuration with custom RPC URL (e.g., with API key)
36
+ * @param rpcUrl - Custom RPC URL, e.g., 'https://polygon-amoy.g.alchemy.com/v2/YOUR_API_KEY'
37
+ */
38
+ export declare const getPolygonAmoyWithRPC: (rpcUrl: string) => PolygonChain;
39
+ /**
40
+ * Get Polygon Chain configuration by chain ID
41
+ * @param chainId - Chain ID (137 for mainnet, 80002 for Amoy testnet)
42
+ * @returns Polygon Chain configuration
43
+ * @throws Error if chain ID is not supported
44
+ */
45
+ export declare const getPolygonByChainId: (chainId: number) => PolygonChain;
46
+ /**
47
+ * Get USDC contract address for Polygon by chain ID
48
+ * @param chainId - Chain ID (137 for mainnet, 80002 for Amoy testnet)
49
+ * @returns USDC contract address
50
+ * @throws Error if chain ID is not supported
51
+ */
52
+ export declare const getPolygonUSDCAddress: (chainId: number) => string;
53
+ //# sourceMappingURL=polygonConstants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygonConstants.d.ts","sourceRoot":"","sources":["../src/polygonConstants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,OAAO,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,CAAC;KACxD,CAAC;IACF,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,OAAO,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KACnE,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,qCAAqC,+CAA+C,CAAC;AAClG,eAAO,MAAM,kCAAkC,+CAA+C,CAAC;AAI/F,eAAO,MAAM,eAAe,EAAE,YAUpB,CAAC;AAIX,eAAO,MAAM,YAAY,EAAE,YAWjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,YAKxD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,KAAG,YAKrD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,KAAG,YASrD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,MASvD,CAAC"}
@@ -0,0 +1,84 @@
1
+ const USDC_CONTRACT_ADDRESS_POLYGON_MAINNET = "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"; // Native USDC on Polygon mainnet
2
+ const USDC_CONTRACT_ADDRESS_POLYGON_AMOY = "0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582"; // USDC on Polygon Amoy testnet
3
+ // Polygon Mainnet (Chain ID: 137)
4
+ // Note: Native currency upgraded from MATIC to POL on September 4, 2024
5
+ const POLYGON_MAINNET = {
6
+ id: 137,
7
+ name: 'Polygon',
8
+ nativeCurrency: { name: 'POL', symbol: 'POL', decimals: 18 },
9
+ rpcUrls: {
10
+ default: { http: ['https://polygon-rpc.com'] }
11
+ },
12
+ blockExplorers: {
13
+ default: { name: 'PolygonScan', url: 'https://polygonscan.com' }
14
+ }
15
+ };
16
+ // Polygon Amoy Testnet (Chain ID: 80002)
17
+ // Note: Amoy testnet also uses POL as native currency (following mainnet upgrade)
18
+ const POLYGON_AMOY = {
19
+ id: 80002,
20
+ name: 'Polygon Amoy',
21
+ nativeCurrency: { name: 'POL', symbol: 'POL', decimals: 18 },
22
+ rpcUrls: {
23
+ default: { http: ['https://rpc-amoy.polygon.technology'] }
24
+ },
25
+ blockExplorers: {
26
+ default: { name: 'PolygonScan Amoy', url: 'https://amoy.polygonscan.com' }
27
+ },
28
+ testnet: true
29
+ };
30
+ /**
31
+ * Get Polygon Mainnet configuration with custom RPC URL (e.g., with API key)
32
+ * @param rpcUrl - Custom RPC URL, e.g., 'https://polygon-mainnet.g.alchemy.com/v2/YOUR_API_KEY'
33
+ */
34
+ const getPolygonMainnetWithRPC = (rpcUrl) => ({
35
+ ...POLYGON_MAINNET,
36
+ rpcUrls: {
37
+ default: { http: [rpcUrl] }
38
+ }
39
+ });
40
+ /**
41
+ * Get Polygon Amoy Testnet configuration with custom RPC URL (e.g., with API key)
42
+ * @param rpcUrl - Custom RPC URL, e.g., 'https://polygon-amoy.g.alchemy.com/v2/YOUR_API_KEY'
43
+ */
44
+ const getPolygonAmoyWithRPC = (rpcUrl) => ({
45
+ ...POLYGON_AMOY,
46
+ rpcUrls: {
47
+ default: { http: [rpcUrl] }
48
+ }
49
+ });
50
+ /**
51
+ * Get Polygon Chain configuration by chain ID
52
+ * @param chainId - Chain ID (137 for mainnet, 80002 for Amoy testnet)
53
+ * @returns Polygon Chain configuration
54
+ * @throws Error if chain ID is not supported
55
+ */
56
+ const getPolygonByChainId = (chainId) => {
57
+ switch (chainId) {
58
+ case 137:
59
+ return POLYGON_MAINNET;
60
+ case 80002:
61
+ return POLYGON_AMOY;
62
+ default:
63
+ throw new Error(`Unsupported Polygon Chain ID: ${chainId}. Supported chains: 137 (mainnet), 80002 (Amoy testnet)`);
64
+ }
65
+ };
66
+ /**
67
+ * Get USDC contract address for Polygon by chain ID
68
+ * @param chainId - Chain ID (137 for mainnet, 80002 for Amoy testnet)
69
+ * @returns USDC contract address
70
+ * @throws Error if chain ID is not supported
71
+ */
72
+ const getPolygonUSDCAddress = (chainId) => {
73
+ switch (chainId) {
74
+ case 137:
75
+ return USDC_CONTRACT_ADDRESS_POLYGON_MAINNET;
76
+ case 80002:
77
+ return USDC_CONTRACT_ADDRESS_POLYGON_AMOY;
78
+ default:
79
+ throw new Error(`Unsupported Polygon Chain ID: ${chainId}. Supported chains: 137 (mainnet), 80002 (Amoy testnet)`);
80
+ }
81
+ };
82
+
83
+ export { POLYGON_AMOY, POLYGON_MAINNET, USDC_CONTRACT_ADDRESS_POLYGON_AMOY, USDC_CONTRACT_ADDRESS_POLYGON_MAINNET, getPolygonAmoyWithRPC, getPolygonByChainId, getPolygonMainnetWithRPC, getPolygonUSDCAddress };
84
+ //# sourceMappingURL=polygonConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygonConstants.js","sources":["../src/polygonConstants.ts"],"sourcesContent":[null],"names":[],"mappings":"AAoBO,MAAM,qCAAqC,GAAG,6CAA6C;AAC3F,MAAM,kCAAkC,GAAG,6CAA6C;AAE/F;AACA;AACO,MAAM,eAAe,GAAiB;AAC3C,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC5D,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,yBAAyB,CAAC;AAC7C,KAAA;AACD,IAAA,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,yBAAyB;AAC/D;;AAGH;AACA;AACO,MAAM,YAAY,GAAiB;AACxC,IAAA,EAAE,EAAE,KAAK;AACT,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC5D,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,qCAAqC,CAAC;AACzD,KAAA;AACD,IAAA,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,8BAA8B;AACzE,KAAA;AACD,IAAA,OAAO,EAAE;;AAGX;;;AAGG;MACU,wBAAwB,GAAG,CAAC,MAAc,MAAoB;AACzE,IAAA,GAAG,eAAe;AAClB,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC;AAC1B;AACF,CAAA;AAED;;;AAGG;MACU,qBAAqB,GAAG,CAAC,MAAc,MAAoB;AACtE,IAAA,GAAG,YAAY;AACf,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC;AAC1B;AACF,CAAA;AAED;;;;;AAKG;AACI,MAAM,mBAAmB,GAAG,CAAC,OAAe,KAAkB;IACnE,QAAQ,OAAO;AACb,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,eAAe;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,YAAY;AACrB,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAA,uDAAA,CAAyD,CAAC;;AAExH;AAEA;;;;;AAKG;AACI,MAAM,qBAAqB,GAAG,CAAC,OAAe,KAAY;IAC/D,QAAQ,OAAO;AACb,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,qCAAqC;AAC9C,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,kCAAkC;AAC3C,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAA,uDAAA,CAAyD,CAAC;;AAExH;;;;"}
@@ -1,9 +1,13 @@
1
1
  import type { Account, PaymentMaker } from './types.js';
2
+ import type { AccountId, Source } from '@atxp/common';
2
3
  export declare class SolanaAccount implements Account {
3
- accountId: string;
4
- paymentMakers: {
5
- [key: string]: PaymentMaker;
6
- };
4
+ accountId: AccountId;
5
+ paymentMakers: PaymentMaker[];
6
+ private sourcePublicKey;
7
7
  constructor(solanaEndpoint: string, sourceSecretKey: string);
8
+ /**
9
+ * Get sources for this account
10
+ */
11
+ getSources(): Promise<Source[]>;
8
12
  }
9
13
  //# sourceMappingURL=solanaAccount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solanaAccount.d.ts","sourceRoot":"","sources":["../src/solanaAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAKxD,qBAAa,aAAc,YAAW,OAAO;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAC;gBAEnC,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;CAc5D"}
1
+ {"version":3,"file":"solanaAccount.d.ts","sourceRoot":"","sources":["../src/solanaAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtD,qBAAa,aAAc,YAAW,OAAO;IAC3C,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,OAAO,CAAC,eAAe,CAAS;gBAEpB,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAiB3D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAOtC"}
@@ -11,10 +11,22 @@ class SolanaAccount {
11
11
  throw new Error('Source secret key is required');
12
12
  }
13
13
  const source = Keypair.fromSecretKey(bs58.decode(sourceSecretKey));
14
- this.accountId = source.publicKey.toBase58();
15
- this.paymentMakers = {
16
- 'solana': new SolanaPaymentMaker(solanaEndpoint, sourceSecretKey),
17
- };
14
+ this.sourcePublicKey = source.publicKey.toBase58();
15
+ // Format accountId as network:address
16
+ this.accountId = `solana:${this.sourcePublicKey}`;
17
+ this.paymentMakers = [
18
+ new SolanaPaymentMaker(solanaEndpoint, sourceSecretKey)
19
+ ];
20
+ }
21
+ /**
22
+ * Get sources for this account
23
+ */
24
+ async getSources() {
25
+ return [{
26
+ address: this.sourcePublicKey,
27
+ chain: 'solana',
28
+ walletType: 'eoa'
29
+ }];
18
30
  }
19
31
  }
20
32
 
@@ -1 +1 @@
1
- {"version":3,"file":"solanaAccount.js","sources":["../src/solanaAccount.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;MAKa,aAAa,CAAA;IAIxB,WAAA,CAAY,cAAsB,EAAE,eAAuB,EAAA;QACzD,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;QACA,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;QAClD;AACA,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAElE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;QAC5C,IAAI,CAAC,aAAa,GAAG;AACnB,YAAA,QAAQ,EAAE,IAAI,kBAAkB,CAAC,cAAc,EAAE,eAAe,CAAC;SAClE;IACH;AACD;;;;"}
1
+ {"version":3,"file":"solanaAccount.js","sources":["../src/solanaAccount.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;MAMa,aAAa,CAAA;IAKxB,WAAA,CAAY,cAAsB,EAAE,eAAuB,EAAA;QACzD,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;QACA,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;QAClD;AACA,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;;QAGlD,IAAI,CAAC,SAAS,GAAG,CAAA,OAAA,EAAU,IAAI,CAAC,eAAe,EAAe;QAC9D,IAAI,CAAC,aAAa,GAAG;AACnB,YAAA,IAAI,kBAAkB,CAAC,cAAc,EAAE,eAAe;SACvD;IACH;AAEA;;AAEG;AACH,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,OAAO,CAAC;gBACN,OAAO,EAAE,IAAI,CAAC,eAAe;AAC7B,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,UAAU,EAAE;AACb,aAAA,CAAC;IACJ;AACD;;;;"}
@@ -1,7 +1,7 @@
1
1
  import type { PaymentMaker } from './types.js';
2
2
  import { ValidateTransferError as _ValidateTransferError } from "@solana/pay";
3
3
  import BigNumber from "bignumber.js";
4
- import { Currency } from '@atxp/common';
4
+ import { Currency, AccountId, PaymentIdentifier, Destination } from '@atxp/common';
5
5
  import { Logger } from '@atxp/common';
6
6
  export declare const ValidateTransferError: typeof _ValidateTransferError;
7
7
  export declare class SolanaPaymentMaker implements PaymentMaker {
@@ -15,10 +15,11 @@ export declare class SolanaPaymentMaker implements PaymentMaker {
15
15
  receiver: string;
16
16
  memo: string;
17
17
  }): string;
18
- generateJWT: ({ paymentRequestId, codeChallenge }: {
18
+ generateJWT: ({ paymentRequestId, codeChallenge, accountId }: {
19
19
  paymentRequestId: string;
20
20
  codeChallenge: string;
21
+ accountId?: AccountId | null;
21
22
  }) => Promise<string>;
22
- makePayment: (amount: BigNumber, currency: Currency, receiver: string, memo: string) => Promise<string>;
23
+ makePayment: (destinations: Destination[], memo: string, _paymentRequestId?: string) => Promise<PaymentIdentifier | null>;
23
24
  }
24
25
  //# sourceMappingURL=solanaPaymentMaker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solanaPaymentMaker.d.ts","sourceRoot":"","sources":["../src/solanaPaymentMaker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAkB,qBAAqB,IAAI,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG9F,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAe,QAAQ,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC,eAAO,MAAM,qBAAqB,+BAAyB,CAAC;AAE5D,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAY5E,gBAAgB,CAAC,OAAO,EAAE;QAAC,MAAM,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,MAAM;IAI1G,WAAW,GAAS,qCAAmC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAC,KAAG,OAAO,CAAC,MAAM,CAAC,CAezH;IAED,WAAW,GAAU,QAAQ,SAAS,EAAE,UAAU,QAAQ,EAAE,UAAU,MAAM,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CA8D3G;CACF"}
1
+ {"version":3,"file":"solanaPaymentMaker.d.ts","sourceRoot":"","sources":["../src/solanaPaymentMaker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAkB,qBAAqB,IAAI,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG9F,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAe,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhG,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC,eAAO,MAAM,qBAAqB,+BAAyB,CAAC;AAE5D,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAY5E,gBAAgB,CAAC,OAAO,EAAE;QAAC,MAAM,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,MAAM;IAI1G,WAAW,GAAS,gDAA8C;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;KAAC,KAAG,OAAO,CAAC,MAAM,CAAC,CAelK;IAED,WAAW,GAAU,cAAc,WAAW,EAAE,EAAE,MAAM,MAAM,EAAE,oBAAoB,MAAM,KAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAyF7H;CACF"}
@@ -12,7 +12,7 @@ const USDC_MINT = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
12
12
  const ValidateTransferError = ValidateTransferError$1;
13
13
  class SolanaPaymentMaker {
14
14
  constructor(solanaEndpoint, sourceSecretKey, logger) {
15
- this.generateJWT = async ({ paymentRequestId, codeChallenge }) => {
15
+ this.generateJWT = async ({ paymentRequestId, codeChallenge, accountId }) => {
16
16
  // Solana/Web3.js secretKey is 64 bytes:
17
17
  // first 32 bytes are the private scalar, last 32 are the public key.
18
18
  // JWK expects only the 32-byte private scalar for 'd'
@@ -26,9 +26,20 @@ class SolanaPaymentMaker {
26
26
  if (!(privateKey instanceof CryptoKey)) {
27
27
  throw new Error('Expected CryptoKey from importJWK');
28
28
  }
29
- return generateJWT(this.source.publicKey.toBase58(), privateKey, paymentRequestId || '', codeChallenge || '');
29
+ return generateJWT(this.source.publicKey.toBase58(), privateKey, paymentRequestId || '', codeChallenge || '', accountId);
30
30
  };
31
- this.makePayment = async (amount, currency, receiver, memo) => {
31
+ this.makePayment = async (destinations, memo, _paymentRequestId) => {
32
+ // Filter to solana chain destinations
33
+ const solanaDestinations = destinations.filter(d => d.chain === 'solana');
34
+ if (solanaDestinations.length === 0) {
35
+ this.logger.debug('SolanaPaymentMaker: No solana destinations found, cannot handle payment');
36
+ return null; // Cannot handle these destinations
37
+ }
38
+ // Pick first solana destination
39
+ const dest = solanaDestinations[0];
40
+ const amount = dest.amount;
41
+ const currency = dest.currency;
42
+ const receiver = dest.address;
32
43
  if (currency.toUpperCase() !== 'USDC') {
33
44
  throw new PaymentNetworkError('Only USDC currency is supported; received ' + currency);
34
45
  }
@@ -43,6 +54,8 @@ class SolanaPaymentMaker {
43
54
  this.logger.warn(`Insufficient ${currency} balance for payment. Required: ${amount}, Available: ${balance}`);
44
55
  throw new InsufficientFundsError(currency, amount, balance, 'solana');
45
56
  }
57
+ // Get the destination token account address (this will be the transactionId)
58
+ const destinationTokenAccount = await getAssociatedTokenAddress(USDC_MINT, receiverKey);
46
59
  // Increase compute units to handle both memo and token transfer
47
60
  // Memo uses ~6000 CUs, token transfer needs ~6500 CUs
48
61
  const modifyComputeUnits = ComputeBudgetProgram.setComputeUnitLimit({
@@ -59,8 +72,14 @@ class SolanaPaymentMaker {
59
72
  });
60
73
  transaction.add(modifyComputeUnits);
61
74
  transaction.add(addPriorityFee);
62
- const transactionHash = await sendAndConfirmTransaction(this.connection, transaction, [this.source]);
63
- return transactionHash;
75
+ const transactionSignature = await sendAndConfirmTransaction(this.connection, transaction, [this.source]);
76
+ // Return transaction signature as transactionId and token account address as transactionSubId
77
+ return {
78
+ transactionId: transactionSignature,
79
+ transactionSubId: destinationTokenAccount.toBase58(),
80
+ chain: 'solana',
81
+ currency: 'USDC'
82
+ };
64
83
  }
65
84
  catch (error) {
66
85
  if (error instanceof InsufficientFundsError || error instanceof PaymentNetworkError) {
@@ -1 +1 @@
1
- {"version":3,"file":"solanaPaymentMaker.js","sources":["../src/solanaPaymentMaker.ts"],"sourcesContent":[null],"names":["_ValidateTransferError"],"mappings":"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"}
1
+ {"version":3,"file":"solanaPaymentMaker.js","sources":["../src/solanaPaymentMaker.ts"],"sourcesContent":[null],"names":["_ValidateTransferError"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,20 +1,13 @@
1
- import { AuthorizationServerUrl, Currency, Logger, Network, OAuthDb, FetchLike } from "@atxp/common";
1
+ import { AuthorizationServerUrl, Currency, Logger, Network, OAuthDb, FetchLike, Account, PaymentMaker, AccountId, DestinationMaker } from "@atxp/common";
2
2
  import { ClientOptions } from "@modelcontextprotocol/sdk/client/index.js";
3
3
  import { Implementation } from "@modelcontextprotocol/sdk/types.js";
4
4
  export type Hex = `0x${string}`;
5
5
  type AccountPrefix = Network;
6
6
  export type AccountIdString = `${AccountPrefix}${string}`;
7
- export type Account = {
8
- accountId: string;
9
- paymentMakers: {
10
- [key: string]: PaymentMaker;
11
- };
12
- };
13
7
  export type ProspectivePayment = {
14
- accountId: string;
8
+ accountId: AccountId;
15
9
  resourceUrl: string;
16
10
  resourceName: string;
17
- network: Network;
18
11
  currency: Currency;
19
12
  amount: BigNumber;
20
13
  iss: string;
@@ -22,6 +15,8 @@ export type ProspectivePayment = {
22
15
  export type ClientConfig = {
23
16
  mcpServer: string;
24
17
  account: Account;
18
+ atxpAccountsServer: string;
19
+ destinationMakers: Map<Network, DestinationMaker>;
25
20
  allowedAuthorizationServers: AuthorizationServerUrl[];
26
21
  approvePayment: (payment: ProspectivePayment) => Promise<boolean>;
27
22
  oAuthDb: OAuthDb;
@@ -64,18 +59,5 @@ export declare class PaymentNetworkError extends Error {
64
59
  readonly originalError?: Error | undefined;
65
60
  constructor(message: string, originalError?: Error | undefined);
66
61
  }
67
- export interface PaymentMaker {
68
- makePayment: (amount: BigNumber, currency: Currency, receiver: string, memo: string) => Promise<string>;
69
- generateJWT: (params: {
70
- paymentRequestId: string;
71
- codeChallenge: string;
72
- }) => Promise<string>;
73
- getSourceAddress: (params: {
74
- amount: BigNumber;
75
- currency: Currency;
76
- receiver: string;
77
- memo: string;
78
- }) => string | Promise<string>;
79
- }
80
- export {};
62
+ export type { Account, PaymentMaker };
81
63
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAqDM,MAAO,sBAAuB,SAAQ,KAAK,CAAA;AAC/C,IAAA,WAAA,CACkB,QAAkB,EAClB,QAAmB,EACnB,SAAqB,EACrB,OAAgB,EAAA;AAEhC,QAAA,MAAM,aAAa,GAAG,SAAS,GAAG,CAAA,aAAA,EAAgB,SAAS,CAAA,CAAE,GAAG,EAAE;AAClE,QAAA,MAAM,WAAW,GAAG,OAAO,GAAG,CAAA,IAAA,EAAO,OAAO,CAAA,CAAE,GAAG,EAAE;AACnD,QAAA,KAAK,CACH,CAAA,mCAAA,EAAsC,QAAQ,CAAA,MAAA,EAAS,WAAW,CAAA,EAAA,CAAI;YACtE,CAAA,UAAA,EAAa,QAAQ,CAAA,EAAG,aAAa,CAAA,EAAA,CAAI;AACzC,YAAA,CAAA,gEAAA,CAAkE,CACnE;QAXe,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,OAAO,GAAP,OAAO;AASvB,QAAA,IAAI,CAAC,IAAI,GAAG,wBAAwB;IACtC;AACD;AAEK,MAAO,mBAAoB,SAAQ,KAAK,CAAA;IAC5C,WAAA,CAAY,OAAe,EAAkB,aAAqB,EAAA;AAChE,QAAA,KAAK,CAAC,CAAA,qCAAA,EAAwC,OAAO,CAAA,CAAE,CAAC;QADb,IAAA,CAAA,aAAa,GAAb,aAAa;AAExD,QAAA,IAAI,CAAC,IAAI,GAAG,qBAAqB;IACnC;AACD;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAiDM,MAAO,sBAAuB,SAAQ,KAAK,CAAA;AAC/C,IAAA,WAAA,CACkB,QAAkB,EAClB,QAAmB,EACnB,SAAqB,EACrB,OAAgB,EAAA;AAEhC,QAAA,MAAM,aAAa,GAAG,SAAS,GAAG,CAAA,aAAA,EAAgB,SAAS,CAAA,CAAE,GAAG,EAAE;AAClE,QAAA,MAAM,WAAW,GAAG,OAAO,GAAG,CAAA,IAAA,EAAO,OAAO,CAAA,CAAE,GAAG,EAAE;AACnD,QAAA,KAAK,CACH,CAAA,mCAAA,EAAsC,QAAQ,CAAA,MAAA,EAAS,WAAW,CAAA,EAAA,CAAI;YACtE,CAAA,UAAA,EAAa,QAAQ,CAAA,EAAG,aAAa,CAAA,EAAA,CAAI;AACzC,YAAA,CAAA,gEAAA,CAAkE,CACnE;QAXe,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,OAAO,GAAP,OAAO;AASvB,QAAA,IAAI,CAAC,IAAI,GAAG,wBAAwB;IACtC;AACD;AAEK,MAAO,mBAAoB,SAAQ,KAAK,CAAA;IAC5C,WAAA,CAAY,OAAe,EAAkB,aAAqB,EAAA;AAChE,QAAA,KAAK,CAAC,CAAA,qCAAA,EAAwC,OAAO,CAAA,CAAE,CAAC;QADb,IAAA,CAAA,aAAa,GAAb,aAAa;AAExD,QAAA,IAAI,CAAC,IAAI,GAAG,qBAAqB;IACnC;AACD;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atxp/client",
3
- "version": "0.7.4",
3
+ "version": "0.8.1",
4
4
  "description": "ATXP Client - MCP client with OAuth authentication and payment processing",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,7 +33,7 @@
33
33
  "pack:dry": "npm pack --dry-run"
34
34
  },
35
35
  "dependencies": {
36
- "@atxp/common": "0.7.4",
36
+ "@atxp/common": "0.8.1",
37
37
  "@modelcontextprotocol/sdk": "^1.15.0",
38
38
  "bignumber.js": "^9.3.0",
39
39
  "oauth4webapi": "^3.5.0"
@@ -1,18 +0,0 @@
1
- import type { Account, PaymentMaker } from './types.js';
2
- import type { FetchLike, Network } from '@atxp/common';
3
- import { LocalAccount } from 'viem';
4
- export declare class ATXPAccount implements Account {
5
- accountId: string;
6
- paymentMakers: {
7
- [key: string]: PaymentMaker;
8
- };
9
- origin: string;
10
- token: string;
11
- fetchFn: FetchLike;
12
- constructor(connectionString: string, opts?: {
13
- fetchFn?: FetchLike;
14
- network?: Network;
15
- });
16
- getSigner(): Promise<LocalAccount>;
17
- }
18
- //# sourceMappingURL=atxpAccount.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"atxpAccount.d.ts","sourceRoot":"","sources":["../src/atxpAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAY,MAAM,cAAc,CAAA;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AA+GpC,qBAAa,WAAY,YAAW,OAAO;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,CAAC;gBAEP,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;IAoBjF,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CAOzC"}
@@ -1,123 +0,0 @@
1
- import { crypto } from '@atxp/common';
2
- import { ATXPLocalAccount } from './atxpLocalAccount.js';
3
-
4
- function toBasicAuth(token) {
5
- // Basic auth is base64("username:password"), password is blank
6
- const b64 = Buffer.from(`${token}:`).toString('base64');
7
- return `Basic ${b64}`;
8
- }
9
- function parseConnectionString(connectionString) {
10
- const url = new URL(connectionString);
11
- const origin = url.origin;
12
- const token = url.searchParams.get('connection_token') || '';
13
- const accountId = url.searchParams.get('account_id');
14
- if (!token) {
15
- throw new Error('ATXPAccount: connection string missing connection token');
16
- }
17
- return { origin, token, accountId };
18
- }
19
- class ATXPHttpPaymentMaker {
20
- constructor(origin, token, fetchFn = fetch) {
21
- this.origin = origin;
22
- this.token = token;
23
- this.fetchFn = fetchFn;
24
- }
25
- async getSourceAddress(params) {
26
- // Call the /address_for_payment endpoint to get the source address for this account
27
- const response = await this.fetchFn(`${this.origin}/address_for_payment`, {
28
- method: 'POST',
29
- headers: {
30
- 'Authorization': toBasicAuth(this.token),
31
- 'Content-Type': 'application/json',
32
- },
33
- body: JSON.stringify({
34
- amount: params.amount.toString(),
35
- currency: params.currency,
36
- receiver: params.receiver,
37
- memo: params.memo,
38
- }),
39
- });
40
- if (!response.ok) {
41
- const text = await response.text();
42
- throw new Error(`ATXPAccount: /address_for_payment failed: ${response.status} ${response.statusText} ${text}`);
43
- }
44
- const json = await response.json();
45
- if (!json?.sourceAddress) {
46
- throw new Error('ATXPAccount: /address_for_payment did not return sourceAddress');
47
- }
48
- return json.sourceAddress;
49
- }
50
- async makePayment(amount, currency, receiver, memo) {
51
- // Make a regular payment via the /pay endpoint
52
- const response = await this.fetchFn(`${this.origin}/pay`, {
53
- method: 'POST',
54
- headers: {
55
- 'Authorization': toBasicAuth(this.token),
56
- 'Content-Type': 'application/json',
57
- },
58
- body: JSON.stringify({
59
- amount: amount.toString(),
60
- currency,
61
- receiver,
62
- memo,
63
- }),
64
- });
65
- if (!response.ok) {
66
- const text = await response.text();
67
- throw new Error(`ATXPAccount: /pay failed: ${response.status} ${response.statusText} ${text}`);
68
- }
69
- const json = await response.json();
70
- if (!json?.txHash) {
71
- throw new Error('ATXPAccount: /pay did not return txHash');
72
- }
73
- return json.txHash;
74
- }
75
- async generateJWT(params) {
76
- const response = await this.fetchFn(`${this.origin}/sign`, {
77
- method: 'POST',
78
- headers: {
79
- 'Authorization': toBasicAuth(this.token),
80
- 'Content-Type': 'application/json',
81
- },
82
- body: JSON.stringify({
83
- paymentRequestId: params.paymentRequestId,
84
- codeChallenge: params.codeChallenge,
85
- }),
86
- });
87
- if (!response.ok) {
88
- const text = await response.text();
89
- throw new Error(`ATXPAccount: /sign failed: ${response.status} ${response.statusText} ${text}`);
90
- }
91
- const json = await response.json();
92
- if (!json?.jwt) {
93
- throw new Error('ATXPAccount: /sign did not return jwt');
94
- }
95
- return json.jwt;
96
- }
97
- }
98
- class ATXPAccount {
99
- constructor(connectionString, opts) {
100
- const { origin, token, accountId } = parseConnectionString(connectionString);
101
- const fetchFn = opts?.fetchFn ?? fetch;
102
- const network = opts?.network ?? 'base';
103
- // Store for use in X402 payment creation
104
- this.origin = origin;
105
- this.token = token;
106
- this.fetchFn = fetchFn;
107
- if (accountId) {
108
- this.accountId = `atxp:${accountId}`;
109
- }
110
- else {
111
- this.accountId = `atxp:${crypto.randomUUID()}`;
112
- }
113
- this.paymentMakers = {
114
- [network]: new ATXPHttpPaymentMaker(origin, token, fetchFn),
115
- };
116
- }
117
- async getSigner() {
118
- return ATXPLocalAccount.create(this.origin, this.token, this.fetchFn);
119
- }
120
- }
121
-
122
- export { ATXPAccount };
123
- //# sourceMappingURL=atxpAccount.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"atxpAccount.js","sources":["../src/atxpAccount.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}