@aibtc/mcp-server 1.9.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/config/bitcoin-constants.d.ts +32 -0
  2. package/dist/config/bitcoin-constants.d.ts.map +1 -0
  3. package/dist/config/bitcoin-constants.js +32 -0
  4. package/dist/config/bitcoin-constants.js.map +1 -0
  5. package/dist/config/contracts.d.ts +12 -3
  6. package/dist/config/contracts.d.ts.map +1 -1
  7. package/dist/config/contracts.js +7 -1
  8. package/dist/config/contracts.js.map +1 -1
  9. package/dist/services/bitflow.service.d.ts +2 -1
  10. package/dist/services/bitflow.service.d.ts.map +1 -1
  11. package/dist/services/bitflow.service.js +3 -1
  12. package/dist/services/bitflow.service.js.map +1 -1
  13. package/dist/services/bns.service.d.ts +21 -5
  14. package/dist/services/bns.service.d.ts.map +1 -1
  15. package/dist/services/bns.service.js +145 -51
  16. package/dist/services/bns.service.js.map +1 -1
  17. package/dist/services/defi.service.d.ts +16 -6
  18. package/dist/services/defi.service.d.ts.map +1 -1
  19. package/dist/services/defi.service.js +99 -27
  20. package/dist/services/defi.service.js.map +1 -1
  21. package/dist/services/hiro-api.d.ts +26 -0
  22. package/dist/services/hiro-api.d.ts.map +1 -1
  23. package/dist/services/hiro-api.js +8 -0
  24. package/dist/services/hiro-api.js.map +1 -1
  25. package/dist/services/inscription-parser.d.ts +122 -0
  26. package/dist/services/inscription-parser.d.ts.map +1 -0
  27. package/dist/services/inscription-parser.js +163 -0
  28. package/dist/services/inscription-parser.js.map +1 -0
  29. package/dist/services/nft.service.d.ts +2 -1
  30. package/dist/services/nft.service.d.ts.map +1 -1
  31. package/dist/services/nft.service.js +3 -1
  32. package/dist/services/nft.service.js.map +1 -1
  33. package/dist/services/ordinal-indexer.d.ts +128 -0
  34. package/dist/services/ordinal-indexer.d.ts.map +1 -0
  35. package/dist/services/ordinal-indexer.js +128 -0
  36. package/dist/services/ordinal-indexer.js.map +1 -0
  37. package/dist/services/sbtc.service.d.ts +2 -1
  38. package/dist/services/sbtc.service.d.ts.map +1 -1
  39. package/dist/services/sbtc.service.js +3 -1
  40. package/dist/services/sbtc.service.js.map +1 -1
  41. package/dist/services/tokens.service.d.ts +2 -1
  42. package/dist/services/tokens.service.d.ts.map +1 -1
  43. package/dist/services/tokens.service.js +3 -1
  44. package/dist/services/tokens.service.js.map +1 -1
  45. package/dist/services/wallet-manager.d.ts +5 -0
  46. package/dist/services/wallet-manager.d.ts.map +1 -1
  47. package/dist/services/wallet-manager.js +23 -9
  48. package/dist/services/wallet-manager.js.map +1 -1
  49. package/dist/tools/bitcoin.tools.d.ts.map +1 -1
  50. package/dist/tools/bitcoin.tools.js +214 -34
  51. package/dist/tools/bitcoin.tools.js.map +1 -1
  52. package/dist/tools/bitflow.tools.d.ts.map +1 -1
  53. package/dist/tools/bitflow.tools.js +8 -3
  54. package/dist/tools/bitflow.tools.js.map +1 -1
  55. package/dist/tools/bns.tools.d.ts.map +1 -1
  56. package/dist/tools/bns.tools.js +87 -7
  57. package/dist/tools/bns.tools.js.map +1 -1
  58. package/dist/tools/contract.tools.d.ts.map +1 -1
  59. package/dist/tools/contract.tools.js +19 -4
  60. package/dist/tools/contract.tools.js.map +1 -1
  61. package/dist/tools/defi.tools.d.ts.map +1 -1
  62. package/dist/tools/defi.tools.js +43 -0
  63. package/dist/tools/defi.tools.js.map +1 -1
  64. package/dist/tools/index.d.ts.map +1 -1
  65. package/dist/tools/index.js +4 -0
  66. package/dist/tools/index.js.map +1 -1
  67. package/dist/tools/nft.tools.d.ts.map +1 -1
  68. package/dist/tools/nft.tools.js +8 -3
  69. package/dist/tools/nft.tools.js.map +1 -1
  70. package/dist/tools/ordinals.tools.d.ts +15 -0
  71. package/dist/tools/ordinals.tools.d.ts.map +1 -0
  72. package/dist/tools/ordinals.tools.js +401 -0
  73. package/dist/tools/ordinals.tools.js.map +1 -0
  74. package/dist/tools/query.tools.d.ts.map +1 -1
  75. package/dist/tools/query.tools.js +71 -0
  76. package/dist/tools/query.tools.js.map +1 -1
  77. package/dist/tools/sbtc.tools.d.ts.map +1 -1
  78. package/dist/tools/sbtc.tools.js +8 -3
  79. package/dist/tools/sbtc.tools.js.map +1 -1
  80. package/dist/tools/signing.tools.d.ts +25 -0
  81. package/dist/tools/signing.tools.d.ts.map +1 -0
  82. package/dist/tools/signing.tools.js +776 -0
  83. package/dist/tools/signing.tools.js.map +1 -0
  84. package/dist/tools/tokens.tools.d.ts.map +1 -1
  85. package/dist/tools/tokens.tools.js +8 -3
  86. package/dist/tools/tokens.tools.js.map +1 -1
  87. package/dist/tools/transfer.tools.d.ts.map +1 -1
  88. package/dist/tools/transfer.tools.js +8 -3
  89. package/dist/tools/transfer.tools.js.map +1 -1
  90. package/dist/tools/wallet-management.tools.d.ts.map +1 -1
  91. package/dist/tools/wallet-management.tools.js +34 -39
  92. package/dist/tools/wallet-management.tools.js.map +1 -1
  93. package/dist/tools/wallet.tools.d.ts.map +1 -1
  94. package/dist/tools/wallet.tools.js +25 -16
  95. package/dist/tools/wallet.tools.js.map +1 -1
  96. package/dist/tools/yield-hunter.tools.d.ts.map +1 -1
  97. package/dist/tools/yield-hunter.tools.js +53 -48
  98. package/dist/tools/yield-hunter.tools.js.map +1 -1
  99. package/dist/transactions/bitcoin-builder.d.ts.map +1 -1
  100. package/dist/transactions/bitcoin-builder.js +1 -16
  101. package/dist/transactions/bitcoin-builder.js.map +1 -1
  102. package/dist/transactions/builder.d.ts +7 -2
  103. package/dist/transactions/builder.d.ts.map +1 -1
  104. package/dist/transactions/builder.js +8 -2
  105. package/dist/transactions/builder.js.map +1 -1
  106. package/dist/transactions/inscription-builder.d.ts +183 -0
  107. package/dist/transactions/inscription-builder.d.ts.map +1 -0
  108. package/dist/transactions/inscription-builder.js +230 -0
  109. package/dist/transactions/inscription-builder.js.map +1 -0
  110. package/dist/utils/bitcoin.d.ts +38 -0
  111. package/dist/utils/bitcoin.d.ts.map +1 -1
  112. package/dist/utils/bitcoin.js +59 -0
  113. package/dist/utils/bitcoin.js.map +1 -1
  114. package/dist/utils/fee.d.ts +41 -0
  115. package/dist/utils/fee.d.ts.map +1 -0
  116. package/dist/utils/fee.js +69 -0
  117. package/dist/utils/fee.js.map +1 -0
  118. package/dist/utils/index.d.ts +2 -0
  119. package/dist/utils/index.d.ts.map +1 -1
  120. package/dist/utils/index.js +2 -0
  121. package/dist/utils/index.js.map +1 -1
  122. package/dist/utils/storage.d.ts +4 -7
  123. package/dist/utils/storage.d.ts.map +1 -1
  124. package/dist/utils/storage.js +0 -30
  125. package/dist/utils/storage.js.map +1 -1
  126. package/dist/utils/tokens.d.ts +13 -0
  127. package/dist/utils/tokens.d.ts.map +1 -0
  128. package/dist/utils/tokens.js +24 -0
  129. package/dist/utils/tokens.js.map +1 -0
  130. package/dist/yield-hunter/index.d.ts.map +1 -1
  131. package/dist/yield-hunter/index.js +10 -15
  132. package/dist/yield-hunter/index.js.map +1 -1
  133. package/package.json +2 -1
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Bitcoin transaction size constants (virtual bytes)
3
+ *
4
+ * Based on Bitcoin Core and @scure/btc-signer calculations.
5
+ * Used for fee estimation across P2WPKH and P2TR transactions.
6
+ */
7
+ /**
8
+ * P2WPKH input size: ~68 vB (includes witness data at 1/4 weight)
9
+ */
10
+ export declare const P2WPKH_INPUT_VBYTES = 68;
11
+ /**
12
+ * P2WPKH output size: ~31 vB
13
+ */
14
+ export declare const P2WPKH_OUTPUT_VBYTES = 31;
15
+ /**
16
+ * P2TR (Taproot) output size: ~43 vB
17
+ */
18
+ export declare const P2TR_OUTPUT_VBYTES = 43;
19
+ /**
20
+ * Base transaction overhead: ~10.5 vB (version, locktime, witness marker/flag)
21
+ */
22
+ export declare const TX_OVERHEAD_VBYTES = 10.5;
23
+ /**
24
+ * Minimum output value (dust threshold)
25
+ * Below this value, outputs are non-standard and won't be relayed
26
+ */
27
+ export declare const DUST_THRESHOLD = 546;
28
+ /**
29
+ * Taproot input base size (vbytes) - without witness data
30
+ */
31
+ export declare const P2TR_INPUT_BASE_VBYTES = 57.5;
32
+ //# sourceMappingURL=bitcoin-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitcoin-constants.d.ts","sourceRoot":"","sources":["../../src/config/bitcoin-constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Bitcoin transaction size constants (virtual bytes)
3
+ *
4
+ * Based on Bitcoin Core and @scure/btc-signer calculations.
5
+ * Used for fee estimation across P2WPKH and P2TR transactions.
6
+ */
7
+ /**
8
+ * P2WPKH input size: ~68 vB (includes witness data at 1/4 weight)
9
+ */
10
+ export const P2WPKH_INPUT_VBYTES = 68;
11
+ /**
12
+ * P2WPKH output size: ~31 vB
13
+ */
14
+ export const P2WPKH_OUTPUT_VBYTES = 31;
15
+ /**
16
+ * P2TR (Taproot) output size: ~43 vB
17
+ */
18
+ export const P2TR_OUTPUT_VBYTES = 43;
19
+ /**
20
+ * Base transaction overhead: ~10.5 vB (version, locktime, witness marker/flag)
21
+ */
22
+ export const TX_OVERHEAD_VBYTES = 10.5;
23
+ /**
24
+ * Minimum output value (dust threshold)
25
+ * Below this value, outputs are non-standard and won't be relayed
26
+ */
27
+ export const DUST_THRESHOLD = 546;
28
+ /**
29
+ * Taproot input base size (vbytes) - without witness data
30
+ */
31
+ export const P2TR_INPUT_BASE_VBYTES = 57.5;
32
+ //# sourceMappingURL=bitcoin-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitcoin-constants.js","sourceRoot":"","sources":["../../src/config/bitcoin-constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC"}
@@ -13,8 +13,11 @@ export declare const MAINNET_CONTRACTS: {
13
13
  readonly ALEX_TOKEN: "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex";
14
14
  readonly ALEX_WSTX: "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2";
15
15
  readonly ZEST_POOL_BORROW: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-borrow-v2-3";
16
- readonly ZEST_POOL_RESERVE: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-0-reserve";
16
+ readonly ZEST_BORROW_HELPER: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.borrow-helper-v2-1-5";
17
+ readonly ZEST_POOL_RESERVE: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-0-reserve-v2-0";
17
18
  readonly ZEST_FEES_CALCULATOR: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.fees-calculator";
19
+ readonly ZEST_INCENTIVES: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.incentives-v2-2";
20
+ readonly ZEST_WSTX: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.wstx";
18
21
  };
