paytaca-cli 0.5.1 → 0.5.2

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.
@@ -82,7 +82,7 @@ export function registerSwapCommand(program) {
82
82
  ? BigInt(parsedAmount)
83
83
  : BigInt(Math.round(parsedAmount * 10 ** decimals));
84
84
  // Show quote first
85
- const quote = await estimateSwap({ tokenId, direction, amount });
85
+ const quote = await estimateSwap({ tokenId, direction, amount, isChipnet });
86
86
  console.log(chalk.cyan(' Quote:'));
87
87
  for (const line of formatQuote(quote).split('\n')) {
88
88
  console.log(` ${line}`);
@@ -1 +1 @@
1
- {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/commands/swap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/commands/swap.ts"],"names":[],"mappings":"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"}
@@ -55,4 +55,20 @@ export declare function fetchPoolsForToken(tokenId: string): Promise<ApiPool[]>;
55
55
  * Fetch market + BCMR data for a single token category.
56
56
  */
57
57
  export declare function fetchTokenData(tokenId: string): Promise<CauldronTokenData | undefined>;
58
+ /**
59
+ * Platform fee config served by watchtower.cash
60
+ * (GET /api/cauldron-fee/). A null address means the fee feature is
61
+ * disabled — clients degrade silently (no fee charged).
62
+ */
63
+ export interface PlatformFeeConfig {
64
+ address: string | null;
65
+ /** Fee rate in basis points (30 = 0.3%). */
66
+ feeRateBps: number;
67
+ /** Fee cap in USD, applied against the live BCH price. */
68
+ maxUsd: number;
69
+ }
70
+ /**
71
+ * Fetch the cauldron fee config from watchtower.cash.
72
+ */
73
+ export declare function fetchCauldronFee(isChipnet?: boolean): Promise<PlatformFeeConfig>;
58
74
  //# sourceMappingURL=api.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/wallet/cauldron/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;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;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}
@@ -4,6 +4,7 @@
4
4
  * Adapted from: paytaca-app/src/wallet/cauldron/api.js, tokens.js,
5
5
  * and pool-tracker.ts. Uses the global fetch API (Node 20+) instead of axios.
6
6
  */
7
+ import { getWatchtowerApiUrl } from '../../utils/network.js';
7
8
  const CAULDRON_INDEXER_BASE_URL = 'https://indexer.riften.net';
8
9
  export class CauldronApiError extends Error {
9
10
  status;
@@ -57,4 +58,30 @@ export async function fetchTokenData(tokenId) {
57
58
  });
58
59
  return Array.isArray(data) ? data[0] : undefined;
59
60
  }
61
+ /**
62
+ * Fetch the cauldron fee config from watchtower.cash.
63
+ */
64
+ export async function fetchCauldronFee(isChipnet = false) {
65
+ const baseUrl = getWatchtowerApiUrl(isChipnet);
66
+ let response;
67
+ try {
68
+ response = await fetch(`${baseUrl}/cauldron-fee/`);
69
+ }
70
+ catch (err) {
71
+ throw new CauldronApiError(`watchtower unreachable: ${err?.message || err}`);
72
+ }
73
+ if (!response.ok) {
74
+ throw new CauldronApiError(`cauldron-fee request failed (${response.status} ${response.statusText})`, response.status);
75
+ }
76
+ const data = await response.json();
77
+ const feeRateBps = Number(data?.fee_rate_bps ?? 30);
78
+ const maxUsd = Number(data?.max_usd ?? 1);
79
+ return {
80
+ address: typeof data?.address === 'string' && data.address !== ''
81
+ ? data.address
82
+ : null,
83
+ feeRateBps: Number.isFinite(feeRateBps) && feeRateBps >= 0 ? feeRateBps : 30,
84
+ maxUsd: Number.isFinite(maxUsd) && maxUsd >= 0 ? maxUsd : 1,
85
+ };
86
+ }
60
87
  //# sourceMappingURL=api.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/wallet/cauldron/api.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,11 @@
7
7
  */
8
8
  import { type PoolV0, type TradeResult } from '@cashlab/cauldron';
9
9
  import type { BchWallet } from '../bch.js';
10
- import { type CauldronTokenData } from './api.js';
10
+ import { type PlatformFeeConfig, type CauldronTokenData } from './api.js';
11
+ import { type PlatformFee } from './transact.js';
11
12
  export type SwapDirection = 'buy' | 'sell';
13
+ /** Platform fees below this are not charged at all (P2PKH dust threshold). */
14
+ export declare const PLATFORM_FEE_DUST_LIMIT = 546n;
12
15
  export interface SwapQuote {
13
16
  tokenId: string;
14
17
  tokenData: CauldronTokenData;
@@ -24,6 +27,8 @@ export interface SwapQuote {
24
27
  bchAmount: bigint;
25
28
  /** Trade fee in satoshis. */
26
29
  tradeFee: bigint;
30
+ /** Paytaca platform fee charged on top of the trade (absent = no fee). */
31
+ platformFee?: PlatformFee;
27
32
  }
28
33
  export interface EstimateSwapOpts {
29
34
  /** 64-char hex token category. */
@@ -32,6 +37,8 @@ export interface EstimateSwapOpts {
32
37
  direction: SwapDirection;
33
38
  /** Token amount in base units (sell: amount supplied; buy: amount received). */
34
39
  amount: bigint;
40
+ /** Use chipnet watchtower endpoints for fee config and BCH price. */
41
+ isChipnet?: boolean;
35
42
  }
36
43
  export interface ExecuteSwapOpts extends EstimateSwapOpts {
37
44
  bchWallet: BchWallet;
@@ -45,6 +52,21 @@ export interface SwapResult {
45
52
  error?: string;
46
53
  quote?: SwapQuote;
47
54
  }
55
+ /**
56
+ * Compute the Paytaca platform fee for a trade (mirrors paytaca-app
57
+ * trade.vue: 0.3% of the trade size, capped at max_usd worth of BCH).
58
+ *
59
+ * The fee is charged only when ALL of these hold:
60
+ * - the fee address is configured (feature enabled)
61
+ * - the live BCH price is fetchable (price failure -> no fee)
62
+ * - the computed fee is >= PLATFORM_FEE_DUST_LIMIT (below -> no fee)
63
+ */
64
+ export declare function computePlatformFee(opts: {
65
+ tradeResult: TradeResult;
66
+ isBuyingToken: boolean;
67
+ feeConfig: PlatformFeeConfig;
68
+ bchUsdPrice: number | null;
69
+ }): PlatformFee | null;
48
70
  /**
49
71
  * Estimate a swap: fetch pools + token data and compute the best-rate trade.
50
72
  */
@@ -1 +1 @@
1
- {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../../src/wallet/cauldron/swap.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAE1C,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAA;AASjB,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAA;AAE1C,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,iBAAiB,CAAA;IAC5B,SAAS,EAAE,aAAa,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,EAAE,WAAW,CAAA;IACxB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAA;IACjB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,SAAS,EAAE,aAAa,CAAA;IACxB,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;CACvB;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,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,SAAS,CAAC,CA8CpB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAwBpD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAkD5E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,SAAS,CAAA;CACjB,sDA+BA"}
1
+ {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../../src/wallet/cauldron/swap.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAG1C,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAIL,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAA;AAEtB,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAA;AAE1C,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAE3C,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,iBAAiB,CAAA;IAC5B,SAAS,EAAE,aAAa,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,EAAE,WAAW,CAAA;IACxB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAA;IACjB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,SAAS,EAAE,aAAa,CAAA;IACxB,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;CACvB;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,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,GAAG,WAAW,GAAG,IAAI,CA2BrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,SAAS,CAAC,CA8DpB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAkCpD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAkD5E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,SAAS,CAAA;CACjB,sDAgCA"}
@@ -8,17 +8,61 @@
8
8
  import { ExchangeLab } from '@cashlab/cauldron';
9
9
  import { binToHex } from '@cashlab/common/libauth.js';
10
10
  import { LibauthHDWallet } from '../keys.js';
11
- import { fetchPoolsForToken, fetchTokenData, } from './api.js';
11
+ import { getBchUsdPrice } from '../../utils/prices.js';
12
+ import { fetchCauldronFee, fetchPoolsForToken, fetchTokenData, } from './api.js';
12
13
  import { apiPoolToMicroPool, microPoolToPoolV0, parseRate } from './pools.js';
13
14
  import { attemptTrade, createInputAndOutput, watchtowerUtxosToSpendableCoins, } from './transact.js';
15
+ /** Platform fees below this are not charged at all (P2PKH dust threshold). */
16
+ export const PLATFORM_FEE_DUST_LIMIT = 546n;
17
+ /**
18
+ * Compute the Paytaca platform fee for a trade (mirrors paytaca-app
19
+ * trade.vue: 0.3% of the trade size, capped at max_usd worth of BCH).
20
+ *
21
+ * The fee is charged only when ALL of these hold:
22
+ * - the fee address is configured (feature enabled)
23
+ * - the live BCH price is fetchable (price failure -> no fee)
24
+ * - the computed fee is >= PLATFORM_FEE_DUST_LIMIT (below -> no fee)
25
+ */
26
+ export function computePlatformFee(opts) {
27
+ const { tradeResult, isBuyingToken, feeConfig, bchUsdPrice } = opts;
28
+ if (!feeConfig.address)
29
+ return null;
30
+ if (bchUsdPrice == null || !isFinite(bchUsdPrice) || bchUsdPrice <= 0) {
31
+ return null;
32
+ }
33
+ const summary = tradeResult.summary;
34
+ // BCH side of the trade, excluding the DEX's own trade fee.
35
+ const tradeSizeSats = (isBuyingToken ? summary.supply : summary.demand) - summary.trade_fee;
36
+ if (tradeSizeSats <= 0n)
37
+ return null;
38
+ const rateBps = BigInt(Math.max(0, Math.round(feeConfig.feeRateBps)));
39
+ let feeSats = tradeSizeSats * rateBps / 10000n;
40
+ // Cap the fee at max_usd worth of BCH at the current price. Computed in
41
+ // bigint space so large caps / tiny prices cannot lose integer precision.
42
+ const maxUsdScaled = BigInt(Math.round(feeConfig.maxUsd * 1e8));
43
+ const priceScaled = BigInt(Math.round(bchUsdPrice * 1e8));
44
+ if (maxUsdScaled <= 0n || priceScaled <= 0n)
45
+ return null;
46
+ const capSats = maxUsdScaled * 100000000n / priceScaled;
47
+ if (capSats <= 0n)
48
+ return null;
49
+ if (feeSats > capSats)
50
+ feeSats = capSats;
51
+ if (feeSats < PLATFORM_FEE_DUST_LIMIT)
52
+ return null;
53
+ return { to: feeConfig.address, amount: feeSats };
54
+ }
14
55
  /**
15
56
  * Estimate a swap: fetch pools + token data and compute the best-rate trade.
16
57
  */
17
58
  export async function estimateSwap(opts) {
18
59
  const { tokenId, direction, amount } = opts;
19
- const [tokenData, apiPools] = await Promise.all([
60
+ const isChipnet = opts.isChipnet ?? false;
61
+ const [tokenData, apiPools, feeConfig] = await Promise.all([
20
62
  fetchTokenData(tokenId),
21
63
  fetchPoolsForToken(tokenId),
64
+ // Fee config failure -> feature off for this swap (degrade silently)
65
+ fetchCauldronFee(isChipnet).catch(() => null),
22
66
  ]);
23
67
  if (!tokenData) {
24
68
  throw new Error(`No cauldron token data found for ${tokenId}`);
@@ -44,6 +88,17 @@ export async function estimateSwap(opts) {
44
88
  ? tradeResult.summary.supply
45
89
  : tradeResult.summary.demand;
46
90
  const decimals = tokenData.bcmr.token.decimals;
91
+ // Platform fee: only when enabled + live price available (no fee otherwise)
92
+ let platformFee = null;
93
+ if (feeConfig) {
94
+ const bchUsdPrice = await getBchUsdPrice(isChipnet).catch(() => null);
95
+ platformFee = computePlatformFee({
96
+ tradeResult,
97
+ isBuyingToken,
98
+ feeConfig,
99
+ bchUsdPrice,
100
+ });
101
+ }
47
102
  return {
48
103
  tokenId,
49
104
  tokenData,
@@ -55,6 +110,7 @@ export async function estimateSwap(opts) {
55
110
  tokenAmount,
56
111
  bchAmount,
57
112
  tradeFee: tradeResult.summary.trade_fee,
113
+ ...(platformFee ? { platformFee } : {}),
58
114
  };
59
115
  }
60
116
  /**
@@ -67,21 +123,32 @@ export function formatQuote(quote) {
67
123
  const tokenFormatted = (Number(tokenAmount) / 10 ** decimals).toFixed(decimals);
68
124
  const bchFormatted = (Number(bchAmount) / 10 ** 8).toFixed(8);
69
125
  const feeFormatted = (Number(tradeFee) / 10 ** 8).toFixed(8);
126
+ let platformFeeLine = null;
127
+ if (quote.platformFee) {
128
+ const feeFormattedPlatform = (Number(quote.platformFee.amount) / 10 ** 8).toFixed(8);
129
+ platformFeeLine = `Platform fee: ~${feeFormattedPlatform} BCH`;
130
+ }
70
131
  if (direction === 'sell') {
71
132
  // Rate semantics (matches paytaca-app): '1 {demandSymbol} ≈ {rate} {supplySymbol}'.
72
133
  // Selling tokens → demand is BCH, rate is tokens-per-BCH.
73
- return [
134
+ const lines = [
74
135
  `Sell ${tokenFormatted} ${tokenSymbol} for ${bchFormatted} BCH`,
75
136
  `Rate: 1 BCH ≈ ${rate} ${tokenSymbol}`,
76
137
  `Trade fee: ~${feeFormatted} BCH`,
77
- ].join('\n');
138
+ ];
139
+ if (platformFeeLine)
140
+ lines.push(platformFeeLine);
141
+ return lines.join('\n');
78
142
  }
79
143
  // Buying tokens → demand is the token, rate is BCH-per-token.
80
- return [
144
+ const lines = [
81
145
  `Buy ${tokenFormatted} ${tokenSymbol} for ${bchFormatted} BCH`,
82
146
  `Rate: 1 ${tokenSymbol} ≈ ${rate} BCH`,
83
147
  `Trade fee: ~${feeFormatted} BCH`,
84
- ].join('\n');
148
+ ];
149
+ if (platformFeeLine)
150
+ lines.push(platformFeeLine);
151
+ return lines.join('\n');
85
152
  }
86
153
  /**
87
154
  * Execute a swap: build + sign the trade transaction and broadcast it.
@@ -148,6 +215,7 @@ export async function buildSignedTradeTx(opts) {
148
215
  const { inputCoins, payouts } = createInputAndOutput({
149
216
  tradeResult: quote.tradeResult,
150
217
  spendableCoins,
218
+ platformFee: quote.platformFee,
151
219
  });
152
220
  const exlab = new ExchangeLab();
153
221
  const tradeTx = exlab.createTradeTx(quote.tradeResult.entries, inputCoins, payouts, null, 1n);
@@ -1 +1 @@
1
- {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../../src/wallet/cauldron/swap.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAiC,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EACL,kBAAkB,EAClB,cAAc,GAEf,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,+BAA+B,GAEhC,MAAM,eAAe,CAAA;AA4CtB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAsB;IAEtB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAE3C,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,cAAc,CAAC,OAAO,CAAC;QACvB,kBAAkB,CAAC,OAAO,CAAC;KAC5B,CAAC,CAAA;IACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACrE,MAAM,aAAa,GAAG,SAAS,KAAK,KAAK,CAAA;IACzC,MAAM,WAAW,GAAG,YAAY,CAAC;QAC/B,KAAK;QACL,aAAa;QACb,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;QAC1C,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC3C,CAAC,CAAA;IAEF,+CAA+C;IAC/C,mCAAmC;IACnC,qCAAqC;IACrC,MAAM,WAAW,GAAG,aAAa;QAC/B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;QAC5B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAC9B,MAAM,SAAS,GAAG,aAAa;QAC7B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;QAC5B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IAE9C,OAAO;QACL,OAAO;QACP,SAAS;QACT,SAAS;QACT,aAAa;QACb,KAAK;QACL,WAAW;QACX,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;QAClE,WAAW;QACX,SAAS;QACT,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS;KACxC,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAgB;IAC1C,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC9E,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC9C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,cAAc,CAAA;IAE3E,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/E,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC7D,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAE5D,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,oFAAoF;QACpF,0DAA0D;QAC1D,OAAO;YACL,QAAQ,cAAc,IAAI,WAAW,QAAQ,YAAY,MAAM;YAC/D,iBAAiB,IAAI,IAAI,WAAW,EAAE;YACtC,eAAe,YAAY,MAAM;SAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;IACD,8DAA8D;IAC9D,OAAO;QACL,OAAO,cAAc,IAAI,WAAW,QAAQ,YAAY,MAAM;QAC9D,WAAW,WAAW,MAAM,IAAI,MAAM;QACtC,eAAe,YAAY,MAAM;KAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACrD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;IAEpD,IAAI,KAAgB,CAAA;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;IAC/D,CAAC;IAED,IAAI,KAAa,CAAA;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACvC,SAAS;YACT,QAAQ;YACR,cAAc;YACd,KAAK;SACN,CAAC,CAAA;QACF,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;IACtE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,MACxB,SAAS,CAAC,UACX,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAA;QAEnC,iCAAiC;QACjC,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;YACnD,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/B,IAAI,EAAE,IAAI,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,IAAI,EAAE,KAAK;YAClB,KAAK;SACN,CAAA;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;YAClC,KAAK;SACN,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAKxC;IACC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAE3D,MAAM,QAAQ,GAAG,IAAI,eAAe,CAClC,QAAQ,EACR,cAAc,EACd,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAC5C,CAAA;IACD,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC;QACjD,SAAS;QACT,QAAQ;QACR,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CAAA;IAEF,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC;QACnD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,cAAc;KACf,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAA;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CACjC,KAAK,CAAC,WAAW,CAAC,OAAO,EACzB,UAAU,EACV,OAAO,EACP,IAAI,EACJ,EAAE,CACH,CAAA;IACD,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAE5B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,qBAAqB,CAAC,IAKpC;IACC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;IAE5D,wEAAwE;IACxE,wDAAwD;IACxD,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/C,SAAS,CAAC,QAAQ,EAAE;QACpB,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAsB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;KACpG,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC9E,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAI,UAA+B,CAAC,CAAA;IAEhE,OAAO,+BAA+B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;AACrE,CAAC"}
1
+ {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../../src/wallet/cauldron/swap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=swap.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap.test.d.ts","sourceRoot":"","sources":["../../../src/wallet/cauldron/swap.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,179 @@
1
+ import { afterEach, describe, it, expect, vi } from 'vitest';
2
+ import { computePlatformFee, formatQuote, PLATFORM_FEE_DUST_LIMIT } from './swap.js';
3
+ import { fetchCauldronFee } from './api.js';
4
+ const FEE_ADDRESS = 'bitcoincash:qp9szr5k40z88m5jhmpytqt8pq5zfz0yvcs7q5lef7';
5
+ function fakeTradeResult(summary) {
6
+ return {
7
+ entries: [],
8
+ summary: { ...summary, rate: 0n },
9
+ };
10
+ }
11
+ const feeConfig = {
12
+ address: FEE_ADDRESS,
13
+ feeRateBps: 30,
14
+ maxUsd: 1,
15
+ };
16
+ describe('computePlatformFee', () => {
17
+ it('charges 0.3% of (demand - trade_fee) on sells', () => {
18
+ // 999_000 sats * 30/10000 = 2_997 sats; cap at $500/BCH = 200_000 sats
19
+ const fee = computePlatformFee({
20
+ tradeResult: fakeTradeResult({ supply: 500000n, demand: 1000000n, trade_fee: 1000n }),
21
+ isBuyingToken: false,
22
+ feeConfig,
23
+ bchUsdPrice: 500,
24
+ });
25
+ expect(fee).toEqual({ to: FEE_ADDRESS, amount: 2997n });
26
+ });
27
+ it('charges 0.3% of (supply - trade_fee) on buys', () => {
28
+ const fee = computePlatformFee({
29
+ tradeResult: fakeTradeResult({ supply: 2000000n, demand: 1000000n, trade_fee: 2000n }),
30
+ isBuyingToken: true,
31
+ feeConfig,
32
+ bchUsdPrice: 500,
33
+ });
34
+ // 1_998_000 * 30/10000 = 5_994
35
+ expect(fee?.amount).toBe(5994n);
36
+ });
37
+ it('caps the fee at max_usd worth of BCH at the current price', () => {
38
+ // 4 BCH trade -> 0.3% = 1_200_000 sats; $1 at $100/BCH = 1_000_000 sats
39
+ const fee = computePlatformFee({
40
+ tradeResult: fakeTradeResult({ supply: 400000000n, demand: 1n, trade_fee: 0n }),
41
+ isBuyingToken: true,
42
+ feeConfig,
43
+ bchUsdPrice: 100,
44
+ });
45
+ expect(fee?.amount).toBe(1000000n);
46
+ });
47
+ it('does not cap when 0.3% is below the cap', () => {
48
+ // 1 BCH trade -> 0.3% = 300_000 sats < cap 1_000_000 sats
49
+ const fee = computePlatformFee({
50
+ tradeResult: fakeTradeResult({ supply: 100000000n, demand: 1n, trade_fee: 0n }),
51
+ isBuyingToken: true,
52
+ feeConfig,
53
+ bchUsdPrice: 100,
54
+ });
55
+ expect(fee?.amount).toBe(300000n);
56
+ });
57
+ it('does not charge below the dust limit', () => {
58
+ // 100_000 sats * 1bp/10000 = 10 sats < 546 -> no fee at all
59
+ const fee = computePlatformFee({
60
+ tradeResult: fakeTradeResult({ supply: 100000n, demand: 1n, trade_fee: 0n }),
61
+ isBuyingToken: true,
62
+ feeConfig: { ...feeConfig, feeRateBps: 1 },
63
+ bchUsdPrice: 100,
64
+ });
65
+ expect(fee).toBeNull();
66
+ });
67
+ it('returns null when no fee address is configured', () => {
68
+ const fee = computePlatformFee({
69
+ tradeResult: fakeTradeResult({ supply: 100000000n, demand: 1n, trade_fee: 0n }),
70
+ isBuyingToken: true,
71
+ feeConfig: { ...feeConfig, address: null },
72
+ bchUsdPrice: 100,
73
+ });
74
+ expect(fee).toBeNull();
75
+ });
76
+ it('returns null when the BCH price is unavailable (no fee on price failure)', () => {
77
+ const fee = computePlatformFee({
78
+ tradeResult: fakeTradeResult({ supply: 100000000n, demand: 1n, trade_fee: 0n }),
79
+ isBuyingToken: true,
80
+ feeConfig,
81
+ bchUsdPrice: null,
82
+ });
83
+ expect(fee).toBeNull();
84
+ });
85
+ it('returns null for non-positive BCH prices', () => {
86
+ const fee = computePlatformFee({
87
+ tradeResult: fakeTradeResult({ supply: 100000000n, demand: 1n, trade_fee: 0n }),
88
+ isBuyingToken: true,
89
+ feeConfig,
90
+ bchUsdPrice: 0,
91
+ });
92
+ expect(fee).toBeNull();
93
+ });
94
+ it('returns null when a tiny price makes the cap itself dust', () => {
95
+ const fee = computePlatformFee({
96
+ tradeResult: fakeTradeResult({ supply: 100000000n, demand: 1n, trade_fee: 0n }),
97
+ isBuyingToken: true,
98
+ feeConfig,
99
+ bchUsdPrice: 1_000_000_000,
100
+ });
101
+ // cap = floor(1/1e9 * 1e8) = 0 sats -> no fee
102
+ expect(fee).toBeNull();
103
+ });
104
+ it('treats a zero or negative trade size as no fee', () => {
105
+ const fee = computePlatformFee({
106
+ tradeResult: fakeTradeResult({ supply: 0n, demand: 1n, trade_fee: 0n }),
107
+ isBuyingToken: true,
108
+ feeConfig,
109
+ bchUsdPrice: 100,
110
+ });
111
+ expect(fee).toBeNull();
112
+ });
113
+ it('exposes the dust limit constant as 546 sats', () => {
114
+ expect(PLATFORM_FEE_DUST_LIMIT).toBe(546n);
115
+ });
116
+ });
117
+ describe('formatQuote', () => {
118
+ const tokenData = {
119
+ token_id: 'abc',
120
+ display_name: 'Test Token',
121
+ display_symbol: 'TT',
122
+ price_now: 1,
123
+ price_now_usd: 1,
124
+ tvl_sats: 1,
125
+ bcmr: {
126
+ name: 'Test Token',
127
+ description: '',
128
+ token: { category: 'abc', decimals: 2, symbol: 'TT' },
129
+ },
130
+ };
131
+ function quote(overrides = {}) {
132
+ return {
133
+ tokenId: 'abc',
134
+ tokenData,
135
+ direction: 'sell',
136
+ isBuyingToken: false,
137
+ pools: [],
138
+ tradeResult: fakeTradeResult({ supply: 500000n, demand: 1000000n, trade_fee: 1000n }),
139
+ rate: '2.0',
140
+ tokenAmount: 500000n,
141
+ bchAmount: 1000000n,
142
+ tradeFee: 1000n,
143
+ ...overrides,
144
+ };
145
+ }
146
+ it('lists the platform fee line when a fee is applied', () => {
147
+ const text = formatQuote(quote({
148
+ platformFee: { to: FEE_ADDRESS, amount: 2997n },
149
+ }));
150
+ expect(text).toContain('Platform fee: ~0.00002997 BCH');
151
+ expect(text).toContain('Trade fee: ~0.00001000 BCH');
152
+ });
153
+ it('omits the line entirely when no fee', () => {
154
+ const noFee = formatQuote(quote());
155
+ expect(noFee).not.toContain('Platform fee');
156
+ });
157
+ });
158
+ describe('fetchCauldronFee', () => {
159
+ afterEach(() => {
160
+ vi.unstubAllGlobals();
161
+ });
162
+ it('parses the watchtower response and defaults missing fields', async () => {
163
+ vi.stubGlobal('fetch', vi.fn(async () => new Response(JSON.stringify({ address: FEE_ADDRESS, fee_rate_bps: 30, max_usd: '1.00' }), { status: 200 })));
164
+ const config = await fetchCauldronFee();
165
+ expect(config).toEqual({ address: FEE_ADDRESS, feeRateBps: 30, maxUsd: 1 });
166
+ });
167
+ it('maps an empty address to null (feature disabled)', async () => {
168
+ vi.stubGlobal('fetch', vi.fn(async () => new Response(JSON.stringify({ address: '' }), { status: 200 })));
169
+ const config = await fetchCauldronFee();
170
+ expect(config.address).toBeNull();
171
+ expect(config.feeRateBps).toBe(30);
172
+ expect(config.maxUsd).toBe(1);
173
+ });
174
+ it('throws a CauldronApiError on http failure', async () => {
175
+ vi.stubGlobal('fetch', vi.fn(async () => new Response('nope', { status: 500 })));
176
+ await expect(fetchCauldronFee()).rejects.toThrow('cauldron-fee request failed (500');
177
+ });
178
+ });
179
+ //# sourceMappingURL=swap.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap.test.js","sourceRoot":"","sources":["../../../src/wallet/cauldron/swap.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transact.d.ts","sourceRoot":"","sources":["../../../src/wallet/cauldron/transact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,WAAW,EAEX,KAAK,MAAM,EACX,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,aAAa,EAEnB,MAAM,iBAAiB,CAAA;AAUxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AASjD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CA8BhE;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,WAAW,EAAE,WAAW,CAAA;IACxB,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,GAAG;IAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAkIzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,CAcA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,6CAmEA;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,MAAM,EAAE,eAAe,CAAA;CACxB,GAAG,aAAa,EAAE,CAmClB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAI5D;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,UAAU,GAAG,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA+BzD"}
1
+ {"version":3,"file":"transact.d.ts","sourceRoot":"","sources":["../../../src/wallet/cauldron/transact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,WAAW,EAEX,KAAK,MAAM,EACX,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,aAAa,EAEnB,MAAM,iBAAiB,CAAA;AAUxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AASjD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CA8BhE;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,WAAW,EAAE,WAAW,CAAA;IACxB,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,GAAG;IAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAyIzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,CAcA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,6CAmEA;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,MAAM,EAAE,eAAe,CAAA;CACxB,GAAG,aAAa,EAAE,CAmClB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAI5D;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,UAAU,GAAG,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA+BzD"}
@@ -58,14 +58,23 @@ export function createInputAndOutput(opts) {
58
58
  const tokenCoins = spendableCoins.filter((coin) => coin.output?.token);
59
59
  const bchCoins = spendableCoins.filter((coin) => !coin.output.token);
60
60
  const isBuyingToken = tradeResult.entries[0].supply_token_id === NATIVE_BCH_TOKEN_ID;
61
+ // Decode the fee address once; reused for both sizing and the payout rule.
62
+ let platformFeeBytecode;
63
+ if (platformFee) {
64
+ const decoded = cashAddressToLockingBytecode(platformFee.to);
65
+ if (!decoded || typeof decoded === 'string' || !decoded.bytecode) {
66
+ throw new Error(`Invalid platform fee address: ${platformFee.to}`);
67
+ }
68
+ platformFeeBytecode = decoded.bytecode;
69
+ }
61
70
  const entriesSizes = getEntriesSize(tradeResult);
62
71
  const totalPoolTxFee = BigInt(entriesSizes.inputFees + entriesSizes.outputFees);
63
72
  let tokensToSupply = !isBuyingToken ? tradeResult.summary.supply : 0n;
64
73
  let satoshisToSupply = isBuyingToken ? tradeResult.summary.supply : 0n;
65
74
  satoshisToSupply += totalPoolTxFee;
66
- if (platformFee) {
75
+ if (platformFee && platformFeeBytecode) {
67
76
  satoshisToSupply += platformFee.amount;
68
- satoshisToSupply += BigInt(getOutputSize(platformFee));
77
+ satoshisToSupply += BigInt(getOutputSize({ to: platformFeeBytecode, amount: platformFee.amount }));
69
78
  }
70
79
  const inputCoins = [];
71
80
  const payouts = [];
@@ -119,17 +128,12 @@ export function createInputAndOutput(opts) {
119
128
  });
120
129
  satoshisToSupply += tokenOutputSats + BigInt(outputSize);
121
130
  }
122
- if (platformFee) {
123
- const decoded = cashAddressToLockingBytecode(platformFee.to);
124
- if (!decoded || typeof decoded === 'string' || !decoded.bytecode) {
125
- throw new Error(`Invalid platform fee address: ${platformFee.to}`);
126
- }
131
+ if (platformFee && platformFeeBytecode) {
127
132
  payouts.push({
128
133
  type: PayoutAmountRuleType.FIXED,
129
- locking_bytecode: decoded.bytecode,
134
+ locking_bytecode: platformFeeBytecode,
130
135
  amount: platformFee.amount,
131
136
  });
132
- satoshisToSupply += platformFee.amount + BigInt(getOutputSize(platformFee));
133
137
  }
134
138
  // Base tx overhead (version + locktime) and varint prefixes for inputs/outputs
135
139
  satoshisToSupply += 8n;
@@ -1 +1 @@
1
- {"version":3,"file":"transact.js","sourceRoot":"","sources":["../../../src/wallet/cauldron/transact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transact.js","sourceRoot":"","sources":["../../../src/wallet/cauldron/transact.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paytaca-cli",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "Command-line interface for the Paytaca Bitcoin Cash wallet",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",