@atxp/client 0.7.3 → 0.8.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 (66) hide show
  1. package/dist/atxpAccount.d.ts +20 -0
  2. package/dist/atxpAccount.d.ts.map +1 -0
  3. package/dist/atxpAccount.js +82 -19
  4. package/dist/atxpAccount.js.map +1 -1
  5. package/dist/atxpClient.d.ts +12 -0
  6. package/dist/atxpClient.d.ts.map +1 -0
  7. package/dist/atxpClient.js +18 -2
  8. package/dist/atxpClient.js.map +1 -1
  9. package/dist/atxpFetcher.d.ts +77 -0
  10. package/dist/atxpFetcher.d.ts.map +1 -0
  11. package/dist/atxpFetcher.js +95 -140
  12. package/dist/atxpFetcher.js.map +1 -1
  13. package/dist/atxpLocalAccount.d.ts +50 -0
  14. package/dist/atxpLocalAccount.d.ts.map +1 -0
  15. package/dist/baseAccount.d.ts +20 -0
  16. package/dist/baseAccount.d.ts.map +1 -0
  17. package/dist/baseAccount.js +15 -4
  18. package/dist/baseAccount.js.map +1 -1
  19. package/dist/baseConstants.d.ts +10 -0
  20. package/dist/baseConstants.d.ts.map +1 -0
  21. package/dist/basePaymentMaker.d.ts +23 -0
  22. package/dist/basePaymentMaker.d.ts.map +1 -0
  23. package/dist/basePaymentMaker.js +23 -3
  24. package/dist/basePaymentMaker.js.map +1 -1
  25. package/dist/clientTestHelpers.d.ts +6 -0
  26. package/dist/clientTestHelpers.d.ts.map +1 -0
  27. package/dist/destinationMakers/atxpDestinationMaker.d.ts +15 -0
  28. package/dist/destinationMakers/atxpDestinationMaker.d.ts.map +1 -0
  29. package/dist/destinationMakers/atxpDestinationMaker.js +128 -0
  30. package/dist/destinationMakers/atxpDestinationMaker.js.map +1 -0
  31. package/dist/destinationMakers/index.d.ts +9 -0
  32. package/dist/destinationMakers/index.d.ts.map +1 -0
  33. package/dist/destinationMakers/index.js +42 -0
  34. package/dist/destinationMakers/index.js.map +1 -0
  35. package/dist/destinationMakers/passthroughDestinationMaker.d.ts +8 -0
  36. package/dist/destinationMakers/passthroughDestinationMaker.d.ts.map +1 -0
  37. package/dist/destinationMakers/passthroughDestinationMaker.js +27 -0
  38. package/dist/destinationMakers/passthroughDestinationMaker.js.map +1 -0
  39. package/dist/index.cjs +793 -454
  40. package/dist/index.cjs.map +1 -1
  41. package/dist/index.d.ts +111 -36
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +788 -456
  44. package/dist/index.js.map +1 -1
  45. package/dist/oAuth.d.ts +44 -0
  46. package/dist/oAuth.d.ts.map +1 -0
  47. package/dist/polygonConstants.d.ts +46 -0
  48. package/dist/polygonConstants.d.ts.map +1 -0
  49. package/dist/polygonConstants.js +54 -0
  50. package/dist/polygonConstants.js.map +1 -0
  51. package/dist/setup.expo.d.ts +2 -0
  52. package/dist/setup.expo.d.ts.map +1 -0
  53. package/dist/solanaAccount.d.ts +13 -0
  54. package/dist/solanaAccount.d.ts.map +1 -0
  55. package/dist/solanaAccount.js +16 -4
  56. package/dist/solanaAccount.js.map +1 -1
  57. package/dist/solanaPaymentMaker.d.ts +25 -0
  58. package/dist/solanaPaymentMaker.d.ts.map +1 -0
  59. package/dist/solanaPaymentMaker.js +27 -5
  60. package/dist/solanaPaymentMaker.js.map +1 -1
  61. package/dist/types.d.ts +63 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js.map +1 -1
  64. package/dist/worldConstants.d.ts +53 -0
  65. package/dist/worldConstants.d.ts.map +1 -0
  66. package/package.json +2 -2
