@aibtc/mcp-server 1.29.0 → 1.30.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.
Files changed (52) hide show
  1. package/README.md +13 -0
  2. package/dist/config/contracts.d.ts +4 -0
  3. package/dist/config/contracts.d.ts.map +1 -1
  4. package/dist/config/contracts.js +2 -0
  5. package/dist/config/contracts.js.map +1 -1
  6. package/dist/services/sbtc.service.d.ts +27 -0
  7. package/dist/services/sbtc.service.d.ts.map +1 -1
  8. package/dist/services/sbtc.service.js +87 -1
  9. package/dist/services/sbtc.service.js.map +1 -1
  10. package/dist/services/x402.service.d.ts +1 -1
  11. package/dist/services/x402.service.d.ts.map +1 -1
  12. package/dist/services/x402.service.js +31 -20
  13. package/dist/services/x402.service.js.map +1 -1
  14. package/dist/tools/contract.tools.d.ts.map +1 -1
  15. package/dist/tools/contract.tools.js +37 -14
  16. package/dist/tools/contract.tools.js.map +1 -1
  17. package/dist/tools/endpoint.tools.js +1 -1
  18. package/dist/tools/endpoint.tools.js.map +1 -1
  19. package/dist/tools/inbox.tools.d.ts.map +1 -1
  20. package/dist/tools/inbox.tools.js +8 -6
  21. package/dist/tools/inbox.tools.js.map +1 -1
  22. package/dist/tools/index.d.ts.map +1 -1
  23. package/dist/tools/index.js +2 -0
  24. package/dist/tools/index.js.map +1 -1
  25. package/dist/tools/psbt.helpers.d.ts +12 -0
  26. package/dist/tools/psbt.helpers.d.ts.map +1 -0
  27. package/dist/tools/psbt.helpers.js +34 -0
  28. package/dist/tools/psbt.helpers.js.map +1 -0
  29. package/dist/tools/psbt.tools.d.ts +3 -0
  30. package/dist/tools/psbt.tools.d.ts.map +1 -0
  31. package/dist/tools/psbt.tools.js +384 -0
  32. package/dist/tools/psbt.tools.js.map +1 -0
  33. package/dist/tools/sbtc.tools.d.ts.map +1 -1
  34. package/dist/tools/sbtc.tools.js +187 -0
  35. package/dist/tools/sbtc.tools.js.map +1 -1
  36. package/dist/tools/signing.tools.d.ts.map +1 -1
  37. package/dist/tools/signing.tools.js +5 -4
  38. package/dist/tools/signing.tools.js.map +1 -1
  39. package/dist/tools/transfer.tools.d.ts.map +1 -1
  40. package/dist/tools/transfer.tools.js +15 -4
  41. package/dist/tools/transfer.tools.js.map +1 -1
  42. package/dist/transactions/sponsor-builder.d.ts +13 -10
  43. package/dist/transactions/sponsor-builder.d.ts.map +1 -1
  44. package/dist/transactions/sponsor-builder.js +41 -9
  45. package/dist/transactions/sponsor-builder.js.map +1 -1
  46. package/dist/utils/x402-protocol.d.ts +24 -0
  47. package/dist/utils/x402-protocol.d.ts.map +1 -1
  48. package/dist/utils/x402-protocol.js +17 -0
  49. package/dist/utils/x402-protocol.js.map +1 -1
  50. package/package.json +1 -1
  51. package/skill/SKILL.md +1 -1
  52. package/skill/references/stacks-defi.md +39 -7
package/README.md CHANGED
@@ -230,6 +230,14 @@ Both addresses are derived from the same recovery phrase, making it easy to mana
230
230
  | `get_inscription` | Fetch inscription content from reveal tx |
231
231
  | `get_inscriptions_by_address` | List inscriptions owned by address |
232
232
 
233
+ ### PSBT & Ordinals Trading
234
+ | Tool | Description |
235
+ |------|-------------|
236
+ | `psbt_create_ordinal_buy` | Build a buyer-side PSBT for ordinal purchase |
237
+ | `psbt_sign` | Sign selected PSBT inputs with active wallet keys |
238
+ | `psbt_decode` | Decode PSBT inputs/outputs/signature status |
239
+ | `psbt_broadcast` | Finalize and broadcast a fully-signed PSBT |
240
+
233
241
  ### Message Signing
