@getomnichain/omnichain 0.3.6 → 0.5.1
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 +80 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/rango_chain_names.js +209 -0
- package/dist/cjs/rango_chain_names.js.map +1 -0
- package/dist/cjs/solana/solana_chain.js +89 -25
- package/dist/cjs/solana/solana_chain.js.map +1 -1
- package/dist/cjs/solana/solana_transaction_status.js +39 -3
- package/dist/cjs/solana/solana_transaction_status.js.map +1 -1
- package/dist/cjs/utxo/btc/tools/bitcoin_core.tool.js +129 -0
- package/dist/cjs/utxo/btc/tools/bitcoin_core.tool.js.map +1 -1
- package/dist/cjs/utxo/btc/tools/esplora.tool.js +84 -0
- package/dist/cjs/utxo/btc/tools/esplora.tool.js.map +1 -1
- package/dist/cjs/utxo/utxo_chain.js +18 -49
- package/dist/cjs/utxo/utxo_chain.js.map +1 -1
- package/dist/cjs/utxo/utxo_transaction_status.js +20 -16
- package/dist/cjs/utxo/utxo_transaction_status.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/rango_chain_names.d.ts +76 -0
- package/dist/esm/rango_chain_names.d.ts.map +1 -0
- package/dist/esm/rango_chain_names.js +171 -0
- package/dist/esm/rango_chain_names.js.map +1 -0
- package/dist/esm/solana/solana_chain.d.ts.map +1 -1
- package/dist/esm/solana/solana_chain.js +90 -26
- package/dist/esm/solana/solana_chain.js.map +1 -1
- package/dist/esm/solana/solana_transaction_status.d.ts +40 -2
- package/dist/esm/solana/solana_transaction_status.d.ts.map +1 -1
- package/dist/esm/solana/solana_transaction_status.js +38 -2
- package/dist/esm/solana/solana_transaction_status.js.map +1 -1
- package/dist/esm/utxo/btc/tools/bitcoin_core.tool.d.ts +4 -1
- package/dist/esm/utxo/btc/tools/bitcoin_core.tool.d.ts.map +1 -1
- package/dist/esm/utxo/btc/tools/bitcoin_core.tool.js +129 -0
- package/dist/esm/utxo/btc/tools/bitcoin_core.tool.js.map +1 -1
- package/dist/esm/utxo/btc/tools/esplora.tool.d.ts +2 -1
- package/dist/esm/utxo/btc/tools/esplora.tool.d.ts.map +1 -1
- package/dist/esm/utxo/btc/tools/esplora.tool.js +84 -0
- package/dist/esm/utxo/btc/tools/esplora.tool.js.map +1 -1
- package/dist/esm/utxo/tools/raw_transaction_provider.d.ts +2 -1
- package/dist/esm/utxo/tools/raw_transaction_provider.d.ts.map +1 -1
- package/dist/esm/utxo/utxo.d.ts +27 -0
- package/dist/esm/utxo/utxo.d.ts.map +1 -1
- package/dist/esm/utxo/utxo_chain.d.ts.map +1 -1
- package/dist/esm/utxo/utxo_chain.js +18 -49
- package/dist/esm/utxo/utxo_chain.js.map +1 -1
- package/dist/esm/utxo/utxo_transaction_status.d.ts +21 -16
- package/dist/esm/utxo/utxo_transaction_status.d.ts.map +1 -1
- package/dist/esm/utxo/utxo_transaction_status.js +20 -16
- package/dist/esm/utxo/utxo_transaction_status.js.map +1 -1
- package/docs/README.md +1 -0
- package/docs/solana.md +23 -0
- package/package.json +3 -2
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
import { Transaction } from 'bitcoinjs-lib';
|
|
2
3
|
import { addressToScriptPubKey, detectScriptType } from "../../script.js";
|
|
4
|
+
import { Decimal } from 'decimal.js';
|
|
3
5
|
const SATS_PER_BTC = 100_000_000;
|
|
4
6
|
export class BitcoinCoreTool {
|
|
5
7
|
client;
|
|
@@ -9,6 +11,7 @@ export class BitcoinCoreTool {
|
|
|
9
11
|
importTimestamp;
|
|
10
12
|
watchOnlyLabel;
|
|
11
13
|
watchedAddresses = new Set();
|
|
14
|
+
bitcoinCoreVerbose;
|
|
12
15
|
constructor(options) {
|
|
13
16
|
if (!options.baseUrl || options.baseUrl.trim().length === 0) {
|
|
14
17
|
throw new Error('BitcoinCoreTool: baseUrl is required');
|
|
@@ -18,6 +21,7 @@ export class BitcoinCoreTool {
|
|
|
18
21
|
this.feeEstimateMode = options.feeEstimateMode ?? 'CONSERVATIVE';
|
|
19
22
|
this.importTimestamp = options.importTimestamp ?? 'now';
|
|
20
23
|
this.watchOnlyLabel = options.watchOnlyLabel ?? 'utxo-watch';
|
|
24
|
+
this.bitcoinCoreVerbose = options.bitcoinCoreVerbose ?? 1;
|
|
21
25
|
const auth = Buffer.from(`${options.user}:${options.password}`).toString('base64');
|
|
22
26
|
this.client = axios.create({
|
|
23
27
|
baseURL: options.baseUrl.replace(/\/$/, ''),
|
|
@@ -121,6 +125,131 @@ export class BitcoinCoreTool {
|
|
|
121
125
|
fees: verbose.fee !== undefined ? { absoluteSats: Math.round(verbose.fee * SATS_PER_BTC) } : null,
|
|
122
126
|
};
|
|
123
127
|
}
|
|
128
|
+
async getTransactionWithInputs(txid) {
|
|
129
|
+
const main = await this.rpc('getrawtransaction', [txid, this.bitcoinCoreVerbose]);
|
|
130
|
+
const hydratedPrevouts = new Map();
|
|
131
|
+
const needsWalk = [];
|
|
132
|
+
for (const v of main.vin) {
|
|
133
|
+
if (v.coinbase !== undefined)
|
|
134
|
+
continue;
|
|
135
|
+
if (v.txid === undefined || v.vout === undefined)
|
|
136
|
+
continue;
|
|
137
|
+
if (v.prevout) {
|
|
138
|
+
hydratedPrevouts.set(`${v.txid}:${v.vout}`, {
|
|
139
|
+
valueSats: Math.round(v.prevout.value * SATS_PER_BTC),
|
|
140
|
+
scriptPubkeyHex: v.prevout.scriptPubKey.hex,
|
|
141
|
+
address: v.prevout.scriptPubKey.address ?? null,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
needsWalk.push({ txid: v.txid, vout: v.vout });
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (needsWalk.length > 0) {
|
|
149
|
+
const parentTxids = Array.from(new Set(needsWalk.map((v) => v.txid)));
|
|
150
|
+
let parents;
|
|
151
|
+
try {
|
|
152
|
+
parents = await this.batchRpc(parentTxids.map((pTxid) => ({ method: 'getrawtransaction', params: [pTxid, 1] })));
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
const rawMsg = err instanceof Error ? err.message : String(err);
|
|
156
|
+
const scrubbed = rawMsg.replace(/getrawtransaction:/g, 'parent-prevout-fetch:');
|
|
157
|
+
throw new Error(`BitcoinCoreTool.getTransactionWithInputs: prevout hydration failed for one of parents [${parentTxids.join(', ')}] on ${txid}: ${scrubbed}`);
|
|
158
|
+
}
|
|
159
|
+
const parentByTxid = new Map();
|
|
160
|
+
for (let i = 0; i < parentTxids.length; i++)
|
|
161
|
+
parentByTxid.set(parentTxids[i], parents[i]);
|
|
162
|
+
for (const v of needsWalk) {
|
|
163
|
+
const parent = parentByTxid.get(v.txid);
|
|
164
|
+
if (!parent) {
|
|
165
|
+
throw new Error(`BitcoinCoreTool.getTransactionWithInputs: parent tx ${v.txid} not returned`);
|
|
166
|
+
}
|
|
167
|
+
const out = parent.vout[v.vout];
|
|
168
|
+
if (!out) {
|
|
169
|
+
throw new Error(`BitcoinCoreTool.getTransactionWithInputs: parent tx ${v.txid} has no vout[${v.vout}]`);
|
|
170
|
+
}
|
|
171
|
+
hydratedPrevouts.set(`${v.txid}:${v.vout}`, {
|
|
172
|
+
valueSats: Math.round(out.value * SATS_PER_BTC),
|
|
173
|
+
scriptPubkeyHex: out.scriptPubKey.hex,
|
|
174
|
+
address: out.scriptPubKey.address ?? null,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const inputs = main.vin.map((v) => {
|
|
179
|
+
if (v.coinbase !== undefined) {
|
|
180
|
+
return {
|
|
181
|
+
txid: '0'.repeat(64),
|
|
182
|
+
vout: 0xffffffff,
|
|
183
|
+
scriptPubkeyHex: '',
|
|
184
|
+
address: null,
|
|
185
|
+
valueSats: 0n,
|
|
186
|
+
valueBtcHr: new Decimal(0),
|
|
187
|
+
coinbase: true,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
const hydrated = hydratedPrevouts.get(`${v.txid}:${v.vout}`);
|
|
191
|
+
if (!hydrated) {
|
|
192
|
+
throw new Error(`BitcoinCoreTool.getTransactionWithInputs: missing hydrated prevout for ${v.txid}:${v.vout}`);
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
txid: v.txid,
|
|
196
|
+
vout: v.vout,
|
|
197
|
+
scriptPubkeyHex: hydrated.scriptPubkeyHex,
|
|
198
|
+
address: hydrated.address,
|
|
199
|
+
valueSats: BigInt(hydrated.valueSats),
|
|
200
|
+
valueBtcHr: new Decimal(hydrated.valueSats).div(SATS_PER_BTC),
|
|
201
|
+
};
|
|
202
|
+
});
|
|
203
|
+
const outputs = main.vout.map((o) => {
|
|
204
|
+
const hex = o.scriptPubKey.hex;
|
|
205
|
+
const buf = Buffer.from(hex, 'hex');
|
|
206
|
+
return {
|
|
207
|
+
valueSats: Math.round(o.value * SATS_PER_BTC),
|
|
208
|
+
scriptPubKeyHex: hex,
|
|
209
|
+
scriptType: detectScriptType(buf),
|
|
210
|
+
address: o.scriptPubKey.address ?? null,
|
|
211
|
+
};
|
|
212
|
+
});
|
|
213
|
+
const netChangesHr = {};
|
|
214
|
+
for (const i of inputs) {
|
|
215
|
+
if (i.address === null)
|
|
216
|
+
continue;
|
|
217
|
+
const prev = netChangesHr[i.address] ?? new Decimal(0);
|
|
218
|
+
netChangesHr[i.address] = prev.minus(i.valueBtcHr);
|
|
219
|
+
}
|
|
220
|
+
for (const o of outputs) {
|
|
221
|
+
if (o.address === null)
|
|
222
|
+
continue;
|
|
223
|
+
const prev = netChangesHr[o.address] ?? new Decimal(0);
|
|
224
|
+
netChangesHr[o.address] = prev.plus(new Decimal(o.valueSats).div(SATS_PER_BTC));
|
|
225
|
+
}
|
|
226
|
+
for (const addr of Object.keys(netChangesHr)) {
|
|
227
|
+
if (netChangesHr[addr].isZero())
|
|
228
|
+
delete netChangesHr[addr];
|
|
229
|
+
}
|
|
230
|
+
const rawBuf = Buffer.from(main.hex, 'hex');
|
|
231
|
+
const size = rawBuf.byteLength;
|
|
232
|
+
let vsize = size;
|
|
233
|
+
try {
|
|
234
|
+
vsize = Transaction.fromBuffer(rawBuf).virtualSize();
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
vsize = size;
|
|
238
|
+
}
|
|
239
|
+
return {
|
|
240
|
+
txid: main.txid,
|
|
241
|
+
hex: main.hex,
|
|
242
|
+
inputs,
|
|
243
|
+
outputs,
|
|
244
|
+
netChangesHr,
|
|
245
|
+
size,
|
|
246
|
+
vsize,
|
|
247
|
+
confirmations: main.confirmations ?? 0,
|
|
248
|
+
confirmationDatetime: typeof main.blocktime === 'number' ? new Date(main.blocktime * 1000) : null,
|
|
249
|
+
blockHeight: main.blockheight ?? null,
|
|
250
|
+
fees: main.fee !== undefined ? { absoluteSats: Math.round(main.fee * SATS_PER_BTC) } : null,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
124
253
|
async getFeeEstimate(targetBlocks) {
|
|
125
254
|
const result = await this.rpc('estimatesmartfee', [
|
|
126
255
|
targetBlocks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitcoin_core.tool.js","sourceRoot":"","sources":["../../../../../utxo/btc/tools/bitcoin_core.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bitcoin_core.tool.js","sourceRoot":"","sources":["../../../../../utxo/btc/tools/bitcoin_core.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { UtxoFeeEstimator } from '../../tools/fee_estimator.ts';
|
|
|
4
4
|
import { UtxoRawTransactionProvider } from '../../tools/raw_transaction_provider.ts';
|
|
5
5
|
import { UtxoProvider } from '../../tools/utxo_provider.ts';
|
|
6
6
|
import { UtxoNetworkParams } from '../../utxo_network_params.ts';
|
|
7
|
-
import { AddressBalance, BroadcastResult, FeeEstimate, RawTransactionView, UnspentTransactionOutput } from '../../utxo.ts';
|
|
7
|
+
import { AddressBalance, BroadcastResult, FeeEstimate, RawTransactionView, UnspentTransactionOutput, UtxoTransaction } from '../../utxo.ts';
|
|
8
8
|
export interface EsploraToolOptions {
|
|
9
9
|
baseUrl: string;
|
|
10
10
|
params: UtxoNetworkParams;
|
|
@@ -20,6 +20,7 @@ export declare class EsploraTool implements UtxoProvider, UtxoRawTransactionProv
|
|
|
20
20
|
getAddressBalance(address: string): Promise<AddressBalance>;
|
|
21
21
|
getRawTransactionHex(txid: string): Promise<string>;
|
|
22
22
|
getTransaction(txid: string): Promise<RawTransactionView>;
|
|
23
|
+
getTransactionWithInputs(txid: string): Promise<UtxoTransaction>;
|
|
23
24
|
getFeeEstimate(targetBlocks: number): Promise<FeeEstimate>;
|
|
24
25
|
broadcast(rawHex: string): Promise<BroadcastResult>;
|
|
25
26
|
getChainTipHeight(): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esplora.tool.d.ts","sourceRoot":"","sources":["../../../../../utxo/btc/tools/esplora.tool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"esplora.tool.d.ts","sourceRoot":"","sources":["../../../../../utxo/btc/tools/esplora.tool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACX,kBAAkB,EAGlB,wBAAwB,EACxB,eAAe,EAEhB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuCD,qBAAa,WACX,YACE,YAAY,EACZ,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,oBAAoB;IAEtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,OAAO,EAAE,kBAAkB;IAWvC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,yBAAyB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAItE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAmB9D,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAO3D,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKnD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiCzD,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAuFhE,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmB1D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQnD,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;CAI3C"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
import { Transaction } from 'bitcoinjs-lib';
|
|
2
3
|
import { addressToScriptPubKey, detectScriptType } from "../../script.js";
|
|
4
|
+
import { Decimal } from 'decimal.js';
|
|
3
5
|
export class EsploraTool {
|
|
4
6
|
client;
|
|
5
7
|
params;
|
|
@@ -78,6 +80,88 @@ export class EsploraTool {
|
|
|
78
80
|
fees: meta.fee !== undefined ? { absoluteSats: meta.fee } : null,
|
|
79
81
|
};
|
|
80
82
|
}
|
|
83
|
+
async getTransactionWithInputs(txid) {
|
|
84
|
+
const tipHeight = await this.getChainTipHeight();
|
|
85
|
+
const { data: meta } = await this.client.get(`/tx/${txid}`);
|
|
86
|
+
const inputs = meta.vin.map((v) => {
|
|
87
|
+
if (v.is_coinbase) {
|
|
88
|
+
return {
|
|
89
|
+
txid: v.txid,
|
|
90
|
+
vout: v.vout,
|
|
91
|
+
scriptPubkeyHex: '',
|
|
92
|
+
address: null,
|
|
93
|
+
valueSats: 0n,
|
|
94
|
+
valueBtcHr: new Decimal(0),
|
|
95
|
+
coinbase: true,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (!v.prevout) {
|
|
99
|
+
throw new Error(`EsploraTool.getTransactionWithInputs: non-coinbase vin missing prevout in Esplora response for ${txid}`);
|
|
100
|
+
}
|
|
101
|
+
const value = v.prevout.value;
|
|
102
|
+
return {
|
|
103
|
+
txid: v.txid,
|
|
104
|
+
vout: v.vout,
|
|
105
|
+
scriptPubkeyHex: v.prevout.scriptpubkey,
|
|
106
|
+
address: v.prevout.scriptpubkey_address ?? null,
|
|
107
|
+
valueSats: BigInt(value),
|
|
108
|
+
valueBtcHr: new Decimal(value).div(1e8),
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
const outputs = meta.vout.map((o) => {
|
|
112
|
+
const script = Buffer.from(o.scriptpubkey, 'hex');
|
|
113
|
+
return {
|
|
114
|
+
valueSats: o.value,
|
|
115
|
+
scriptPubKeyHex: o.scriptpubkey,
|
|
116
|
+
scriptType: detectScriptType(script),
|
|
117
|
+
address: o.scriptpubkey_address ?? null,
|
|
118
|
+
};
|
|
119
|
+
});
|
|
120
|
+
const netChangesHr = {};
|
|
121
|
+
for (const i of inputs) {
|
|
122
|
+
if (i.address === null)
|
|
123
|
+
continue;
|
|
124
|
+
const prev = netChangesHr[i.address] ?? new Decimal(0);
|
|
125
|
+
netChangesHr[i.address] = prev.minus(i.valueBtcHr);
|
|
126
|
+
}
|
|
127
|
+
for (const o of outputs) {
|
|
128
|
+
if (o.address === null)
|
|
129
|
+
continue;
|
|
130
|
+
const prev = netChangesHr[o.address] ?? new Decimal(0);
|
|
131
|
+
netChangesHr[o.address] = prev.plus(new Decimal(o.valueSats).div(1e8));
|
|
132
|
+
}
|
|
133
|
+
for (const addr of Object.keys(netChangesHr)) {
|
|
134
|
+
if (netChangesHr[addr].isZero())
|
|
135
|
+
delete netChangesHr[addr];
|
|
136
|
+
}
|
|
137
|
+
const blockHeight = meta.status.confirmed && meta.status.block_height ? meta.status.block_height : null;
|
|
138
|
+
const blockTime = meta.status.confirmed && typeof meta.status.block_time === 'number'
|
|
139
|
+
? new Date(meta.status.block_time * 1000)
|
|
140
|
+
: null;
|
|
141
|
+
const hex = await this.getRawTransactionHex(txid);
|
|
142
|
+
const rawBuf = Buffer.from(hex, 'hex');
|
|
143
|
+
const size = rawBuf.byteLength;
|
|
144
|
+
let vsize = size;
|
|
145
|
+
try {
|
|
146
|
+
vsize = Transaction.fromBuffer(rawBuf).virtualSize();
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
vsize = size;
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
txid: meta.txid,
|
|
153
|
+
hex,
|
|
154
|
+
inputs,
|
|
155
|
+
outputs,
|
|
156
|
+
netChangesHr,
|
|
157
|
+
size,
|
|
158
|
+
vsize,
|
|
159
|
+
confirmations: blockHeight ? Math.max(0, tipHeight - blockHeight + 1) : 0,
|
|
160
|
+
confirmationDatetime: blockTime,
|
|
161
|
+
blockHeight,
|
|
162
|
+
fees: meta.fee !== undefined ? { absoluteSats: meta.fee } : null,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
81
165
|
async getFeeEstimate(targetBlocks) {
|
|
82
166
|
const { data } = await this.client.get(`/fee-estimates`);
|
|
83
167
|
const keys = Object.keys(data)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esplora.tool.js","sourceRoot":"","sources":["../../../../../utxo/btc/tools/esplora.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"esplora.tool.js","sourceRoot":"","sources":["../../../../../utxo/btc/tools/esplora.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAO1E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAyDrC,MAAM,OAAO,WAAW;IAQL,MAAM,CAAgB;IACtB,MAAM,CAAoB;IAE3C,YAAY,OAA2B;QACrC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAC3C,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;SACrC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACN,OAAO,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,KAAwB;QACtD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAgB,YAAY,OAAO,OAAO,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,KAAK;YAClB,eAAe;YACf,UAAU;YACV,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY;gBACxD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;YACL,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAsB,YAAY,OAAO,EAAE,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;QACrF,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,OAAO,IAAI,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAY,OAAO,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;SAChC,CAAC,CAAC;QACH,MAAM,GAAG,GAA0B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzF,MAAM,IAAI,GAA4B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO;gBACL,SAAS,EAAE,CAAC,CAAC,KAAK;gBAClB,eAAe,EAAE,CAAC,CAAC,YAAY;gBAC/B,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC;gBACpC,OAAO,EAAE,CAAC,CAAC,oBAAoB,IAAI,IAAI;aACxC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACxG,MAAM,SAAS,GACb,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ;YACjE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG;YACH,GAAG;YACH,IAAI;YACJ,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,WAAW;YACX,SAAS;YACT,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;SACjE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,IAAY;QACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAY,OAAO,IAAI,EAAE,CAAC,CAAC;QAEvE,MAAM,MAAM,GAA2B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACxD,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAClB,OAAO;oBACL,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,eAAe,EAAE,EAAE;oBACnB,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,EAAE;oBACb,UAAU,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC;oBAC1B,QAAQ,EAAE,IAAI;iBACf,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,kGAAkG,IAAI,EAAE,CACzG,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YAC9B,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY;gBACvC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,IAAI,IAAI;gBAC/C,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;gBACxB,UAAU,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;aACxC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAA4B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO;gBACL,SAAS,EAAE,CAAC,CAAC,KAAK;gBAClB,eAAe,EAAE,CAAC,CAAC,YAAY;gBAC/B,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC;gBACpC,OAAO,EAAE,CAAC,CAAC,oBAAoB,IAAI,IAAI;aACxC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAA4B,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI;gBAAE,SAAS;YACjC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;YACvD,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI;gBAAE,SAAS;YACjC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;YACvD,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;gBAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACxG,MAAM,SAAS,GACb,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ;YACjE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC;YACH,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG;YACH,MAAM;YACN,OAAO;YACP,YAAY;YACZ,IAAI;YACJ,KAAK;YACL,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,oBAAoB,EAAE,SAAS;YAC/B,WAAW;YACX,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;SACjE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAoB;QACvC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAyB,gBAAgB,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,SAA6B,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;gBACtB,SAAS,GAAG,CAAC,CAAC;gBACd,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,SAAS,KAAK,SAAS;YAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAS,KAAK,EAAE,MAAM,EAAE;YAC7D,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;YACzC,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,oBAAoB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/F,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { RawTransactionView } from '../utxo.ts';
|
|
1
|
+
import { RawTransactionView, UtxoTransaction } from '../utxo.ts';
|
|
2
2
|
export interface UtxoRawTransactionProvider {
|
|
3
3
|
readonly name: string;
|
|
4
4
|
getRawTransactionHex(txid: string): Promise<string>;
|
|
5
5
|
getRawTransactionHexBatch(txids: readonly string[]): Promise<string[]>;
|
|
6
6
|
getTransaction(txid: string): Promise<RawTransactionView>;
|
|
7
|
+
getTransactionWithInputs(txid: string): Promise<UtxoTransaction>;
|
|
7
8
|
}
|
|
8
9
|
//# sourceMappingURL=raw_transaction_provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw_transaction_provider.d.ts","sourceRoot":"","sources":["../../../../utxo/tools/raw_transaction_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"raw_transaction_provider.d.ts","sourceRoot":"","sources":["../../../../utxo/tools/raw_transaction_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,yBAAyB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1D,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAClE"}
|
package/dist/esm/utxo/utxo.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Decimal } from 'decimal.js';
|
|
1
2
|
import { UtxoScriptType } from './script.ts';
|
|
2
3
|
export interface UnspentTransactionOutput {
|
|
3
4
|
txid: string;
|
|
@@ -8,6 +9,32 @@ export interface UnspentTransactionOutput {
|
|
|
8
9
|
confirmations: number;
|
|
9
10
|
ownerAddress: string;
|
|
10
11
|
}
|
|
12
|
+
export interface UtxoTransactionInput {
|
|
13
|
+
txid: string;
|
|
14
|
+
vout: number;
|
|
15
|
+
scriptPubkeyHex: string;
|
|
16
|
+
address: string | null;
|
|
17
|
+
/** @deprecated Migrate to `valueBtcHr` before the next major release. */
|
|
18
|
+
valueSats: bigint;
|
|
19
|
+
valueBtcHr: Decimal;
|
|
20
|
+
coinbase?: true;
|
|
21
|
+
}
|
|
22
|
+
export interface UtxoTransaction {
|
|
23
|
+
txid: string;
|
|
24
|
+
hex: string;
|
|
25
|
+
inputs: readonly UtxoTransactionInput[];
|
|
26
|
+
outputs: readonly TransactionOutputView[];
|
|
27
|
+
netChangesHr: Readonly<Record<string, Decimal>>;
|
|
28
|
+
size: number;
|
|
29
|
+
vsize: number;
|
|
30
|
+
confirmations: number;
|
|
31
|
+
confirmationDatetime: Date | null;
|
|
32
|
+
blockHeight: number | null;
|
|
33
|
+
fees: {
|
|
34
|
+
absoluteSats: number;
|
|
35
|
+
} | null;
|
|
36
|
+
}
|
|
37
|
+
export type UtxoInputsUnresolvedReason = 'pending';
|
|
11
38
|
export interface TransactionInputRef {
|
|
12
39
|
txid: string;
|
|
13
40
|
vout: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../../utxo/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,mBAAmB,EAAE,CAAC;IAC3B,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
|
1
|
+
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../../utxo/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1C,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,IAAI,GAAG,IAAI,CAAC;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,MAAM,0BAA0B,GAAG,SAAS,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,mBAAmB,EAAE,CAAC;IAC3B,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo_chain.d.ts","sourceRoot":"","sources":["../../../utxo/utxo_chain.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utxo_chain.d.ts","sourceRoot":"","sources":["../../../utxo/utxo_chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -165,15 +165,9 @@ export class UtxoChain extends Chain {
|
|
|
165
165
|
return this.getUtxoStatusOnce(txHash);
|
|
166
166
|
}
|
|
167
167
|
async getUtxoStatusOnce(txHash) {
|
|
168
|
-
// Narrow the try to the provider call only. Constructor asserts and
|
|
169
|
-
// upsert failures must NOT be silently coerced into NotFound.
|
|
170
|
-
// Classify: (a) provider signalled "no such tx" (Esplora HTTP 404,
|
|
171
|
-
// Bitcoin Core RPC code -5) → NotFound; (b) any other throw →
|
|
172
|
-
// RpcError so consumers can retry rather than treating a 429/timeout
|
|
173
|
-
// as a definitive miss.
|
|
174
168
|
let tx;
|
|
175
169
|
try {
|
|
176
|
-
tx = await this.rawTxProvider.
|
|
170
|
+
tx = await this.rawTxProvider.getTransactionWithInputs(txHash);
|
|
177
171
|
}
|
|
178
172
|
catch (err) {
|
|
179
173
|
if (err instanceof ChainError)
|
|
@@ -188,20 +182,11 @@ export class UtxoChain extends Chain {
|
|
|
188
182
|
}
|
|
189
183
|
const rawMsg = err instanceof Error ? err.message : String(err);
|
|
190
184
|
const sanitizedMsg = sanitizeUtxoErrMessage(rawMsg);
|
|
191
|
-
// Build a scrubbed cause: sanitizeCause strips axios `.config`/
|
|
192
|
-
// `.request`/`.response` object trees (which carry Authorization
|
|
193
|
-
// headers + query-string keys) by rebuilding a plain Error with
|
|
194
|
-
// only sanitized message+stack. Consumers walking `.cause` in a
|
|
195
|
-
// structured logger no longer leak API keys.
|
|
196
185
|
const safeCause = err instanceof Error
|
|
197
186
|
? sanitizedCauseForUtxo(err, sanitizedMsg)
|
|
198
187
|
: undefined;
|
|
199
188
|
throw new ChainError(ChainErrorKinds.RpcError, `Failed to read UTXO tx ${txHash}: ${sanitizedMsg}`, { chainId: this.chainId, txHash }, safeCause);
|
|
200
189
|
}
|
|
201
|
-
// Bitcoin Core reports `confirmations: -1` for a conflicted/RBF-
|
|
202
|
-
// replaced tx (a reorged-out deposit). Do not run the shape asserts
|
|
203
|
-
// that would throw InvalidArgument on the way out — surface as
|
|
204
|
-
// NotFound so the status poll doesn't crash.
|
|
205
190
|
if (tx.confirmations < 0) {
|
|
206
191
|
return new UtxoTransactionStatus({
|
|
207
192
|
chainId: this.chainId,
|
|
@@ -214,38 +199,27 @@ export class UtxoChain extends Chain {
|
|
|
214
199
|
},
|
|
215
200
|
});
|
|
216
201
|
}
|
|
217
|
-
// Wrap the decode block so a non-integer valueSats/absoluteSats from a
|
|
218
|
-
// consumer's provider tool (BTC-float→sats overflow) or a
|
|
219
|
-
// Transaction.fromHex failure surfaces as a typed
|
|
220
|
-
// ChainError(TransactionDecodeFailed) rather than a raw RangeError.
|
|
221
|
-
// Mirrors evm_chain.ts:decodeBalanceChanges catch.
|
|
222
202
|
try {
|
|
223
|
-
|
|
224
|
-
// mempool tx still has visible outputs, and BTC/LTC/DOGE deposit
|
|
225
|
-
// detectors need them. balanceChanges stays null on Pending per the
|
|
226
|
-
// TransactionStatus base invariant.
|
|
227
|
-
const outputs = tx.vout.map((o) => new UtxoTransactionOutput({
|
|
203
|
+
const outputs = tx.outputs.map((o) => new UtxoTransactionOutput({
|
|
228
204
|
scriptPubkeyHex: o.scriptPubKeyHex,
|
|
229
205
|
address: o.address,
|
|
230
206
|
valueSats: BigInt(o.valueSats),
|
|
231
207
|
}));
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
let vsize = null;
|
|
236
|
-
try {
|
|
237
|
-
if (tx.hex && tx.hex.length > 0) {
|
|
208
|
+
let vsize = tx.vsize > 0 ? tx.vsize : null;
|
|
209
|
+
if (vsize === null && tx.hex && tx.hex.length > 0) {
|
|
210
|
+
try {
|
|
238
211
|
vsize = Transaction.fromHex(tx.hex).virtualSize();
|
|
239
212
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
213
|
+
catch {
|
|
214
|
+
vsize = null;
|
|
215
|
+
}
|
|
243
216
|
}
|
|
244
217
|
const fees = tx.fees !== null
|
|
245
218
|
? new UtxoTransactionFees({ absoluteSats: BigInt(tx.fees.absoluteSats), vsize })
|
|
246
219
|
: null;
|
|
247
220
|
const isPending = tx.confirmations === 0;
|
|
248
221
|
if (isPending) {
|
|
222
|
+
const pendingInputs = tx.inputs.length === 0 ? null : tx.inputs;
|
|
249
223
|
return new UtxoTransactionStatus({
|
|
250
224
|
chainId: this.chainId,
|
|
251
225
|
status: TransactionStatusTypes.Pending,
|
|
@@ -255,32 +229,27 @@ export class UtxoChain extends Chain {
|
|
|
255
229
|
outputs,
|
|
256
230
|
vsize,
|
|
257
231
|
fees,
|
|
232
|
+
inputs: pendingInputs,
|
|
233
|
+
inputsUnresolvedReason: pendingInputs === null ? 'pending' : null,
|
|
258
234
|
});
|
|
259
235
|
}
|
|
260
|
-
// Outputs-only per-address native deltas. Full input-side accounting
|
|
261
|
-
// to compute net native change (Python's `_native_balance_changes`
|
|
262
|
-
// parity) is deferred — the raw-tx provider currently returns only
|
|
263
|
-
// vin.txid+vout, no address/value/scriptPubKeyHex. Noted in
|
|
264
|
-
// SINAN_OPEN_QUESTIONS.md.
|
|
265
236
|
const balanceChanges = new Map();
|
|
266
|
-
const
|
|
267
|
-
|
|
268
|
-
if (!out.address)
|
|
237
|
+
for (const [address, delta] of Object.entries(tx.netChangesHr)) {
|
|
238
|
+
if (delta.isZero())
|
|
269
239
|
continue;
|
|
270
|
-
|
|
271
|
-
}
|
|
272
|
-
for (const [address, sats] of perAddressSats) {
|
|
273
|
-
AssetBalanceChange.upsert(balanceChanges, address, this._nativeToken, AssetBalanceChange.fromMr(sats, this._nativeToken.decimals));
|
|
240
|
+
AssetBalanceChange.upsert(balanceChanges, address, this._nativeToken, AssetBalanceChange.fromHr(delta, this._nativeToken.decimals));
|
|
274
241
|
}
|
|
275
242
|
return new UtxoTransactionStatus({
|
|
276
243
|
chainId: this.chainId,
|
|
277
244
|
status: TransactionStatusTypes.Success,
|
|
278
|
-
confirmationAt: tx.
|
|
245
|
+
confirmationAt: tx.confirmationDatetime,
|
|
279
246
|
balanceChanges,
|
|
280
247
|
confirmations: tx.confirmations,
|
|
281
248
|
outputs,
|
|
282
249
|
vsize,
|
|
283
250
|
fees,
|
|
251
|
+
inputs: tx.inputs,
|
|
252
|
+
inputsUnresolvedReason: null,
|
|
284
253
|
});
|
|
285
254
|
}
|
|
286
255
|
catch (err) {
|
|
@@ -551,7 +520,7 @@ function isProviderNotFoundError(err) {
|
|
|
551
520
|
if (typeof status === 'number' && status === 404)
|
|
552
521
|
return true;
|
|
553
522
|
const message = typeof anyErr.message === 'string' ? anyErr.message : '';
|
|
554
|
-
if (
|
|
523
|
+
if (/^bitcoin-core getrawtransaction:\s*-5\b/.test(message)) {
|
|
555
524
|
// Bitcoin Core RPC code -5 has TWO meanings:
|
|
556
525
|
// - "No such mempool or blockchain transaction" → genuinely unknown
|
|
557
526
|
// (node has -txindex enabled, or the tx is unknown even in mempool)
|