@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.
- package/dist/config/bitcoin-constants.d.ts +32 -0
- package/dist/config/bitcoin-constants.d.ts.map +1 -0
- package/dist/config/bitcoin-constants.js +32 -0
- package/dist/config/bitcoin-constants.js.map +1 -0
- package/dist/config/contracts.d.ts +12 -3
- package/dist/config/contracts.d.ts.map +1 -1
- package/dist/config/contracts.js +7 -1
- package/dist/config/contracts.js.map +1 -1
- package/dist/services/bitflow.service.d.ts +2 -1
- package/dist/services/bitflow.service.d.ts.map +1 -1
- package/dist/services/bitflow.service.js +3 -1
- package/dist/services/bitflow.service.js.map +1 -1
- package/dist/services/bns.service.d.ts +21 -5
- package/dist/services/bns.service.d.ts.map +1 -1
- package/dist/services/bns.service.js +145 -51
- package/dist/services/bns.service.js.map +1 -1
- package/dist/services/defi.service.d.ts +16 -6
- package/dist/services/defi.service.d.ts.map +1 -1
- package/dist/services/defi.service.js +99 -27
- package/dist/services/defi.service.js.map +1 -1
- package/dist/services/hiro-api.d.ts +26 -0
- package/dist/services/hiro-api.d.ts.map +1 -1
- package/dist/services/hiro-api.js +8 -0
- package/dist/services/hiro-api.js.map +1 -1
- package/dist/services/inscription-parser.d.ts +122 -0
- package/dist/services/inscription-parser.d.ts.map +1 -0
- package/dist/services/inscription-parser.js +163 -0
- package/dist/services/inscription-parser.js.map +1 -0
- package/dist/services/nft.service.d.ts +2 -1
- package/dist/services/nft.service.d.ts.map +1 -1
- package/dist/services/nft.service.js +3 -1
- package/dist/services/nft.service.js.map +1 -1
- package/dist/services/ordinal-indexer.d.ts +128 -0
- package/dist/services/ordinal-indexer.d.ts.map +1 -0
- package/dist/services/ordinal-indexer.js +128 -0
- package/dist/services/ordinal-indexer.js.map +1 -0
- package/dist/services/sbtc.service.d.ts +2 -1
- package/dist/services/sbtc.service.d.ts.map +1 -1
- package/dist/services/sbtc.service.js +3 -1
- package/dist/services/sbtc.service.js.map +1 -1
- package/dist/services/tokens.service.d.ts +2 -1
- package/dist/services/tokens.service.d.ts.map +1 -1
- package/dist/services/tokens.service.js +3 -1
- package/dist/services/tokens.service.js.map +1 -1
- package/dist/services/wallet-manager.d.ts +5 -0
- package/dist/services/wallet-manager.d.ts.map +1 -1
- package/dist/services/wallet-manager.js +23 -9
- package/dist/services/wallet-manager.js.map +1 -1
- package/dist/tools/bitcoin.tools.d.ts.map +1 -1
- package/dist/tools/bitcoin.tools.js +214 -34
- package/dist/tools/bitcoin.tools.js.map +1 -1
- package/dist/tools/bitflow.tools.d.ts.map +1 -1
- package/dist/tools/bitflow.tools.js +8 -3
- package/dist/tools/bitflow.tools.js.map +1 -1
- package/dist/tools/bns.tools.d.ts.map +1 -1
- package/dist/tools/bns.tools.js +87 -7
- package/dist/tools/bns.tools.js.map +1 -1
- package/dist/tools/contract.tools.d.ts.map +1 -1
- package/dist/tools/contract.tools.js +19 -4
- package/dist/tools/contract.tools.js.map +1 -1
- package/dist/tools/defi.tools.d.ts.map +1 -1
- package/dist/tools/defi.tools.js +43 -0
- package/dist/tools/defi.tools.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/nft.tools.d.ts.map +1 -1
- package/dist/tools/nft.tools.js +8 -3
- package/dist/tools/nft.tools.js.map +1 -1
- package/dist/tools/ordinals.tools.d.ts +15 -0
- package/dist/tools/ordinals.tools.d.ts.map +1 -0
- package/dist/tools/ordinals.tools.js +401 -0
- package/dist/tools/ordinals.tools.js.map +1 -0
- package/dist/tools/query.tools.d.ts.map +1 -1
- package/dist/tools/query.tools.js +71 -0
- package/dist/tools/query.tools.js.map +1 -1
- package/dist/tools/sbtc.tools.d.ts.map +1 -1
- package/dist/tools/sbtc.tools.js +8 -3
- package/dist/tools/sbtc.tools.js.map +1 -1
- package/dist/tools/signing.tools.d.ts +25 -0
- package/dist/tools/signing.tools.d.ts.map +1 -0
- package/dist/tools/signing.tools.js +776 -0
- package/dist/tools/signing.tools.js.map +1 -0
- package/dist/tools/tokens.tools.d.ts.map +1 -1
- package/dist/tools/tokens.tools.js +8 -3
- package/dist/tools/tokens.tools.js.map +1 -1
- package/dist/tools/transfer.tools.d.ts.map +1 -1
- package/dist/tools/transfer.tools.js +8 -3
- package/dist/tools/transfer.tools.js.map +1 -1
- package/dist/tools/wallet-management.tools.d.ts.map +1 -1
- package/dist/tools/wallet-management.tools.js +34 -39
- package/dist/tools/wallet-management.tools.js.map +1 -1
- package/dist/tools/wallet.tools.d.ts.map +1 -1
- package/dist/tools/wallet.tools.js +25 -16
- package/dist/tools/wallet.tools.js.map +1 -1
- package/dist/tools/yield-hunter.tools.d.ts.map +1 -1
- package/dist/tools/yield-hunter.tools.js +53 -48
- package/dist/tools/yield-hunter.tools.js.map +1 -1
- package/dist/transactions/bitcoin-builder.d.ts.map +1 -1
- package/dist/transactions/bitcoin-builder.js +1 -16
- package/dist/transactions/bitcoin-builder.js.map +1 -1
- package/dist/transactions/builder.d.ts +7 -2
- package/dist/transactions/builder.d.ts.map +1 -1
- package/dist/transactions/builder.js +8 -2
- package/dist/transactions/builder.js.map +1 -1
- package/dist/transactions/inscription-builder.d.ts +183 -0
- package/dist/transactions/inscription-builder.d.ts.map +1 -0
- package/dist/transactions/inscription-builder.js +230 -0
- package/dist/transactions/inscription-builder.js.map +1 -0
- package/dist/utils/bitcoin.d.ts +38 -0
- package/dist/utils/bitcoin.d.ts.map +1 -1
- package/dist/utils/bitcoin.js +59 -0
- package/dist/utils/bitcoin.js.map +1 -1
- package/dist/utils/fee.d.ts +41 -0
- package/dist/utils/fee.d.ts.map +1 -0
- package/dist/utils/fee.js +69 -0
- package/dist/utils/fee.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/storage.d.ts +4 -7
- package/dist/utils/storage.d.ts.map +1 -1
- package/dist/utils/storage.js +0 -30
- package/dist/utils/storage.js.map +1 -1
- package/dist/utils/tokens.d.ts +13 -0
- package/dist/utils/tokens.d.ts.map +1 -0
- package/dist/utils/tokens.js +24 -0
- package/dist/utils/tokens.js.map +1 -0
- package/dist/yield-hunter/index.d.ts.map +1 -1
- package/dist/yield-hunter/index.js +10 -15
- package/dist/yield-hunter/index.js.map +1 -1
- 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
|
|
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
|
|
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
|
-
|
|
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
|
|
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"}
|
package/dist/config/contracts.js
CHANGED
|
@@ -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
|
-
|
|
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":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO;IACP,UAAU,EAAE,sDAAsD;IAClE,YAAY,EAAE,wDAAwD;IACtE,aAAa,EAAE,yDAAyD;IAExE,cAAc;IACd,KAAK,EAAE,iDAAiD;IAExD,MAAM;IACN,GAAG,EAAE,mCAAmC;IAExC,WAAW;IACX,KAAK,EAAE,qCAAqC;IAE5C,gFAAgF;IAChF,aAAa,EAAE,8DAA8D;IAC7E,UAAU,EAAE,sDAAsD;IAClE,SAAS,EAAE,yDAAyD;IAEpE,gBAAgB;IAChB,gBAAgB,EAAE,2DAA2D;IAC7E,iBAAiB,EAAE,
|
|
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":"AACA,OAAO,EAKL,KAAK,iBAAiB,EACtB,UAAU,EAGX,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAM1E,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAc;IAKb,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAwB;gBAEtB,OAAO,EAAE,OAAO;IAIpC;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACI,cAAc,IAAI,OAAO;IAIhC;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,SAAS;IAajB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAO3C;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAUlG;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAiBnD;;;OAGG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IASjE;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAQpF;;OAEG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC;IAmB5B
|
|
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
|
|
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
|
-
*
|
|
66
|
-
*
|
|
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
|
|
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,
|
|
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;
|
|
1
|
+
{"version":3,"file":"bns.service.d.ts","sourceRoot":"","sources":["../../src/services/bns.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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,
|
|
123
|
+
gracePeriod: 0,
|
|
110
124
|
status: info.status,
|
|
111
|
-
lastTxId: "",
|
|
125
|
+
lastTxId: "",
|
|
112
126
|
};
|
|
113
127
|
}
|
|
114
128
|
}
|
|
115
|
-
catch {
|
|
116
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
|
|
183
|
-
|
|
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
|
-
*
|
|
201
|
-
*
|
|
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
|
|
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
|
-
|
|
208
|
-
|
|
209
|
-
const
|
|
210
|
-
|
|
211
|
-
|
|
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(
|
|
214
|
-
uintCV(
|
|
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
|
|
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,
|
|
227
|
-
const
|
|
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
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
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,
|