@lendasat/lendaswap-sdk-pure 0.2.42 → 0.2.44
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/dist/_esm-7KJOBTZC.js +3660 -0
- package/dist/_esm-7KJOBTZC.js.map +1 -0
- package/dist/_esm-UGRDSVEV.cjs +3662 -0
- package/dist/_esm-UGRDSVEV.cjs.map +1 -0
- package/dist/api/client.d.ts +0 -4
- package/dist/api/client.d.ts.map +1 -1
- package/dist/base-2KYNAFR3.cjs +109 -0
- package/dist/base-2KYNAFR3.cjs.map +1 -0
- package/dist/base-B6OGU65B.js +7 -0
- package/dist/base-B6OGU65B.js.map +1 -0
- package/dist/ccip-MPMAZOUF.js +5 -0
- package/dist/ccip-MPMAZOUF.js.map +1 -0
- package/dist/ccip-PD37NJHA.cjs +26 -0
- package/dist/ccip-PD37NJHA.cjs.map +1 -0
- package/dist/cctp-bridge/index.cjs +67 -0
- package/dist/cctp-bridge/index.cjs.map +1 -0
- package/dist/cctp-bridge/index.js +51 -15
- package/dist/cctp-bridge/index.js.map +1 -1
- package/dist/cctp-inbound/client.d.ts +21 -19
- package/dist/cctp-inbound/client.d.ts.map +1 -1
- package/dist/cctp-inbound/smartAccount.d.ts +21 -19
- package/dist/cctp-inbound/smartAccount.d.ts.map +1 -1
- package/dist/chunk-3JWT4OW2.js +369 -0
- package/dist/chunk-3JWT4OW2.js.map +1 -0
- package/dist/chunk-A4GKKURK.cjs +430 -0
- package/dist/chunk-A4GKKURK.cjs.map +1 -0
- package/dist/chunk-BZU3R5DJ.cjs +554 -0
- package/dist/chunk-BZU3R5DJ.cjs.map +1 -0
- package/dist/chunk-C4YXYD24.js +418 -0
- package/dist/chunk-C4YXYD24.js.map +1 -0
- package/dist/chunk-CZNQYFDP.js +6141 -0
- package/dist/chunk-CZNQYFDP.js.map +1 -0
- package/dist/chunk-DKTFDGIU.js +2207 -0
- package/dist/chunk-DKTFDGIU.js.map +1 -0
- package/dist/chunk-DNSJDKTP.cjs +96 -0
- package/dist/chunk-DNSJDKTP.cjs.map +1 -0
- package/dist/chunk-EPKFLKTM.js +47093 -0
- package/dist/chunk-EPKFLKTM.js.map +1 -0
- package/dist/chunk-JBVKWKD4.cjs +50 -0
- package/dist/chunk-JBVKWKD4.cjs.map +1 -0
- package/dist/chunk-NPFJAXKV.js +551 -0
- package/dist/chunk-NPFJAXKV.js.map +1 -0
- package/dist/chunk-PKDJZJMV.cjs +2214 -0
- package/dist/chunk-PKDJZJMV.cjs.map +1 -0
- package/dist/chunk-PLDDJCW6.js +43 -0
- package/dist/chunk-PLDDJCW6.js.map +1 -0
- package/dist/chunk-RIOT5VOJ.cjs +47240 -0
- package/dist/chunk-RIOT5VOJ.cjs.map +1 -0
- package/dist/chunk-WVZSHRV7.cjs +431 -0
- package/dist/chunk-WVZSHRV7.cjs.map +1 -0
- package/dist/chunk-YEZOPVAH.js +86 -0
- package/dist/chunk-YEZOPVAH.js.map +1 -0
- package/dist/chunk-YLWPBHMV.cjs +6311 -0
- package/dist/chunk-YLWPBHMV.cjs.map +1 -0
- package/dist/client.d.ts +68 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/compose-quote.d.ts +77 -0
- package/dist/compose-quote.d.ts.map +1 -0
- package/dist/delegate.cjs +23 -0
- package/dist/delegate.cjs.map +1 -0
- package/dist/delegate.js +5 -269
- package/dist/delegate.js.map +1 -1
- package/dist/dist-NE2R4YCX.js +5 -0
- package/dist/dist-NE2R4YCX.js.map +1 -0
- package/dist/dist-VEHYC67F.cjs +550 -0
- package/dist/dist-VEHYC67F.cjs.map +1 -0
- package/dist/esplora.d.ts +14 -0
- package/dist/esplora.d.ts.map +1 -1
- package/dist/generated/api.d.ts +235 -38
- package/dist/generated/api.d.ts.map +1 -1
- package/dist/index.cjs +35461 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35309 -32
- package/dist/index.js.map +1 -1
- package/dist/mine.wasm-JJEJEODX.js +9 -0
- package/dist/mine.wasm-JJEJEODX.js.map +1 -0
- package/dist/mine.wasm-Z3ORSBKN.cjs +12 -0
- package/dist/mine.wasm-Z3ORSBKN.cjs.map +1 -0
- package/dist/node.cjs +166 -0
- package/dist/node.cjs.map +1 -0
- package/dist/node.js +157 -18
- package/dist/node.js.map +1 -1
- package/dist/secp256k1-PJCSE4N6.cjs +30 -0
- package/dist/secp256k1-PJCSE4N6.cjs.map +1 -0
- package/dist/secp256k1-VZNNVEPN.js +5 -0
- package/dist/secp256k1-VZNNVEPN.js.map +1 -0
- package/dist/tokens.d.ts +2 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/types/chain-config.d.ts +50 -0
- package/dist/types/chain-config.d.ts.map +1 -0
- package/dist/types/chain.d.ts +11 -0
- package/dist/types/chain.d.ts.map +1 -0
- package/dist/types/dex-quote.d.ts +85 -0
- package/dist/types/dex-quote.d.ts.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/network-fees.d.ts +43 -0
- package/dist/types/network-fees.d.ts.map +1 -0
- package/dist/types/quote.d.ts +87 -0
- package/dist/types/quote.d.ts.map +1 -0
- package/dist/types/swap-pairs.d.ts +37 -0
- package/dist/types/swap-pairs.d.ts.map +1 -0
- package/dist/version.d.ts +2 -2
- package/dist/wallet-SCGRX3EN.js +4 -0
- package/dist/wallet-SCGRX3EN.js.map +1 -0
- package/dist/wallet-SZJDXAY7.cjs +45 -0
- package/dist/wallet-SZJDXAY7.cjs.map +1 -0
- package/package.json +23 -10
- package/dist/api/client.js +0 -13
- package/dist/api/client.js.map +0 -1
- package/dist/arkade-network.js +0 -40
- package/dist/arkade-network.js.map +0 -1
- package/dist/arkade.js +0 -61
- package/dist/arkade.js.map +0 -1
- package/dist/cctp/attestation.js +0 -149
- package/dist/cctp/attestation.js.map +0 -1
- package/dist/cctp/constants.js +0 -92
- package/dist/cctp/constants.js.map +0 -1
- package/dist/cctp/fee.js +0 -70
- package/dist/cctp/fee.js.map +0 -1
- package/dist/cctp/index.js +0 -13
- package/dist/cctp/index.js.map +0 -1
- package/dist/cctp/types.js +0 -5
- package/dist/cctp/types.js.map +0 -1
- package/dist/cctp/utils.js +0 -91
- package/dist/cctp/utils.js.map +0 -1
- package/dist/cctp-bridge/bridge.js +0 -74
- package/dist/cctp-bridge/bridge.js.map +0 -1
- package/dist/cctp-inbound/approveAndBurn.js +0 -95
- package/dist/cctp-inbound/approveAndBurn.js.map +0 -1
- package/dist/cctp-inbound/burn.js +0 -66
- package/dist/cctp-inbound/burn.js.map +0 -1
- package/dist/cctp-inbound/chainMap.js +0 -128
- package/dist/cctp-inbound/chainMap.js.map +0 -1
- package/dist/cctp-inbound/client.js +0 -125
- package/dist/cctp-inbound/client.js.map +0 -1
- package/dist/cctp-inbound/eip2612.js +0 -95
- package/dist/cctp-inbound/eip2612.js.map +0 -1
- package/dist/cctp-inbound/evmSignerAdapter.js +0 -82
- package/dist/cctp-inbound/evmSignerAdapter.js.map +0 -1
- package/dist/cctp-inbound/fundSwap.js +0 -95
- package/dist/cctp-inbound/fundSwap.js.map +0 -1
- package/dist/cctp-inbound/index.js +0 -34
- package/dist/cctp-inbound/index.js.map +0 -1
- package/dist/cctp-inbound/permit2.js +0 -32
- package/dist/cctp-inbound/permit2.js.map +0 -1
- package/dist/cctp-inbound/preflight.js +0 -84
- package/dist/cctp-inbound/preflight.js.map +0 -1
- package/dist/cctp-inbound/recover.js +0 -177
- package/dist/cctp-inbound/recover.js.map +0 -1
- package/dist/cctp-inbound/smartAccount.js +0 -117
- package/dist/cctp-inbound/smartAccount.js.map +0 -1
- package/dist/cctp-inbound/submit.js +0 -136
- package/dist/cctp-inbound/submit.js.map +0 -1
- package/dist/cctp-inbound/types.js +0 -5
- package/dist/cctp-inbound/types.js.map +0 -1
- package/dist/cctp-inbound/userOp.js +0 -151
- package/dist/cctp-inbound/userOp.js.map +0 -1
- package/dist/client.js +0 -4126
- package/dist/client.js.map +0 -1
- package/dist/create/arkade-to-lightning.js +0 -76
- package/dist/create/arkade-to-lightning.js.map +0 -1
- package/dist/create/arkade.js +0 -86
- package/dist/create/arkade.js.map +0 -1
- package/dist/create/bitcoin-to-arkade.js +0 -76
- package/dist/create/bitcoin-to-arkade.js.map +0 -1
- package/dist/create/bitcoin.js +0 -77
- package/dist/create/bitcoin.js.map +0 -1
- package/dist/create/evm-to-arkade.js +0 -80
- package/dist/create/evm-to-arkade.js.map +0 -1
- package/dist/create/evm-to-bitcoin.js +0 -82
- package/dist/create/evm-to-bitcoin.js.map +0 -1
- package/dist/create/evm-to-lightning.js +0 -89
- package/dist/create/evm-to-lightning.js.map +0 -1
- package/dist/create/index.js +0 -21
- package/dist/create/index.js.map +0 -1
- package/dist/create/lightning-to-arkade.js +0 -69
- package/dist/create/lightning-to-arkade.js.map +0 -1
- package/dist/create/lightning.js +0 -61
- package/dist/create/lightning.js.map +0 -1
- package/dist/create/retry.js +0 -71
- package/dist/create/retry.js.map +0 -1
- package/dist/create/types.js +0 -5
- package/dist/create/types.js.map +0 -1
- package/dist/escrow/index.js +0 -115
- package/dist/escrow/index.js.map +0 -1
- package/dist/esplora.js +0 -47
- package/dist/esplora.js.map +0 -1
- package/dist/evm/coordinator.js +0 -714
- package/dist/evm/coordinator.js.map +0 -1
- package/dist/evm/htlc.js +0 -278
- package/dist/evm/htlc.js.map +0 -1
- package/dist/evm/index.js +0 -10
- package/dist/evm/index.js.map +0 -1
- package/dist/evm/signing.js +0 -70
- package/dist/evm/signing.js.map +0 -1
- package/dist/evm/wallet.js +0 -133
- package/dist/evm/wallet.js.map +0 -1
- package/dist/generated/api.js +0 -6
- package/dist/generated/api.js.map +0 -1
- package/dist/logging.js +0 -130
- package/dist/logging.js.map +0 -1
- package/dist/price-calculations.js +0 -135
- package/dist/price-calculations.js.map +0 -1
- package/dist/redeem/arkade.js +0 -416
- package/dist/redeem/arkade.js.map +0 -1
- package/dist/redeem/ethereum.js +0 -206
- package/dist/redeem/ethereum.js.map +0 -1
- package/dist/redeem/gasless.js +0 -73
- package/dist/redeem/gasless.js.map +0 -1
- package/dist/redeem/index.js +0 -189
- package/dist/redeem/index.js.map +0 -1
- package/dist/redeem/types.js +0 -36
- package/dist/redeem/types.js.map +0 -1
- package/dist/refund/arkade.js +0 -200
- package/dist/refund/arkade.js.map +0 -1
- package/dist/refund/collab-arkade-evm.js +0 -307
- package/dist/refund/collab-arkade-evm.js.map +0 -1
- package/dist/refund/collab-arkade-lightning.js +0 -245
- package/dist/refund/collab-arkade-lightning.js.map +0 -1
- package/dist/refund/index.js +0 -12
- package/dist/refund/index.js.map +0 -1
- package/dist/refund/onchain.js +0 -366
- package/dist/refund/onchain.js.map +0 -1
- package/dist/signer/index.js +0 -249
- package/dist/signer/index.js.map +0 -1
- package/dist/storage/idb.js +0 -236
- package/dist/storage/idb.js.map +0 -1
- package/dist/storage/index.js +0 -98
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/sqlite.js +0 -206
- package/dist/storage/sqlite.js.map +0 -1
- package/dist/storage/types.js +0 -9
- package/dist/storage/types.js.map +0 -1
- package/dist/tokens.js +0 -322
- package/dist/tokens.js.map +0 -1
- package/dist/usd-price.js +0 -96
- package/dist/usd-price.js.map +0 -1
- package/dist/usdt0-bridge/constants.js +0 -71
- package/dist/usdt0-bridge/constants.js.map +0 -1
- package/dist/usdt0-bridge/index.js +0 -11
- package/dist/usdt0-bridge/index.js.map +0 -1
- package/dist/usdt0-bridge/tracking.js +0 -123
- package/dist/usdt0-bridge/tracking.js.map +0 -1
- package/dist/usdt0-bridge/utils.js +0 -51
- package/dist/usdt0-bridge/utils.js.map +0 -1
- package/dist/version.js +0 -6
- package/dist/version.js.map +0 -1
- package/dist/ws.js +0 -145
- package/dist/ws.js.map +0 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import './chunk-PLDDJCW6.js';
|
|
2
|
+
|
|
3
|
+
// node_modules/.pnpm/ox@0.14.29_typescript@5.9.3_zod@3.25.67/node_modules/ox/_esm/tempo/internal/mine.wasm.js
|
|
4
|
+
var wasmBase64 = "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";
|
|
5
|
+
var dataOffset = 1024;
|
|
6
|
+
|
|
7
|
+
export { dataOffset, wasmBase64 };
|
|
8
|
+
//# sourceMappingURL=mine.wasm-JJEJEODX.js.map
|
|
9
|
+
//# sourceMappingURL=mine.wasm-JJEJEODX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../node_modules/.pnpm/ox@0.14.29_typescript@5.9.3_zod@3.25.67/node_modules/ox/tempo/internal/mine.wasm.ts"],"names":[],"mappings":";;;AAYO,IAAM,UAAA,GACX;AAGK,IAAM,UAAA,GAAa","file":"mine.wasm-JJEJEODX.js","sourcesContent":["// Embedded TIP-1022 WASM keccak256 salt miner (compiled from mine.c).\n//\n// Memory layout at offset 1024:\n// [0..19] address (20 bytes, set by JS)\n// [20..51] salt (32 bytes, set/read by JS, incremented in-place)\n// [52..83] hash out (32 bytes, written on match)\n//\n// Exported: mine(count: i32) -> i32 — returns 1 if found, 0 if not.\n//\n// Generated by: pnpm tsx scripts/build-mine-wasm.ts\n\n/** Base64-encoded WASM binary for the TIP-1022 salt miner. */\nexport const wasmBase64 =\n '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'\n\n/** Byte offset in WASM linear memory where mining I/O begins. */\nexport const dataOffset = 1024\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./chunk-JBVKWKD4.cjs');
|
|
4
|
+
|
|
5
|
+
// node_modules/.pnpm/ox@0.14.29_typescript@5.9.3_zod@3.25.67/node_modules/ox/_esm/tempo/internal/mine.wasm.js
|
|
6
|
+
var wasmBase64 = "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";
|
|
7
|
+
var dataOffset = 1024;
|
|
8
|
+
|
|
9
|
+
exports.dataOffset = dataOffset;
|
|
10
|
+
exports.wasmBase64 = wasmBase64;
|
|
11
|
+
//# sourceMappingURL=mine.wasm-Z3ORSBKN.cjs.map
|
|
12
|
+
//# sourceMappingURL=mine.wasm-Z3ORSBKN.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../node_modules/.pnpm/ox@0.14.29_typescript@5.9.3_zod@3.25.67/node_modules/ox/tempo/internal/mine.wasm.ts"],"names":[],"mappings":";;;;;AAYO,IAAM,UAAA,GACX;AAGK,IAAM,UAAA,GAAa","file":"mine.wasm-Z3ORSBKN.cjs","sourcesContent":["// Embedded TIP-1022 WASM keccak256 salt miner (compiled from mine.c).\n//\n// Memory layout at offset 1024:\n// [0..19] address (20 bytes, set by JS)\n// [20..51] salt (32 bytes, set/read by JS, incremented in-place)\n// [52..83] hash out (32 bytes, written on match)\n//\n// Exported: mine(count: i32) -> i32 — returns 1 if found, 0 if not.\n//\n// Generated by: pnpm tsx scripts/build-mine-wasm.ts\n\n/** Base64-encoded WASM binary for the TIP-1022 salt miner. */\nexport const wasmBase64 =\n 'AGFzbQEAAAABBgFgAX8BfwMCAQAFAwEAAgcRAgZtZW1vcnkCAARtaW5lAAAMAQEKjxABjBACA38ufgJAIABBAEwNAEGQCDEAAEGRCDEAAEIIhoRBkggxAABCEIaEQZMIMQAAQhiGhCEtQYgIMQAAQYkIMQAAQgiGhEGKCDEAAEIQhoRBiwgxAABCGIaEQYwIMQAAQiCGhEGNCDEAAEIohoRBjggxAABCMIaEQY8IMQAAQjiGhCEuQYAIMQAAQYEIMQAAQgiGhEGCCDEAAEIQhoRBgwgxAABCGIaEQYQIMQAAQiCGhEGFCDEAAEIohoRBhggxAABCMIaEQYcIMQAAQjiGhCEvA0BBsAg1AgBCgICAgBCEIQ9BlAg1AgBCIIYgLYQhB0GoCCkDACEQQaAIKQMAIRFBmAgpAwAhCkKAgICAgICAgIB/IRJCACETQcB+IQEgLiELQgAhFEIAIRVCACEWQgAhF0IAIRhCACEZQgAhGkIAIRtCACEcIC8hCUIAIR1CACEeQgAhDEIAIR9CACENQgAhIEIAIQ4DQCAJIBCFIB2FIB6FIAyFIgQgByAZhSAahSAbhSAchSIIQgGJhSIGIA+FIAogH4UgDYUgIIUgDoUiBSAEQgGJhSIEIBiFITEgBiAVhUICiSIjIAcgBUIBiSALIA+FIBSFIBKFIBWFIgWFIgeFQj6JIiFCf4UgCCARIBaFIBeFIBOFIBiFIg9CAYmFIgggH4VCN4kiIoOFIRggDyAFQgGJhSIFIB6FQimJIiUgBCAXhUIniSIkQn+FgyAihSEVIAYgFIVCCokiJyAIIA6FQjiJIg4gByAbhUIPiSImQn+Fg4UhGyAEIBGFQhuJIikgJyAFIBCFQiSJIihCf4WDhSEeIAUgDIVCEokiLCAHIBmFQgaJIisgBiALhUIBiSIqQn+Fg4UhFyAIIA2FQhmJIgxCf4UgBCAThUIIiSINgyArhSEUIAggCoVCHIkiC0J/hSAEIBaFQhSJIgqDIAcgHIVCPYkiBIUhFiAGIBKFQi2JIgYgCyAEQn+Fg4UhHyAEIAZCf4WDIAUgHYVCA4kiBIUhGSAKIAYgBEJ/hYOFIQ8gBCAKQn+FgyALhSEQIAUgCYUiBCAxQg6JIgZCf4WDIAggIIVCFYkiCYUhCiAHIBqFQiuJIgggBiAJQn+Fg4UhB0IsiSIFIAkgCEJ/hYOFIQsgAUHAgQRqKQMAIAggBUJ/hYOFIASFIQkgJiAnQn+FgyAohSESIAYgBSAEQn+Fg4UhESAoIClCf4WDIA6FIRMgLCANQn+FgyAMhSEaICQgIyAlQn+Fg4UhHCAMICtCf4WDICqFIR0gJCAiQn+FgyAhhSEMIA0gKiAsQn+Fg4UhDSApIA5Cf4WDICaFISAgISAjQn+FgyAlhSEOIAFBCGoiAQ0ACwJAAkACQCAJpwRAQbMILQAAIgFB/wFHBEBBswghAgwCC0GzCEEAOgAAQbIILQAAIgFB/wFHBEBBsgghAgwCC0GyCEEAOgAAQbEILQAAIgFB/wFHBEBBsQghAgwCC0GxCEEAOgAAQbAILQAAIgFB/wFHBEBBsAghAgwCC0GwCEEAOgAAQa8ILQAAIgFB/wFHBEBBrwghAgwCC0GvCEEAOgAAQa4ILQAAIgFB/wFHBEBBrgghAgwCC0GuCEEAOgAAQa0ILQAAIgFB/wFHBEBBrQghAgwCC0GtCEEAOgAAQawILQAAIgFB/wFHBEBBrAghAgwCC0GsCEEAOgAAQasILQAAIgFB/wFHBEBBqwghAgwCC0GrCEEAOgAAQaoILQAAIgFB/wFHBEBBqgghAgwCC0GqCEEAOgAAQakILQAAIgFB/wFHBEBBqQghAgwCC0GpCEEAOgAAQagILQAAIgFB/wFHBEBBqAghAgwCC0GoCEEAOgAAQacILQAAIgFB/wFHBEBBpwghAgwCC0GnCEEAOgAAQaYILQAAIgFB/wFHBEBBpgghAgwCC0GmCEEAOgAAQaUILQAAIgFB/wFHBEBBpQghAgwCC0GlCEEAOgAAQaQILQAAIgFB/wFHBEBBpAghAgwCC0GkCEEAOgAAQaMILQAAIgFB/wFHBEBBowghAgwCC0GjCEEAOgAAQaIILQAAIgFB/wFHBEBBogghAgwCC0GiCEEAOgAAQaEILQAAIgFB/wFHBEBBoQghAgwCC0GhCEEAOgAAQaAILQAAIgFB/wFHBEBBoAghAgwCC0GgCEEAOgAAQZ8ILQAAIgFB/wFHBEBBnwghAgwCC0GfCEEAOgAAQZ4ILQAAIgFB/wFHBEBBngghAgwCC0GeCEEAOgAAQZ0ILQAAIgFB/wFHBEBBnQghAgwCC0GdCEEAOgAAQZwILQAAIgFB/wFHBEBBnAghAgwCC0GcCEEAOgAAQZsILQAAIgFB/wFHBEBBmwghAgwCC0GbCEEAOgAAQZoILQAAIgFB/wFHBEBBmgghAgwCC0GaCEEAOgAAQZkILQAAIgFB/wFHBEBBmQghAgwCC0GZCEEAOgAAQZgILQAAIgFB/wFHBEBBmAghAgwCC0GYCEEAOgAAQZcILQAAIgFB/wFHBEBBlwghAgwCC0GXCEEAOgAAQZYILQAAIgFB/wFHBEBBlgghAgwCC0GWCEEAOgAAQZUILQAAIgFB/wFHBEBBlQghAgwCC0GVCEEAOgAAQZQILQAAIgFB/wFGDQJBlAghAgwBC0G0CCAJNwIAQbwIIAs3AgBBxAggBzcCAEHMCCAKNwIAQQEhAQwECyACIAFBAWo6AAAMAQtBlAhBADoAAAsgA0EBaiIDIABHDQALQQAPCyABCwvJAQEAQYCABAvAAQEAAAAAAAAAgoAAAAAAAACKgAAAAAAAgACAAIAAAACAi4AAAAAAAAABAACAAAAAAIGAAIAAAACACYAAAAAAAICKAAAAAAAAAIgAAAAAAAAACYAAgAAAAAAKAACAAAAAAIuAAIAAAAAAiwAAAAAAAICJgAAAAAAAgAOAAAAAAACAAoAAAAAAAICAAAAAAAAAgAqAAAAAAAAACgAAgAAAAICBgACAAAAAgICAAAAAAACAAQAAgAAAAAAIgACAAAAAgACUAQ90YXJnZXRfZmVhdHVyZXMIKw9tdXRhYmxlLWdsb2JhbHMrE25vbnRyYXBwaW5nLWZwdG9pbnQrC2J1bGstbWVtb3J5KwhzaWduLWV4dCsPcmVmZXJlbmNlLXR5cGVzKwptdWx0aXZhbHVlKw9idWxrLW1lbW9yeS1vcHQrFmNhbGwtaW5kaXJlY3Qtb3Zlcmxvbmc='\n\n/** Byte offset in WASM linear memory where mining I/O begins. */\nexport const dataOffset = 1024\n"]}
|
package/dist/node.cjs
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./chunk-JBVKWKD4.cjs');
|
|
4
|
+
var Database = require('better-sqlite3');
|
|
5
|
+
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var Database__default = /*#__PURE__*/_interopDefault(Database);
|
|
9
|
+
|
|
10
|
+
var SqliteWalletStorage = class {
|
|
11
|
+
#db;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new SQLite wallet storage.
|
|
14
|
+
* @param dbPath - Path to the SQLite database file. Use ":memory:" for in-memory storage.
|
|
15
|
+
*/
|
|
16
|
+
constructor(dbPath) {
|
|
17
|
+
this.#db = new Database__default.default(dbPath);
|
|
18
|
+
this.#initSchema();
|
|
19
|
+
}
|
|
20
|
+
#initSchema() {
|
|
21
|
+
this.#db.exec(`
|
|
22
|
+
CREATE TABLE IF NOT EXISTS wallet (
|
|
23
|
+
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
24
|
+
mnemonic TEXT,
|
|
25
|
+
key_index INTEGER NOT NULL DEFAULT 0
|
|
26
|
+
);
|
|
27
|
+
INSERT OR IGNORE INTO wallet (id, key_index) VALUES (1, 0);
|
|
28
|
+
`);
|
|
29
|
+
}
|
|
30
|
+
async getMnemonic() {
|
|
31
|
+
const row = this.#db.prepare("SELECT mnemonic FROM wallet WHERE id = 1").get();
|
|
32
|
+
return row?.mnemonic ?? null;
|
|
33
|
+
}
|
|
34
|
+
async setMnemonic(mnemonic) {
|
|
35
|
+
this.#db.prepare("UPDATE wallet SET mnemonic = ? WHERE id = 1").run(mnemonic);
|
|
36
|
+
}
|
|
37
|
+
async getKeyIndex() {
|
|
38
|
+
const row = this.#db.prepare("SELECT key_index FROM wallet WHERE id = 1").get();
|
|
39
|
+
return row?.key_index ?? 0;
|
|
40
|
+
}
|
|
41
|
+
async setKeyIndex(index) {
|
|
42
|
+
this.#db.prepare("UPDATE wallet SET key_index = ? WHERE id = 1").run(index);
|
|
43
|
+
}
|
|
44
|
+
async incrementKeyIndex() {
|
|
45
|
+
const current = await this.getKeyIndex();
|
|
46
|
+
await this.setKeyIndex(current + 1);
|
|
47
|
+
return current;
|
|
48
|
+
}
|
|
49
|
+
async clear() {
|
|
50
|
+
this.#db.prepare("UPDATE wallet SET mnemonic = NULL, key_index = 0 WHERE id = 1").run();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Closes the database connection.
|
|
54
|
+
*/
|
|
55
|
+
close() {
|
|
56
|
+
this.#db.close();
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var SqliteSwapStorage = class {
|
|
60
|
+
#db;
|
|
61
|
+
/**
|
|
62
|
+
* Creates a new SQLite swap storage.
|
|
63
|
+
* @param dbPath - Path to the SQLite database file. Use ":memory:" for in-memory storage.
|
|
64
|
+
*/
|
|
65
|
+
constructor(dbPath) {
|
|
66
|
+
this.#db = new Database__default.default(dbPath);
|
|
67
|
+
this.#initSchema();
|
|
68
|
+
}
|
|
69
|
+
#initSchema() {
|
|
70
|
+
this.#db.exec(`
|
|
71
|
+
CREATE TABLE IF NOT EXISTS swaps (
|
|
72
|
+
swap_id TEXT PRIMARY KEY,
|
|
73
|
+
version INTEGER NOT NULL,
|
|
74
|
+
key_index INTEGER NOT NULL,
|
|
75
|
+
response TEXT NOT NULL,
|
|
76
|
+
public_key TEXT NOT NULL,
|
|
77
|
+
preimage TEXT NOT NULL,
|
|
78
|
+
preimage_hash TEXT NOT NULL,
|
|
79
|
+
secret_key TEXT NOT NULL,
|
|
80
|
+
stored_at INTEGER NOT NULL,
|
|
81
|
+
updated_at INTEGER NOT NULL
|
|
82
|
+
);
|
|
83
|
+
CREATE INDEX IF NOT EXISTS idx_swaps_stored_at ON swaps(stored_at);
|
|
84
|
+
`);
|
|
85
|
+
}
|
|
86
|
+
async get(swapId) {
|
|
87
|
+
const row = this.#db.prepare("SELECT * FROM swaps WHERE swap_id = ?").get(swapId);
|
|
88
|
+
if (!row) return null;
|
|
89
|
+
return this.#rowToStoredSwap(row);
|
|
90
|
+
}
|
|
91
|
+
async store(swap) {
|
|
92
|
+
this.#db.prepare(
|
|
93
|
+
`INSERT OR REPLACE INTO swaps
|
|
94
|
+
(swap_id, version, key_index, response, public_key, preimage, preimage_hash, secret_key, stored_at, updated_at)
|
|
95
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
|
96
|
+
).run(
|
|
97
|
+
swap.swapId,
|
|
98
|
+
swap.version,
|
|
99
|
+
swap.keyIndex,
|
|
100
|
+
JSON.stringify(swap.response),
|
|
101
|
+
swap.publicKey,
|
|
102
|
+
swap.preimage,
|
|
103
|
+
swap.preimageHash,
|
|
104
|
+
swap.secretKey,
|
|
105
|
+
swap.storedAt,
|
|
106
|
+
swap.updatedAt
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
async update(swapId, response) {
|
|
110
|
+
this.#db.prepare(
|
|
111
|
+
"UPDATE swaps SET response = ?, updated_at = ? WHERE swap_id = ?"
|
|
112
|
+
).run(JSON.stringify(response), Date.now(), swapId);
|
|
113
|
+
}
|
|
114
|
+
async delete(swapId) {
|
|
115
|
+
this.#db.prepare("DELETE FROM swaps WHERE swap_id = ?").run(swapId);
|
|
116
|
+
}
|
|
117
|
+
async list() {
|
|
118
|
+
const rows = this.#db.prepare("SELECT swap_id FROM swaps ORDER BY stored_at DESC").all();
|
|
119
|
+
return rows.map((r) => r.swap_id);
|
|
120
|
+
}
|
|
121
|
+
async getAll() {
|
|
122
|
+
const rows = this.#db.prepare("SELECT * FROM swaps ORDER BY stored_at DESC").all();
|
|
123
|
+
return rows.map((row) => this.#rowToStoredSwap(row));
|
|
124
|
+
}
|
|
125
|
+
async clear() {
|
|
126
|
+
this.#db.prepare("DELETE FROM swaps").run();
|
|
127
|
+
}
|
|
128
|
+
#rowToStoredSwap(row) {
|
|
129
|
+
return {
|
|
130
|
+
swapId: row.swap_id,
|
|
131
|
+
version: row.version,
|
|
132
|
+
keyIndex: row.key_index,
|
|
133
|
+
response: JSON.parse(row.response),
|
|
134
|
+
publicKey: row.public_key,
|
|
135
|
+
preimage: row.preimage,
|
|
136
|
+
preimageHash: row.preimage_hash,
|
|
137
|
+
secretKey: row.secret_key,
|
|
138
|
+
storedAt: row.stored_at,
|
|
139
|
+
updatedAt: row.updated_at
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Closes the database connection.
|
|
144
|
+
*/
|
|
145
|
+
close() {
|
|
146
|
+
this.#db.close();
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
function sqliteStorageFactory(dbPath) {
|
|
150
|
+
const walletStorage = new SqliteWalletStorage(dbPath);
|
|
151
|
+
const swapStorage = new SqliteSwapStorage(dbPath);
|
|
152
|
+
return {
|
|
153
|
+
walletStorage,
|
|
154
|
+
swapStorage,
|
|
155
|
+
close: () => {
|
|
156
|
+
walletStorage.close();
|
|
157
|
+
swapStorage.close();
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
exports.SqliteSwapStorage = SqliteSwapStorage;
|
|
163
|
+
exports.SqliteWalletStorage = SqliteWalletStorage;
|
|
164
|
+
exports.sqliteStorageFactory = sqliteStorageFactory;
|
|
165
|
+
//# sourceMappingURL=node.cjs.map
|
|
166
|
+
//# sourceMappingURL=node.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/storage/sqlite.ts"],"names":["Database"],"mappings":"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","file":"node.cjs","sourcesContent":["/**\n * SQLite storage implementations for Node.js.\n *\n * Uses better-sqlite3 for fast, synchronous SQLite access.\n */\n\nimport Database, { type Database as DatabaseType } from \"better-sqlite3\";\nimport type { GetSwapResponse } from \"../api/client.js\";\nimport type { SwapStorage, WalletStorage } from \"./index.js\";\nimport type { StoredSwap } from \"./types.js\";\n\n/**\n * SQLite-based wallet storage for Node.js.\n *\n * Stores mnemonic and key index in a SQLite database.\n *\n * @example\n * ```ts\n * const storage = new SqliteWalletStorage(\"./lendaswap.db\");\n * const client = await Client.builder()\n * .withSignerStorage(storage)\n * .build();\n * ```\n */\nexport class SqliteWalletStorage implements WalletStorage {\n readonly #db: DatabaseType;\n\n /**\n * Creates a new SQLite wallet storage.\n * @param dbPath - Path to the SQLite database file. Use \":memory:\" for in-memory storage.\n */\n constructor(dbPath: string) {\n this.#db = new Database(dbPath);\n this.#initSchema();\n }\n\n #initSchema(): void {\n this.#db.exec(`\n CREATE TABLE IF NOT EXISTS wallet (\n id INTEGER PRIMARY KEY CHECK (id = 1),\n mnemonic TEXT,\n key_index INTEGER NOT NULL DEFAULT 0\n );\n INSERT OR IGNORE INTO wallet (id, key_index) VALUES (1, 0);\n `);\n }\n\n async getMnemonic(): Promise<string | null> {\n const row = this.#db\n .prepare(\"SELECT mnemonic FROM wallet WHERE id = 1\")\n .get() as { mnemonic: string | null } | undefined;\n return row?.mnemonic ?? null;\n }\n\n async setMnemonic(mnemonic: string): Promise<void> {\n this.#db\n .prepare(\"UPDATE wallet SET mnemonic = ? WHERE id = 1\")\n .run(mnemonic);\n }\n\n async getKeyIndex(): Promise<number> {\n const row = this.#db\n .prepare(\"SELECT key_index FROM wallet WHERE id = 1\")\n .get() as { key_index: number } | undefined;\n return row?.key_index ?? 0;\n }\n\n async setKeyIndex(index: number): Promise<void> {\n this.#db.prepare(\"UPDATE wallet SET key_index = ? WHERE id = 1\").run(index);\n }\n\n async incrementKeyIndex(): Promise<number> {\n const current = await this.getKeyIndex();\n await this.setKeyIndex(current + 1);\n return current;\n }\n\n async clear(): Promise<void> {\n this.#db\n .prepare(\"UPDATE wallet SET mnemonic = NULL, key_index = 0 WHERE id = 1\")\n .run();\n }\n\n /**\n * Closes the database connection.\n */\n close(): void {\n this.#db.close();\n }\n}\n\n/**\n * SQLite-based swap storage for Node.js.\n *\n * Stores swap data including responses and cryptographic parameters.\n *\n * @example\n * ```ts\n * const storage = new SqliteSwapStorage(\"./lendaswap.db\");\n * const client = await Client.builder()\n * .withSwapStorage(storage)\n * .build();\n * ```\n */\nexport class SqliteSwapStorage implements SwapStorage {\n readonly #db: DatabaseType;\n\n /**\n * Creates a new SQLite swap storage.\n * @param dbPath - Path to the SQLite database file. Use \":memory:\" for in-memory storage.\n */\n constructor(dbPath: string) {\n this.#db = new Database(dbPath);\n this.#initSchema();\n }\n\n #initSchema(): void {\n this.#db.exec(`\n CREATE TABLE IF NOT EXISTS swaps (\n swap_id TEXT PRIMARY KEY,\n version INTEGER NOT NULL,\n key_index INTEGER NOT NULL,\n response TEXT NOT NULL,\n public_key TEXT NOT NULL,\n preimage TEXT NOT NULL,\n preimage_hash TEXT NOT NULL,\n secret_key TEXT NOT NULL,\n stored_at INTEGER NOT NULL,\n updated_at INTEGER NOT NULL\n );\n CREATE INDEX IF NOT EXISTS idx_swaps_stored_at ON swaps(stored_at);\n `);\n }\n\n async get(swapId: string): Promise<StoredSwap | null> {\n const row = this.#db\n .prepare(\"SELECT * FROM swaps WHERE swap_id = ?\")\n .get(swapId) as SqliteSwapRow | undefined;\n\n if (!row) return null;\n return this.#rowToStoredSwap(row);\n }\n\n async store(swap: StoredSwap): Promise<void> {\n this.#db\n .prepare(\n `INSERT OR REPLACE INTO swaps\n (swap_id, version, key_index, response, public_key, preimage, preimage_hash, secret_key, stored_at, updated_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n )\n .run(\n swap.swapId,\n swap.version,\n swap.keyIndex,\n JSON.stringify(swap.response),\n swap.publicKey,\n swap.preimage,\n swap.preimageHash,\n swap.secretKey,\n swap.storedAt,\n swap.updatedAt,\n );\n }\n\n async update(swapId: string, response: GetSwapResponse): Promise<void> {\n this.#db\n .prepare(\n \"UPDATE swaps SET response = ?, updated_at = ? WHERE swap_id = ?\",\n )\n .run(JSON.stringify(response), Date.now(), swapId);\n }\n\n async delete(swapId: string): Promise<void> {\n this.#db.prepare(\"DELETE FROM swaps WHERE swap_id = ?\").run(swapId);\n }\n\n async list(): Promise<string[]> {\n const rows = this.#db\n .prepare(\"SELECT swap_id FROM swaps ORDER BY stored_at DESC\")\n .all() as { swap_id: string }[];\n return rows.map((r) => r.swap_id);\n }\n\n async getAll(): Promise<StoredSwap[]> {\n const rows = this.#db\n .prepare(\"SELECT * FROM swaps ORDER BY stored_at DESC\")\n .all() as SqliteSwapRow[];\n return rows.map((row) => this.#rowToStoredSwap(row));\n }\n\n async clear(): Promise<void> {\n this.#db.prepare(\"DELETE FROM swaps\").run();\n }\n\n #rowToStoredSwap(row: SqliteSwapRow): StoredSwap {\n return {\n swapId: row.swap_id,\n version: row.version,\n keyIndex: row.key_index,\n response: JSON.parse(row.response) as GetSwapResponse,\n publicKey: row.public_key,\n preimage: row.preimage,\n preimageHash: row.preimage_hash,\n secretKey: row.secret_key,\n storedAt: row.stored_at,\n updatedAt: row.updated_at,\n };\n }\n\n /**\n * Closes the database connection.\n */\n close(): void {\n this.#db.close();\n }\n}\n\ninterface SqliteSwapRow {\n swap_id: string;\n version: number;\n key_index: number;\n response: string;\n public_key: string;\n preimage: string;\n preimage_hash: string;\n secret_key: string;\n stored_at: number;\n updated_at: number;\n}\n\n/**\n * Creates a storage factory that uses SQLite for both wallet and swap storage.\n *\n * @param dbPath - Path to the SQLite database file.\n * @returns A storage factory with shared database connection.\n *\n * @example\n * ```ts\n * const { walletStorage, swapStorage, close } = sqliteStorageFactory(\"./lendaswap.db\");\n * const client = await Client.builder()\n * .withSignerStorage(walletStorage)\n * .withSwapStorage(swapStorage)\n * .build();\n *\n * // When done:\n * close();\n * ```\n */\nexport function sqliteStorageFactory(dbPath: string): {\n walletStorage: SqliteWalletStorage;\n swapStorage: SqliteSwapStorage;\n close: () => void;\n} {\n const walletStorage = new SqliteWalletStorage(dbPath);\n const swapStorage = new SqliteSwapStorage(dbPath);\n\n return {\n walletStorage,\n swapStorage,\n close: () => {\n walletStorage.close();\n swapStorage.close();\n },\n };\n}\n"]}
|
package/dist/node.js
CHANGED
|
@@ -1,19 +1,158 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
import './chunk-PLDDJCW6.js';
|
|
2
|
+
import Database from 'better-sqlite3';
|
|
3
|
+
|
|
4
|
+
var SqliteWalletStorage = class {
|
|
5
|
+
#db;
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new SQLite wallet storage.
|
|
8
|
+
* @param dbPath - Path to the SQLite database file. Use ":memory:" for in-memory storage.
|
|
9
|
+
*/
|
|
10
|
+
constructor(dbPath) {
|
|
11
|
+
this.#db = new Database(dbPath);
|
|
12
|
+
this.#initSchema();
|
|
13
|
+
}
|
|
14
|
+
#initSchema() {
|
|
15
|
+
this.#db.exec(`
|
|
16
|
+
CREATE TABLE IF NOT EXISTS wallet (
|
|
17
|
+
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
18
|
+
mnemonic TEXT,
|
|
19
|
+
key_index INTEGER NOT NULL DEFAULT 0
|
|
20
|
+
);
|
|
21
|
+
INSERT OR IGNORE INTO wallet (id, key_index) VALUES (1, 0);
|
|
22
|
+
`);
|
|
23
|
+
}
|
|
24
|
+
async getMnemonic() {
|
|
25
|
+
const row = this.#db.prepare("SELECT mnemonic FROM wallet WHERE id = 1").get();
|
|
26
|
+
return row?.mnemonic ?? null;
|
|
27
|
+
}
|
|
28
|
+
async setMnemonic(mnemonic) {
|
|
29
|
+
this.#db.prepare("UPDATE wallet SET mnemonic = ? WHERE id = 1").run(mnemonic);
|
|
30
|
+
}
|
|
31
|
+
async getKeyIndex() {
|
|
32
|
+
const row = this.#db.prepare("SELECT key_index FROM wallet WHERE id = 1").get();
|
|
33
|
+
return row?.key_index ?? 0;
|
|
34
|
+
}
|
|
35
|
+
async setKeyIndex(index) {
|
|
36
|
+
this.#db.prepare("UPDATE wallet SET key_index = ? WHERE id = 1").run(index);
|
|
37
|
+
}
|
|
38
|
+
async incrementKeyIndex() {
|
|
39
|
+
const current = await this.getKeyIndex();
|
|
40
|
+
await this.setKeyIndex(current + 1);
|
|
41
|
+
return current;
|
|
42
|
+
}
|
|
43
|
+
async clear() {
|
|
44
|
+
this.#db.prepare("UPDATE wallet SET mnemonic = NULL, key_index = 0 WHERE id = 1").run();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Closes the database connection.
|
|
48
|
+
*/
|
|
49
|
+
close() {
|
|
50
|
+
this.#db.close();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
var SqliteSwapStorage = class {
|
|
54
|
+
#db;
|
|
55
|
+
/**
|
|
56
|
+
* Creates a new SQLite swap storage.
|
|
57
|
+
* @param dbPath - Path to the SQLite database file. Use ":memory:" for in-memory storage.
|
|
58
|
+
*/
|
|
59
|
+
constructor(dbPath) {
|
|
60
|
+
this.#db = new Database(dbPath);
|
|
61
|
+
this.#initSchema();
|
|
62
|
+
}
|
|
63
|
+
#initSchema() {
|
|
64
|
+
this.#db.exec(`
|
|
65
|
+
CREATE TABLE IF NOT EXISTS swaps (
|
|
66
|
+
swap_id TEXT PRIMARY KEY,
|
|
67
|
+
version INTEGER NOT NULL,
|
|
68
|
+
key_index INTEGER NOT NULL,
|
|
69
|
+
response TEXT NOT NULL,
|
|
70
|
+
public_key TEXT NOT NULL,
|
|
71
|
+
preimage TEXT NOT NULL,
|
|
72
|
+
preimage_hash TEXT NOT NULL,
|
|
73
|
+
secret_key TEXT NOT NULL,
|
|
74
|
+
stored_at INTEGER NOT NULL,
|
|
75
|
+
updated_at INTEGER NOT NULL
|
|
76
|
+
);
|
|
77
|
+
CREATE INDEX IF NOT EXISTS idx_swaps_stored_at ON swaps(stored_at);
|
|
78
|
+
`);
|
|
79
|
+
}
|
|
80
|
+
async get(swapId) {
|
|
81
|
+
const row = this.#db.prepare("SELECT * FROM swaps WHERE swap_id = ?").get(swapId);
|
|
82
|
+
if (!row) return null;
|
|
83
|
+
return this.#rowToStoredSwap(row);
|
|
84
|
+
}
|
|
85
|
+
async store(swap) {
|
|
86
|
+
this.#db.prepare(
|
|
87
|
+
`INSERT OR REPLACE INTO swaps
|
|
88
|
+
(swap_id, version, key_index, response, public_key, preimage, preimage_hash, secret_key, stored_at, updated_at)
|
|
89
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
|
90
|
+
).run(
|
|
91
|
+
swap.swapId,
|
|
92
|
+
swap.version,
|
|
93
|
+
swap.keyIndex,
|
|
94
|
+
JSON.stringify(swap.response),
|
|
95
|
+
swap.publicKey,
|
|
96
|
+
swap.preimage,
|
|
97
|
+
swap.preimageHash,
|
|
98
|
+
swap.secretKey,
|
|
99
|
+
swap.storedAt,
|
|
100
|
+
swap.updatedAt
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
async update(swapId, response) {
|
|
104
|
+
this.#db.prepare(
|
|
105
|
+
"UPDATE swaps SET response = ?, updated_at = ? WHERE swap_id = ?"
|
|
106
|
+
).run(JSON.stringify(response), Date.now(), swapId);
|
|
107
|
+
}
|
|
108
|
+
async delete(swapId) {
|
|
109
|
+
this.#db.prepare("DELETE FROM swaps WHERE swap_id = ?").run(swapId);
|
|
110
|
+
}
|
|
111
|
+
async list() {
|
|
112
|
+
const rows = this.#db.prepare("SELECT swap_id FROM swaps ORDER BY stored_at DESC").all();
|
|
113
|
+
return rows.map((r) => r.swap_id);
|
|
114
|
+
}
|
|
115
|
+
async getAll() {
|
|
116
|
+
const rows = this.#db.prepare("SELECT * FROM swaps ORDER BY stored_at DESC").all();
|
|
117
|
+
return rows.map((row) => this.#rowToStoredSwap(row));
|
|
118
|
+
}
|
|
119
|
+
async clear() {
|
|
120
|
+
this.#db.prepare("DELETE FROM swaps").run();
|
|
121
|
+
}
|
|
122
|
+
#rowToStoredSwap(row) {
|
|
123
|
+
return {
|
|
124
|
+
swapId: row.swap_id,
|
|
125
|
+
version: row.version,
|
|
126
|
+
keyIndex: row.key_index,
|
|
127
|
+
response: JSON.parse(row.response),
|
|
128
|
+
publicKey: row.public_key,
|
|
129
|
+
preimage: row.preimage,
|
|
130
|
+
preimageHash: row.preimage_hash,
|
|
131
|
+
secretKey: row.secret_key,
|
|
132
|
+
storedAt: row.stored_at,
|
|
133
|
+
updatedAt: row.updated_at
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Closes the database connection.
|
|
138
|
+
*/
|
|
139
|
+
close() {
|
|
140
|
+
this.#db.close();
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
function sqliteStorageFactory(dbPath) {
|
|
144
|
+
const walletStorage = new SqliteWalletStorage(dbPath);
|
|
145
|
+
const swapStorage = new SqliteSwapStorage(dbPath);
|
|
146
|
+
return {
|
|
147
|
+
walletStorage,
|
|
148
|
+
swapStorage,
|
|
149
|
+
close: () => {
|
|
150
|
+
walletStorage.close();
|
|
151
|
+
swapStorage.close();
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export { SqliteSwapStorage, SqliteWalletStorage, sqliteStorageFactory };
|
|
157
|
+
//# sourceMappingURL=node.js.map
|
|
19
158
|
//# sourceMappingURL=node.js.map
|
package/dist/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"sources":["../src/storage/sqlite.ts"],"names":[],"mappings":"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","file":"node.js","sourcesContent":["/**\n * SQLite storage implementations for Node.js.\n *\n * Uses better-sqlite3 for fast, synchronous SQLite access.\n */\n\nimport Database, { type Database as DatabaseType } from \"better-sqlite3\";\nimport type { GetSwapResponse } from \"../api/client.js\";\nimport type { SwapStorage, WalletStorage } from \"./index.js\";\nimport type { StoredSwap } from \"./types.js\";\n\n/**\n * SQLite-based wallet storage for Node.js.\n *\n * Stores mnemonic and key index in a SQLite database.\n *\n * @example\n * ```ts\n * const storage = new SqliteWalletStorage(\"./lendaswap.db\");\n * const client = await Client.builder()\n * .withSignerStorage(storage)\n * .build();\n * ```\n */\nexport class SqliteWalletStorage implements WalletStorage {\n readonly #db: DatabaseType;\n\n /**\n * Creates a new SQLite wallet storage.\n * @param dbPath - Path to the SQLite database file. Use \":memory:\" for in-memory storage.\n */\n constructor(dbPath: string) {\n this.#db = new Database(dbPath);\n this.#initSchema();\n }\n\n #initSchema(): void {\n this.#db.exec(`\n CREATE TABLE IF NOT EXISTS wallet (\n id INTEGER PRIMARY KEY CHECK (id = 1),\n mnemonic TEXT,\n key_index INTEGER NOT NULL DEFAULT 0\n );\n INSERT OR IGNORE INTO wallet (id, key_index) VALUES (1, 0);\n `);\n }\n\n async getMnemonic(): Promise<string | null> {\n const row = this.#db\n .prepare(\"SELECT mnemonic FROM wallet WHERE id = 1\")\n .get() as { mnemonic: string | null } | undefined;\n return row?.mnemonic ?? null;\n }\n\n async setMnemonic(mnemonic: string): Promise<void> {\n this.#db\n .prepare(\"UPDATE wallet SET mnemonic = ? WHERE id = 1\")\n .run(mnemonic);\n }\n\n async getKeyIndex(): Promise<number> {\n const row = this.#db\n .prepare(\"SELECT key_index FROM wallet WHERE id = 1\")\n .get() as { key_index: number } | undefined;\n return row?.key_index ?? 0;\n }\n\n async setKeyIndex(index: number): Promise<void> {\n this.#db.prepare(\"UPDATE wallet SET key_index = ? WHERE id = 1\").run(index);\n }\n\n async incrementKeyIndex(): Promise<number> {\n const current = await this.getKeyIndex();\n await this.setKeyIndex(current + 1);\n return current;\n }\n\n async clear(): Promise<void> {\n this.#db\n .prepare(\"UPDATE wallet SET mnemonic = NULL, key_index = 0 WHERE id = 1\")\n .run();\n }\n\n /**\n * Closes the database connection.\n */\n close(): void {\n this.#db.close();\n }\n}\n\n/**\n * SQLite-based swap storage for Node.js.\n *\n * Stores swap data including responses and cryptographic parameters.\n *\n * @example\n * ```ts\n * const storage = new SqliteSwapStorage(\"./lendaswap.db\");\n * const client = await Client.builder()\n * .withSwapStorage(storage)\n * .build();\n * ```\n */\nexport class SqliteSwapStorage implements SwapStorage {\n readonly #db: DatabaseType;\n\n /**\n * Creates a new SQLite swap storage.\n * @param dbPath - Path to the SQLite database file. Use \":memory:\" for in-memory storage.\n */\n constructor(dbPath: string) {\n this.#db = new Database(dbPath);\n this.#initSchema();\n }\n\n #initSchema(): void {\n this.#db.exec(`\n CREATE TABLE IF NOT EXISTS swaps (\n swap_id TEXT PRIMARY KEY,\n version INTEGER NOT NULL,\n key_index INTEGER NOT NULL,\n response TEXT NOT NULL,\n public_key TEXT NOT NULL,\n preimage TEXT NOT NULL,\n preimage_hash TEXT NOT NULL,\n secret_key TEXT NOT NULL,\n stored_at INTEGER NOT NULL,\n updated_at INTEGER NOT NULL\n );\n CREATE INDEX IF NOT EXISTS idx_swaps_stored_at ON swaps(stored_at);\n `);\n }\n\n async get(swapId: string): Promise<StoredSwap | null> {\n const row = this.#db\n .prepare(\"SELECT * FROM swaps WHERE swap_id = ?\")\n .get(swapId) as SqliteSwapRow | undefined;\n\n if (!row) return null;\n return this.#rowToStoredSwap(row);\n }\n\n async store(swap: StoredSwap): Promise<void> {\n this.#db\n .prepare(\n `INSERT OR REPLACE INTO swaps\n (swap_id, version, key_index, response, public_key, preimage, preimage_hash, secret_key, stored_at, updated_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n )\n .run(\n swap.swapId,\n swap.version,\n swap.keyIndex,\n JSON.stringify(swap.response),\n swap.publicKey,\n swap.preimage,\n swap.preimageHash,\n swap.secretKey,\n swap.storedAt,\n swap.updatedAt,\n );\n }\n\n async update(swapId: string, response: GetSwapResponse): Promise<void> {\n this.#db\n .prepare(\n \"UPDATE swaps SET response = ?, updated_at = ? WHERE swap_id = ?\",\n )\n .run(JSON.stringify(response), Date.now(), swapId);\n }\n\n async delete(swapId: string): Promise<void> {\n this.#db.prepare(\"DELETE FROM swaps WHERE swap_id = ?\").run(swapId);\n }\n\n async list(): Promise<string[]> {\n const rows = this.#db\n .prepare(\"SELECT swap_id FROM swaps ORDER BY stored_at DESC\")\n .all() as { swap_id: string }[];\n return rows.map((r) => r.swap_id);\n }\n\n async getAll(): Promise<StoredSwap[]> {\n const rows = this.#db\n .prepare(\"SELECT * FROM swaps ORDER BY stored_at DESC\")\n .all() as SqliteSwapRow[];\n return rows.map((row) => this.#rowToStoredSwap(row));\n }\n\n async clear(): Promise<void> {\n this.#db.prepare(\"DELETE FROM swaps\").run();\n }\n\n #rowToStoredSwap(row: SqliteSwapRow): StoredSwap {\n return {\n swapId: row.swap_id,\n version: row.version,\n keyIndex: row.key_index,\n response: JSON.parse(row.response) as GetSwapResponse,\n publicKey: row.public_key,\n preimage: row.preimage,\n preimageHash: row.preimage_hash,\n secretKey: row.secret_key,\n storedAt: row.stored_at,\n updatedAt: row.updated_at,\n };\n }\n\n /**\n * Closes the database connection.\n */\n close(): void {\n this.#db.close();\n }\n}\n\ninterface SqliteSwapRow {\n swap_id: string;\n version: number;\n key_index: number;\n response: string;\n public_key: string;\n preimage: string;\n preimage_hash: string;\n secret_key: string;\n stored_at: number;\n updated_at: number;\n}\n\n/**\n * Creates a storage factory that uses SQLite for both wallet and swap storage.\n *\n * @param dbPath - Path to the SQLite database file.\n * @returns A storage factory with shared database connection.\n *\n * @example\n * ```ts\n * const { walletStorage, swapStorage, close } = sqliteStorageFactory(\"./lendaswap.db\");\n * const client = await Client.builder()\n * .withSignerStorage(walletStorage)\n * .withSwapStorage(swapStorage)\n * .build();\n *\n * // When done:\n * close();\n * ```\n */\nexport function sqliteStorageFactory(dbPath: string): {\n walletStorage: SqliteWalletStorage;\n swapStorage: SqliteSwapStorage;\n close: () => void;\n} {\n const walletStorage = new SqliteWalletStorage(dbPath);\n const swapStorage = new SqliteSwapStorage(dbPath);\n\n return {\n walletStorage,\n swapStorage,\n close: () => {\n walletStorage.close();\n swapStorage.close();\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkPKDJZJMV_cjs = require('./chunk-PKDJZJMV.cjs');
|
|
4
|
+
require('./chunk-A4GKKURK.cjs');
|
|
5
|
+
require('./chunk-JBVKWKD4.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "encodeToCurve", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return chunkPKDJZJMV_cjs.encodeToCurve; }
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "hashToCurve", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return chunkPKDJZJMV_cjs.hashToCurve; }
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "schnorr", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return chunkPKDJZJMV_cjs.schnorr; }
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(exports, "secp256k1", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return chunkPKDJZJMV_cjs.secp256k1; }
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "secp256k1_hasher", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return chunkPKDJZJMV_cjs.secp256k1_hasher; }
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=secp256k1-PJCSE4N6.cjs.map
|
|
30
|
+
//# sourceMappingURL=secp256k1-PJCSE4N6.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"secp256k1-PJCSE4N6.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"secp256k1-VZNNVEPN.js"}
|
package/dist/tokens.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TokenId, TokenInfo } from "./api/client.js";
|
|
2
|
+
import type { Chain } from "./types/chain.js";
|
|
2
3
|
/** A token identifier: either a plain string TokenId or a TokenInfo object. */
|
|
3
4
|
export type TokenInput = TokenId;
|
|
4
5
|
/**
|
package/dist/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,+EAA+E;AAC/E,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AAIjC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,KAAK;IACpB,oFAAoF;IACpF,KAAK,EAAE,KAAK,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;CACjB;AAoBD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK;4BAEyC,KAAK;yBACX,KAAK;0BACH,KAAK;2BAGD,KAAK;4BACD,KAAK;4BACT,KAAK;2BAGL,KAAK;4BACD,KAAK;4BACT,KAAK;2BAGL,KAAK;4BACL,KAAK;4BAGL,KAAK;4BACD,KAAK;CAC1D,CAAC;AAKX,eAAO,MAAM,aAAa,EAAE,OAAe,CAAC;AAC5C,eAAO,MAAM,UAAU,EAAE,OAAe,CAAC;AACzC,eAAO,MAAM,WAAW,EAAE,OAAe,CAAC;AAG1C,eAAO,MAAM,kBAAkB,EAAE,SAMhC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAM7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,SAM9B,CAAC;AAmDF,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE7D;AAED,sDAAsD;AACtD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE1D;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE9D;AAED,yFAAyF;AACzF,wBAAgB,KAAK,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAG7E;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKjD;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CASV;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,4CAA4C;AAC5C,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAiB1C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAKzE;AAMD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,EAAE,CA2BjD;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,EAAE,CAsBlD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ChainConfigResponse` — per-EVM-chain metadata clients need that the
|
|
3
|
+
* protocol doesn't otherwise surface (BTC-pegged pivot today; HTLC and
|
|
4
|
+
* coordinator contract addresses planned). Static per session.
|
|
5
|
+
*
|
|
6
|
+
* Hand-written; identity-shaped with the OpenAPI codegen today.
|
|
7
|
+
*/
|
|
8
|
+
import type { Chain } from "./chain.js";
|
|
9
|
+
export interface TokenRef {
|
|
10
|
+
/** Lowercase hex, `0x`-prefixed. */
|
|
11
|
+
address: string;
|
|
12
|
+
decimals: number;
|
|
13
|
+
symbol: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ChainConfigEntry {
|
|
16
|
+
/** EVM chain id as a string (`"1"`, `"137"`, `"42161"`). */
|
|
17
|
+
chain: Chain;
|
|
18
|
+
/**
|
|
19
|
+
* The chain's BTC-pegged token (tBTC v2 on Arbitrum / Ethereum, WBTC
|
|
20
|
+
* on Polygon). Used as the DEX pivot when composing a quote for any
|
|
21
|
+
* BTC↔this-chain pair.
|
|
22
|
+
*/
|
|
23
|
+
btc_pegged_token: TokenRef;
|
|
24
|
+
/**
|
|
25
|
+
* How many `btc_pegged_token` units equal 1 BTC, as a decimal string.
|
|
26
|
+
* `"1"` for tBTC (1:1 redeemable); the live WBTC/BTC rate (~0.998) for
|
|
27
|
+
* WBTC. Used for the direct BTC↔pegged conversion (the leg with no DEX
|
|
28
|
+
* hop): multiply BTC sats by this, then scale by the token's decimals.
|
|
29
|
+
* Slow-moving but not static — refresh on the same cadence as a quote.
|
|
30
|
+
*/
|
|
31
|
+
btc_peg_rate: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ChainConfigResponse {
|
|
34
|
+
chains: ChainConfigEntry[];
|
|
35
|
+
}
|
|
36
|
+
export interface WireTokenRef {
|
|
37
|
+
address: string;
|
|
38
|
+
decimals: number;
|
|
39
|
+
symbol: string;
|
|
40
|
+
}
|
|
41
|
+
export interface WireChainConfigEntry {
|
|
42
|
+
chain: Chain;
|
|
43
|
+
btc_pegged_token: WireTokenRef;
|
|
44
|
+
btc_peg_rate: string;
|
|
45
|
+
}
|
|
46
|
+
export interface WireChainConfigResponse {
|
|
47
|
+
chains: WireChainConfigEntry[];
|
|
48
|
+
}
|
|
49
|
+
export declare function fromWireChainConfigResponse(wire: WireChainConfigResponse): ChainConfigResponse;
|
|
50
|
+
//# sourceMappingURL=chain-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-config.d.ts","sourceRoot":"","sources":["../../src/types/chain-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,QAAQ;IACvB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,KAAK,EAAE,KAAK,CAAC;IACb;;;;OAIG;IACH,gBAAgB,EAAE,QAAQ,CAAC;IAC3B;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAID,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,KAAK,CAAC;IACb,gBAAgB,EAAE,YAAY,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,uBAAuB,GAC5B,mBAAmB,CAYrB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chain identifier the API speaks.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the server's `crate::Chain` enum at its current wire encoding.
|
|
5
|
+
* Hand-written rather than re-exported from the OpenAPI types so the SDK
|
|
6
|
+
* surface stays decoupled from codegen — additions land here when the
|
|
7
|
+
* server starts speaking a new chain, and old binaries keep working
|
|
8
|
+
* because the union widens additively.
|
|
9
|
+
*/
|
|
10
|
+
export type Chain = "Arkade" | "Lightning" | "Bitcoin" | "137" | "1" | "42161";
|
|
11
|
+
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/types/chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,KAAK,GACb,QAAQ,GACR,WAAW,GACX,SAAS,GAGT,KAAK,GACL,GAAG,GACH,OAAO,CAAC"}
|