@kaleidorg/wallet-engine 1.0.0-beta.4 → 1.0.0-beta.41
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/LICENSE +21 -0
- package/README.md +29 -10
- package/dist/adapters/ArkadeAdapter.d.ts +78 -14
- package/dist/adapters/ArkadeAdapter.d.ts.map +1 -1
- package/dist/adapters/ArkadeAdapter.js +653 -161
- package/dist/adapters/ArkadeAdapter.js.map +1 -1
- package/dist/adapters/IProtocolAdapter.d.ts +195 -18
- package/dist/adapters/IProtocolAdapter.d.ts.map +1 -1
- package/dist/adapters/IProtocolAdapter.js +6 -2
- package/dist/adapters/IProtocolAdapter.js.map +1 -1
- package/dist/adapters/RgbAdapter.d.ts +70 -27
- package/dist/adapters/RgbAdapter.d.ts.map +1 -1
- package/dist/adapters/RgbAdapter.js +464 -370
- package/dist/adapters/RgbAdapter.js.map +1 -1
- package/dist/adapters/SparkAdapter.d.ts +93 -15
- package/dist/adapters/SparkAdapter.d.ts.map +1 -1
- package/dist/adapters/SparkAdapter.js +833 -168
- package/dist/adapters/SparkAdapter.js.map +1 -1
- package/dist/adapters/arkade.d.ts +15 -0
- package/dist/adapters/arkade.d.ts.map +1 -0
- package/dist/adapters/arkade.js +15 -0
- package/dist/adapters/arkade.js.map +1 -0
- package/dist/adapters/flashnet.d.ts +15 -0
- package/dist/adapters/flashnet.d.ts.map +1 -0
- package/dist/adapters/flashnet.js +17 -0
- package/dist/adapters/flashnet.js.map +1 -0
- package/dist/adapters/native.d.ts +17 -0
- package/dist/adapters/native.d.ts.map +1 -0
- package/dist/adapters/native.js +17 -0
- package/dist/adapters/native.js.map +1 -0
- package/dist/adapters/rgb.d.ts +11 -0
- package/dist/adapters/rgb.d.ts.map +1 -0
- package/dist/adapters/rgb.js +11 -0
- package/dist/adapters/rgb.js.map +1 -0
- package/dist/adapters/spark.d.ts +12 -0
- package/dist/adapters/spark.d.ts.map +1 -0
- package/dist/adapters/spark.js +14 -0
- package/dist/adapters/spark.js.map +1 -0
- package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts +53 -19
- package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/ArkadeWdkAdapter.js +366 -90
- package/dist/adapters/wdk/ArkadeWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/BaseWdkAdapter.d.ts +40 -0
- package/dist/adapters/wdk/BaseWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/BaseWdkAdapter.js +71 -0
- package/dist/adapters/wdk/BaseWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.d.ts +6 -13
- package/dist/adapters/wdk/LiquidWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/LiquidWdkAdapter.js +14 -32
- package/dist/adapters/wdk/LiquidWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/RgbCore.d.ts +64 -0
- package/dist/adapters/wdk/RgbCore.d.ts.map +1 -0
- package/dist/adapters/wdk/RgbCore.js +111 -0
- package/dist/adapters/wdk/RgbCore.js.map +1 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.d.ts +277 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.js +728 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.js.map +1 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.d.ts +104 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.js +249 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/RlnWdkAdapter.d.ts +27 -14
- package/dist/adapters/wdk/RlnWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/RlnWdkAdapter.js +111 -87
- package/dist/adapters/wdk/RlnWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/SparkWdkAdapter.d.ts +74 -41
- package/dist/adapters/wdk/SparkWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/SparkWdkAdapter.js +706 -249
- package/dist/adapters/wdk/SparkWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/index.d.ts +17 -0
- package/dist/adapters/wdk/index.d.ts.map +1 -0
- package/dist/adapters/wdk/index.js +17 -0
- package/dist/adapters/wdk/index.js.map +1 -0
- package/dist/adapters/wdk/wasm-rgb.d.ts +15 -0
- package/dist/adapters/wdk/wasm-rgb.d.ts.map +1 -0
- package/dist/adapters/wdk/wasm-rgb.js +15 -0
- package/dist/adapters/wdk/wasm-rgb.js.map +1 -0
- package/dist/capabilities/index.d.ts +1 -1
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +17 -2
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/operations.d.ts +22 -0
- package/dist/capabilities/operations.d.ts.map +1 -0
- package/dist/capabilities/operations.js +62 -0
- package/dist/capabilities/operations.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/disclosure/index.d.ts +1 -1
- package/dist/disclosure/index.js +1 -1
- package/dist/disclosure/index.js.map +1 -1
- package/dist/format.d.ts +11 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +10 -0
- package/dist/format.js.map +1 -0
- package/dist/index.d.ts +21 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -32
- package/dist/index.js.map +1 -1
- package/dist/lib/arkade-client-manager.d.ts +64 -24
- package/dist/lib/arkade-client-manager.d.ts.map +1 -1
- package/dist/lib/arkade-client-manager.js +240 -65
- package/dist/lib/arkade-client-manager.js.map +1 -1
- package/dist/lib/arkade-converters.d.ts +39 -0
- package/dist/lib/arkade-converters.d.ts.map +1 -0
- package/dist/lib/arkade-converters.js +148 -0
- package/dist/lib/arkade-converters.js.map +1 -0
- package/dist/lib/arkade-helpers.d.ts +110 -0
- package/dist/lib/arkade-helpers.d.ts.map +1 -0
- package/dist/lib/arkade-helpers.js +227 -0
- package/dist/lib/arkade-helpers.js.map +1 -0
- package/dist/lib/arkade-swaps-client-manager.d.ts +55 -0
- package/dist/lib/arkade-swaps-client-manager.d.ts.map +1 -0
- package/dist/lib/arkade-swaps-client-manager.js +127 -0
- package/dist/lib/arkade-swaps-client-manager.js.map +1 -0
- package/dist/lib/arkade-vtxo-lifecycle.d.ts +116 -0
- package/dist/lib/arkade-vtxo-lifecycle.d.ts.map +1 -0
- package/dist/lib/arkade-vtxo-lifecycle.js +184 -0
- package/dist/lib/arkade-vtxo-lifecycle.js.map +1 -0
- package/dist/lib/flashnet-client-manager.d.ts +26 -9
- package/dist/lib/flashnet-client-manager.d.ts.map +1 -1
- package/dist/lib/flashnet-client-manager.js +97 -13
- package/dist/lib/flashnet-client-manager.js.map +1 -1
- package/dist/lib/kaleido-client-manager.d.ts +38 -3
- package/dist/lib/kaleido-client-manager.d.ts.map +1 -1
- package/dist/lib/kaleido-client-manager.js +79 -10
- package/dist/lib/kaleido-client-manager.js.map +1 -1
- package/dist/lib/ln-message-sign.d.ts +20 -0
- package/dist/lib/ln-message-sign.d.ts.map +1 -0
- package/dist/lib/ln-message-sign.js +90 -0
- package/dist/lib/ln-message-sign.js.map +1 -0
- package/dist/lib/log.d.ts +15 -0
- package/dist/lib/log.d.ts.map +1 -0
- package/dist/lib/log.js +16 -0
- package/dist/lib/log.js.map +1 -0
- package/dist/lib/orchestra-client.d.ts +149 -0
- package/dist/lib/orchestra-client.d.ts.map +1 -0
- package/dist/lib/orchestra-client.js +178 -0
- package/dist/lib/orchestra-client.js.map +1 -0
- package/dist/lib/psbt-signer.d.ts +60 -0
- package/dist/lib/psbt-signer.d.ts.map +1 -0
- package/dist/lib/psbt-signer.js +161 -0
- package/dist/lib/psbt-signer.js.map +1 -0
- package/dist/lib/rgb-converters.d.ts +62 -0
- package/dist/lib/rgb-converters.d.ts.map +1 -0
- package/dist/lib/rgb-converters.js +179 -0
- package/dist/lib/rgb-converters.js.map +1 -0
- package/dist/lib/rgb-fee-policy.d.ts +41 -0
- package/dist/lib/rgb-fee-policy.d.ts.map +1 -0
- package/dist/lib/rgb-fee-policy.js +52 -0
- package/dist/lib/rgb-fee-policy.js.map +1 -0
- package/dist/lib/rgb-helpers.d.ts +54 -0
- package/dist/lib/rgb-helpers.d.ts.map +1 -0
- package/dist/lib/rgb-helpers.js +89 -0
- package/dist/lib/rgb-helpers.js.map +1 -0
- package/dist/lib/spark-activity.d.ts +5 -0
- package/dist/lib/spark-activity.d.ts.map +1 -0
- package/dist/lib/spark-activity.js +11 -0
- package/dist/lib/spark-activity.js.map +1 -0
- package/dist/lib/spark-balance-cache.d.ts +58 -0
- package/dist/lib/spark-balance-cache.d.ts.map +1 -0
- package/dist/lib/spark-balance-cache.js +86 -0
- package/dist/lib/spark-balance-cache.js.map +1 -0
- package/dist/lib/spark-client-manager.d.ts +64 -10
- package/dist/lib/spark-client-manager.d.ts.map +1 -1
- package/dist/lib/spark-client-manager.js +191 -35
- package/dist/lib/spark-client-manager.js.map +1 -1
- package/dist/lib/spark-converters.d.ts +64 -0
- package/dist/lib/spark-converters.d.ts.map +1 -0
- package/dist/lib/spark-converters.js +242 -0
- package/dist/lib/spark-converters.js.map +1 -0
- package/dist/lib/spark-helpers.d.ts +72 -0
- package/dist/lib/spark-helpers.d.ts.map +1 -0
- package/dist/lib/spark-helpers.js +151 -0
- package/dist/lib/spark-helpers.js.map +1 -0
- package/dist/lib/spark-sent-token-records.d.ts +43 -0
- package/dist/lib/spark-sent-token-records.d.ts.map +1 -0
- package/dist/lib/spark-sent-token-records.js +105 -0
- package/dist/lib/spark-sent-token-records.js.map +1 -0
- package/dist/lib/wallet-seed.d.ts +31 -0
- package/dist/lib/wallet-seed.d.ts.map +1 -0
- package/dist/lib/wallet-seed.js +58 -0
- package/dist/lib/wallet-seed.js.map +1 -0
- package/dist/lib/zbase32.d.ts +3 -0
- package/dist/lib/zbase32.d.ts.map +1 -0
- package/dist/lib/zbase32.js +64 -0
- package/dist/lib/zbase32.js.map +1 -0
- package/dist/manager/ProtocolManager.d.ts +54 -3
- package/dist/manager/ProtocolManager.d.ts.map +1 -1
- package/dist/manager/ProtocolManager.js +118 -41
- package/dist/manager/ProtocolManager.js.map +1 -1
- package/dist/ports/index.d.ts +20 -0
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +23 -1
- package/dist/ports/index.js.map +1 -1
- package/dist/receive/unifiedReceive.d.ts +12 -0
- package/dist/receive/unifiedReceive.d.ts.map +1 -1
- package/dist/receive/unifiedReceive.js +35 -4
- package/dist/receive/unifiedReceive.js.map +1 -1
- package/dist/registry/createWdkRegistry.d.ts +10 -2
- package/dist/registry/createWdkRegistry.d.ts.map +1 -1
- package/dist/registry/createWdkRegistry.js +14 -7
- package/dist/registry/createWdkRegistry.js.map +1 -1
- package/dist/router/destination.d.ts +2 -2
- package/dist/router/destination.d.ts.map +1 -1
- package/dist/router/destination.js +34 -11
- package/dist/router/destination.js.map +1 -1
- package/dist/router/index.d.ts +39 -3
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +113 -4
- package/dist/router/index.js.map +1 -1
- package/dist/router/preference.d.ts +53 -0
- package/dist/router/preference.d.ts.map +1 -0
- package/dist/router/preference.js +81 -0
- package/dist/router/preference.js.map +1 -0
- package/dist/swap/KaleidoswapSwap.d.ts +1 -1
- package/dist/swap/KaleidoswapSwap.d.ts.map +1 -1
- package/dist/swap/KaleidoswapSwap.js +37 -20
- package/dist/swap/KaleidoswapSwap.js.map +1 -1
- package/dist/swap/index.d.ts +8 -0
- package/dist/swap/index.d.ts.map +1 -0
- package/dist/swap/index.js +8 -0
- package/dist/swap/index.js.map +1 -0
- package/dist/types/arkade.d.ts +1 -1
- package/dist/types/base.d.ts +35 -25
- package/dist/types/base.d.ts.map +1 -1
- package/dist/types/base.js +28 -2
- package/dist/types/base.js.map +1 -1
- package/dist/types/cross-l2.d.ts +1 -1
- package/dist/types/flashnet.d.ts +20 -0
- package/dist/types/flashnet.d.ts.map +1 -1
- package/dist/types/flashnet.js +34 -6
- package/dist/types/flashnet.js.map +1 -1
- package/dist/types/rgb.d.ts +18 -4
- package/dist/types/rgb.d.ts.map +1 -1
- package/dist/types/spark.d.ts +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +2 -2
- package/dist/utils.js.map +1 -1
- package/package.json +68 -14
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wallet-seed
|
|
3
|
+
* -----------
|
|
4
|
+
* Resolve an extension/host wallet secret to the raw seed bytes the WDK wallet
|
|
5
|
+
* managers expect.
|
|
6
|
+
*
|
|
7
|
+
* The WDK base `WalletManager` validates a *string* secret with
|
|
8
|
+
* `bip39.validateMnemonic` and throws "The seed phrase is invalid." on failure —
|
|
9
|
+
* but it accepts a `Uint8Array` as raw seed bytes with NO validation. Hosts here
|
|
10
|
+
* support wallets rooted on an `nsec1…` Nostr key or a raw hex private key (not
|
|
11
|
+
* just BIP-39 phrases), which the native adapters resolved before use. Mirror that
|
|
12
|
+
* resolution and hand the WDK managers bytes, so nsec/hex-rooted wallets connect.
|
|
13
|
+
*
|
|
14
|
+
* Resolution (matches the native spark/arkade client-managers):
|
|
15
|
+
* - `nsec1…` → the decoded 32-byte private key (used as the HD master seed)
|
|
16
|
+
* - 64-hex-chars → those 32 bytes (used as the HD master seed)
|
|
17
|
+
* - otherwise → treated as a BIP-39 mnemonic → 64-byte PBKDF2 seed
|
|
18
|
+
*
|
|
19
|
+
* NOTE ON PARITY: for BIP-39 and nsec/hex wallets the Spark path reproduces the
|
|
20
|
+
* native addresses (spark-sdk receives the same effective seed). Arkade derives
|
|
21
|
+
* HD keys from the seed, so BIP-39 wallets match the native BIP-86 derivation but
|
|
22
|
+
* an nsec/hex-rooted Arkade wallet (native used the raw key as identity) will not.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Resolve a wallet secret (nsec / hex private key / BIP-39 mnemonic) to the seed
|
|
26
|
+
* bytes a WDK `WalletManager` consumes. Never throws on a non-BIP-39 string — it
|
|
27
|
+
* falls through to the mnemonic seed derivation (the host validated the secret at
|
|
28
|
+
* wallet creation).
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveWalletSeed(secret: string): Uint8Array;
|
|
31
|
+
//# sourceMappingURL=wallet-seed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-seed.d.ts","sourceRoot":"","sources":["../../src/lib/wallet-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAkBH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAU5D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wallet-seed
|
|
3
|
+
* -----------
|
|
4
|
+
* Resolve an extension/host wallet secret to the raw seed bytes the WDK wallet
|
|
5
|
+
* managers expect.
|
|
6
|
+
*
|
|
7
|
+
* The WDK base `WalletManager` validates a *string* secret with
|
|
8
|
+
* `bip39.validateMnemonic` and throws "The seed phrase is invalid." on failure —
|
|
9
|
+
* but it accepts a `Uint8Array` as raw seed bytes with NO validation. Hosts here
|
|
10
|
+
* support wallets rooted on an `nsec1…` Nostr key or a raw hex private key (not
|
|
11
|
+
* just BIP-39 phrases), which the native adapters resolved before use. Mirror that
|
|
12
|
+
* resolution and hand the WDK managers bytes, so nsec/hex-rooted wallets connect.
|
|
13
|
+
*
|
|
14
|
+
* Resolution (matches the native spark/arkade client-managers):
|
|
15
|
+
* - `nsec1…` → the decoded 32-byte private key (used as the HD master seed)
|
|
16
|
+
* - 64-hex-chars → those 32 bytes (used as the HD master seed)
|
|
17
|
+
* - otherwise → treated as a BIP-39 mnemonic → 64-byte PBKDF2 seed
|
|
18
|
+
*
|
|
19
|
+
* NOTE ON PARITY: for BIP-39 and nsec/hex wallets the Spark path reproduces the
|
|
20
|
+
* native addresses (spark-sdk receives the same effective seed). Arkade derives
|
|
21
|
+
* HD keys from the seed, so BIP-39 wallets match the native BIP-86 derivation but
|
|
22
|
+
* an nsec/hex-rooted Arkade wallet (native used the raw key as identity) will not.
|
|
23
|
+
*/
|
|
24
|
+
import { bech32 } from '@scure/base';
|
|
25
|
+
import { mnemonicToSeedSync } from '@scure/bip39';
|
|
26
|
+
import { hexToBytes } from '@noble/hashes/utils.js';
|
|
27
|
+
/** Decode an `nsec1…` bech32 secret into its 32 raw key bytes, or null. */
|
|
28
|
+
function nsecToBytes(input) {
|
|
29
|
+
try {
|
|
30
|
+
const decoded = bech32.decode(input, 1023);
|
|
31
|
+
if (decoded.prefix !== 'nsec')
|
|
32
|
+
return null;
|
|
33
|
+
const data = bech32.fromWords(decoded.words);
|
|
34
|
+
return Uint8Array.from(data);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolve a wallet secret (nsec / hex private key / BIP-39 mnemonic) to the seed
|
|
42
|
+
* bytes a WDK `WalletManager` consumes. Never throws on a non-BIP-39 string — it
|
|
43
|
+
* falls through to the mnemonic seed derivation (the host validated the secret at
|
|
44
|
+
* wallet creation).
|
|
45
|
+
*/
|
|
46
|
+
export function resolveWalletSeed(secret) {
|
|
47
|
+
const trimmed = secret.trim();
|
|
48
|
+
if (trimmed.startsWith('nsec1')) {
|
|
49
|
+
const bytes = nsecToBytes(trimmed);
|
|
50
|
+
if (bytes)
|
|
51
|
+
return bytes;
|
|
52
|
+
}
|
|
53
|
+
if (/^[0-9a-fA-F]{64}$/.test(trimmed)) {
|
|
54
|
+
return hexToBytes(trimmed.toLowerCase());
|
|
55
|
+
}
|
|
56
|
+
return mnemonicToSeedSync(trimmed);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=wallet-seed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-seed.js","sourceRoot":"","sources":["../../src/lib/wallet-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEnD,2EAA2E;AAC3E,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAA8B,EAAE,IAAI,CAAC,CAAA;QACnE,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5C,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC7B,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;IACzB,CAAC;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zbase32.d.ts","sourceRoot":"","sources":["../../src/lib/zbase32.ts"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAuBtD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAsB3E"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// zbase32 — Phil Zimmermann's human-friendly base32 alphabet, used by LND
|
|
2
|
+
// for `signmessage` / `verifymessage` outputs.
|
|
3
|
+
//
|
|
4
|
+
// alphabet = "ybndrfg8ejkmcpqxot1uwisza345h769"
|
|
5
|
+
//
|
|
6
|
+
// Encoding is the same shape as base32 (5 bits per char), but the alphabet
|
|
7
|
+
// is reordered so the resulting strings are easier to read and transcribe.
|
|
8
|
+
const ALPHABET = "ybndrfg8ejkmcpqxot1uwisza345h769";
|
|
9
|
+
const INDEX = (() => {
|
|
10
|
+
const m = new Map();
|
|
11
|
+
for (let i = 0; i < ALPHABET.length; i++)
|
|
12
|
+
m.set(ALPHABET[i], i);
|
|
13
|
+
return m;
|
|
14
|
+
})();
|
|
15
|
+
export function zbase32Encode(data) {
|
|
16
|
+
if (data.length === 0)
|
|
17
|
+
return "";
|
|
18
|
+
const bitCount = data.length * 8;
|
|
19
|
+
const charCount = Math.ceil(bitCount / 5);
|
|
20
|
+
let out = "";
|
|
21
|
+
let buffer = 0;
|
|
22
|
+
let bits = 0;
|
|
23
|
+
let consumed = 0;
|
|
24
|
+
for (let i = 0; i < data.length; i++) {
|
|
25
|
+
buffer = (buffer << 8) | data[i];
|
|
26
|
+
bits += 8;
|
|
27
|
+
while (bits >= 5 && consumed < charCount) {
|
|
28
|
+
bits -= 5;
|
|
29
|
+
const idx = (buffer >>> bits) & 0x1f;
|
|
30
|
+
out += ALPHABET[idx];
|
|
31
|
+
consumed++;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (bits > 0 && consumed < charCount) {
|
|
35
|
+
const idx = (buffer << (5 - bits)) & 0x1f;
|
|
36
|
+
out += ALPHABET[idx];
|
|
37
|
+
}
|
|
38
|
+
return out;
|
|
39
|
+
}
|
|
40
|
+
export function zbase32Decode(text, byteLength) {
|
|
41
|
+
if (text.length === 0)
|
|
42
|
+
return new Uint8Array(0);
|
|
43
|
+
const expectedBytes = byteLength ?? Math.floor((text.length * 5) / 8);
|
|
44
|
+
const out = new Uint8Array(expectedBytes);
|
|
45
|
+
let buffer = 0;
|
|
46
|
+
let bits = 0;
|
|
47
|
+
let written = 0;
|
|
48
|
+
for (let i = 0; i < text.length; i++) {
|
|
49
|
+
const idx = INDEX.get(text[i]);
|
|
50
|
+
if (idx === undefined) {
|
|
51
|
+
throw new Error(`Invalid zbase32 character at position ${i}: ${text[i]}`);
|
|
52
|
+
}
|
|
53
|
+
buffer = (buffer << 5) | idx;
|
|
54
|
+
bits += 5;
|
|
55
|
+
if (bits >= 8) {
|
|
56
|
+
bits -= 8;
|
|
57
|
+
if (written < expectedBytes) {
|
|
58
|
+
out[written++] = (buffer >>> bits) & 0xff;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return out;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=zbase32.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zbase32.js","sourceRoot":"","sources":["../../src/lib/zbase32.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,20 +3,42 @@
|
|
|
3
3
|
* Central manager for all protocol operations
|
|
4
4
|
* Ported from rate-extension/src/protocols/manager/ProtocolManager.ts
|
|
5
5
|
*/
|
|
6
|
-
import { ProtocolType, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter, QuoteRequest, Quote, SwapResult } from '../types/base';
|
|
7
|
-
import { IProtocolAdapter,
|
|
6
|
+
import { ProtocolType, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, KeysendRequest, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter, QuoteRequest, Quote, SwapResult } from '../types/base.js';
|
|
7
|
+
import { IProtocolAdapter, ProtocolConfig } from '../adapters/IProtocolAdapter.js';
|
|
8
|
+
import type { ProtocolCapability } from '../capabilities/operations.js';
|
|
9
|
+
import { type Logger } from '../ports/index.js';
|
|
8
10
|
export interface ProtocolManagerConfig {
|
|
9
11
|
defaultProtocol?: ProtocolType;
|
|
10
12
|
autoConnect?: boolean;
|
|
11
13
|
enabledProtocols?: ProtocolType[];
|
|
14
|
+
/** Logger override; defaults to the injected platform logger (or console). */
|
|
15
|
+
logger?: Logger;
|
|
16
|
+
/**
|
|
17
|
+
* Generic message-verification fallback used by `verifyMessage` when the
|
|
18
|
+
* active adapter does not implement `verifyMessage` itself. Hosts inject a
|
|
19
|
+
* recoverable-ECDSA verifier (returns the signer's hex pubkey). When absent,
|
|
20
|
+
* `verifyMessage` throws NOT_SUPPORTED for adapters without native support.
|
|
21
|
+
*/
|
|
22
|
+
verifyMessageFallback?: (message: string, signature: string) => Promise<string>;
|
|
12
23
|
}
|
|
13
24
|
export declare class ProtocolManager {
|
|
14
25
|
private registry;
|
|
15
26
|
private activeProtocol;
|
|
27
|
+
private log;
|
|
28
|
+
private verifyMessageFallback?;
|
|
16
29
|
constructor(_config?: ProtocolManagerConfig);
|
|
17
30
|
registerAdapter(adapter: IProtocolAdapter): void;
|
|
18
31
|
getSupportedProtocols(): ProtocolType[];
|
|
19
32
|
isProtocolSupported(protocol: ProtocolType): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Static capability manifest for a registered protocol (empty if not
|
|
35
|
+
* registered). Capabilities are static, so this works while unconfigured.
|
|
36
|
+
*/
|
|
37
|
+
getCapabilities(protocol: ProtocolType): readonly ProtocolCapability[];
|
|
38
|
+
/** Capability manifest for every registered protocol. */
|
|
39
|
+
getAllCapabilities(): Partial<Record<ProtocolType, readonly ProtocolCapability[]>>;
|
|
40
|
+
/** Whether a protocol declares support for a given operation. */
|
|
41
|
+
protocolSupports(protocol: ProtocolType, capability: ProtocolCapability): boolean;
|
|
20
42
|
setActiveProtocol(protocol: ProtocolType): Promise<void>;
|
|
21
43
|
getActiveProtocol(): ProtocolType | null;
|
|
22
44
|
getActiveAdapter(): IProtocolAdapter;
|
|
@@ -25,25 +47,54 @@ export declare class ProtocolManager {
|
|
|
25
47
|
* Try to get an adapter, returning undefined if not registered.
|
|
26
48
|
*/
|
|
27
49
|
getAdapterIfAvailable(protocol: ProtocolType): IProtocolAdapter | undefined;
|
|
28
|
-
connect(protocol: ProtocolType, config:
|
|
50
|
+
connect(protocol: ProtocolType, config: ProtocolConfig): Promise<void>;
|
|
29
51
|
disconnect(protocol: ProtocolType): Promise<void>;
|
|
30
52
|
disconnectAll(): Promise<void>;
|
|
31
53
|
getAllConnectionInfo(): Promise<Map<ProtocolType, ConnectionInfo>>;
|
|
32
54
|
listAssets(): Promise<UnifiedAsset[]>;
|
|
33
55
|
getAsset(assetId: string): Promise<UnifiedAsset>;
|
|
34
56
|
getAssetBalance(assetId: string): Promise<import("..").AssetBalance>;
|
|
57
|
+
/**
|
|
58
|
+
* Invalidate every connected adapter's balance cache so the next read is
|
|
59
|
+
* fresh. Tolerates per-adapter failures — one slow protocol can't block the
|
|
60
|
+
* others.
|
|
61
|
+
*/
|
|
35
62
|
refreshBalances(): Promise<void>;
|
|
36
63
|
listTransactions(filter?: TransactionFilter): Promise<UnifiedTransaction[]>;
|
|
37
64
|
getTransaction(txId: string, assetId?: string): Promise<UnifiedTransaction>;
|
|
38
65
|
createInvoice(request: InvoiceRequest): Promise<Invoice>;
|
|
39
66
|
decodeInvoice(invoice: string): Promise<DecodedInvoice>;
|
|
40
67
|
sendPayment(request: PaymentRequest): Promise<PaymentResult>;
|
|
68
|
+
payKeysend(request: KeysendRequest): Promise<PaymentResult>;
|
|
41
69
|
getPaymentStatus(paymentHash: string): Promise<PaymentStatus>;
|
|
70
|
+
/**
|
|
71
|
+
* Sign a message with the active adapter's wallet identity key (LND-style
|
|
72
|
+
* zbase32 recoverable ECDSA). Throws if the adapter doesn't implement it —
|
|
73
|
+
* callers fall back to their own mnemonic-derived signer.
|
|
74
|
+
*/
|
|
75
|
+
signMessage(message: string): Promise<string>;
|
|
76
|
+
/**
|
|
77
|
+
* Verify an LND-style zbase32 signature, returning the signer's hex pubkey.
|
|
78
|
+
* Routes to the active adapter, else the injected generic fallback, else
|
|
79
|
+
* throws NOT_SUPPORTED.
|
|
80
|
+
*/
|
|
81
|
+
verifyMessage(message: string, signature: string): Promise<string>;
|
|
42
82
|
getReceiveAddress(assetId?: string): Promise<Address>;
|
|
43
83
|
getSwapQuote(request: QuoteRequest): Promise<Quote>;
|
|
44
84
|
executeSwap(quote: Quote): Promise<SwapResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Assets across all connected protocols. Runs per-adapter calls in parallel
|
|
87
|
+
* with an 8s timeout each — a single slow/degraded backend can't freeze the
|
|
88
|
+
* whole list for every consumer of asset data.
|
|
89
|
+
*/
|
|
45
90
|
listAllAssets(): Promise<UnifiedAsset[]>;
|
|
91
|
+
/**
|
|
92
|
+
* Transactions across all connected protocols. Parallel + per-protocol
|
|
93
|
+
* timeout, for the same reason as `listAllAssets`.
|
|
94
|
+
*/
|
|
46
95
|
listAllTransactions(filter?: TransactionFilter): Promise<UnifiedTransaction[]>;
|
|
96
|
+
/** Race a per-protocol call against an 8s timeout, clearing the timer on settle. */
|
|
97
|
+
private withTimeout;
|
|
47
98
|
findAsset(assetId: string): Promise<UnifiedAsset | null>;
|
|
48
99
|
getPortfolioSummary(): Promise<{
|
|
49
100
|
totalAssets: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtocolManager.d.ts","sourceRoot":"","sources":["../../src/manager/ProtocolManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,UAAU,EAEX,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"ProtocolManager.d.ts","sourceRoot":"","sources":["../../src/manager/ProtocolManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,20 +3,25 @@
|
|
|
3
3
|
* Central manager for all protocol operations
|
|
4
4
|
* Ported from rate-extension/src/protocols/manager/ProtocolManager.ts
|
|
5
5
|
*/
|
|
6
|
-
import { ProtocolError, } from '../types/base';
|
|
7
|
-
import { ProtocolAdapterRegistry, } from '../adapters/IProtocolAdapter';
|
|
6
|
+
import { ProtocolError, } from '../types/base.js';
|
|
7
|
+
import { ProtocolAdapterRegistry, } from '../adapters/IProtocolAdapter.js';
|
|
8
|
+
import { getLogger } from '../ports/index.js';
|
|
9
|
+
/** Per-protocol timeout for cross-protocol fan-out reads (assets/transactions). */
|
|
10
|
+
const PER_PROTOCOL_TIMEOUT_MS = 8000;
|
|
8
11
|
export class ProtocolManager {
|
|
9
12
|
constructor(_config = {}) {
|
|
10
13
|
this.activeProtocol = null;
|
|
11
14
|
this.registry = new ProtocolAdapterRegistry();
|
|
12
15
|
this.activeProtocol = _config.defaultProtocol || null;
|
|
16
|
+
this.log = _config.logger ?? getLogger();
|
|
17
|
+
this.verifyMessageFallback = _config.verifyMessageFallback;
|
|
13
18
|
}
|
|
14
19
|
// ========================================================================
|
|
15
20
|
// Registry Management
|
|
16
21
|
// ========================================================================
|
|
17
22
|
registerAdapter(adapter) {
|
|
18
23
|
this.registry.register(adapter);
|
|
19
|
-
|
|
24
|
+
this.log.info(`[ProtocolManager] Registered ${adapter.protocolName} adapter`);
|
|
20
25
|
}
|
|
21
26
|
getSupportedProtocols() {
|
|
22
27
|
return this.registry.getSupportedProtocols();
|
|
@@ -25,6 +30,28 @@ export class ProtocolManager {
|
|
|
25
30
|
return this.registry.has(protocol);
|
|
26
31
|
}
|
|
27
32
|
// ========================================================================
|
|
33
|
+
// Capability Manifest
|
|
34
|
+
// ========================================================================
|
|
35
|
+
/**
|
|
36
|
+
* Static capability manifest for a registered protocol (empty if not
|
|
37
|
+
* registered). Capabilities are static, so this works while unconfigured.
|
|
38
|
+
*/
|
|
39
|
+
getCapabilities(protocol) {
|
|
40
|
+
return this.registry.get(protocol)?.capabilities ?? [];
|
|
41
|
+
}
|
|
42
|
+
/** Capability manifest for every registered protocol. */
|
|
43
|
+
getAllCapabilities() {
|
|
44
|
+
const result = {};
|
|
45
|
+
for (const adapter of this.registry.getAll()) {
|
|
46
|
+
result[adapter.protocolName] = adapter.capabilities;
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
/** Whether a protocol declares support for a given operation. */
|
|
51
|
+
protocolSupports(protocol, capability) {
|
|
52
|
+
return this.getCapabilities(protocol).includes(capability);
|
|
53
|
+
}
|
|
54
|
+
// ========================================================================
|
|
28
55
|
// Protocol Selection
|
|
29
56
|
// ========================================================================
|
|
30
57
|
async setActiveProtocol(protocol) {
|
|
@@ -36,7 +63,7 @@ export class ProtocolManager {
|
|
|
36
63
|
throw new ProtocolError(`Protocol not connected: ${protocol}`, protocol, 'NOT_CONNECTED');
|
|
37
64
|
}
|
|
38
65
|
this.activeProtocol = protocol;
|
|
39
|
-
|
|
66
|
+
this.log.info(`[ProtocolManager] Active protocol set to ${protocol}`);
|
|
40
67
|
}
|
|
41
68
|
getActiveProtocol() {
|
|
42
69
|
return this.activeProtocol;
|
|
@@ -73,7 +100,7 @@ export class ProtocolManager {
|
|
|
73
100
|
throw new ProtocolError(`Protocol not found: ${protocol}`, protocol, 'NOT_FOUND');
|
|
74
101
|
}
|
|
75
102
|
await adapter.connect(config);
|
|
76
|
-
|
|
103
|
+
this.log.info(`[ProtocolManager] Connected to ${protocol}`);
|
|
77
104
|
// Auto-set as active if no active protocol
|
|
78
105
|
if (!this.activeProtocol) {
|
|
79
106
|
this.activeProtocol = protocol;
|
|
@@ -83,7 +110,7 @@ export class ProtocolManager {
|
|
|
83
110
|
const adapter = this.registry.get(protocol);
|
|
84
111
|
if (adapter) {
|
|
85
112
|
await adapter.disconnect();
|
|
86
|
-
|
|
113
|
+
this.log.info(`[ProtocolManager] Disconnected from ${protocol}`);
|
|
87
114
|
if (this.activeProtocol === protocol) {
|
|
88
115
|
this.activeProtocol = null;
|
|
89
116
|
}
|
|
@@ -95,7 +122,7 @@ export class ProtocolManager {
|
|
|
95
122
|
await adapter.disconnect();
|
|
96
123
|
}
|
|
97
124
|
catch (error) {
|
|
98
|
-
|
|
125
|
+
this.log.error(`[ProtocolManager] Error disconnecting ${adapter.protocolName}:`, error);
|
|
99
126
|
}
|
|
100
127
|
}
|
|
101
128
|
this.activeProtocol = null;
|
|
@@ -122,8 +149,14 @@ export class ProtocolManager {
|
|
|
122
149
|
async getAssetBalance(assetId) {
|
|
123
150
|
return this.getActiveAdapter().getAssetBalance(assetId);
|
|
124
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Invalidate every connected adapter's balance cache so the next read is
|
|
154
|
+
* fresh. Tolerates per-adapter failures — one slow protocol can't block the
|
|
155
|
+
* others.
|
|
156
|
+
*/
|
|
125
157
|
async refreshBalances() {
|
|
126
|
-
|
|
158
|
+
const adapters = this.registry.getAll().filter((a) => a.isConnected());
|
|
159
|
+
await Promise.allSettled(adapters.map((a) => a.refreshBalances()));
|
|
127
160
|
}
|
|
128
161
|
async listTransactions(filter) {
|
|
129
162
|
return this.getActiveAdapter().listTransactions(filter);
|
|
@@ -140,9 +173,43 @@ export class ProtocolManager {
|
|
|
140
173
|
async sendPayment(request) {
|
|
141
174
|
return this.getActiveAdapter().sendPayment(request);
|
|
142
175
|
}
|
|
176
|
+
async payKeysend(request) {
|
|
177
|
+
const adapter = this.getActiveAdapter();
|
|
178
|
+
if (!adapter.payKeysend) {
|
|
179
|
+
throw new ProtocolError('Keysend not supported by active protocol', adapter.protocolName, 'NOT_SUPPORTED');
|
|
180
|
+
}
|
|
181
|
+
return adapter.payKeysend(request);
|
|
182
|
+
}
|
|
143
183
|
async getPaymentStatus(paymentHash) {
|
|
144
184
|
return this.getActiveAdapter().getPaymentStatus(paymentHash);
|
|
145
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Sign a message with the active adapter's wallet identity key (LND-style
|
|
188
|
+
* zbase32 recoverable ECDSA). Throws if the adapter doesn't implement it —
|
|
189
|
+
* callers fall back to their own mnemonic-derived signer.
|
|
190
|
+
*/
|
|
191
|
+
async signMessage(message) {
|
|
192
|
+
const adapter = this.getActiveAdapter();
|
|
193
|
+
if (typeof adapter.signMessage !== 'function') {
|
|
194
|
+
throw new ProtocolError('signMessage not supported by active protocol', adapter.protocolName, 'NOT_SUPPORTED');
|
|
195
|
+
}
|
|
196
|
+
return adapter.signMessage(message);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Verify an LND-style zbase32 signature, returning the signer's hex pubkey.
|
|
200
|
+
* Routes to the active adapter, else the injected generic fallback, else
|
|
201
|
+
* throws NOT_SUPPORTED.
|
|
202
|
+
*/
|
|
203
|
+
async verifyMessage(message, signature) {
|
|
204
|
+
const adapter = this.getActiveAdapter();
|
|
205
|
+
if (typeof adapter.verifyMessage === 'function') {
|
|
206
|
+
return adapter.verifyMessage(message, signature);
|
|
207
|
+
}
|
|
208
|
+
if (this.verifyMessageFallback) {
|
|
209
|
+
return this.verifyMessageFallback(message, signature);
|
|
210
|
+
}
|
|
211
|
+
throw new ProtocolError('verifyMessage not supported by active protocol', adapter.protocolName, 'NOT_SUPPORTED');
|
|
212
|
+
}
|
|
146
213
|
async getReceiveAddress(assetId) {
|
|
147
214
|
return this.getActiveAdapter().getReceiveAddress(assetId);
|
|
148
215
|
}
|
|
@@ -163,48 +230,58 @@ export class ProtocolManager {
|
|
|
163
230
|
// ========================================================================
|
|
164
231
|
// Cross-Protocol Operations
|
|
165
232
|
// ========================================================================
|
|
233
|
+
/**
|
|
234
|
+
* Assets across all connected protocols. Runs per-adapter calls in parallel
|
|
235
|
+
* with an 8s timeout each — a single slow/degraded backend can't freeze the
|
|
236
|
+
* whole list for every consumer of asset data.
|
|
237
|
+
*/
|
|
166
238
|
async listAllAssets() {
|
|
239
|
+
const adapters = this.registry.getAll().filter((a) => a.isConnected());
|
|
240
|
+
const results = await Promise.allSettled(adapters.map((adapter) => this.withTimeout(adapter.listAssets(), adapter.protocolName, 'listAssets')));
|
|
167
241
|
const allAssets = [];
|
|
168
|
-
|
|
169
|
-
if (
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
catch (error) {
|
|
175
|
-
console.error(`[ProtocolManager] Error listing assets for ${adapter.protocolName}:`, error);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
242
|
+
results.forEach((result, index) => {
|
|
243
|
+
if (result.status === 'fulfilled')
|
|
244
|
+
allAssets.push(...result.value);
|
|
245
|
+
else
|
|
246
|
+
this.log.error(`[ProtocolManager] Error listing assets for ${adapters[index].protocolName}:`, result.reason);
|
|
247
|
+
});
|
|
179
248
|
return allAssets;
|
|
180
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Transactions across all connected protocols. Parallel + per-protocol
|
|
252
|
+
* timeout, for the same reason as `listAllAssets`.
|
|
253
|
+
*/
|
|
181
254
|
async listAllTransactions(filter) {
|
|
255
|
+
const adapters = this.registry.getAll().filter((a) => a.isConnected());
|
|
256
|
+
const results = await Promise.allSettled(adapters.map((adapter) => this.withTimeout(adapter.listTransactions(filter), adapter.protocolName, 'listTransactions')));
|
|
182
257
|
const allTransactions = [];
|
|
183
|
-
|
|
184
|
-
if (
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
catch (error) {
|
|
190
|
-
console.error(`[ProtocolManager] Error listing transactions for ${adapter.protocolName}:`, error);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
258
|
+
results.forEach((result, index) => {
|
|
259
|
+
if (result.status === 'fulfilled')
|
|
260
|
+
allTransactions.push(...result.value);
|
|
261
|
+
else
|
|
262
|
+
this.log.error(`[ProtocolManager] Error listing transactions for ${adapters[index].protocolName}:`, result.reason);
|
|
263
|
+
});
|
|
194
264
|
return allTransactions.sort((a, b) => b.timestamp - a.timestamp);
|
|
195
265
|
}
|
|
266
|
+
/** Race a per-protocol call against an 8s timeout, clearing the timer on settle. */
|
|
267
|
+
withTimeout(p, protocol, op) {
|
|
268
|
+
let timer;
|
|
269
|
+
const timeout = new Promise((_, reject) => {
|
|
270
|
+
timer = setTimeout(() => reject(new Error(`${op}(${protocol}) timed out after ${PER_PROTOCOL_TIMEOUT_MS}ms`)), PER_PROTOCOL_TIMEOUT_MS);
|
|
271
|
+
});
|
|
272
|
+
// Clear the timer whether p resolves or rejects, so a fast call never leaves
|
|
273
|
+
// an 8s timer pinning the event loop alive.
|
|
274
|
+
return Promise.race([p, timeout]).finally(() => clearTimeout(timer));
|
|
275
|
+
}
|
|
196
276
|
async findAsset(assetId) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
// Asset not found in this protocol, continue
|
|
206
|
-
}
|
|
207
|
-
}
|
|
277
|
+
// Query every connected protocol in parallel (with the same per-protocol
|
|
278
|
+
// timeout as the other fan-out reads) rather than serially awaiting each —
|
|
279
|
+
// a single slow backend must not stall the lookup.
|
|
280
|
+
const adapters = this.registry.getAll().filter((a) => a.isConnected());
|
|
281
|
+
const results = await Promise.allSettled(adapters.map((a) => this.withTimeout(a.getAsset(assetId), a.protocolName, 'getAsset')));
|
|
282
|
+
for (const result of results) {
|
|
283
|
+
if (result.status === 'fulfilled' && result.value)
|
|
284
|
+
return result.value;
|
|
208
285
|
}
|
|
209
286
|
return null;
|
|
210
287
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtocolManager.js","sourceRoot":"","sources":["../../src/manager/ProtocolManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProtocolManager.js","sourceRoot":"","sources":["../../src/manager/ProtocolManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAiBL,aAAa,GACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAGL,uBAAuB,GACxB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAe,SAAS,EAAE,MAAM,UAAU,CAAA;AAEjD,mFAAmF;AACnF,MAAM,uBAAuB,GAAG,IAAK,CAAA;AAiBrC,MAAM,OAAO,eAAe;IAM1B,YAAY,UAAiC,EAAE;QAJvC,mBAAc,GAAwB,IAAI,CAAA;QAKhD,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAuB,EAAE,CAAA;QAC7C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAA;QACrD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAA;QACxC,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAA;IAC5D,CAAC;IAED,2EAA2E;IAC3E,sBAAsB;IACtB,2EAA2E;IAE3E,eAAe,CAAC,OAAyB;QACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,OAAO,CAAC,YAAY,UAAU,CAAC,CAAA;IAC/E,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAA;IAC9C,CAAC;IAED,mBAAmB,CAAC,QAAsB;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,2EAA2E;IAC3E,sBAAsB;IACtB,2EAA2E;IAE3E;;;OAGG;IACH,eAAe,CAAC,QAAsB;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,YAAY,IAAI,EAAE,CAAA;IACxD,CAAC;IAED,yDAAyD;IACzD,kBAAkB;QAChB,MAAM,MAAM,GAAiE,EAAE,CAAA;QAC/E,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAA;QACrD,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,iEAAiE;IACjE,gBAAgB,CAAC,QAAsB,EAAE,UAA8B;QACrE,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAC5D,CAAC;IAED,2EAA2E;IAC3E,qBAAqB;IACrB,2EAA2E;IAE3E,KAAK,CAAC,iBAAiB,CAAC,QAAsB;QAC5C,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,aAAa,CAAC,2BAA2B,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC1E,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAA;QAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CAAC,2BAA2B,QAAQ,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;QAC3F,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAEM,gBAAgB;QACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;QAC3E,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,UAAU,CAAC,QAAsB;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,QAAsB;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,2EAA2E;IAC3E,wBAAwB;IACxB,2EAA2E;IAE3E,KAAK,CAAC,OAAO,CAAC,QAAsB,EAAE,MAAsB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CAAC,uBAAuB,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;QACnF,CAAC;QAED,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAA;QAE3D,2CAA2C;QAC3C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAsB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;YAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAA;YAEhE,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;gBACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,OAAO,CAAC,YAAY,GAAG,EAAE,KAAK,CAAC,CAAA;YACzF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAgC,CAAA;QAEpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1B,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAA;gBACxD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;YAChD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,2EAA2E;IAC3E,gDAAgD;IAChD,2EAA2E;IAE3E,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,UAAU,EAAE,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IACzD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QACtE,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAA0B;QAC/C,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,OAAgB;QACjD,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAuB;QACvC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAuB;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,IAAI,aAAa,CACrB,0CAA0C,EAC1C,OAAO,CAAC,YAAY,EACpB,eAAe,CAChB,CAAA;QACH,CAAC;QACD,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QACxC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAC9D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvC,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YAC9C,MAAM,IAAI,aAAa,CACrB,8CAA8C,EAC9C,OAAO,CAAC,YAAY,EACpB,eAAe,CAChB,CAAA;QACH,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,SAAiB;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvC,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAChD,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACvD,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,gDAAgD,EAChD,OAAO,CAAC,YAAY,EACpB,eAAe,CAChB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAgB;QACtC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAqB;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACtD,MAAM,IAAI,aAAa,CACrB,wCAAwC,EACxC,OAAO,CAAC,YAAY,EACpB,eAAe,CAChB,CAAA;QACH,CAAC;QACD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAY;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,IAAI,aAAa,CACrB,wCAAwC,EACxC,OAAO,CAAC,YAAY,EACpB,eAAe,CAChB,CAAA;QACH,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,2EAA2E;IAC3E,4BAA4B;IAC5B,2EAA2E;IAE3E;;;;OAIG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QACtE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CACtG,CAAA;QAED,MAAM,SAAS,GAAmB,EAAE,CAAA;QACpC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;gBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;gBAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8CAA8C,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACnH,CAAC,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAA0B;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QACtE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACvB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAC7F,CACF,CAAA;QAED,MAAM,eAAe,GAAyB,EAAE,CAAA;QAChD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;gBAAE,eAAe,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;gBACnE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oDAAoD,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACzH,CAAC,CAAC,CAAA;QACF,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;IAClE,CAAC;IAED,oFAAoF;IAC5E,WAAW,CAAI,CAAa,EAAE,QAAsB,EAAE,EAAU;QACtE,IAAI,KAAoC,CAAA;QACxC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC/C,KAAK,GAAG,UAAU,CAChB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,QAAQ,qBAAqB,uBAAuB,IAAI,CAAC,CAAC,EAC1F,uBAAuB,CACxB,CAAA;QACH,CAAC,CAAC,CAAA;QACF,6EAA6E;QAC7E,4CAA4C;QAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,yEAAyE;QACzE,2EAA2E;QAC3E,mDAAmD;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QACtE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CACvF,CAAA;QACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK;gBAAE,OAAO,MAAM,CAAC,KAAK,CAAA;QACxE,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,mBAAmB;QAKvB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmD,CAAA;QAE5E,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACxD,CAAC;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAA;YAC5C,KAAK,CAAC,MAAM,EAAE,CAAA;QAChB,CAAC;QAED,OAAO;YACL,WAAW,EAAE,SAAS,CAAC,MAAM;YAC7B,UAAU,EAAE,CAAC;YACb,iBAAiB,EAAE,SAAS;SAC7B,CAAA;IACH,CAAC;CACF"}
|
package/dist/ports/index.d.ts
CHANGED
|
@@ -21,9 +21,29 @@ export interface IRuntimeProvider {
|
|
|
21
21
|
/** Epoch millis — injectable so tests/replay can be deterministic. */
|
|
22
22
|
now(): number;
|
|
23
23
|
}
|
|
24
|
+
/** Leveled logger. Hosts inject their own (extension → redacting ring buffer). */
|
|
25
|
+
export interface Logger {
|
|
26
|
+
debug(...args: unknown[]): void;
|
|
27
|
+
info(...args: unknown[]): void;
|
|
28
|
+
warn(...args: unknown[]): void;
|
|
29
|
+
error(...args: unknown[]): void;
|
|
30
|
+
}
|
|
24
31
|
/** Bundle of ports handed to the engine at initialization. */
|
|
25
32
|
export interface PlatformContext {
|
|
26
33
|
storage: IStorageProvider;
|
|
27
34
|
runtime: IRuntimeProvider;
|
|
35
|
+
/** Optional host logger; engine falls back to a console-backed logger. */
|
|
36
|
+
logger?: Logger;
|
|
28
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Console-backed logger used when a host injects none. Kept as the single place
|
|
40
|
+
* the engine touches `console`, so the rest of core stays host-agnostic.
|
|
41
|
+
*/
|
|
42
|
+
export declare const consoleLogger: Logger;
|
|
43
|
+
/** Inject the host's platform ports once at startup. */
|
|
44
|
+
export declare function setPlatform(ctx: PlatformContext): void;
|
|
45
|
+
/** The injected platform context, or null if the host never called setPlatform. */
|
|
46
|
+
export declare function getPlatform(): PlatformContext | null;
|
|
47
|
+
/** The active logger: injected host logger if present, else the console logger. */
|
|
48
|
+
export declare function getLogger(): Logger;
|
|
29
49
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CAC1B;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,WAAW,GAAG,MAAM,GAAG,KAAK,CAAA;IAC5D,oDAAoD;IACpD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;IACvC,sEAAsE;IACtE,GAAG,IAAI,MAAM,CAAA;CACd;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,gBAAgB,CAAA;IACzB,OAAO,EAAE,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CAC1B;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,WAAW,GAAG,MAAM,GAAG,KAAK,CAAA;IAC5D,oDAAoD;IACpD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;IACvC,sEAAsE;IACtE,GAAG,IAAI,MAAM,CAAA;CACd;AAED,kFAAkF;AAClF,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAChC;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,gBAAgB,CAAA;IACzB,OAAO,EAAE,gBAAgB,CAAA;IACzB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAK3B,CAAA;AAID,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAEtD;AAED,mFAAmF;AACnF,wBAAgB,WAAW,IAAI,eAAe,GAAG,IAAI,CAEpD;AAED,mFAAmF;AACnF,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
|