@bitgo-beta/utxo-staking 1.1.1-beta.91 → 1.1.1-beta.911
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/cjs/scripts/babylon-sync.d.ts +2 -0
- package/dist/cjs/scripts/babylon-sync.d.ts.map +1 -0
- package/dist/cjs/scripts/babylon-sync.js +126 -0
- package/dist/cjs/src/babylon/delegationMessage.d.ts +38 -0
- package/dist/cjs/src/babylon/delegationMessage.d.ts.map +1 -0
- package/dist/cjs/src/babylon/delegationMessage.js +285 -0
- package/dist/cjs/src/babylon/descriptor.d.ts +48 -0
- package/dist/cjs/src/babylon/descriptor.d.ts.map +1 -0
- package/dist/cjs/src/babylon/descriptor.js +97 -0
- package/dist/cjs/src/babylon/index.d.ts +8 -0
- package/dist/cjs/src/babylon/index.d.ts.map +1 -0
- package/dist/cjs/src/babylon/index.js +51 -0
- package/dist/cjs/src/babylon/network.d.ts +7 -0
- package/dist/cjs/src/babylon/network.d.ts.map +1 -0
- package/dist/cjs/src/babylon/network.js +66 -0
- package/dist/cjs/src/babylon/params.mainnet.json +152 -0
- package/dist/cjs/src/babylon/params.testnet.json +212 -0
- package/dist/cjs/src/babylon/parseDescriptor.d.ts +26 -0
- package/dist/cjs/src/babylon/parseDescriptor.d.ts.map +1 -0
- package/dist/cjs/src/babylon/parseDescriptor.js +159 -0
- package/dist/cjs/src/babylon/stakingManager.d.ts +6 -0
- package/dist/cjs/src/babylon/stakingManager.d.ts.map +1 -0
- package/dist/cjs/src/babylon/stakingManager.js +120 -0
- package/dist/cjs/src/babylon/stakingParams.d.ts +40 -0
- package/dist/cjs/src/babylon/stakingParams.d.ts.map +1 -0
- package/dist/cjs/src/babylon/stakingParams.js +132 -0
- package/dist/cjs/src/babylon/undelegation/UndelegationResponse.d.ts +24 -0
- package/dist/cjs/src/babylon/undelegation/UndelegationResponse.d.ts.map +1 -0
- package/dist/cjs/src/babylon/undelegation/UndelegationResponse.js +55 -0
- package/dist/cjs/src/babylon/undelegation/index.d.ts +3 -0
- package/dist/cjs/src/babylon/undelegation/index.d.ts.map +1 -0
- package/dist/{src → cjs/src/babylon/undelegation}/index.js +3 -4
- package/dist/cjs/src/babylon/undelegation/unbonding.d.ts +16 -0
- package/dist/cjs/src/babylon/undelegation/unbonding.d.ts.map +1 -0
- package/dist/cjs/src/babylon/undelegation/unbonding.js +111 -0
- package/dist/cjs/src/coreDao/descriptor.d.ts.map +1 -0
- package/dist/cjs/src/coreDao/descriptor.js +38 -0
- package/dist/cjs/src/coreDao/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/coreDao/index.js +1 -1
- package/dist/cjs/src/coreDao/opReturn.d.ts.map +1 -0
- package/dist/cjs/src/coreDao/opReturn.js +183 -0
- package/dist/{src → cjs/src}/coreDao/transaction.d.ts +16 -7
- package/dist/cjs/src/coreDao/transaction.d.ts.map +1 -0
- package/dist/cjs/src/coreDao/transaction.js +34 -0
- package/dist/cjs/src/index.d.ts +3 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/src/index.js +39 -0
- package/dist/cjs/test/unit/babylon/bug71.d.ts +2 -0
- package/dist/cjs/test/unit/babylon/bug71.d.ts.map +1 -0
- package/dist/cjs/test/unit/babylon/bug71.js +108 -0
- package/dist/cjs/test/unit/babylon/key.utils.d.ts +6 -0
- package/dist/cjs/test/unit/babylon/key.utils.d.ts.map +1 -0
- package/dist/cjs/test/unit/babylon/key.utils.js +68 -0
- package/dist/cjs/test/unit/babylon/transactions.d.ts +2 -0
- package/dist/cjs/test/unit/babylon/transactions.d.ts.map +1 -0
- package/dist/cjs/test/unit/babylon/transactions.js +338 -0
- package/dist/cjs/test/unit/babylon/undelegation.d.ts +2 -0
- package/dist/cjs/test/unit/babylon/undelegation.d.ts.map +1 -0
- package/dist/cjs/test/unit/babylon/undelegation.js +156 -0
- package/dist/cjs/test/unit/babylon/vendor.utils.d.ts +13 -0
- package/dist/cjs/test/unit/babylon/vendor.utils.d.ts.map +1 -0
- package/dist/cjs/test/unit/babylon/vendor.utils.js +78 -0
- package/dist/cjs/test/unit/coreDao/descriptor.d.ts +2 -0
- package/dist/cjs/test/unit/coreDao/descriptor.d.ts.map +1 -0
- package/dist/cjs/test/unit/coreDao/descriptor.js +144 -0
- package/dist/cjs/test/unit/coreDao/opReturn.d.ts +2 -0
- package/dist/cjs/test/unit/coreDao/opReturn.d.ts.map +1 -0
- package/dist/cjs/test/unit/coreDao/opReturn.js +275 -0
- package/dist/cjs/test/unit/coreDao/utils.d.ts +5 -0
- package/dist/cjs/test/unit/coreDao/utils.d.ts.map +1 -0
- package/dist/cjs/test/unit/coreDao/utils.js +54 -0
- package/dist/cjs/test/unit/fixtures.utils.d.ts +9 -0
- package/dist/cjs/test/unit/fixtures.utils.d.ts.map +1 -0
- package/dist/cjs/test/unit/fixtures.utils.js +91 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/babylon/delegationMessage.d.ts +38 -0
- package/dist/esm/babylon/delegationMessage.d.ts.map +1 -0
- package/dist/esm/babylon/delegationMessage.js +239 -0
- package/dist/esm/babylon/descriptor.d.ts +48 -0
- package/dist/esm/babylon/descriptor.d.ts.map +1 -0
- package/dist/esm/babylon/descriptor.js +91 -0
- package/dist/esm/babylon/index.d.ts +8 -0
- package/dist/esm/babylon/index.d.ts.map +1 -0
- package/dist/esm/babylon/index.js +13 -0
- package/dist/esm/babylon/network.d.ts +7 -0
- package/dist/esm/babylon/network.d.ts.map +1 -0
- package/dist/esm/babylon/network.js +29 -0
- package/dist/esm/babylon/params.mainnet.json +152 -0
- package/dist/esm/babylon/params.testnet.json +212 -0
- package/dist/esm/babylon/parseDescriptor.d.ts +26 -0
- package/dist/esm/babylon/parseDescriptor.d.ts.map +1 -0
- package/dist/esm/babylon/parseDescriptor.js +155 -0
- package/dist/esm/babylon/stakingManager.d.ts +6 -0
- package/dist/esm/babylon/stakingManager.d.ts.map +1 -0
- package/dist/esm/babylon/stakingManager.js +83 -0
- package/dist/esm/babylon/stakingParams.d.ts +40 -0
- package/dist/esm/babylon/stakingParams.d.ts.map +1 -0
- package/dist/esm/babylon/stakingParams.js +86 -0
- package/dist/esm/babylon/undelegation/UndelegationResponse.d.ts +24 -0
- package/dist/esm/babylon/undelegation/UndelegationResponse.d.ts.map +1 -0
- package/dist/esm/babylon/undelegation/UndelegationResponse.js +18 -0
- package/dist/esm/babylon/undelegation/index.d.ts +3 -0
- package/dist/esm/babylon/undelegation/index.d.ts.map +1 -0
- package/dist/esm/babylon/undelegation/index.js +3 -0
- package/dist/esm/babylon/undelegation/unbonding.d.ts +16 -0
- package/dist/esm/babylon/undelegation/unbonding.d.ts.map +1 -0
- package/dist/esm/babylon/undelegation/unbonding.js +70 -0
- package/dist/esm/coreDao/descriptor.d.ts +18 -0
- package/dist/{src → esm}/coreDao/descriptor.d.ts.map +1 -1
- package/dist/esm/coreDao/descriptor.js +35 -0
- package/dist/esm/coreDao/index.d.ts +4 -0
- package/dist/esm/coreDao/index.js +4 -0
- package/dist/esm/coreDao/opReturn.d.ts +41 -0
- package/dist/esm/coreDao/opReturn.js +175 -0
- package/dist/esm/coreDao/transaction.d.ts +28 -0
- package/dist/esm/coreDao/transaction.d.ts.map +1 -0
- package/dist/esm/coreDao/transaction.js +30 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/{src → esm}/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -0
- package/package.json +42 -12
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -63
- package/dist/src/coreDao/descriptor.js +0 -37
- package/dist/src/coreDao/opReturn.js +0 -183
- package/dist/src/coreDao/transaction.d.ts.map +0 -1
- package/dist/src/coreDao/transaction.js +0 -26
- package/dist/src/index.d.ts +0 -3
- package/dist/src/transaction.d.ts +0 -32
- package/dist/src/transaction.d.ts.map +0 -1
- package/dist/src/transaction.js +0 -54
- /package/dist/{src → cjs/src}/coreDao/descriptor.d.ts +0 -0
- /package/dist/{src → cjs/src}/coreDao/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/coreDao/opReturn.d.ts +0 -0
- /package/dist/{src → esm}/coreDao/index.d.ts.map +0 -0
- /package/dist/{src → esm}/coreDao/opReturn.d.ts.map +0 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"version": 0,
|
|
4
|
+
"params": {
|
|
5
|
+
"covenant_pks": [
|
|
6
|
+
"d45c70d28f169e1f0c7f4a78e2bc73497afe585b70aa897955989068f3350aaa",
|
|
7
|
+
"4b15848e495a3a62283daaadb3f458a00859fe48e321f0121ebabbdd6698f9fa",
|
|
8
|
+
"23b29f89b45f4af41588dcaf0ca572ada32872a88224f311373917f1b37d08d1",
|
|
9
|
+
"d3c79b99ac4d265c2f97ac11e3232c07a598b020cf56c6f055472c893c0967ae",
|
|
10
|
+
"8242640732773249312c47ca7bdb50ca79f15f2ecc32b9c83ceebba44fb74df7",
|
|
11
|
+
"e36200aaa8dce9453567bba108bdc51f7f1174b97a65e4dc4402fc5de779d41c",
|
|
12
|
+
"cbdd028cfe32c1c1f2d84bfec71e19f92df509bba7b8ad31ca6c1a134fe09204",
|
|
13
|
+
"f178fcce82f95c524b53b077e6180bd2d779a9057fdff4255a0af95af918cee0",
|
|
14
|
+
"de13fc96ea6899acbdc5db3afaa683f62fe35b60ff6eb723dad28a11d2b12f8c"
|
|
15
|
+
],
|
|
16
|
+
"covenant_quorum": 6,
|
|
17
|
+
"min_staking_value_sat": "500000",
|
|
18
|
+
"max_staking_value_sat": "5000000",
|
|
19
|
+
"min_staking_time_blocks": 64000,
|
|
20
|
+
"max_staking_time_blocks": 64000,
|
|
21
|
+
"slashing_pk_script": "agdiYWJ5bG9u",
|
|
22
|
+
"min_slashing_tx_fee_sat": "100000",
|
|
23
|
+
"slashing_rate": "0.001000000000000000",
|
|
24
|
+
"unbonding_time_blocks": 1008,
|
|
25
|
+
"unbonding_fee_sat": "64000",
|
|
26
|
+
"min_commission_rate": "0.030000000000000000",
|
|
27
|
+
"delegation_creation_base_gas_fee": "1095000",
|
|
28
|
+
"allow_list_expiration_height": "139920",
|
|
29
|
+
"btc_activation_height": 857910
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"version": 1,
|
|
34
|
+
"params": {
|
|
35
|
+
"covenant_pks": [
|
|
36
|
+
"d45c70d28f169e1f0c7f4a78e2bc73497afe585b70aa897955989068f3350aaa",
|
|
37
|
+
"4b15848e495a3a62283daaadb3f458a00859fe48e321f0121ebabbdd6698f9fa",
|
|
38
|
+
"23b29f89b45f4af41588dcaf0ca572ada32872a88224f311373917f1b37d08d1",
|
|
39
|
+
"d3c79b99ac4d265c2f97ac11e3232c07a598b020cf56c6f055472c893c0967ae",
|
|
40
|
+
"8242640732773249312c47ca7bdb50ca79f15f2ecc32b9c83ceebba44fb74df7",
|
|
41
|
+
"e36200aaa8dce9453567bba108bdc51f7f1174b97a65e4dc4402fc5de779d41c",
|
|
42
|
+
"cbdd028cfe32c1c1f2d84bfec71e19f92df509bba7b8ad31ca6c1a134fe09204",
|
|
43
|
+
"f178fcce82f95c524b53b077e6180bd2d779a9057fdff4255a0af95af918cee0",
|
|
44
|
+
"de13fc96ea6899acbdc5db3afaa683f62fe35b60ff6eb723dad28a11d2b12f8c"
|
|
45
|
+
],
|
|
46
|
+
"covenant_quorum": 6,
|
|
47
|
+
"min_staking_value_sat": "500000",
|
|
48
|
+
"max_staking_value_sat": "50000000000",
|
|
49
|
+
"min_staking_time_blocks": 64000,
|
|
50
|
+
"max_staking_time_blocks": 64000,
|
|
51
|
+
"slashing_pk_script": "agdiYWJ5bG9u",
|
|
52
|
+
"min_slashing_tx_fee_sat": "100000",
|
|
53
|
+
"slashing_rate": "0.001000000000000000",
|
|
54
|
+
"unbonding_time_blocks": 1008,
|
|
55
|
+
"unbonding_fee_sat": "32000",
|
|
56
|
+
"min_commission_rate": "0.030000000000000000",
|
|
57
|
+
"delegation_creation_base_gas_fee": "1095000",
|
|
58
|
+
"allow_list_expiration_height": "139920",
|
|
59
|
+
"btc_activation_height": 864790
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"version": 2,
|
|
64
|
+
"params": {
|
|
65
|
+
"covenant_pks": [
|
|
66
|
+
"d45c70d28f169e1f0c7f4a78e2bc73497afe585b70aa897955989068f3350aaa",
|
|
67
|
+
"4b15848e495a3a62283daaadb3f458a00859fe48e321f0121ebabbdd6698f9fa",
|
|
68
|
+
"23b29f89b45f4af41588dcaf0ca572ada32872a88224f311373917f1b37d08d1",
|
|
69
|
+
"d3c79b99ac4d265c2f97ac11e3232c07a598b020cf56c6f055472c893c0967ae",
|
|
70
|
+
"8242640732773249312c47ca7bdb50ca79f15f2ecc32b9c83ceebba44fb74df7",
|
|
71
|
+
"e36200aaa8dce9453567bba108bdc51f7f1174b97a65e4dc4402fc5de779d41c",
|
|
72
|
+
"cbdd028cfe32c1c1f2d84bfec71e19f92df509bba7b8ad31ca6c1a134fe09204",
|
|
73
|
+
"f178fcce82f95c524b53b077e6180bd2d779a9057fdff4255a0af95af918cee0",
|
|
74
|
+
"de13fc96ea6899acbdc5db3afaa683f62fe35b60ff6eb723dad28a11d2b12f8c"
|
|
75
|
+
],
|
|
76
|
+
"covenant_quorum": 6,
|
|
77
|
+
"min_staking_value_sat": "500000",
|
|
78
|
+
"max_staking_value_sat": "500000000000",
|
|
79
|
+
"min_staking_time_blocks": 64000,
|
|
80
|
+
"max_staking_time_blocks": 64000,
|
|
81
|
+
"slashing_pk_script": "agdiYWJ5bG9u",
|
|
82
|
+
"min_slashing_tx_fee_sat": "100000",
|
|
83
|
+
"slashing_rate": "0.001000000000000000",
|
|
84
|
+
"unbonding_time_blocks": 1008,
|
|
85
|
+
"unbonding_fee_sat": "32000",
|
|
86
|
+
"min_commission_rate": "0.030000000000000000",
|
|
87
|
+
"delegation_creation_base_gas_fee": "1095000",
|
|
88
|
+
"allow_list_expiration_height": "139920",
|
|
89
|
+
"btc_activation_height": 874088
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"version": 3,
|
|
94
|
+
"params": {
|
|
95
|
+
"covenant_pks": [
|
|
96
|
+
"d45c70d28f169e1f0c7f4a78e2bc73497afe585b70aa897955989068f3350aaa",
|
|
97
|
+
"4b15848e495a3a62283daaadb3f458a00859fe48e321f0121ebabbdd6698f9fa",
|
|
98
|
+
"23b29f89b45f4af41588dcaf0ca572ada32872a88224f311373917f1b37d08d1",
|
|
99
|
+
"d3c79b99ac4d265c2f97ac11e3232c07a598b020cf56c6f055472c893c0967ae",
|
|
100
|
+
"8242640732773249312c47ca7bdb50ca79f15f2ecc32b9c83ceebba44fb74df7",
|
|
101
|
+
"e36200aaa8dce9453567bba108bdc51f7f1174b97a65e4dc4402fc5de779d41c",
|
|
102
|
+
"f178fcce82f95c524b53b077e6180bd2d779a9057fdff4255a0af95af918cee0",
|
|
103
|
+
"de13fc96ea6899acbdc5db3afaa683f62fe35b60ff6eb723dad28a11d2b12f8c",
|
|
104
|
+
"cbdd028cfe32c1c1f2d84bfec71e19f92df509bba7b8ad31ca6c1a134fe09204"
|
|
105
|
+
],
|
|
106
|
+
"covenant_quorum": 6,
|
|
107
|
+
"min_staking_value_sat": "500000",
|
|
108
|
+
"max_staking_value_sat": "500000000000",
|
|
109
|
+
"min_staking_time_blocks": 64000,
|
|
110
|
+
"max_staking_time_blocks": 64000,
|
|
111
|
+
"slashing_pk_script": "agdiYWJ5bG9u",
|
|
112
|
+
"min_slashing_tx_fee_sat": "100000",
|
|
113
|
+
"slashing_rate": "0.001000000000000000",
|
|
114
|
+
"unbonding_time_blocks": 1008,
|
|
115
|
+
"unbonding_fee_sat": "32000",
|
|
116
|
+
"min_commission_rate": "0.030000000000000000",
|
|
117
|
+
"delegation_creation_base_gas_fee": "1095000",
|
|
118
|
+
"allow_list_expiration_height": "139920",
|
|
119
|
+
"btc_activation_height": 891425
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"version": 4,
|
|
124
|
+
"params": {
|
|
125
|
+
"covenant_pks": [
|
|
126
|
+
"d45c70d28f169e1f0c7f4a78e2bc73497afe585b70aa897955989068f3350aaa",
|
|
127
|
+
"4b15848e495a3a62283daaadb3f458a00859fe48e321f0121ebabbdd6698f9fa",
|
|
128
|
+
"23b29f89b45f4af41588dcaf0ca572ada32872a88224f311373917f1b37d08d1",
|
|
129
|
+
"d3c79b99ac4d265c2f97ac11e3232c07a598b020cf56c6f055472c893c0967ae",
|
|
130
|
+
"8242640732773249312c47ca7bdb50ca79f15f2ecc32b9c83ceebba44fb74df7",
|
|
131
|
+
"e36200aaa8dce9453567bba108bdc51f7f1174b97a65e4dc4402fc5de779d41c",
|
|
132
|
+
"f178fcce82f95c524b53b077e6180bd2d779a9057fdff4255a0af95af918cee0",
|
|
133
|
+
"de13fc96ea6899acbdc5db3afaa683f62fe35b60ff6eb723dad28a11d2b12f8c",
|
|
134
|
+
"cbdd028cfe32c1c1f2d84bfec71e19f92df509bba7b8ad31ca6c1a134fe09204"
|
|
135
|
+
],
|
|
136
|
+
"covenant_quorum": 6,
|
|
137
|
+
"min_staking_value_sat": "500000",
|
|
138
|
+
"max_staking_value_sat": "500000000000",
|
|
139
|
+
"min_staking_time_blocks": 64000,
|
|
140
|
+
"max_staking_time_blocks": 64000,
|
|
141
|
+
"slashing_pk_script": "agdiYWJ5bG9u",
|
|
142
|
+
"min_slashing_tx_fee_sat": "100000",
|
|
143
|
+
"slashing_rate": "0.001000000000000000",
|
|
144
|
+
"unbonding_time_blocks": 1008,
|
|
145
|
+
"unbonding_fee_sat": "9600",
|
|
146
|
+
"min_commission_rate": "0.030000000000000000",
|
|
147
|
+
"delegation_creation_base_gas_fee": "1095000",
|
|
148
|
+
"allow_list_expiration_height": "139920",
|
|
149
|
+
"btc_activation_height": 893362
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
]
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"version": 0,
|
|
4
|
+
"params": {
|
|
5
|
+
"covenant_pks": [
|
|
6
|
+
"49766ccd9e3cd94343e2040474a77fb37cdfd30530d05f9f1e96ae1e2102c86e",
|
|
7
|
+
"76d1ae01f8fb6bf30108731c884cddcf57ef6eef2d9d9559e130894e0e40c62c",
|
|
8
|
+
"17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
|
|
9
|
+
"113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
|
|
10
|
+
"79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
|
|
11
|
+
"3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
|
|
12
|
+
"d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
|
|
13
|
+
"40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
|
|
14
|
+
"f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
|
|
15
|
+
],
|
|
16
|
+
"covenant_quorum": 6,
|
|
17
|
+
"min_staking_value_sat": "50000",
|
|
18
|
+
"max_staking_value_sat": "5000000",
|
|
19
|
+
"min_staking_time_blocks": 64000,
|
|
20
|
+
"max_staking_time_blocks": 64000,
|
|
21
|
+
"slashing_pk_script": "dqkUAQEBAQEBAQEBAQEBAQEBAQEBAQGIrA==",
|
|
22
|
+
"min_slashing_tx_fee_sat": "1000",
|
|
23
|
+
"slashing_rate": "0.100000000000000000",
|
|
24
|
+
"unbonding_time_blocks": 1008,
|
|
25
|
+
"unbonding_fee_sat": "2000",
|
|
26
|
+
"min_commission_rate": "0.030000000000000000",
|
|
27
|
+
"delegation_creation_base_gas_fee": "1000",
|
|
28
|
+
"allow_list_expiration_height": "26120",
|
|
29
|
+
"btc_activation_height": 197535
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"version": 1,
|
|
34
|
+
"params": {
|
|
35
|
+
"covenant_pks": [
|
|
36
|
+
"09585ab55a971a231c945790a0a81df754e5a07263a5c20829931cc24683bbb7",
|
|
37
|
+
"76d1ae01f8fb6bf30108731c884cddcf57ef6eef2d9d9559e130894e0e40c62c",
|
|
38
|
+
"17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
|
|
39
|
+
"113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
|
|
40
|
+
"79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
|
|
41
|
+
"3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
|
|
42
|
+
"d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
|
|
43
|
+
"40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
|
|
44
|
+
"f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
|
|
45
|
+
],
|
|
46
|
+
"covenant_quorum": 6,
|
|
47
|
+
"min_staking_value_sat": "50000",
|
|
48
|
+
"max_staking_value_sat": "5000000",
|
|
49
|
+
"min_staking_time_blocks": 64000,
|
|
50
|
+
"max_staking_time_blocks": 64000,
|
|
51
|
+
"slashing_pk_script": "dqkUAQEBAQEBAQEBAQEBAQEBAQEBAQGIrA==",
|
|
52
|
+
"min_slashing_tx_fee_sat": "1000",
|
|
53
|
+
"slashing_rate": "0.100000000000000000",
|
|
54
|
+
"unbonding_time_blocks": 1008,
|
|
55
|
+
"unbonding_fee_sat": "10000",
|
|
56
|
+
"min_commission_rate": "0.030000000000000000",
|
|
57
|
+
"delegation_creation_base_gas_fee": "1000",
|
|
58
|
+
"allow_list_expiration_height": "26120",
|
|
59
|
+
"btc_activation_height": 198665
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"version": 2,
|
|
64
|
+
"params": {
|
|
65
|
+
"covenant_pks": [
|
|
66
|
+
"fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737",
|
|
67
|
+
"0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25",
|
|
68
|
+
"17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
|
|
69
|
+
"113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
|
|
70
|
+
"79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
|
|
71
|
+
"3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
|
|
72
|
+
"d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
|
|
73
|
+
"40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
|
|
74
|
+
"f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
|
|
75
|
+
],
|
|
76
|
+
"covenant_quorum": 6,
|
|
77
|
+
"min_staking_value_sat": "50000",
|
|
78
|
+
"max_staking_value_sat": "5000000",
|
|
79
|
+
"min_staking_time_blocks": 64000,
|
|
80
|
+
"max_staking_time_blocks": 64000,
|
|
81
|
+
"slashing_pk_script": "dqkUAQEBAQEBAQEBAQEBAQEBAQEBAQGIrA==",
|
|
82
|
+
"min_slashing_tx_fee_sat": "1000",
|
|
83
|
+
"slashing_rate": "0.100000000000000000",
|
|
84
|
+
"unbonding_time_blocks": 1008,
|
|
85
|
+
"unbonding_fee_sat": "10000",
|
|
86
|
+
"min_commission_rate": "0.030000000000000000",
|
|
87
|
+
"delegation_creation_base_gas_fee": "1000",
|
|
88
|
+
"allow_list_expiration_height": "26120",
|
|
89
|
+
"btc_activation_height": 200665
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"version": 3,
|
|
94
|
+
"params": {
|
|
95
|
+
"covenant_pks": [
|
|
96
|
+
"fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737",
|
|
97
|
+
"0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25",
|
|
98
|
+
"17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
|
|
99
|
+
"113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
|
|
100
|
+
"79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
|
|
101
|
+
"3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
|
|
102
|
+
"d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
|
|
103
|
+
"40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
|
|
104
|
+
"f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
|
|
105
|
+
],
|
|
106
|
+
"covenant_quorum": 6,
|
|
107
|
+
"min_staking_value_sat": "50000",
|
|
108
|
+
"max_staking_value_sat": "50000000",
|
|
109
|
+
"min_staking_time_blocks": 64000,
|
|
110
|
+
"max_staking_time_blocks": 64000,
|
|
111
|
+
"slashing_pk_script": "dqkUAQEBAQEBAQEBAQEBAQEBAQEBAQGIrA==",
|
|
112
|
+
"min_slashing_tx_fee_sat": "1000",
|
|
113
|
+
"slashing_rate": "0.100000000000000000",
|
|
114
|
+
"unbonding_time_blocks": 1008,
|
|
115
|
+
"unbonding_fee_sat": "5000",
|
|
116
|
+
"min_commission_rate": "0.030000000000000000",
|
|
117
|
+
"delegation_creation_base_gas_fee": "1000",
|
|
118
|
+
"allow_list_expiration_height": "26120",
|
|
119
|
+
"btc_activation_height": 215968
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"version": 4,
|
|
124
|
+
"params": {
|
|
125
|
+
"covenant_pks": [
|
|
126
|
+
"fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737",
|
|
127
|
+
"0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25",
|
|
128
|
+
"17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
|
|
129
|
+
"113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
|
|
130
|
+
"79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
|
|
131
|
+
"3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
|
|
132
|
+
"d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
|
|
133
|
+
"40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
|
|
134
|
+
"f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
|
|
135
|
+
],
|
|
136
|
+
"covenant_quorum": 6,
|
|
137
|
+
"min_staking_value_sat": "50000",
|
|
138
|
+
"max_staking_value_sat": "50000000",
|
|
139
|
+
"min_staking_time_blocks": 64000,
|
|
140
|
+
"max_staking_time_blocks": 64000,
|
|
141
|
+
"slashing_pk_script": "dqkUAQEBAQEBAQEBAQEBAQEBAQEBAQGIrA==",
|
|
142
|
+
"min_slashing_tx_fee_sat": "1000",
|
|
143
|
+
"slashing_rate": "0.100000000000000000",
|
|
144
|
+
"unbonding_time_blocks": 1008,
|
|
145
|
+
"unbonding_fee_sat": "5000",
|
|
146
|
+
"min_commission_rate": "0.030000000000000000",
|
|
147
|
+
"delegation_creation_base_gas_fee": "1000",
|
|
148
|
+
"allow_list_expiration_height": "26120",
|
|
149
|
+
"btc_activation_height": 220637
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"version": 5,
|
|
154
|
+
"params": {
|
|
155
|
+
"covenant_pks": [
|
|
156
|
+
"fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737",
|
|
157
|
+
"0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25",
|
|
158
|
+
"17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
|
|
159
|
+
"113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
|
|
160
|
+
"79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
|
|
161
|
+
"3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
|
|
162
|
+
"d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
|
|
163
|
+
"40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
|
|
164
|
+
"f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
|
|
165
|
+
],
|
|
166
|
+
"covenant_quorum": 6,
|
|
167
|
+
"min_staking_value_sat": "50000",
|
|
168
|
+
"max_staking_value_sat": "35000000000",
|
|
169
|
+
"min_staking_time_blocks": 10000,
|
|
170
|
+
"max_staking_time_blocks": 64000,
|
|
171
|
+
"slashing_pk_script": "ABRb4SYk0IorQkCV18ByIcM0UNFL8Q==",
|
|
172
|
+
"min_slashing_tx_fee_sat": "5000",
|
|
173
|
+
"slashing_rate": "0.050000000000000000",
|
|
174
|
+
"unbonding_time_blocks": 1008,
|
|
175
|
+
"unbonding_fee_sat": "2000",
|
|
176
|
+
"min_commission_rate": "0.030000000000000000",
|
|
177
|
+
"delegation_creation_base_gas_fee": "1095000",
|
|
178
|
+
"allow_list_expiration_height": "26124",
|
|
179
|
+
"btc_activation_height": 227174
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"version": 6,
|
|
184
|
+
"params": {
|
|
185
|
+
"covenant_pks": [
|
|
186
|
+
"fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737",
|
|
187
|
+
"0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25",
|
|
188
|
+
"17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
|
|
189
|
+
"113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
|
|
190
|
+
"79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
|
|
191
|
+
"3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
|
|
192
|
+
"d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
|
|
193
|
+
"40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
|
|
194
|
+
"f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
|
|
195
|
+
],
|
|
196
|
+
"covenant_quorum": 6,
|
|
197
|
+
"min_staking_value_sat": "50000",
|
|
198
|
+
"max_staking_value_sat": "35000000000",
|
|
199
|
+
"min_staking_time_blocks": 10000,
|
|
200
|
+
"max_staking_time_blocks": 64000,
|
|
201
|
+
"slashing_pk_script": "ABRb4SYk0IorQkCV18ByIcM0UNFL8Q==",
|
|
202
|
+
"min_slashing_tx_fee_sat": "6000",
|
|
203
|
+
"slashing_rate": "0.050000000000000000",
|
|
204
|
+
"unbonding_time_blocks": 1008,
|
|
205
|
+
"unbonding_fee_sat": "2000",
|
|
206
|
+
"min_commission_rate": "0.030000000000000000",
|
|
207
|
+
"delegation_creation_base_gas_fee": "1095000",
|
|
208
|
+
"allow_list_expiration_height": "26124",
|
|
209
|
+
"btc_activation_height": 235952
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Descriptor, ast } from '@bitgo/wasm-utxo';
|
|
2
|
+
export type ParsedStakingDescriptor = {
|
|
3
|
+
stakerKey: Buffer;
|
|
4
|
+
finalityProviderKeys: Buffer[];
|
|
5
|
+
covenantKeys: Buffer[];
|
|
6
|
+
covenantThreshold: number;
|
|
7
|
+
stakingTimeLock: number;
|
|
8
|
+
slashingMiniscriptNode: ast.MiniscriptNode;
|
|
9
|
+
unbondingMiniscriptNode: ast.MiniscriptNode;
|
|
10
|
+
timelockMiniscriptNode: ast.MiniscriptNode;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* @return parsed staking descriptor components or null if the descriptor does not match the expected staking pattern.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseStakingDescriptor(descriptor: Descriptor | ast.DescriptorNode): ParsedStakingDescriptor | null;
|
|
16
|
+
export type ParsedUnbondingDescriptor = {
|
|
17
|
+
stakerKey: Buffer;
|
|
18
|
+
finalityProviderKeys: Buffer[];
|
|
19
|
+
covenantKeys: Buffer[];
|
|
20
|
+
covenantThreshold: number;
|
|
21
|
+
unbondingTimeLock: number;
|
|
22
|
+
slashingMiniscriptNode: ast.MiniscriptNode;
|
|
23
|
+
unbondingTimelockMiniscriptNode: ast.MiniscriptNode;
|
|
24
|
+
};
|
|
25
|
+
export declare function parseUnbondingDescriptor(descriptor: Descriptor | ast.DescriptorNode): ParsedUnbondingDescriptor | null;
|
|
26
|
+
//# sourceMappingURL=parseDescriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseDescriptor.d.ts","sourceRoot":"","sources":["../../../src/babylon/parseDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAKnD,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,GAAG,CAAC,cAAc,CAAC;IAC3C,uBAAuB,EAAE,GAAG,CAAC,cAAc,CAAC;IAC5C,sBAAsB,EAAE,GAAG,CAAC,cAAc,CAAC;CAC5C,CAAC;AAwFF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,GAAG,CAAC,cAAc,GAAG,uBAAuB,GAAG,IAAI,CA+DlH;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,GAAG,CAAC,cAAc,CAAC;IAC3C,+BAA+B,EAAE,GAAG,CAAC,cAAc,CAAC;CACrD,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,GAAG,GAAG,CAAC,cAAc,GAC1C,yBAAyB,GAAG,IAAI,CA2ClC"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { Descriptor, ast } from '@bitgo/wasm-utxo';
|
|
2
|
+
import { PatternMatcher } from '@bitgo-beta/utxo-core/descriptor';
|
|
3
|
+
import { getUnspendableKey } from './descriptor';
|
|
4
|
+
function parseMulti(multi) {
|
|
5
|
+
if (!Array.isArray(multi) || multi.length < 1) {
|
|
6
|
+
throw new Error('Invalid multi structure: not an array or empty');
|
|
7
|
+
}
|
|
8
|
+
const [threshold, ...keys] = multi;
|
|
9
|
+
if (typeof threshold !== 'number') {
|
|
10
|
+
throw new Error('Invalid multi structure: threshold is not a number');
|
|
11
|
+
}
|
|
12
|
+
if (!keys.every((k) => typeof k === 'string')) {
|
|
13
|
+
throw new Error('Invalid multi structure: not all keys are strings');
|
|
14
|
+
}
|
|
15
|
+
return [threshold, keys];
|
|
16
|
+
}
|
|
17
|
+
function parseUnilateralTimelock(node, matcher) {
|
|
18
|
+
const pattern = {
|
|
19
|
+
and_v: [{ 'v:pk': { $var: 'key' } }, { older: { $var: 'timelock' } }],
|
|
20
|
+
};
|
|
21
|
+
const match = matcher.match(node, pattern);
|
|
22
|
+
if (!match) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
if (typeof match.key !== 'string') {
|
|
26
|
+
throw new Error('key must be a string');
|
|
27
|
+
}
|
|
28
|
+
if (typeof match.timelock !== 'number') {
|
|
29
|
+
throw new Error('timelock must be a number');
|
|
30
|
+
}
|
|
31
|
+
return { key: match.key, timelock: match.timelock };
|
|
32
|
+
}
|
|
33
|
+
function parseSlashingNode(slashingNode, matcher) {
|
|
34
|
+
const slashingPattern = {
|
|
35
|
+
and_v: [
|
|
36
|
+
{
|
|
37
|
+
and_v: [{ 'v:pk': { $var: 'stakerKey' } }, { $var: 'finalityProviderKeyOrMulti' }],
|
|
38
|
+
},
|
|
39
|
+
{ multi_a: { $var: 'covenantMulti' } },
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
const slashingMatch = matcher.match(slashingNode, slashingPattern);
|
|
43
|
+
if (!slashingMatch) {
|
|
44
|
+
throw new Error('Slashing node does not match expected pattern');
|
|
45
|
+
}
|
|
46
|
+
if (typeof slashingMatch.stakerKey !== 'string') {
|
|
47
|
+
throw new Error('stakerKey must be a string');
|
|
48
|
+
}
|
|
49
|
+
const [covenantThreshold, covenantKeyStrings] = parseMulti(slashingMatch.covenantMulti);
|
|
50
|
+
const covenantKeys = covenantKeyStrings.map((k) => Buffer.from(k, 'hex'));
|
|
51
|
+
let finalityProviderKeys;
|
|
52
|
+
const fpKeyOrMulti = slashingMatch.finalityProviderKeyOrMulti;
|
|
53
|
+
if ('v:pk' in fpKeyOrMulti) {
|
|
54
|
+
finalityProviderKeys = [Buffer.from(fpKeyOrMulti['v:pk'], 'hex')];
|
|
55
|
+
}
|
|
56
|
+
else if ('v:multi_a' in fpKeyOrMulti) {
|
|
57
|
+
const [threshold, keyStrings] = parseMulti(fpKeyOrMulti['v:multi_a']);
|
|
58
|
+
if (threshold !== 1) {
|
|
59
|
+
throw new Error('Finality provider multi threshold must be 1');
|
|
60
|
+
}
|
|
61
|
+
finalityProviderKeys = keyStrings.map((k) => Buffer.from(k, 'hex'));
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
throw new Error('Invalid finality provider key structure');
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
stakerKey: slashingMatch.stakerKey,
|
|
68
|
+
finalityProviderKeys,
|
|
69
|
+
covenantKeys,
|
|
70
|
+
covenantThreshold,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @return parsed staking descriptor components or null if the descriptor does not match the expected staking pattern.
|
|
75
|
+
*/
|
|
76
|
+
export function parseStakingDescriptor(descriptor) {
|
|
77
|
+
const pattern = {
|
|
78
|
+
tr: [
|
|
79
|
+
getUnspendableKey(),
|
|
80
|
+
[{ $var: 'slashingMiniscriptNode' }, [{ $var: 'unbondingMiniscriptNode' }, { $var: 'timelockMiniscriptNode' }]],
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
const matcher = new PatternMatcher();
|
|
84
|
+
const descriptorNode = descriptor instanceof Descriptor ? ast.fromDescriptor(descriptor) : descriptor;
|
|
85
|
+
const result = matcher.match(descriptorNode, pattern);
|
|
86
|
+
if (!result) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
const slashingNode = result.slashingMiniscriptNode;
|
|
90
|
+
const unbondingNode = result.unbondingMiniscriptNode;
|
|
91
|
+
const timelockNode = result.timelockMiniscriptNode;
|
|
92
|
+
// Verify slashing node shape: and_v([and_v([pk, pk/multi_a]), multi_a])
|
|
93
|
+
const { stakerKey: stakerKey1, finalityProviderKeys, covenantKeys, covenantThreshold, } = parseSlashingNode(slashingNode, matcher);
|
|
94
|
+
// Verify unbonding node shape: and_v([pk, multi_a])
|
|
95
|
+
const unbondingPattern = {
|
|
96
|
+
and_v: [{ 'v:pk': { $var: 'stakerKey2' } }, { multi_a: { $var: 'covenantMulti2' } }],
|
|
97
|
+
};
|
|
98
|
+
const unbondingMatch = matcher.match(unbondingNode, unbondingPattern);
|
|
99
|
+
if (!unbondingMatch) {
|
|
100
|
+
throw new Error('Unbonding node does not match expected pattern');
|
|
101
|
+
}
|
|
102
|
+
// Verify unbonding timelock node shape: and_v([pk, older])
|
|
103
|
+
const unilateralTimelock = parseUnilateralTimelock(timelockNode, matcher);
|
|
104
|
+
if (!unilateralTimelock) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
const { key: stakerKey3, timelock: stakingTimeLock } = unilateralTimelock;
|
|
108
|
+
// Verify all staker keys are the same
|
|
109
|
+
if (stakerKey1 !== unbondingMatch.stakerKey2 || unbondingMatch.stakerKey2 !== stakerKey3) {
|
|
110
|
+
throw new Error('Staker keys must be identical across all nodes');
|
|
111
|
+
}
|
|
112
|
+
const stakerKey = Buffer.from(stakerKey1, 'hex');
|
|
113
|
+
return {
|
|
114
|
+
stakerKey,
|
|
115
|
+
finalityProviderKeys,
|
|
116
|
+
covenantKeys,
|
|
117
|
+
covenantThreshold,
|
|
118
|
+
stakingTimeLock,
|
|
119
|
+
slashingMiniscriptNode: slashingNode,
|
|
120
|
+
unbondingMiniscriptNode: unbondingNode,
|
|
121
|
+
timelockMiniscriptNode: timelockNode,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
export function parseUnbondingDescriptor(descriptor) {
|
|
125
|
+
const pattern = {
|
|
126
|
+
tr: [getUnspendableKey(), [{ $var: 'slashingMiniscriptNode' }, { $var: 'unbondingTimelockMiniscriptNode' }]],
|
|
127
|
+
};
|
|
128
|
+
const matcher = new PatternMatcher();
|
|
129
|
+
const descriptorNode = descriptor instanceof Descriptor ? ast.fromDescriptor(descriptor) : descriptor;
|
|
130
|
+
const result = matcher.match(descriptorNode, pattern);
|
|
131
|
+
if (!result) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
const slashingNode = result.slashingMiniscriptNode;
|
|
135
|
+
const unbondingTimelockNode = result.unbondingTimelockMiniscriptNode;
|
|
136
|
+
const { stakerKey: stakerKey1, finalityProviderKeys, covenantKeys, covenantThreshold, } = parseSlashingNode(slashingNode, matcher);
|
|
137
|
+
const unilateralTimelock = parseUnilateralTimelock(unbondingTimelockNode, matcher);
|
|
138
|
+
if (!unilateralTimelock) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
const { key: stakerKey2, timelock: unbondingTimeLock } = unilateralTimelock;
|
|
142
|
+
if (stakerKey1 !== stakerKey2) {
|
|
143
|
+
throw new Error('Staker keys must be identical across all nodes');
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
stakerKey: Buffer.from(stakerKey1, 'hex'),
|
|
147
|
+
finalityProviderKeys,
|
|
148
|
+
covenantKeys,
|
|
149
|
+
covenantThreshold,
|
|
150
|
+
unbondingTimeLock,
|
|
151
|
+
slashingMiniscriptNode: slashingNode,
|
|
152
|
+
unbondingTimelockMiniscriptNode: unbondingTimelockNode,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VEZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhYnlsb24vcGFyc2VEZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBVyxNQUFNLGtDQUFrQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQWFqRCxTQUFTLFVBQVUsQ0FBQyxLQUFjO0lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ25DLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQzlCLElBQXdCLEVBQ3hCLE9BQXVCO0lBRXZCLE1BQU0sT0FBTyxHQUFZO1FBQ3ZCLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFF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QUM7SUFFRCxPQUFPO1FBQ0wsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztRQUN6QyxvQkFBb0I7UUFDcEIsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsc0JBQXNCLEVBQUUsWUFBWTtRQUNwQywrQkFBK0IsRUFBRSxxQkFBcUI7S0FDdkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmlwdG9yLCBhc3QgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCB7IFBhdHRlcm5NYXRjaGVyLCBQYXR0ZXJuIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlL2Rlc2NyaXB0b3InO1xuXG5pbXBvcnQgeyBnZXRVbnNwZW5kYWJsZUtleSB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIFBhcnNlZFN0YWtpbmdEZXNjcmlwdG9yID0ge1xuICBzdGFrZXJLZXk6IEJ1ZmZlcjtcbiAgZmluYWxpdHlQcm92aWRlcktleXM6IEJ1ZmZlcltdO1xuICBjb3ZlbmFudEtleXM6IEJ1ZmZlcltdO1xuICBjb3ZlbmFudFRocmVzaG9sZDogbnVtYmVyO1xuICBzdGFraW5nVGltZUxvY2s6IG51bWJlcjtcbiAgc2xhc2hpbmdNaW5pc2NyaXB0Tm9kZTogYXN0Lk1pbmlzY3JpcHROb2RlO1xuICB1bmJvbmRpbmdNaW5pc2NyaXB0Tm9kZTogYXN0Lk1pbmlzY3JpcHROb2RlO1xuICB0aW1lbG9ja01pbmlzY3JpcHROb2RlOiBhc3QuTWluaXNjcmlwdE5vZGU7XG59O1xuXG5mdW5jdGlvbiBwYXJzZU11bHRpKG11bHRpOiB1bmtub3duKTogW251bWJlciwgc3RyaW5nW11dIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG11bHRpKSB8fCBtdWx0aS5sZW5ndGggPCAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG11bHRpIHN0cnVjdHVyZTogbm90IGFuIGFycmF5IG9yIGVtcHR5Jyk7XG4gIH1cbiAgY29uc3QgW3RocmVzaG9sZCwgLi4ua2V5c10gPSBtdWx0aTtcbiAgaWYgKHR5cGVvZiB0aHJlc2hvbGQgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG11bHRpIHN0cnVjdHVyZTogdGhyZXNob2xkIGlzIG5vdCBhIG51bWJlcicpO1xuICB9XG4gIGlmICgha2V5cy5ldmVyeSgoaykgPT4gdHlwZW9mIGsgPT09ICdzdHJpbmcnKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBtdWx0aSBzdHJ1Y3R1cmU6IG5vdCBhbGwga2V5cyBhcmUgc3RyaW5ncycpO1xuICB9XG4gIHJldHVybiBbdGhyZXNob2xkLCBrZXlzXTtcbn1cblxuZnVuY3Rpb24gcGFyc2VVbmlsYXRlcmFsVGltZWxvY2soXG4gIG5vZGU6IGFzdC5NaW5pc2NyaXB0Tm9kZSxcbiAgbWF0Y2hlcjogUGF0dGVybk1hdGNoZXJcbik6IHsga2V5OiBzdHJpbmc7IHRpbWVsb2NrOiBudW1iZXIgfSB8IG51bGwge1xuICBjb25zdCBwYXR0ZXJuOiBQYXR0ZXJuID0ge1xuICAgIGFuZF92OiBbeyAndjpwayc6IHsgJHZhcjogJ2tleScgfSB9LCB7IG9sZGVyOiB7ICR2YXI6ICd0aW1lbG9jaycgfSB9XSxcbiAgfTtcbiAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyLm1hdGNoKG5vZGUsIHBhdHRlcm4pO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgaWYgKHR5cGVvZiBtYXRjaC5rZXkgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdrZXkgbXVzdCBiZSBhIHN0cmluZycpO1xuICB9XG4gIGlmICh0eXBlb2YgbWF0Y2gudGltZWxvY2sgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0aW1lbG9jayBtdXN0IGJlIGEgbnVtYmVyJyk7XG4gIH1cbiAgcmV0dXJuIHsga2V5OiBtYXRjaC5rZXksIHRpbWVsb2NrOiBtYXRjaC50aW1lbG9jayB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZVNsYXNoaW5nTm9kZShcbiAgc2xhc2hpbmdOb2RlOiBhc3QuTWluaXNjcmlwdE5vZGUsXG4gIG1hdGNoZXI6IFBhdHRlcm5NYXRjaGVyXG4pOiB7XG4gIHN0YWtlcktleTogc3RyaW5nO1xuICBmaW5hbGl0eVByb3ZpZGVyS2V5czogQnVmZmVyW107XG4gIGNvdmVuYW50S2V5czogQnVmZmVyW107XG4gIGNvdmVuYW50VGhyZXNob2xkOiBudW1iZXI7XG59IHtcbiAgY29uc3Qgc2xhc2hpbmdQYXR0ZXJuOiBQYXR0ZXJuID0ge1xuICAgIGFuZF92OiBbXG4gICAgICB7XG4gICAgICAgIGFuZF92OiBbeyAndjpwayc6IHsgJHZhcjogJ3N0YWtlcktleScgfSB9LCB7ICR2YXI6ICdmaW5hbGl0eVByb3ZpZGVyS2V5T3JNdWx0aScgfV0sXG4gICAgICB9LFxuICAgICAgeyBtdWx0aV9hOiB7ICR2YXI6ICdjb3ZlbmFudE11bHRpJyB9IH0sXG4gICAgXSxcbiAgfTtcblxuICBjb25zdCBzbGFzaGluZ01hdGNoID0gbWF0Y2hlci5tYXRjaChzbGFzaGluZ05vZGUsIHNsYXNoaW5nUGF0dGVybik7XG4gIGlmICghc2xhc2hpbmdNYXRjaCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2xhc2hpbmcgbm9kZSBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZCBwYXR0ZXJuJyk7XG4gIH1cblxuICBpZiAodHlwZW9mIHNsYXNoaW5nTWF0Y2guc3Rha2VyS2V5ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignc3Rha2VyS2V5IG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgfVxuXG4gIGNvbnN0IFtjb3ZlbmFudFRocmVzaG9sZCwgY292ZW5hbnRLZXlTdHJpbmdzXSA9IHBhcnNlTXVsdGkoc2xhc2hpbmdNYXRjaC5jb3ZlbmFudE11bHRpKTtcbiAgY29uc3QgY292ZW5hbnRLZXlzID0gY292ZW5hbnRLZXlTdHJpbmdzLm1hcCgoaykgPT4gQnVmZmVyLmZyb20oaywgJ2hleCcpKTtcblxuICBsZXQgZmluYWxpdHlQcm92aWRlcktleXM6IEJ1ZmZlcltdO1xuICBjb25zdCBmcEtleU9yTXVsdGkgPSBzbGFzaGluZ01hdGNoLmZpbmFsaXR5UHJvdmlkZXJLZXlPck11bHRpIGFzIGFzdC5NaW5pc2NyaXB0Tm9kZTtcbiAgaWYgKCd2OnBrJyBpbiBmcEtleU9yTXVsdGkpIHtcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cyA9IFtCdWZmZXIuZnJvbShmcEtleU9yTXVsdGlbJ3Y6cGsnXSwgJ2hleCcpXTtcbiAgfSBlbHNlIGlmICgndjptdWx0aV9hJyBpbiBmcEtleU9yTXVsdGkpIHtcbiAgICBjb25zdCBbdGhyZXNob2xkLCBrZXlTdHJpbmdzXSA9IHBhcnNlTXVsdGkoZnBLZXlPck11bHRpWyd2Om11bHRpX2EnXSk7XG4gICAgaWYgKHRocmVzaG9sZCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaW5hbGl0eSBwcm92aWRlciBtdWx0aSB0aHJlc2hvbGQgbXVzdCBiZSAxJyk7XG4gICAgfVxuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzID0ga2V5U3RyaW5ncy5tYXAoKGspID0+IEJ1ZmZlci5mcm9tKGssICdoZXgnKSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGZpbmFsaXR5IHByb3ZpZGVyIGtleSBzdHJ1Y3R1cmUnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc3Rha2VyS2V5OiBzbGFzaGluZ01hdGNoLnN0YWtlcktleSxcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cyxcbiAgICBjb3ZlbmFudEtleXMsXG4gICAgY292ZW5hbnRUaHJlc2hvbGQsXG4gIH07XG59XG5cbi8qKlxuICogQHJldHVybiBwYXJzZWQgc3Rha2luZyBkZXNjcmlwdG9yIGNvbXBvbmVudHMgb3IgbnVsbCBpZiB0aGUgZGVzY3JpcHRvciBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgc3Rha2luZyBwYXR0ZXJuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTdGFraW5nRGVzY3JpcHRvcihkZXNjcmlwdG9yOiBEZXNjcmlwdG9yIHwgYXN0LkRlc2NyaXB0b3JOb2RlKTogUGFyc2VkU3Rha2luZ0Rlc2NyaXB0b3IgfCBudWxsIHtcbiAgY29uc3QgcGF0dGVybjogUGF0dGVybiA9IHtcbiAgICB0cjogW1xuICAgICAgZ2V0VW5zcGVuZGFibGVLZXkoKSxcbiAgICAgIFt7ICR2YXI6ICdzbGFzaGluZ01pbmlzY3JpcHROb2RlJyB9LCBbeyAkdmFyOiAndW5ib25kaW5nTWluaXNjcmlwdE5vZGUnIH0sIHsgJHZhcjogJ3RpbWVsb2NrTWluaXNjcmlwdE5vZGUnIH1dXSxcbiAgICBdLFxuICB9O1xuXG4gIGNvbnN0IG1hdGNoZXIgPSBuZXcgUGF0dGVybk1hdGNoZXIoKTtcbiAgY29uc3QgZGVzY3JpcHRvck5vZGUgPSBkZXNjcmlwdG9yIGluc3RhbmNlb2YgRGVzY3JpcHRvciA/IGFzdC5mcm9tRGVzY3JpcHRvcihkZXNjcmlwdG9yKSA6IGRlc2NyaXB0b3I7XG4gIGNvbnN0IHJlc3VsdCA9IG1hdGNoZXIubWF0Y2goZGVzY3JpcHRvck5vZGUsIHBhdHRlcm4pO1xuXG4gIGlmICghcmVzdWx0KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBzbGFzaGluZ05vZGUgPSByZXN1bHQuc2xhc2hpbmdNaW5pc2NyaXB0Tm9kZSBhcyBhc3QuTWluaXNjcmlwdE5vZGU7XG4gIGNvbnN0IHVuYm9uZGluZ05vZGUgPSByZXN1bHQudW5ib25kaW5nTWluaXNjcmlwdE5vZGUgYXMgYXN0Lk1pbmlzY3JpcHROb2RlO1xuICBjb25zdCB0aW1lbG9ja05vZGUgPSByZXN1bHQudGltZWxvY2tNaW5pc2NyaXB0Tm9kZSBhcyBhc3QuTWluaXNjcmlwdE5vZGU7XG5cbiAgLy8gVmVyaWZ5IHNsYXNoaW5nIG5vZGUgc2hhcGU6IGFuZF92KFthbmRfdihbcGssIHBrL211bHRpX2FdKSwgbXVsdGlfYV0pXG4gIGNvbnN0IHtcbiAgICBzdGFrZXJLZXk6IHN0YWtlcktleTEsXG4gICAgZmluYWxpdHlQcm92aWRlcktleXMsXG4gICAgY292ZW5hbnRLZXlzLFxuICAgIGNvdmVuYW50VGhyZXNob2xkLFxuICB9ID0gcGFyc2VTbGFzaGluZ05vZGUoc2xhc2hpbmdOb2RlLCBtYXRjaGVyKTtcblxuICAvLyBWZXJpZnkgdW5ib25kaW5nIG5vZGUgc2hhcGU6IGFuZF92KFtwaywgbXVsdGlfYV0pXG4gIGNvbnN0IHVuYm9uZGluZ1BhdHRlcm46IFBhdHRlcm4gPSB7XG4gICAgYW5kX3Y6IFt7ICd2OnBrJzogeyAkdmFyOiAnc3Rha2VyS2V5MicgfSB9LCB7IG11bHRpX2E6IHsgJHZhcjogJ2NvdmVuYW50TXVsdGkyJyB9IH1dLFxuICB9O1xuXG4gIGNvbnN0IHVuYm9uZGluZ01hdGNoID0gbWF0Y2hlci5tYXRjaCh1bmJvbmRpbmdOb2RlLCB1bmJvbmRpbmdQYXR0ZXJuKTtcbiAgaWYgKCF1bmJvbmRpbmdNYXRjaCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5ib25kaW5nIG5vZGUgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQgcGF0dGVybicpO1xuICB9XG5cbiAgLy8gVmVyaWZ5IHVuYm9uZGluZyB0aW1lbG9jayBub2RlIHNoYXBlOiBhbmRfdihbcGssIG9sZGVyXSlcbiAgY29uc3QgdW5pbGF0ZXJhbFRpbWVsb2NrID0gcGFyc2VVbmlsYXRlcmFsVGltZWxvY2sodGltZWxvY2tOb2RlLCBtYXRjaGVyKTtcbiAgaWYgKCF1bmlsYXRlcmFsVGltZWxvY2spIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHsga2V5OiBzdGFrZXJLZXkzLCB0aW1lbG9jazogc3Rha2luZ1RpbWVMb2NrIH0gPSB1bmlsYXRlcmFsVGltZWxvY2s7XG5cbiAgLy8gVmVyaWZ5IGFsbCBzdGFrZXIga2V5cyBhcmUgdGhlIHNhbWVcbiAgaWYgKHN0YWtlcktleTEgIT09IHVuYm9uZGluZ01hdGNoLnN0YWtlcktleTIgfHwgdW5ib25kaW5nTWF0Y2guc3Rha2VyS2V5MiAhPT0gc3Rha2VyS2V5Mykge1xuICAgIHRocm93IG5ldyBFcnJvcignU3Rha2VyIGtleXMgbXVzdCBiZSBpZGVudGljYWwgYWNyb3NzIGFsbCBub2RlcycpO1xuICB9XG5cbiAgY29uc3Qgc3Rha2VyS2V5ID0gQnVmZmVyLmZyb20oc3Rha2VyS2V5MSwgJ2hleCcpO1xuXG4gIHJldHVybiB7XG4gICAgc3Rha2VyS2V5LFxuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzLFxuICAgIGNvdmVuYW50S2V5cyxcbiAgICBjb3ZlbmFudFRocmVzaG9sZCxcbiAgICBzdGFraW5nVGltZUxvY2ssXG4gICAgc2xhc2hpbmdNaW5pc2NyaXB0Tm9kZTogc2xhc2hpbmdOb2RlLFxuICAgIHVuYm9uZGluZ01pbmlzY3JpcHROb2RlOiB1bmJvbmRpbmdOb2RlLFxuICAgIHRpbWVsb2NrTWluaXNjcmlwdE5vZGU6IHRpbWVsb2NrTm9kZSxcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkVW5ib25kaW5nRGVzY3JpcHRvciA9IHtcbiAgc3Rha2VyS2V5OiBCdWZmZXI7XG4gIGZpbmFsaXR5UHJvdmlkZXJLZXlzOiBCdWZmZXJbXTtcbiAgY292ZW5hbnRLZXlzOiBCdWZmZXJbXTtcbiAgY292ZW5hbnRUaHJlc2hvbGQ6IG51bWJlcjtcbiAgdW5ib25kaW5nVGltZUxvY2s6IG51bWJlcjtcbiAgc2xhc2hpbmdNaW5pc2NyaXB0Tm9kZTogYXN0Lk1pbmlzY3JpcHROb2RlO1xuICB1bmJvbmRpbmdUaW1lbG9ja01pbmlzY3JpcHROb2RlOiBhc3QuTWluaXNjcmlwdE5vZGU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VVbmJvbmRpbmdEZXNjcmlwdG9yKFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yIHwgYXN0LkRlc2NyaXB0b3JOb2RlXG4pOiBQYXJzZWRVbmJvbmRpbmdEZXNjcmlwdG9yIHwgbnVsbCB7XG4gIGNvbnN0IHBhdHRlcm46IFBhdHRlcm4gPSB7XG4gICAgdHI6IFtnZXRVbnNwZW5kYWJsZUtleSgpLCBbeyAkdmFyOiAnc2xhc2hpbmdNaW5pc2NyaXB0Tm9kZScgfSwgeyAkdmFyOiAndW5ib25kaW5nVGltZWxvY2tNaW5pc2NyaXB0Tm9kZScgfV1dLFxuICB9O1xuXG4gIGNvbnN0IG1hdGNoZXIgPSBuZXcgUGF0dGVybk1hdGNoZXIoKTtcbiAgY29uc3QgZGVzY3JpcHRvck5vZGUgPSBkZXNjcmlwdG9yIGluc3RhbmNlb2YgRGVzY3JpcHRvciA/IGFzdC5mcm9tRGVzY3JpcHRvcihkZXNjcmlwdG9yKSA6IGRlc2NyaXB0b3I7XG4gIGNvbnN0IHJlc3VsdCA9IG1hdGNoZXIubWF0Y2goZGVzY3JpcHRvck5vZGUsIHBhdHRlcm4pO1xuXG4gIGlmICghcmVzdWx0KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBzbGFzaGluZ05vZGUgPSByZXN1bHQuc2xhc2hpbmdNaW5pc2NyaXB0Tm9kZSBhcyBhc3QuTWluaXNjcmlwdE5vZGU7XG4gIGNvbnN0IHVuYm9uZGluZ1RpbWVsb2NrTm9kZSA9IHJlc3VsdC51bmJvbmRpbmdUaW1lbG9ja01pbmlzY3JpcHROb2RlIGFzIGFzdC5NaW5pc2NyaXB0Tm9kZTtcblxuICBjb25zdCB7XG4gICAgc3Rha2VyS2V5OiBzdGFrZXJLZXkxLFxuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzLFxuICAgIGNvdmVuYW50S2V5cyxcbiAgICBjb3ZlbmFudFRocmVzaG9sZCxcbiAgfSA9IHBhcnNlU2xhc2hpbmdOb2RlKHNsYXNoaW5nTm9kZSwgbWF0Y2hlcik7XG5cbiAgY29uc3QgdW5pbGF0ZXJhbFRpbWVsb2NrID0gcGFyc2VVbmlsYXRlcmFsVGltZWxvY2sodW5ib25kaW5nVGltZWxvY2tOb2RlLCBtYXRjaGVyKTtcbiAgaWYgKCF1bmlsYXRlcmFsVGltZWxvY2spIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHsga2V5OiBzdGFrZXJLZXkyLCB0aW1lbG9jazogdW5ib25kaW5nVGltZUxvY2sgfSA9IHVuaWxhdGVyYWxUaW1lbG9jaztcblxuICBpZiAoc3Rha2VyS2V5MSAhPT0gc3Rha2VyS2V5Mikge1xuICAgIHRocm93IG5ldyBFcnJvcignU3Rha2VyIGtleXMgbXVzdCBiZSBpZGVudGljYWwgYWNyb3NzIGFsbCBub2RlcycpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFrZXJLZXk6IEJ1ZmZlci5mcm9tKHN0YWtlcktleTEsICdoZXgnKSxcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cyxcbiAgICBjb3ZlbmFudEtleXMsXG4gICAgY292ZW5hbnRUaHJlc2hvbGQsXG4gICAgdW5ib25kaW5nVGltZUxvY2ssXG4gICAgc2xhc2hpbmdNaW5pc2NyaXB0Tm9kZTogc2xhc2hpbmdOb2RlLFxuICAgIHVuYm9uZGluZ1RpbWVsb2NrTWluaXNjcmlwdE5vZGU6IHVuYm9uZGluZ1RpbWVsb2NrTm9kZSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as bitcoinjslib from 'bitcoinjs-lib';
|
|
2
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
3
|
+
import * as vendor from '@bitgo-beta/babylonlabs-io-btc-staking-ts';
|
|
4
|
+
export declare const mockBabylonProvider: vendor.BabylonProvider;
|
|
5
|
+
export declare function createStakingManager(network: bitcoinjslib.Network | utxolib.Network, btcProvider: vendor.BtcProvider, stakingParams?: vendor.VersionedStakingParams[], babylonProvider?: vendor.BabylonProvider): vendor.BabylonBtcStakingManager;
|
|
6
|
+
//# sourceMappingURL=stakingManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stakingManager.d.ts","sourceRoot":"","sources":["../../../src/babylon/stakingManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,2CAA2C,CAAC;AAmFpE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAIxC,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAC/C,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,aAAa,CAAC,EAAE,MAAM,CAAC,sBAAsB,EAAE,EAC/C,eAAe,yBAAsB,GACpC,MAAM,CAAC,wBAAwB,CAiBjC"}
|