@getomnichain/omnichain 0.3.5 → 0.5.0
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 +79 -5
- package/dist/cjs/chain.base.js.map +1 -1
- package/dist/cjs/evm/evm_chain.js +90 -5
- package/dist/cjs/evm/evm_chain.js.map +1 -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/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/chain.base.d.ts +10 -0
- package/dist/esm/chain.base.d.ts.map +1 -1
- package/dist/esm/chain.base.js.map +1 -1
- package/dist/esm/evm/evm_chain.d.ts +52 -0
- package/dist/esm/evm/evm_chain.d.ts.map +1 -1
- package/dist/esm/evm/evm_chain.js +90 -5
- package/dist/esm/evm/evm_chain.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/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/package.json +3 -2
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.NOT_ON_RANGO = exports.RANGO_NAME_TO_CHAIN_ID = exports.CHAIN_ID_TO_RANGO_NAME = void 0;
|
|
37
|
+
exports.rangoNameForChainId = rangoNameForChainId;
|
|
38
|
+
exports.chainIdForRangoName = chainIdForRangoName;
|
|
39
|
+
const C = __importStar(require("./chain_ids.js"));
|
|
40
|
+
const MAX_RANGO_NAME_LENGTH = 64;
|
|
41
|
+
/**
|
|
42
|
+
* Bidirectional lookup between omnichain chain ids and Rango's canonical
|
|
43
|
+
* uppercase blockchain names (the `blockchains[].name` field of Rango's
|
|
44
|
+
* `/meta` response).
|
|
45
|
+
*
|
|
46
|
+
* TypeScript-only module — no `omnichain-py` counterpart. `chain_ids.ts`
|
|
47
|
+
* mirrors the Python catalogue, but the Rango-name mapping is a
|
|
48
|
+
* TS-consumer concern and does not exist on the Python side.
|
|
49
|
+
*
|
|
50
|
+
* Source of truth: `GET https://public-api.rango.exchange/basic/meta`.
|
|
51
|
+
* The snapshot backing this module lives at
|
|
52
|
+
* `test/fixtures/rango_meta_blockchains.json`; its `fetchedAt` field is
|
|
53
|
+
* the single source-of-date. Refresh via `npm run rango:refresh`.
|
|
54
|
+
*
|
|
55
|
+
* Downstream consumers that talk to Rango should import from here
|
|
56
|
+
* instead of maintaining a local copy. `test/rango_chain_names.spec.ts`
|
|
57
|
+
* fails the suite whenever `chain_ids.ts` gains a new id that is
|
|
58
|
+
* neither mapped here nor listed in `NOT_ON_RANGO`, so a new chain
|
|
59
|
+
* forces an explicit decision. That suite runs on every PR/push via
|
|
60
|
+
* `.github/workflows/test.yml` and on `npm publish` via
|
|
61
|
+
* `prepublishOnly`. When the `test` check is required on `main` via
|
|
62
|
+
* branch protection, consumers vendoring omnichain from `main` inherit
|
|
63
|
+
* that check as their guarantee; until then, the workflow signals but
|
|
64
|
+
* does not block.
|
|
65
|
+
*
|
|
66
|
+
* Aliases (alternate spellings Rango may use in other endpoints) are
|
|
67
|
+
* deliberately out of scope; if a consumer hits one, add it as a
|
|
68
|
+
* separate decision.
|
|
69
|
+
*/
|
|
70
|
+
exports.CHAIN_ID_TO_RANGO_NAME = new Map([
|
|
71
|
+
[C.CHAIN_ID_BITCOIN_MAINNET, 'BTC'],
|
|
72
|
+
[C.CHAIN_ID_LITECOIN_MAINNET, 'LTC'],
|
|
73
|
+
[C.CHAIN_ID_DOGECOIN_MAINNET, 'DOGE'],
|
|
74
|
+
[C.CHAIN_ID_DASH_MAINNET, 'DASH'],
|
|
75
|
+
[C.CHAIN_ID_ZCASH_MAINNET, 'ZCASH'],
|
|
76
|
+
[C.CHAIN_ID_BITCOIN_CASH_MAINNET, 'BCH'],
|
|
77
|
+
[C.CHAIN_ID_SOLANA_MAINNET, 'SOLANA'],
|
|
78
|
+
[C.CHAIN_ID_SUI_MAINNET, 'SUI'],
|
|
79
|
+
[C.CHAIN_ID_XRPL_MAINNET, 'XRPL'],
|
|
80
|
+
[C.CHAIN_ID_STELLAR_MAINNET, 'STELLAR'],
|
|
81
|
+
[C.CHAIN_ID_TON_MAINNET, 'TON'],
|
|
82
|
+
[C.CHAIN_ID_TRON_MAINNET, 'TRON'],
|
|
83
|
+
[C.CHAIN_ID_ETHEREUM, 'ETH'],
|
|
84
|
+
[C.CHAIN_ID_OPTIMISM, 'OPTIMISM'],
|
|
85
|
+
[C.CHAIN_ID_CRONOS, 'CRONOS'],
|
|
86
|
+
[C.CHAIN_ID_BNB_CHAIN, 'BSC'],
|
|
87
|
+
[C.CHAIN_ID_OKX_CHAIN, 'OKC'],
|
|
88
|
+
[C.CHAIN_ID_GNOSIS, 'GNOSIS'],
|
|
89
|
+
[C.CHAIN_ID_UNICHAIN, 'UNICHAIN'],
|
|
90
|
+
[C.CHAIN_ID_POLYGON, 'POLYGON'],
|
|
91
|
+
[C.CHAIN_ID_MONAD, 'MONAD'],
|
|
92
|
+
[C.CHAIN_ID_SONIC, 'SONIC'],
|
|
93
|
+
[C.CHAIN_ID_SHIMMER, 'SHIMMER'],
|
|
94
|
+
[C.CHAIN_ID_XLAYER, 'XLAYER'],
|
|
95
|
+
[C.CHAIN_ID_FANTOM, 'FANTOM'],
|
|
96
|
+
[C.CHAIN_ID_BOBA, 'BOBA'],
|
|
97
|
+
[C.CHAIN_ID_ZKSYNC, 'ZKSYNC'],
|
|
98
|
+
[C.CHAIN_ID_STABLE, 'STABLE'],
|
|
99
|
+
[C.CHAIN_ID_HYPER_EVM, 'HYPEREVM'],
|
|
100
|
+
[C.CHAIN_ID_METIS, 'METIS'],
|
|
101
|
+
[C.CHAIN_ID_POLYGON_ZKEVM, 'POLYGONZK'],
|
|
102
|
+
[C.CHAIN_ID_MOONBEAM, 'MOONBEAM'],
|
|
103
|
+
[C.CHAIN_ID_MOONRIVER, 'MOONRIVER'],
|
|
104
|
+
[C.CHAIN_ID_SONEIUM, 'SONEIUM'],
|
|
105
|
+
[C.CHAIN_ID_CITREA, 'CITREA'],
|
|
106
|
+
[C.CHAIN_ID_MEGA_ETH, 'MEGAETH'],
|
|
107
|
+
[C.CHAIN_ID_ZETACHAIN, 'ZETA_CHAIN'],
|
|
108
|
+
[C.CHAIN_ID_BASE, 'BASE'],
|
|
109
|
+
[C.CHAIN_ID_IOTA_EVM, 'IOTA'],
|
|
110
|
+
[C.CHAIN_ID_PLASMA, 'PLASMA'],
|
|
111
|
+
[C.CHAIN_ID_MODE, 'MODE'],
|
|
112
|
+
[C.CHAIN_ID_ARBITRUM, 'ARBITRUM'],
|
|
113
|
+
[C.CHAIN_ID_CELO, 'CELO'],
|
|
114
|
+
[C.CHAIN_ID_AVALANCHE_C_CHAIN, 'AVAX_CCHAIN'],
|
|
115
|
+
[C.CHAIN_ID_LINEA, 'LINEA'],
|
|
116
|
+
[C.CHAIN_ID_BERA_CHAIN, 'BERACHAIN'],
|
|
117
|
+
[C.CHAIN_ID_BLAST, 'BLAST'],
|
|
118
|
+
[C.CHAIN_ID_TAIKO, 'TAIKO'],
|
|
119
|
+
[C.CHAIN_ID_SCROLL, 'SCROLL'],
|
|
120
|
+
[C.CHAIN_ID_KATANA, 'KATANA'],
|
|
121
|
+
[C.CHAIN_ID_ZORA, 'ZORA'],
|
|
122
|
+
[C.CHAIN_ID_AURORA, 'AURORA'],
|
|
123
|
+
]);
|
|
124
|
+
/**
|
|
125
|
+
* Inverse of `CHAIN_ID_TO_RANGO_NAME`, keyed by uppercase name.
|
|
126
|
+
* Prefer `chainIdForRangoName` for case- and whitespace-tolerant lookup.
|
|
127
|
+
*/
|
|
128
|
+
exports.RANGO_NAME_TO_CHAIN_ID = new Map(Array.from(exports.CHAIN_ID_TO_RANGO_NAME, ([id, name]) => [name, id]));
|
|
129
|
+
/**
|
|
130
|
+
* Explicit decisions for chain ids omnichain declares but Rango's `/meta`
|
|
131
|
+
* does not carry, verified against the same snapshot as
|
|
132
|
+
* `CHAIN_ID_TO_RANGO_NAME`.
|
|
133
|
+
*
|
|
134
|
+
* Every id in `chain_ids.ts` must appear in either `CHAIN_ID_TO_RANGO_NAME`
|
|
135
|
+
* or here; the coverage test fails the PR check and `npm publish` (via
|
|
136
|
+
* `prepublishOnly`) otherwise. Adding an id to `chain_ids.ts` without a
|
|
137
|
+
* decision is a bug.
|
|
138
|
+
*
|
|
139
|
+
* Grouped by reason:
|
|
140
|
+
* - Testnets/devnets Rango's `/meta` intentionally omits.
|
|
141
|
+
* - Mainnet EVM chains not on Rango's `/meta` as of the snapshot; add to
|
|
142
|
+
* `CHAIN_ID_TO_RANGO_NAME` once Rango starts publishing them.
|
|
143
|
+
*/
|
|
144
|
+
exports.NOT_ON_RANGO = new Set([
|
|
145
|
+
// testnets/devnets — Rango's /meta never carries these.
|
|
146
|
+
C.CHAIN_ID_BITCOIN_TESTNET,
|
|
147
|
+
C.CHAIN_ID_BITCOIN_SIGNET,
|
|
148
|
+
C.CHAIN_ID_SOLANA_TESTNET,
|
|
149
|
+
C.CHAIN_ID_SOLANA_DEVNET,
|
|
150
|
+
C.CHAIN_ID_SUI_TESTNET,
|
|
151
|
+
C.CHAIN_ID_SUI_DEVNET,
|
|
152
|
+
C.CHAIN_ID_XRPL_TESTNET,
|
|
153
|
+
C.CHAIN_ID_STELLAR_TESTNET,
|
|
154
|
+
C.CHAIN_ID_TON_TESTNET,
|
|
155
|
+
C.CHAIN_ID_TRON_SHASTA,
|
|
156
|
+
C.CHAIN_ID_GOERLI,
|
|
157
|
+
C.CHAIN_ID_SEPOLIA,
|
|
158
|
+
C.CHAIN_ID_CELO_SEPOLIA,
|
|
159
|
+
// Mainnet, absent from /meta as of the fixture snapshot — move to the map when Rango publishes them.
|
|
160
|
+
C.CHAIN_ID_OPBNB,
|
|
161
|
+
C.CHAIN_ID_WORLD_CHAIN,
|
|
162
|
+
C.CHAIN_ID_WANCHAIN,
|
|
163
|
+
C.CHAIN_ID_SEI_EVM,
|
|
164
|
+
C.CHAIN_ID_ABSTRACT,
|
|
165
|
+
C.CHAIN_ID_TEMPO,
|
|
166
|
+
C.CHAIN_ID_MANTLE,
|
|
167
|
+
C.CHAIN_ID_INK,
|
|
168
|
+
C.CHAIN_ID_BOB,
|
|
169
|
+
C.CHAIN_ID_ZKLINK_NOVA,
|
|
170
|
+
]);
|
|
171
|
+
/**
|
|
172
|
+
* Rango's canonical uppercase blockchain name for a given omnichain chain
|
|
173
|
+
* id, or `undefined` when the chain is not on Rango, when the input is not
|
|
174
|
+
* a real number (`NaN`), or when it is `null` / `undefined`.
|
|
175
|
+
*
|
|
176
|
+
* `bigint` input is rejected at runtime and returns `undefined`. Callers
|
|
177
|
+
* bridging from `ethers` v6's `Network.chainId: bigint` should narrow with
|
|
178
|
+
* `Number(x)` and check `Number.isSafeInteger` first.
|
|
179
|
+
*/
|
|
180
|
+
function rangoNameForChainId(chainId) {
|
|
181
|
+
if (typeof chainId !== 'number' || Number.isNaN(chainId))
|
|
182
|
+
return undefined;
|
|
183
|
+
return exports.CHAIN_ID_TO_RANGO_NAME.get(chainId);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Omnichain chain id for a Rango blockchain name. Input is normalised
|
|
187
|
+
* (`trim()` + `toUpperCase()`) so `' bsc '`, `'BSC'`, `'Bsc'` all resolve
|
|
188
|
+
* to `56`. Returns `undefined` for an unknown name, for any non-string
|
|
189
|
+
* input, for raw input longer than 64 characters (rejected before any
|
|
190
|
+
* per-character work — the bound is several times the longest name in
|
|
191
|
+
* the snapshot, so it is a DoS guard, not a contract), or for input
|
|
192
|
+
* carrying non-ASCII characters (Unicode-aware `toUpperCase` folds
|
|
193
|
+
* `'ſ' → 'S'`
|
|
194
|
+
* and `'ı' → 'I'`, which would resolve homoglyph inputs to real chain
|
|
195
|
+
* ids — the accessor fails closed instead). Callers looping over
|
|
196
|
+
* untrusted Rango feed rows can skip bad entries without a `TypeError`.
|
|
197
|
+
*/
|
|
198
|
+
function chainIdForRangoName(name) {
|
|
199
|
+
if (typeof name !== 'string')
|
|
200
|
+
return undefined;
|
|
201
|
+
if (name.length > MAX_RANGO_NAME_LENGTH)
|
|
202
|
+
return undefined;
|
|
203
|
+
for (let i = 0; i < name.length; i++) {
|
|
204
|
+
if (name.charCodeAt(i) > 0x7f)
|
|
205
|
+
return undefined;
|
|
206
|
+
}
|
|
207
|
+
return exports.RANGO_NAME_TO_CHAIN_ID.get(name.trim().toUpperCase());
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=rango_chain_names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rango_chain_names.js","sourceRoot":"","sources":["../../rango_chain_names.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuJA,kDAGC;AAeD,kDAOC;AAhLD,kDAAoC;AAEpC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACU,QAAA,sBAAsB,GAAgC,IAAI,GAAG,CAAiB;IACzF,CAAC,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC;IACnC,CAAC,CAAC,CAAC,yBAAyB,EAAE,KAAK,CAAC;IACpC,CAAC,CAAC,CAAC,yBAAyB,EAAE,MAAM,CAAC;IACrC,CAAC,CAAC,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACjC,CAAC,CAAC,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACnC,CAAC,CAAC,CAAC,6BAA6B,EAAE,KAAK,CAAC;IAExC,CAAC,CAAC,CAAC,uBAAuB,EAAE,QAAQ,CAAC;IACrC,CAAC,CAAC,CAAC,oBAAoB,EAAE,KAAK,CAAC;IAC/B,CAAC,CAAC,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACjC,CAAC,CAAC,CAAC,wBAAwB,EAAE,SAAS,CAAC;IACvC,CAAC,CAAC,CAAC,oBAAoB,EAAE,KAAK,CAAC;IAC/B,CAAC,CAAC,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEjC,CAAC,CAAC,CAAC,iBAAiB,EAAE,KAAK,CAAC;IAC5B,CAAC,CAAC,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACjC,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC,kBAAkB,EAAE,KAAK,CAAC;IAC7B,CAAC,CAAC,CAAC,kBAAkB,EAAE,KAAK,CAAC;IAC7B,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACjC,CAAC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;IAC/B,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3B,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3B,CAAC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;IAC/B,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC;IAClC,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3B,CAAC,CAAC,CAAC,sBAAsB,EAAE,WAAW,CAAC;IACvC,CAAC,CAAC,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACjC,CAAC,CAAC,CAAC,kBAAkB,EAAE,WAAW,CAAC;IACnC,CAAC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;IAC/B,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC,iBAAiB,EAAE,SAAS,CAAC;IAChC,CAAC,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC;IACpC,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAC7B,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACjC,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC,0BAA0B,EAAE,aAAa,CAAC;IAC7C,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3B,CAAC,CAAC,CAAC,mBAAmB,EAAE,WAAW,CAAC;IACpC,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3B,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3B,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;CAC9B,CAAC,CAAC;AAEH;;;GAGG;AACU,QAAA,sBAAsB,GAAgC,IAAI,GAAG,CACxE,KAAK,CAAC,IAAI,CAAC,8BAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAC/D,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACU,QAAA,YAAY,GAAwB,IAAI,GAAG,CAAS;IAC/D,wDAAwD;IACxD,CAAC,CAAC,wBAAwB;IAC1B,CAAC,CAAC,uBAAuB;IACzB,CAAC,CAAC,uBAAuB;IACzB,CAAC,CAAC,sBAAsB;IACxB,CAAC,CAAC,oBAAoB;IACtB,CAAC,CAAC,mBAAmB;IACrB,CAAC,CAAC,qBAAqB;IACvB,CAAC,CAAC,wBAAwB;IAC1B,CAAC,CAAC,oBAAoB;IACtB,CAAC,CAAC,oBAAoB;IACtB,CAAC,CAAC,eAAe;IACjB,CAAC,CAAC,gBAAgB;IAClB,CAAC,CAAC,qBAAqB;IAEvB,qGAAqG;IACrG,CAAC,CAAC,cAAc;IAChB,CAAC,CAAC,oBAAoB;IACtB,CAAC,CAAC,iBAAiB;IACnB,CAAC,CAAC,gBAAgB;IAClB,CAAC,CAAC,iBAAiB;IACnB,CAAC,CAAC,cAAc;IAChB,CAAC,CAAC,eAAe;IACjB,CAAC,CAAC,YAAY;IACd,CAAC,CAAC,YAAY;IACd,CAAC,CAAC,oBAAoB;CACvB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,OAAkC;IACpE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3E,OAAO,8BAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,mBAAmB,CAAC,IAA+B;IACjE,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,qBAAqB;QAAE,OAAO,SAAS,CAAC;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;YAAE,OAAO,SAAS,CAAC;IAClD,CAAC;IACD,OAAO,8BAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -5,7 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BitcoinCoreTool = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
|
|
8
9
|
const script_ts_1 = require("../../script.js");
|
|
10
|
+
const decimal_js_1 = require("decimal.js");
|
|
9
11
|
const SATS_PER_BTC = 100_000_000;
|
|
10
12
|
class BitcoinCoreTool {
|
|
11
13
|
client;
|
|
@@ -15,6 +17,7 @@ class BitcoinCoreTool {
|
|
|
15
17
|
importTimestamp;
|
|
16
18
|
watchOnlyLabel;
|
|
17
19
|
watchedAddresses = new Set();
|
|
20
|
+
bitcoinCoreVerbose;
|
|
18
21
|
constructor(options) {
|
|
19
22
|
if (!options.baseUrl || options.baseUrl.trim().length === 0) {
|
|
20
23
|
throw new Error('BitcoinCoreTool: baseUrl is required');
|
|
@@ -24,6 +27,7 @@ class BitcoinCoreTool {
|
|
|
24
27
|
this.feeEstimateMode = options.feeEstimateMode ?? 'CONSERVATIVE';
|
|
25
28
|
this.importTimestamp = options.importTimestamp ?? 'now';
|
|
26
29
|
this.watchOnlyLabel = options.watchOnlyLabel ?? 'utxo-watch';
|
|
30
|
+
this.bitcoinCoreVerbose = options.bitcoinCoreVerbose ?? 1;
|
|
27
31
|
const auth = Buffer.from(`${options.user}:${options.password}`).toString('base64');
|
|
28
32
|
this.client = axios_1.default.create({
|
|
29
33
|
baseURL: options.baseUrl.replace(/\/$/, ''),
|
|
@@ -127,6 +131,131 @@ class BitcoinCoreTool {
|
|
|
127
131
|
fees: verbose.fee !== undefined ? { absoluteSats: Math.round(verbose.fee * SATS_PER_BTC) } : null,
|
|
128
132
|
};
|
|
129
133
|
}
|
|
134
|
+
async getTransactionWithInputs(txid) {
|
|
135
|
+
const main = await this.rpc('getrawtransaction', [txid, this.bitcoinCoreVerbose]);
|
|
136
|
+
const hydratedPrevouts = new Map();
|
|
137
|
+
const needsWalk = [];
|
|
138
|
+
for (const v of main.vin) {
|
|
139
|
+
if (v.coinbase !== undefined)
|
|
140
|
+
continue;
|
|
141
|
+
if (v.txid === undefined || v.vout === undefined)
|
|
142
|
+
continue;
|
|
143
|
+
if (v.prevout) {
|
|
144
|
+
hydratedPrevouts.set(`${v.txid}:${v.vout}`, {
|
|
145
|
+
valueSats: Math.round(v.prevout.value * SATS_PER_BTC),
|
|
146
|
+
scriptPubkeyHex: v.prevout.scriptPubKey.hex,
|
|
147
|
+
address: v.prevout.scriptPubKey.address ?? null,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
needsWalk.push({ txid: v.txid, vout: v.vout });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (needsWalk.length > 0) {
|
|
155
|
+
const parentTxids = Array.from(new Set(needsWalk.map((v) => v.txid)));
|
|
156
|
+
let parents;
|
|
157
|
+
try {
|
|
158
|
+
parents = await this.batchRpc(parentTxids.map((pTxid) => ({ method: 'getrawtransaction', params: [pTxid, 1] })));
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
const rawMsg = err instanceof Error ? err.message : String(err);
|
|
162
|
+
const scrubbed = rawMsg.replace(/getrawtransaction:/g, 'parent-prevout-fetch:');
|
|
163
|
+
throw new Error(`BitcoinCoreTool.getTransactionWithInputs: prevout hydration failed for one of parents [${parentTxids.join(', ')}] on ${txid}: ${scrubbed}`);
|
|
164
|
+
}
|
|
165
|
+
const parentByTxid = new Map();
|
|
166
|
+
for (let i = 0; i < parentTxids.length; i++)
|
|
167
|
+
parentByTxid.set(parentTxids[i], parents[i]);
|
|
168
|
+
for (const v of needsWalk) {
|
|
169
|
+
const parent = parentByTxid.get(v.txid);
|
|
170
|
+
if (!parent) {
|
|
171
|
+
throw new Error(`BitcoinCoreTool.getTransactionWithInputs: parent tx ${v.txid} not returned`);
|
|
172
|
+
}
|
|
173
|
+
const out = parent.vout[v.vout];
|
|
174
|
+
if (!out) {
|
|
175
|
+
throw new Error(`BitcoinCoreTool.getTransactionWithInputs: parent tx ${v.txid} has no vout[${v.vout}]`);
|
|
176
|
+
}
|
|
177
|
+
hydratedPrevouts.set(`${v.txid}:${v.vout}`, {
|
|
178
|
+
valueSats: Math.round(out.value * SATS_PER_BTC),
|
|
179
|
+
scriptPubkeyHex: out.scriptPubKey.hex,
|
|
180
|
+
address: out.scriptPubKey.address ?? null,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
const inputs = main.vin.map((v) => {
|
|
185
|
+
if (v.coinbase !== undefined) {
|
|
186
|
+
return {
|
|
187
|
+
txid: '0'.repeat(64),
|
|
188
|
+
vout: 0xffffffff,
|
|
189
|
+
scriptPubkeyHex: '',
|
|
190
|
+
address: null,
|
|
191
|
+
valueSats: 0n,
|
|
192
|
+
valueBtcHr: new decimal_js_1.Decimal(0),
|
|
193
|
+
coinbase: true,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
const hydrated = hydratedPrevouts.get(`${v.txid}:${v.vout}`);
|
|
197
|
+
if (!hydrated) {
|
|
198
|
+
throw new Error(`BitcoinCoreTool.getTransactionWithInputs: missing hydrated prevout for ${v.txid}:${v.vout}`);
|
|
199
|
+
}
|
|
200
|
+
return {
|
|
201
|
+
txid: v.txid,
|
|
202
|
+
vout: v.vout,
|
|
203
|
+
scriptPubkeyHex: hydrated.scriptPubkeyHex,
|
|
204
|
+
address: hydrated.address,
|
|
205
|
+
valueSats: BigInt(hydrated.valueSats),
|
|
206
|
+
valueBtcHr: new decimal_js_1.Decimal(hydrated.valueSats).div(SATS_PER_BTC),
|
|
207
|
+
};
|
|
208
|
+
});
|
|
209
|
+
const outputs = main.vout.map((o) => {
|
|
210
|
+
const hex = o.scriptPubKey.hex;
|
|
211
|
+
const buf = Buffer.from(hex, 'hex');
|
|
212
|
+
return {
|
|
213
|
+
valueSats: Math.round(o.value * SATS_PER_BTC),
|
|
214
|
+
scriptPubKeyHex: hex,
|
|
215
|
+
scriptType: (0, script_ts_1.detectScriptType)(buf),
|
|
216
|
+
address: o.scriptPubKey.address ?? null,
|
|
217
|
+
};
|
|
218
|
+
});
|
|
219
|
+
const netChangesHr = {};
|
|
220
|
+
for (const i of inputs) {
|
|
221
|
+
if (i.address === null)
|
|
222
|
+
continue;
|
|
223
|
+
const prev = netChangesHr[i.address] ?? new decimal_js_1.Decimal(0);
|
|
224
|
+
netChangesHr[i.address] = prev.minus(i.valueBtcHr);
|
|
225
|
+
}
|
|
226
|
+
for (const o of outputs) {
|
|
227
|
+
if (o.address === null)
|
|
228
|
+
continue;
|
|
229
|
+
const prev = netChangesHr[o.address] ?? new decimal_js_1.Decimal(0);
|
|
230
|
+
netChangesHr[o.address] = prev.plus(new decimal_js_1.Decimal(o.valueSats).div(SATS_PER_BTC));
|
|
231
|
+
}
|
|
232
|
+
for (const addr of Object.keys(netChangesHr)) {
|
|
233
|
+
if (netChangesHr[addr].isZero())
|
|
234
|
+
delete netChangesHr[addr];
|
|
235
|
+
}
|
|
236
|
+
const rawBuf = Buffer.from(main.hex, 'hex');
|
|
237
|
+
const size = rawBuf.byteLength;
|
|
238
|
+
let vsize = size;
|
|
239
|
+
try {
|
|
240
|
+
vsize = bitcoinjs_lib_1.Transaction.fromBuffer(rawBuf).virtualSize();
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
vsize = size;
|
|
244
|
+
}
|
|
245
|
+
return {
|
|
246
|
+
txid: main.txid,
|
|
247
|
+
hex: main.hex,
|
|
248
|
+
inputs,
|
|
249
|
+
outputs,
|
|
250
|
+
netChangesHr,
|
|
251
|
+
size,
|
|
252
|
+
vsize,
|
|
253
|
+
confirmations: main.confirmations ?? 0,
|
|
254
|
+
confirmationDatetime: typeof main.blocktime === 'number' ? new Date(main.blocktime * 1000) : null,
|
|
255
|
+
blockHeight: main.blockheight ?? null,
|
|
256
|
+
fees: main.fee !== undefined ? { absoluteSats: Math.round(main.fee * SATS_PER_BTC) } : null,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
130
259
|
async getFeeEstimate(targetBlocks) {
|
|
131
260
|
const result = await this.rpc('estimatesmartfee', [
|
|
132
261
|
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":";;;;;;AAAA,kDAA6C;AAC7C,iDAA4C;AAE5C,+CAA0E;AAO1E,2CAAqC;AA4FrC,MAAM,YAAY,GAAG,WAAW,CAAC;AAEjC,MAAa,eAAe;IAQT,MAAM,CAAgB;IACtB,MAAM,CAAoB;IAC1B,MAAM,CAAU;IAChB,eAAe,CAAgC;IAC/C,eAAe,CAAiB;IAChC,cAAc,CAAS;IACvB,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,kBAAkB,CAAQ;IAE3C,YAAY,OAA+B;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,cAAc,CAAC;QACjE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,YAAY,CAAC;QAC7D,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAC3C,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;YACpC,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,IAAI,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;SAC1E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACN,OAAO,gBAAgB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAwB,aAAa,EAAE;YACjE,CAAC;YACD,SAAS;YACT,CAAC,OAAO,CAAC;SACV,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,iCAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAA,4BAAgB,EAAC,YAAY,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC;YAC9C,eAAe;YACf,UAAU;YACV,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAe;QACxC,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAkB,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,OAAO,GAAG,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAqB,mBAAmB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAgC,mBAAmB,EAAE;YAChF;gBACE;oBACE,IAAI,EAAE,KAAK,CAAC,UAAU;oBACtB,SAAS,EAAE,IAAI,CAAC,eAAe;oBAC/B,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,IAAI,CAAC,cAAc;iBAC3B;aACF;SACF,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,oDAAoD,OAAO,KAAK,GAAG,EAAE,OAAO,IAAI,eAAe,EAAE,CAClG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC;gBAAE,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC;;gBAC7C,WAAW,IAAI,CAAC,CAAC,SAAS,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,OAAO,IAAI,CAAC,GAAG,CAAS,mBAAmB,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,KAAwB;QACtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAS,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAS,mBAAmB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1E,MAAM,GAAG,GAA0B,OAAO,CAAC,GAAG;aAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;aAC3D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAK,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,GAA4B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACpC,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC;gBAC7C,eAAe,EAAE,GAAG;gBACpB,UAAU,EAAE,IAAA,4BAAgB,EAAC,GAAG,CAAC;gBACjC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI;aACxC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG;YACH,IAAI;YACJ,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC;YACzC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YACxC,SAAS,EAAE,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAC5F,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;SAClG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,IAAY;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAS,mBAAmB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAE1F,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkF,CAAC;QACnH,MAAM,SAAS,GAAqC,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;gBAAE,SAAS;YACvC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,SAAS;YAC3D,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;oBACrD,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG;oBAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI;iBAChD,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,OAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC3B,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAClF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;gBAChF,MAAM,IAAI,KAAK,CACb,0FAA0F,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,QAAQ,EAAE,CAC5I,CAAC;YACJ,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC;gBAChG,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC1G,CAAC;gBACD,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC;oBAC/C,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG;oBACrC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI;iBAC1C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAA2B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACxD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO;oBACL,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpB,IAAI,EAAE,UAAU;oBAChB,eAAe,EAAE,EAAE;oBACnB,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,EAAE;oBACb,UAAU,EAAE,IAAI,oBAAO,CAAC,CAAC,CAAC;oBAC1B,QAAQ,EAAE,IAAI;iBACf,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAK;gBACb,IAAI,EAAE,CAAC,CAAC,IAAK;gBACb,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACrC,UAAU,EAAE,IAAI,oBAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;aAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAA4B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACpC,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC;gBAC7C,eAAe,EAAE,GAAG;gBACpB,UAAU,EAAE,IAAA,4BAAgB,EAAC,GAAG,CAAC;gBACjC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,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,oBAAO,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,oBAAO,CAAC,CAAC,CAAC,CAAC;YACvD,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAClF,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,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC;YACH,KAAK,GAAG,2BAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM;YACN,OAAO;YACP,YAAY;YACZ,IAAI;YACJ,KAAK;YACL,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;YACtC,oBAAoB,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACjG,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;YACrC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;SAC5F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAoB;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAuB,kBAAkB,EAAE;YACtE,YAAY;YACZ,IAAI,CAAC,eAAe;SACrB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,0DAA0D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,GAAG,CACtG,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;QAClE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAS,oBAAoB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,GAAG,CAAS,eAAe,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,GAAG,CAAI,MAAc,EAAE,MAAiB;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,IAAI,EACJ,IAAI,CACL,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,KAAuD;QAEvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CACzB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAC9F,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAErC,IAAI,EAAE,IAAI,CAAC,CAAC;QACd,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,+CAA+C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACb,gBAAgB,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CACxF,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAtUD,0CAsUC"}
|
|
@@ -5,7 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.EsploraTool = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
|
|
8
9
|
const script_ts_1 = require("../../script.js");
|
|
10
|
+
const decimal_js_1 = require("decimal.js");
|
|
9
11
|
class EsploraTool {
|
|
10
12
|
client;
|
|
11
13
|
params;
|
|
@@ -84,6 +86,88 @@ class EsploraTool {
|
|
|
84
86
|
fees: meta.fee !== undefined ? { absoluteSats: meta.fee } : null,
|
|
85
87
|
};
|
|
86
88
|
}
|
|
89
|
+
async getTransactionWithInputs(txid) {
|
|
90
|
+
const tipHeight = await this.getChainTipHeight();
|
|
91
|
+
const { data: meta } = await this.client.get(`/tx/${txid}`);
|
|
92
|
+
const inputs = meta.vin.map((v) => {
|
|
93
|
+
if (v.is_coinbase) {
|
|
94
|
+
return {
|
|
95
|
+
txid: v.txid,
|
|
96
|
+
vout: v.vout,
|
|
97
|
+
scriptPubkeyHex: '',
|
|
98
|
+
address: null,
|
|
99
|
+
valueSats: 0n,
|
|
100
|
+
valueBtcHr: new decimal_js_1.Decimal(0),
|
|
101
|
+
coinbase: true,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (!v.prevout) {
|
|
105
|
+
throw new Error(`EsploraTool.getTransactionWithInputs: non-coinbase vin missing prevout in Esplora response for ${txid}`);
|
|
106
|
+
}
|
|
107
|
+
const value = v.prevout.value;
|
|
108
|
+
return {
|
|
109
|
+
txid: v.txid,
|
|
110
|
+
vout: v.vout,
|
|
111
|
+
scriptPubkeyHex: v.prevout.scriptpubkey,
|
|
112
|
+
address: v.prevout.scriptpubkey_address ?? null,
|
|
113
|
+
valueSats: BigInt(value),
|
|
114
|
+
valueBtcHr: new decimal_js_1.Decimal(value).div(1e8),
|
|
115
|
+
};
|
|
116
|
+
});
|
|
117
|
+
const outputs = meta.vout.map((o) => {
|
|
118
|
+
const script = Buffer.from(o.scriptpubkey, 'hex');
|
|
119
|
+
return {
|
|
120
|
+
valueSats: o.value,
|
|
121
|
+
scriptPubKeyHex: o.scriptpubkey,
|
|
122
|
+
scriptType: (0, script_ts_1.detectScriptType)(script),
|
|
123
|
+
address: o.scriptpubkey_address ?? null,
|
|
124
|
+
};
|
|
125
|
+
});
|
|
126
|
+
const netChangesHr = {};
|
|
127
|
+
for (const i of inputs) {
|
|
128
|
+
if (i.address === null)
|
|
129
|
+
continue;
|
|
130
|
+
const prev = netChangesHr[i.address] ?? new decimal_js_1.Decimal(0);
|
|
131
|
+
netChangesHr[i.address] = prev.minus(i.valueBtcHr);
|
|
132
|
+
}
|
|
133
|
+
for (const o of outputs) {
|
|
134
|
+
if (o.address === null)
|
|
135
|
+
continue;
|
|
136
|
+
const prev = netChangesHr[o.address] ?? new decimal_js_1.Decimal(0);
|
|
137
|
+
netChangesHr[o.address] = prev.plus(new decimal_js_1.Decimal(o.valueSats).div(1e8));
|
|
138
|
+
}
|
|
139
|
+
for (const addr of Object.keys(netChangesHr)) {
|
|
140
|
+
if (netChangesHr[addr].isZero())
|
|
141
|
+
delete netChangesHr[addr];
|
|
142
|
+
}
|
|
143
|
+
const blockHeight = meta.status.confirmed && meta.status.block_height ? meta.status.block_height : null;
|
|
144
|
+
const blockTime = meta.status.confirmed && typeof meta.status.block_time === 'number'
|
|
145
|
+
? new Date(meta.status.block_time * 1000)
|
|
146
|
+
: null;
|
|
147
|
+
const hex = await this.getRawTransactionHex(txid);
|
|
148
|
+
const rawBuf = Buffer.from(hex, 'hex');
|
|
149
|
+
const size = rawBuf.byteLength;
|
|
150
|
+
let vsize = size;
|
|
151
|
+
try {
|
|
152
|
+
vsize = bitcoinjs_lib_1.Transaction.fromBuffer(rawBuf).virtualSize();
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
vsize = size;
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
txid: meta.txid,
|
|
159
|
+
hex,
|
|
160
|
+
inputs,
|
|
161
|
+
outputs,
|
|
162
|
+
netChangesHr,
|
|
163
|
+
size,
|
|
164
|
+
vsize,
|
|
165
|
+
confirmations: blockHeight ? Math.max(0, tipHeight - blockHeight + 1) : 0,
|
|
166
|
+
confirmationDatetime: blockTime,
|
|
167
|
+
blockHeight,
|
|
168
|
+
fees: meta.fee !== undefined ? { absoluteSats: meta.fee } : null,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
87
171
|
async getFeeEstimate(targetBlocks) {
|
|
88
172
|
const { data } = await this.client.get(`/fee-estimates`);
|
|
89
173
|
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,kDAA6C;
|
|
1
|
+
{"version":3,"file":"esplora.tool.js","sourceRoot":"","sources":["../../../../../utxo/btc/tools/esplora.tool.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA6C;AAC7C,iDAA4C;AAE5C,+CAA0E;AAO1E,2CAAqC;AAyDrC,MAAa,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,eAAK,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,IAAA,iCAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAA,4BAAgB,EAAC,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,IAAA,4BAAgB,EAAC,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,oBAAO,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,oBAAO,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,IAAA,4BAAgB,EAAC,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,oBAAO,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,oBAAO,CAAC,CAAC,CAAC,CAAC;YACvD,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAO,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,2BAAW,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;AApND,kCAoNC"}
|