234
242
  | Tool | Description |
235
243
  |------|-------------|
@@ -259,7 +267,12 @@ Both addresses are derived from the same recovery phrase, making it easy to mana
259
267
  |------|-------------|
260
268
  | `sbtc_get_balance` | Get sBTC balance |
261
269
  | `sbtc_transfer` | Send sBTC |
270
+ | `sbtc_initiate_withdrawal` | Initiate sBTC peg-out to BTC L1 |
271
+ | `sbtc_withdraw` | Alias for withdrawal initiation |
272
+ | `sbtc_withdrawal_status` | Check withdrawal request status |
262
273
  | `sbtc_get_deposit_info` | Get BTC deposit instructions |
274
+ | `sbtc_deposit` | Build, sign, and broadcast BTC→sBTC deposit |
275
+ | `sbtc_deposit_status` | Check deposit status via Emily API |
263
276
  | `sbtc_get_peg_info` | Get peg ratio and TVL |
264
277
 
265
278
  ### Token Operations (SIP-010)
@@ -6,6 +6,7 @@ export declare const MAINNET_CONTRACTS: {
6
6
  readonly SBTC_TOKEN: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token";
7
7
  readonly SBTC_DEPOSIT: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-deposit";
8
8
  readonly SBTC_REGISTRY: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-registry";
9
+ readonly SBTC_WITHDRAWAL: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-withdrawal";
9
10
  readonly USDCX: "SP120SBRBQJ00MCWS7TM5R8WJNTTKD5K0HFRC2CNE.usdcx";
10
11
  readonly BNS: "SP000000000000000000002Q6VF78.bns";
11
12
  readonly POX_4: "SP000000000000000000002Q6VF78.pox-4";
@@ -47,6 +48,7 @@ export declare const TESTNET_CONTRACTS: {
47
48
  readonly SBTC_TOKEN: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-token";
48
49
  readonly SBTC_DEPOSIT: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-deposit";
49
50
  readonly SBTC_REGISTRY: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-registry";
51
+ readonly SBTC_WITHDRAWAL: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-withdrawal";
50
52
  readonly USDCX: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.usdcx";
51
53
  readonly BNS: "ST000000000000000000002AMW42H.bns";
52
54
  readonly POX_4: "ST000000000000000000002AMW42H.pox-4";
@@ -61,6 +63,7 @@ export declare function getContracts(network: Network): {
61
63
  readonly SBTC_TOKEN: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token";
62
64
  readonly SBTC_DEPOSIT: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-deposit";
63
65
  readonly SBTC_REGISTRY: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-registry";
66
+ readonly SBTC_WITHDRAWAL: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-withdrawal";
64
67
  readonly USDCX: "SP120SBRBQJ00MCWS7TM5R8WJNTTKD5K0HFRC2CNE.usdcx";
65
68
  readonly BNS: "SP000000000000000000002Q6VF78.bns";
66
69
  readonly POX_4: "SP000000000000000000002Q6VF78.pox-4";
@@ -80,6 +83,7 @@ export declare function getContracts(network: Network): {
80
83
  readonly SBTC_TOKEN: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-token";
81
84
  readonly SBTC_DEPOSIT: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-deposit";
82
85
  readonly SBTC_REGISTRY: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-registry";
86
+ readonly SBTC_WITHDRAWAL: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-withdrawal";
83
87
  readonly USDCX: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.usdcx";
84
88
  readonly BNS: "ST000000000000000000002AMW42H.bns";
85
89
  readonly POX_4: "ST000000000000000000002AMW42H.pox-4";
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;CAgCpB,CAAC;AAEX;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAiFvD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAW7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;CAmBpB,CAAC;AAEX;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAMrF;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAapB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;;SAQhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;;;;;;;SAahD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;EAElD;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;CAWpB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAUhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO;;;;;;EAEnD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,4DAA4D,CAAC;AAE5F;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO;;;;EAOnD"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;CAiCpB,CAAC;AAEX;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAiFvD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAW7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAoBpB,CAAC;AAEX;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAMrF;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAapB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;;SAQhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;;;;;;;SAahD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;EAElD;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;CAWpB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAUhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO;;;;;;EAEnD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,4DAA4D,CAAC;AAE5F;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO;;;;EAOnD"}
@@ -6,6 +6,7 @@ export const MAINNET_CONTRACTS = {
6
6
  SBTC_TOKEN: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token",
7
7
  SBTC_DEPOSIT: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-deposit",
8
8
  SBTC_REGISTRY: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-registry",
9
+ SBTC_WITHDRAWAL: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-withdrawal",
9
10
  // Stablecoins
10
11
  USDCX: "SP120SBRBQJ00MCWS7TM5R8WJNTTKD5K0HFRC2CNE.usdcx",
11
12
  // BNS
@@ -134,6 +135,7 @@ export const TESTNET_CONTRACTS = {
134
135
  SBTC_TOKEN: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-token",
135
136
  SBTC_DEPOSIT: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-deposit",
136
137
  SBTC_REGISTRY: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-registry",
138
+ SBTC_WITHDRAWAL: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-withdrawal",
137
139
  // Stablecoins
138
140
  USDCX: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.usdcx",
139
141
  // BNS
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,19 @@ export interface SbtcDepositInfo {
17
17
  maxDeposit: string;
18
18
  instructions: string[];
19
19
  }
20
+ export interface SbtcWithdrawalRecipient {
21
+ version: number;
22
+ hashbytesHex: string;
23
+ }
24
+ export interface SbtcWithdrawalRequest {
25
+ id: number;
26
+ amountSats: string;
27
+ maxFeeSats: string;
28
+ sender: string;
29
+ blockHeight: string;
30
+ recipient: SbtcWithdrawalRecipient;
31
+ status: "pending" | "accepted" | "rejected";
32
+ }
20
33
  export declare class SbtcService {
21
34
  private network;
22
35
  private hiro;
@@ -40,6 +53,20 @@ export declare class SbtcService {
40
53
  * Get sBTC peg information
41
54
  */
42
55
  getPegInfo(): Promise<SbtcPegInfo>;
56
+ /**
57
+ * Initiate an sBTC withdrawal request (peg-out) through sbtc-withdrawal.
58
+ * Locks (amount + maxFee) of sBTC until signer acceptance/rejection.
59
+ */
60
+ initiateWithdrawal(account: Account, amount: bigint, maxFee: bigint, recipient: SbtcWithdrawalRecipient, fee?: bigint, sponsored?: boolean): Promise<TransferResult>;
61
+ /**
62
+ * Extract withdrawal request id from initiate-withdrawal transaction result.
63
+ * Returns null if tx is still pending or result is unavailable.
64
+ */
65
+ getWithdrawalRequestIdFromTx(txid: string): Promise<number | null>;
66
+ /**
67
+ * Fetch withdrawal request details from sbtc-registry.
68
+ */
69
+ getWithdrawalRequest(requestId: number, senderAddress: string): Promise<SbtcWithdrawalRequest | null>;
43
70
  }
44
71
  export declare function getSbtcService(network: Network): SbtcService;
45
72
  //# sourceMappingURL=sbtc.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sbtc.service.d.ts","sourceRoot":"","sources":["../../src/services/sbtc.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQ7F,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,qBAAa,WAAW;IAIV,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,SAAS,CAAkC;gBAE/B,OAAO,EAAE,OAAO;IAKpC;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAevD;;;OAGG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,cAAc,CAAC;IAoC1B;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC;IAehD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;CAgBzC;AAQD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAK5D"}
1
+ {"version":3,"file":"sbtc.service.d.ts","sourceRoot":"","sources":["../../src/services/sbtc.service.ts"],"names":[],"mappings":"AAYA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQ7F,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,uBAAuB,CAAC;IACnC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;CAC7C;AAMD,qBAAa,WAAW;IAIV,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,SAAS,CAAkC;gBAE/B,OAAO,EAAE,OAAO;IAKpC;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAevD;;;OAGG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,cAAc,CAAC;IAoC1B;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC;IAehD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAgBxC;;;OAGG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,uBAAuB,EAClC,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,cAAc,CAAC;IAyC1B;;;OAGG;IACG,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAexE;;OAEG;IACG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;CA0DzC;AAQD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAK5D"}
@@ -1,4 +1,4 @@
1
- import { uintCV, principalCV, someCV, noneCV, bufferCV } from "@stacks/transactions";
1
+ import { uintCV, principalCV, someCV, noneCV, bufferCV, tupleCV, hexToCV, cvToJSON, } from "@stacks/transactions";
2
2
  import { getHiroApi } from "./hiro-api.js";
3
3
  import { getContracts, parseContractId } from "../config/index.js";
4
4
  import { callContract } from "../transactions/builder.js";
@@ -93,6 +93,92 @@ export class SbtcService {
93
93
  pegRatio: "1:1",
94
94
  };
95
95
  }
96
+ /**
97
+ * Initiate an sBTC withdrawal request (peg-out) through sbtc-withdrawal.
98
+ * Locks (amount + maxFee) of sBTC until signer acceptance/rejection.
99
+ */
100
+ async initiateWithdrawal(account, amount, maxFee, recipient, fee, sponsored) {
101
+ const withdrawalContract = this.contracts.SBTC_WITHDRAWAL;
102
+ const { address: contractAddress, name: contractName } = parseContractId(withdrawalContract);
103
+ const recipientHash = Buffer.from(recipient.hashbytesHex, "hex");
104
+ const functionArgs = [
105
+ uintCV(amount),
106
+ tupleCV({
107
+ version: bufferCV(Buffer.from([recipient.version])),
108
+ hashbytes: bufferCV(recipientHash),
109
+ }),
110
+ uintCV(maxFee),
111
+ ];
112
+ // sbtc-withdrawal locks amount + maxFee in sbtc-token.
113
+ const lockAmount = amount + maxFee;
114
+ const postCondition = createFungiblePostCondition(account.address, this.contracts.SBTC_TOKEN, "sbtc-token", "eq", lockAmount);
115
+ const contractCallOptions = {
116
+ contractAddress,
117
+ contractName,
118
+ functionName: "initiate-withdrawal-request",
119
+ functionArgs,
120
+ postConditions: [postCondition],
121
+ ...(fee !== undefined && { fee }),
122
+ };
123
+ if (sponsored) {
124
+ return sponsoredContractCall(account, contractCallOptions, this.network);
125
+ }
126
+ return callContract(account, contractCallOptions);
127
+ }
128
+ /**
129
+ * Extract withdrawal request id from initiate-withdrawal transaction result.
130
+ * Returns null if tx is still pending or result is unavailable.
131
+ */
132
+ async getWithdrawalRequestIdFromTx(txid) {
133
+ const tx = await this.hiro.getTransaction(txid);
134
+ if (!tx.tx_result?.hex) {
135
+ return null;
136
+ }
137
+ const decoded = cvToJSON(hexToCV(tx.tx_result.hex));
138
+ if (!decoded.success || decoded.value?.type !== "uint") {
139
+ return null;
140
+ }
141
+ const requestId = Number(decoded.value.value);
142
+ return Number.isSafeInteger(requestId) ? requestId : null;
143
+ }
144
+ /**
145
+ * Fetch withdrawal request details from sbtc-registry.
146
+ */
147
+ async getWithdrawalRequest(requestId, senderAddress) {
148
+ const result = await this.hiro.callReadOnlyFunction(this.contracts.SBTC_REGISTRY, "get-withdrawal-request", [uintCV(requestId)], senderAddress);
149
+ if (!result.okay || !result.result) {
150
+ throw new Error(result.cause || "Failed to read withdrawal request");
151
+ }
152
+ const decoded = cvToJSON(hexToCV(result.result));
153
+ if (decoded.value === null) {
154
+ return null;
155
+ }
156
+ const value = decoded.value;
157
+ const tuple = value.value;
158
+ const recipientTuple = tuple.recipient?.value;
159
+ if (!recipientTuple?.version || !recipientTuple?.hashbytes) {
160
+ throw new Error("Malformed recipient tuple in withdrawal request");
161
+ }
162
+ const versionHex = String(recipientTuple.version.value).replace(/^0x/, "");
163
+ const hashHex = String(recipientTuple.hashbytes.value).replace(/^0x/, "");
164
+ const statusValue = tuple.status?.value;
165
+ let status = "pending";
166
+ if (statusValue?.type === "bool") {
167
+ status = statusValue.value === true ? "accepted" : "rejected";
168
+ }
169
+ return {
170
+ id: requestId,
171
+ amountSats: String(tuple.amount?.value ?? "0"),
172
+ maxFeeSats: String(tuple["max-fee"]?.value ?? "0"),
173
+ sender: String(tuple.sender?.value ?? ""),
174
+ blockHeight: String(tuple["block-height"]?.value ?? "0"),
175
+ recipient: {
176
+ version: Number.parseInt(versionHex, 16),
177
+ hashbytesHex: hashHex.toLowerCase(),
178
+ },
179
+ status,
180
+ };
181
+ }
96
182
  }
97
183
  // ============================================================================
98
184
  // Helper Functions
@@ -1 +1 @@
1
- {"version":3,"file":"sbtc.service.js","sourceRoot":"","sources":["../../src/services/sbtc.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAkB,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAqC,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AA0BjF,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,OAAO,WAAW;IAIF;IAHZ,IAAI,CAAiB;IACrB,SAAS,CAAkC;IAEnD,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAClC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAEvE,yCAAyC;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC;QAC5B,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEtE,OAAO;YACL,OAAO;YACP,WAAW;YACX,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,OAAgB,EAChB,SAAiB,EACjB,MAAc,EACd,IAAa,EACb,GAAY,EACZ,SAAmB;QAEnB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;QAC/C,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QAEvF,MAAM,YAAY,GAAmB;YACnC,MAAM,CAAC,MAAM,CAAC;YACd,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;YAC5B,WAAW,CAAC,SAAS,CAAC;YACtB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;SACtE,CAAC;QAEF,gEAAgE;QAChE,MAAM,aAAa,GAAG,2BAA2B,CAC/C,OAAO,CAAC,OAAO,EACf,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,MAAM,CACP,CAAC;QAEF,MAAM,mBAAmB,GAAG;YAC1B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,UAAU;YACxB,YAAY;YACZ,cAAc,EAAE,CAAC,aAAa,CAAC;YAC/B,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;SAClC,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO;YACL,cAAc,EAAE,2CAA2C;YAC3D,UAAU,EAAE,YAAY;YACxB,UAAU,EAAE,UAAU;YACtB,YAAY,EAAE;gBACZ,oDAAoD;gBACpD,4CAA4C;gBAC5C,wCAAwC;gBACxC,yCAAyC;gBACzC,+CAA+C;aAChD;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAEhE,MAAM,WAAW,GAAG,QAAQ,EAAE,YAAY,IAAI,GAAG,CAAC;QAClD,MAAM,eAAe,GAAG,WAAW,CAAC;QACpC,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE9E,OAAO;YACL,WAAW;YACX,eAAe;YACf,cAAc;YACd,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;CAEF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,IAAI,oBAAoB,GAAuB,IAAI,CAAC;AAEpD,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE,CAAC;QACzE,oBAAoB,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"sbtc.service.js","sourceRoot":"","sources":["../../src/services/sbtc.service.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,6 @@ export declare function recordTransaction(key: string, txid: string): void;
85
85
  * Check if account has sufficient balance to pay for x402 endpoint.
86
86
  * @throws InsufficientBalanceError if balance is too low
87
87
  */
88
- export declare function checkSufficientBalance(account: Account, amount: string, asset: string): Promise<void>;
88
+ export declare function checkSufficientBalance(account: Account, amount: string, asset: string, sponsored?: boolean): Promise<void>;
89
89
  export { NETWORK, API_URL };
90
90
  //# sourceMappingURL=x402.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"x402.service.d.ts","sourceRoot":"","sources":["../../src/services/x402.service.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAelD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEzF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAqE1D;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmJ9E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAEjE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAGxD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBnD;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,0BAA0B,CAAC;AAEvE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAQ7D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,GAAG,OAAO,CAAC,WAAW,CAAC,CA6EvB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAiEf;AAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"x402.service.d.ts","sourceRoot":"","sources":["../../src/services/x402.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import axios from "axios";
2
2
  import { makeSTXTokenTransfer, makeContractCall, uintCV, principalCV, noneCV, PostConditionMode, } from "@stacks/transactions";
3
- import { decodePaymentRequired, encodePaymentPayload, X402_HEADERS, } from "../utils/x402-protocol.js";
3
+ import { decodePaymentRequired, encodePaymentPayload, generatePaymentId, buildPaymentIdentifierExtension, X402_HEADERS, } from "../utils/x402-protocol.js";
4
4
  import { generateWallet, getStxAddress } from "@stacks/wallet-sdk";
5
5
  import { NETWORK, API_URL, getStacksNetwork } from "../config/networks.js";
6
6
  import { getNetworkFromStacksChainId } from "../config/caip.js";
@@ -168,12 +168,16 @@ export async function createApiClient(baseUrl) {
168
168
  });
169
169
  }
170
170
  const txHex = "0x" + transaction.serialize();
171
+ // Generate a stable idempotency key for this logical request.
172
+ // The relay uses it to deduplicate retries without requiring tx hex variation.
173
+ const paymentId = generatePaymentId();
171
174
  // Encode PaymentPayloadV2 into payment-signature header
172
175
  const encodedPayload = encodePaymentPayload({
173
176
  x402Version: 2,
174
177
  resource: paymentRequired.resource,
175
178
  accepted: selectedOption,
176
179
  payload: { transaction: txHex },
180
+ extensions: buildPaymentIdentifierExtension(paymentId),
177
181
  });
178
182
  // Retry the original request with the payment header
179
183
  const originalRequest = error.config;
@@ -226,9 +230,10 @@ export async function getAccount() {
226
230
  */
227
231
  export function detectTokenType(asset) {
228
232
  const assetLower = asset.trim().toLowerCase();
229
- // Treat as sBTC only if the asset is exactly "sbtc" (token name)
230
- // or a full contract identifier ending with "::token-sbtc"
231
- if (assetLower === 'sbtc' || assetLower.endsWith('::token-sbtc')) {
233
+ // Treat as sBTC if the asset is exactly "sbtc" (token name),
234
+ // a full contract identifier ending with "::token-sbtc",
235
+ // or a contract identifier ending with ".sbtc-token"
236
+ if (assetLower === 'sbtc' || assetLower.endsWith('::token-sbtc') || assetLower.endsWith('.sbtc-token')) {
232
237
  return 'sBTC';
233
238
  }
234
239
  return 'STX';
@@ -342,7 +347,7 @@ export function recordTransaction(key, txid) {
342
347
  * Check if account has sufficient balance to pay for x402 endpoint.
343
348
  * @throws InsufficientBalanceError if balance is too low
344
349
  */
345
- export async function checkSufficientBalance(account, amount, asset) {
350
+ export async function checkSufficientBalance(account, amount, asset, sponsored = false) {
346
351
  const tokenType = detectTokenType(asset);
347
352
  const requiredAmount = BigInt(amount);
348
353
  if (tokenType === 'sBTC') {
@@ -354,17 +359,20 @@ export async function checkSufficientBalance(account, amount, asset) {
354
359
  throw new InsufficientBalanceError(`Insufficient sBTC balance: need ${formatSbtc(amount)}, have ${formatSbtc(balanceInfo.balance)} (shortfall: ${formatSbtc(shortfall.toString())}). ` +
355
360
  `Deposit more sBTC via the bridge at https://bridge.stx.eco or use a different wallet.`, 'sBTC', balanceInfo.balance, amount, shortfall.toString());
356
361
  }
357
- // sBTC transfers are contract calls that also require STX for gas fees
358
- const hiroApiForSbtc = getHiroApi(account.network);
359
- const stxInfoForSbtc = await hiroApiForSbtc.getStxBalance(account.address);
360
- const stxBalanceForSbtc = BigInt(stxInfoForSbtc.balance);
361
- const sbtcFees = await hiroApiForSbtc.getMempoolFees();
362
- const estimatedSbtcFee = BigInt(sbtcFees.contract_call.high_priority);
363
- if (stxBalanceForSbtc < estimatedSbtcFee) {
364
- const stxShortfall = estimatedSbtcFee - stxBalanceForSbtc;
365
- throw new InsufficientBalanceError(`Insufficient STX balance to cover sBTC transfer fee: need ${formatStx(estimatedSbtcFee.toString())} estimated fee, ` +
366
- `have ${formatStx(stxInfoForSbtc.balance)} (shortfall: ${formatStx(stxShortfall.toString())}). ` +
367
- `Deposit more STX or use a different wallet.`, 'STX', stxInfoForSbtc.balance, estimatedSbtcFee.toString(), stxShortfall.toString());
362
+ // sBTC transfers are contract calls that also require STX for gas fees,
363
+ // unless the transaction is sponsored (relay pays gas; fee: 0n).
364
+ if (!sponsored) {
365
+ const hiroApiForSbtc = getHiroApi(account.network);
366
+ const stxInfoForSbtc = await hiroApiForSbtc.getStxBalance(account.address);
367
+ const stxBalanceForSbtc = BigInt(stxInfoForSbtc.balance);
368
+ const sbtcFees = await hiroApiForSbtc.getMempoolFees();
369
+ const estimatedSbtcFee = BigInt(sbtcFees.contract_call.high_priority);
370
+ if (stxBalanceForSbtc < estimatedSbtcFee) {
371
+ const stxShortfall = estimatedSbtcFee - stxBalanceForSbtc;
372
+ throw new InsufficientBalanceError(`Insufficient STX balance to cover sBTC transfer fee: need ${formatStx(estimatedSbtcFee.toString())} estimated fee, ` +
373
+ `have ${formatStx(stxInfoForSbtc.balance)} (shortfall: ${formatStx(stxShortfall.toString())}). ` +
374
+ `Deposit more STX or use a different wallet.`, 'STX', stxInfoForSbtc.balance, estimatedSbtcFee.toString(), stxShortfall.toString());
375
+ }
368
376
  }
369
377
  return;
370
378
  }
@@ -372,13 +380,16 @@ export async function checkSufficientBalance(account, amount, asset) {
372
380
  const hiroApi = getHiroApi(account.network);
373
381
  const balanceInfo = await hiroApi.getStxBalance(account.address);
374
382
  const balance = BigInt(balanceInfo.balance);
375
- const mempoolFees = await hiroApi.getMempoolFees();
376
- const estimatedFee = BigInt(mempoolFees.contract_call.high_priority);
377
- const totalRequired = requiredAmount + estimatedFee;
383
+ let totalRequired = requiredAmount;
384
+ if (!sponsored) {
385
+ const mempoolFees = await hiroApi.getMempoolFees();
386
+ const estimatedFee = BigInt(mempoolFees.contract_call.high_priority);
387
+ totalRequired = requiredAmount + estimatedFee;
388
+ }
378
389
  if (balance >= totalRequired)
379
390
  return;
380
391
  const shortfall = totalRequired - balance;
381
- throw new InsufficientBalanceError(`Insufficient STX balance: need ${formatStx(totalRequired.toString())} (${formatStx(amount)} payment + ${formatStx(estimatedFee.toString())} estimated fee), ` +
392
+ throw new InsufficientBalanceError(`Insufficient STX balance: need ${formatStx(totalRequired.toString())} (${formatStx(amount)} payment${!sponsored ? ` + estimated fee` : ''}), ` +
382
393
  `have ${formatStx(balanceInfo.balance)} (shortfall: ${formatStx(shortfall.toString())}). ` +
383
394
  `Deposit more STX or use a different wallet.`, 'STX', balanceInfo.balance, totalRequired.toString(), shortfall.toString());
384
395
  }
@@ -1 +1 @@
1
- {"version":3,"file":"x402.service.js","sourceRoot":"","sources":["../../src/services/x402.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"x402.service.js","sourceRoot":"","sources":["../../src/services/x402.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract.tools.d.ts","sourceRoot":"","sources":["../../src/tools/contract.tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqGpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwK7D"}
1
+ {"version":3,"file":"contract.tools.d.ts","sourceRoot":"","sources":["../../src/tools/contract.tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuGpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6L7D"}
@@ -2,10 +2,12 @@ import { z } from "zod";
2
2
  import { PostConditionMode } from "@stacks/transactions";
3
3
  import { getAccount, NETWORK } from "../services/x402.service.js";
4
4
  import { callContract, deployContract } from "../transactions/builder.js";
5
+ import { sponsoredContractCall, sponsoredContractDeploy } from "../transactions/sponsor-builder.js";
5
6
  import { parseArgToClarityValue } from "../transactions/clarity-values.js";
6
7
  import { getHiroApi, getTransactionStatus } from "../services/hiro-api.js";
7
8
  import { getExplorerTxUrl } from "../config/networks.js";
8
9
  import { createJsonResponse, createErrorResponse, resolveFee } from "../utils/index.js";
10
+ import { sponsoredSchema } from "./schemas.js";
9
11
  import { createStxPostCondition, createContractStxPostCondition, createFungiblePostCondition, createContractFungiblePostCondition, createNftSendPostCondition, createNftNotSendPostCondition, } from "../transactions/post-conditions.js";
10
12
  /**
11
13
  * Parse a post condition descriptor from JSON to a PostCondition object
@@ -110,26 +112,37 @@ Post conditions constrain what assets the transaction can move. Each condition i
110
112
  fee: z
111
113
  .string()
112
114
  .optional()
113
- .describe("Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. If omitted, auto-estimated."),
115
+ .describe("Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. If omitted, auto-estimated. Ignored when sponsored=true."),
116
+ sponsored: sponsoredSchema,
114
117
  },
115
- }, async ({ contractAddress, contractName, functionName, functionArgs, postConditionMode, postConditions, fee }) => {
118
+ }, async ({ contractAddress, contractName, functionName, functionArgs, postConditionMode, postConditions, fee, sponsored }) => {
116
119
  try {
117
120
  const account = await getAccount();
118
121
  const clarityArgs = functionArgs.map(parseArgToClarityValue);
119
- const resolvedFee = await resolveFee(fee, NETWORK, "contract_call");
120
122
  // Parse post conditions if provided
121
123
  const parsedPostConditions = postConditions
122
124
  ? postConditions.map(parsePostCondition)
123
125
  : undefined;
124
- const result = await callContract(account, {
126
+ const contractCallOptions = {
125
127
  contractAddress,
126
128
  contractName,
127
129
  functionName,
128
130
  functionArgs: clarityArgs,
129
131
  postConditionMode: postConditionMode === "allow" ? PostConditionMode.Allow : PostConditionMode.Deny,
130
132
  ...(parsedPostConditions && { postConditions: parsedPostConditions }),
131
- ...(resolvedFee !== undefined && { fee: resolvedFee }),
132
- });
133
+ };
134
+ let result;
135
+ if (sponsored) {
136
+ // Sponsored: relay pays gas fees, so fee parameter is ignored
137
+ result = await sponsoredContractCall(account, contractCallOptions, NETWORK);
138
+ }
139
+ else {
140
+ const resolvedFee = await resolveFee(fee, NETWORK, "contract_call");
141
+ result = await callContract(account, {
142
+ ...contractCallOptions,
143
+ ...(resolvedFee !== undefined && { fee: resolvedFee }),
144
+ });
145
+ }
133
146
  return createJsonResponse({
134
147
  success: true,
135
148
  txid: result.txid,
@@ -138,6 +151,7 @@ Post conditions constrain what assets the transaction can move. Each condition i
138
151
  args: functionArgs,
139
152
  network: NETWORK,
140
153
  explorerUrl: getExplorerTxUrl(result.txid, NETWORK),
154
+ ...(sponsored && { sponsored: true }),
141
155
  });
142
156
  }
143
157
  catch (error) {
@@ -153,23 +167,32 @@ Post conditions constrain what assets the transaction can move. Each condition i
153
167
  fee: z
154
168
  .string()
155
169
  .optional()
156
- .describe("Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. If omitted, auto-estimated."),
170
+ .describe("Optional fee: 'low' | 'medium' | 'high' preset or micro-STX amount. If omitted, auto-estimated. Ignored when sponsored=true."),
171
+ sponsored: sponsoredSchema,
157
172
  },
158
- }, async ({ contractName, codeBody, fee }) => {
173
+ }, async ({ contractName, codeBody, fee, sponsored }) => {
159
174
  try {
160
175
  const account = await getAccount();
161
- const resolvedFee = await resolveFee(fee, NETWORK, "smart_contract");
162
- const result = await deployContract(account, {
163
- contractName,
164
- codeBody,
165
- ...(resolvedFee !== undefined && { fee: resolvedFee }),
166
- });
176
+ let result;
177
+ if (sponsored) {
178
+ // Sponsored: relay pays gas fees, so fee parameter is ignored
179
+ result = await sponsoredContractDeploy(account, { contractName, codeBody }, NETWORK);
180
+ }
181
+ else {
182
+ const resolvedFee = await resolveFee(fee, NETWORK, "smart_contract");
183
+ result = await deployContract(account, {
184
+ contractName,
185
+ codeBody,
186
+ ...(resolvedFee !== undefined && { fee: resolvedFee }),
187
+ });
188
+ }
167
189
  return createJsonResponse({
168
190
  success: true,
169
191
  txid: result.txid,
170
192
  contractId: `${account.address}.${contractName}`,
171
193
  network: NETWORK,
172
194
  explorerUrl: getExplorerTxUrl(result.txid, NETWORK),
195
+ ...(sponsored && { sponsored: true }),
173
196
  });
174
197
  }
175
198
  catch (error) {