@bitgo-beta/sdk-coin-btc 1.2.3-alpha.9 → 1.2.3-alpha.91
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/CHANGELOG.md +190 -0
- package/dist/src/btc.d.ts +3 -1
- package/dist/src/btc.d.ts.map +1 -1
- package/dist/src/btc.js +5 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/inscriptionBuilder.d.ts +51 -0
- package/dist/src/inscriptionBuilder.d.ts.map +1 -0
- package/dist/src/inscriptionBuilder.js +169 -0
- package/dist/src/register.d.ts +3 -0
- package/dist/src/register.d.ts.map +1 -0
- package/dist/src/register.js +11 -0
- package/package.json +9 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,196 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.7.13](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.13) (2023-10-20)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **abstract-utxo:** upper case address should return false ([f0b6c46](https://github.com/BitGo/BitGoJS/commit/f0b6c467daaa0e43bb2923993fb238c7a4ce6f59))
|
|
11
|
+
|
|
12
|
+
## [1.7.12](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.12) (2023-10-18)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- **abstract-utxo:** upper case address should return false ([f0b6c46](https://github.com/BitGo/BitGoJS/commit/f0b6c467daaa0e43bb2923993fb238c7a4ce6f59))
|
|
17
|
+
|
|
18
|
+
## [1.7.11](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.11) (2023-09-25)
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
- **abstract-utxo:** upper case address should return false ([f0b6c46](https://github.com/BitGo/BitGoJS/commit/f0b6c467daaa0e43bb2923993fb238c7a4ce6f59))
|
|
23
|
+
|
|
24
|
+
## [1.7.10](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.10) (2023-09-09)
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
- **abstract-utxo:** upper case address should return false ([f0b6c46](https://github.com/BitGo/BitGoJS/commit/f0b6c467daaa0e43bb2923993fb238c7a4ce6f59))
|
|
29
|
+
|
|
30
|
+
## [1.7.9](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.9) (2023-09-09)
|
|
31
|
+
|
|
32
|
+
### Bug Fixes
|
|
33
|
+
|
|
34
|
+
- **abstract-utxo:** upper case address should return false ([f0b6c46](https://github.com/BitGo/BitGoJS/commit/f0b6c467daaa0e43bb2923993fb238c7a4ce6f59))
|
|
35
|
+
|
|
36
|
+
## [1.7.8](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.8) (2023-09-07)
|
|
37
|
+
|
|
38
|
+
### Bug Fixes
|
|
39
|
+
|
|
40
|
+
- **abstract-utxo:** upper case address should return false ([f0b6c46](https://github.com/BitGo/BitGoJS/commit/f0b6c467daaa0e43bb2923993fb238c7a4ce6f59))
|
|
41
|
+
|
|
42
|
+
## [1.7.7](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.7) (2023-09-05)
|
|
43
|
+
|
|
44
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
45
|
+
|
|
46
|
+
## [1.7.6](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.6) (2023-09-01)
|
|
47
|
+
|
|
48
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
49
|
+
|
|
50
|
+
## [1.7.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.5) (2023-08-29)
|
|
51
|
+
|
|
52
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
53
|
+
|
|
54
|
+
## [1.7.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.4) (2023-08-25)
|
|
55
|
+
|
|
56
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
57
|
+
|
|
58
|
+
## [1.7.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.3) (2023-08-24)
|
|
59
|
+
|
|
60
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
61
|
+
|
|
62
|
+
## [1.7.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.2) (2023-08-16)
|
|
63
|
+
|
|
64
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
65
|
+
|
|
66
|
+
## [1.7.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.7.0...@bitgo/sdk-coin-btc@1.7.1) (2023-08-16)
|
|
67
|
+
|
|
68
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
69
|
+
|
|
70
|
+
# [1.7.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.5.8...@bitgo/sdk-coin-btc@1.7.0) (2023-08-04)
|
|
71
|
+
|
|
72
|
+
### Features
|
|
73
|
+
|
|
74
|
+
- **root:** add node 18 to engines and CI ([9cc6a70](https://github.com/BitGo/BitGoJS/commit/9cc6a70ba807161b7c6a0ebe3d7c47f25c7c8eca))
|
|
75
|
+
- **root:** remove node 14 from engines ([6ec47cb](https://github.com/BitGo/BitGoJS/commit/6ec47cbd7996cc78bbf2cf7f16595c24fe43cd41))
|
|
76
|
+
|
|
77
|
+
# [1.6.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.5.8...@bitgo/sdk-coin-btc@1.6.0) (2023-07-28)
|
|
78
|
+
|
|
79
|
+
### Features
|
|
80
|
+
|
|
81
|
+
- **root:** add node 18 to engines and CI ([9cc6a70](https://github.com/BitGo/BitGoJS/commit/9cc6a70ba807161b7c6a0ebe3d7c47f25c7c8eca))
|
|
82
|
+
- **root:** remove node 14 from engines ([6ec47cb](https://github.com/BitGo/BitGoJS/commit/6ec47cbd7996cc78bbf2cf7f16595c24fe43cd41))
|
|
83
|
+
|
|
84
|
+
## [1.5.8](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.5.7...@bitgo/sdk-coin-btc@1.5.8) (2023-07-18)
|
|
85
|
+
|
|
86
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
87
|
+
|
|
88
|
+
## [1.5.7](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.5.6...@bitgo/sdk-coin-btc@1.5.7) (2023-06-21)
|
|
89
|
+
|
|
90
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
91
|
+
|
|
92
|
+
## [1.5.6](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.5.5...@bitgo/sdk-coin-btc@1.5.6) (2023-06-14)
|
|
93
|
+
|
|
94
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
95
|
+
|
|
96
|
+
## [1.5.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.5.4...@bitgo/sdk-coin-btc@1.5.5) (2023-06-13)
|
|
97
|
+
|
|
98
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
99
|
+
|
|
100
|
+
## [1.5.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.5.3...@bitgo/sdk-coin-btc@1.5.4) (2023-06-07)
|
|
101
|
+
|
|
102
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
103
|
+
|
|
104
|
+
## [1.5.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.5.2...@bitgo/sdk-coin-btc@1.5.3) (2023-06-05)
|
|
105
|
+
|
|
106
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
107
|
+
|
|
108
|
+
## [1.5.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.5.1...@bitgo/sdk-coin-btc@1.5.2) (2023-05-25)
|
|
109
|
+
|
|
110
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
111
|
+
|
|
112
|
+
## [1.5.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.5.0...@bitgo/sdk-coin-btc@1.5.1) (2023-05-17)
|
|
113
|
+
|
|
114
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
115
|
+
|
|
116
|
+
# [1.5.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.4.3...@bitgo/sdk-coin-btc@1.5.0) (2023-05-10)
|
|
117
|
+
|
|
118
|
+
### Features
|
|
119
|
+
|
|
120
|
+
- **sdk-coin-btc:** find & use supplementary unspents in case ([fc321ee](https://github.com/BitGo/BitGoJS/commit/fc321ee1fccfae2d6676070fb32d8d4dee531aaf))
|
|
121
|
+
|
|
122
|
+
## [1.4.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.4.2...@bitgo/sdk-coin-btc@1.4.3) (2023-05-03)
|
|
123
|
+
|
|
124
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
125
|
+
|
|
126
|
+
## [1.4.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.4.1...@bitgo/sdk-coin-btc@1.4.2) (2023-04-25)
|
|
127
|
+
|
|
128
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
129
|
+
|
|
130
|
+
## [1.4.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.4.0...@bitgo/sdk-coin-btc@1.4.1) (2023-04-20)
|
|
131
|
+
|
|
132
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
133
|
+
|
|
134
|
+
# [1.4.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.3.6...@bitgo/sdk-coin-btc@1.4.0) (2023-04-13)
|
|
135
|
+
|
|
136
|
+
### Bug Fixes
|
|
137
|
+
|
|
138
|
+
- fix error when using feeOutput ([4fb6214](https://github.com/BitGo/BitGoJS/commit/4fb6214a2596c33563eceae4f360302e95060354))
|
|
139
|
+
- **sdk-coin-btc:** convert unspent value to BigInt ([ed7d967](https://github.com/BitGo/BitGoJS/commit/ed7d96717919eb266a6a319e8c53552a058d5edf))
|
|
140
|
+
- **sdk-coin-btc:** get rootwalletkeys for inscription transfer ([b160186](https://github.com/BitGo/BitGoJS/commit/b16018643273e20ea6908f51149139def7209932))
|
|
141
|
+
- use half signed commit txn when signing reveal ([c0fb50b](https://github.com/BitGo/BitGoJS/commit/c0fb50bd6b3b5f4322420a8574a1a661d15ee21d))
|
|
142
|
+
- use p2wsh and internalChainCode for changeAddress creation ([4a5b79c](https://github.com/BitGo/BitGoJS/commit/4a5b79cce0e41ebe31e5d1ee7c5c05b2f7c3d414))
|
|
143
|
+
- used derived keys and use xonly public key for script ([382ce07](https://github.com/BitGo/BitGoJS/commit/382ce073b660f2d002176e3a8fdcadcf5bbaff6a))
|
|
144
|
+
|
|
145
|
+
### Features
|
|
146
|
+
|
|
147
|
+
- add inscription builder class ([214eafe](https://github.com/BitGo/BitGoJS/commit/214eafe48e8d12fd5d58efac289bab33bbd46fd3))
|
|
148
|
+
- **sdk-coin-btc:** transfer an inscription ([bc2eda8](https://github.com/BitGo/BitGoJS/commit/bc2eda86f73a4e4451fd6accbc2a794f08649b78))
|
|
149
|
+
|
|
150
|
+
## [1.3.6](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.3.5...@bitgo/sdk-coin-btc@1.3.6) (2023-02-17)
|
|
151
|
+
|
|
152
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
153
|
+
|
|
154
|
+
## [1.3.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.3.2...@bitgo/sdk-coin-btc@1.3.5) (2023-02-16)
|
|
155
|
+
|
|
156
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
157
|
+
|
|
158
|
+
## [1.3.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.3.2...@bitgo/sdk-coin-btc@1.3.4) (2023-02-08)
|
|
159
|
+
|
|
160
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
161
|
+
|
|
162
|
+
## [1.3.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.3.2...@bitgo/sdk-coin-btc@1.3.3) (2023-01-30)
|
|
163
|
+
|
|
164
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
165
|
+
|
|
166
|
+
## [1.3.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.3.1...@bitgo/sdk-coin-btc@1.3.2) (2023-01-25)
|
|
167
|
+
|
|
168
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
169
|
+
|
|
170
|
+
## [1.3.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.3.0...@bitgo/sdk-coin-btc@1.3.1) (2022-12-23)
|
|
171
|
+
|
|
172
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
173
|
+
|
|
174
|
+
# [1.3.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.2.8...@bitgo/sdk-coin-btc@1.3.0) (2022-12-20)
|
|
175
|
+
|
|
176
|
+
### Features
|
|
177
|
+
|
|
178
|
+
- **core:** add register to base interface ([2c08793](https://github.com/BitGo/BitGoJS/commit/2c087937608f6fa6246cf44a29c91ef40713fb74))
|
|
179
|
+
|
|
180
|
+
## [1.2.8](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.2.7...@bitgo/sdk-coin-btc@1.2.8) (2022-12-09)
|
|
181
|
+
|
|
182
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
183
|
+
|
|
184
|
+
## [1.2.7](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.2.6...@bitgo/sdk-coin-btc@1.2.7) (2022-12-06)
|
|
185
|
+
|
|
186
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
187
|
+
|
|
188
|
+
## [1.2.6](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.2.5...@bitgo/sdk-coin-btc@1.2.6) (2022-12-01)
|
|
189
|
+
|
|
190
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
191
|
+
|
|
192
|
+
## [1.2.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.2.0...@bitgo/sdk-coin-btc@1.2.5) (2022-11-29)
|
|
193
|
+
|
|
194
|
+
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
|
195
|
+
|
|
6
196
|
## [1.2.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-btc@1.2.0...@bitgo/sdk-coin-btc@1.2.4) (2022-11-04)
|
|
7
197
|
|
|
8
198
|
**Note:** Version bump only for package @bitgo/sdk-coin-btc
|
package/dist/src/btc.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AbstractUtxoCoin, UtxoNetwork } from '@bitgo-beta/abstract-utxo';
|
|
2
|
-
import { BitGoBase, BaseCoin, VerifyRecoveryTransactionOptions as BaseVerifyRecoveryTransactionOptions } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BitGoBase, BaseCoin, VerifyRecoveryTransactionOptions as BaseVerifyRecoveryTransactionOptions, Wallet } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { InscriptionBuilder } from './inscriptionBuilder';
|
|
3
4
|
export interface VerifyRecoveryTransactionOptions extends BaseVerifyRecoveryTransactionOptions {
|
|
4
5
|
transactionHex: string;
|
|
5
6
|
}
|
|
@@ -11,5 +12,6 @@ export declare class Btc extends AbstractUtxoCoin {
|
|
|
11
12
|
getFullName(): string;
|
|
12
13
|
supportsBlockTarget(): boolean;
|
|
13
14
|
supportsLightning(): boolean;
|
|
15
|
+
getInscriptionBuilder(wallet: Wallet): InscriptionBuilder;
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=btc.d.ts.map
|
package/dist/src/btc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"btc.d.ts","sourceRoot":"","sources":["../../src/btc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACL,SAAS,EACT,QAAQ,EACR,gCAAgC,IAAI,oCAAoC,
|
|
1
|
+
{"version":3,"file":"btc.d.ts","sourceRoot":"","sources":["../../src/btc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACL,SAAS,EACT,QAAQ,EACR,gCAAgC,IAAI,oCAAoC,EACxE,MAAM,EACP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,gCAAiC,SAAQ,oCAAoC;IAC5F,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,GAAI,SAAQ,gBAAgB;gBAC3B,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW;IAInD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAIjD,QAAQ,IAAI,MAAM;IAIlB,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,MAAM;IAIrB,mBAAmB,IAAI,OAAO;IAI9B,iBAAiB,IAAI,OAAO;IAI5B,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB;CAG1D"}
|
package/dist/src/btc.js
CHANGED
|
@@ -22,6 +22,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
22
|
exports.Btc = void 0;
|
|
23
23
|
const abstract_utxo_1 = require("@bitgo-beta/abstract-utxo");
|
|
24
24
|
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
25
|
+
const inscriptionBuilder_1 = require("./inscriptionBuilder");
|
|
25
26
|
class Btc extends abstract_utxo_1.AbstractUtxoCoin {
|
|
26
27
|
constructor(bitgo, network) {
|
|
27
28
|
super(bitgo, network || utxolib.networks.bitcoin);
|
|
@@ -44,6 +45,9 @@ class Btc extends abstract_utxo_1.AbstractUtxoCoin {
|
|
|
44
45
|
supportsLightning() {
|
|
45
46
|
return true;
|
|
46
47
|
}
|
|
48
|
+
getInscriptionBuilder(wallet) {
|
|
49
|
+
return new inscriptionBuilder_1.InscriptionBuilder(wallet, this);
|
|
50
|
+
}
|
|
47
51
|
}
|
|
48
52
|
exports.Btc = Btc;
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J0Yy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTBFO0FBTzFFLDhEQUFnRDtBQUNoRCw2REFBMEQ7QUFNMUQsTUFBYSxHQUFJLFNBQVEsZ0NBQWdCO0lBQ3ZDLFlBQVksS0FBZ0IsRUFBRSxPQUFxQjtRQUNqRCxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCO1FBQ3BDLE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQscUJBQXFCLENBQUMsTUFBYztRQUNsQyxPQUFPLElBQUksdUNBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQWhDRCxrQkFnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBVdHhvTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LXV0eG8nO1xuaW1wb3J0IHtcbiAgQml0R29CYXNlLFxuICBCYXNlQ29pbixcbiAgVmVyaWZ5UmVjb3ZlcnlUcmFuc2FjdGlvbk9wdGlvbnMgYXMgQmFzZVZlcmlmeVJlY292ZXJ5VHJhbnNhY3Rpb25PcHRpb25zLFxuICBXYWxsZXQsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgSW5zY3JpcHRpb25CdWlsZGVyIH0gZnJvbSAnLi9pbnNjcmlwdGlvbkJ1aWxkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmeVJlY292ZXJ5VHJhbnNhY3Rpb25PcHRpb25zIGV4dGVuZHMgQmFzZVZlcmlmeVJlY292ZXJ5VHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHJhbnNhY3Rpb25IZXg6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEJ0YyBleHRlbmRzIEFic3RyYWN0VXR4b0NvaW4ge1xuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBuZXR3b3JrPzogVXR4b05ldHdvcmspIHtcbiAgICBzdXBlcihiaXRnbywgbmV0d29yayB8fCB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UpOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBCdGMoYml0Z28pO1xuICB9XG5cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2J0Yyc7XG4gIH1cblxuICBnZXRGYW1pbHkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2J0Yyc7XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnQml0Y29pbic7XG4gIH1cblxuICBzdXBwb3J0c0Jsb2NrVGFyZ2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgc3VwcG9ydHNMaWdodG5pbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRJbnNjcmlwdGlvbkJ1aWxkZXIod2FsbGV0OiBXYWxsZXQpOiBJbnNjcmlwdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgSW5zY3JpcHRpb25CdWlsZGVyKHdhbGxldCwgdGhpcyk7XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -12,4 +12,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./btc"), exports);
|
|
14
14
|
__exportStar(require("./tbtc"), exports);
|
|
15
|
-
|
|
15
|
+
__exportStar(require("./register"), exports);
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCO0FBQ3RCLHlDQUF1QjtBQUN2Qiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J0Yyc7XG5leHBvcnQgKiBmcm9tICcuL3RidGMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlcic7XG4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { AbstractUtxoCoin } from '@bitgo-beta/abstract-utxo';
|
|
3
|
+
import { IInscriptionBuilder, IWallet, PrebuildTransactionResult, PreparedInscriptionRevealData, SubmitTransactionResponse } from '@bitgo-beta/sdk-core';
|
|
4
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
5
|
+
export declare class InscriptionBuilder implements IInscriptionBuilder {
|
|
6
|
+
private readonly wallet;
|
|
7
|
+
private readonly coin;
|
|
8
|
+
constructor(wallet: IWallet, coin: AbstractUtxoCoin);
|
|
9
|
+
prepareReveal(inscriptionData: Buffer, contentType: string): Promise<PreparedInscriptionRevealData>;
|
|
10
|
+
private prepareTransferWithExtraInputs;
|
|
11
|
+
/**
|
|
12
|
+
* Build a transaction to send an inscription
|
|
13
|
+
* @param satPoint Satpoint you want to send
|
|
14
|
+
* @param recipient Address you want to send to
|
|
15
|
+
* @param feeRateSatKB Fee rate for transaction
|
|
16
|
+
* @param signer first signer of the transaction
|
|
17
|
+
* @param cosigner second signer of the transaction
|
|
18
|
+
* @param inscriptionConstraints.minChangeOutput (optional) the minimum size of the change output
|
|
19
|
+
* @param inscriptionConstraints.minInscriptionOutput (optional) the minimum number of sats of the output containing the inscription
|
|
20
|
+
* @param inscriptionConstraints.maxInscriptionOutput (optional) the maximum number of sats of the output containing the inscription
|
|
21
|
+
* @param changeAddressType Address type of the change address
|
|
22
|
+
*/
|
|
23
|
+
prepareTransfer(satPoint: string, recipient: string, feeRateSatKB: number, { signer, cosigner, inscriptionConstraints, changeAddressType, }: {
|
|
24
|
+
signer?: utxolib.bitgo.KeyName;
|
|
25
|
+
cosigner?: utxolib.bitgo.KeyName;
|
|
26
|
+
inscriptionConstraints?: {
|
|
27
|
+
minChangeOutput?: bigint;
|
|
28
|
+
minInscriptionOutput?: bigint;
|
|
29
|
+
maxInscriptionOutput?: bigint;
|
|
30
|
+
};
|
|
31
|
+
changeAddressType?: utxolib.bitgo.outputScripts.ScriptType2Of3;
|
|
32
|
+
}): Promise<PrebuildTransactionResult>;
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
* @param walletPassphrase
|
|
36
|
+
* @param tapLeafScript
|
|
37
|
+
* @param commitAddress
|
|
38
|
+
* @param unsignedCommitTx
|
|
39
|
+
* @param commitTransactionUnspents
|
|
40
|
+
* @param recipientAddress
|
|
41
|
+
* @param inscriptionData
|
|
42
|
+
*/
|
|
43
|
+
signAndSendReveal(walletPassphrase: string, tapLeafScript: utxolib.bitgo.TapLeafScript, commitAddress: string, unsignedCommitTx: Buffer, commitTransactionUnspents: utxolib.bitgo.WalletUnspent[], recipientAddress: string, inscriptionData: Buffer): Promise<SubmitTransactionResponse>;
|
|
44
|
+
/**
|
|
45
|
+
* Sign and send a transaction that transfers an inscription
|
|
46
|
+
* @param walletPassphrase passphrase to unlock your keys
|
|
47
|
+
* @param txPrebuild this is the output of `inscription.prepareTransfer`
|
|
48
|
+
*/
|
|
49
|
+
signAndSendTransfer(walletPassphrase: string, txPrebuild: PrebuildTransactionResult): Promise<SubmitTransactionResponse>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=inscriptionBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inscriptionBuilder.d.ts","sourceRoot":"","sources":["../../src/inscriptionBuilder.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAiC,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAEL,mBAAmB,EACnB,OAAO,EAEP,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAG1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAiBhD,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;gBAE5B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB;IAK7C,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;YAW3F,8BAA8B;IAuE5C;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,EACE,MAAe,EACf,QAAkB,EAClB,sBAAsD,EACtD,iBAA2B,GAC5B,EAAE;QACD,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QACjC,sBAAsB,CAAC,EAAE;YACvB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;SAC/B,CAAC;QACF,iBAAiB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC;KAChE,GACA,OAAO,CAAC,yBAAyB,CAAC;IAyCrC;;;;;;;;;OASG;IACG,iBAAiB,CACrB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,EAC1C,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,yBAAyB,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,EACxD,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,yBAAyB,CAAC;IAgCrC;;;;OAIG;IACG,mBAAmB,CACvB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,yBAAyB,CAAC;CAOtC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.InscriptionBuilder = void 0;
|
|
26
|
+
const abstract_utxo_1 = require("@bitgo-beta/abstract-utxo");
|
|
27
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
28
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
29
|
+
const utxo_ord_1 = require("@bitgo-beta/utxo-ord");
|
|
30
|
+
const assert_1 = __importDefault(require("assert"));
|
|
31
|
+
const SUPPLEMENTARY_UNSPENTS_MIN_VALUE_SATS = [0, 20000, 200000];
|
|
32
|
+
class InscriptionBuilder {
|
|
33
|
+
constructor(wallet, coin) {
|
|
34
|
+
this.wallet = wallet;
|
|
35
|
+
this.coin = coin;
|
|
36
|
+
}
|
|
37
|
+
async prepareReveal(inscriptionData, contentType) {
|
|
38
|
+
const user = await this.wallet.baseCoin.keychains().get({ id: this.wallet.keyIds()[sdk_core_1.KeyIndices.USER] });
|
|
39
|
+
assert_1.default(user.pub);
|
|
40
|
+
const derived = this.coin.deriveKeyWithSeed({ key: user.pub, seed: inscriptionData.toString() });
|
|
41
|
+
const compressedPublicKey = sdk_core_1.xpubToCompressedPub(derived.key);
|
|
42
|
+
const xOnlyPublicKey = utxolib.bitgo.outputScripts.toXOnlyPublicKey(Buffer.from(compressedPublicKey, 'hex'));
|
|
43
|
+
return utxo_ord_1.inscriptions.createInscriptionRevealData(xOnlyPublicKey, contentType, inscriptionData, this.coin.network);
|
|
44
|
+
}
|
|
45
|
+
async prepareTransferWithExtraInputs(satPoint, feeRateSatKB, { signer, cosigner, inscriptionConstraints, }, rootWalletKeys, outputs, inscriptionUnspents, supplementaryUnspentsMinValue) {
|
|
46
|
+
let supplementaryUnspents = [];
|
|
47
|
+
if (supplementaryUnspentsMinValue > 0) {
|
|
48
|
+
const response = await this.wallet.unspents({
|
|
49
|
+
minValue: supplementaryUnspentsMinValue,
|
|
50
|
+
});
|
|
51
|
+
// Filter out the inscription unspent from the supplementary unspents
|
|
52
|
+
supplementaryUnspents = response.unspents
|
|
53
|
+
.filter((unspent) => unspent.id !== inscriptionUnspents[0].id)
|
|
54
|
+
.slice(0, utxo_ord_1.MAX_UNSPENTS_FOR_OUTPUT_LAYOUT - 1)
|
|
55
|
+
.map((unspent) => {
|
|
56
|
+
unspent.value = BigInt(unspent.value);
|
|
57
|
+
return unspent;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const psbt = utxo_ord_1.createPsbtForSingleInscriptionPassingTransaction(this.coin.network, {
|
|
61
|
+
walletKeys: rootWalletKeys,
|
|
62
|
+
signer,
|
|
63
|
+
cosigner,
|
|
64
|
+
}, inscriptionUnspents, satPoint, outputs, { feeRateSatKB, ...inscriptionConstraints }, { supplementaryUnspents });
|
|
65
|
+
if (!psbt) {
|
|
66
|
+
throw new Error('Fee too high for the selected unspent with this fee rate');
|
|
67
|
+
}
|
|
68
|
+
const allUnspents = [...inscriptionUnspents, ...supplementaryUnspents];
|
|
69
|
+
// TODO: Remove the call to this function because it's already called inside the createPsbt function above.
|
|
70
|
+
// Create & use a getFee function inside the created PSBT instead, lack of which necessitates a duplicate call here.
|
|
71
|
+
const outputLayout = utxo_ord_1.findOutputLayoutForWalletUnspents(allUnspents, satPoint, outputs, {
|
|
72
|
+
feeRateSatKB,
|
|
73
|
+
...inscriptionConstraints,
|
|
74
|
+
});
|
|
75
|
+
if (!outputLayout) {
|
|
76
|
+
throw new Error('Fee too high for the selected unspent with this fee rate');
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
walletId: this.wallet.id(),
|
|
80
|
+
txHex: psbt.getUnsignedTx().toHex(),
|
|
81
|
+
txInfo: { unspents: allUnspents },
|
|
82
|
+
feeInfo: { fee: Number(outputLayout.layout.feeOutput), feeString: outputLayout.layout.feeOutput.toString() },
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Build a transaction to send an inscription
|
|
87
|
+
* @param satPoint Satpoint you want to send
|
|
88
|
+
* @param recipient Address you want to send to
|
|
89
|
+
* @param feeRateSatKB Fee rate for transaction
|
|
90
|
+
* @param signer first signer of the transaction
|
|
91
|
+
* @param cosigner second signer of the transaction
|
|
92
|
+
* @param inscriptionConstraints.minChangeOutput (optional) the minimum size of the change output
|
|
93
|
+
* @param inscriptionConstraints.minInscriptionOutput (optional) the minimum number of sats of the output containing the inscription
|
|
94
|
+
* @param inscriptionConstraints.maxInscriptionOutput (optional) the maximum number of sats of the output containing the inscription
|
|
95
|
+
* @param changeAddressType Address type of the change address
|
|
96
|
+
*/
|
|
97
|
+
async prepareTransfer(satPoint, recipient, feeRateSatKB, { signer = 'user', cosigner = 'bitgo', inscriptionConstraints = utxo_ord_1.DefaultInscriptionConstraints, changeAddressType = 'p2wsh', }) {
|
|
98
|
+
assert_1.default(utxo_ord_1.isSatPoint(satPoint));
|
|
99
|
+
const rootWalletKeys = await abstract_utxo_1.getWalletKeys(this.coin, this.wallet);
|
|
100
|
+
const parsedSatPoint = utxo_ord_1.parseSatPoint(satPoint);
|
|
101
|
+
const transaction = await this.wallet.getTransaction({ txHash: parsedSatPoint.txid });
|
|
102
|
+
const unspents = [transaction.outputs[parsedSatPoint.vout]];
|
|
103
|
+
unspents[0].value = BigInt(unspents[0].value);
|
|
104
|
+
const changeAddress = await this.wallet.createAddress({
|
|
105
|
+
chain: utxolib.bitgo.getInternalChainCode(changeAddressType),
|
|
106
|
+
});
|
|
107
|
+
const outputs = {
|
|
108
|
+
inscriptionRecipient: recipient,
|
|
109
|
+
changeOutputs: [
|
|
110
|
+
{ chain: changeAddress.chain, index: changeAddress.index },
|
|
111
|
+
{ chain: changeAddress.chain, index: changeAddress.index },
|
|
112
|
+
],
|
|
113
|
+
};
|
|
114
|
+
for (const supplementaryUnspentsMinValue of SUPPLEMENTARY_UNSPENTS_MIN_VALUE_SATS) {
|
|
115
|
+
try {
|
|
116
|
+
return await this.prepareTransferWithExtraInputs(satPoint, feeRateSatKB, { signer, cosigner, inscriptionConstraints }, rootWalletKeys, outputs, unspents, supplementaryUnspentsMinValue);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
if (!(error instanceof utxo_ord_1.ErrorNoLayout)) {
|
|
120
|
+
throw error; // Propagate error if it's not an ErrorNoLayout
|
|
121
|
+
} // Otherwise continue trying with higher minValue for supplementary unspents
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
throw new Error('Fee too high for the selected unspent with this fee rate'); // Exhausted all tries to supplement
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
*
|
|
128
|
+
* @param walletPassphrase
|
|
129
|
+
* @param tapLeafScript
|
|
130
|
+
* @param commitAddress
|
|
131
|
+
* @param unsignedCommitTx
|
|
132
|
+
* @param commitTransactionUnspents
|
|
133
|
+
* @param recipientAddress
|
|
134
|
+
* @param inscriptionData
|
|
135
|
+
*/
|
|
136
|
+
async signAndSendReveal(walletPassphrase, tapLeafScript, commitAddress, unsignedCommitTx, commitTransactionUnspents, recipientAddress, inscriptionData) {
|
|
137
|
+
const userKeychain = await this.wallet.baseCoin.keychains().get({ id: this.wallet.keyIds()[sdk_core_1.KeyIndices.USER] });
|
|
138
|
+
const xprv = await this.wallet.getUserPrv({ keychain: userKeychain, walletPassphrase });
|
|
139
|
+
const halfSignedCommitTransaction = (await this.wallet.signTransaction({
|
|
140
|
+
prv: xprv,
|
|
141
|
+
txPrebuild: {
|
|
142
|
+
txHex: unsignedCommitTx.toString('hex'),
|
|
143
|
+
txInfo: { unspents: commitTransactionUnspents },
|
|
144
|
+
},
|
|
145
|
+
}));
|
|
146
|
+
const derived = this.coin.deriveKeyWithSeed({ key: xprv, seed: inscriptionData.toString() });
|
|
147
|
+
const prv = sdk_core_1.xprvToRawPrv(derived.key);
|
|
148
|
+
const fullySignedRevealTransaction = await utxo_ord_1.inscriptions.signRevealTransaction(Buffer.from(prv, 'hex'), tapLeafScript, commitAddress, recipientAddress, Buffer.from(halfSignedCommitTransaction.txHex, 'hex'), this.coin.network);
|
|
149
|
+
return this.wallet.submitTransaction({
|
|
150
|
+
halfSigned: {
|
|
151
|
+
txHex: halfSignedCommitTransaction.txHex,
|
|
152
|
+
signedChildPsbt: fullySignedRevealTransaction.toHex(),
|
|
153
|
+
},
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Sign and send a transaction that transfers an inscription
|
|
158
|
+
* @param walletPassphrase passphrase to unlock your keys
|
|
159
|
+
* @param txPrebuild this is the output of `inscription.prepareTransfer`
|
|
160
|
+
*/
|
|
161
|
+
async signAndSendTransfer(walletPassphrase, txPrebuild) {
|
|
162
|
+
const userKeychain = await this.wallet.baseCoin.keychains().get({ id: this.wallet.keyIds()[sdk_core_1.KeyIndices.USER] });
|
|
163
|
+
const prv = this.wallet.getUserPrv({ keychain: userKeychain, walletPassphrase });
|
|
164
|
+
const halfSigned = (await this.wallet.signTransaction({ prv, txPrebuild }));
|
|
165
|
+
return this.wallet.submitTransaction({ halfSigned });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.InscriptionBuilder = InscriptionBuilder;
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luc2NyaXB0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTRGO0FBQzVGLG1EQVU4QjtBQUM5Qiw4REFBZ0Q7QUFDaEQsbURBVzhCO0FBQzlCLG9EQUE0QjtBQUU1QixNQUFNLHFDQUFxQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQU0sRUFBRSxNQUFPLENBQUMsQ0FBQztBQUVuRSxNQUFhLGtCQUFrQjtJQUk3QixZQUFZLE1BQWUsRUFBRSxJQUFzQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUF1QixFQUFFLFdBQW1CO1FBQzlELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMscUJBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkcsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLE1BQU0sbUJBQW1CLEdBQUcsOEJBQW1CLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxD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QUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUVqRixNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBOEIsQ0FBQztRQUN6RyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQXBPRCxnREFvT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBnZXRXYWxsZXRLZXlzLCBSb290V2FsbGV0S2V5cyB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LXV0eG8nO1xuaW1wb3J0IHtcbiAgSGFsZlNpZ25lZFV0eG9UcmFuc2FjdGlvbixcbiAgSUluc2NyaXB0aW9uQnVpbGRlcixcbiAgSVdhbGxldCxcbiAgS2V5SW5kaWNlcyxcbiAgUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdCxcbiAgUHJlcGFyZWRJbnNjcmlwdGlvblJldmVhbERhdGEsXG4gIFN1Ym1pdFRyYW5zYWN0aW9uUmVzcG9uc2UsXG4gIHhwcnZUb1Jhd1BydixcbiAgeHB1YlRvQ29tcHJlc3NlZFB1Yixcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQge1xuICBjcmVhdGVQc2J0Rm9yU2luZ2xlSW5zY3JpcHRpb25QYXNzaW5nVHJhbnNhY3Rpb24sXG4gIERlZmF1bHRJbnNjcmlwdGlvbkNvbnN0cmFpbnRzLFxuICBJbnNjcmlwdGlvbk91dHB1dHMsXG4gIGluc2NyaXB0aW9ucyxcbiAgcGFyc2VTYXRQb2ludCxcbiAgaXNTYXRQb2ludCxcbiAgRXJyb3JOb0xheW91dCxcbiAgZmluZE91dHB1dExheW91dEZvcldhbGxldFVuc3BlbnRzLFxuICBNQVhfVU5TUEVOVFNfRk9SX09VVFBVVF9MQVlPVVQsXG4gIFNhdFBvaW50LFxufSBmcm9tICdAYml0Z28tYmV0YS91dHhvLW9yZCc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmNvbnN0IFNVUFBMRU1FTlRBUllfVU5TUEVOVFNfTUlOX1ZBTFVFX1NBVFMgPSBbMCwgMjBfMDAwLCAyMDBfMDAwXTtcblxuZXhwb3J0IGNsYXNzIEluc2NyaXB0aW9uQnVpbGRlciBpbXBsZW1lbnRzIElJbnNjcmlwdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHdhbGxldDogSVdhbGxldDtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2luOiBBYnN0cmFjdFV0eG9Db2luO1xuXG4gIGNvbnN0cnVjdG9yKHdhbGxldDogSVdhbGxldCwgY29pbjogQWJzdHJhY3RVdHhvQ29pbikge1xuICAgIHRoaXMud2FsbGV0ID0gd2FsbGV0O1xuICAgIHRoaXMuY29pbiA9IGNvaW47XG4gIH1cblxuICBhc3luYyBwcmVwYXJlUmV2ZWFsKGluc2NyaXB0aW9uRGF0YTogQnVmZmVyLCBjb250ZW50VHlwZTogc3RyaW5nKTogUHJvbWlzZTxQcmVwYXJlZEluc2NyaXB0aW9uUmV2ZWFsRGF0YT4ge1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLndhbGxldC5iYXNlQ29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogdGhpcy53YWxsZXQua2V5SWRzKClbS2V5SW5kaWNlcy5VU0VSXSB9KTtcbiAgICBhc3NlcnQodXNlci5wdWIpO1xuXG4gICAgY29uc3QgZGVyaXZlZCA9IHRoaXMuY29pbi5kZXJpdmVLZXlXaXRoU2VlZCh7IGtleTogdXNlci5wdWIsIHNlZWQ6IGluc2NyaXB0aW9uRGF0YS50b1N0cmluZygpIH0pO1xuICAgIGNvbnN0IGNvbXByZXNzZWRQdWJsaWNLZXkgPSB4cHViVG9Db21wcmVzc2VkUHViKGRlcml2ZWQua2V5KTtcbiAgICBjb25zdCB4T25seVB1YmxpY0tleSA9IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy50b1hPbmx5UHVibGljS2V5KEJ1ZmZlci5mcm9tKGNvbXByZXNzZWRQdWJsaWNLZXksICdoZXgnKSk7XG5cbiAgICByZXR1cm4gaW5zY3JpcHRpb25zLmNyZWF0ZUluc2NyaXB0aW9uUmV2ZWFsRGF0YSh4T25seVB1YmxpY0tleSwgY29udGVudFR5cGUsIGluc2NyaXB0aW9uRGF0YSwgdGhpcy5jb2luLm5ldHdvcmspO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlVHJhbnNmZXJXaXRoRXh0cmFJbnB1dHMoXG4gICAgc2F0UG9pbnQ6IFNhdFBvaW50LFxuICAgIGZlZVJhdGVTYXRLQjogbnVtYmVyLFxuICAgIHtcbiAgICAgIHNpZ25lcixcbiAgICAgIGNvc2lnbmVyLFxuICAgICAgaW5zY3JpcHRpb25Db25zdHJhaW50cyxcbiAgICB9OiB7XG4gICAgICBzaWduZXI6IHV0eG9saWIuYml0Z28uS2V5TmFtZTtcbiAgICAgIGNvc2lnbmVyOiB1dHhvbGliLmJpdGdvLktleU5hbWU7XG4gICAgICBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzOiB7XG4gICAgICAgIG1pbkNoYW5nZU91dHB1dD86IGJpZ2ludDtcbiAgICAgICAgbWluSW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gICAgICAgIG1heEluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xuICAgICAgfTtcbiAgICB9LFxuICAgIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgICBvdXRwdXRzOiBJbnNjcmlwdGlvbk91dHB1dHMsXG4gICAgaW5zY3JpcHRpb25VbnNwZW50czogdXR4b2xpYi5iaXRnby5XYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgICBzdXBwbGVtZW50YXJ5VW5zcGVudHNNaW5WYWx1ZTogbnVtYmVyXG4gICk6IFByb21pc2U8UHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdD4ge1xuICAgIGxldCBzdXBwbGVtZW50YXJ5VW5zcGVudHM6IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10gPSBbXTtcbiAgICBpZiAoc3VwcGxlbWVudGFyeVVuc3BlbnRzTWluVmFsdWUgPiAwKSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud2FsbGV0LnVuc3BlbnRzKHtcbiAgICAgICAgbWluVmFsdWU6IHN1cHBsZW1lbnRhcnlVbnNwZW50c01pblZhbHVlLFxuICAgICAgfSk7XG4gICAgICAvLyBGaWx0ZXIgb3V0IHRoZSBpbnNjcmlwdGlvbiB1bnNwZW50IGZyb20gdGhlIHN1cHBsZW1lbnRhcnkgdW5zcGVudHNcbiAgICAgIHN1cHBsZW1lbnRhcnlVbnNwZW50cyA9IHJlc3BvbnNlLnVuc3BlbnRzXG4gICAgICAgIC5maWx0ZXIoKHVuc3BlbnQpID0+IHVuc3BlbnQuaWQgIT09IGluc2NyaXB0aW9uVW5zcGVudHNbMF0uaWQpXG4gICAgICAgIC5zbGljZSgwLCBNQVhfVU5TUEVOVFNfRk9SX09VVFBVVF9MQVlPVVQgLSAxKVxuICAgICAgICAubWFwKCh1bnNwZW50KSA9PiB7XG4gICAgICAgICAgdW5zcGVudC52YWx1ZSA9IEJpZ0ludCh1bnNwZW50LnZhbHVlKTtcbiAgICAgICAgICByZXR1cm4gdW5zcGVudDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHBzYnQgPSBjcmVhdGVQc2J0Rm9yU2luZ2xlSW5zY3JpcHRpb25QYXNzaW5nVHJhbnNhY3Rpb24oXG4gICAgICB0aGlzLmNvaW4ubmV0d29yayxcbiAgICAgIHtcbiAgICAgICAgd2FsbGV0S2V5czogcm9vdFdhbGxldEtleXMsXG4gICAgICAgIHNpZ25lcixcbiAgICAgICAgY29zaWduZXIsXG4gICAgICB9LFxuICAgICAgaW5zY3JpcHRpb25VbnNwZW50cyxcbiAgICAgIHNhdFBvaW50LFxuICAgICAgb3V0cHV0cyxcbiAgICAgIHsgZmVlUmF0ZVNhdEtCLCAuLi5pbnNjcmlwdGlvbkNvbnN0cmFpbnRzIH0sXG4gICAgICB7IHN1cHBsZW1lbnRhcnlVbnNwZW50cyB9XG4gICAgKTtcbiAgICBpZiAoIXBzYnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmVlIHRvbyBoaWdoIGZvciB0aGUgc2VsZWN0ZWQgdW5zcGVudCB3aXRoIHRoaXMgZmVlIHJhdGUnKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxVbnNwZW50cyA9IFsuLi5pbnNjcmlwdGlvblVuc3BlbnRzLCAuLi5zdXBwbGVtZW50YXJ5VW5zcGVudHNdO1xuXG4gICAgLy8gVE9ETzogUmVtb3ZlIHRoZSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gYmVjYXVzZSBpdCdzIGFscmVhZHkgY2FsbGVkIGluc2lkZSB0aGUgY3JlYXRlUHNidCBmdW5jdGlvbiBhYm92ZS5cbiAgICAvLyBDcmVhdGUgJiB1c2UgYSBnZXRGZWUgZnVuY3Rpb24gaW5zaWRlIHRoZSBjcmVhdGVkIFBTQlQgaW5zdGVhZCwgbGFjayBvZiB3aGljaCBuZWNlc3NpdGF0ZXMgYSBkdXBsaWNhdGUgY2FsbCBoZXJlLlxuICAgIGNvbnN0IG91dHB1dExheW91dCA9IGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyhhbGxVbnNwZW50cywgc2F0UG9pbnQsIG91dHB1dHMsIHtcbiAgICAgIGZlZVJhdGVTYXRLQixcbiAgICAgIC4uLmluc2NyaXB0aW9uQ29uc3RyYWludHMsXG4gICAgfSk7XG4gICAgaWYgKCFvdXRwdXRMYXlvdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmVlIHRvbyBoaWdoIGZvciB0aGUgc2VsZWN0ZWQgdW5zcGVudCB3aXRoIHRoaXMgZmVlIHJhdGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHdhbGxldElkOiB0aGlzLndhbGxldC5pZCgpLFxuICAgICAgdHhIZXg6IHBzYnQuZ2V0VW5zaWduZWRUeCgpLnRvSGV4KCksXG4gICAgICB0eEluZm86IHsgdW5zcGVudHM6IGFsbFVuc3BlbnRzIH0sXG4gICAgICBmZWVJbmZvOiB7IGZlZTogTnVtYmVyKG91dHB1dExheW91dC5sYXlvdXQuZmVlT3V0cHV0KSwgZmVlU3RyaW5nOiBvdXRwdXRMYXlvdXQubGF5b3V0LmZlZU91dHB1dC50b1N0cmluZygpIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIHRyYW5zYWN0aW9uIHRvIHNlbmQgYW4gaW5zY3JpcHRpb25cbiAgICogQHBhcmFtIHNhdFBvaW50IFNhdHBvaW50IHlvdSB3YW50IHRvIHNlbmRcbiAgICogQHBhcmFtIHJlY2lwaWVudCBBZGRyZXNzIHlvdSB3YW50IHRvIHNlbmQgdG9cbiAgICogQHBhcmFtIGZlZVJhdGVTYXRLQiBGZWUgcmF0ZSBmb3IgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHNpZ25lciBmaXJzdCBzaWduZXIgb2YgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBjb3NpZ25lciBzZWNvbmQgc2lnbmVyIG9mIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gaW5zY3JpcHRpb25Db25zdHJhaW50cy5taW5DaGFuZ2VPdXRwdXQgKG9wdGlvbmFsKSB0aGUgbWluaW11bSBzaXplIG9mIHRoZSBjaGFuZ2Ugb3V0cHV0XG4gICAqIEBwYXJhbSBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzLm1pbkluc2NyaXB0aW9uT3V0cHV0IChvcHRpb25hbCkgdGhlIG1pbmltdW0gbnVtYmVyIG9mIHNhdHMgb2YgdGhlIG91dHB1dCBjb250YWluaW5nIHRoZSBpbnNjcmlwdGlvblxuICAgKiBAcGFyYW0gaW5zY3JpcHRpb25Db25zdHJhaW50cy5tYXhJbnNjcmlwdGlvbk91dHB1dCAob3B0aW9uYWwpIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzYXRzIG9mIHRoZSBvdXRwdXQgY29udGFpbmluZyB0aGUgaW5zY3JpcHRpb25cbiAgICogQHBhcmFtIGNoYW5nZUFkZHJlc3NUeXBlIEFkZHJlc3MgdHlwZSBvZiB0aGUgY2hhbmdlIGFkZHJlc3NcbiAgICovXG4gIGFzeW5jIHByZXBhcmVUcmFuc2ZlcihcbiAgICBzYXRQb2ludDogc3RyaW5nLFxuICAgIHJlY2lwaWVudDogc3RyaW5nLFxuICAgIGZlZVJhdGVTYXRLQjogbnVtYmVyLFxuICAgIHtcbiAgICAgIHNpZ25lciA9ICd1c2VyJyxcbiAgICAgIGNvc2lnbmVyID0gJ2JpdGdvJyxcbiAgICAgIGluc2NyaXB0aW9uQ29uc3RyYWludHMgPSBEZWZhdWx0SW5zY3JpcHRpb25Db25zdHJhaW50cyxcbiAgICAgIGNoYW5nZUFkZHJlc3NUeXBlID0gJ3Ayd3NoJyxcbiAgICB9OiB7XG4gICAgICBzaWduZXI/OiB1dHhvbGliLmJpdGdvLktleU5hbWU7XG4gICAgICBjb3NpZ25lcj86IHV0eG9saWIuYml0Z28uS2V5TmFtZTtcbiAgICAgIGluc2NyaXB0aW9uQ29uc3RyYWludHM/OiB7XG4gICAgICAgIG1pbkNoYW5nZU91dHB1dD86IGJpZ2ludDtcbiAgICAgICAgbWluSW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG4gICAgICAgIG1heEluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xuICAgICAgfTtcbiAgICAgIGNoYW5nZUFkZHJlc3NUeXBlPzogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzO1xuICAgIH1cbiAgKTogUHJvbWlzZTxQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0PiB7XG4gICAgYXNzZXJ0KGlzU2F0UG9pbnQoc2F0UG9pbnQpKTtcblxuICAgIGNvbnN0IHJvb3RXYWxsZXRLZXlzID0gYXdhaXQgZ2V0V2FsbGV0S2V5cyh0aGlzLmNvaW4sIHRoaXMud2FsbGV0KTtcbiAgICBjb25zdCBwYXJzZWRTYXRQb2ludCA9IHBhcnNlU2F0UG9pbnQoc2F0UG9pbnQpO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gYXdhaXQgdGhpcy53YWxsZXQuZ2V0VHJhbnNhY3Rpb24oeyB0eEhhc2g6IHBhcnNlZFNhdFBvaW50LnR4aWQgfSk7XG4gICAgY29uc3QgdW5zcGVudHM6IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10gPSBbdHJhbnNhY3Rpb24ub3V0cHV0c1twYXJzZWRTYXRQb2ludC52b3V0XV07XG4gICAgdW5zcGVudHNbMF0udmFsdWUgPSBCaWdJbnQodW5zcGVudHNbMF0udmFsdWUpO1xuXG4gICAgY29uc3QgY2hhbmdlQWRkcmVzcyA9IGF3YWl0IHRoaXMud2FsbGV0LmNyZWF0ZUFkZHJlc3Moe1xuICAgICAgY2hhaW46IHV0eG9saWIuYml0Z28uZ2V0SW50ZXJuYWxDaGFpbkNvZGUoY2hhbmdlQWRkcmVzc1R5cGUpLFxuICAgIH0pO1xuICAgIGNvbnN0IG91dHB1dHM6IEluc2NyaXB0aW9uT3V0cHV0cyA9IHtcbiAgICAgIGluc2NyaXB0aW9uUmVjaXBpZW50OiByZWNpcGllbnQsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXG4gICAgICAgIHsgY2hhaW46IGNoYW5nZUFkZHJlc3MuY2hhaW4sIGluZGV4OiBjaGFuZ2VBZGRyZXNzLmluZGV4IH0sXG4gICAgICAgIHsgY2hhaW46IGNoYW5nZUFkZHJlc3MuY2hhaW4sIGluZGV4OiBjaGFuZ2VBZGRyZXNzLmluZGV4IH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IHN1cHBsZW1lbnRhcnlVbnNwZW50c01pblZhbHVlIG9mIFNVUFBMRU1FTlRBUllfVU5TUEVOVFNfTUlOX1ZBTFVFX1NBVFMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByZXBhcmVUcmFuc2ZlcldpdGhFeHRyYUlucHV0cyhcbiAgICAgICAgICBzYXRQb2ludCxcbiAgICAgICAgICBmZWVSYXRlU2F0S0IsXG4gICAgICAgICAgeyBzaWduZXIsIGNvc2lnbmVyLCBpbnNjcmlwdGlvbkNvbnN0cmFpbnRzIH0sXG4gICAgICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICAgICAgb3V0cHV0cyxcbiAgICAgICAgICB1bnNwZW50cyxcbiAgICAgICAgICBzdXBwbGVtZW50YXJ5VW5zcGVudHNNaW5WYWx1ZVxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvck5vTGF5b3V0KSkge1xuICAgICAgICAgIHRocm93IGVycm9yOyAvLyBQcm9wYWdhdGUgZXJyb3IgaWYgaXQncyBub3QgYW4gRXJyb3JOb0xheW91dFxuICAgICAgICB9IC8vIE90aGVyd2lzZSBjb250aW51ZSB0cnlpbmcgd2l0aCBoaWdoZXIgbWluVmFsdWUgZm9yIHN1cHBsZW1lbnRhcnkgdW5zcGVudHNcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZlZSB0b28gaGlnaCBmb3IgdGhlIHNlbGVjdGVkIHVuc3BlbnQgd2l0aCB0aGlzIGZlZSByYXRlJyk7IC8vIEV4aGF1c3RlZCBhbGwgdHJpZXMgdG8gc3VwcGxlbWVudFxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB3YWxsZXRQYXNzcGhyYXNlXG4gICAqIEBwYXJhbSB0YXBMZWFmU2NyaXB0XG4gICAqIEBwYXJhbSBjb21taXRBZGRyZXNzXG4gICAqIEBwYXJhbSB1bnNpZ25lZENvbW1pdFR4XG4gICAqIEBwYXJhbSBjb21taXRUcmFuc2FjdGlvblVuc3BlbnRzXG4gICAqIEBwYXJhbSByZWNpcGllbnRBZGRyZXNzXG4gICAqIEBwYXJhbSBpbnNjcmlwdGlvbkRhdGFcbiAgICovXG4gIGFzeW5jIHNpZ25BbmRTZW5kUmV2ZWFsKFxuICAgIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZyxcbiAgICB0YXBMZWFmU2NyaXB0OiB1dHhvbGliLmJpdGdvLlRhcExlYWZTY3JpcHQsXG4gICAgY29tbWl0QWRkcmVzczogc3RyaW5nLFxuICAgIHVuc2lnbmVkQ29tbWl0VHg6IEJ1ZmZlcixcbiAgICBjb21taXRUcmFuc2FjdGlvblVuc3BlbnRzOiB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnRbXSxcbiAgICByZWNpcGllbnRBZGRyZXNzOiBzdHJpbmcsXG4gICAgaW5zY3JpcHRpb25EYXRhOiBCdWZmZXJcbiAgKTogUHJvbWlzZTxTdWJtaXRUcmFuc2FjdGlvblJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXNlcktleWNoYWluID0gYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IHRoaXMud2FsbGV0LmtleUlkcygpW0tleUluZGljZXMuVVNFUl0gfSk7XG4gICAgY29uc3QgeHBydiA9IGF3YWl0IHRoaXMud2FsbGV0LmdldFVzZXJQcnYoeyBrZXljaGFpbjogdXNlcktleWNoYWluLCB3YWxsZXRQYXNzcGhyYXNlIH0pO1xuXG4gICAgY29uc3QgaGFsZlNpZ25lZENvbW1pdFRyYW5zYWN0aW9uID0gKGF3YWl0IHRoaXMud2FsbGV0LnNpZ25UcmFuc2FjdGlvbih7XG4gICAgICBwcnY6IHhwcnYsXG4gICAgICB0eFByZWJ1aWxkOiB7XG4gICAgICAgIHR4SGV4OiB1bnNpZ25lZENvbW1pdFR4LnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgdHhJbmZvOiB7IHVuc3BlbnRzOiBjb21taXRUcmFuc2FjdGlvblVuc3BlbnRzIH0sXG4gICAgICB9LFxuICAgIH0pKSBhcyBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uO1xuXG4gICAgY29uc3QgZGVyaXZlZCA9IHRoaXMuY29pbi5kZXJpdmVLZXlXaXRoU2VlZCh7IGtleTogeHBydiwgc2VlZDogaW5zY3JpcHRpb25EYXRhLnRvU3RyaW5nKCkgfSk7XG4gICAgY29uc3QgcHJ2ID0geHBydlRvUmF3UHJ2KGRlcml2ZWQua2V5KTtcblxuICAgIGNvbnN0IGZ1bGx5U2lnbmVkUmV2ZWFsVHJhbnNhY3Rpb24gPSBhd2FpdCBpbnNjcmlwdGlvbnMuc2lnblJldmVhbFRyYW5zYWN0aW9uKFxuICAgICAgQnVmZmVyLmZyb20ocHJ2LCAnaGV4JyksXG4gICAgICB0YXBMZWFmU2NyaXB0LFxuICAgICAgY29tbWl0QWRkcmVzcyxcbiAgICAgIHJlY2lwaWVudEFkZHJlc3MsXG4gICAgICBCdWZmZXIuZnJvbShoYWxmU2lnbmVkQ29tbWl0VHJhbnNhY3Rpb24udHhIZXgsICdoZXgnKSxcbiAgICAgIHRoaXMuY29pbi5uZXR3b3JrXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLndhbGxldC5zdWJtaXRUcmFuc2FjdGlvbih7XG4gICAgICBoYWxmU2lnbmVkOiB7XG4gICAgICAgIHR4SGV4OiBoYWxmU2lnbmVkQ29tbWl0VHJhbnNhY3Rpb24udHhIZXgsXG4gICAgICAgIHNpZ25lZENoaWxkUHNidDogZnVsbHlTaWduZWRSZXZlYWxUcmFuc2FjdGlvbi50b0hleCgpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGFuZCBzZW5kIGEgdHJhbnNhY3Rpb24gdGhhdCB0cmFuc2ZlcnMgYW4gaW5zY3JpcHRpb25cbiAgICogQHBhcmFtIHdhbGxldFBhc3NwaHJhc2UgcGFzc3BocmFzZSB0byB1bmxvY2sgeW91ciBrZXlzXG4gICAqIEBwYXJhbSB0eFByZWJ1aWxkIHRoaXMgaXMgdGhlIG91dHB1dCBvZiBgaW5zY3JpcHRpb24ucHJlcGFyZVRyYW5zZmVyYFxuICAgKi9cbiAgYXN5bmMgc2lnbkFuZFNlbmRUcmFuc2ZlcihcbiAgICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmcsXG4gICAgdHhQcmVidWlsZDogUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdFxuICApOiBQcm9taXNlPFN1Ym1pdFRyYW5zYWN0aW9uUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1c2VyS2V5Y2hhaW4gPSBhd2FpdCB0aGlzLndhbGxldC5iYXNlQ29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogdGhpcy53YWxsZXQua2V5SWRzKClbS2V5SW5kaWNlcy5VU0VSXSB9KTtcbiAgICBjb25zdCBwcnYgPSB0aGlzLndhbGxldC5nZXRVc2VyUHJ2KHsga2V5Y2hhaW46IHVzZXJLZXljaGFpbiwgd2FsbGV0UGFzc3BocmFzZSB9KTtcblxuICAgIGNvbnN0IGhhbGZTaWduZWQgPSAoYXdhaXQgdGhpcy53YWxsZXQuc2lnblRyYW5zYWN0aW9uKHsgcHJ2LCB0eFByZWJ1aWxkIH0pKSBhcyBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uO1xuICAgIHJldHVybiB0aGlzLndhbGxldC5zdWJtaXRUcmFuc2FjdGlvbih7IGhhbGZTaWduZWQgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAGzC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.register = void 0;
|
|
4
|
+
const btc_1 = require("./btc");
|
|
5
|
+
const tbtc_1 = require("./tbtc");
|
|
6
|
+
const register = (sdk) => {
|
|
7
|
+
sdk.register('btc', btc_1.Btc.createInstance);
|
|
8
|
+
sdk.register('tbtc', tbtc_1.Tbtc.createInstance);
|
|
9
|
+
};
|
|
10
|
+
exports.register = register;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQTRCO0FBQzVCLGlDQUE4QjtBQUV2QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWMsRUFBUSxFQUFFO0lBQy9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFNBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxXQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBSFcsUUFBQSxRQUFRLFlBR25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQnRjIH0gZnJvbSAnLi9idGMnO1xuaW1wb3J0IHsgVGJ0YyB9IGZyb20gJy4vdGJ0Yyc7XG5cbmV4cG9ydCBjb25zdCByZWdpc3RlciA9IChzZGs6IEJpdEdvQmFzZSk6IHZvaWQgPT4ge1xuICBzZGsucmVnaXN0ZXIoJ2J0YycsIEJ0Yy5jcmVhdGVJbnN0YW5jZSk7XG4gIHNkay5yZWdpc3RlcigndGJ0YycsIFRidGMuY3JlYXRlSW5zdGFuY2UpO1xufTtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/sdk-coin-btc",
|
|
3
|
-
"version": "1.2.3-alpha.
|
|
3
|
+
"version": "1.2.3-alpha.91",
|
|
4
4
|
"description": "BitGo SDK coin library for Bitcoin",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"author": "BitGo SDK Team <sdkteam@bitgo.com>",
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"engines": {
|
|
21
|
-
"node": ">=
|
|
21
|
+
"node": ">=16 <19"
|
|
22
22
|
},
|
|
23
23
|
"repository": {
|
|
24
24
|
"type": "git",
|
|
@@ -40,13 +40,14 @@
|
|
|
40
40
|
]
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@bitgo-beta/abstract-utxo": "1.6.1-alpha.
|
|
44
|
-
"@bitgo-beta/sdk-core": "2.4.1-alpha.
|
|
45
|
-
"@bitgo-beta/utxo-lib": "4.0.1-alpha.
|
|
43
|
+
"@bitgo-beta/abstract-utxo": "1.6.1-alpha.91",
|
|
44
|
+
"@bitgo-beta/sdk-core": "2.4.1-alpha.91",
|
|
45
|
+
"@bitgo-beta/utxo-lib": "4.0.1-alpha.91",
|
|
46
|
+
"@bitgo-beta/utxo-ord": "1.1.3-alpha.46"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
|
-
"@bitgo-beta/sdk-api": "1.6.1-alpha.
|
|
49
|
-
"@bitgo-beta/sdk-test": "^1.2.
|
|
49
|
+
"@bitgo-beta/sdk-api": "1.6.1-alpha.91",
|
|
50
|
+
"@bitgo-beta/sdk-test": "^1.2.43"
|
|
50
51
|
},
|
|
51
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "fb42bd0bed29e6fb1197dc1626f179c6aea69807"
|
|
52
53
|
}
|