19
22
  /**
20
23
  * Zest Protocol asset configuration
@@ -59,8 +62,11 @@ export declare function getContracts(network: Network): {
59
62
  readonly ALEX_TOKEN: "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex";
60
63
  readonly ALEX_WSTX: "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2";
61
64
  readonly ZEST_POOL_BORROW: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-borrow-v2-3";
62
- readonly ZEST_POOL_RESERVE: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-0-reserve";
65
+ readonly ZEST_BORROW_HELPER: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.borrow-helper-v2-1-5";
66
+ readonly ZEST_POOL_RESERVE: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-0-reserve-v2-0";
63
67
  readonly ZEST_FEES_CALCULATOR: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.fees-calculator";
68
+ readonly ZEST_INCENTIVES: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.incentives-v2-2";
69
+ readonly ZEST_WSTX: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.wstx";
64
70
  } | {
65
71
  readonly SBTC_TOKEN: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-token";
66
72
  readonly SBTC_DEPOSIT: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-deposit";
@@ -106,8 +112,11 @@ export declare function getAlexContracts(network: Network): {
106
112
  */
107
113
  export declare function getZestContracts(network: Network): {
108
114
  poolBorrow: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-borrow-v2-3";
109
- poolReserve: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-0-reserve";
115
+ borrowHelper: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.borrow-helper-v2-1-5";
116
+ poolReserve: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-0-reserve-v2-0";
110
117
  feesCalculator: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.fees-calculator";
118
+ incentives: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.incentives-v2-2";
119
+ wstx: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.wstx";
111
120
  } | null;
