@lendasat/lendaswap-sdk-pure 0.3.0-preview.0 → 0.3.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -255
- 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 +4 -3
- package/dist/api/client.d.ts.map +1 -1
- package/dist/arkade-network.d.ts +8 -0
- package/dist/arkade-network.d.ts.map +1 -0
- package/dist/arkade.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/attestation.d.ts +62 -0
- package/dist/cctp/attestation.d.ts.map +1 -0
- package/dist/cctp/constants.d.ts +49 -0
- package/dist/cctp/constants.d.ts.map +1 -0
- package/dist/cctp/fee.d.ts +49 -0
- package/dist/cctp/fee.d.ts.map +1 -0
- package/dist/cctp/index.d.ts +14 -0
- package/dist/cctp/index.d.ts.map +1 -0
- package/dist/cctp/types.d.ts +76 -0
- package/dist/cctp/types.d.ts.map +1 -0
- package/dist/cctp/utils.d.ts +44 -0
- package/dist/cctp/utils.d.ts.map +1 -0
- package/dist/cctp-bridge/bridge.d.ts +62 -0
- package/dist/cctp-bridge/bridge.d.ts.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.d.ts +17 -0
- package/dist/cctp-bridge/index.d.ts.map +1 -0
- package/dist/cctp-bridge/index.js +52 -0
- package/dist/cctp-bridge/index.js.map +1 -0
- package/dist/cctp-inbound/approveAndBurn.d.ts +68 -0
- package/dist/cctp-inbound/approveAndBurn.d.ts.map +1 -0
- package/dist/cctp-inbound/burn.d.ts +51 -0
- package/dist/cctp-inbound/burn.d.ts.map +1 -0
- package/dist/cctp-inbound/chainMap.d.ts +65 -0
- package/dist/cctp-inbound/chainMap.d.ts.map +1 -0
- package/dist/cctp-inbound/client.d.ts +1580 -0
- package/dist/cctp-inbound/client.d.ts.map +1 -0
- package/dist/cctp-inbound/eip2612.d.ts +77 -0
- package/dist/cctp-inbound/eip2612.d.ts.map +1 -0
- package/dist/cctp-inbound/evmSignerAdapter.d.ts +28 -0
- package/dist/cctp-inbound/evmSignerAdapter.d.ts.map +1 -0
- package/dist/cctp-inbound/fundSwap.d.ts +94 -0
- package/dist/cctp-inbound/fundSwap.d.ts.map +1 -0
- package/dist/cctp-inbound/index.d.ts +36 -0
- package/dist/cctp-inbound/index.d.ts.map +1 -0
- package/dist/cctp-inbound/permit2.d.ts +33 -0
- package/dist/cctp-inbound/permit2.d.ts.map +1 -0
- package/dist/cctp-inbound/preflight.d.ts +41 -0
- package/dist/cctp-inbound/preflight.d.ts.map +1 -0
- package/dist/cctp-inbound/recover.d.ts +89 -0
- package/dist/cctp-inbound/recover.d.ts.map +1 -0
- package/dist/cctp-inbound/smartAccount.d.ts +1524 -0
- package/dist/cctp-inbound/smartAccount.d.ts.map +1 -0
- package/dist/cctp-inbound/submit.d.ts +80 -0
- package/dist/cctp-inbound/submit.d.ts.map +1 -0
- package/dist/cctp-inbound/types.d.ts +30 -0
- package/dist/cctp-inbound/types.d.ts.map +1 -0
- package/dist/cctp-inbound/userOp.d.ts +92 -0
- package/dist/cctp-inbound/userOp.d.ts.map +1 -0
- 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 +630 -42
- package/dist/client.d.ts.map +1 -1
- package/dist/compose-quote.d.ts +104 -0
- package/dist/compose-quote.d.ts.map +1 -0
- package/dist/create/arkade-to-lightning.d.ts.map +1 -1
- package/dist/create/arkade.d.ts +4 -1
- package/dist/create/arkade.d.ts.map +1 -1
- package/dist/create/bitcoin-to-arkade.d.ts +4 -1
- package/dist/create/bitcoin-to-arkade.d.ts.map +1 -1
- package/dist/create/bitcoin.d.ts +4 -1
- package/dist/create/bitcoin.d.ts.map +1 -1
- package/dist/create/evm-to-arkade.d.ts +4 -1
- package/dist/create/evm-to-arkade.d.ts.map +1 -1
- package/dist/create/evm-to-bitcoin.d.ts +4 -1
- package/dist/create/evm-to-bitcoin.d.ts.map +1 -1
- package/dist/create/evm-to-lightning.d.ts.map +1 -1
- package/dist/create/index.d.ts +2 -1
- package/dist/create/index.d.ts.map +1 -1
- package/dist/create/lightning-to-arkade.d.ts +5 -2
- package/dist/create/lightning-to-arkade.d.ts.map +1 -1
- package/dist/create/lightning.d.ts +4 -15
- package/dist/create/lightning.d.ts.map +1 -1
- package/dist/create/retry.d.ts +29 -0
- package/dist/create/retry.d.ts.map +1 -0
- package/dist/create/types.d.ts +136 -11
- package/dist/create/types.d.ts.map +1 -1
- package/dist/delegate.cjs +23 -0
- package/dist/delegate.cjs.map +1 -0
- package/dist/delegate.d.ts +9 -0
- package/dist/delegate.d.ts.map +1 -1
- package/dist/delegate.js +5 -283
- 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/escrow/index.d.ts +74 -0
- package/dist/escrow/index.d.ts.map +1 -0
- package/dist/esplora.d.ts +14 -0
- package/dist/esplora.d.ts.map +1 -1
- package/dist/evm/coordinator.d.ts +12 -0
- package/dist/evm/coordinator.d.ts.map +1 -1
- package/dist/evm/index.d.ts +2 -1
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/wallet.d.ts +210 -0
- package/dist/evm/wallet.d.ts.map +1 -0
- package/dist/generated/api.d.ts +1809 -245
- package/dist/generated/api.d.ts.map +1 -1
- package/dist/index.cjs +35958 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +14 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35804 -23
- package/dist/index.js.map +1 -1
- package/dist/logging.d.ts +44 -0
- package/dist/logging.d.ts.map +1 -0
- 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/redeem/arkade.d.ts +6 -0
- package/dist/redeem/arkade.d.ts.map +1 -1
- package/dist/redeem/gasless.d.ts +19 -1
- package/dist/redeem/gasless.d.ts.map +1 -1
- package/dist/redeem/index.d.ts +2 -1
- package/dist/redeem/index.d.ts.map +1 -1
- package/dist/redeem/types.d.ts +3 -3
- package/dist/redeem/types.d.ts.map +1 -1
- package/dist/redeem/userop-claim.d.ts +44 -0
- package/dist/redeem/userop-claim.d.ts.map +1 -0
- package/dist/refund/arkade.d.ts +5 -0
- package/dist/refund/arkade.d.ts.map +1 -1
- package/dist/refund/{collab.d.ts → collab-arkade-evm.d.ts} +6 -6
- package/dist/refund/collab-arkade-evm.d.ts.map +1 -0
- package/dist/refund/collab-arkade-lightning.d.ts +64 -0
- package/dist/refund/collab-arkade-lightning.d.ts.map +1 -0
- package/dist/refund/index.d.ts +3 -2
- package/dist/refund/index.d.ts.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/signer/index.d.ts +39 -4
- package/dist/signer/index.d.ts.map +1 -1
- package/dist/storage/types.d.ts +1 -1
- package/dist/tokens.d.ts +135 -7
- 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 +24 -0
- package/dist/types/chain.d.ts.map +1 -0
- package/dist/types/dex-quote.d.ts +139 -0
- package/dist/types/dex-quote.d.ts.map +1 -0
- package/dist/types/index.d.ts +16 -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/referral-fee.d.ts +25 -0
- package/dist/types/referral-fee.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/usd-price.d.ts +8 -1
- package/dist/usd-price.d.ts.map +1 -1
- package/dist/usdt0-bridge/constants.d.ts +41 -0
- package/dist/usdt0-bridge/constants.d.ts.map +1 -0
- package/dist/usdt0-bridge/index.d.ts +10 -2
- package/dist/usdt0-bridge/index.d.ts.map +1 -1
- package/dist/usdt0-bridge/tracking.d.ts +61 -0
- package/dist/usdt0-bridge/tracking.d.ts.map +1 -0
- package/dist/usdt0-bridge/utils.d.ts +30 -0
- package/dist/usdt0-bridge/utils.d.ts.map +1 -0
- package/dist/version.d.ts +4 -0
- package/dist/version.d.ts.map +1 -0
- 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/dist/ws.d.ts +21 -0
- package/dist/ws.d.ts.map +1 -0
- package/package.json +60 -24
- package/dist/api/client.js +0 -12
- package/dist/api/client.js.map +0 -1
- package/dist/arkade.js +0 -68
- package/dist/arkade.js.map +0 -1
- package/dist/client.js +0 -2817
- package/dist/client.js.map +0 -1
- package/dist/create/arkade-to-lightning.js +0 -65
- package/dist/create/arkade-to-lightning.js.map +0 -1
- package/dist/create/arkade.js +0 -76
- package/dist/create/arkade.js.map +0 -1
- package/dist/create/bitcoin-to-arkade.js +0 -69
- package/dist/create/bitcoin-to-arkade.js.map +0 -1
- package/dist/create/bitcoin.js +0 -67
- package/dist/create/bitcoin.js.map +0 -1
- package/dist/create/evm-to-arkade.js +0 -74
- package/dist/create/evm-to-arkade.js.map +0 -1
- package/dist/create/evm-to-bitcoin.js +0 -76
- package/dist/create/evm-to-bitcoin.js.map +0 -1
- package/dist/create/evm-to-lightning.js +0 -77
- package/dist/create/evm-to-lightning.js.map +0 -1
- package/dist/create/index.js +0 -20
- package/dist/create/index.js.map +0 -1
- package/dist/create/lightning-to-arkade.js +0 -62
- package/dist/create/lightning-to-arkade.js.map +0 -1
- package/dist/create/lightning.js +0 -72
- package/dist/create/lightning.js.map +0 -1
- package/dist/create/types.js +0 -5
- package/dist/create/types.js.map +0 -1
- package/dist/esplora.js +0 -47
- package/dist/esplora.js.map +0 -1
- package/dist/evm/coordinator.js +0 -715
- 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 -9
- 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/generated/api.js +0 -6
- package/dist/generated/api.js.map +0 -1
- package/dist/price-calculations.js +0 -135
- package/dist/price-calculations.js.map +0 -1
- package/dist/price-feed.d.ts +0 -124
- package/dist/price-feed.d.ts.map +0 -1
- package/dist/price-feed.js +0 -178
- package/dist/price-feed.js.map +0 -1
- package/dist/redeem/arkade.js +0 -217
- 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 -71
- 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 -212
- package/dist/refund/arkade.js.map +0 -1
- package/dist/refund/collab.d.ts.map +0 -1
- package/dist/refund/collab.js +0 -339
- package/dist/refund/collab.js.map +0 -1
- package/dist/refund/index.js +0 -11
- 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 -199
- package/dist/signer/index.js.map +0 -1
- package/dist/src/api/client.d.ts +0 -31
- package/dist/src/api/client.d.ts.map +0 -1
- package/dist/src/api/client.js +0 -12
- package/dist/src/api/client.js.map +0 -1
- package/dist/src/arkade.d.ts +0 -36
- package/dist/src/arkade.d.ts.map +0 -1
- package/dist/src/arkade.js +0 -68
- package/dist/src/arkade.js.map +0 -1
- package/dist/src/client.d.ts +0 -760
- package/dist/src/client.d.ts.map +0 -1
- package/dist/src/client.js +0 -2169
- package/dist/src/client.js.map +0 -1
- package/dist/src/create/arkade.d.ts +0 -34
- package/dist/src/create/arkade.d.ts.map +0 -1
- package/dist/src/create/arkade.js +0 -76
- package/dist/src/create/arkade.js.map +0 -1
- package/dist/src/create/bitcoin-to-arkade.d.ts +0 -36
- package/dist/src/create/bitcoin-to-arkade.d.ts.map +0 -1
- package/dist/src/create/bitcoin-to-arkade.js +0 -69
- package/dist/src/create/bitcoin-to-arkade.js.map +0 -1
- package/dist/src/create/bitcoin.d.ts +0 -31
- package/dist/src/create/bitcoin.d.ts.map +0 -1
- package/dist/src/create/bitcoin.js +0 -67
- package/dist/src/create/bitcoin.js.map +0 -1
- package/dist/src/create/evm-to-arkade.d.ts +0 -34
- package/dist/src/create/evm-to-arkade.d.ts.map +0 -1
- package/dist/src/create/evm-to-arkade.js +0 -69
- package/dist/src/create/evm-to-arkade.js.map +0 -1
- package/dist/src/create/evm-to-bitcoin.d.ts +0 -35
- package/dist/src/create/evm-to-bitcoin.d.ts.map +0 -1
- package/dist/src/create/evm-to-bitcoin.js +0 -71
- package/dist/src/create/evm-to-bitcoin.js.map +0 -1
- package/dist/src/create/evm-to-lightning.d.ts +0 -34
- package/dist/src/create/evm-to-lightning.d.ts.map +0 -1
- package/dist/src/create/evm-to-lightning.js +0 -66
- package/dist/src/create/evm-to-lightning.js.map +0 -1
- package/dist/src/create/index.d.ts +0 -19
- package/dist/src/create/index.d.ts.map +0 -1
- package/dist/src/create/index.js +0 -18
- package/dist/src/create/index.js.map +0 -1
- package/dist/src/create/lightning.d.ts +0 -31
- package/dist/src/create/lightning.d.ts.map +0 -1
- package/dist/src/create/lightning.js +0 -72
- package/dist/src/create/lightning.js.map +0 -1
- package/dist/src/create/types.d.ts +0 -247
- package/dist/src/create/types.d.ts.map +0 -1
- package/dist/src/create/types.js +0 -5
- package/dist/src/create/types.js.map +0 -1
- package/dist/src/delegate.d.ts +0 -62
- package/dist/src/delegate.d.ts.map +0 -1
- package/dist/src/delegate.js +0 -284
- package/dist/src/delegate.js.map +0 -1
- package/dist/src/esplora.d.ts +0 -41
- package/dist/src/esplora.d.ts.map +0 -1
- package/dist/src/esplora.js +0 -47
- package/dist/src/esplora.js.map +0 -1
- package/dist/src/evm/coordinator.d.ts +0 -247
- package/dist/src/evm/coordinator.d.ts.map +0 -1
- package/dist/src/evm/coordinator.js +0 -414
- package/dist/src/evm/coordinator.js.map +0 -1
- package/dist/src/evm/htlc.d.ts +0 -238
- package/dist/src/evm/htlc.d.ts.map +0 -1
- package/dist/src/evm/htlc.js +0 -278
- package/dist/src/evm/htlc.js.map +0 -1
- package/dist/src/evm/index.d.ts +0 -9
- package/dist/src/evm/index.d.ts.map +0 -1
- package/dist/src/evm/index.js +0 -9
- package/dist/src/evm/index.js.map +0 -1
- package/dist/src/evm/signing.d.ts +0 -30
- package/dist/src/evm/signing.d.ts.map +0 -1
- package/dist/src/evm/signing.js +0 -91
- package/dist/src/evm/signing.js.map +0 -1
- package/dist/src/generated/api.d.ts +0 -2736
- package/dist/src/generated/api.d.ts.map +0 -1
- package/dist/src/generated/api.js +0 -6
- package/dist/src/generated/api.js.map +0 -1
- package/dist/src/index.d.ts +0 -18
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -24
- package/dist/src/index.js.map +0 -1
- package/dist/src/node.d.ts +0 -19
- package/dist/src/node.d.ts.map +0 -1
- package/dist/src/node.js +0 -19
- package/dist/src/node.js.map +0 -1
- package/dist/src/price-calculations.d.ts +0 -109
- package/dist/src/price-calculations.d.ts.map +0 -1
- package/dist/src/price-calculations.js +0 -135
- package/dist/src/price-calculations.js.map +0 -1
- package/dist/src/redeem/arkade.d.ts +0 -65
- package/dist/src/redeem/arkade.d.ts.map +0 -1
- package/dist/src/redeem/arkade.js +0 -217
- package/dist/src/redeem/arkade.js.map +0 -1
- package/dist/src/redeem/ethereum.d.ts +0 -52
- package/dist/src/redeem/ethereum.d.ts.map +0 -1
- package/dist/src/redeem/ethereum.js +0 -206
- package/dist/src/redeem/ethereum.js.map +0 -1
- package/dist/src/redeem/gasless.d.ts +0 -41
- package/dist/src/redeem/gasless.d.ts.map +0 -1
- package/dist/src/redeem/gasless.js +0 -71
- package/dist/src/redeem/gasless.js.map +0 -1
- package/dist/src/redeem/index.d.ts +0 -49
- package/dist/src/redeem/index.d.ts.map +0 -1
- package/dist/src/redeem/index.js +0 -189
- package/dist/src/redeem/index.js.map +0 -1
- package/dist/src/redeem/types.d.ts +0 -126
- package/dist/src/redeem/types.d.ts.map +0 -1
- package/dist/src/redeem/types.js +0 -36
- package/dist/src/redeem/types.js.map +0 -1
- package/dist/src/refund/arkade.d.ts +0 -62
- package/dist/src/refund/arkade.d.ts.map +0 -1
- package/dist/src/refund/arkade.js +0 -212
- package/dist/src/refund/arkade.js.map +0 -1
- package/dist/src/refund/index.d.ts +0 -10
- package/dist/src/refund/index.d.ts.map +0 -1
- package/dist/src/refund/index.js +0 -10
- package/dist/src/refund/index.js.map +0 -1
- package/dist/src/refund/onchain.d.ts +0 -137
- package/dist/src/refund/onchain.d.ts.map +0 -1
- package/dist/src/refund/onchain.js +0 -366
- package/dist/src/refund/onchain.js.map +0 -1
- package/dist/src/signer/index.d.ts +0 -106
- package/dist/src/signer/index.d.ts.map +0 -1
- package/dist/src/signer/index.js +0 -179
- package/dist/src/signer/index.js.map +0 -1
- package/dist/src/storage/idb.d.ts +0 -70
- package/dist/src/storage/idb.d.ts.map +0 -1
- package/dist/src/storage/idb.js +0 -236
- package/dist/src/storage/idb.js.map +0 -1
- package/dist/src/storage/index.d.ts +0 -152
- package/dist/src/storage/index.d.ts.map +0 -1
- package/dist/src/storage/index.js +0 -98
- package/dist/src/storage/index.js.map +0 -1
- package/dist/src/storage/sqlite.d.ts +0 -95
- package/dist/src/storage/sqlite.d.ts.map +0 -1
- package/dist/src/storage/sqlite.js +0 -206
- package/dist/src/storage/sqlite.js.map +0 -1
- package/dist/src/storage/types.d.ts +0 -57
- package/dist/src/storage/types.d.ts.map +0 -1
- package/dist/src/storage/types.js +0 -9
- package/dist/src/storage/types.js.map +0 -1
- package/dist/src/tokens.d.ts +0 -29
- package/dist/src/tokens.d.ts.map +0 -1
- package/dist/src/tokens.js +0 -89
- package/dist/src/tokens.js.map +0 -1
- package/dist/src/usd-price.d.ts +0 -34
- package/dist/src/usd-price.d.ts.map +0 -1
- package/dist/src/usd-price.js +0 -83
- package/dist/src/usd-price.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/tests/api-client.test.d.ts +0 -2
- package/dist/tests/api-client.test.d.ts.map +0 -1
- package/dist/tests/api-client.test.js +0 -86
- package/dist/tests/api-client.test.js.map +0 -1
- package/dist/tests/client.test.d.ts +0 -2
- package/dist/tests/client.test.d.ts.map +0 -1
- package/dist/tests/client.test.js +0 -150
- package/dist/tests/client.test.js.map +0 -1
- package/dist/tests/index.test.d.ts +0 -2
- package/dist/tests/index.test.d.ts.map +0 -1
- package/dist/tests/index.test.js +0 -8
- package/dist/tests/index.test.js.map +0 -1
- package/dist/tests/onchain-refund.test.d.ts +0 -2
- package/dist/tests/onchain-refund.test.d.ts.map +0 -1
- package/dist/tests/onchain-refund.test.js +0 -279
- package/dist/tests/onchain-refund.test.js.map +0 -1
- package/dist/tests/signer.test.d.ts +0 -2
- package/dist/tests/signer.test.d.ts.map +0 -1
- package/dist/tests/signer.test.js +0 -92
- package/dist/tests/signer.test.js.map +0 -1
- package/dist/tests/sqlite-storage.test.d.ts +0 -2
- package/dist/tests/sqlite-storage.test.d.ts.map +0 -1
- package/dist/tests/sqlite-storage.test.js +0 -160
- package/dist/tests/sqlite-storage.test.js.map +0 -1
- package/dist/tests/storage.test.d.ts +0 -2
- package/dist/tests/storage.test.d.ts.map +0 -1
- package/dist/tests/storage.test.js +0 -184
- package/dist/tests/storage.test.js.map +0 -1
- package/dist/tokens.js +0 -89
- package/dist/tokens.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/usd-price.js +0 -83
- package/dist/usd-price.js.map +0 -1
- package/dist/usdt0-bridge/bridge.d.ts +0 -82
- package/dist/usdt0-bridge/bridge.d.ts.map +0 -1
- package/dist/usdt0-bridge/bridge.js +0 -56
- package/dist/usdt0-bridge/bridge.js.map +0 -1
- package/dist/usdt0-bridge/chains.d.ts +0 -41
- package/dist/usdt0-bridge/chains.d.ts.map +0 -1
- package/dist/usdt0-bridge/chains.js +0 -117
- package/dist/usdt0-bridge/chains.js.map +0 -1
- package/dist/usdt0-bridge/index.js +0 -3
- package/dist/usdt0-bridge/index.js.map +0 -1
- package/dist/usdt0-bridge/layerzero-tracker.d.ts +0 -34
- package/dist/usdt0-bridge/layerzero-tracker.d.ts.map +0 -1
- package/dist/usdt0-bridge/layerzero-tracker.js +0 -86
- package/dist/usdt0-bridge/layerzero-tracker.js.map +0 -1
- package/dist/usdt0-bridge/oft-abi.d.ts +0 -145
- package/dist/usdt0-bridge/oft-abi.d.ts.map +0 -1
- package/dist/usdt0-bridge/oft-abi.js +0 -117
- package/dist/usdt0-bridge/oft-abi.js.map +0 -1
package/README.md
CHANGED
|
@@ -15,28 +15,19 @@ This SDK supports the following swap directions:
|
|
|
15
15
|
|
|
16
16
|
### BTC to EVM
|
|
17
17
|
|
|
18
|
-
| Source
|
|
19
|
-
|
|
|
20
|
-
| Lightning
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
| Arkade | Polygon (USDC, USDT) | Supported |
|
|
24
|
-
| Arkade | Arbitrum (USDC, USDT) | Supported |
|
|
25
|
-
| Arkade | Ethereum (USDC, USDT, WBTC) | Supported |
|
|
26
|
-
| On-chain BTC | Polygon (USDC, USDT) | Supported |
|
|
27
|
-
| On-chain BTC | Arbitrum (USDC, USDT) | Supported |
|
|
28
|
-
| On-chain BTC | Ethereum (USDC, USDT, WBTC) | Supported |
|
|
18
|
+
| Source | Target | Status |
|
|
19
|
+
| --------- | --------------------------- | --------- |
|
|
20
|
+
| Lightning | Ethereum, Polygon, Arbitrum | Supported |
|
|
21
|
+
| Arkade | Ethereum, Polygon, Arbitrum | Supported |
|
|
22
|
+
| On-chain | Ethereum, Polygon, Arbitrum | Supported |
|
|
29
23
|
|
|
30
24
|
### EVM to BTC
|
|
31
25
|
|
|
32
26
|
| Source | Target | Status |
|
|
33
27
|
| --------------------------- | --------- | --------- |
|
|
34
|
-
| Polygon
|
|
35
|
-
| Polygon
|
|
36
|
-
|
|
|
37
|
-
| Arbitrum (USDC, USDT) | Lightning | Supported |
|
|
38
|
-
| Ethereum (USDC, USDT, WBTC) | Arkade | Supported |
|
|
39
|
-
| Ethereum (USDC, USDT, WBTC) | Lightning | Supported |
|
|
28
|
+
| Polygon, Arbitrus, Ethereum | Arkade | Supported |
|
|
29
|
+
| Polygon, Arbitrus, Ethereum | Lightning | Supported |
|
|
30
|
+
| Polygon, Arbitrus, Ethereum | On-chain | Supported |
|
|
40
31
|
|
|
41
32
|
**Refund support:**
|
|
42
33
|
|
|
@@ -56,7 +47,6 @@ import { Client, IdbWalletStorage, IdbSwapStorage } from "@lendasat/lendaswap-sd
|
|
|
56
47
|
const client = await Client.builder()
|
|
57
48
|
.withSignerStorage(new IdbWalletStorage())
|
|
58
49
|
.withSwapStorage(new IdbSwapStorage())
|
|
59
|
-
.withApiKey("your-api-key")
|
|
60
50
|
.build();
|
|
61
51
|
|
|
62
52
|
// Or import an existing wallet
|
|
@@ -70,290 +60,182 @@ const client = await Client.builder()
|
|
|
70
60
|
const mnemonic = client.getMnemonic();
|
|
71
61
|
```
|
|
72
62
|
|
|
73
|
-
###
|
|
63
|
+
### API Status
|
|
74
64
|
|
|
75
65
|
```typescript
|
|
76
|
-
|
|
77
|
-
|
|
66
|
+
const status = await client.getStatus();
|
|
67
|
+
console.log(status.healthy, status.services.bitcoin.healthy);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Quotes
|
|
78
71
|
|
|
79
|
-
|
|
80
|
-
|
|
72
|
+
```typescript
|
|
73
|
+
import { Asset } from "@lendasat/lendaswap-sdk-pure";
|
|
74
|
+
|
|
75
|
+
const quote = await client.getQuote({
|
|
76
|
+
sourceChain: Asset.BTC_ARKADE.chain, // "Arkade"
|
|
77
|
+
sourceToken: Asset.BTC_ARKADE.tokenId, // "btc"
|
|
78
|
+
targetChain: Asset.USDC_POLYGON.chain, // "137"
|
|
79
|
+
targetToken: Asset.USDC_POLYGON.tokenId, // "0x3c499c..."
|
|
80
|
+
sourceAmount: 100_000, // sats
|
|
81
|
+
});
|
|
81
82
|
console.log(`You'll receive: ${quote.target_amount} USDC`);
|
|
82
83
|
```
|
|
83
84
|
|
|
84
85
|
### Create a Swap
|
|
85
86
|
|
|
86
|
-
|
|
87
|
+
Use `createSwap` for all swap directions. The SDK routes automatically based on the source/target asset:
|
|
87
88
|
|
|
88
89
|
```typescript
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
90
|
+
// BTC → EVM: Arkade to USDC on Polygon
|
|
91
|
+
const result = await client.createSwap({
|
|
92
|
+
source: Asset.BTC_ARKADE,
|
|
93
|
+
target: Asset.USDC_POLYGON,
|
|
94
|
+
sourceAmount: 100_000, // sats
|
|
95
|
+
targetAddress: "0x...", // your EVM address
|
|
94
96
|
});
|
|
95
97
|
|
|
96
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
98
|
+
// EVM → BTC: USDC on Polygon to Arkade
|
|
99
|
+
const result = await client.createSwap({
|
|
100
|
+
source: Asset.USDC_POLYGON,
|
|
101
|
+
target: Asset.BTC_ARKADE,
|
|
102
|
+
sourceAmount: 10_000_000, // 10 USDC (6 decimals)
|
|
103
|
+
targetAddress: "ark1...", // your Arkade address
|
|
104
|
+
userAddress: "0x...", // your EVM wallet address (required for EVM-sourced swaps)
|
|
105
|
+
});
|
|
102
106
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
evmChainId: 137,
|
|
109
|
-
sourceAmount: 100000, // sats
|
|
107
|
+
// Or use any token by chain + contract address
|
|
108
|
+
const result = await client.createSwap({
|
|
109
|
+
source: {chain: "42161", tokenId: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"}, // USDC on Arbitrum
|
|
110
|
+
target: Asset.BTC_LIGHTNING,
|
|
111
|
+
targetAddress: "lnbc...", // BOLT11 invoice
|
|
110
112
|
});
|
|
111
113
|
|
|
112
|
-
|
|
113
|
-
console.log(`Send BTC to: ${result.response.btc_vhtlc_address}`);
|
|
114
|
-
console.log(`Swap ID: ${result.response.id}`);
|
|
115
|
-
|
|
116
|
-
// Once the server has funded the EVM HTLC (status: "serverfunded"),
|
|
117
|
-
// claim gaslessly — the server submits the tx on your behalf:
|
|
118
|
-
const claimResult = await client.claimViaGasless(
|
|
119
|
-
result.response.id,
|
|
120
|
-
async (digest) => {
|
|
121
|
-
// Sign the EIP-712 digest with your EVM wallet
|
|
122
|
-
// e.g. using ethers.js: wallet.signMessage(ethers.getBytes(digest))
|
|
123
|
-
return { v: 27, r: "0x...", s: "0x..." };
|
|
124
|
-
},
|
|
125
|
-
"0x1234567890abcdef1234567890abcdef12345678", // destination
|
|
126
|
-
);
|
|
127
|
-
console.log(`Claimed! TX: ${claimResult.txHash}`);
|
|
114
|
+
const swapId = result.response.id;
|
|
128
115
|
```
|
|
129
116
|
|
|
130
|
-
|
|
117
|
+
### Fund EVM-Sourced Swaps
|
|
131
118
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
targetAddress: "0x1234567890abcdef1234567890abcdef12345678",
|
|
135
|
-
tokenAddress: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359", // USDC on Polygon
|
|
136
|
-
evmChainId: 137,
|
|
137
|
-
sourceAmount: 100000, // sats
|
|
138
|
-
});
|
|
119
|
+
EVM-sourced swaps need to be funded after creation. The SDK handles the full Permit2 flow (allowance check, ERC-20
|
|
120
|
+
approval, EIP-712 signing, transaction submission) in a single call:
|
|
139
121
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
122
|
+
```typescript
|
|
123
|
+
// Fund with an external wallet
|
|
124
|
+
const {txHash} = await client.fundSwap(swapId, signer);
|
|
143
125
|
```
|
|
144
126
|
|
|
145
|
-
|
|
127
|
+
### The EvmSigner Interface
|
|
146
128
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
targetAddress: "ark1...", // Your Arkade address
|
|
150
|
-
tokenAddress: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359", // USDC on Polygon
|
|
151
|
-
evmChainId: 137,
|
|
152
|
-
userAddress: "0x...", // Your EVM wallet address
|
|
153
|
-
sourceAmount: 100000000n, // Amount in token's smallest unit (e.g., 6 decimals for USDC)
|
|
154
|
-
});
|
|
129
|
+
`EvmSigner` is a minimal wallet abstraction. Implement it once for your stack — the SDK stays free of EVM library
|
|
130
|
+
dependencies:
|
|
155
131
|
|
|
156
|
-
|
|
157
|
-
|
|
132
|
+
```typescript
|
|
133
|
+
import type { EvmSigner } from "@lendasat/lendaswap-sdk-pure";
|
|
158
134
|
```
|
|
159
135
|
|
|
160
|
-
|
|
136
|
+
**wagmi / viem:**
|
|
161
137
|
|
|
162
138
|
```typescript
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
139
|
+
import { createPublicClient, http } from "viem";
|
|
140
|
+
|
|
141
|
+
const publicClient = createPublicClient({chain, transport: http()});
|
|
142
|
+
|
|
143
|
+
const signer: EvmSigner = {
|
|
144
|
+
address: walletClient.account.address,
|
|
145
|
+
chainId: chain.id,
|
|
146
|
+
signTypedData: (td) =>
|
|
147
|
+
walletClient.signTypedData({...td, account: walletClient.account}),
|
|
148
|
+
sendTransaction: (tx) =>
|
|
149
|
+
walletClient.sendTransaction({to: tx.to, data: tx.data, chain, gas: tx.gas}),
|
|
150
|
+
waitForReceipt: (hash) =>
|
|
151
|
+
publicClient.waitForTransactionReceipt({hash}).then((r) => ({
|
|
152
|
+
status: r.status,
|
|
153
|
+
blockNumber: r.blockNumber,
|
|
154
|
+
transactionHash: r.transactionHash,
|
|
155
|
+
})),
|
|
156
|
+
getTransaction: (hash) =>
|
|
157
|
+
publicClient.getTransaction({hash}).then((tx) => ({
|
|
158
|
+
to: tx.to ?? null, input: tx.input, from: tx.from,
|
|
159
|
+
})),
|
|
160
|
+
call: (tx) =>
|
|
161
|
+
publicClient.call({to: tx.to, data: tx.data, account: tx.from, blockNumber: tx.blockNumber})
|
|
162
|
+
.then((r) => r.data ?? "0x"),
|
|
163
|
+
};
|
|
172
164
|
```
|
|
173
165
|
|
|
174
|
-
|
|
166
|
+
**ethers.js v6:**
|
|
175
167
|
|
|
176
168
|
```typescript
|
|
177
|
-
const
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
})
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
169
|
+
const signer: EvmSigner = {
|
|
170
|
+
address: await wallet.getAddress(),
|
|
171
|
+
chainId: Number((await wallet.provider.getNetwork()).chainId),
|
|
172
|
+
signTypedData: (td) =>
|
|
173
|
+
wallet.signTypedData(td.domain, td.types, td.message),
|
|
174
|
+
sendTransaction: (tx) =>
|
|
175
|
+
wallet.sendTransaction({to: tx.to, data: tx.data, gasLimit: tx.gas})
|
|
176
|
+
.then((r) => r.hash),
|
|
177
|
+
waitForReceipt: (hash) =>
|
|
178
|
+
wallet.provider.waitForTransaction(hash).then((r) => ({
|
|
179
|
+
status: r.status === 1 ? "success" : "reverted",
|
|
180
|
+
blockNumber: BigInt(r.blockNumber),
|
|
181
|
+
transactionHash: r.hash,
|
|
182
|
+
})
|
|
183
|
+
),
|
|
184
|
+
getTransaction: (hash) =>
|
|
185
|
+
wallet.provider.getTransaction(hash).then((tx) => ({
|
|
186
|
+
to: tx.to, input: tx.data, from: tx.from,
|
|
187
|
+
})),
|
|
188
|
+
call: (tx) =>
|
|
189
|
+
wallet.provider.call({to: tx.to, data: tx.data, from: tx.from, blockTag: tx.blockNumber}),
|
|
190
|
+
};
|
|
187
191
|
```
|
|
188
192
|
|
|
189
193
|
### Monitor Swap Status
|
|
190
194
|
|
|
191
195
|
```typescript
|
|
192
|
-
|
|
193
|
-
const swap = await client.getSwap("swap-uuid");
|
|
196
|
+
const swap = await client.getSwap(swapId);
|
|
194
197
|
console.log(`Status: ${swap.status}`);
|
|
195
198
|
|
|
196
|
-
// Status flow: pending
|
|
199
|
+
// Status flow: pending → clientfunded → serverfunded → clientredeemed → serverredeemed
|
|
197
200
|
```
|
|
198
201
|
|
|
199
|
-
### Claim
|
|
202
|
+
### Claim
|
|
200
203
|
|
|
201
|
-
|
|
204
|
+
For BTC-to-EVM swaps, once the server has funded the EVM HTLC (`serverfunded`), claim your tokens:
|
|
202
205
|
|
|
203
206
|
```typescript
|
|
204
|
-
|
|
205
|
-
const claimResult = await client.claimViaGasless(
|
|
206
|
-
"swap-uuid",
|
|
207
|
-
async (digest) => {
|
|
208
|
-
// Sign the EIP-712 digest with your EVM wallet
|
|
209
|
-
return { v: 27, r: "0x...", s: "0x..." };
|
|
210
|
-
},
|
|
211
|
-
"0xYourDestinationAddress",
|
|
212
|
-
);
|
|
213
|
-
console.log(`Claim tx: ${claimResult.txHash}`);
|
|
214
|
-
|
|
215
|
-
// For other swap types (Lightning/On-chain to EVM), use the existing claim:
|
|
216
|
-
const result = await client.claim("swap-uuid");
|
|
207
|
+
const result = await client.claim(swapId);
|
|
217
208
|
```
|
|
218
209
|
|
|
219
|
-
### Refund
|
|
210
|
+
### Refund
|
|
211
|
+
|
|
212
|
+
If a swap times out, refund your funds:
|
|
220
213
|
|
|
221
214
|
```typescript
|
|
222
|
-
//
|
|
223
|
-
const
|
|
224
|
-
destinationAddress: "bc1q...",
|
|
225
|
-
feeRateSatPerVb: 5,
|
|
215
|
+
// BTC swaps (on-chain or Arkade)
|
|
216
|
+
const result = await client.refundSwap(swapId, {
|
|
217
|
+
destinationAddress: "bc1q...", // or "ark1..."
|
|
226
218
|
});
|
|
227
219
|
|
|
228
|
-
//
|
|
229
|
-
const
|
|
230
|
-
destinationAddress: "ark1...", // Your Arkade address
|
|
231
|
-
});
|
|
232
|
-
```
|
|
220
|
+
// EVM swaps — manual refund (after timelock expires, user pays gas)
|
|
221
|
+
const {txHash} = await client.refundEvmWithSigner(swapId, signer, "direct");
|
|
233
222
|
|
|
234
|
-
|
|
223
|
+
// EVM swaps — collaborative refund (instant, gasless, server cosigns)
|
|
224
|
+
const {txHash} = await client.collabRefundEvmWithSigner(swapId, signer, "swap-back");
|
|
235
225
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
**Storage Types:**
|
|
240
|
-
|
|
241
|
-
- `WalletStorage` - Stores mnemonic and key derivation index
|
|
242
|
-
- `SwapStorage` - Stores `StoredSwap` records (API response + client-side params)
|
|
243
|
-
|
|
244
|
-
**StoredSwap Structure:**
|
|
245
|
-
|
|
246
|
-
Each swap is stored with both the API response and client-side parameters needed for claim/refund operations:
|
|
247
|
-
|
|
248
|
-
```typescript
|
|
249
|
-
interface StoredSwap {
|
|
250
|
-
version: number; // Schema version for migrations
|
|
251
|
-
swapId: string; // Primary key
|
|
252
|
-
keyIndex: number; // Key derivation index
|
|
253
|
-
response: GetSwapResponse; // Full API response
|
|
254
|
-
publicKey: string; // Hex-encoded compressed public key
|
|
255
|
-
preimage: string; // Hex-encoded preimage for claiming HTLCs
|
|
256
|
-
preimageHash: string; // Hex-encoded hash lock
|
|
257
|
-
secretKey: string; // Hex-encoded secret key for signing
|
|
258
|
-
storedAt: number; // Timestamp when first stored
|
|
259
|
-
updatedAt: number; // Timestamp when last updated
|
|
260
|
-
}
|
|
226
|
+
// EVM swaps — collaborative refund for gasless swaps (SDK signs internally)
|
|
227
|
+
const {txHash} = await client.collabRefundEvmSwap(swapId, "swap-back");
|
|
261
228
|
```
|
|
262
229
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
```typescript
|
|
266
|
-
import {
|
|
267
|
-
InMemoryWalletStorage,
|
|
268
|
-
InMemorySwapStorage,
|
|
269
|
-
IdbWalletStorage, // Browser only (IndexedDB via Dexie)
|
|
270
|
-
IdbSwapStorage, // Browser only (IndexedDB via Dexie)
|
|
271
|
-
idbStorageFactory, // Factory for creating IDB storage
|
|
272
|
-
inMemoryStorageFactory,
|
|
273
|
-
SWAP_STORAGE_VERSION,
|
|
274
|
-
type StoredSwap,
|
|
275
|
-
} from "@lendasat/lendaswap-sdk-pure";
|
|
276
|
-
|
|
277
|
-
// In-memory storage (for testing or temporary sessions)
|
|
278
|
-
const walletStorage = new InMemoryWalletStorage();
|
|
279
|
-
const swapStorage = new InMemorySwapStorage();
|
|
280
|
-
|
|
281
|
-
// IndexedDB storage (for browser persistence)
|
|
282
|
-
// Uses shared "lendaswap-v3" database with "wallet" and "swaps" tables
|
|
283
|
-
const walletStorage = new IdbWalletStorage();
|
|
284
|
-
const swapStorage = new IdbSwapStorage();
|
|
285
|
-
|
|
286
|
-
// Store a swap
|
|
287
|
-
await swapStorage.store({
|
|
288
|
-
version: SWAP_STORAGE_VERSION,
|
|
289
|
-
swapId: "uuid",
|
|
290
|
-
keyIndex: 0,
|
|
291
|
-
response: apiResponse,
|
|
292
|
-
publicKey: "02...",
|
|
293
|
-
preimage: "...",
|
|
294
|
-
preimageHash: "...",
|
|
295
|
-
secretKey: "...",
|
|
296
|
-
storedAt: Date.now(),
|
|
297
|
-
updatedAt: Date.now(),
|
|
298
|
-
});
|
|
230
|
+
Refund mode controls what token you receive:
|
|
299
231
|
|
|
300
|
-
|
|
301
|
-
|
|
232
|
+
- `"direct"` — refund as WBTC/TBTC (the HTLC lock token)
|
|
233
|
+
- `"swap-back"` — refund as the original source token (e.g., USDC) via DEX swap
|
|
302
234
|
|
|
303
|
-
|
|
304
|
-
// For React Native, you might use AsyncStorage or SQLite
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
## Development
|
|
308
|
-
|
|
309
|
-
### Project Structure
|
|
235
|
+
### Storage
|
|
310
236
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
├── api/
|
|
314
|
-
│ └── client.ts # Low-level API client wrapper
|
|
315
|
-
├── generated/
|
|
316
|
-
│ └── api.ts # Auto-generated types from OpenAPI spec
|
|
317
|
-
├── create/
|
|
318
|
-
│ ├── index.ts # Swap creation exports
|
|
319
|
-
│ ├── types.ts # Type definitions for swap creation
|
|
320
|
-
│ ├── arkade.ts # Arkade-to-EVM swap creation
|
|
321
|
-
│ ├── bitcoin.ts # Bitcoin-to-EVM swap creation
|
|
322
|
-
│ ├── bitcoin-to-arkade.ts # Bitcoin-to-Arkade swap creation
|
|
323
|
-
│ ├── evm-to-arkade.ts # EVM-to-Arkade swap creation
|
|
324
|
-
│ ├── evm-to-bitcoin.ts # EVM-to-Bitcoin swap creation
|
|
325
|
-
│ ├── evm-to-lightning.ts # EVM-to-Lightning swap creation
|
|
326
|
-
│ └── lightning.ts # Lightning-to-EVM swap creation
|
|
327
|
-
├── redeem/
|
|
328
|
-
│ ├── index.ts # Claim/redeem operation exports
|
|
329
|
-
│ ├── arkade.ts # Arkade claim logic
|
|
330
|
-
│ ├── ethereum.ts # Ethereum claim logic
|
|
331
|
-
│ └── gasless.ts # Gasless claim logic
|
|
332
|
-
├── refund/
|
|
333
|
-
│ ├── index.ts # Refund operation exports
|
|
334
|
-
│ ├── arkade.ts # Arkade refund logic
|
|
335
|
-
│ └── onchain.ts # On-chain refund logic
|
|
336
|
-
├── evm/
|
|
337
|
-
│ ├── index.ts # EVM HTLC utilities
|
|
338
|
-
│ ├── coordinator.ts # Coordinator interaction
|
|
339
|
-
│ ├── htlc.ts # HTLC contract utilities
|
|
340
|
-
│ └── signing.ts # EVM signing utilities
|
|
341
|
-
├── signer/
|
|
342
|
-
│ └── index.ts # HD wallet key derivation (BIP39/BIP32)
|
|
343
|
-
├── storage/
|
|
344
|
-
│ ├── index.ts # Storage interfaces and in-memory implementations
|
|
345
|
-
│ ├── idb.ts # IndexedDB storage for browsers
|
|
346
|
-
│ ├── sqlite.ts # SQLite storage for Node.js
|
|
347
|
-
│ └── types.ts # StoredSwap type definition
|
|
348
|
-
├── client.ts # High-level Client class with convenience methods
|
|
349
|
-
├── arkade.ts # Arkade VHTLC query utilities
|
|
350
|
-
├── delegate.ts # Delegate settlement utilities
|
|
351
|
-
├── tokens.ts # Token helpers and constants
|
|
352
|
-
├── usd-price.ts # USD price fetching via CoinGecko
|
|
353
|
-
├── price-calculations.ts # Price calculation utilities
|
|
354
|
-
├── node.ts # Node.js-specific exports (SQLite storage)
|
|
355
|
-
└── index.ts # Public exports
|
|
356
|
-
```
|
|
237
|
+
The SDK provides pluggable storage interfaces for persisting wallet and swap data.
|
|
238
|
+
Browser storage uses [Dexie](https://dexie.org/) for IndexedDB access with the database name `lendaswap-v3`.
|
|
357
239
|
|
|
358
240
|
### Auto-generated API Types
|
|
359
241
|
|
|
@@ -375,7 +257,7 @@ When the backend API changes:
|
|
|
375
257
|
|
|
376
258
|
1. Download the latest OpenAPI spec from the backend:
|
|
377
259
|
```bash
|
|
378
|
-
curl -o openapi.json https://api.
|
|
260
|
+
curl -o openapi.json https://api.satora.io/api-docs/openapi.json
|
|
379
261
|
```
|
|
380
262
|
|
|
381
263
|
2. Run the generate command:
|
|
@@ -402,11 +284,3 @@ When adding new functionality:
|
|
|
402
284
|
1. **API methods**: Add convenience methods to `src/client.ts` that wrap the low-level API calls
|
|
403
285
|
2. **New types**: If the backend adds new endpoints, regenerate the API types first
|
|
404
286
|
3. **Exports**: Update `src/index.ts` to export any new public types or classes
|
|
405
|
-
|
|
406
|
-
### Dependencies
|
|
407
|
-
|
|
408
|
-
- `openapi-fetch` - Type-safe HTTP client for OpenAPI specs
|
|
409
|
-
- `@noble/hashes` - Cryptographic hash functions
|
|
410
|
-
- `@scure/bip32` - BIP32 HD wallet derivation
|
|
411
|
-
- `@scure/bip39` - BIP39 mnemonic phrase handling
|
|
412
|
-
- `dexie` - IndexedDB wrapper for browser storage
|