@bsv/wallet-toolbox-mobile 2.1.11 → 2.1.12
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/out/src/SetupClient.d.ts +6 -1
- package/out/src/SetupClient.d.ts.map +1 -1
- package/out/src/SetupClient.js +2 -1
- package/out/src/SetupClient.js.map +1 -1
- package/out/src/fundWalletP2PKH.d.ts +48 -0
- package/out/src/fundWalletP2PKH.d.ts.map +1 -0
- package/out/src/fundWalletP2PKH.js +239 -0
- package/out/src/fundWalletP2PKH.js.map +1 -0
- package/package.json +1 -1
package/out/src/SetupClient.d.ts
CHANGED
|
@@ -78,7 +78,12 @@ export declare abstract class SetupClient {
|
|
|
78
78
|
/**
|
|
79
79
|
* @publicbody
|
|
80
80
|
*/
|
|
81
|
-
static fundWalletFromP2PKHOutpoints(wallet: WalletInterface, outpoints: string[], p2pkhKey: KeyPairAddress, inputBEEF?: BEEF): Promise<
|
|
81
|
+
static fundWalletFromP2PKHOutpoints(wallet: WalletInterface, outpoints: string[], p2pkhKey: KeyPairAddress, inputBEEF?: BEEF): Promise<{
|
|
82
|
+
outpoint: string;
|
|
83
|
+
txid?: string;
|
|
84
|
+
success: boolean;
|
|
85
|
+
error?: string;
|
|
86
|
+
}[]>;
|
|
82
87
|
/**
|
|
83
88
|
* Adds `indexedDB` based storage to a `Wallet` configured by `SetupClient.createWalletOnly`
|
|
84
89
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetupClient.d.ts","sourceRoot":"","sources":["../../../src/SetupClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAGJ,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAElB,aAAa,EACb,aAAa,EAEb,UAAU,EAEV,oBAAoB,EACpB,eAAe,EAChB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"SetupClient.d.ts","sourceRoot":"","sources":["../../../src/SetupClient.ts"],"names":[],"mappings":"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"}
|
package/out/src/SetupClient.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SetupClient = void 0;
|
|
4
4
|
const sdk_1 = require("@bsv/sdk");
|
|
5
|
+
const fundWalletP2PKH_1 = require("./fundWalletP2PKH");
|
|
5
6
|
const StorageIdb_1 = require("./storage/StorageIdb");
|
|
6
7
|
const WalletStorageManager_1 = require("./storage/WalletStorageManager");
|
|
7
8
|
const Services_1 = require("./services/Services");
|
|
@@ -182,7 +183,7 @@ class SetupClient {
|
|
|
182
183
|
* @publicbody
|
|
183
184
|
*/
|
|
184
185
|
static async fundWalletFromP2PKHOutpoints(wallet, outpoints, p2pkhKey, inputBEEF) {
|
|
185
|
-
|
|
186
|
+
return (0, fundWalletP2PKH_1.fundWalletFromP2PKHOutpoints)(wallet, outpoints, p2pkhKey, SetupClient.getUnlockP2PKH.bind(SetupClient), inputBEEF);
|
|
186
187
|
}
|
|
187
188
|
/**
|
|
188
189
|
* Adds `indexedDB` based storage to a `Wallet` configured by `SetupClient.createWalletOnly`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetupClient.js","sourceRoot":"","sources":["../../../src/SetupClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SetupClient.js","sourceRoot":"","sources":["../../../src/SetupClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for fundWalletFromP2PKHOutpoints.
|
|
3
|
+
* Used by both Setup (Node) and SetupClient (browser/isomorphic).
|
|
4
|
+
*/
|
|
5
|
+
import { Beef, BEEF, CreateActionResult, LockingScript, PublicKey, ScriptTemplateUnlock, SignableTransaction, Transaction, WalletInterface } from '@bsv/sdk';
|
|
6
|
+
import { KeyPairAddress } from './SetupWallet';
|
|
7
|
+
export interface ParsedOutpoint {
|
|
8
|
+
outpoint: string;
|
|
9
|
+
txid: string;
|
|
10
|
+
vout: number;
|
|
11
|
+
}
|
|
12
|
+
/** Strictly parse an outpoint string into txid and vout components. */
|
|
13
|
+
export declare function parseOutpoint(s: string): ParsedOutpoint;
|
|
14
|
+
/** Parse raw hex into a Transaction and assert its hash matches the expected txid. */
|
|
15
|
+
export declare function parseTxAndAssertId(rawHex: string, expectedTxid: string): Transaction;
|
|
16
|
+
/** Verify that a locking script is standard P2PKH and its hash160 matches the given public key. */
|
|
17
|
+
export declare function verifyP2PKHOwnership(lockingScript: LockingScript, publicKey: PublicKey): void;
|
|
18
|
+
/** @internal */
|
|
19
|
+
export declare function resolveAutoSigned(car: CreateActionResult, txid: string, vout: number): string;
|
|
20
|
+
/** @internal */
|
|
21
|
+
export declare function signAndComplete(wallet: WalletInterface, st: SignableTransaction, txid: string, vout: number, satoshis: number, p2pkhKey: KeyPairAddress, getUnlockP2PKH: (priv: KeyPairAddress['privateKey'], satoshis: number) => ScriptTemplateUnlock): Promise<string>;
|
|
22
|
+
/** @internal */
|
|
23
|
+
export declare function importSingleOutpoint(wallet: WalletInterface, beef: Beef, beefBin: BEEF, parsed: ParsedOutpoint, p2pkhKey: KeyPairAddress, getUnlockP2PKH: (priv: KeyPairAddress['privateKey'], satoshis: number) => ScriptTemplateUnlock): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Funds a BRC-100 wallet by importing P2PKH UTXOs.
|
|
26
|
+
*
|
|
27
|
+
* Accepts outpoints + a P2PKH key pair, optionally with a pre-built BEEF.
|
|
28
|
+
* If no BEEF is provided, one is built via buildBeefForOutpoints.
|
|
29
|
+
*/
|
|
30
|
+
export declare function fundWalletFromP2PKHOutpoints(wallet: WalletInterface, outpoints: string[], p2pkhKey: KeyPairAddress, getUnlockP2PKH: (priv: KeyPairAddress['privateKey'], satoshis: number) => ScriptTemplateUnlock, inputBEEF?: BEEF): Promise<{
|
|
31
|
+
outpoint: string;
|
|
32
|
+
txid?: string;
|
|
33
|
+
success: boolean;
|
|
34
|
+
error?: string;
|
|
35
|
+
}[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Builds a valid BEEF for the given outpoints by recursively fetching
|
|
38
|
+
* parent transactions until all paths lead to confirmed ancestors
|
|
39
|
+
* with merkle proofs.
|
|
40
|
+
*
|
|
41
|
+
* This solves the common case where legacy wallets (HandCash, ElectrumSV)
|
|
42
|
+
* create chains of unconfirmed transactions — standard BEEF construction
|
|
43
|
+
* fails because the proof chain is incomplete.
|
|
44
|
+
*
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildBeefForOutpoints(outpoints: string[], maxDepth?: number): Promise<BEEF>;
|
|
48
|
+
//# sourceMappingURL=fundWalletP2PKH.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundWalletP2PKH.d.ts","sourceRoot":"","sources":["../../../src/fundWalletP2PKH.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,kBAAkB,EAClB,aAAa,EAEb,SAAS,EACT,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,eAAe,EAChB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAOvD;AAED,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW,CAOpF;AAED,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAe7F;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAgB7F;AAED,gBAAgB;AAChB,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,mBAAmB,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,oBAAoB,GAC7F,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED,gBAAgB;AAChB,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,EACb,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,oBAAoB,GAC7F,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,oBAAoB,EAC9F,SAAS,CAAC,EAAE,IAAI,GACf,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAoBlF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAqE7F"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseOutpoint = parseOutpoint;
|
|
4
|
+
exports.parseTxAndAssertId = parseTxAndAssertId;
|
|
5
|
+
exports.verifyP2PKHOwnership = verifyP2PKHOwnership;
|
|
6
|
+
exports.resolveAutoSigned = resolveAutoSigned;
|
|
7
|
+
exports.signAndComplete = signAndComplete;
|
|
8
|
+
exports.importSingleOutpoint = importSingleOutpoint;
|
|
9
|
+
exports.fundWalletFromP2PKHOutpoints = fundWalletFromP2PKHOutpoints;
|
|
10
|
+
exports.buildBeefForOutpoints = buildBeefForOutpoints;
|
|
11
|
+
/**
|
|
12
|
+
* Shared helpers for fundWalletFromP2PKHOutpoints.
|
|
13
|
+
* Used by both Setup (Node) and SetupClient (browser/isomorphic).
|
|
14
|
+
*/
|
|
15
|
+
const sdk_1 = require("@bsv/sdk");
|
|
16
|
+
/** Strictly parse an outpoint string into txid and vout components. */
|
|
17
|
+
function parseOutpoint(s) {
|
|
18
|
+
const m = /^([0-9a-fA-F]{64})\.(\d+)$/.exec(s);
|
|
19
|
+
if (!m)
|
|
20
|
+
throw new Error(`Invalid outpoint format: ${s}`);
|
|
21
|
+
const txid = m[1].toLowerCase();
|
|
22
|
+
const vout = Number(m[2]);
|
|
23
|
+
if (!Number.isSafeInteger(vout) || vout < 0)
|
|
24
|
+
throw new Error(`Invalid vout in outpoint: ${s}`);
|
|
25
|
+
return { outpoint: s, txid, vout };
|
|
26
|
+
}
|
|
27
|
+
/** Parse raw hex into a Transaction and assert its hash matches the expected txid. */
|
|
28
|
+
function parseTxAndAssertId(rawHex, expectedTxid) {
|
|
29
|
+
const tx = sdk_1.Transaction.fromHex(rawHex);
|
|
30
|
+
const got = tx.id('hex');
|
|
31
|
+
if (got.toLowerCase() !== expectedTxid.toLowerCase()) {
|
|
32
|
+
throw new Error(`Fetched tx hex txid mismatch: expected=${expectedTxid} got=${got}`);
|
|
33
|
+
}
|
|
34
|
+
return tx;
|
|
35
|
+
}
|
|
36
|
+
/** Verify that a locking script is standard P2PKH and its hash160 matches the given public key. */
|
|
37
|
+
function verifyP2PKHOwnership(lockingScript, publicKey) {
|
|
38
|
+
var _a;
|
|
39
|
+
const chunks = lockingScript.chunks;
|
|
40
|
+
if (chunks.length !== 5)
|
|
41
|
+
throw new Error('UTXO is not standard P2PKH');
|
|
42
|
+
if (chunks[0].op !== 118)
|
|
43
|
+
throw new Error('UTXO is not P2PKH (missing OP_DUP)');
|
|
44
|
+
if (chunks[1].op !== 169)
|
|
45
|
+
throw new Error('UTXO is not P2PKH (missing OP_HASH160)');
|
|
46
|
+
if (((_a = chunks[2].data) === null || _a === void 0 ? void 0 : _a.length) !== 20)
|
|
47
|
+
throw new Error('UTXO is not P2PKH (bad hash160)');
|
|
48
|
+
if (chunks[3].op !== 136)
|
|
49
|
+
throw new Error('UTXO is not P2PKH (missing OP_EQUALVERIFY)');
|
|
50
|
+
if (chunks[4].op !== 172)
|
|
51
|
+
throw new Error('UTXO is not P2PKH (missing OP_CHECKSIG)');
|
|
52
|
+
const scriptHash = chunks[2].data;
|
|
53
|
+
const keyHash = publicKey.toHash();
|
|
54
|
+
if (scriptHash.length !== keyHash.length)
|
|
55
|
+
throw new Error('P2PKH hash160 length mismatch');
|
|
56
|
+
for (let i = 0; i < scriptHash.length; i++) {
|
|
57
|
+
if (scriptHash[i] !== keyHash[i])
|
|
58
|
+
throw new Error('UTXO P2PKH hash160 does not match provided key');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** @internal */
|
|
62
|
+
function resolveAutoSigned(car, txid, vout) {
|
|
63
|
+
if (!car.txid || !/^[0-9a-f]{64}$/i.test(car.txid)) {
|
|
64
|
+
throw new Error('createAction returned no signableTransaction and no valid txid');
|
|
65
|
+
}
|
|
66
|
+
if (car.tx) {
|
|
67
|
+
const completedTx = sdk_1.Transaction.fromAtomicBEEF(car.tx);
|
|
68
|
+
if (completedTx.id('hex').toLowerCase() !== car.txid.toLowerCase()) {
|
|
69
|
+
throw new Error('Auto-signed tx id mismatch with car.txid');
|
|
70
|
+
}
|
|
71
|
+
if (!completedTx.inputs.some(inp => String(inp.sourceTXID).toLowerCase() === txid && inp.sourceOutputIndex === vout)) {
|
|
72
|
+
throw new Error('Auto-signed tx does not spend the requested outpoint');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return car.txid;
|
|
76
|
+
}
|
|
77
|
+
/** @internal */
|
|
78
|
+
async function signAndComplete(wallet, st, txid, vout, satoshis, p2pkhKey, getUnlockP2PKH) {
|
|
79
|
+
const stBeef = sdk_1.Beef.fromBinary(st.tx);
|
|
80
|
+
let unsignedTx;
|
|
81
|
+
let inputIndex = -1;
|
|
82
|
+
for (const stbtx of stBeef.txs) {
|
|
83
|
+
if (!stbtx.tx)
|
|
84
|
+
continue;
|
|
85
|
+
for (let i = 0; i < stbtx.tx.inputs.length; i++) {
|
|
86
|
+
const inp = stbtx.tx.inputs[i];
|
|
87
|
+
if (String(inp.sourceTXID).toLowerCase() === txid && inp.sourceOutputIndex === vout) {
|
|
88
|
+
unsignedTx = stbtx.tx;
|
|
89
|
+
inputIndex = i;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (unsignedTx)
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
if (!unsignedTx || inputIndex < 0)
|
|
97
|
+
throw new Error('Could not find requested outpoint in signable transaction inputs');
|
|
98
|
+
unsignedTx.inputs[inputIndex].unlockingScriptTemplate = getUnlockP2PKH(p2pkhKey.privateKey, satoshis);
|
|
99
|
+
await unsignedTx.sign();
|
|
100
|
+
const unlockingScript = unsignedTx.inputs[inputIndex].unlockingScript.toHex();
|
|
101
|
+
const sar = await wallet.signAction({ reference: st.reference, spends: { [inputIndex]: { unlockingScript } } });
|
|
102
|
+
if (!sar.txid || !/^[0-9a-f]{64}$/i.test(sar.txid))
|
|
103
|
+
throw new Error('signAction returned no valid txid');
|
|
104
|
+
return sar.txid;
|
|
105
|
+
}
|
|
106
|
+
/** @internal */
|
|
107
|
+
async function importSingleOutpoint(wallet, beef, beefBin, parsed, p2pkhKey, getUnlockP2PKH) {
|
|
108
|
+
const { outpoint, txid, vout } = parsed;
|
|
109
|
+
const btx = beef.findTxid(txid);
|
|
110
|
+
if (!(btx === null || btx === void 0 ? void 0 : btx.tx))
|
|
111
|
+
throw new Error(`Transaction ${txid} not found in inputBEEF`);
|
|
112
|
+
if (vout < 0 || vout >= btx.tx.outputs.length)
|
|
113
|
+
throw new Error(`vout ${vout} out of range (tx has ${btx.tx.outputs.length} outputs)`);
|
|
114
|
+
const output = btx.tx.outputs[vout];
|
|
115
|
+
const satoshis = output.satoshis;
|
|
116
|
+
if (!satoshis || satoshis <= 0)
|
|
117
|
+
throw new Error(`Output ${outpoint} has no satoshis`);
|
|
118
|
+
verifyP2PKHOwnership(output.lockingScript, p2pkhKey.publicKey);
|
|
119
|
+
const car = await wallet.createAction({
|
|
120
|
+
inputBEEF: beefBin,
|
|
121
|
+
inputs: [{ outpoint, unlockingScriptLength: 108, inputDescription: 'fund wallet from P2PKH' }],
|
|
122
|
+
labels: ['p2pkh-funding'],
|
|
123
|
+
description: `Import P2PKH UTXO ${txid.slice(0, 16)}...`,
|
|
124
|
+
options: { trustSelf: 'known' }
|
|
125
|
+
});
|
|
126
|
+
if (!car.signableTransaction) {
|
|
127
|
+
return resolveAutoSigned(car, txid, vout);
|
|
128
|
+
}
|
|
129
|
+
return signAndComplete(wallet, car.signableTransaction, txid, vout, satoshis, p2pkhKey, getUnlockP2PKH);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Funds a BRC-100 wallet by importing P2PKH UTXOs.
|
|
133
|
+
*
|
|
134
|
+
* Accepts outpoints + a P2PKH key pair, optionally with a pre-built BEEF.
|
|
135
|
+
* If no BEEF is provided, one is built via buildBeefForOutpoints.
|
|
136
|
+
*/
|
|
137
|
+
async function fundWalletFromP2PKHOutpoints(wallet, outpoints, p2pkhKey, getUnlockP2PKH, inputBEEF) {
|
|
138
|
+
const parsed = outpoints.map(o => parseOutpoint(o));
|
|
139
|
+
const seen = new Set();
|
|
140
|
+
for (const p of parsed) {
|
|
141
|
+
const key = `${p.txid}.${p.vout}`;
|
|
142
|
+
if (seen.has(key))
|
|
143
|
+
throw new Error(`Duplicate outpoint: ${key}`);
|
|
144
|
+
seen.add(key);
|
|
145
|
+
}
|
|
146
|
+
const beefBin = inputBEEF !== null && inputBEEF !== void 0 ? inputBEEF : (await buildBeefForOutpoints(outpoints));
|
|
147
|
+
const beef = sdk_1.Beef.fromBinary(beefBin);
|
|
148
|
+
const results = [];
|
|
149
|
+
for (const p of parsed) {
|
|
150
|
+
try {
|
|
151
|
+
const resultTxid = await importSingleOutpoint(wallet, beef, beefBin, p, p2pkhKey, getUnlockP2PKH);
|
|
152
|
+
results.push({ outpoint: p.outpoint, txid: resultTxid, success: true });
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
results.push({ outpoint: p.outpoint, success: false, error: err instanceof Error ? err.message : String(err) });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return results;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Builds a valid BEEF for the given outpoints by recursively fetching
|
|
162
|
+
* parent transactions until all paths lead to confirmed ancestors
|
|
163
|
+
* with merkle proofs.
|
|
164
|
+
*
|
|
165
|
+
* This solves the common case where legacy wallets (HandCash, ElectrumSV)
|
|
166
|
+
* create chains of unconfirmed transactions — standard BEEF construction
|
|
167
|
+
* fails because the proof chain is incomplete.
|
|
168
|
+
*
|
|
169
|
+
* @internal
|
|
170
|
+
*/
|
|
171
|
+
async function buildBeefForOutpoints(outpoints, maxDepth = 10) {
|
|
172
|
+
const beef = new sdk_1.Beef();
|
|
173
|
+
const fetched = new Set();
|
|
174
|
+
async function fetchRawTx(txid) {
|
|
175
|
+
const providers = [
|
|
176
|
+
`https://ordinals.gorillapool.io/api/tx/${txid}/hex`,
|
|
177
|
+
`https://api.whatsonchain.com/v1/bsv/main/tx/${txid}/hex`
|
|
178
|
+
];
|
|
179
|
+
for (const url of providers) {
|
|
180
|
+
try {
|
|
181
|
+
const ctrl = new AbortController();
|
|
182
|
+
const t = setTimeout(() => ctrl.abort(), 8000);
|
|
183
|
+
const res = await fetch(url, { signal: ctrl.signal });
|
|
184
|
+
clearTimeout(t);
|
|
185
|
+
if (res.ok)
|
|
186
|
+
return (await res.text()).trim();
|
|
187
|
+
}
|
|
188
|
+
catch (_a) {
|
|
189
|
+
/* try next */
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
async function fetchMerklePath(txid) {
|
|
195
|
+
try {
|
|
196
|
+
const ctrl = new AbortController();
|
|
197
|
+
const t = setTimeout(() => ctrl.abort(), 8000);
|
|
198
|
+
const res = await fetch(`https://ordinals.gorillapool.io/api/tx/${txid}/proof`, { signal: ctrl.signal });
|
|
199
|
+
clearTimeout(t);
|
|
200
|
+
if (!res.ok)
|
|
201
|
+
return null;
|
|
202
|
+
const buf = new Uint8Array(await res.arrayBuffer());
|
|
203
|
+
return sdk_1.MerklePath.fromBinary(Array.from(buf));
|
|
204
|
+
}
|
|
205
|
+
catch (_a) {
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
async function addTxToBeef(txid, depth) {
|
|
210
|
+
if (fetched.has(txid))
|
|
211
|
+
return;
|
|
212
|
+
if (depth > maxDepth) {
|
|
213
|
+
throw new Error(`BEEF build exceeded maxDepth=${maxDepth} while resolving ${txid}`);
|
|
214
|
+
}
|
|
215
|
+
fetched.add(txid);
|
|
216
|
+
const rawHex = await fetchRawTx(txid);
|
|
217
|
+
if (!rawHex)
|
|
218
|
+
throw new Error(`Failed to fetch raw transaction ${txid} from any provider`);
|
|
219
|
+
const tx = parseTxAndAssertId(rawHex, txid);
|
|
220
|
+
const merklePath = await fetchMerklePath(txid);
|
|
221
|
+
if (merklePath) {
|
|
222
|
+
tx.merklePath = merklePath;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
for (const input of tx.inputs) {
|
|
226
|
+
if (input.sourceTXID) {
|
|
227
|
+
await addTxToBeef(input.sourceTXID, depth + 1);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
beef.mergeTransaction(tx);
|
|
232
|
+
}
|
|
233
|
+
for (const outpoint of outpoints) {
|
|
234
|
+
const { txid } = parseOutpoint(outpoint);
|
|
235
|
+
await addTxToBeef(txid, 0);
|
|
236
|
+
}
|
|
237
|
+
return beef.toBinary();
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=fundWalletP2PKH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundWalletP2PKH.js","sourceRoot":"","sources":["../../../src/fundWalletP2PKH.ts"],"names":[],"mappings":"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"}
|