@@ -60,7 +60,10 @@ class BasePaymentMaker {
60
60
  this.signingClient = walletClient.extend(publicActions);
61
61
  this.logger = logger ?? new ConsoleLogger();
62
62
  }
63
- async generateJWT({ paymentRequestId, codeChallenge }) {
63
+ getSourceAddress(_params) {
64
+ return this.signingClient.account.address;
65
+ }
66
+ async generateJWT({ paymentRequestId, codeChallenge, accountId }) {
64
67
  const headerObj = { alg: 'ES256K' };
65
68
  const payloadObj = {
66
69
  sub: this.signingClient.account.address,
@@ -70,6 +73,7 @@ class BasePaymentMaker {
70
73
  exp: Math.floor(Date.now() / 1000) + 60 * 60,
71
74
  ...(codeChallenge ? { code_challenge: codeChallenge } : {}),
72
75
  ...(paymentRequestId ? { payment_request_id: paymentRequestId } : {}),
76
+ ...(accountId ? { account_id: accountId } : {}),
73
77
  };
74
78
  const header = toBase64Url(JSON.stringify(headerObj));
75
79
  const payload = toBase64Url(JSON.stringify(payloadObj));
@@ -90,7 +94,18 @@ class BasePaymentMaker {
90
94
  this.logger.info(`Generated ES256K JWT: ${jwt}`);
91
95
  return jwt;
92
96
  }
93
- async makePayment(amount, currency, receiver) {
97
+ async makePayment(destinations, _memo, _paymentRequestId) {
98
+ // Filter to base chain destinations
99
+ const baseDestinations = destinations.filter(d => d.chain === 'base');
100
+ if (baseDestinations.length === 0) {
101
+ this.logger.debug('BasePaymentMaker: No base destinations found, cannot handle payment');
102
+ return null; // Cannot handle these destinations
103
+ }
104
+ // Pick first base destination
105
+ const dest = baseDestinations[0];
106
+ const amount = dest.amount;
107
+ const currency = dest.currency;
108
+ const receiver = dest.address;
94
109
  if (currency.toUpperCase() !== 'USDC') {
95
110
  throw new PaymentNetworkError('Only USDC currency is supported; received ' + currency);
96
111
  }
@@ -133,7 +148,12 @@ class BasePaymentMaker {
133
148
  throw new PaymentNetworkError(`Transaction reverted: ${hash}`, new Error('Transaction reverted on chain'));
134
149
  }
135
150
  this.logger.info(`Transaction confirmed: ${hash} in block ${receipt.blockNumber}`);
136
- return hash;
151
+ // Return payment result with chain and currency
152
+ return {
153
+ transactionId: hash,
154
+ chain: 'base',
155
+ currency: 'USDC'
156
+ };
137
157
  }
138
158
  catch (error) {
139
159
  if (error instanceof InsufficientFundsError || error instanceof PaymentNetworkError) {
@@ -1 +1 @@
1
- {"version":3,"file":"basePaymentMaker.js","sources":["../src/basePaymentMaker.ts"],"sourcesContent":[null],"names":["PaymentNetworkErrorClass","InsufficientFundsErrorClass"],"mappings":"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"}
1
+ {"version":3,"file":"basePaymentMaker.js","sources":["../src/basePaymentMaker.ts"],"sourcesContent":[null],"names":["PaymentNetworkErrorClass","InsufficientFundsErrorClass"],"mappings":";;;;;;;AAmBA;AACA,SAAS,WAAW,CAAC,IAAY,EAAA;;AAE/B,IAAA,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK;UAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ;AACrC,UAAE,IAAI,CAAC,IAAI,CAAC;;IAEd,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACzE;AAEA,MAAM,aAAa,GAAG,CAAC;AACvB,MAAM,SAAS,GAAG;AAChB,IAAA;AACE,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;AAChC,YAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;AACpC,SAAA;AACD,QAAA,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACrC,QAAA,IAAI,EAAE,UAAU;AACjB,KAAA;AACD,IAAA;AACI,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,QAAQ,EAAE;AACN,YAAA;AACI,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,MAAM,EAAE;AACX;AACJ,SAAA;AACD,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,SAAS,EAAE;AACP,YAAA;AACI,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,MAAM,EAAE;AACX;AACJ,SAAA;AACD,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,MAAM,EAAE;AACX;CACF;MAEY,gBAAgB,CAAA;AAI3B,IAAA,WAAA,CAAY,UAAkB,EAAE,YAA0B,EAAE,MAAe,EAAA;QACzE,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;QACzC;QACA,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;QAC3C;AACA,QAAA,IAAG,CAAC,YAAY,CAAC,OAAO,EAAE;AACxB,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;QACnD;QAEA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,aAAa,CAAyB;QAC/E,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,aAAa,EAAE;IAC7C;AAEA,IAAA,gBAAgB,CAAC,OAAgF,EAAA;AAC/F,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,OAAO;IAC5C;IAEA,MAAM,WAAW,CAAC,EAAC,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAkF,EAAA;AAC7I,QAAA,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE;AAEnC,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,OAAO;AACxC,YAAA,GAAG,EAAE,kBAAkB;AACvB,YAAA,GAAG,EAAE,sBAAsB;YAC3B,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAClC,YAAA,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;AAC5C,YAAA,IAAI,aAAa,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;AAC3D,YAAA,IAAI,gBAAgB,GAAG,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC;AACrE,YAAA,IAAI,SAAS,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;SACrB;QAE5B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACvD,QAAA,MAAM,OAAO,GAAG,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,OAAO,EAAE;AAEtC,QAAA,MAAM,YAAY,GAAG,OAAO,MAAM,KAAK;cACnC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;cAC3B,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;QAErC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;AACtD,YAAA,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAQ;AACpC,YAAA,OAAO,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE;AAC/B,SAAA,CAAC;;;;;AAMF,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC;QAEzC,MAAM,GAAG,GAAG,CAAA,EAAG,MAAM,IAAI,OAAO,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE;QAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,sBAAA,EAAyB,GAAG,CAAA,CAAE,CAAC;AAChD,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,MAAM,WAAW,CAAC,YAA2B,EAAE,KAAa,EAAE,iBAA0B,EAAA;;AAEtF,QAAA,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;AAErE,QAAA,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qEAAqE,CAAC;YACxF,OAAO,IAAI,CAAC;QACd;;AAGA,QAAA,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC9B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO;AAE7B,QAAA,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE;AACrC,YAAA,MAAM,IAAIA,mBAAwB,CAAC,4CAA4C,GAAG,QAAQ,CAAC;QAC7F;QAEA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,kBAAA,EAAqB,MAAM,IAAI,QAAQ,CAAA,IAAA,EAAO,QAAQ,CAAA,cAAA,EAAiB,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,OAAO,CAAA,CAAE,CAAC;AAE9H,QAAA,IAAI;;YAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;AACvD,gBAAA,OAAO,EAAE,0BAAqC;AAC9C,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,OAAO,CAAC;AAC5C,aAAA,CAAW;AAEZ,YAAA,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,aAAa,CAAC;AAEnF,YAAA,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,aAAA,EAAgB,QAAQ,CAAA,gCAAA,EAAmC,MAAM,CAAA,aAAA,EAAgB,OAAO,CAAA,CAAE,CAAC;gBAC5G,MAAM,IAAIC,sBAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAC1E;;AAGA,YAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAErF,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAC9B,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,YAAY,EAAE,UAAU;AACxB,gBAAA,IAAI,EAAE,CAAC,QAAmB,EAAE,iBAAiB,CAAC;AAC/C,aAAA,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAQ;AACpC,gBAAA,EAAE,EAAE,0BAA0B;AAC9B,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC;AACtB,gBAAA,oBAAoB,EAAE,UAAU,CAAC,aAAa;AAC/C,aAAA,CAAC;;YAGF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,sCAAA,EAAyC,IAAI,CAAA,CAAE,CAAC;YACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC;AACjE,gBAAA,IAAI,EAAE,IAAW;AACjB,gBAAA,aAAa,EAAE;AAChB,aAAA,CAAC;AAEF,YAAA,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AACjC,gBAAA,MAAM,IAAID,mBAAwB,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAA,CAAE,EAAE,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACjH;AAEA,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAAA,UAAA,EAAa,OAAO,CAAC,WAAW,CAAA,CAAE,CAAC;;YAGlF,OAAO;AACL,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,QAAQ,EAAE;aACX;QACH;QAAE,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAYC,sBAA2B,IAAI,KAAK,YAAYD,mBAAwB,EAAE;AAC7F,gBAAA,MAAM,KAAK;YACb;;YAGA,MAAM,IAAIA,mBAAwB,CAAC,CAAA,gCAAA,EAAoC,KAAe,CAAC,OAAO,CAAA,CAAE,EAAE,KAAc,CAAC;QACnH;IACF;AAED;;;;"}
@@ -0,0 +1,6 @@
1
+ import { FetchMock } from 'fetch-mock';
2
+ export declare function mockResourceServer(mock: FetchMock, baseUrl?: string, resourcePath?: string, authServerUrl?: string): FetchMock;
3
+ export declare function mockAuthorizationServer(mock: FetchMock, baseUrl?: string, paymentRequests?: {
4
+ [key: string]: BigNumber;
5
+ }): FetchMock;
6
+ //# sourceMappingURL=clientTestHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientTestHelpers.d.ts","sourceRoot":"","sources":["../src/clientTestHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,MAA8B,EAAE,YAAY,GAAE,MAAe,EAAE,aAAa,GAAE,MAAqC,aAqB/K;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,MAAqC,EAAE,eAAe,GAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAM,aAuExJ"}
@@ -0,0 +1,15 @@
1
+ import { FetchLike, Logger, Source } from '@atxp/common';
2
+ import { Destination, PaymentRequestOption, DestinationMaker } from '@atxp/common';
3
+ /**
4
+ * Destination mapper for ATXP network destinations.
5
+ * Converts destinations with network='atxp' to actual blockchain network destinations
6
+ * by resolving the account ID to its associated blockchain addresses.
7
+ */
8
+ export declare class ATXPDestinationMaker implements DestinationMaker {
9
+ private accountsServiceUrl;
10
+ private fetchFn;
11
+ constructor(accountsServiceUrl: string, fetchFn?: FetchLike);
12
+ makeDestinations(option: PaymentRequestOption, logger: Logger, paymentRequestId: string, sources: Source[]): Promise<Destination[]>;
13
+ private getDestinations;
14
+ }
15
+ //# sourceMappingURL=atxpDestinationMaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atxpDestinationMaker.d.ts","sourceRoot":"","sources":["../../src/destinationMakers/atxpDestinationMaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAS,MAAM,EAAkD,MAAM,cAAc,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAiFnF;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,OAAO,CAAY;gBAEf,kBAAkB,EAAE,MAAM,EAAE,OAAO,GAAE,SAAiB;IAK5D,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAyB3H,eAAe;CAyC9B"}
@@ -0,0 +1,128 @@
1
+ import { isEnumValue, ChainEnum, CurrencyEnum } from '@atxp/common';
2
+ import { BigNumber } from 'bignumber.js';
3
+
4
+ function isDestinationResponse(obj) {
5
+ return (typeof obj === 'object' &&
6
+ obj !== null &&
7
+ 'chain' in obj &&
8
+ 'address' in obj &&
9
+ 'currency' in obj &&
10
+ 'amount' in obj &&
11
+ typeof obj.chain === 'string' &&
12
+ typeof obj.address === 'string' &&
13
+ typeof obj.currency === 'string' &&
14
+ typeof obj.amount === 'string');
15
+ }
16
+ function isDestinationsApiResponse(obj) {
17
+ return (typeof obj === 'object' &&
18
+ obj !== null &&
19
+ 'destinations' in obj &&
20
+ 'paymentRequestId' in obj &&
21
+ Array.isArray(obj.destinations) &&
22
+ typeof obj.paymentRequestId === 'string');
23
+ }
24
+ function parseDestinationsResponse(data) {
25
+ // Validate response structure
26
+ if (!isDestinationsApiResponse(data)) {
27
+ throw new Error('Invalid response: expected object with destinations array and paymentRequestId');
28
+ }
29
+ // Validate and convert each destination
30
+ return data.destinations.map((dest, index) => {
31
+ if (!isDestinationResponse(dest)) {
32
+ throw new Error(`Invalid destination at index ${index}: missing required fields (chain, address, currency, amount)`);
33
+ }
34
+ // Validate chain is a valid Chain enum value
35
+ if (!isEnumValue(ChainEnum, dest.chain)) {
36
+ const validChains = Object.values(ChainEnum).join(', ');
37
+ throw new Error(`Invalid destination at index ${index}: chain "${dest.chain}" is not a valid chain. Valid chains are: ${validChains}`);
38
+ }
39
+ // Validate currency is a valid Currency enum value
40
+ if (!isEnumValue(CurrencyEnum, dest.currency)) {
41
+ const validCurrencies = Object.values(CurrencyEnum).join(', ');
42
+ throw new Error(`Invalid destination at index ${index}: currency "${dest.currency}" is not a valid currency. Valid currencies are: ${validCurrencies}`);
43
+ }
44
+ // Validate amount is a valid number
45
+ const amount = new BigNumber(dest.amount);
46
+ if (amount.isNaN()) {
47
+ throw new Error(`Invalid destination at index ${index}: amount "${dest.amount}" is not a valid number`);
48
+ }
49
+ return {
50
+ chain: dest.chain,
51
+ currency: dest.currency,
52
+ address: dest.address,
53
+ amount: amount
54
+ };
55
+ });
56
+ }
57
+ /**
58
+ * Destination mapper for ATXP network destinations.
59
+ * Converts destinations with network='atxp' to actual blockchain network destinations
60
+ * by resolving the account ID to its associated blockchain addresses.
61
+ */
62
+ class ATXPDestinationMaker {
63
+ constructor(accountsServiceUrl, fetchFn = fetch) {
64
+ this.accountsServiceUrl = accountsServiceUrl;
65
+ this.fetchFn = fetchFn;
66
+ }
67
+ async makeDestinations(option, logger, paymentRequestId, sources) {
68
+ if (option.network !== 'atxp') {
69
+ return [];
70
+ }
71
+ try {
72
+ // The address field contains the account ID (e.g., atxp_acct_xxx) for atxp options
73
+ const accountId = option.address;
74
+ // Always use the destinations endpoint
75
+ const destinations = await this.getDestinations(accountId, paymentRequestId, option, sources, logger);
76
+ if (destinations.length === 0) {
77
+ logger.warn(`ATXPDestinationMaker: No destinations found for account ${accountId}`);
78
+ }
79
+ else {
80
+ logger.debug(`ATXPDestinationMaker: Got ${destinations.length} destinations for account ${accountId}`);
81
+ }
82
+ return destinations;
83
+ }
84
+ catch (error) {
85
+ logger.error(`ATXPDestinationMaker: Failed to make ATXP destinations: ${error}`);
86
+ throw error;
87
+ }
88
+ }
89
+ async getDestinations(accountId, paymentRequestId, option, sources, logger) {
90
+ // Strip any network prefix if present
91
+ const unqualifiedId = accountId.includes(':') ? accountId.split(':')[1] : accountId;
92
+ const url = `${this.accountsServiceUrl}/account/${unqualifiedId}/destinations`;
93
+ logger?.debug(`ATXPDestinationMaker: Fetching destinations from ${url}`);
94
+ try {
95
+ const requestBody = {
96
+ paymentRequestId,
97
+ options: [{
98
+ network: option.network,
99
+ currency: option.currency.toString(),
100
+ address: option.address,
101
+ amount: option.amount.toString()
102
+ }],
103
+ sources: sources
104
+ };
105
+ const response = await this.fetchFn(url, {
106
+ method: 'POST',
107
+ headers: {
108
+ 'Accept': 'application/json',
109
+ 'Content-Type': 'application/json',
110
+ },
111
+ body: JSON.stringify(requestBody),
112
+ });
113
+ if (!response.ok) {
114
+ const text = await response.text();
115
+ throw new Error(`Failed to fetch destinations: ${response.status} ${response.statusText} - ${text}`);
116
+ }
117
+ const data = await response.json();
118
+ return parseDestinationsResponse(data);
119
+ }
120
+ catch (error) {
121
+ logger?.error(`ATXPDestinationMaker: Error fetching destinations: ${error}`);
122
+ throw error;
123
+ }
124
+ }
125
+ }
126
+
127
+ export { ATXPDestinationMaker };
128
+ //# sourceMappingURL=atxpDestinationMaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atxpDestinationMaker.js","sources":["../../src/destinationMakers/atxpDestinationMaker.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Network, DestinationMaker, FetchLike } from '@atxp/common';
2
+ export { ATXPDestinationMaker } from './atxpDestinationMaker.js';
3
+ export { PassthroughDestinationMaker } from './passthroughDestinationMaker.js';
4
+ export interface DestinationMakerFactoryConfig {
5
+ atxpAccountsServer: string;
6
+ fetchFn?: FetchLike;
7
+ }
8
+ export declare function createDestinationMakers(config: DestinationMakerFactoryConfig): Map<Network, DestinationMaker>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/destinationMakers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,gBAAgB,EAAE,SAAS,EAAe,MAAM,cAAc,CAAC;AAI9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,MAAM,WAAW,6BAA6B;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,6BAA6B,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAqC7G"}
@@ -0,0 +1,42 @@
1
+ import { NetworkEnum, assertNever } from '@atxp/common';
2
+ import { ATXPDestinationMaker } from './atxpDestinationMaker.js';
3
+ import { PassthroughDestinationMaker } from './passthroughDestinationMaker.js';
4
+
5
+ function createDestinationMakers(config) {
6
+ const { atxpAccountsServer, fetchFn = fetch } = config;
7
+ // Build the map by exhaustively checking all Network values
8
+ const makers = new Map();
9
+ for (const network of Object.values(NetworkEnum)) {
10
+ // Exhaustiveness check using switch with assertNever
11
+ switch (network) {
12
+ case NetworkEnum.Solana:
13
+ makers.set(network, new PassthroughDestinationMaker(network));
14
+ break;
15
+ case NetworkEnum.Base:
16
+ makers.set(network, new PassthroughDestinationMaker(network));
17
+ break;
18
+ case NetworkEnum.World:
19
+ makers.set(network, new PassthroughDestinationMaker(network));
20
+ break;
21
+ case NetworkEnum.Polygon:
22
+ makers.set(network, new PassthroughDestinationMaker(network));
23
+ break;
24
+ case NetworkEnum.BaseSepolia:
25
+ makers.set(network, new PassthroughDestinationMaker(network));
26
+ break;
27
+ case NetworkEnum.WorldSepolia:
28
+ makers.set(network, new PassthroughDestinationMaker(network));
29
+ break;
30
+ case NetworkEnum.ATXP:
31
+ makers.set(network, new ATXPDestinationMaker(atxpAccountsServer, fetchFn));
32
+ break;
33
+ default:
34
+ // This will cause a compilation error if a new Network is added but not handled above
35
+ assertNever(network);
36
+ }
37
+ }
38
+ return makers;
39
+ }
40
+
41
+ export { ATXPDestinationMaker, PassthroughDestinationMaker, createDestinationMakers };
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/destinationMakers/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAYM,SAAU,uBAAuB,CAAC,MAAqC,EAAA;IAC3E,MAAM,EAAE,kBAAkB,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,MAAM;;AAGtD,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B;IAEnD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;;QAEhD,QAAQ,OAAO;YACb,KAAK,WAAW,CAAC,MAAM;gBACrB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBAC7D;YACF,KAAK,WAAW,CAAC,IAAI;gBACnB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBAC7D;YACF,KAAK,WAAW,CAAC,KAAK;gBACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBAC7D;YACF,KAAK,WAAW,CAAC,OAAO;gBACtB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBAC7D;YACF,KAAK,WAAW,CAAC,WAAW;gBAC1B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBAC7D;YACF,KAAK,WAAW,CAAC,YAAY;gBAC3B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBAC7D;YACF,KAAK,WAAW,CAAC,IAAI;AACnB,gBAAA,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,oBAAoB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBAC1E;AACF,YAAA;;gBAEE,WAAW,CAAC,OAAO,CAAC;;IAE1B;AAEA,IAAA,OAAO,MAAM;AACf;;;;"}
@@ -0,0 +1,8 @@
1
+ import { Logger, Source } from '@atxp/common';
2
+ import { Network, Destination, PaymentRequestOption, DestinationMaker } from '@atxp/common';
3
+ export declare class PassthroughDestinationMaker implements DestinationMaker {
4
+ private network;
5
+ constructor(network: Network);
6
+ makeDestinations(option: PaymentRequestOption, _logger: Logger, _paymentRequestId: string, _sources: Source[]): Promise<Destination[]>;
7
+ }
8
+ //# sourceMappingURL=passthroughDestinationMaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passthroughDestinationMaker.d.ts","sourceRoot":"","sources":["../../src/destinationMakers/passthroughDestinationMaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAS,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAa,MAAM,cAAc,CAAC;AAE9G,qBAAa,2BAA4B,YAAW,gBAAgB;IAClE,OAAO,CAAC,OAAO,CAAU;gBACb,OAAO,EAAE,OAAO;IAItB,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAkB7I"}
@@ -0,0 +1,27 @@
1
+ import { ChainEnum } from '@atxp/common';
2
+
3
+ class PassthroughDestinationMaker {
4
+ constructor(network) {
5
+ this.network = network;
6
+ }
7
+ async makeDestinations(option, _logger, _paymentRequestId, _sources) {
8
+ if (option.network !== this.network) {
9
+ return [];
10
+ }
11
+ // Check if option.network is also a Chain by inspecting the ChainEnum values
12
+ if (Object.values(ChainEnum).includes(option.network)) {
13
+ // It's a chain, so return a single passthrough destination
14
+ const destination = {
15
+ chain: option.network,
16
+ currency: option.currency,
17
+ address: option.address,
18
+ amount: option.amount
19
+ };
20
+ return [destination];
21
+ }
22
+ return [];
23
+ }
24
+ }
25
+
26
+ export { PassthroughDestinationMaker };
27
+ //# sourceMappingURL=passthroughDestinationMaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passthroughDestinationMaker.js","sources":["../../src/destinationMakers/passthroughDestinationMaker.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAGa,2BAA2B,CAAA;AAEtC,IAAA,WAAA,CAAY,OAAgB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACxB;IAEA,MAAM,gBAAgB,CAAC,MAA4B,EAAE,OAAe,EAAE,iBAAyB,EAAE,QAAkB,EAAA;QACjH,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;AACnC,YAAA,OAAO,EAAE;QACX;;AAGA,QAAA,IAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;;AAEnE,YAAA,MAAM,WAAW,GAAgB;gBAC/B,KAAK,EAAE,MAAM,CAAC,OAAgB;gBAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC;aAChB;YACD,OAAO,CAAC,WAAW,CAAC;QACtB;AACA,QAAA,OAAO,EAAE;IACX;AACD;;;;"}