@secondlayer/stacks 4.3.1 → 5.0.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/README.md +27 -11
- package/dist/shared/{stacks-gxq2pbky.js → stacks-2as26bcg.js} +10 -7
- package/dist/shared/stacks-2as26bcg.js.map +13 -0
- package/dist/shared/{stacks-bfan7ex7.js → stacks-4d7c3x27.js} +5 -5
- package/dist/shared/{stacks-bfan7ex7.js.map → stacks-4d7c3x27.js.map} +3 -3
- package/dist/shared/{stacks-709tra19.js → stacks-4hs8r4q2.js} +16 -2
- package/dist/shared/stacks-4hs8r4q2.js.map +10 -0
- package/dist/shared/{stacks-w23294am.js → stacks-51ybf135.js} +3 -3
- package/dist/shared/{stacks-0jk7vd8r.cjs → stacks-69nq48jp.js} +120 -17
- package/dist/shared/stacks-69nq48jp.js.map +15 -0
- package/dist/shared/{stacks-8pfdscq6.js → stacks-6gavarmy.js} +37 -9
- package/dist/shared/stacks-6gavarmy.js.map +12 -0
- package/dist/shared/{stacks-7wkf2rph.js → stacks-7bqkf3b0.js} +86 -71
- package/dist/shared/{stacks-7wkf2rph.js.map → stacks-7bqkf3b0.js.map} +9 -10
- package/dist/shared/{stacks-zcpvzbr0.js → stacks-8brgfvqx.js} +3 -3
- package/dist/shared/{stacks-4vzmhw3q.cjs → stacks-8vzxax5e.cjs} +13 -3
- package/dist/shared/stacks-8vzxax5e.cjs.map +10 -0
- package/dist/shared/{stacks-hnqt5rz4.js → stacks-9c1yam8b.js} +3 -3
- package/dist/shared/{stacks-bnbdqznq.cjs → stacks-bdgh9n83.cjs} +11 -10
- package/dist/shared/{stacks-bnbdqznq.cjs.map → stacks-bdgh9n83.cjs.map} +3 -3
- package/dist/shared/{stacks-fb75yew8.js → stacks-db3kwavg.cjs} +346 -138
- package/dist/shared/stacks-db3kwavg.cjs.map +23 -0
- package/dist/shared/{stacks-jpt52csy.js → stacks-e3nwm1dz.js} +14 -17
- package/dist/shared/stacks-e3nwm1dz.js.map +10 -0
- package/dist/shared/{stacks-27fmgajb.js → stacks-ga026yxz.js} +9 -9
- package/dist/shared/{stacks-27fmgajb.js.map → stacks-ga026yxz.js.map} +3 -3
- package/dist/shared/{stacks-nyaw1z2a.cjs → stacks-ggdz96r1.cjs} +4 -4
- package/dist/shared/{stacks-nyaw1z2a.cjs.map → stacks-ggdz96r1.cjs.map} +3 -3
- package/dist/shared/{stacks-08y0y0t7.js → stacks-gjz26k6b.js} +2 -2
- package/dist/shared/{stacks-x5386y2y.cjs → stacks-gza2n1zs.cjs} +5 -5
- package/dist/shared/{stacks-x5386y2y.cjs.map → stacks-gza2n1zs.cjs.map} +3 -3
- package/dist/shared/{stacks-ta1gar0b.cjs → stacks-kqn4y8kq.cjs} +7 -5
- package/dist/shared/{stacks-ta1gar0b.cjs.map → stacks-kqn4y8kq.cjs.map} +3 -3
- package/dist/shared/{stacks-ztzygy90.js → stacks-mftyrc60.js} +2 -2
- package/dist/shared/stacks-n4d8j8q3.js +801 -0
- package/dist/shared/stacks-n4d8j8q3.js.map +23 -0
- package/dist/shared/{stacks-ycbq8pf7.cjs → stacks-p337hp6m.cjs} +74 -59
- package/dist/shared/{stacks-ycbq8pf7.cjs.map → stacks-p337hp6m.cjs.map} +9 -10
- package/dist/shared/{stacks-ttdk2g2f.js → stacks-s5vej5z6.cjs} +92 -41
- package/dist/shared/stacks-s5vej5z6.cjs.map +15 -0
- package/dist/shared/stacks-sdqkapct.cjs +67 -0
- package/dist/shared/stacks-sdqkapct.cjs.map +12 -0
- package/dist/shared/{stacks-1arrcd11.js → stacks-v2rfr46a.js} +2 -2
- package/dist/shared/{stacks-9mqveyjv.cjs → stacks-w9t61fra.cjs} +7 -10
- package/dist/shared/stacks-w9t61fra.cjs.map +10 -0
- package/dist/shared/{stacks-tjjnkt3r.js → stacks-wxfd6r4b.js} +2 -2
- package/dist/shared/{stacks-4z72akdf.js → stacks-x0qqwrev.js} +3 -3
- package/dist/shared/{stacks-gck1sq7h.cjs → stacks-xjkn3en1.cjs} +16 -2
- package/dist/shared/stacks-xjkn3en1.cjs.map +10 -0
- package/dist/shared/stacks-xnrywjf1.cjs +131 -0
- package/dist/shared/stacks-xnrywjf1.cjs.map +11 -0
- package/dist/shared/stacks-yajyej2y.js +139 -0
- package/dist/shared/stacks-yajyej2y.js.map +11 -0
- package/dist/shared/{stacks-913a2rx7.js → stacks-yvb7rvwk.js} +13 -3
- package/dist/shared/stacks-yvb7rvwk.js.map +10 -0
- package/dist/shared/{stacks-0cdm20eh.js → stacks-z90xdr1x.js} +7 -11
- package/dist/shared/{stacks-0cdm20eh.js.map → stacks-z90xdr1x.js.map} +3 -3
- package/dist/src/accounts/index.js +2 -3
- package/dist/src/accounts/index.js.map +2 -2
- package/dist/src/actions/index.cjs +2 -1
- package/dist/src/actions/index.cjs.map +1 -1
- package/dist/src/actions/index.d.cts +108 -20
- package/dist/src/actions/index.d.ts +108 -20
- package/dist/src/actions/index.js +17 -15
- package/dist/src/actions/index.js.map +1 -1
- package/dist/src/bitcoin/index.d.cts +27 -0
- package/dist/src/bitcoin/index.d.ts +27 -0
- package/dist/src/bitcoin/index.js +10 -11
- package/dist/src/bitcoin/index.js.map +2 -2
- package/dist/src/bns/index.d.cts +27 -0
- package/dist/src/bns/index.d.ts +27 -0
- package/dist/src/bns/index.js +13 -13
- package/dist/src/bns/index.js.map +1 -1
- package/dist/src/clarity/index.js +7 -6
- package/dist/src/clarity/index.js.map +1 -1
- package/dist/src/connect/index.cjs +44 -30
- package/dist/src/connect/index.cjs.map +7 -7
- package/dist/src/connect/index.d.cts +16 -1
- package/dist/src/connect/index.d.ts +16 -1
- package/dist/src/connect/index.js +44 -30
- package/dist/src/connect/index.js.map +7 -7
- package/dist/src/connect/walletconnect/index.cjs +49 -413
- package/dist/src/connect/walletconnect/index.cjs.map +4 -4
- package/dist/src/connect/walletconnect/index.js +47 -411
- package/dist/src/connect/walletconnect/index.js.map +4 -4
- package/dist/src/filters/index.js +2 -2
- package/dist/src/index.cjs +49 -124
- package/dist/src/index.cjs.map +6 -8
- package/dist/src/index.d.cts +163 -54
- package/dist/src/index.d.ts +163 -54
- package/dist/src/index.js +79 -147
- package/dist/src/index.js.map +6 -8
- package/dist/src/postconditions/index.js +6 -5
- package/dist/src/postconditions/index.js.map +1 -1
- package/dist/src/pox/index.cjs +7 -83
- package/dist/src/pox/index.cjs.map +3 -3
- package/dist/src/pox/index.d.cts +32 -1
- package/dist/src/pox/index.d.ts +32 -1
- package/dist/src/pox/index.js +22 -102
- package/dist/src/pox/index.js.map +3 -3
- package/dist/src/pox5/index.cjs +4 -129
- package/dist/src/pox5/index.cjs.map +3 -4
- package/dist/src/pox5/index.d.cts +27 -0
- package/dist/src/pox5/index.d.ts +27 -0
- package/dist/src/pox5/index.js +20 -148
- package/dist/src/pox5/index.js.map +3 -4
- package/dist/src/sbtc/index.cjs +2 -59
- package/dist/src/sbtc/index.cjs.map +3 -3
- package/dist/src/sbtc/index.d.cts +30 -2
- package/dist/src/sbtc/index.d.ts +30 -2
- package/dist/src/sbtc/index.js +15 -74
- package/dist/src/sbtc/index.js.map +3 -3
- package/dist/src/stackingdao/index.d.cts +27 -0
- package/dist/src/stackingdao/index.d.ts +27 -0
- package/dist/src/stackingdao/index.js +11 -11
- package/dist/src/stackingdao/index.js.map +1 -1
- package/dist/src/subscriptions/index.d.cts +27 -0
- package/dist/src/subscriptions/index.d.ts +27 -0
- package/dist/src/subscriptions/index.js +2 -2
- package/dist/src/tools/btc/index.cjs.map +2 -2
- package/dist/src/tools/btc/index.js.map +2 -2
- package/dist/src/tools/index.cjs +629 -392
- package/dist/src/tools/index.cjs.map +30 -28
- package/dist/src/tools/index.d.cts +44 -0
- package/dist/src/tools/index.d.ts +44 -0
- package/dist/src/tools/index.js +628 -391
- package/dist/src/tools/index.js.map +30 -28
- package/dist/src/transactions/index.js +6 -5
- package/dist/src/transactions/index.js.map +1 -1
- package/dist/src/utils/index.d.cts +2 -5
- package/dist/src/utils/index.d.ts +2 -5
- package/dist/src/utils/index.js +2 -2
- package/package.json +18 -7
- package/dist/shared/stacks-0eatsx6d.cjs +0 -25
- package/dist/shared/stacks-0eatsx6d.cjs.map +0 -10
- package/dist/shared/stacks-0jk7vd8r.cjs.map +0 -14
- package/dist/shared/stacks-4vzmhw3q.cjs.map +0 -10
- package/dist/shared/stacks-5nmz5ad9.js +0 -409
- package/dist/shared/stacks-5nmz5ad9.js.map +0 -10
- package/dist/shared/stacks-709tra19.js.map +0 -10
- package/dist/shared/stacks-8pfdscq6.js.map +0 -12
- package/dist/shared/stacks-913a2rx7.js.map +0 -10
- package/dist/shared/stacks-9mqveyjv.cjs.map +0 -10
- package/dist/shared/stacks-e4xn4m7j.js +0 -27
- package/dist/shared/stacks-e4xn4m7j.js.map +0 -10
- package/dist/shared/stacks-fb75yew8.js.map +0 -21
- package/dist/shared/stacks-gck1sq7h.cjs.map +0 -10
- package/dist/shared/stacks-gxq2pbky.js.map +0 -13
- package/dist/shared/stacks-jpt52csy.js.map +0 -10
- package/dist/shared/stacks-mnnhpex3.cjs +0 -407
- package/dist/shared/stacks-mnnhpex3.cjs.map +0 -10
- package/dist/shared/stacks-tdsp5gsb.cjs +0 -527
- package/dist/shared/stacks-tdsp5gsb.cjs.map +0 -21
- package/dist/shared/stacks-ttdk2g2f.js.map +0 -14
- package/dist/shared/stacks-wdp5yr8n.cjs +0 -39
- package/dist/shared/stacks-wdp5yr8n.cjs.map +0 -12
- /package/dist/shared/{stacks-w23294am.js.map → stacks-51ybf135.js.map} +0 -0
- /package/dist/shared/{stacks-zcpvzbr0.js.map → stacks-8brgfvqx.js.map} +0 -0
- /package/dist/shared/{stacks-hnqt5rz4.js.map → stacks-9c1yam8b.js.map} +0 -0
- /package/dist/shared/{stacks-08y0y0t7.js.map → stacks-gjz26k6b.js.map} +0 -0
- /package/dist/shared/{stacks-ztzygy90.js.map → stacks-mftyrc60.js.map} +0 -0
- /package/dist/shared/{stacks-1arrcd11.js.map → stacks-v2rfr46a.js.map} +0 -0
- /package/dist/shared/{stacks-tjjnkt3r.js.map → stacks-wxfd6r4b.js.map} +0 -0
- /package/dist/shared/{stacks-4z72akdf.js.map → stacks-x0qqwrev.js.map} +0 -0
package/dist/src/pox/index.d.cts
CHANGED
|
@@ -37,6 +37,15 @@ type NonceManager = {
|
|
|
37
37
|
client: Client
|
|
38
38
|
address: string
|
|
39
39
|
}): void | Promise<void>
|
|
40
|
+
/**
|
|
41
|
+
* Give back a nonce from {@link NonceManager.consume} whose transaction
|
|
42
|
+
* was never accepted by the node. No-op unless it is the latest issued.
|
|
43
|
+
*/
|
|
44
|
+
release(params: {
|
|
45
|
+
client: Client
|
|
46
|
+
address: string
|
|
47
|
+
nonce: bigint
|
|
48
|
+
}): void | Promise<void>
|
|
40
49
|
/** Next nonce that {@link NonceManager.consume} would return without consuming it, or `undefined` if untracked. */
|
|
41
50
|
peek(params: {
|
|
42
51
|
client: Client
|
|
@@ -92,14 +101,32 @@ type RequestOptions = {
|
|
|
92
101
|
method?: "GET" | "POST" | "PUT" | "DELETE"
|
|
93
102
|
body?: unknown
|
|
94
103
|
headers?: Record<string, string>
|
|
104
|
+
/**
|
|
105
|
+
* Cancel the request from the caller's side. An aborted signal rejects
|
|
106
|
+
* with the signal's reason immediately and never retries; it is combined
|
|
107
|
+
* with the transport's own per-attempt timeout.
|
|
108
|
+
*/
|
|
109
|
+
signal?: AbortSignal
|
|
110
|
+
/**
|
|
111
|
+
* Override the transport's retry budget for this one request. Broadcasts
|
|
112
|
+
* pass `0`: re-sending a transaction the node may already hold trades a
|
|
113
|
+
* transient failure for a confusing nonce conflict.
|
|
114
|
+
*/
|
|
115
|
+
retryCount?: number
|
|
95
116
|
};
|
|
96
117
|
/** Shared configuration for all transport types. */
|
|
97
118
|
type TransportConfig = {
|
|
98
119
|
url?: string
|
|
120
|
+
/**
|
|
121
|
+
* Per-attempt deadline in ms covering headers AND body. A stalled body
|
|
122
|
+
* rejects with `TimeoutError` instead of hanging. Default 30_000.
|
|
123
|
+
*/
|
|
99
124
|
timeout?: number
|
|
100
125
|
retryCount?: number
|
|
101
126
|
retryDelay?: number
|
|
102
127
|
fetchOptions?: RequestInit
|
|
128
|
+
/** Sent as `x-api-key`. Held in the request closure and stripped from
|
|
129
|
+
* `Transport.config` so it never prints with the client. */
|
|
103
130
|
apiKey?: string
|
|
104
131
|
};
|
|
105
132
|
/** A resolved transport instance with a bound request function. */
|
|
@@ -654,8 +681,12 @@ declare const POX_ADDRESS_VERSION: {
|
|
|
654
681
|
readonly p2tr: 0x06
|
|
655
682
|
};
|
|
656
683
|
/**
|
|
657
|
-
* Parse a Bitcoin address string into a
|
|
684
|
+
* Parse a Bitcoin address string into a frozen-pox `PoxAddress` tuple
|
|
685
|
+
* (`buff 1` version, `buff 32` zero-padded hashbytes).
|
|
658
686
|
* Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR (mainnet and testnet).
|
|
687
|
+
*
|
|
688
|
+
* Decoding lives in `pox5/btcAddress.ts`, which verifies the base58check
|
|
689
|
+
* checksum on legacy addresses; this wrapper only pads to the pox-4 shape.
|
|
659
690
|
*/
|
|
660
691
|
declare function parseBtcAddress(address: string): PoxAddress;
|
|
661
692
|
/** Validate lock period is within allowed range (1-12). */
|
package/dist/src/pox/index.d.ts
CHANGED
|
@@ -37,6 +37,15 @@ type NonceManager = {
|
|
|
37
37
|
client: Client
|
|
38
38
|
address: string
|
|
39
39
|
}): void | Promise<void>
|
|
40
|
+
/**
|
|
41
|
+
* Give back a nonce from {@link NonceManager.consume} whose transaction
|
|
42
|
+
* was never accepted by the node. No-op unless it is the latest issued.
|
|
43
|
+
*/
|
|
44
|
+
release(params: {
|
|
45
|
+
client: Client
|
|
46
|
+
address: string
|
|
47
|
+
nonce: bigint
|
|
48
|
+
}): void | Promise<void>
|
|
40
49
|
/** Next nonce that {@link NonceManager.consume} would return without consuming it, or `undefined` if untracked. */
|
|
41
50
|
peek(params: {
|
|
42
51
|
client: Client
|
|
@@ -92,14 +101,32 @@ type RequestOptions = {
|
|
|
92
101
|
method?: "GET" | "POST" | "PUT" | "DELETE"
|
|
93
102
|
body?: unknown
|
|
94
103
|
headers?: Record<string, string>
|
|
104
|
+
/**
|
|
105
|
+
* Cancel the request from the caller's side. An aborted signal rejects
|
|
106
|
+
* with the signal's reason immediately and never retries; it is combined
|
|
107
|
+
* with the transport's own per-attempt timeout.
|
|
108
|
+
*/
|
|
109
|
+
signal?: AbortSignal
|
|
110
|
+
/**
|
|
111
|
+
* Override the transport's retry budget for this one request. Broadcasts
|
|
112
|
+
* pass `0`: re-sending a transaction the node may already hold trades a
|
|
113
|
+
* transient failure for a confusing nonce conflict.
|
|
114
|
+
*/
|
|
115
|
+
retryCount?: number
|
|
95
116
|
};
|
|
96
117
|
/** Shared configuration for all transport types. */
|
|
97
118
|
type TransportConfig = {
|
|
98
119
|
url?: string
|
|
120
|
+
/**
|
|
121
|
+
* Per-attempt deadline in ms covering headers AND body. A stalled body
|
|
122
|
+
* rejects with `TimeoutError` instead of hanging. Default 30_000.
|
|
123
|
+
*/
|
|
99
124
|
timeout?: number
|
|
100
125
|
retryCount?: number
|
|
101
126
|
retryDelay?: number
|
|
102
127
|
fetchOptions?: RequestInit
|
|
128
|
+
/** Sent as `x-api-key`. Held in the request closure and stripped from
|
|
129
|
+
* `Transport.config` so it never prints with the client. */
|
|
103
130
|
apiKey?: string
|
|
104
131
|
};
|
|
105
132
|
/** A resolved transport instance with a bound request function. */
|
|
@@ -654,8 +681,12 @@ declare const POX_ADDRESS_VERSION: {
|
|
|
654
681
|
readonly p2tr: 0x06
|
|
655
682
|
};
|
|
656
683
|
/**
|
|
657
|
-
* Parse a Bitcoin address string into a
|
|
684
|
+
* Parse a Bitcoin address string into a frozen-pox `PoxAddress` tuple
|
|
685
|
+
* (`buff 1` version, `buff 32` zero-padded hashbytes).
|
|
658
686
|
* Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR (mainnet and testnet).
|
|
687
|
+
*
|
|
688
|
+
* Decoding lives in `pox5/btcAddress.ts`, which verifies the base58check
|
|
689
|
+
* checksum on legacy addresses; this wrapper only pads to the pox-4 shape.
|
|
659
690
|
*/
|
|
660
691
|
declare function parseBtcAddress(address: string): PoxAddress;
|
|
661
692
|
/** Validate lock period is within allowed range (1-12). */
|
package/dist/src/pox/index.js
CHANGED
|
@@ -2,30 +2,26 @@ import {
|
|
|
2
2
|
MAX_LOCK_PERIOD,
|
|
3
3
|
MIN_LOCK_PERIOD,
|
|
4
4
|
POX_ADDRESS_VERSION,
|
|
5
|
-
POX_CONTRACTS
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
bech32m
|
|
10
|
-
} from "../../shared/stacks-5nmz5ad9.js";
|
|
5
|
+
POX_CONTRACTS,
|
|
6
|
+
parseBtcAddress
|
|
7
|
+
} from "../../shared/stacks-yajyej2y.js";
|
|
8
|
+
import"../../shared/stacks-z90xdr1x.js";
|
|
11
9
|
import {
|
|
12
10
|
getContract,
|
|
13
11
|
resolveNetworkContract
|
|
14
|
-
} from "../../shared/stacks-
|
|
15
|
-
import"../../shared/stacks-
|
|
16
|
-
import"../../shared/stacks-
|
|
17
|
-
import"../../shared/stacks-
|
|
18
|
-
import"../../shared/stacks-4z72akdf.js";
|
|
12
|
+
} from "../../shared/stacks-e3nwm1dz.js";
|
|
13
|
+
import"../../shared/stacks-n4d8j8q3.js";
|
|
14
|
+
import"../../shared/stacks-ga026yxz.js";
|
|
15
|
+
import"../../shared/stacks-x0qqwrev.js";
|
|
19
16
|
import {
|
|
20
17
|
Pc
|
|
21
|
-
} from "../../shared/stacks-
|
|
22
|
-
import"../../shared/stacks-
|
|
23
|
-
import"../../shared/stacks-
|
|
24
|
-
import"../../shared/stacks-
|
|
25
|
-
import"../../shared/stacks-
|
|
26
|
-
import
|
|
27
|
-
|
|
28
|
-
} from "../../shared/stacks-qs5fzts5.js";
|
|
18
|
+
} from "../../shared/stacks-8brgfvqx.js";
|
|
19
|
+
import"../../shared/stacks-9c1yam8b.js";
|
|
20
|
+
import"../../shared/stacks-51ybf135.js";
|
|
21
|
+
import"../../shared/stacks-69nq48jp.js";
|
|
22
|
+
import"../../shared/stacks-4hs8r4q2.js";
|
|
23
|
+
import"../../shared/stacks-4d7c3x27.js";
|
|
24
|
+
import"../../shared/stacks-qs5fzts5.js";
|
|
29
25
|
|
|
30
26
|
// src/pox/abi.ts
|
|
31
27
|
var POX_ABI = {
|
|
@@ -273,84 +269,8 @@ var POX_ABI = {
|
|
|
273
269
|
};
|
|
274
270
|
|
|
275
271
|
// src/pox/utils.ts
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
let num = 0n;
|
|
279
|
-
for (const char of str) {
|
|
280
|
-
const idx = BASE58_ALPHABET.indexOf(char);
|
|
281
|
-
if (idx === -1)
|
|
282
|
-
throw new Error(`Invalid base58 character: ${char}`);
|
|
283
|
-
num = num * 58n + BigInt(idx);
|
|
284
|
-
}
|
|
285
|
-
const hex = num.toString(16).padStart(2, "0");
|
|
286
|
-
const padded = hex.length % 2 ? `0${hex}` : hex;
|
|
287
|
-
const rawBytes = hexToBytes(padded);
|
|
288
|
-
let leadingZeros = 0;
|
|
289
|
-
for (const char of str) {
|
|
290
|
-
if (char === "1")
|
|
291
|
-
leadingZeros++;
|
|
292
|
-
else
|
|
293
|
-
break;
|
|
294
|
-
}
|
|
295
|
-
const result = new Uint8Array(leadingZeros + rawBytes.length);
|
|
296
|
-
result.set(rawBytes, leadingZeros);
|
|
297
|
-
return result;
|
|
298
|
-
}
|
|
299
|
-
function parseBtcAddress(address) {
|
|
300
|
-
if (address.startsWith("bc1") || address.startsWith("tb1") || address.startsWith("bcrt1")) {
|
|
301
|
-
return parseSegwitAddress(address);
|
|
302
|
-
}
|
|
303
|
-
return parseLegacyAddress(address);
|
|
304
|
-
}
|
|
305
|
-
function parseSegwitAddress(address) {
|
|
306
|
-
let decoded;
|
|
307
|
-
try {
|
|
308
|
-
decoded = bech32.decode(address);
|
|
309
|
-
} catch {
|
|
310
|
-
decoded = bech32m.decode(address);
|
|
311
|
-
}
|
|
312
|
-
const witnessVersion = decoded.words[0];
|
|
313
|
-
const data = bech32.fromWords(decoded.words.slice(1));
|
|
314
|
-
const hashbytes = new Uint8Array(data);
|
|
315
|
-
let version;
|
|
316
|
-
if (witnessVersion === 0) {
|
|
317
|
-
if (hashbytes.length === 20) {
|
|
318
|
-
version = POX_ADDRESS_VERSION.p2wpkh;
|
|
319
|
-
} else if (hashbytes.length === 32) {
|
|
320
|
-
version = POX_ADDRESS_VERSION.p2wsh;
|
|
321
|
-
} else {
|
|
322
|
-
throw new Error(`Invalid witness v0 program length: ${hashbytes.length}`);
|
|
323
|
-
}
|
|
324
|
-
} else if (witnessVersion === 1) {
|
|
325
|
-
if (hashbytes.length !== 32) {
|
|
326
|
-
throw new Error(`Invalid witness v1 program length: ${hashbytes.length}`);
|
|
327
|
-
}
|
|
328
|
-
version = POX_ADDRESS_VERSION.p2tr;
|
|
329
|
-
} else {
|
|
330
|
-
throw new Error(`Unsupported witness version: ${witnessVersion}`);
|
|
331
|
-
}
|
|
332
|
-
const padded = new Uint8Array(32);
|
|
333
|
-
padded.set(hashbytes);
|
|
334
|
-
return {
|
|
335
|
-
version: new Uint8Array([version]),
|
|
336
|
-
hashbytes: padded
|
|
337
|
-
};
|
|
338
|
-
}
|
|
339
|
-
function parseLegacyAddress(address) {
|
|
340
|
-
const decoded = base58Decode(address);
|
|
341
|
-
if (decoded.length !== 25) {
|
|
342
|
-
throw new Error(`Invalid legacy address length: ${decoded.length}`);
|
|
343
|
-
}
|
|
344
|
-
const versionByte = decoded[0];
|
|
345
|
-
const hashbytes = decoded.slice(1, 21);
|
|
346
|
-
let version;
|
|
347
|
-
if (versionByte === 0 || versionByte === 111) {
|
|
348
|
-
version = POX_ADDRESS_VERSION.p2pkh;
|
|
349
|
-
} else if (versionByte === 5 || versionByte === 196) {
|
|
350
|
-
version = POX_ADDRESS_VERSION.p2sh;
|
|
351
|
-
} else {
|
|
352
|
-
throw new Error(`Unknown legacy address version byte: 0x${versionByte.toString(16)}`);
|
|
353
|
-
}
|
|
272
|
+
function parseBtcAddress2(address) {
|
|
273
|
+
const { version, hashbytes } = parseBtcAddress(address);
|
|
354
274
|
const padded = new Uint8Array(32);
|
|
355
275
|
padded.set(hashbytes);
|
|
356
276
|
return {
|
|
@@ -408,7 +328,7 @@ async function stackStx(client, params) {
|
|
|
408
328
|
if (params.amount < info.minAmountUstx) {
|
|
409
329
|
throw new Error(`Amount below minimum: ${info.minAmountUstx}`);
|
|
410
330
|
}
|
|
411
|
-
const poxAddr =
|
|
331
|
+
const poxAddr = parseBtcAddress2(params.btcAddress);
|
|
412
332
|
const pox = getPoxContract(client);
|
|
413
333
|
return pox.call.stackStx({
|
|
414
334
|
amountUstx: params.amount,
|
|
@@ -428,7 +348,7 @@ async function stackStx(client, params) {
|
|
|
428
348
|
async function delegateStx(client, params) {
|
|
429
349
|
if (!client.account)
|
|
430
350
|
throw new Error("Wallet client required");
|
|
431
|
-
const poxAddr = params.poxAddr ?
|
|
351
|
+
const poxAddr = params.poxAddr ? parseBtcAddress2(params.poxAddr) : null;
|
|
432
352
|
const pox = getPoxContract(client);
|
|
433
353
|
return pox.call.delegateStx({
|
|
434
354
|
amountUstx: params.amount,
|
|
@@ -449,7 +369,7 @@ async function stackExtend(client, params) {
|
|
|
449
369
|
if (!validateLockPeriod(params.extendCount)) {
|
|
450
370
|
throw new Error("Extend count must be 1-12 cycles");
|
|
451
371
|
}
|
|
452
|
-
const poxAddr =
|
|
372
|
+
const poxAddr = parseBtcAddress2(params.btcAddress);
|
|
453
373
|
const pox = getPoxContract(client);
|
|
454
374
|
return pox.call.stackExtend({
|
|
455
375
|
extendCount: BigInt(params.extendCount),
|
|
@@ -497,7 +417,7 @@ export {
|
|
|
497
417
|
validateLockPeriod,
|
|
498
418
|
rewardCycleToBurnHeight,
|
|
499
419
|
pox,
|
|
500
|
-
parseBtcAddress,
|
|
420
|
+
parseBtcAddress2 as parseBtcAddress,
|
|
501
421
|
burnHeightToRewardCycle,
|
|
502
422
|
POX_CONTRACTS,
|
|
503
423
|
POX_ADDRESS_VERSION,
|
|
@@ -506,5 +426,5 @@ export {
|
|
|
506
426
|
MAX_LOCK_PERIOD
|
|
507
427
|
};
|
|
508
428
|
|
|
509
|
-
//# debugId=
|
|
429
|
+
//# debugId=BAB56A4B32E85C8964756E2164756E21
|
|
510
430
|
//# sourceMappingURL=index.js.map
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
"sources": ["../src/pox/abi.ts", "../src/pox/utils.ts", "../src/pox/actions.ts", "../src/pox/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { AbiContract } from \"../clarity/abi/contract.ts\";\n\n// NOTE: ABI fragments are written out at each use site rather than shared via a\n// module-local const. bunup's dts emitter cannot express a reference to a\n// non-exported const — it drops the `type` property entirely (and collapses it\n// to `{}` if the const is exported), so the SHIPPED types were malformed while\n// the source type-checked clean. Verbose here beats broken for consumers.\n\nexport const POX_ABI = {\n\tfunctions: [\n\t\t// Read-only\n\t\t{\n\t\t\tname: \"get-pox-info\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"reward-cycle-id\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"min-amount-ustx\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"prepare-cycle-length\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"first-burnchain-block-height\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"reward-cycle-length\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"total-liquid-supply-ustx\", type: \"uint128\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\terror: \"none\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"get-stacker-info\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"stacker\", type: \"principal\" }],\n\t\t\toutputs: {\n\t\t\t\toptional: {\n\t\t\t\t\ttuple: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ name: \"lock-period\", type: \"uint128\" },\n\t\t\t\t\t\t{ name: \"first-reward-cycle\", type: \"uint128\" },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"reward-set-indexes\",\n\t\t\t\t\t\t\ttype: { list: { type: \"uint128\", length: 12 } },\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ name: \"delegated-to\", type: { optional: \"principal\" } },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"get-delegation-info\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"stacker\", type: \"principal\" }],\n\t\t\toutputs: {\n\t\t\t\toptional: {\n\t\t\t\t\ttuple: [\n\t\t\t\t\t\t{ name: \"amount-ustx\", type: \"uint128\" },\n\t\t\t\t\t\t{ name: \"delegated-to\", type: \"principal\" },\n\t\t\t\t\t\t{ name: \"until-burn-ht\", type: { optional: \"uint128\" } },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\toptional: {\n\t\t\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"can-stack-stx\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [\n\t\t\t\t{\n\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\ttype: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ name: \"amount-ustx\", type: \"uint128\" },\n\t\t\t\t{ name: \"first-reward-cycle\", type: \"uint128\" },\n\t\t\t\t{ name: \"num-cycles\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"bool\", error: \"int128\" } },\n\t\t},\n\n\t\t// Public\n\t\t{\n\t\t\tname: \"stack-stx\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"amount-ustx\", type: \"uint128\" },\n\t\t\t\t{\n\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\ttype: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ name: \"start-burn-ht\", type: \"uint128\" },\n\t\t\t\t{ name: \"lock-period\", type: \"uint128\" },\n\t\t\t\t{\n\t\t\t\t\tname: \"signer-sig\",\n\t\t\t\t\ttype: { optional: { buff: { length: 65 } } },\n\t\t\t\t},\n\t\t\t\t{ name: \"signer-key\", type: { buff: { length: 33 } } },\n\t\t\t\t{ name: \"max-amount\", type: \"uint128\" },\n\t\t\t\t{ name: \"auth-id\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"stacker\", type: \"principal\" },\n\t\t\t\t\t\t\t{ name: \"lock-amount\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"signer-key\", type: { buff: { length: 33 } } },\n\t\t\t\t\t\t\t{ name: \"unlock-burn-height\", type: \"uint128\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\terror: \"int128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"delegate-stx\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"amount-ustx\", type: \"uint128\" },\n\t\t\t\t{ name: \"delegate-to\", type: \"principal\" },\n\t\t\t\t{ name: \"until-burn-ht\", type: { optional: \"uint128\" } },\n\t\t\t\t{\n\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\ttype: {\n\t\t\t\t\t\toptional: {\n\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"bool\", error: \"int128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"revoke-delegate-stx\",\n\t\t\taccess: \"public\",\n\t\t\targs: [],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: {\n\t\t\t\t\t\toptional: {\n\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t{ name: \"amount-ustx\", type: \"uint128\" },\n\t\t\t\t\t\t\t\t{ name: \"delegated-to\", type: \"principal\" },\n\t\t\t\t\t\t\t\t{ name: \"until-burn-ht\", type: { optional: \"uint128\" } },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\t\t\toptional: {\n\t\t\t\t\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\terror: \"int128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"stack-extend\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"extend-count\", type: \"uint128\" },\n\t\t\t\t{\n\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\ttype: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"signer-sig\",\n\t\t\t\t\ttype: { optional: { buff: { length: 65 } } },\n\t\t\t\t},\n\t\t\t\t{ name: \"signer-key\", type: { buff: { length: 33 } } },\n\t\t\t\t{ name: \"max-amount\", type: \"uint128\" },\n\t\t\t\t{ name: \"auth-id\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"stacker\", type: \"principal\" },\n\t\t\t\t\t\t\t{ name: \"unlock-burn-height\", type: \"uint128\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\terror: \"int128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"stack-increase\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"increase-by\", type: \"uint128\" },\n\t\t\t\t{\n\t\t\t\t\tname: \"signer-sig\",\n\t\t\t\t\ttype: { optional: { buff: { length: 65 } } },\n\t\t\t\t},\n\t\t\t\t{ name: \"signer-key\", type: { buff: { length: 33 } } },\n\t\t\t\t{ name: \"max-amount\", type: \"uint128\" },\n\t\t\t\t{ name: \"auth-id\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"stacker\", type: \"principal\" },\n\t\t\t\t\t\t\t{ name: \"total-locked\", type: \"uint128\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\terror: \"int128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n} as const satisfies AbiContract;\n",
|
|
6
|
-
"import {
|
|
6
|
+
"import { parseBtcAddress as parseBtcAddressRepr } from \"../pox5/btcAddress.ts\";\nimport { MAX_LOCK_PERIOD, MIN_LOCK_PERIOD } from \"./constants.ts\";\nimport type { PoxAddress } from \"./types.ts\";\n\n/**\n * Parse a Bitcoin address string into a frozen-pox `PoxAddress` tuple\n * (`buff 1` version, `buff 32` zero-padded hashbytes).\n * Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR (mainnet and testnet).\n *\n * Decoding lives in `pox5/btcAddress.ts`, which verifies the base58check\n * checksum on legacy addresses; this wrapper only pads to the pox-4 shape.\n */\nexport function parseBtcAddress(address: string): PoxAddress {\n\tconst { version, hashbytes } = parseBtcAddressRepr(address);\n\tconst padded = new Uint8Array(32);\n\tpadded.set(hashbytes);\n\treturn {\n\t\tversion: new Uint8Array([version]),\n\t\thashbytes: padded,\n\t};\n}\n\n/** Validate lock period is within allowed range (1-12). */\nexport function validateLockPeriod(periods: number): boolean {\n\treturn (\n\t\tNumber.isInteger(periods) &&\n\t\tperiods >= MIN_LOCK_PERIOD &&\n\t\tperiods <= MAX_LOCK_PERIOD\n\t);\n}\n\n/** Calculate the reward cycle for a given burn height. */\nexport function burnHeightToRewardCycle(\n\tburnHeight: bigint,\n\tfirstBurnchainBlockHeight: bigint,\n\trewardCycleLength: bigint,\n): bigint {\n\treturn (burnHeight - firstBurnchainBlockHeight) / rewardCycleLength;\n}\n\n/** Calculate the burn height at which a reward cycle starts. */\nexport function rewardCycleToBurnHeight(\n\tcycle: bigint,\n\tfirstBurnchainBlockHeight: bigint,\n\trewardCycleLength: bigint,\n): bigint {\n\treturn firstBurnchainBlockHeight + cycle * rewardCycleLength;\n}\n",
|
|
7
7
|
"import { getContract, resolveNetworkContract } from \"../actions/getContract.ts\";\nimport type { Client } from \"../clients/types.ts\";\nimport { Pc } from \"../postconditions/index.ts\";\nimport { POX_ABI } from \"./abi.ts\";\nimport { POX_CONTRACTS } from \"./constants.ts\";\nimport type {\n\tDelegateStxParams,\n\tDelegationInfo,\n\tPoxInfo,\n\tStackExtendParams,\n\tStackIncreaseParams,\n\tStackStxParams,\n\tStackerInfo,\n} from \"./types.ts\";\nimport { parseBtcAddress, validateLockPeriod } from \"./utils.ts\";\n\nfunction getPoxContract(client: Client) {\n\tconst contract = resolveNetworkContract(client, POX_CONTRACTS);\n\treturn getContract({\n\t\tclient,\n\t\taddress: contract.address,\n\t\tname: contract.name,\n\t\tabi: POX_ABI,\n\t});\n}\n\n/** Query current PoX network info (cycle, minimum, lengths). */\nexport async function getPoxInfo(client: Client): Promise<PoxInfo> {\n\tconst pox = getPoxContract(client);\n\treturn (await pox.read.getPoxInfo({})) as PoxInfo;\n}\n\n/** Get stacker info for an address. Returns null if not stacking. */\nexport async function getStackerInfo(\n\tclient: Client,\n\taddress: string,\n): Promise<StackerInfo | null> {\n\tconst pox = getPoxContract(client);\n\treturn (await pox.read.getStackerInfo({\n\t\tstacker: address,\n\t})) as StackerInfo | null;\n}\n\n/** Get delegation info for an address. Returns null if not delegating. */\nexport async function getDelegationInfo(\n\tclient: Client,\n\taddress: string,\n): Promise<DelegationInfo | null> {\n\tconst pox = getPoxContract(client);\n\treturn (await pox.read.getDelegationInfo({\n\t\tstacker: address,\n\t})) as DelegationInfo | null;\n}\n\n/** Check if an amount meets the minimum stacking threshold. */\nexport async function canStack(\n\tclient: Client,\n\tamount: bigint,\n): Promise<boolean> {\n\tconst info = await getPoxInfo(client);\n\treturn amount >= info.minAmountUstx;\n}\n\n/** Lock STX for stacking (solo). Requires wallet client. */\nexport async function stackStx(\n\tclient: Client,\n\tparams: StackStxParams,\n): Promise<string> {\n\tif (!client.account) throw new Error(\"Wallet client required\");\n\n\tif (!validateLockPeriod(params.lockPeriod)) {\n\t\tthrow new Error(\"Lock period must be 1-12 cycles\");\n\t}\n\n\tconst info = await getPoxInfo(client);\n\tif (params.amount < info.minAmountUstx) {\n\t\tthrow new Error(`Amount below minimum: ${info.minAmountUstx}`);\n\t}\n\n\tconst poxAddr = parseBtcAddress(params.btcAddress);\n\tconst pox = getPoxContract(client);\n\n\treturn pox.call.stackStx(\n\t\t{\n\t\t\tamountUstx: params.amount,\n\t\t\tpoxAddr,\n\t\t\tstartBurnHt: params.startBurnHeight,\n\t\t\tlockPeriod: BigInt(params.lockPeriod),\n\t\t\tsignerSig: params.signerSig,\n\t\t\tsignerKey: params.signerKey,\n\t\t\tmaxAmount: params.maxAmount,\n\t\t\tauthId: params.authId,\n\t\t},\n\t\t{\n\t\t\tpostConditions: [\n\t\t\t\tPc.principal(client.account.address).willSendEq(params.amount).ustx(),\n\t\t\t],\n\t\t},\n\t);\n}\n\n/** Delegate STX to a pool operator. Requires wallet client. */\nexport async function delegateStx(\n\tclient: Client,\n\tparams: DelegateStxParams,\n): Promise<string> {\n\tif (!client.account) throw new Error(\"Wallet client required\");\n\n\tconst poxAddr = params.poxAddr ? parseBtcAddress(params.poxAddr) : null;\n\tconst pox = getPoxContract(client);\n\n\treturn pox.call.delegateStx({\n\t\tamountUstx: params.amount,\n\t\tdelegateTo: params.delegateTo,\n\t\tuntilBurnHt: params.untilBurnHeight ?? null,\n\t\tpoxAddr,\n\t});\n}\n\n/** Revoke an active delegation. Requires wallet client. */\nexport async function revokeDelegateStx(client: Client): Promise<string> {\n\tif (!client.account) throw new Error(\"Wallet client required\");\n\tconst pox = getPoxContract(client);\n\treturn pox.call.revokeDelegateStx({});\n}\n\n/** Extend an active stacking lock. Requires wallet client. */\nexport async function stackExtend(\n\tclient: Client,\n\tparams: StackExtendParams,\n): Promise<string> {\n\tif (!client.account) throw new Error(\"Wallet client required\");\n\n\tif (!validateLockPeriod(params.extendCount)) {\n\t\tthrow new Error(\"Extend count must be 1-12 cycles\");\n\t}\n\n\tconst poxAddr = parseBtcAddress(params.btcAddress);\n\tconst pox = getPoxContract(client);\n\n\treturn pox.call.stackExtend({\n\t\textendCount: BigInt(params.extendCount),\n\t\tpoxAddr,\n\t\tsignerSig: params.signerSig,\n\t\tsignerKey: params.signerKey,\n\t\tmaxAmount: params.maxAmount,\n\t\tauthId: params.authId,\n\t});\n}\n\n/** Increase the amount of locked STX. Requires wallet client. */\nexport async function stackIncrease(\n\tclient: Client,\n\tparams: StackIncreaseParams,\n): Promise<string> {\n\tif (!client.account) throw new Error(\"Wallet client required\");\n\n\tconst pox = getPoxContract(client);\n\n\treturn pox.call.stackIncrease(\n\t\t{\n\t\t\tincreaseBy: params.increaseBy,\n\t\t\tsignerSig: params.signerSig,\n\t\t\tsignerKey: params.signerKey,\n\t\t\tmaxAmount: params.maxAmount,\n\t\t\tauthId: params.authId,\n\t\t},\n\t\t{\n\t\t\tpostConditions: [\n\t\t\t\tPc.principal(client.account.address)\n\t\t\t\t\t.willSendEq(params.increaseBy)\n\t\t\t\t\t.ustx(),\n\t\t\t],\n\t\t},\n\t);\n}\n",
|
|
8
8
|
"import type { Client } from \"../clients/types.ts\";\nimport {\n\tcanStack,\n\tdelegateStx,\n\tgetDelegationInfo,\n\tgetPoxInfo,\n\tgetStackerInfo,\n\trevokeDelegateStx,\n\tstackExtend,\n\tstackIncrease,\n\tstackStx,\n} from \"./actions.ts\";\nimport type {\n\tDelegateStxParams,\n\tDelegationInfo,\n\tPoxInfo,\n\tStackExtendParams,\n\tStackIncreaseParams,\n\tStackStxParams,\n\tStackerInfo,\n} from \"./types.ts\";\n\nexport type {\n\tStackStxParams,\n\tDelegateStxParams,\n\tStackExtendParams,\n\tStackIncreaseParams,\n\tPoxInfo,\n\tStackerInfo,\n\tDelegationInfo,\n};\nexport type { PoxAddress } from \"./types.ts\";\n/** The pox-4 ABI — `as const`, so a `contract_call` subgraph source that\n * references it gets typed `event.input`. */\nexport { POX_ABI } from \"./abi.ts\";\n\n/** Actions provided by the PoX extension. */\nexport type PoxActions = {\n\tpox: {\n\t\tgetPoxInfo: () => Promise<PoxInfo>;\n\t\tgetStackerInfo: (address: string) => Promise<StackerInfo | null>;\n\t\tgetDelegationInfo: (address: string) => Promise<DelegationInfo | null>;\n\t\tcanStack: (amount: bigint) => Promise<boolean>;\n\t\tstackStx: (params: StackStxParams) => Promise<string>;\n\t\tdelegateStx: (params: DelegateStxParams) => Promise<string>;\n\t\trevokeDelegateStx: () => Promise<string>;\n\t\tstackExtend: (params: StackExtendParams) => Promise<string>;\n\t\tstackIncrease: (params: StackIncreaseParams) => Promise<string>;\n\t};\n};\n\nexport {\n\tPOX_CONTRACTS,\n\tPOX_ADDRESS_VERSION,\n\tMIN_LOCK_PERIOD,\n\tMAX_LOCK_PERIOD,\n} from \"./constants.ts\";\nexport {\n\tparseBtcAddress,\n\tvalidateLockPeriod,\n\tburnHeightToRewardCycle,\n\trewardCycleToBurnHeight,\n} from \"./utils.ts\";\n\n/**\n * PoX stacking extension for Stacks client.\n * Handles STX stacking for Bitcoin rewards (solo + pool delegation).\n *\n * @example\n * import { createWalletClient, http, mainnet } from \"stacks\";\n * import { pox } from \"stacks/pox\";\n *\n * const client = createWalletClient({ ... }).extend(pox());\n *\n * // Delegate to pool\n * await client.pox.delegateStx({\n * amount: 100_000n * 1_000_000n,\n * delegateTo: \"SP2...\",\n * });\n *\n * // Solo stack\n * await client.pox.stackStx({\n * amount: 100_000n * 1_000_000n,\n * btcAddress: \"bc1q...\",\n * lockPeriod: 12,\n * startBurnHeight: 860000n,\n * signerSig: signature,\n * signerKey: publicKey,\n * maxAmount: 100_000_000_000n,\n * authId: 1n,\n * });\n */\nexport function pox(): (client: Client) => PoxActions {\n\treturn (client: Client) => ({\n\t\tpox: {\n\t\t\t/** Query current PoX network info (cycle, minimum, lengths). */\n\t\t\tgetPoxInfo: () => getPoxInfo(client),\n\n\t\t\t/** Get stacker info for an address. Returns null if not stacking. */\n\t\t\tgetStackerInfo: (address: string) => getStackerInfo(client, address),\n\n\t\t\t/** Get delegation info for an address. Returns null if not delegating. */\n\t\t\tgetDelegationInfo: (address: string) =>\n\t\t\t\tgetDelegationInfo(client, address),\n\n\t\t\t/** Check if an amount meets the minimum stacking threshold. */\n\t\t\tcanStack: (amount: bigint) => canStack(client, amount),\n\n\t\t\t/** Lock STX for stacking (solo). */\n\t\t\tstackStx: (params: StackStxParams) => stackStx(client, params),\n\n\t\t\t/** Delegate STX to a pool operator. */\n\t\t\tdelegateStx: (params: DelegateStxParams) => delegateStx(client, params),\n\n\t\t\t/** Revoke an active delegation. */\n\t\t\trevokeDelegateStx: () => revokeDelegateStx(client),\n\n\t\t\t/** Extend an active stacking lock by additional cycles. */\n\t\t\tstackExtend: (params: StackExtendParams) => stackExtend(client, params),\n\n\t\t\t/** Increase the amount of locked STX. */\n\t\t\tstackIncrease: (params: StackIncreaseParams) =>\n\t\t\t\tstackIncrease(client, params),\n\t\t},\n\t});\n}\n"
|
|
9
9
|
],
|
|
10
|
-
"mappings": "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",
|
|
11
|
-
"debugId": "
|
|
10
|
+
"mappings": "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",
|
|
11
|
+
"debugId": "BAB56A4B32E85C8964756E2164756E21",
|
|
12
12
|
"names": []
|
|
13
13
|
}
|
package/dist/src/pox5/index.cjs
CHANGED
|
@@ -1604,6 +1604,7 @@ async function eligiblePauseRewards(client, params) {
|
|
|
1604
1604
|
}
|
|
1605
1605
|
// src/pox5/script.ts
|
|
1606
1606
|
var import_sha2 = require("@noble/hashes/sha2.js");
|
|
1607
|
+
var import_base = require("@scure/base");
|
|
1607
1608
|
function serializeCScriptNum(n) {
|
|
1608
1609
|
const big = typeof n === "bigint" ? n : BigInt(n);
|
|
1609
1610
|
if (big < 0n)
|
|
@@ -1669,9 +1670,9 @@ function buildLockupOutputScript(opts) {
|
|
|
1669
1670
|
}
|
|
1670
1671
|
function buildLockupAddress(opts, network = "mainnet") {
|
|
1671
1672
|
const hash = import_sha2.sha256(buildLockupScript(opts));
|
|
1672
|
-
return bech32.encode(BITCOIN_NETWORK_PARAMS[network].hrp, [
|
|
1673
|
+
return import_base.bech32.encode(BITCOIN_NETWORK_PARAMS[network].hrp, [
|
|
1673
1674
|
0,
|
|
1674
|
-
...bech32.toWords(hash)
|
|
1675
|
+
...import_base.bech32.toWords(hash)
|
|
1675
1676
|
]);
|
|
1676
1677
|
}
|
|
1677
1678
|
function buildDefaultStakerUnlockBytes(publicKey) {
|
|
@@ -2046,132 +2047,6 @@ function pox5() {
|
|
|
2046
2047
|
}
|
|
2047
2048
|
});
|
|
2048
2049
|
}
|
|
2049
|
-
// src/pox5/btcAddress.ts
|
|
2050
|
-
var BASE58_ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
2051
|
-
function base58Decode(str) {
|
|
2052
|
-
let num = 0n;
|
|
2053
|
-
for (const char of str) {
|
|
2054
|
-
const idx = BASE58_ALPHABET.indexOf(char);
|
|
2055
|
-
if (idx === -1)
|
|
2056
|
-
throw new Error(`Invalid base58 character: ${char}`);
|
|
2057
|
-
num = num * 58n + BigInt(idx);
|
|
2058
|
-
}
|
|
2059
|
-
const hex = num.toString(16).padStart(2, "0");
|
|
2060
|
-
const padded = hex.length % 2 ? `0${hex}` : hex;
|
|
2061
|
-
const rawBytes = hexToBytes(padded);
|
|
2062
|
-
let leadingZeros = 0;
|
|
2063
|
-
for (const char of str) {
|
|
2064
|
-
if (char === "1")
|
|
2065
|
-
leadingZeros++;
|
|
2066
|
-
else
|
|
2067
|
-
break;
|
|
2068
|
-
}
|
|
2069
|
-
const result = new Uint8Array(leadingZeros + rawBytes.length);
|
|
2070
|
-
result.set(rawBytes, leadingZeros);
|
|
2071
|
-
return result;
|
|
2072
|
-
}
|
|
2073
|
-
function base58CheckEncode(version, payload) {
|
|
2074
|
-
const data = concatBytes(Uint8Array.of(version), payload);
|
|
2075
|
-
const checksum = doubleSha256(data).slice(0, 4);
|
|
2076
|
-
return base58.encode(concatBytes(data, checksum));
|
|
2077
|
-
}
|
|
2078
|
-
function expectedHashLen(version) {
|
|
2079
|
-
if (!Number.isInteger(version) || version < 0 || version > 6) {
|
|
2080
|
-
throw new Error(`Unknown PoX address version: 0x${version.toString(16)}`);
|
|
2081
|
-
}
|
|
2082
|
-
return version <= 4 ? 20 : 32;
|
|
2083
|
-
}
|
|
2084
|
-
function canonicalizeBtcAddress(repr) {
|
|
2085
|
-
const expected = expectedHashLen(repr.version);
|
|
2086
|
-
const { hashbytes } = repr;
|
|
2087
|
-
if (hashbytes.length === expected)
|
|
2088
|
-
return { version: repr.version, hashbytes };
|
|
2089
|
-
if (expected === 20 && hashbytes.length === 32 && hashbytes.slice(20).every((b) => b === 0)) {
|
|
2090
|
-
return { version: repr.version, hashbytes: hashbytes.slice(0, 20) };
|
|
2091
|
-
}
|
|
2092
|
-
throw new Error(`Invalid hashbytes length for PoX version 0x${repr.version.toString(16)}: ${hashbytes.length}`);
|
|
2093
|
-
}
|
|
2094
|
-
function parseBtcAddress(address) {
|
|
2095
|
-
if (address.startsWith("bc1") || address.startsWith("tb1") || address.startsWith("bcrt1")) {
|
|
2096
|
-
return parseSegwitAddress(address);
|
|
2097
|
-
}
|
|
2098
|
-
return parseLegacyAddress(address);
|
|
2099
|
-
}
|
|
2100
|
-
function parseSegwitAddress(address) {
|
|
2101
|
-
let decoded;
|
|
2102
|
-
try {
|
|
2103
|
-
decoded = bech32.decode(address);
|
|
2104
|
-
} catch {
|
|
2105
|
-
decoded = bech32m.decode(address);
|
|
2106
|
-
}
|
|
2107
|
-
const witnessVersion = decoded.words[0];
|
|
2108
|
-
if (witnessVersion === undefined) {
|
|
2109
|
-
throw new Error("Invalid segwit address: missing witness version");
|
|
2110
|
-
}
|
|
2111
|
-
const data = bech32.fromWords(decoded.words.slice(1));
|
|
2112
|
-
const hashbytes = new Uint8Array(data);
|
|
2113
|
-
let version;
|
|
2114
|
-
if (witnessVersion === 0) {
|
|
2115
|
-
if (hashbytes.length === 20) {
|
|
2116
|
-
version = POX_ADDRESS_VERSION.p2wpkh;
|
|
2117
|
-
} else if (hashbytes.length === 32) {
|
|
2118
|
-
version = POX_ADDRESS_VERSION.p2wsh;
|
|
2119
|
-
} else {
|
|
2120
|
-
throw new Error(`Invalid witness v0 program length: ${hashbytes.length}`);
|
|
2121
|
-
}
|
|
2122
|
-
} else if (witnessVersion === 1) {
|
|
2123
|
-
if (hashbytes.length !== 32) {
|
|
2124
|
-
throw new Error(`Invalid witness v1 program length: ${hashbytes.length}`);
|
|
2125
|
-
}
|
|
2126
|
-
version = POX_ADDRESS_VERSION.p2tr;
|
|
2127
|
-
} else {
|
|
2128
|
-
throw new Error(`Unsupported witness version: ${witnessVersion}`);
|
|
2129
|
-
}
|
|
2130
|
-
return { version, hashbytes };
|
|
2131
|
-
}
|
|
2132
|
-
function parseLegacyAddress(address) {
|
|
2133
|
-
const decoded = base58Decode(address);
|
|
2134
|
-
if (decoded.length !== 25) {
|
|
2135
|
-
throw new Error(`Invalid legacy address length: ${decoded.length}`);
|
|
2136
|
-
}
|
|
2137
|
-
const versionByte = decoded[0];
|
|
2138
|
-
if (versionByte === undefined) {
|
|
2139
|
-
throw new Error("Invalid legacy address: missing version byte");
|
|
2140
|
-
}
|
|
2141
|
-
const hashbytes = decoded.slice(1, 21);
|
|
2142
|
-
let version;
|
|
2143
|
-
if (versionByte === 0 || versionByte === 111) {
|
|
2144
|
-
version = POX_ADDRESS_VERSION.p2pkh;
|
|
2145
|
-
} else if (versionByte === 5 || versionByte === 196) {
|
|
2146
|
-
version = POX_ADDRESS_VERSION.p2sh;
|
|
2147
|
-
} else {
|
|
2148
|
-
throw new Error(`Unknown legacy address version byte: 0x${versionByte.toString(16)}`);
|
|
2149
|
-
}
|
|
2150
|
-
return { version, hashbytes };
|
|
2151
|
-
}
|
|
2152
|
-
function stringifyBtcAddress(repr, network) {
|
|
2153
|
-
const { version, hashbytes } = canonicalizeBtcAddress(repr);
|
|
2154
|
-
const params = BITCOIN_NETWORK_PARAMS[network];
|
|
2155
|
-
switch (version) {
|
|
2156
|
-
case POX_ADDRESS_VERSION.p2pkh:
|
|
2157
|
-
return base58CheckEncode(params.p2pkh, hashbytes);
|
|
2158
|
-
case POX_ADDRESS_VERSION.p2sh:
|
|
2159
|
-
case POX_ADDRESS_VERSION.p2sh_p2wpkh:
|
|
2160
|
-
case POX_ADDRESS_VERSION.p2sh_p2wsh:
|
|
2161
|
-
return base58CheckEncode(params.p2sh, hashbytes);
|
|
2162
|
-
case POX_ADDRESS_VERSION.p2wpkh:
|
|
2163
|
-
case POX_ADDRESS_VERSION.p2wsh:
|
|
2164
|
-
return bech32.encode(params.hrp, [0, ...bech32.toWords(hashbytes)]);
|
|
2165
|
-
case POX_ADDRESS_VERSION.p2tr:
|
|
2166
|
-
return bech32m.encode(params.hrp, [1, ...bech32m.toWords(hashbytes)]);
|
|
2167
|
-
default:
|
|
2168
|
-
throw new Error(`Unknown PoX address version: 0x${version.toString(16)}`);
|
|
2169
|
-
}
|
|
2170
|
-
}
|
|
2171
|
-
var BtcAddress = {
|
|
2172
|
-
parse: parseBtcAddress,
|
|
2173
|
-
stringify: stringifyBtcAddress
|
|
2174
|
-
};
|
|
2175
2050
|
// src/pox5/signerCalldata.ts
|
|
2176
2051
|
function buildSignerCalldata(opts) {
|
|
2177
2052
|
const repr = canonicalizeBtcAddress(typeof opts.poxAddress === "string" ? parseBtcAddress(opts.poxAddress) : opts.poxAddress);
|
|
@@ -2221,5 +2096,5 @@ function parseSignerCalldata(calldata) {
|
|
|
2221
2096
|
};
|
|
2222
2097
|
}
|
|
2223
2098
|
|
|
2224
|
-
//# debugId=
|
|
2099
|
+
//# debugId=90830B6EA47D48EC64756E2164756E21
|
|
2225
2100
|
//# sourceMappingURL=index.cjs.map
|