dxs-stas-sdk 2.0.4 → 2.0.6
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/AGENTS.md +52 -0
- package/README.md +25 -1
- package/dist/bitcoin/mnemonic.d.ts +1 -0
- package/dist/bitcoin/mnemonic.d.ts.map +1 -1
- package/dist/bitcoin/mnemonic.js +22 -11
- package/dist/bitcoin/mnemonic.js.map +1 -1
- package/dist/bitcoin/out-point.d.ts +6 -2
- package/dist/bitcoin/out-point.d.ts.map +1 -1
- package/dist/bitcoin/out-point.js +16 -4
- package/dist/bitcoin/out-point.js.map +1 -1
- package/dist/bitcoin/private-key.d.ts +3 -0
- package/dist/bitcoin/private-key.d.ts.map +1 -1
- package/dist/bitcoin/private-key.js +19 -2
- package/dist/bitcoin/private-key.js.map +1 -1
- package/dist/bitcoin/transaction-output.d.ts +6 -2
- package/dist/bitcoin/transaction-output.d.ts.map +1 -1
- package/dist/bitcoin/transaction-output.js +15 -3
- package/dist/bitcoin/transaction-output.js.map +1 -1
- package/dist/bitcoin/wallet.d.ts.map +1 -1
- package/dist/bitcoin/wallet.js +7 -1
- package/dist/bitcoin/wallet.js.map +1 -1
- package/dist/buffer/buffer-utils.d.ts.map +1 -1
- package/dist/buffer/buffer-utils.js +26 -18
- package/dist/buffer/buffer-utils.js.map +1 -1
- package/dist/bytes.d.ts.map +1 -1
- package/dist/bytes.js +3 -3
- package/dist/bytes.js.map +1 -1
- package/dist/dstas-bundle-factory.js +3 -3
- package/dist/dstas-factory.d.ts.map +1 -1
- package/dist/dstas-factory.js +10 -3
- package/dist/dstas-factory.js.map +1 -1
- package/dist/script/eval/script-evaluator.js +3 -3
- package/dist/security/strict-mode.d.ts.map +1 -1
- package/dist/security/strict-mode.js +2 -2
- package/dist/security/strict-mode.js.map +1 -1
- package/dist/stas-bundle-factory.d.ts +1 -0
- package/dist/stas-bundle-factory.d.ts.map +1 -1
- package/dist/stas-bundle-factory.js +8 -1
- package/dist/stas-bundle-factory.js.map +1 -1
- package/dist/transaction/build/input-builder.js +3 -3
- package/dist/transaction/build/transaction-builder.d.ts +2 -2
- package/dist/transaction/build/transaction-builder.d.ts.map +1 -1
- package/dist/transaction/build/transaction-builder.js +8 -4
- package/dist/transaction/build/transaction-builder.js.map +1 -1
- package/docs/AGENT_RUNBOOK.md +88 -0
- package/docs/DSTAS_0_0_8_SDK_SPEC.md +5 -0
- package/llms.txt +28 -0
- package/package.json +1 -1
- package/src/bitcoin/mnemonic.ts +24 -11
- package/src/bitcoin/out-point.ts +22 -5
- package/src/bitcoin/private-key.ts +24 -4
- package/src/bitcoin/transaction-output.ts +21 -4
- package/src/bitcoin/wallet.ts +6 -1
- package/src/buffer/buffer-utils.ts +32 -19
- package/src/bytes.ts +3 -2
- package/src/dstas-bundle-factory.ts +3 -3
- package/src/dstas-factory.ts +12 -3
- package/src/script/eval/script-evaluator.ts +3 -3
- package/src/security/strict-mode.ts +4 -2
- package/src/stas-bundle-factory.ts +22 -9
- package/src/transaction/build/input-builder.ts +3 -3
- package/src/transaction/build/transaction-builder.ts +20 -4
- package/tests/buffer-utils.test.ts +24 -0
- package/tests/debug/dstas-transfer-debug.ts +1 -1
- package/tests/debug/dstas-with-change-probe.test.ts +3 -3
- package/tests/dstas-bundle-factory.test.ts +2 -2
- package/tests/dstas-conformance-vectors.test.ts +17 -17
- package/tests/dstas-factory-guards.test.ts +35 -0
- package/tests/dstas-flow.test.ts +61 -61
- package/tests/dstas-multisig-authority-flow.test.ts +11 -11
- package/tests/helpers/dstas-flow-helpers.ts +2 -2
- package/tests/locking-script-alias.test.ts +41 -0
- package/tests/mnemonic.test.ts +60 -0
- package/tests/private-key.test.ts +55 -0
- package/tests/script-eval.test.ts +1 -1
- package/tests/strict-mode.test.ts +29 -0
- package/tests/transaction-build.test.ts +22 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# AGENTS
|
|
2
|
+
|
|
3
|
+
This file is a fast onboarding entrypoint for AI coding agents working on this repository.
|
|
4
|
+
|
|
5
|
+
## Read order
|
|
6
|
+
|
|
7
|
+
1. `/Users/imighty/Code/dxs-stas-sdk/README.md` (public API and examples)
|
|
8
|
+
2. `/Users/imighty/Code/dxs-stas-sdk/docs/AGENT_RUNBOOK.md` (task-oriented execution flow)
|
|
9
|
+
3. `/Users/imighty/Code/dxs-stas-sdk/docs/DSTAS_0_0_8_SDK_SPEC.md` (normative protocol rules)
|
|
10
|
+
4. `/Users/imighty/Code/dxs-stas-sdk/docs/DSTAS_SCRIPT_INVARIANTS.md` (script-level invariants)
|
|
11
|
+
5. `/Users/imighty/Code/dxs-stas-sdk/docs/DSTAS_CONFORMANCE_MATRIX.md` (test mapping)
|
|
12
|
+
|
|
13
|
+
## Preferred implementation path
|
|
14
|
+
|
|
15
|
+
- Prefer high-level DSTAS APIs first:
|
|
16
|
+
- `DstasBundleFactory` for multi-step payout/split/merge planning.
|
|
17
|
+
- `BuildDstas*` helpers for single-flow transactions.
|
|
18
|
+
- Use legacy `stas*` APIs only for compatibility maintenance.
|
|
19
|
+
|
|
20
|
+
## Mandatory validation rule
|
|
21
|
+
|
|
22
|
+
For every protocol change or new flow, validate built tx hex with script evaluation:
|
|
23
|
+
|
|
24
|
+
- Use `evaluateTransactionHex(...)` from `/Users/imighty/Code/dxs-stas-sdk/src/script/eval/script-evaluator.ts`.
|
|
25
|
+
- Provide an explicit prevout resolver from known `OutPoint`/transaction fixtures.
|
|
26
|
+
- Never mark a DSTAS flow complete without script-level evaluation coverage.
|
|
27
|
+
|
|
28
|
+
## Testing expectations
|
|
29
|
+
|
|
30
|
+
- Put deterministic fixtures under `/Users/imighty/Code/dxs-stas-sdk/tests/fixtures/`.
|
|
31
|
+
- Keep debug/probe helpers under `/Users/imighty/Code/dxs-stas-sdk/tests/debug/`.
|
|
32
|
+
- Do not depend on local `.temp` files in CI-facing tests.
|
|
33
|
+
- Update conformance vectors when behavior intentionally changes:
|
|
34
|
+
- `/Users/imighty/Code/dxs-stas-sdk/tests/fixtures/dstas-conformance-vectors.json`
|
|
35
|
+
|
|
36
|
+
## Safety and constraints
|
|
37
|
+
|
|
38
|
+
- Keep strict parsing enabled by default (`strictTxParse=true`).
|
|
39
|
+
- Preserve flags/service-field ordering and optional-data continuity invariants.
|
|
40
|
+
- Keep multisig bounds enforced (`m <= n`, `n <= 5`) unless protocol spec changes.
|
|
41
|
+
- Avoid silent behavior changes in unlock/signing semantics; cover with negative tests.
|
|
42
|
+
|
|
43
|
+
## Standard local commands
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install
|
|
47
|
+
npm run build
|
|
48
|
+
npm run lint
|
|
49
|
+
npm test
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
For targeted runs, prefer file-scoped Jest execution over full-suite reruns while iterating.
|
package/README.md
CHANGED
|
@@ -6,12 +6,28 @@ TypeScript SDK for building and reading Bitcoin SV transactions, with first-clas
|
|
|
6
6
|
|
|
7
7
|
All binary inputs/outputs are `Uint8Array` (no Node.js `Buffer` in the public API).
|
|
8
8
|
|
|
9
|
+
## Security defaults
|
|
10
|
+
|
|
11
|
+
- ECDSA signing is deterministic (RFC 6979 behavior from `@noble/secp256k1`) with `lowS: true`.
|
|
12
|
+
- Strict transaction parsing is enabled by default.
|
|
13
|
+
- Strict fee-rate validation is enabled by default.
|
|
14
|
+
- Strict script evaluation defaults include a 100KB max element size limit (when strict eval is enabled).
|
|
15
|
+
- DSTAS multisig key validation enforces compressed secp256k1 points and `n <= 5`.
|
|
16
|
+
|
|
9
17
|
## Install
|
|
10
18
|
|
|
11
19
|
```bash
|
|
12
20
|
npm install dxs-stas-sdk
|
|
13
21
|
```
|
|
14
22
|
|
|
23
|
+
## AI Agent onboarding
|
|
24
|
+
|
|
25
|
+
If you are integrating this SDK through an AI coding agent, start with:
|
|
26
|
+
|
|
27
|
+
- `AGENTS.md` (fast onboarding and guardrails)
|
|
28
|
+
- `docs/AGENT_RUNBOOK.md` (task execution workflow)
|
|
29
|
+
- `docs/DSTAS_0_0_8_SDK_SPEC.md` (normative protocol behavior)
|
|
30
|
+
|
|
15
31
|
## Concepts
|
|
16
32
|
|
|
17
33
|
An `OutPoint` represents a spendable UTXO: txid, vout, locking script, satoshis, and owner address.
|
|
@@ -133,7 +149,7 @@ const factory = new DstasBundleFactory(
|
|
|
133
149
|
getStasUtxoSet,
|
|
134
150
|
getTransactions,
|
|
135
151
|
({ fromOutPoint, recipient, spendType, isFreezeLike, isChange }) => {
|
|
136
|
-
const parsed = LockingScriptReader.read(fromOutPoint.
|
|
152
|
+
const parsed = LockingScriptReader.read(fromOutPoint.LockingScript).Dstas;
|
|
137
153
|
if (!parsed) throw new Error("Expected DSTAS input locking script");
|
|
138
154
|
if (recipient.m !== 1 || recipient.addresses.length !== 1) {
|
|
139
155
|
throw new Error("README example supports only m=1 recipient");
|
|
@@ -231,6 +247,14 @@ const txHex = TransactionBuilder.init()
|
|
|
231
247
|
.addChangeOutputWithFee(pk.Address, utxo.Satoshis - 1_000, 0.1)
|
|
232
248
|
.sign()
|
|
233
249
|
.toHex();
|
|
250
|
+
|
|
251
|
+
// Optional: pass a custom input sequence (default is 0xffffffff).
|
|
252
|
+
const txWithSequence = TransactionBuilder.init()
|
|
253
|
+
.addInput(utxo, pk, 0xfffffffe)
|
|
254
|
+
.addP2PkhOutput(1_000, to)
|
|
255
|
+
.addChangeOutputWithFee(pk.Address, utxo.Satoshis - 1_000, 0.1)
|
|
256
|
+
.sign()
|
|
257
|
+
.toHex();
|
|
234
258
|
```
|
|
235
259
|
|
|
236
260
|
## Example: build a STAS transfer transaction
|
|
@@ -7,6 +7,7 @@ export declare class Mnemonic {
|
|
|
7
7
|
words: TWords;
|
|
8
8
|
constructor(phrase: string, words: TWords);
|
|
9
9
|
static generate: () => Mnemonic;
|
|
10
|
+
private static sanitize;
|
|
10
11
|
static fromWords: (words: TWords) => Mnemonic;
|
|
11
12
|
static fromPhrase: (phrase: string) => Mnemonic;
|
|
12
13
|
static fromRandomText: (text: string) => Mnemonic | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../../src/bitcoin/mnemonic.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE7D,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEhD,qBAAa,QAAQ;IAEV,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;gBADb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM;IAGtB,OAAc,QAAQ,QAAO,QAAQ,CACkB;IAEvD,OAAc,SAAS,UAAW,MAAM,KAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../../src/bitcoin/mnemonic.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE7D,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEhD,qBAAa,QAAQ;IAEV,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;gBADb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM;IAGtB,OAAc,QAAQ,QAAO,QAAQ,CACkB;IAEvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAIX;IAEZ,OAAc,SAAS,UAAW,MAAM,KAAG,QAAQ,CAOjD;IAEF,OAAc,UAAU,WAAY,MAAM,KAAG,QAAQ,CAUnD;IAEF,OAAc,cAAc,SAAU,MAAM,KAAG,QAAQ,GAAG,SAAS,CAWjE;CACH"}
|
package/dist/bitcoin/mnemonic.js
CHANGED
|
@@ -13,24 +13,35 @@ class Mnemonic {
|
|
|
13
13
|
}
|
|
14
14
|
exports.Mnemonic = Mnemonic;
|
|
15
15
|
Mnemonic.generate = () => Mnemonic.fromPhrase((0, bip39_1.generateMnemonic)(english_js_1.wordlist, 128));
|
|
16
|
+
Mnemonic.sanitize = (value) => value
|
|
17
|
+
.replace(/\r?\n|\r/g, " ")
|
|
18
|
+
.replace(/\s{2,}/g, " ")
|
|
19
|
+
.trim();
|
|
16
20
|
Mnemonic.fromWords = (words) => {
|
|
17
|
-
const
|
|
18
|
-
|
|
21
|
+
const orderedWords = Object.entries(words)
|
|
22
|
+
.sort((a, b) => Number(a[0]) - Number(b[0]))
|
|
23
|
+
.map(([, word]) => word);
|
|
24
|
+
const phrase = Mnemonic.sanitize(orderedWords.join(" "));
|
|
25
|
+
return Mnemonic.fromPhrase(phrase);
|
|
19
26
|
};
|
|
20
27
|
Mnemonic.fromPhrase = (phrase) => {
|
|
21
|
-
const
|
|
28
|
+
const sanitized = Mnemonic.sanitize(phrase);
|
|
29
|
+
const words = sanitized.split(" ").reduce((a, v, i) => {
|
|
22
30
|
a[`${i}`] = v;
|
|
23
31
|
return a;
|
|
24
32
|
}, {});
|
|
25
|
-
return new Mnemonic(
|
|
33
|
+
return new Mnemonic(sanitized, words);
|
|
26
34
|
};
|
|
27
35
|
Mnemonic.fromRandomText = (text) => {
|
|
28
|
-
const sanitized = text
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
.
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
const sanitized = Mnemonic.sanitize(text);
|
|
37
|
+
if (!sanitized)
|
|
38
|
+
return undefined;
|
|
39
|
+
try {
|
|
40
|
+
if ((0, bip39_1.validateMnemonic)(sanitized, english_js_1.wordlist))
|
|
41
|
+
return Mnemonic.fromPhrase(sanitized);
|
|
42
|
+
}
|
|
43
|
+
catch (_a) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
35
46
|
};
|
|
36
47
|
//# sourceMappingURL=mnemonic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../src/bitcoin/mnemonic.ts"],"names":[],"mappings":";;;AAAA,wCAAkE;AAClE,kEAA6D;AAE7D,gEAA6D;AAApD,sGAAA,QAAQ,OAAA;AAIjB,MAAa,QAAQ;IACnB,YACS,MAAc,EACd,KAAa;QADb,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAQ;IACnB,CAAC;;AAJN,
|
|
1
|
+
{"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../src/bitcoin/mnemonic.ts"],"names":[],"mappings":";;;AAAA,wCAAkE;AAClE,kEAA6D;AAE7D,gEAA6D;AAApD,sGAAA,QAAQ,OAAA;AAIjB,MAAa,QAAQ;IACnB,YACS,MAAc,EACd,KAAa;QADb,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAQ;IACnB,CAAC;;AAJN,4BAgDC;AA1Ce,iBAAQ,GAAG,GAAa,EAAE,CACtC,QAAQ,CAAC,UAAU,CAAC,IAAA,wBAAgB,EAAC,qBAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAExC,iBAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAClD,KAAK;KACF,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;KACzB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;KACvB,IAAI,EAAE,CAAC;AAEE,kBAAS,GAAG,CAAC,KAAa,EAAY,EAAE;IACpD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzD,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC;AAEY,mBAAU,GAAG,CAAC,MAAc,EAAY,EAAE;IACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC5D,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAEd,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAEY,uBAAc,GAAG,CAAC,IAAY,EAAwB,EAAE;IACpE,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,IAAI;QACF,IAAI,IAAA,wBAAgB,EAAC,SAAS,EAAE,qBAAQ,CAAC;YACvC,OAAO,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;KACzC;IAAC,WAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC"}
|
|
@@ -5,15 +5,19 @@ import { Bytes } from "../bytes";
|
|
|
5
5
|
export declare class OutPoint {
|
|
6
6
|
TxId: string;
|
|
7
7
|
Vout: number;
|
|
8
|
-
|
|
8
|
+
private _lockingScript;
|
|
9
9
|
Satoshis: number;
|
|
10
10
|
Address: Address;
|
|
11
11
|
ScriptType: ScriptType;
|
|
12
12
|
Transaction?: Transaction;
|
|
13
|
-
constructor(txId: string, vout: number,
|
|
13
|
+
constructor(txId: string, vout: number, lockingScript: Bytes, satoshis: number, address: Address, scriptType: ScriptType);
|
|
14
14
|
static fromTransaction: (transaction: Transaction, vout: number) => OutPointFull;
|
|
15
15
|
static fromHex: (hex: string, vout: number) => OutPointFull;
|
|
16
16
|
toString: () => string;
|
|
17
|
+
get LockingScript(): Bytes;
|
|
18
|
+
set LockingScript(value: Bytes);
|
|
19
|
+
get LockignScript(): Bytes;
|
|
20
|
+
set LockignScript(value: Bytes);
|
|
17
21
|
}
|
|
18
22
|
export declare class OutPointFull extends OutPoint {
|
|
19
23
|
constructor(transaction: Transaction, vout: number);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"out-point.d.ts","sourceRoot":"","sources":["../../src/bitcoin/out-point.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,qBAAa,QAAQ;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,
|
|
1
|
+
{"version":3,"file":"out-point.d.ts","sourceRoot":"","sources":["../../src/bitcoin/out-point.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,qBAAa,QAAQ;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,cAAc,CAAQ;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;gBAGxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU;IA0BxB,MAAM,CAAC,eAAe,gBAAiB,WAAW,QAAQ,MAAM,kBAC1B;IAEtC,MAAM,CAAC,OAAO,QAAS,MAAM,QAAQ,MAAM,kBACc;IAEzD,QAAQ,eAAqC;IAE7C,IAAI,aAAa,IAAI,KAAK,CAEzB;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAE7B;IAGD,IAAI,aAAa,IAAI,KAAK,CAEzB;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAE7B;CACF;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;CA4BnD"}
|
|
@@ -6,16 +6,16 @@ const script_type_1 = require("./script-type");
|
|
|
6
6
|
const strict_mode_1 = require("../security/strict-mode");
|
|
7
7
|
const locking_script_reader_1 = require("../script/read/locking-script-reader");
|
|
8
8
|
class OutPoint {
|
|
9
|
-
constructor(txId, vout,
|
|
9
|
+
constructor(txId, vout, lockingScript, satoshis, address, scriptType) {
|
|
10
10
|
this.toString = () => `${this.TxId}:${this.Vout}`;
|
|
11
11
|
this.TxId = txId;
|
|
12
12
|
this.Vout = vout;
|
|
13
|
-
this.
|
|
13
|
+
this._lockingScript = lockingScript;
|
|
14
14
|
this.Satoshis = satoshis;
|
|
15
15
|
this.Address = address;
|
|
16
16
|
this.ScriptType = scriptType;
|
|
17
17
|
if ((0, strict_mode_1.getStrictModeConfig)().strictOutPointValidation) {
|
|
18
|
-
const reader = locking_script_reader_1.LockingScriptReader.read(
|
|
18
|
+
const reader = locking_script_reader_1.LockingScriptReader.read(lockingScript);
|
|
19
19
|
if (reader.ScriptType !== scriptType) {
|
|
20
20
|
throw new Error(`OutPoint scriptType mismatch: expected ${scriptType}, got ${reader.ScriptType}`);
|
|
21
21
|
}
|
|
@@ -24,6 +24,18 @@ class OutPoint {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
+
get LockingScript() {
|
|
28
|
+
return this._lockingScript;
|
|
29
|
+
}
|
|
30
|
+
set LockingScript(value) {
|
|
31
|
+
this._lockingScript = value;
|
|
32
|
+
}
|
|
33
|
+
get LockignScript() {
|
|
34
|
+
return this._lockingScript;
|
|
35
|
+
}
|
|
36
|
+
set LockignScript(value) {
|
|
37
|
+
this._lockingScript = value;
|
|
38
|
+
}
|
|
27
39
|
}
|
|
28
40
|
exports.OutPoint = OutPoint;
|
|
29
41
|
OutPoint.fromTransaction = (transaction, vout) => new OutPointFull(transaction, vout);
|
|
@@ -39,7 +51,7 @@ class OutPointFull extends OutPoint {
|
|
|
39
51
|
if (!output.Address) {
|
|
40
52
|
throw new Error("Output does not expose address (for example, DSTAS multisig owner). Build OutPoint manually.");
|
|
41
53
|
}
|
|
42
|
-
super(transaction.Id, vout, output.
|
|
54
|
+
super(transaction.Id, vout, output.LockingScript, output.Satoshis, output.Address, output.ScriptType);
|
|
43
55
|
this.Transaction = transaction;
|
|
44
56
|
}
|
|
45
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"out-point.js","sourceRoot":"","sources":["../../src/bitcoin/out-point.ts"],"names":[],"mappings":";;;AAAA,gDAAmD;AAEnD,+CAA2C;AAG3C,yDAA8D;AAC9D,gFAA2E;AAE3E,MAAa,QAAQ;IASnB,YACE,IAAY,EACZ,IAAY,EACZ,aAAoB,EACpB,QAAgB,EAChB,OAAgB,EAChB,UAAsB;QAgCxB,aAAQ,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QA9B3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"out-point.js","sourceRoot":"","sources":["../../src/bitcoin/out-point.ts"],"names":[],"mappings":";;;AAAA,gDAAmD;AAEnD,+CAA2C;AAG3C,yDAA8D;AAC9D,gFAA2E;AAE3E,MAAa,QAAQ;IASnB,YACE,IAAY,EACZ,IAAY,EACZ,aAAoB,EACpB,QAAgB,EAChB,OAAgB,EAChB,UAAsB;QAgCxB,aAAQ,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QA9B3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAA,iCAAmB,GAAE,CAAC,wBAAwB,EAAE;YAClD,MAAM,MAAM,GAAG,2CAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;gBACpC,MAAM,IAAI,KAAK,CACb,0CAA0C,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,CACjF,CAAC;aACH;YAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;gBAC5D,MAAM,IAAI,KAAK,CACb,uCAAuC,OAAO,CAAC,KAAK,SAAS,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CACpF,CAAC;aACH;SACF;IACH,CAAC;IAUD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,KAAY;QAC5B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAGD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,KAAY;QAC5B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;;AAhEH,4BAiEC;AAxBQ,wBAAe,GAAG,CAAC,WAAwB,EAAE,IAAY,EAAE,EAAE,CAClE,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,AADf,CACgB;AAE/B,gBAAO,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CAC7C,IAAI,YAAY,CAAC,+BAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,AAD1C,CAC2C;AAsB3D,MAAa,YAAa,SAAQ,QAAQ;IACxC,YAAY,WAAwB,EAAE,IAAY;QAChD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEzC,IACE,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK;YACtC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM;YACvC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM;YACvC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK;YAEtC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;SACH;QAED,KAAK,CACH,WAAW,CAAC,EAAE,EACd,IAAI,EACJ,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,UAAU,CAClB,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AA7BD,oCA6BC"}
|
|
@@ -3,11 +3,14 @@ import { Bytes } from "../bytes";
|
|
|
3
3
|
export { verify } from "@noble/secp256k1";
|
|
4
4
|
export declare class PrivateKey {
|
|
5
5
|
private _pk;
|
|
6
|
+
private _disposed;
|
|
6
7
|
Address: Address;
|
|
7
8
|
PublicKey: Bytes;
|
|
8
9
|
constructor(pk: Bytes);
|
|
10
|
+
private assertAlive;
|
|
9
11
|
sign: (message: Bytes) => Uint8Array;
|
|
10
12
|
verify: (signature: Bytes, message: Bytes) => boolean;
|
|
13
|
+
dispose: () => void;
|
|
11
14
|
}
|
|
12
15
|
export declare const verifyBitcoinSignedMessage: (message: Bytes, publicKey: Bytes, signature: Bytes) => boolean;
|
|
13
16
|
//# sourceMappingURL=private-key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-key.d.ts","sourceRoot":"","sources":["../../src/bitcoin/private-key.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,KAAK,EAAuC,MAAM,UAAU,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA0D1C,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAQ;
|
|
1
|
+
{"version":3,"file":"private-key.d.ts","sourceRoot":"","sources":["../../src/bitcoin/private-key.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,KAAK,EAAuC,MAAM,UAAU,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA0D1C,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;gBAEL,EAAE,EAAE,KAAK;IAMrB,OAAO,CAAC,WAAW,CAIjB;IAEF,IAAI,YAAa,KAAK,gBAWpB;IAEF,MAAM,cAAe,KAAK,WAAW,KAAK,aAUxC;IAEF,OAAO,aAGL;CACH;AAED,eAAO,MAAM,0BAA0B,YAC5B,KAAK,aACH,KAAK,aACL,KAAK,YAcjB,CAAC"}
|
|
@@ -61,7 +61,20 @@ const derDecodeSignature = (der) => {
|
|
|
61
61
|
};
|
|
62
62
|
class PrivateKey {
|
|
63
63
|
constructor(pk) {
|
|
64
|
-
this.
|
|
64
|
+
this._disposed = false;
|
|
65
|
+
this.assertAlive = () => {
|
|
66
|
+
if (this._disposed) {
|
|
67
|
+
throw new Error("PrivateKey has been disposed");
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
this.sign = (message) => {
|
|
71
|
+
this.assertAlive();
|
|
72
|
+
return derEncodeSignature(secp256k1_1.Signature.fromBytes((0, secp256k1_1.sign)(message, this._pk, {
|
|
73
|
+
prehash: false,
|
|
74
|
+
lowS: true,
|
|
75
|
+
extraEntropy: false,
|
|
76
|
+
})));
|
|
77
|
+
};
|
|
65
78
|
this.verify = (signature, message) => {
|
|
66
79
|
const sig = signature.length > 0 && signature[0] === 0x30
|
|
67
80
|
? derDecodeSignature(signature).toBytes()
|
|
@@ -71,7 +84,11 @@ class PrivateKey {
|
|
|
71
84
|
format: "compact",
|
|
72
85
|
});
|
|
73
86
|
};
|
|
74
|
-
this.
|
|
87
|
+
this.dispose = () => {
|
|
88
|
+
this._pk.fill(0);
|
|
89
|
+
this._disposed = true;
|
|
90
|
+
};
|
|
91
|
+
this._pk = new Uint8Array(pk);
|
|
75
92
|
this.PublicKey = (0, secp256k1_1.getPublicKey)(this._pk, true);
|
|
76
93
|
this.Address = address_1.Address.fromPublicKey(this.PublicKey);
|
|
77
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-key.js","sourceRoot":"","sources":["../../src/bitcoin/private-key.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"private-key.js","sourceRoot":"","sources":["../../src/bitcoin/private-key.ts"],"names":[],"mappings":";;;AAAA,gDAM0B;AAC1B,mDAA6C;AAC7C,mDAA+C;AAC/C,yDAAsD;AACtD,uCAAoC;AACpC,sCAAuC;AACvC,sCAAoC;AACpC,oCAAsE;AAEtE,8CAA0C;AAAjC,mGAAA,MAAM,OAAA;AAEf,kBAAM,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAA,cAAI,EAAC,gBAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACzD,kBAAM,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,gBAAM,EAAC,GAAG,CAAC,CAAC;AAErC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE;IACtC,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACpC,IAAI,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE;QAC/C,KAAK,GAAG,IAAA,cAAM,EAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;KACjD;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,KAAK,IAAA,aAAK,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAE,EAAE;IAClD,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAE7C,OAAO,IAAA,cAAM,EAAC;QACZ,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,GAAU,EAAE,EAAE;IACxC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAC1C;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,QAAQ,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IAED,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,MAAM,IAAI,IAAI,CAAC;IAEf,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAE9C,OAAO,IAAI,qBAAS,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAa,UAAU;IAOrB,YAAY,EAAS;QALb,cAAS,GAAG,KAAK,CAAC;QAWlB,gBAAW,GAAG,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACjD;QACH,CAAC,CAAC;QAEF,SAAI,GAAG,CAAC,OAAc,EAAE,EAAE;YACxB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO,kBAAkB,CACvB,qBAAS,CAAC,SAAS,CACjB,IAAA,gBAAI,EAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;gBACtB,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,IAAI;gBACV,YAAY,EAAE,KAAK;aACpB,CAAC,CACH,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,SAAgB,EAAE,OAAc,EAAE,EAAE;YAC5C,MAAM,GAAG,GACP,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI;gBAC3C,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;gBACzC,CAAC,CAAC,SAAS,CAAC;YAEhB,OAAO,IAAA,kBAAM,EAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE;gBAC1C,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAvCA,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAA,wBAAY,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;CAqCF;AAhDD,gCAgDC;AAEM,MAAM,0BAA0B,GAAG,CACxC,OAAc,EACd,SAAgB,EAChB,SAAgB,EAChB,EAAE;IACF,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,2BAA2B,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,mBAAU,CAAC,QAAQ,CAChC,IAAA,2BAAY,EAAC,MAAM,CAAC,GAAG,IAAA,2BAAY,EAAC,OAAO,CAAC,CAC7C,CAAC;IAEF,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,IAAA,kBAAM,EAAC,SAAS,EAAE,IAAA,gBAAO,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE;QAC1D,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,0BAA0B,8BAiBrC"}
|
|
@@ -3,12 +3,16 @@ import { Address } from "./address";
|
|
|
3
3
|
import { ScriptType } from "./script-type";
|
|
4
4
|
export declare class TransactionOutput {
|
|
5
5
|
Satoshis: number;
|
|
6
|
-
|
|
6
|
+
private _lockingScript;
|
|
7
7
|
ScriptType: ScriptType;
|
|
8
8
|
Address?: Address;
|
|
9
9
|
TokenId?: string;
|
|
10
10
|
Symbol?: string;
|
|
11
11
|
data: Bytes[];
|
|
12
|
-
constructor(satoshis: number,
|
|
12
|
+
constructor(satoshis: number, lockingScript: Bytes);
|
|
13
|
+
get LockingScript(): Bytes;
|
|
14
|
+
set LockingScript(value: Bytes);
|
|
15
|
+
get LockignScript(): Bytes;
|
|
16
|
+
set LockignScript(value: Bytes);
|
|
13
17
|
}
|
|
14
18
|
//# sourceMappingURL=transaction-output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-output.d.ts","sourceRoot":"","sources":["../../src/bitcoin/transaction-output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAS,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,iBAAiB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"transaction-output.d.ts","sourceRoot":"","sources":["../../src/bitcoin/transaction-output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAS,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,iBAAiB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,cAAc,CAAQ;IAC9B,UAAU,EAAE,UAAU,CAAsB;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,EAAE,CAAM;gBAEP,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK;IA0ClD,IAAI,aAAa,IAAI,KAAK,CAEzB;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAE7B;IAGD,IAAI,aAAa,IAAI,KAAK,CAEzB;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAE7B;CACF"}
|
|
@@ -5,13 +5,13 @@ const locking_script_reader_1 = require("../script/read/locking-script-reader");
|
|
|
5
5
|
const bytes_1 = require("../bytes");
|
|
6
6
|
const script_type_1 = require("./script-type");
|
|
7
7
|
class TransactionOutput {
|
|
8
|
-
constructor(satoshis,
|
|
8
|
+
constructor(satoshis, lockingScript) {
|
|
9
9
|
var _a, _b, _c, _d;
|
|
10
10
|
this.ScriptType = script_type_1.ScriptType.unknown;
|
|
11
11
|
this.data = [];
|
|
12
12
|
this.Satoshis = satoshis;
|
|
13
|
-
this.
|
|
14
|
-
const reader = locking_script_reader_1.LockingScriptReader.read(this.
|
|
13
|
+
this._lockingScript = lockingScript;
|
|
14
|
+
const reader = locking_script_reader_1.LockingScriptReader.read(this._lockingScript);
|
|
15
15
|
this.ScriptType = reader.ScriptType;
|
|
16
16
|
this.Address = reader.Address;
|
|
17
17
|
if (reader.ScriptType === script_type_1.ScriptType.nullData) {
|
|
@@ -40,6 +40,18 @@ class TransactionOutput {
|
|
|
40
40
|
this.data.push(...reader.Dstas.OptionalData);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
get LockingScript() {
|
|
44
|
+
return this._lockingScript;
|
|
45
|
+
}
|
|
46
|
+
set LockingScript(value) {
|
|
47
|
+
this._lockingScript = value;
|
|
48
|
+
}
|
|
49
|
+
get LockignScript() {
|
|
50
|
+
return this._lockingScript;
|
|
51
|
+
}
|
|
52
|
+
set LockignScript(value) {
|
|
53
|
+
this._lockingScript = value;
|
|
54
|
+
}
|
|
43
55
|
}
|
|
44
56
|
exports.TransactionOutput = TransactionOutput;
|
|
45
57
|
//# sourceMappingURL=transaction-output.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-output.js","sourceRoot":"","sources":["../../src/bitcoin/transaction-output.ts"],"names":[],"mappings":";;;AAAA,gFAA2E;AAC3E,oCAAwC;AAExC,+CAA2C;AAE3C,MAAa,iBAAiB;IAS5B,YAAY,QAAgB,EAAE,aAAoB;;QANlD,eAAU,GAAe,wBAAU,CAAC,OAAO,CAAC;QAI5C,SAAI,GAAY,EAAE,CAAC;QAGjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"transaction-output.js","sourceRoot":"","sources":["../../src/bitcoin/transaction-output.ts"],"names":[],"mappings":";;;AAAA,gFAA2E;AAC3E,oCAAwC;AAExC,+CAA2C;AAE3C,MAAa,iBAAiB;IAS5B,YAAY,QAAgB,EAAE,aAAoB;;QANlD,eAAU,GAAe,wBAAU,CAAC,OAAO,CAAC;QAI5C,SAAI,GAAY,EAAE,CAAC;QAGjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QAEpC,MAAM,MAAM,GAAG,2CAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE9B,IAAI,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC;YAC9B,OAAO;SACR;QAED,IACE,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK;YACtC,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM,EACvC;YACA,IAAI,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC;YAC9B,OAAO;SACR;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,UAAU,EAAE,mCAAI,SAAS,CAAC;YAChD,IAAI,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,SAAS,EAAE,mCAAI,SAAS,CAAC;YAE9C,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChC;aACF;YACD,OAAO;SACR;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,wBAAU,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE;YAC1D,IAAI,CAAC,OAAO,GAAG,IAAA,aAAK,EAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SAC9C;IACH,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,KAAY;QAC5B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAGD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,KAAY;QAC5B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;CACF;AAnED,8CAmEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/bitcoin/wallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG/C,UAAU,SAAS;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,qBAAa,MAAO,SAAQ,KAAK;IAC/B,MAAM,CAAC,YAAY,aAAc,MAAM,
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/bitcoin/wallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG/C,UAAU,SAAS;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,qBAAa,MAAO,SAAQ,KAAK;IAC/B,MAAM,CAAC,YAAY,aAAc,MAAM,YAQrC;IAEF,MAAM,CAAC,SAAS,0EAOb,KAAK,YAQH;IAEL,OAAO,CAAC,GAAG,CAAa;gBAEZ,GAAG,EAAE,SAAS;IAM1B,IAAI,OAAO,gCAEV;IAED,IAAI,SAAS,eAEZ;IAED,YAAY,SAAU,MAAM,KAAG,MAAM,CAEnC;IAEF,IAAI,YAAa,UAAU,gBAA4B;IACvD,WAAW,YAAa,UAAU,gBAA4B;CAC/D"}
|
package/dist/bitcoin/wallet.js
CHANGED
|
@@ -23,7 +23,13 @@ class Wallet extends bip32_1.HDKey {
|
|
|
23
23
|
}
|
|
24
24
|
exports.Wallet = Wallet;
|
|
25
25
|
Wallet.fromMnemonic = (mnemonic) => {
|
|
26
|
-
|
|
26
|
+
let seed;
|
|
27
|
+
try {
|
|
28
|
+
seed = (0, bip39_1.mnemonicToSeedSync)(mnemonic.trim());
|
|
29
|
+
}
|
|
30
|
+
catch (_a) {
|
|
31
|
+
throw new Error("Invalid mnemonic phrase");
|
|
32
|
+
}
|
|
27
33
|
return Wallet.fromHdKey(Wallet.fromMasterSeed(seed));
|
|
28
34
|
};
|
|
29
35
|
Wallet.fromHdKey = ({ versions, depth, index, parentFingerprint, chainCode, privateKey, }) => new Wallet({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/bitcoin/wallet.ts"],"names":[],"mappings":";;;AAAA,wCAAkD;AAClD,wCAA+C;AAC/C,+CAA2C;AAW3C,MAAa,MAAO,SAAQ,aAAK;
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/bitcoin/wallet.ts"],"names":[],"mappings":";;;AAAA,wCAAkD;AAClD,wCAA+C;AAC/C,+CAA2C;AAW3C,MAAa,MAAO,SAAQ,aAAK;IA8B/B,YAAY,GAAc;QACxB,KAAK,CAAC,GAAG,CAAC,CAAC;QAab,iBAAY,GAAG,CAAC,IAAY,EAAU,EAAE;YACtC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,SAAI,GAAG,CAAC,OAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,gBAAW,GAAG,CAAC,OAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAhB5D,IAAI,CAAC,GAAG,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;IAC5B,CAAC;;AA1CH,wBAkDC;AAjDQ,mBAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;IACzC,IAAI,IAAgB,CAAC;IACrB,IAAI;QACF,IAAI,GAAG,IAAA,0BAAkB,EAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;KAC5C;IAAC,WAAM;QACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC,AARkB,CAQjB;AAEK,gBAAS,GAAG,CAAC,EAClB,QAAQ,EACR,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,SAAS,EACT,UAAU,GACJ,EAAE,EAAE,CACV,IAAI,MAAM,CAAC;IACT,QAAQ;IACR,KAAK;IACL,KAAK;IACL,iBAAiB;IACjB,SAAS,EAAE,SAAU;IACrB,UAAU,EAAE,UAAW;CACxB,CAAC,AAfY,CAeX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer-utils.d.ts","sourceRoot":"","sources":["../../src/buffer/buffer-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,eAAO,MAAM,WAAW,WAAY,KAAK,uBAKxC,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,MAAM,OAAO,MAAM,SAQpD,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,KAAK,UAAU,MAAM,UAAU,MAAM,eACrC,CAAC;AAE/B,eAAO,MAAM,YAAY,WAAY,KAAK,eAYzC,CAAC;AAEF,eAAO,MAAM,UAAU,WACb,KAAK,gBACA,MAAM,gBACL,MAAM,GAAG,SAAS,cACpB,MAAM,GAAG,SAAS,eAS/B,CAAC;AAiBF,eAAO,MAAM,UAAU,WAAY,KAAK,WAAW,KAAK,KAAG,KAAK,EAe/D,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,MACsB,CAAC;AAEvE,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,MAIX,CAAC;
|
|
1
|
+
{"version":3,"file":"buffer-utils.d.ts","sourceRoot":"","sources":["../../src/buffer/buffer-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,eAAO,MAAM,WAAW,WAAY,KAAK,uBAKxC,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,MAAM,OAAO,MAAM,SAQpD,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,KAAK,UAAU,MAAM,UAAU,MAAM,eACrC,CAAC;AAE/B,eAAO,MAAM,YAAY,WAAY,KAAK,eAYzC,CAAC;AAEF,eAAO,MAAM,UAAU,WACb,KAAK,gBACA,MAAM,gBACL,MAAM,GAAG,SAAS,cACpB,MAAM,GAAG,SAAS,eAS/B,CAAC;AAiBF,eAAO,MAAM,UAAU,WAAY,KAAK,WAAW,KAAK,KAAG,KAAK,EAe/D,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,MACsB,CAAC;AAEvE,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,MAIX,CAAC;AAcnC,eAAO,MAAM,sBAAsB,UAAW,MAAM,KAAG,MAetD,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,KAiB9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAAgB,MAAM,WACV,CAAC;AAE3C,eAAO,MAAM,YAAY,WAAY,KAAK,WAAqC,CAAC"}
|
|
@@ -83,28 +83,36 @@ const getNumberSize = (data) => data > 0 && data <= 16
|
|
|
83
83
|
: (0, exports.getVarIntLength)((0, exports.getMinimumRequiredByte)(data)) +
|
|
84
84
|
(0, exports.getMinimumRequiredByte)(data);
|
|
85
85
|
exports.getNumberSize = getNumberSize;
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
86
|
+
const asSafeInteger = (value) => {
|
|
87
|
+
if (!Number.isInteger(value)) {
|
|
88
|
+
throw new Error(`value has a fractional component: ${value}`);
|
|
89
|
+
}
|
|
90
|
+
if (!Number.isSafeInteger(value)) {
|
|
91
|
+
throw new Error(`value exceeds Number.MAX_SAFE_INTEGER bounds: ${value}`);
|
|
92
|
+
}
|
|
93
|
+
return value;
|
|
94
|
+
};
|
|
95
|
+
const getMinimumRequiredByte = (value) => {
|
|
96
|
+
const safeValue = asSafeInteger(value);
|
|
97
|
+
const big = BigInt(safeValue);
|
|
98
|
+
for (let bytes = 1; bytes <= 8; bytes++) {
|
|
99
|
+
const bits = BigInt(bytes * 8 - 1);
|
|
100
|
+
const min = -(BigInt(1) << bits);
|
|
101
|
+
const max = (BigInt(1) << bits) - BigInt(1);
|
|
102
|
+
if (big >= min && big <= max) {
|
|
103
|
+
return bytes;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return 8;
|
|
107
|
+
};
|
|
101
108
|
exports.getMinimumRequiredByte = getMinimumRequiredByte;
|
|
102
109
|
const getNumberBytes = (value) => {
|
|
103
|
-
const
|
|
110
|
+
const safeValue = asSafeInteger(value);
|
|
111
|
+
const size = (0, exports.getMinimumRequiredByte)(safeValue);
|
|
104
112
|
const buffer = new Uint8Array(size);
|
|
105
113
|
const sizeBits = BigInt(size * 8);
|
|
106
|
-
let big = BigInt(
|
|
107
|
-
if (
|
|
114
|
+
let big = BigInt(safeValue);
|
|
115
|
+
if (safeValue < 0) {
|
|
108
116
|
big = (BigInt(1) << sizeBits) + big;
|
|
109
117
|
}
|
|
110
118
|
for (let i = 0; i < size; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer-utils.js","sourceRoot":"","sources":["../../src/buffer/buffer-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"buffer-utils.js","sourceRoot":"","sources":["../../src/buffer/buffer-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/bytes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAK/B,eAAO,MAAM,MAAM,WAAY,KAAK,EAAE,KAAG,KAWxC,CAAC;AAEF,eAAO,MAAM,KAAK,MAAO,KAAK,KAAK,KAAK,KAAG,
|
|
1
|
+
{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAK/B,eAAO,MAAM,MAAM,WAAY,KAAK,EAAE,KAAG,KAWxC,CAAC;AAEF,eAAO,MAAM,KAAK,MAAO,KAAK,KAAK,KAAK,KAAG,OAO1C,CAAC;AAEF,eAAO,MAAM,WAAW,UAAW,MAAM,KAAG,KAA8B,CAAC;AAC3E,eAAO,MAAM,WAAW,UAAW,KAAK,KAAG,MAA+B,CAAC;AAE3E,eAAO,MAAM,OAAO,UAAW,MAAM,KAAG,KAiBvC,CAAC;AAEF,eAAO,MAAM,KAAK,UAAW,KAAK,KAAG,MAMpC,CAAC"}
|
package/dist/bytes.js
CHANGED
|
@@ -17,11 +17,11 @@ exports.concat = concat;
|
|
|
17
17
|
const equal = (a, b) => {
|
|
18
18
|
if (a.length !== b.length)
|
|
19
19
|
return false;
|
|
20
|
+
let result = 0;
|
|
20
21
|
for (let i = 0; i < a.length; i++) {
|
|
21
|
-
|
|
22
|
-
return false;
|
|
22
|
+
result |= a[i] ^ b[i];
|
|
23
23
|
}
|
|
24
|
-
return
|
|
24
|
+
return result === 0;
|
|
25
25
|
};
|
|
26
26
|
exports.equal = equal;
|
|
27
27
|
const utf8ToBytes = (value) => encoder.encode(value);
|
package/dist/bytes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAE3B,MAAM,MAAM,GAAG,CAAC,MAAe,EAAS,EAAE;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;KACxB;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAXW,QAAA,MAAM,UAWjB;AAEK,MAAM,KAAK,GAAG,CAAC,CAAQ,EAAE,CAAQ,EAAW,EAAE;IACnD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"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"}
|
|
@@ -200,7 +200,7 @@ class DstasBundleFactory {
|
|
|
200
200
|
if (!changeOutput) {
|
|
201
201
|
throw new Error("Transfer planner failed to locate STAS change output");
|
|
202
202
|
}
|
|
203
|
-
currentStas = new bitcoin_1.OutPoint(tx.Id, changeOutputIndex, changeOutput.
|
|
203
|
+
currentStas = new bitcoin_1.OutPoint(tx.Id, changeOutputIndex, changeOutput.LockingScript, changeOutput.Satoshis, this.stasWallet.Address, changeOutput.ScriptType);
|
|
204
204
|
queue.splice(0, transferOutputs.length);
|
|
205
205
|
}
|
|
206
206
|
return {
|
|
@@ -412,7 +412,7 @@ class DstasBundleFactory {
|
|
|
412
412
|
var _a;
|
|
413
413
|
const output = tx.Outputs[vout];
|
|
414
414
|
const owner = (_a = output.Address) !== null && _a !== void 0 ? _a : fallbackAddress;
|
|
415
|
-
return new bitcoin_1.OutPoint(tx.Id, vout, output.
|
|
415
|
+
return new bitcoin_1.OutPoint(tx.Id, vout, output.LockingScript, output.Satoshis, owner, output.ScriptType);
|
|
416
416
|
};
|
|
417
417
|
this.getStasOutPoint = (tx, fallbackAddress) => {
|
|
418
418
|
const index = tx.Outputs.findIndex((output) => output.ScriptType !== bitcoin_1.ScriptType.p2pkh &&
|
|
@@ -427,7 +427,7 @@ class DstasBundleFactory {
|
|
|
427
427
|
const output = tx.Outputs[i];
|
|
428
428
|
if (output.ScriptType === bitcoin_1.ScriptType.p2pkh ||
|
|
429
429
|
output.ScriptType === bitcoin_1.ScriptType.p2mpkh) {
|
|
430
|
-
return new bitcoin_1.OutPoint(tx.Id, i, output.
|
|
430
|
+
return new bitcoin_1.OutPoint(tx.Id, i, output.LockingScript, output.Satoshis, output.Address, output.ScriptType);
|
|
431
431
|
}
|
|
432
432
|
}
|
|
433
433
|
throw new Error("Fee output not found");
|