paytaca-cli 0.4.1 → 0.5.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 (58) hide show
  1. package/README.md +29 -9
  2. package/dist/commands/balance.d.ts.map +1 -1
  3. package/dist/commands/balance.js +22 -9
  4. package/dist/commands/balance.js.map +1 -1
  5. package/dist/commands/history.d.ts.map +1 -1
  6. package/dist/commands/history.js +10 -2
  7. package/dist/commands/history.js.map +1 -1
  8. package/dist/commands/send.d.ts +2 -1
  9. package/dist/commands/send.d.ts.map +1 -1
  10. package/dist/commands/send.js +22 -7
  11. package/dist/commands/send.js.map +1 -1
  12. package/dist/commands/swap.d.ts +19 -0
  13. package/dist/commands/swap.d.ts.map +1 -0
  14. package/dist/commands/swap.js +129 -0
  15. package/dist/commands/swap.js.map +1 -0
  16. package/dist/commands/token.d.ts.map +1 -1
  17. package/dist/commands/token.js +140 -1
  18. package/dist/commands/token.js.map +1 -1
  19. package/dist/commands/wallet.d.ts.map +1 -1
  20. package/dist/commands/wallet.js +12 -3
  21. package/dist/commands/wallet.js.map +1 -1
  22. package/dist/index.js +2 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/nostr/store.test.js +12 -4
  25. package/dist/nostr/store.test.js.map +1 -1
  26. package/dist/utils/prices.d.ts +46 -0
  27. package/dist/utils/prices.d.ts.map +1 -0
  28. package/dist/utils/prices.js +92 -0
  29. package/dist/utils/prices.js.map +1 -0
  30. package/dist/utils/prices.test.d.ts +5 -0
  31. package/dist/utils/prices.test.d.ts.map +1 -0
  32. package/dist/utils/prices.test.js +62 -0
  33. package/dist/utils/prices.test.js.map +1 -0
  34. package/dist/wallet/bch.d.ts +14 -0
  35. package/dist/wallet/bch.d.ts.map +1 -1
  36. package/dist/wallet/bch.js +24 -0
  37. package/dist/wallet/bch.js.map +1 -1
  38. package/dist/wallet/cauldron/api.d.ts +58 -0
  39. package/dist/wallet/cauldron/api.d.ts.map +1 -0
  40. package/dist/wallet/cauldron/api.js +60 -0
  41. package/dist/wallet/cauldron/api.js.map +1 -0
  42. package/dist/wallet/cauldron/pools.d.ts +66 -0
  43. package/dist/wallet/cauldron/pools.d.ts.map +1 -0
  44. package/dist/wallet/cauldron/pools.js +96 -0
  45. package/dist/wallet/cauldron/pools.js.map +1 -0
  46. package/dist/wallet/cauldron/pools.test.d.ts +3 -0
  47. package/dist/wallet/cauldron/pools.test.d.ts.map +1 -0
  48. package/dist/wallet/cauldron/pools.test.js +149 -0
  49. package/dist/wallet/cauldron/pools.test.js.map +1 -0
  50. package/dist/wallet/cauldron/swap.d.ts +69 -0
  51. package/dist/wallet/cauldron/swap.d.ts.map +1 -0
  52. package/dist/wallet/cauldron/swap.js +173 -0
  53. package/dist/wallet/cauldron/swap.js.map +1 -0
  54. package/dist/wallet/cauldron/transact.d.ts +98 -0
  55. package/dist/wallet/cauldron/transact.d.ts.map +1 -0
  56. package/dist/wallet/cauldron/transact.js +307 -0
  57. package/dist/wallet/cauldron/transact.js.map +1 -0
  58. package/package.json +3 -2
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for the watchtower asset-prices utilities.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=prices.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prices.test.d.ts","sourceRoot":"","sources":["../../src/utils/prices.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Tests for the watchtower asset-prices utilities.
3
+ */
4
+ import { describe, it, expect, vi, afterEach } from 'vitest';
5
+ import { fetchAssetPrices, getUsdPerToken, getBchUsdPrice, tokenAmountToUsd, formatUsd, } from './prices.js';
6
+ afterEach(() => {
7
+ vi.unstubAllGlobals();
8
+ });
9
+ function stubFetch(json) {
10
+ vi.stubGlobal('fetch', vi.fn().mockResolvedValue({
11
+ ok: true,
12
+ json: () => Promise.resolve(json),
13
+ }));
14
+ }
15
+ describe('tokenAmountToUsd', () => {
16
+ it('converts raw base units to USD using the display-token price', () => {
17
+ // 10000 base units, 2 decimals = 100.00 tokens @ $0.02 each
18
+ expect(tokenAmountToUsd(10000, 2, 0.02)).toBeCloseTo(2, 10);
19
+ });
20
+ it('handles zero decimals', () => {
21
+ expect(tokenAmountToUsd(5, 0, 1.5)).toBeCloseTo(7.5, 10);
22
+ });
23
+ });
24
+ describe('formatUsd', () => {
25
+ it('formats as USD', () => {
26
+ expect(formatUsd(2.007)).toBe('2.01 USD');
27
+ });
28
+ it('returns an em dash for non-finite input', () => {
29
+ expect(formatUsd(Number.NaN)).toBe('—');
30
+ });
31
+ });
32
+ describe('fetchAssetPrices', () => {
33
+ it('returns the raw prices array', async () => {
34
+ stubFetch({ prices: [{ asset: 'ct/abc', currency: 'USD', price_value: '10' }] });
35
+ const result = await fetchAssetPrices(['ct/abc']);
36
+ expect(result).toHaveLength(1);
37
+ expect(result[0].price_value).toBe('10');
38
+ });
39
+ it('returns [] when the response has no prices', async () => {
40
+ stubFetch({ prices: [] });
41
+ expect(await fetchAssetPrices(['ct/abc'])).toEqual([]);
42
+ });
43
+ });
44
+ describe('getUsdPerToken', () => {
45
+ it('takes the reciprocal of the tokens-per-USD quote', async () => {
46
+ stubFetch({
47
+ prices: [{ asset: 'ct/abc', currency: 'USD', price_value: '50' }],
48
+ });
49
+ expect(await getUsdPerToken('abc')).toBeCloseTo(0.02, 10);
50
+ });
51
+ it('returns null for a token with no market price', async () => {
52
+ stubFetch({ prices: [] });
53
+ expect(await getUsdPerToken('abc')).toBeNull();
54
+ });
55
+ });
56
+ describe('getBchUsdPrice', () => {
57
+ it('returns the USD-per-BCH quote directly', async () => {
58
+ stubFetch({ prices: [{ asset: 'BCH', currency: 'USD', price_value: '247.8' }] });
59
+ expect(await getBchUsdPrice()).toBeCloseTo(247.8, 10);
60
+ });
61
+ });
62
+ //# sourceMappingURL=prices.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prices.test.js","sourceRoot":"","sources":["../../src/utils/prices.test.ts"],"names":[],"mappings":"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"}
@@ -163,6 +163,20 @@ export declare class BchWallet {
163
163
  * The data format is identical to what paytaca-app passes.
164
164
  */
165
165
  private _sendBch;
166
+ /**
167
+ * Get raw UTXOs from Watchtower.
168
+ * Adapted from paytaca-app BchWallet.getUtxos().
169
+ *
170
+ * With no category: returns all UTXOs (BCH + CashTokens).
171
+ * With a category: returns only that token's UTXOs (is_cashtoken=true).
172
+ *
173
+ * @param opts.category - Token category ID (64-char hex) to filter by
174
+ * @param opts.nft - Only return NFT UTXOs for the category
175
+ */
176
+ getUtxos(opts?: {
177
+ category?: string;
178
+ nft?: boolean;
179
+ }): Promise<any[]>;
166
180
  /**
167
181
  * Trigger a UTXO scan on the Watchtower backend.
168
182
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bch.d.ts","sourceRoot":"","sources":["../../src/wallet/bch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bch.d.ts","sourceRoot":"","sources":["../../src/wallet/bch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,UAAU,MAAM,oBAAoB,CAAA;AAI3C,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,SAAS;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,YAAY,CAAC,OAAO,UAAU,CAAC,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IAEf,OAAO,CAAC,QAAQ,CAAiB;gBAG/B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAe;IAkB5B;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAIrE;;;OAGG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAI1E;;;OAGG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM;;uBAhBS,MAAM;oBAAU,MAAM;;;IAmCnE;;OAEG;IACG,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAe/B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC;QAC1B,KAAK,EAAE,OAAO,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAC;IAKF;;;;;OAKG;IACG,UAAU,CAAC,IAAI,CAAC,EAAE;QACtB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,GAAG,OAAO,CAAC;QACV,OAAO,EAAE;YACP,WAAW,EAAE,UAAU,GAAG,UAAU,CAAA;YACpC,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,MAAM,EAAE,MAAM,CAAA;YACd,OAAO,EAAE,GAAG,EAAE,EAAE,CAAA;YAChB,UAAU,EAAE,GAAG,EAAE,EAAE,CAAA;YACnB,YAAY,EAAE,MAAM,CAAA;YACpB,YAAY,EAAE,MAAM,CAAA;YACpB,SAAS,EAAE,MAAM,CAAA;YACjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACrC,UAAU,EAAE,GAAG,CAAA;SAChB,EAAE,CAAA;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAC;IAWF;;;;;;;;;;;OAWG;IACG,OAAO,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EACtB,UAAU,GAAE,SAAS,EAAO,GAC3B,OAAO,CAAC,UAAU,CAAC;IAWtB;;;;;;;;;OASG;YACW,QAAQ;IAwBtB;;;;;;;;;OASG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,GAAG,CAAC,EAAE,OAAO,CAAA;KACd,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAiBlB;;OAEG;IACG,SAAS,CAAC,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE;IAS/C;;;OAGG;IACG,aAAa,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;iBAClC,OAAO;eAAS,MAAM;;IAwCnD;;;;;;;OAOG;IACG,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IA0CnD;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAuBnE;;;;OAIG;IACG,eAAe,CACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAQlD;;;;;;;OAOG;IACG,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA6BxD;;;;;;;;;;OAUG;IACG,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,UAAU,CAAC;IA4BtB;;;;;;;;;;;;;OAaG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,UAAU,CAAC;CA8BvB"}
@@ -156,6 +156,30 @@ export class BchWallet {
156
156
  const result = await this.watchtower.BCH.send(data);
157
157
  return result;
158
158
  }
159
+ /**
160
+ * Get raw UTXOs from Watchtower.
161
+ * Adapted from paytaca-app BchWallet.getUtxos().
162
+ *
163
+ * With no category: returns all UTXOs (BCH + CashTokens).
164
+ * With a category: returns only that token's UTXOs (is_cashtoken=true).
165
+ *
166
+ * @param opts.category - Token category ID (64-char hex) to filter by
167
+ * @param opts.nft - Only return NFT UTXOs for the category
168
+ */
169
+ async getUtxos(opts) {
170
+ const params = {};
171
+ let url = `utxo/wallet/${this.walletHash}/`;
172
+ if (opts?.category) {
173
+ url += encodeURIComponent(opts.category) + '/';
174
+ params.is_cashtoken = true;
175
+ params.is_cashtoken_nft = Boolean(opts.nft);
176
+ }
177
+ const response = await this.watchtower.BCH._api.get(url, { params });
178
+ if (!Array.isArray(response.data?.utxos)) {
179
+ return Promise.reject({ response });
180
+ }
181
+ return response.data.utxos;
182
+ }
159
183
  /**
160
184
  * Trigger a UTXO scan on the Watchtower backend.
161
185
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bch.js","sourceRoot":"","sources":["../../src/wallet/bch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bch.js","sourceRoot":"","sources":["../../src/wallet/bch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Cauldron (riften indexer) REST client.
3
+ *
4
+ * Adapted from: paytaca-app/src/wallet/cauldron/api.js, tokens.js,
5
+ * and pool-tracker.ts. Uses the global fetch API (Node 20+) instead of axios.
6
+ */
7
+ /**
8
+ * An active pool as returned by the cauldron indexer.
9
+ * GET /cauldron/pool/active?token=<category>
10
+ */
11
+ export interface ApiPool {
12
+ owner_p2pkh_addr: string;
13
+ owner_pkh: string;
14
+ pool_id: string;
15
+ sats: number;
16
+ token_id: string;
17
+ tokens: number;
18
+ tx_pos: number;
19
+ txid: string;
20
+ }
21
+ /**
22
+ * A cauldron-listed token (market info + BCMR metadata).
23
+ * GET /cauldron/tokens/list_cached_by_ids?ids=<category>
24
+ */
25
+ export interface CauldronTokenData {
26
+ token_id: string;
27
+ display_name: string;
28
+ display_symbol: string;
29
+ price_now: number;
30
+ price_now_usd: number;
31
+ tvl_sats: number;
32
+ bcmr: {
33
+ name: string;
34
+ description: string;
35
+ token: {
36
+ category: string;
37
+ decimals: number;
38
+ symbol: string;
39
+ };
40
+ uris?: {
41
+ icon?: string;
42
+ web?: string;
43
+ };
44
+ };
45
+ }
46
+ export declare class CauldronApiError extends Error {
47
+ status?: number;
48
+ constructor(message: string, status?: number);
49
+ }
50
+ /**
51
+ * Fetch the active cauldron pools for a token category.
52
+ */
53
+ export declare function fetchPoolsForToken(tokenId: string): Promise<ApiPool[]>;
54
+ /**
55
+ * Fetch market + BCMR data for a single token category.
56
+ */
57
+ export declare function fetchTokenData(tokenId: string): Promise<CauldronTokenData | undefined>;
58
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/wallet/cauldron/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;QACD,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KACvC,CAAA;CACF;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAK7C;AA6BD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAQ5E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAYxC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Cauldron (riften indexer) REST client.
3
+ *
4
+ * Adapted from: paytaca-app/src/wallet/cauldron/api.js, tokens.js,
5
+ * and pool-tracker.ts. Uses the global fetch API (Node 20+) instead of axios.
6
+ */
7
+ const CAULDRON_INDEXER_BASE_URL = 'https://indexer.riften.net';
8
+ export class CauldronApiError extends Error {
9
+ status;
10
+ constructor(message, status) {
11
+ super(message);
12
+ this.name = 'CauldronApiError';
13
+ this.status = status;
14
+ }
15
+ }
16
+ async function getJson(path, params = {}) {
17
+ const url = new URL(CAULDRON_INDEXER_BASE_URL + path);
18
+ for (const [key, value] of Object.entries(params)) {
19
+ if (value === undefined || value === null || value === '')
20
+ continue;
21
+ url.searchParams.set(key, String(value));
22
+ }
23
+ let response;
24
+ try {
25
+ response = await fetch(url.toString());
26
+ }
27
+ catch (err) {
28
+ throw new CauldronApiError(`Cauldron indexer unreachable: ${err?.message || err}`);
29
+ }
30
+ if (!response.ok) {
31
+ throw new CauldronApiError(`Cauldron indexer request failed (${response.status} ${response.statusText})`, response.status);
32
+ }
33
+ return response.json();
34
+ }
35
+ /**
36
+ * Fetch the active cauldron pools for a token category.
37
+ */
38
+ export async function fetchPoolsForToken(tokenId) {
39
+ const data = await getJson('/cauldron/pool/active', {
40
+ token: tokenId,
41
+ });
42
+ if (!Array.isArray(data.active)) {
43
+ throw new CauldronApiError('Unexpected response from cauldron pool endpoint');
44
+ }
45
+ return data.active;
46
+ }
47
+ /**
48
+ * Fetch market + BCMR data for a single token category.
49
+ */
50
+ export async function fetchTokenData(tokenId) {
51
+ const data = await getJson('/cauldron/tokens/list_cached_by_ids', {
52
+ ids: tokenId,
53
+ limit: 1,
54
+ offset: 0,
55
+ by: 'score',
56
+ order: 'desc',
57
+ });
58
+ return Array.isArray(data) ? data[0] : undefined;
59
+ }
60
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/wallet/cauldron/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,yBAAyB,GAAG,4BAA4B,CAAA;AAwC9D,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,MAAM,CAAS;IACf,YAAY,OAAe,EAAE,MAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF;AAED,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,SAAsD,EAAE;IAExD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;YAAE,SAAQ;QACnE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,QAAkB,CAAA;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACxC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,gBAAgB,CAAC,iCAAiC,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CACxB,oCAAoC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,GAAG,EAC7E,QAAQ,CAAC,MAAM,CAChB,CAAA;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAA;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe;IACtD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAuB,uBAAuB,EAAE;QACxE,KAAK,EAAE,OAAO;KACf,CAAC,CAAA;IACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,gBAAgB,CAAC,iDAAiD,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC,MAAmB,CAAA;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,OAAO,CACxB,qCAAqC,EACrC;QACE,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,MAAM;KACd,CACF,CAAA;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAClD,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Cauldron pool conversions and helpers.
3
+ *
4
+ * Adapted from: paytaca-app/src/wallet/cauldron/utils.js and pool-tracker.ts.
5
+ * Converts indexer ApiPool entries into @cashlab/cauldron PoolV0 objects.
6
+ */
7
+ import { type PoolV0 } from '@cashlab/cauldron';
8
+ import { type ApiPool } from './api.js';
9
+ export interface MicroPool {
10
+ pool_id: string;
11
+ pkh: string;
12
+ is_withdrawn: boolean;
13
+ spent_utxo_hash: string;
14
+ new_utxo_hash: string;
15
+ new_utxo_txid: string;
16
+ new_utxo_n: number;
17
+ token_id: string;
18
+ sats: number;
19
+ token_amount: number;
20
+ }
21
+ /**
22
+ * Convert an indexer ApiPool to a MicroPool.
23
+ */
24
+ export declare function apiPoolToMicroPool(pool: ApiPool): MicroPool;
25
+ /**
26
+ * Convert a MicroPool to a @cashlab/cauldron PoolV0.
27
+ */
28
+ export declare function microPoolToPoolV0(pool: MicroPool): PoolV0;
29
+ /**
30
+ * Fetch + convert active pools for a token category into PoolV0 objects.
31
+ */
32
+ export declare function fetchPoolV0ForToken(tokenId: string): Promise<PoolV0[]>;
33
+ /**
34
+ * Compute the post-trade state of a pool output (used for fee estimation).
35
+ * Mirrors paytaca-app poolTradeToCashscriptOutput().
36
+ */
37
+ export interface PoolTradeOutput {
38
+ to: Uint8Array;
39
+ amount: bigint;
40
+ token: {
41
+ amount: bigint;
42
+ category: string;
43
+ };
44
+ }
45
+ /**
46
+ * @param poolTrade A @cashlab/cauldron PoolTrade
47
+ * @returns The pool's resulting output after the trade
48
+ */
49
+ export declare function poolTradeToOutput(poolTrade: {
50
+ supply_token_id: string;
51
+ demand_token_id: string;
52
+ supply: bigint;
53
+ demand: bigint;
54
+ pool: PoolV0;
55
+ }): PoolTradeOutput;
56
+ /**
57
+ * Parse a trade rate (price) into a human-readable string.
58
+ * Mirrors paytaca-app parseRate().
59
+ *
60
+ * @param isBuyingToken true when BCH is spent to buy tokens (price in BCH per token)
61
+ */
62
+ export declare function parseRate(rate: {
63
+ numerator: bigint;
64
+ denominator: bigint;
65
+ }, tokenDecimals: number, isBuyingToken: boolean): string;
66
+ //# sourceMappingURL=pools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pools.d.ts","sourceRoot":"","sources":["../../../src/wallet/cauldron/pools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG5D,OAAO,EAAsB,KAAK,OAAO,EAAE,MAAM,UAAU,CAAA;AAE3D,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAa3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAoBzD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG5E;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,UAAU,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;CACF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE;IAC3C,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,eAAe,CAclB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAChD,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,OAAO,GACrB,MAAM,CAcR"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Cauldron pool conversions and helpers.
3
+ *
4
+ * Adapted from: paytaca-app/src/wallet/cauldron/utils.js and pool-tracker.ts.
5
+ * Converts indexer ApiPool entries into @cashlab/cauldron PoolV0 objects.
6
+ */
7
+ import { ExchangeLab } from '@cashlab/cauldron';
8
+ import { NATIVE_BCH_TOKEN_ID } from '@cashlab/common';
9
+ import { hexToBin } from '@cashlab/common/libauth.js';
10
+ import { fetchPoolsForToken } from './api.js';
11
+ /**
12
+ * Convert an indexer ApiPool to a MicroPool.
13
+ */
14
+ export function apiPoolToMicroPool(pool) {
15
+ return {
16
+ pool_id: pool.pool_id,
17
+ pkh: pool.owner_pkh,
18
+ is_withdrawn: false,
19
+ spent_utxo_hash: '',
20
+ new_utxo_hash: pool.txid,
21
+ new_utxo_txid: pool.txid,
22
+ new_utxo_n: pool.tx_pos,
23
+ token_id: pool.token_id,
24
+ sats: pool.sats,
25
+ token_amount: pool.tokens,
26
+ };
27
+ }
28
+ /**
29
+ * Convert a MicroPool to a @cashlab/cauldron PoolV0.
30
+ */
31
+ export function microPoolToPoolV0(pool) {
32
+ const pool0Params = { withdraw_pubkey_hash: hexToBin(pool.pkh) };
33
+ const exlab = new ExchangeLab();
34
+ const pool0LockingBytecode = exlab.generatePoolV0LockingBytecode(pool0Params);
35
+ return {
36
+ version: '0',
37
+ parameters: pool0Params,
38
+ outpoint: {
39
+ index: pool.new_utxo_n,
40
+ txhash: hexToBin(pool.new_utxo_txid),
41
+ },
42
+ output: {
43
+ locking_bytecode: pool0LockingBytecode,
44
+ token: {
45
+ amount: BigInt(pool.token_amount),
46
+ token_id: pool.token_id,
47
+ },
48
+ amount: BigInt(pool.sats),
49
+ },
50
+ };
51
+ }
52
+ /**
53
+ * Fetch + convert active pools for a token category into PoolV0 objects.
54
+ */
55
+ export async function fetchPoolV0ForToken(tokenId) {
56
+ const pools = await fetchPoolsForToken(tokenId);
57
+ return pools.map(apiPoolToMicroPool).map(microPoolToPoolV0);
58
+ }
59
+ /**
60
+ * @param poolTrade A @cashlab/cauldron PoolTrade
61
+ * @returns The pool's resulting output after the trade
62
+ */
63
+ export function poolTradeToOutput(poolTrade) {
64
+ const isSupplyingBch = poolTrade.supply_token_id === NATIVE_BCH_TOKEN_ID;
65
+ const satoshisDelta = isSupplyingBch ? poolTrade.supply : poolTrade.demand * -1n;
66
+ const tokenDelta = isSupplyingBch ? poolTrade.demand * -1n : poolTrade.supply;
67
+ const poolOutput = poolTrade.pool.output;
68
+ return {
69
+ to: poolOutput.locking_bytecode,
70
+ amount: poolOutput.amount + satoshisDelta,
71
+ token: {
72
+ amount: poolOutput.token.amount + tokenDelta,
73
+ category: poolOutput.token.token_id,
74
+ },
75
+ };
76
+ }
77
+ /**
78
+ * Parse a trade rate (price) into a human-readable string.
79
+ * Mirrors paytaca-app parseRate().
80
+ *
81
+ * @param isBuyingToken true when BCH is spent to buy tokens (price in BCH per token)
82
+ */
83
+ export function parseRate(rate, tokenDecimals, isBuyingToken) {
84
+ let multiplierDecimals = 8;
85
+ let divisorDecimals = tokenDecimals;
86
+ if (isBuyingToken) {
87
+ multiplierDecimals = tokenDecimals;
88
+ divisorDecimals = 8;
89
+ }
90
+ const multiplier = 10n ** BigInt(multiplierDecimals);
91
+ const _price = (rate.numerator * multiplier) / rate.denominator;
92
+ const divisor = 10 ** divisorDecimals;
93
+ const price = Number(_price) / divisor;
94
+ return price.toFixed(divisorDecimals);
95
+ }
96
+ //# sourceMappingURL=pools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pools.js","sourceRoot":"","sources":["../../../src/wallet/cauldron/pools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type MicroPool } from './pools.js';
2
+ export type { MicroPool };
3
+ //# sourceMappingURL=pools.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pools.test.d.ts","sourceRoot":"","sources":["../../../src/wallet/cauldron/pools.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,YAAY,CAAA;AAmKnB,YAAY,EAAE,SAAS,EAAE,CAAA"}