github arkade-os/ts-sdk @arkade-os/sdk/0.5.0

latest release: @arkade-os/swap/0.1.0
3 hours ago

What's Changed

  • swap: operator naming cleanup (ark/server → operator/plain) by @arkana-ai-bot in #798
  • Remove arkServerUrl from swap methods by @tiero in #803
  • test(e2e): stop the suite hanging and poisoning its own stack by @pietro909 in #815
  • Remove boltz-swap by @pietro909 in #811
  • feat(swap): createSwapClient — one client over RFQ corridors and offer swaps by @louisinger in #793
  • feat(swap): v2 type foundation by @pietro909 in #821
  • feat(swap): v2 corridor modules by @pietro909 in #825
  • feat(swap): v2 quote path by @pietro909 in #826
  • fix(sdk): stop leaked Esplora address watchers from flooding explorers by @Kukks in #830
  • fix(sdk): anchor a late address-watch baseline on chain height by @Kukks in #833
  • chore: upgrade regtest to 6b0a60ca by @Kukks in #836
  • feat(swap): a client-side ceiling on what a quote may charge by @Kukks in #832
  • fix(sdk): capture the address-watch anchor at watch start by @pietro909 in #840
  • feat(swap): accept(), the durable record, and the storage defaults by @pietro909 in #829
  • feat(swap): solver-routed send rails, and the ChainSource/MTP gaps they needed by @Kukks in #837
  • perf(sdk): probe /utxo before refetching full address history by @Kukks in #834
  • feat(swap): the drive, and one outcome vocabulary for both families by @pietro909 in #839
  • fix(swap): stop rebuilding terminal swaps on every restore by @pietro909 in #841
  • feat(sdk): an asset dimension for PaymentRouter, and the asset + cross-asset rails by @Kukks in #838
  • feat(swap): cancel, the history read, and the disposal gate by @pietro909 in #842
  • feat(swap): the three verbs, and the rails that route them by @pietro909 in #843
  • feat(swap): publish the v2 client from a ./client subpath by @pietro909 in #844
  • feat(swap)!: the v2 client takes the root, v1 moves to /protocol by @pietro909 in #845
  • fix(swap)!: the v1 names the v2 surface references belong on the curated root by @pietro909 in #849
  • fix(swap): omit claim_packet when there is no covclaimd to seal to by @Kukks in #850
  • fix(swap): swap SDK v2 release-review remedies by @pietro909 in #848
  • test: e2e for the activity resolver and the payment rails, and the market bounds they depend on by @Kukks in #847
  • test(swap): drain, asset->BTC, and wiped-store restore e2e by @pietro909 in #855
  • fix(sdk): inject the fee source into onchainRail, not a wallet type parameter by @Kukks in #851
  • feat(swap): a covclaimd Reveal API client, so a client can deliver its own packet by @Kukks in #846
  • Add fallback to /v1/blocks endpoint in EsploraProvider by @tiero in #637
  • Remove deprecated items by @pietro909 in #820
  • feat(contracts): watch-only scripts on ContractWatcher by @Kukks in #857
  • feat(swap): keep the preimage that settled a lightning send by @pietro909 in #862
  • perf(indexer): serve an identical in-flight vtxo read from one request by @Kukks in #876
  • test(sdk): mock the fetch boundary with real Responses by @Kukks in #881
  • fix(hooks): fail the pre-commit gate when its filter selects nothing by @Kukks in #880
  • docs(swap): retirement narrows the subscription and the poll, not every sync by @Kukks in #879
  • feat(payment): state a quote's validity on RouteQuote by @Kukks in #874
  • fix(swap): retire a corridor lockup when it is SPENT, not merely terminal by @Kukks in #873
  • fix(sdk): gate transaction history the way balance is gated by @tiero in #859
  • fix(emulator): route the info read through the SDK's shared fetch boundary by @Kukks in #887
  • fix(providers): bound reads with a deadline so the retries above them can run by @Kukks in #884
  • perf(contracts): let an embedder set a staleness budget for the pre-send sync by @Kukks in #882
  • docs(providers): name the wrapper the Expo fallback actually returns by @Kukks in #891
  • feat(swap): surface structured RFQ refusals by @Kukks in #898
  • fix(swap): support CAIP-19 registry markets by @Kukks in #899
  • fix(swap): preserve readable cached markets by @Kukks in #896
  • fix(swap): let restoreAssetSwaps re-ask a record it left pending by @Kukks in #893
  • fix(swap): restore coverage for the covenants the scan rebuilds by @Kukks in #892
  • fix(swap): a pass behind watchOfferSwaps, and a poll payload that can carry a spend by @Kukks in #895
  • perf(contracts): register a set of contracts in one indexer round trip by @Kukks in #897
  • perf(swap): read offer history once per start-up pass, not once per deposit by @Kukks in #900
  • feat(swap): fillOffer — the taker side an offer has no way to reach by @Kukks in #785
  • feat(swap): orchestrate repository restore by @Kukks in #901
  • feat(swap): restore fillOffer on v0.5 — the taker side has no v2 successor by @Kukks in #906
  • feat(swap): own the claim-packet codec, pinned to covclaimd's own bytes by @Kukks in #909
  • fix(swap): support solver discovery 0.2.4 by @Kukks in #907
  • fix(swap): send the claim packet in the shape a solver can stamp by @Kukks in #908
  • fix: schedule delegation before VTXO expiry by @Kukks in #912
  • Enforce negotiated Lightning send refund delay by @Kukks in #913
  • feat(swap): follow the network's default solver registry by @Kukks in #916
  • feat(swap): wire-compatible arkade RFQ requests + requestArkadeSwap by @Kukks in #917
  • docs: remove NArk reference implementation section from AGENTS.md by @tiero in #918
  • fix(swap): gate the onchain-send claim on the funded amount by @Kukks in #920
  • fix(swap): keep a late settlement from being recorded as a refund by @jfrader in #924
  • fix(sdk): verify the operator cosignature on wallet submits by @Kukks in #923
  • fix(sdk): validate a settlement against the intent proof when no recipients are given by @Kukks in #922
  • fix(sdk): fail settle when the commitment tx omits a boarding input by @Kukks in #921
  • fix(swap): rebuild offer records from chain on client restore by @tiero in #930
  • fix(swap): rebuild offer records from chain on client restore by @tiero in #933
  • fix(sdk): stop sending Arkade headers to the indexer origin on Expo by @IgnacioPorte in #927
  • test(sdk): wait on completeUnroll's own precondition in the unroll e2e by @Kukks in #936
  • test(sdk): wait on send's own selection view between the two createCash calls by @Kukks in #937
  • test(sdk): wait for the indexer to commit the spend in the cross-contract e2e by @Kukks in #940
  • test(sdk): wait for the indexer to commit the spend in the delegate lifecycle e2e by @Kukks in #942
  • test(sdk): wait for each faucet send to index before the next one by @Kukks in #938
  • test(sdk): stop the settlement e2e asserting on a re-read of getVtxos() by @Kukks in #939
  • fix(swap): consume the solver's carrier_sats, and stop blocking exact-out (on #919) by @Kukks in #932
  • fix(swap): consume the solver's carrier_sats, and stop blocking exact-out by @Kukks in #931
  • test(sdk): name both faucet recipients in the delegate lifecycle phase 3 wait by @Kukks in #945
  • test(sdk): dispose settlement e2e wallets in a finally by @Kukks in #944
  • Merge master into feat/v0.5 by @Kukks in #947
  • feat(sdk): let a payment request name the VTXOs it spends by @Kukks in #948
  • docs(sdk): point isLnurl at the rails that consume it by @Kukks in #949
  • feat(sdk): let watchScript and unwatchScript take a set by @Kukks in #955
  • fix(sdk): pay for the change output a partial offboard creates by @Kukks in #950
  • fix(sdk): pay the exit's destination exactly, and keep its change in bounds by @Kukks in #956
  • fix(sdk): route HD unilateral exit sweeps through the descriptor-aware signer router by @Kukks in #959
  • fix(arkade): take the contract address network from the server by @gringokiwi in #962
  • Add the PUSHEXPIRY, CHECKTIME, TUNNEL, and intent opcodes by @tiero in #967
  • Fix/reduce indexer requests by @bordalix in #961
  • fix(sdk): survive a look-ahead failure at startup by @Kukks in #965
  • fix(sdk): keep a recorded spend across a stale indexer response by @Kukks in #966
  • perf(sdk): fetch boarding addresses concurrently by @Kukks in #964
  • test(swap): parse the root barrel once in the ./advanced superset check by @Kukks in #973
  • chore: bump arkade-regtest for solver fee_bps support by @gringokiwi in #976
  • Adjust available balance for dust carrier by @gringokiwi in #975
  • test(e2e): filter out regtest.mjs env-override log line from execCommand output by @d4rp4t in #980
  • fix(bip21): write the amount as a plain decimal, not in exponent notation by @d4rp4t in #979
  • fix(swap): do not report a claim that lost the race to covclaimd as a failure by @Kukks in #985
  • perf(sdk): keep contract tapscripts across syncs, not just within one by @Kukks in #984
  • fix(swap): seconds-typed regtest timelocks so solverd inventory stays spendable by @gringokiwi in #988
  • fix(swap): misc improvements by @gringokiwi in #969
  • Read arkadec artifacts into a Program by @tiero in #958
  • perf(sdk): group contract VTXOs in one pass by @Kukks in #990
  • fix(wallet): avoid change below operator VTXO minimum by @Kukks in #987
  • refactor(swap): e2e test hygiene — OPERATOR_URL, arkProvider init, vi.waitFor by @gringokiwi in #998
  • chore(swap): size solverd's regtest float for repeated e2e runs by @gringokiwi in #999
  • perf(wallet): bound funding inventory and scope coin selectors by @Kukks in #991
  • perf(swap): bound RFQ polling and page restore and history without pruning by @Kukks in #992
  • chore: merge master into feat/v0.5 (sdk 0.4.77, swap 0.0.23) by @Kukks in #1010
  • test(swap): asset-swap e2e against solverd by @gringokiwi in #1000
  • refactor: slop cleanup — dead code, duplicated helpers and discursive comments (v0.5) by @Kukks in #1003
  • docs(changelog): backfill @arkade-os/sdk 0.4.24 through 0.4.77 by @Kukks in #1013
  • fix(sdk): decode time-based CSV literals in arkadec artifacts by @Kukks in #1012
  • perf(wallet): read only unspent rows for getVtxos and getBalance by @Kukks in #1014
  • Rename ts-sdk package to sdk by @tiero in #827
  • perf(worker): read only unspent rows for the balance and coin reads by @Kukks in #1017
  • fix(wallet): forfeit expired VTXOs the operator has not swept by @Kukks in #1016
  • feat(repositories): unify bounded paging across SDK and swap stores by @Kukks in #1002
  • feat(swap): negotiate asset swaps over the card's RFQ rendezvous by @tiero in #919
  • test: exclude the regtest submodule from vitest in every package by @pietro909 in #1019
  • chore: v0.5 review cleanup (CI profile, repository versions, Quote.artifact docs) by @pietro909 in #1021
  • ci: run swap-rfq against the released intent solver by @pietro909 in #1030
  • fix(sdk): share restore hook registry across sdk copies by @pietro909 in #1028
  • fix(swap): name BTC slip44:1 off mainnet, as discovery does by @pietro909 in #1020
  • fix(swap): keep driving swaps a 0.0.x client left in flight by @pietro909 in #1029
  • fix(swap): adopt swept v1 offers, tolerate an unreadable v1 store by @pietro909 in #1031
  • fix(swap): resolve a recovered offer deposit instead of leaving it recoverable by @pietro909 in #1032
  • docs(swap): update the restore example to the v0.5 options by @gringokiwi in #1022
  • feat(swap): adopt settled v1 offers and register restored offer covenants by @pietro909 in #1035
  • feat(swap): adopt v1 corridor swaps as restored v2 records by @pietro909 in #1039
  • Update scure libs to 2.4.x by @louisinger in #1034
  • fix(swap): refuse to create an offer that wants nothing by @gringokiwi in #1015
  • fix(swap): a unified URI's own amount= does not contradict its invoice by @Kukks in #1040
  • fix: scure 2.4 follow-ups and drop boltz-swap from tooling by @pietro909 in #1041
  • Feat/v0.5 by @Kukks in #886
  • Consolidate duplicated unit test coverage by @pietro909 with @Copilot in #1036
  • fix(swap): cap how long a send's refund may stay locked by @pietro909 in #1050
  • remove dev dependency better-sqlite3 by @bordalix in #1047
  • perf(contracts): start the contract manager from watched contracts only by @Kukks in #1049
  • fix(contracts): stop the no-EventSource warning promising polling by @Kukks in #1046
  • fix(wallet): default each VTXO filter flag on its own by @Kukks in #1042
  • fix(wallet): align worker VTXO filtering by @pietro909 in #1053
  • feat(wallet): let subclasses reuse Wallet.create and ReadonlyWallet.create by @Kukks in #1056
  • test(swap): fund the solverd tests through one offer helper per direction by @gringokiwi in #1024
  • test(swap): check a cancel that loses the race to a fill fails cleanly by @gringokiwi in #1025
  • test(swap): detect swaps after a wallet reload on the same storage by @gringokiwi in #1026
  • test(swap): detect swaps after a wallet restore into new storage by @gringokiwi in #1011
  • fix(indexeddb): move the intent and virtual-tx repositories to arkade-batches by @pietro909 in #1052
  • fix(arkade): support OP_PUT in script assembly by @Kukks in #1060
  • feat(wallet): pay bounded unavoidable change as offchain fee by @Kukks in #989
  • fix(contracts): validate the sync budgets and make the delta-sync overlap configurable by @Kukks in #1044
  • fix(arkade): bind an artifact CSV param as a BIP68 sequence by @Kukks in #1048
  • fix(contracts): make setContractWatchState a no-op when unchanged by @pietro909 in #1064
  • perf(sdk): batch boarding UTXO writes and bulk-insert SQLite wallet rows by @Kukks in #971
  • fix(swap): retry a receive quote_conflict once on a fresh index by @pietro909 in #1033
  • fix(sw): keep the worker error as cause in contract manager proxy by @pietro909 in #1066
  • fix(wallet): release stale intents from arkd on reconcile by @pietro909 in #1065
  • fix(1064 followup) watch state noop by @pietro909 in #1067
  • feat(swap): the EVM corridors' wire layer — pairs, amounts, requests, quotes by @Kukks in #835
  • docs(agents): note the changelog mechanism by @pietro909 in #1070
  • test: typecheck every sdk and swap test by @pietro909 in #1072
  • test(ArkadeCash): e2e for server-swept ArkCash recovery by @pietro909 in #624
  • feat(vtxo-manager): let renewVtxos settle into several outputs by @Kukks in #861
  • test: fix test typecheck on master by @pietro909 in #1074
  • refactor: share millisecond configuration validation by @pietro909 in #1062
  • feat(swap): drive the onchain-receive corridor, L1 refund included by @Kukks in #894
  • fix(onchain): support mempool fee estimates by @IgnacioPorte in #983
  • feat(swap): read solver cards from their transports, and keep markets fresh by @Kukks in #1073
  • fix(sdk): preserve deprecated-signer boarding cache during refresh by @IgnacioPorte in #1077
  • fix(swap): ask the registry once a minute while discoverMarkets carries a solver by @Kukks in #1080
  • fix(swap): let resolve() offer pinned solvers when the registry is unreachable and nothing is cached by @Kukks in #1081
  • fix(wallet): make dispose() wait for contract events still being handled by @gringokiwi in #1082
  • feat(sdk): let ArkadeTransactionBuilder carry a caller's extension packet by @Kukks in #1084
  • feat(sdk): opt-in faster startup with repository-first reads by @Kukks in #943
  • feat: support Taxi fills and carrier payments on SDK 0.5 by @Kukks in #1057
  • fix(swap): wait for the trader's L1 claim to confirm before settling an onchain send by @Kukks in #1086
  • fix(contracts): keep the failsafe poll from racing a contract's sync by @pietro909 in #1085
  • fix(swap): cap the inputs of the trader's claim and refund spends by @Kukks in #1088
  • Fix Lightning claims classified as refunds by @Kukks in #1089
  • test(e2e): early-settlement fee premium instead of settlement block by @Kukks in #1091
  • perf(swap): share one Nostr pool across transports and card fetches by @Kukks in #1092
  • fix(contracts): recover failed subscription updates by @IgnacioPorte in #982
  • feat: opt-in concurrent spending and VTXO reservations by @Kukks in #1051
  • fix(swap): never reopen a spent offer on a lagging restore read by @pietro909 in #1093
  • Export swap timing floors from the protocol subpath by @pietro909 with @Copilot in #1096
  • fix(contracts): annotate sync results against the contracts fetched for by @Kukks in #1098
  • chore: bump Node to 24.22.1 for Oct 2026 security release by @s373nZ in #1104
  • [WIP] Export swap timing floors from the protocol subpath by @pietro909 with @Copilot in #1099
  • feat(contracts): storage-only read of a contract's VTXOs by @Dunsin-cyber in #953
  • fix(sdk): refuse another operator's ArkadeCash, accept rotated signers by @michalsmiarowski in #1102
  • feat(sdk): export toOffchainInputFeeParams by @Kukks in #1109
  • feat(sdk): submit emulator-cosigned offchain txs through one helper by @Kukks in #1107
  • feat(sdk): server-side filtered indexer subscriptions over SSE by @d4rp4t in #1108
  • chore: add REVIEW.md and CodeRabbit config by @pietro909 in #1112
  • fix(examples): make the SDK examples run again by @pietro909 in #1113
  • feat: read L1 through any OnchainProvider in a worker wallet and the swap onchain corridor by @Kukks in #1110
  • feat(arkade): Arkade.connect one-liner by @pietro909 in #1078
  • feat: support compiler artifact v1 by @msinkec in #1079
  • feat: pass heartbeats through getFilteredSubscription by @pietro909 in #1118
  • feat(swap): claim-packet minAmount API, binding gated off by @pietro909 in #1114
  • simplify checkpoint policy logic by @louisinger in #1121
  • fix(swap): migrate Program v0 offer rows to v1 in place by @pietro909 in #1124
  • feat(sdk)!: rename WalletBalance.intentLocked to pendingSettlement by @pietro909 in #1133
  • perf(wallet): ask the delegate for its key alongside server info by @Kukks in #1131
  • fix(swap): build an onchain send's lockup with the quoted solo refund delay by @d4rp4t in #1126
  • docs: README sanity pass ahead of 0.5 by @pietro909 in #1125

New Contributors

Full Changelog: https://github.com/arkade-os/ts-sdk/compare/@arkade-os/swap/0.0.11...@arkade-os/sdk/0.5.0

Don't miss a new ts-sdk release

NewReleases is sending notifications on new releases.