112
121
  export declare function getWellKnownTokens(network: Network): {
113
122
  readonly STX: "native";
@@ -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;;;;;;;;;;;;;CAwBpB,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;;;;;;;CAcpB,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;;;;SAUhD;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;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAiBvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO;;;;;;EAEnD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,4DAA4D,CAAC"}
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;;;;;;;;;;;;;;;;CA2BpB,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;;;;;;;CAcpB,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;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAiBvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO;;;;;;EAEnD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,4DAA4D,CAAC"}
@@ -18,8 +18,11 @@ export const MAINNET_CONTRACTS = {
18
18
  ALEX_WSTX: "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2",
19
19
  // Zest Protocol
20
20
  ZEST_POOL_BORROW: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-borrow-v2-3",
21
- ZEST_POOL_RESERVE: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-0-reserve",
21
+ ZEST_BORROW_HELPER: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.borrow-helper-v2-1-5",
22
+ ZEST_POOL_RESERVE: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-0-reserve-v2-0",
22
23
  ZEST_FEES_CALCULATOR: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.fees-calculator",
24
+ ZEST_INCENTIVES: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.incentives-v2-2",
25
+ ZEST_WSTX: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.wstx",
23
26
  };
24
27
  export const ZEST_ASSETS = {
25
28
  sBTC: {
@@ -188,8 +191,11 @@ export function getZestContracts(network) {
188
191
  if (network === "mainnet") {
189
192
  return {
190
193
  poolBorrow: MAINNET_CONTRACTS.ZEST_POOL_BORROW,
194
+ borrowHelper: MAINNET_CONTRACTS.ZEST_BORROW_HELPER,
191
195
  poolReserve: MAINNET_CONTRACTS.ZEST_POOL_RESERVE,
192
196
  feesCalculator: MAINNET_CONTRACTS.ZEST_FEES_CALCULATOR,
197
+ incentives: MAINNET_CONTRACTS.ZEST_INCENTIVES,
198
+ wstx: MAINNET_CONTRACTS.ZEST_WSTX,
193
199
  };
194
200
  }
195
201
  // Zest is mainnet-only currently
@@ -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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"}
@@ -95,8 +95,9 @@ export declare class BitflowService {
95
95
  getSwapQuote(tokenXId: string, tokenYId: string, amount: number): Promise<BitflowSwapQuote>;
96
96
  /**
97
97
  * Execute a swap
98
+ * @param fee Optional fee in micro-STX. If omitted, fee is auto-estimated.
98
99
  */
99
- swap(account: Account, tokenXId: string, tokenYId: string, amountIn: number, slippageTolerance?: number): Promise<TransferResult>;
100
+ swap(account: Account, tokenXId: string, tokenYId: string, amountIn: number, slippageTolerance?: number, fee?: bigint): Promise<TransferResult>;
100
101
  /**
101
102
  * Check if Keeper features are available
102
103
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bitflow.service.d.ts","sourceRoot":"","sources":["../../src/services/bitflow.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitflow.service.d.ts","sourceRoot":"","sources":["../../src/services/bitflow.service.ts"],"names":[],"mappings":"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"}
@@ -162,8 +162,9 @@ export class BitflowService {
162
162
  }
163
163
  /**
164
164
  * Execute a swap
165
+ * @param fee Optional fee in micro-STX. If omitted, fee is auto-estimated.
165
166
  */
166
- async swap(account, tokenXId, tokenYId, amountIn, slippageTolerance = 0.01) {
167
+ async swap(account, tokenXId, tokenYId, amountIn, slippageTolerance = 0.01, fee) {
167
168
  this.ensureMainnet();
168
169
  const sdk = this.ensureSdk();
169
170
  // Get quote first to build swap execution data
@@ -191,6 +192,7 @@ export class BitflowService {
191
192
  senderKey: account.privateKey,
192
193
  network,
193
194
  postConditionMode: PostConditionMode.Deny,
195
+ ...(fee !== undefined && { fee }),
194
196
  });
195
197
  const broadcastResult = await broadcastTransaction({
196
198
  transaction,
@@ -1 +1 @@
1
- {"version":3,"file":"bitflow.service.js","sourceRoot":"","sources":["../../src/services/bitflow.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitflow.service.js","sourceRoot":"","sources":["../../src/services/bitflow.service.ts"],"names":[],"mappings":"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"}
@@ -51,8 +51,9 @@ export declare class BnsService {
51
51
  checkAvailability(name: string): Promise<boolean>;
52
52
  /**
53
53
  * Get the price of a BNS name
54
+ * Uses appropriate contract based on namespace (V2 for .btc, V1 for others)
54
55
  */
55
- getPrice(name: string): Promise<BnsPrice | null>;
56
+ getPrice(name: string): Promise<BnsPrice>;
56
57
  /**
57
58
  * Get all domains owned by an address
58
59
  */
@@ -62,14 +63,29 @@ export declare class BnsService {
62
63
  */
63
64
  resolve(name: string): Promise<string | null>;
64
65
  /**
65
- * Register a new BNS name
66
- * Note: BNS registration is a multi-step process involving preorder and register
66
+ * Get BNS contract based on namespace
67
+ * - V2 for .btc namespace (active registry)
68
+ * - V1 for other namespaces (legacy)
69
+ */
70
+ private getBnsContract;
71
+ /**
72
+ * Create hash160 (RIPEMD160(SHA256(data))) - 20 bytes
73
+ */
74
+ private hash160;
75
+ /**
76
+ * Preorder a BNS name (Step 1 of 2)
77
+ * Creates a commitment with hashed name+salt to prevent front-running
78
+ * Auto-detects V1/V2 based on namespace (.btc uses V2, others use V1)
67
79
  */
68
80
  preorderName(account: Account, name: string, salt: string): Promise<TransferResult>;
69
81
  /**
70
- * Register a name after preorder
82
+ * Register a BNS name (Step 2 of 2)
83
+ * Must be called after preorder is confirmed on-chain
84
+ * Auto-detects V1/V2 based on namespace (.btc uses V2, others use V1)
85
+ *
86
+ * @param zonefileHash - Required for V1, ignored for V2. 20-byte hash of zonefile content.
71
87
  */
72
- registerName(account: Account, name: string, salt: string, zonefile?: string): Promise<TransferResult>;
88
+ registerName(account: Account, name: string, salt: string, zonefileHash?: string): Promise<TransferResult>;
73
89
  /**
74
90
  * Update a name's zonefile
75
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bns.service.d.ts","sourceRoot":"","sources":["../../src/services/bns.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;AAM7F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,qBAAa,UAAU;IAKT,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAkC;gBAE/B,OAAO,EAAE,OAAO;IAMpC;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAqC/D;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA+BvD;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA2C5D;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BvD;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAoBtD;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIxD;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKnD;;;OAGG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC;IAyB1B;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;IAqB1B;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;IAoB1B;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;IAqB1B;;OAEG;IACG,SAAS,CACb,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC;CAmB3B;AAQD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAK1D"}
1
+ {"version":3,"file":"bns.service.d.ts","sourceRoot":"","sources":["../../src/services/bns.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;AAM7F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAgBD,qBAAa,UAAU;IAKT,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAkC;gBAE/B,OAAO,EAAE,OAAO;IAMpC;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAuC/D;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BvD;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA4C5D;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BvD;;;OAGG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAwC/C;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIxD;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKnD;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;YACW,OAAO;IAOrB;;;;OAIG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC;IAmC1B;;;;;;OAMG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC;IA2C1B;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;IAoB1B;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;IAqB1B;;OAEG;IACG,SAAS,CACb,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC;CAmB3B;AAQD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAK1D"}
@@ -1,10 +1,19 @@
1
- import { bufferCV, uintCV } from "@stacks/transactions";
1
+ import { bufferCV, uintCV, hexToCV, cvToJSON } from "@stacks/transactions";
2
2
  import { getHiroApi, getBnsV2Api } from "./hiro-api.js";
3
3
  import { getContracts, parseContractId } from "../config/index.js";
4
4
  import { callContract } from "../transactions/builder.js";
5
5
  // ============================================================================
6
6
  // BNS Service
7
7
  // ============================================================================
8
+ /**
9
+ * Check if an error is a "not found" error (404)
10
+ */
11
+ function isNotFoundError(error) {
12
+ if (error instanceof Error) {
13
+ return error.message.includes("(404)") || error.message.includes("not found");
14
+ }
15
+ return false;
16
+ }
8
17
  export class BnsService {
9
18
  network;
10
19
  hiro;
@@ -37,7 +46,9 @@ export class BnsService {
37
46
  }
38
47
  return null;
39
48
  }
40
- catch {
49
+ catch (error) {
50
+ if (!isNotFoundError(error))
51
+ throw error;
41
52
  // Name not found in BNS V2, try Hiro API as fallback (for legacy BNS V1 names)
42
53
  }
43
54
  }
@@ -52,7 +63,9 @@ export class BnsService {
52
63
  zonefile: info.zonefile,
53
64
  };
54
65
  }
55
- catch {
66
+ catch (error) {
67
+ if (!isNotFoundError(error))
68
+ throw error;
56
69
  return null;
57
70
  }
58
71
  }
@@ -69,14 +82,14 @@ export class BnsService {
69
82
  allNames.push(...v2Result.names.map(n => n.full_name));
70
83
  }
71
84
  }
72
- catch {
73
- // BNS V2 lookup failed, continue with Hiro API
85
+ catch (error) {
86
+ if (!isNotFoundError(error))
87
+ throw error;
74
88
  }
75
89
  // Get names from Hiro API (BNS V1)
76
90
  try {
77
91
  const v1Result = await this.hiro.getBnsNamesOwnedByAddress(address);
78
92
  if (v1Result.names) {
79
- // Add only names not already in the list
80
93
  for (const name of v1Result.names) {
81
94
  if (!allNames.includes(name)) {
82
95
  allNames.push(name);
@@ -84,8 +97,9 @@ export class BnsService {
84
97
  }
85
98
  }
86
99
  }
87
- catch {
88
- // Hiro API lookup failed
100
+ catch (error) {
101
+ if (!isNotFoundError(error))
102
+ throw error;
89
103
  }
90
104
  return allNames;
91
105
  }
@@ -106,14 +120,15 @@ export class BnsService {
106
120
  namespace: info.data.namespace_string || "btc",
107
121
  address: info.data.owner,
108
122
  expireBlock: parseInt(info.data.renewal_height, 10),
109
- gracePeriod: 0, // BNS V2 doesn't have grace period in the same way
123
+ gracePeriod: 0,
110
124
  status: info.status,
111
- lastTxId: "", // Not available in V2 response
125
+ lastTxId: "",
112
126
  };
113
127
  }
114
128
  }
115
- catch {
116
- // Name not found in BNS V2, try Hiro API
129
+ catch (error) {
130
+ if (!isNotFoundError(error))
131
+ throw error;
117
132
  }
118
133
  }
119
134
  // Fallback to Hiro API
@@ -131,7 +146,9 @@ export class BnsService {
131
146
  lastTxId: info.last_txid,
132
147
  };
133
148
  }
134
- catch {
149
+ catch (error) {
150
+ if (!isNotFoundError(error))
151
+ throw error;
135
152
  return null;
136
153
  }
137
154
  }
@@ -148,8 +165,9 @@ export class BnsService {
148
165
  return false; // Name is taken
149
166
  }
150
167
  }
151
- catch {
152
- // Error checking BNS V2, continue to check V1
168
+ catch (error) {
169
+ if (!isNotFoundError(error))
170
+ throw error;
153
171
  }
154
172
  // Also check Hiro API (BNS V1) for legacy names
155
173
  try {
@@ -158,30 +176,43 @@ export class BnsService {
158
176
  return false; // Name is taken in V1
159
177
  }
160
178
  }
161
- catch {
162
- // Name not found in V1 either - it's available
179
+ catch (error) {
180
+ if (!isNotFoundError(error))
181
+ throw error;
163
182
  }
164
183
  return true;
165
184
  }
166
185
  /**
167
186
  * Get the price of a BNS name
187
+ * Uses appropriate contract based on namespace (V2 for .btc, V1 for others)
168
188
  */
169
189
  async getPrice(name) {
170
- try {
171
- const fullName = name.endsWith(".btc") ? name : `${name}.btc`;
172
- const [baseName] = fullName.split(".");
173
- const price = await this.hiro.getBnsNamePrice(baseName);
174
- const amountMicroStx = price.amount;
175
- const amountStx = (BigInt(amountMicroStx) / BigInt(1_000_000)).toString();
176
- return {
177
- units: price.units,
178
- amount: amountMicroStx,
179
- amountStx,
180
- };
190
+ const fullName = name.includes(".") ? name : `${name}.btc`;
191
+ const [baseName, namespace] = fullName.split(".");
192
+ // Get the appropriate contract for this namespace
193
+ const { address, name: contractName } = this.getBnsContract(namespace);
194
+ const contractId = `${address}.${contractName}`;
195
+ const result = await this.hiro.callReadOnlyFunction(contractId, "get-name-price", [
196
+ bufferCV(Buffer.from(namespace)),
197
+ bufferCV(Buffer.from(baseName)),
198
+ ], address);
199
+ if (!result.okay || !result.result) {
200
+ throw new Error(`Failed to get price for ${fullName}: ${result.cause || "unknown error"}`);
181
201
  }
182
- catch {
183
- return null;
202
+ // Parse the Clarity response
203
+ const decoded = cvToJSON(hexToCV(result.result));
204
+ // Handle nested response structure: V2 returns (ok (ok u<price>)), V1 returns (ok u<price>)
205
+ const priceValue = decoded?.value?.value?.value ?? decoded?.value?.value ?? decoded?.value ?? decoded;
206
+ if (priceValue === undefined || priceValue === null) {
207
+ throw new Error(`Failed to parse price response for ${fullName}`);
184
208
  }
209
+ const amountMicroStx = String(priceValue);
210
+ const amountStx = (BigInt(amountMicroStx) / BigInt(1_000_000)).toString();
211
+ return {
212
+ units: "ustx",
213
+ amount: amountMicroStx,
214
+ amountStx,
215
+ };
185
216
  }
186
217
  /**
187
218
  * Get all domains owned by an address
@@ -197,21 +228,59 @@ export class BnsService {
197
228
  return result?.address || null;
198
229
  }
199
230
  /**
200
- * Register a new BNS name
201
- * Note: BNS registration is a multi-step process involving preorder and register
231
+ * Get BNS contract based on namespace
232
+ * - V2 for .btc namespace (active registry)
233
+ * - V1 for other namespaces (legacy)
234
+ */
235
+ getBnsContract(namespace) {
236
+ if (namespace === "btc") {
237
+ // BNS V2 for .btc names
238
+ return {
239
+ address: "SP2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D96YPGZF",
240
+ name: "BNS-V2",
241
+ version: 2,
242
+ };
243
+ }
244
+ else {
245
+ // BNS V1 for other namespaces
246
+ const { address, name } = parseContractId(this.contracts.BNS);
247
+ return { address, name, version: 1 };
248
+ }
249
+ }
250
+ /**
251
+ * Create hash160 (RIPEMD160(SHA256(data))) - 20 bytes
252
+ */
253
+ async hash160(data) {
254
+ const crypto = await import("crypto");
255
+ const sha256 = crypto.createHash("sha256").update(data).digest();
256
+ const ripemd160 = crypto.createHash("ripemd160").update(sha256).digest();
257
+ return ripemd160;
258
+ }
259
+ /**
260
+ * Preorder a BNS name (Step 1 of 2)
261
+ * Creates a commitment with hashed name+salt to prevent front-running
262
+ * Auto-detects V1/V2 based on namespace (.btc uses V2, others use V1)
202
263
  */
203
264
  async preorderName(account, name, salt) {
204
- const { address: contractAddress, name: contractName } = parseContractId(this.contracts.BNS);
205
- const fullName = name.endsWith(".btc") ? name : `${name}.btc`;
265
+ const fullName = name.includes(".") ? name : `${name}.btc`;
206
266
  const [baseName, namespace] = fullName.split(".");
207
- // Create the hashed salted name for preorder
208
- const crypto = await import("crypto");
209
- const hash = crypto.createHash("sha256")
210
- .update(Buffer.from(fullName + salt))
211
- .digest();
267
+ const { address: contractAddress, name: contractName, version } = this.getBnsContract(namespace);
268
+ // Get the price to burn
269
+ const price = await this.getPrice(fullName);
270
+ if (!price) {
271
+ throw new Error("Could not determine name price");
272
+ }
273
+ const stxToBurn = BigInt(price.amount);
274
+ // Create hash160 of (fully-qualified-name + salt)
275
+ // Salt must be 20 bytes max, pad or truncate
276
+ const saltBuffer = Buffer.alloc(20);
277
+ const saltBytes = Buffer.from(salt, "hex");
278
+ saltBytes.copy(saltBuffer, 0, 0, Math.min(20, saltBytes.length));
279
+ const fqnWithSalt = Buffer.concat([Buffer.from(fullName), saltBuffer]);
280
+ const hashedSaltedFqn = await this.hash160(fqnWithSalt);
212
281
  const functionArgs = [
213
- bufferCV(hash),
214
- uintCV(0), // STX to burn (registration fee)
282
+ bufferCV(hashedSaltedFqn),
283
+ uintCV(stxToBurn),
215
284
  ];
216
285
  return callContract(account, {
217
286
  contractAddress,
@@ -221,18 +290,43 @@ export class BnsService {
221
290
  });
222
291
  }
223
292
  /**
224
- * Register a name after preorder
293
+ * Register a BNS name (Step 2 of 2)
294
+ * Must be called after preorder is confirmed on-chain
295
+ * Auto-detects V1/V2 based on namespace (.btc uses V2, others use V1)
296
+ *
297
+ * @param zonefileHash - Required for V1, ignored for V2. 20-byte hash of zonefile content.
225
298
  */
226
- async registerName(account, name, salt, zonefile) {
227
- const { address: contractAddress, name: contractName } = parseContractId(this.contracts.BNS);
228
- const fullName = name.endsWith(".btc") ? name : `${name}.btc`;
299
+ async registerName(account, name, salt, zonefileHash) {
300
+ const fullName = name.includes(".") ? name : `${name}.btc`;
229
301
  const [baseName, namespace] = fullName.split(".");
230
- const functionArgs = [
231
- bufferCV(Buffer.from(namespace)),
232
- bufferCV(Buffer.from(baseName)),
233
- bufferCV(Buffer.from(salt)),
234
- zonefile ? bufferCV(Buffer.from(zonefile)) : bufferCV(Buffer.alloc(0)),
235
- ];
302
+ const { address: contractAddress, name: contractName, version } = this.getBnsContract(namespace);
303
+ // Salt must be 20 bytes, pad or truncate
304
+ const saltBuffer = Buffer.alloc(20);
305
+ const saltBytes = Buffer.from(salt, "hex");
306
+ saltBytes.copy(saltBuffer, 0, 0, Math.min(20, saltBytes.length));
307
+ let functionArgs;
308
+ if (version === 2) {
309
+ // V2: (namespace, name, salt)
310
+ functionArgs = [
311
+ bufferCV(Buffer.from(namespace)),
312
+ bufferCV(Buffer.from(baseName)),
313
+ bufferCV(saltBuffer),
314
+ ];
315
+ }
316
+ else {
317
+ // V1: (namespace, name, salt, zonefile-hash)
318
+ const zonefileHashBuffer = Buffer.alloc(20);
319
+ if (zonefileHash) {
320
+ const hashBytes = Buffer.from(zonefileHash, "hex");
321
+ hashBytes.copy(zonefileHashBuffer, 0, 0, Math.min(20, hashBytes.length));
322
+ }
323
+ functionArgs = [
324
+ bufferCV(Buffer.from(namespace)),
325
+ bufferCV(Buffer.from(baseName)),
326
+ bufferCV(saltBuffer),
327
+ bufferCV(zonefileHashBuffer),
328
+ ];
329
+ }
236
330
  return callContract(account, {
237
331
  contractAddress,
238
332
  contractName,