Skip to content

Release: develop -> main#3416

Merged
TaprootFreak merged 7 commits intomainfrom
develop
Mar 13, 2026
Merged

Release: develop -> main#3416
TaprootFreak merged 7 commits intomainfrom
develop

Conversation

@github-actions
Copy link

Automatic Release PR

This PR was automatically created after changes were pushed to develop.

Commits: 1 new commit(s)

Checklist

  • Review all changes
  • Verify CI passes
  • Approve and merge when ready for production

* feat: add Ark (Arkade) blockchain integration

Add full Ark protocol support as a Bitcoin L2 (coin-only),
using the @arkade-os/sdk with Arkadeos server (arkade.computer).
Follows the same pattern as the existing Spark integration.

Env vars: ARK_PRIVATE_KEY, ARK_SERVER_URL (optional)

* fix: remove dead reconnectWallet code and improve tx confirmation logic

- Remove unused reconnectWallet() and reconnectAttempt field
- Improve getTransaction() to use finalizePendingTxs() for outgoing
  tx confirmation instead of only checking VTXOs

* fix: add Jest mock for @arkade-os/sdk to fix CI test failures

The @arkade-os/sdk ships ESM-only sub-dependencies (@scure/btc-signer)
that break Jest's CommonJS transform. Add a moduleNameMapper mock
following the existing @dfinity pattern.

* fix: add missing Ark integration points in crypto service, balance adapter, and user enum

Add ARK cases for payment requests, address detection, signature
verification, and balance updates that were missed in the initial
integration.

* test: add unit tests for ArkClient and ArkService

Cover signature verification (valid/invalid/edge cases), balance
conversion, transaction lifecycle, health checks, payment request
formatting, and not-implemented guards.

* fix: add Ark explorer URLs and fix missing Spark/Ark in addressPaths and assetPaths

- Set Ark explorer to https://explorer.arkade.sh with tx path
- Add Spark and Ark to addressPaths switch (fixes broken address
  explorer links for Spark, enables them for Ark)
- Add Spark and Ark to assetPaths switch for completeness

Closes #3400

* feat: add migration to seed Ark/BTC asset

Add database migration that inserts BTC as a Coin asset on the Ark
blockchain, referencing the existing Kraken BTC/USDT price rule (id 11),
consistent with Bitcoin/BTC and Lightning/BTC.

* refactor: extract shared Bech32mService base class from Spark/Ark services

Eliminate duplicated signature verification, payment request, and
address helper methods by introducing an abstract Bech32mService.
Fix any-types in sendSignedTransaction for Spark/Ark clients.

---------

Co-authored-by: Bernd <bernd@dfx.swiss>
max-tech-bot and others added 6 commits March 13, 2026 16:29
…firmations (#3415)

Co-authored-by: max-tech-bot <max-tech-bot@users.noreply.github.com>
…3418)

The identity key is not directly embedded in offchainAddr payloads
(which contain version + serverPubKey + vtxoTaprootKey). Override
verifySignature in ArkService to recover the identity key from
the signature, re-derive the DefaultVtxo taproot scripts, and
compare the tweaked public key against the address.
* [NOTASK] dfxApproval merge refactoring

* [NOTASK] Refactoring

* [NOTASK] Refactoring 2
…ication (#3420)

* fix: support DelegateVtxo and server timelocks in Ark signature verification

The initial Ark offchainAddr verification only tried DefaultVtxo.Script
with the default 144-block timelock. Real wallets using arkade.computer
use a 605184-second server timelock and delegation via delegate.arkade.money,
producing DelegateVtxo addresses with 3 taproot leaves instead of 2.

- Fetch ASP server's unilateralExitDelay and try both default and server timelocks
- Fetch delegate pubkeys and try DelegateVtxo.Script in addition to DefaultVtxo
- Cache server info to avoid repeated network calls
- Update Jest mock with BIP68 timelock encoding and DelegateVtxo support
- Add tests for server-timelock and DelegateVtxo address verification

* style: fix prettier formatting
@TaprootFreak TaprootFreak merged commit ddcec31 into main Mar 13, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants