Skip to content

🎉 Publish Wallets Release - #214

Merged
hippocampusSK merged 1 commit into
developfrom
changeset-release/develop
Nov 3, 2026
Merged

hippocampusSK merged 1 commit into
developfrom
changeset-release/develop

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to develop, this PR will be updated.

Releases

@swapkit/wallet-extensions@4.9.0

Minor Changes

  • #210 4e3f9f7 Thanks @hippocampusSK! - OneKey now connects Stellar, TON, TRON and NEAR on mainnet, alongside its EVM chains. Bitcoin and Solana connections work again: they were looking for wallet providers the OneKey extension never exposes, so connecting either chain always failed. A TRON or Stellar signature from OneKey is rejected if it covers a different transaction than the one requested.

    Connecting OneKey now asks for one network at a time. If the user cancels an approval, no further approval windows open; networks approved before the cancel stay connected. A network OneKey refuses to connect for a reason other than a cancel, such as Bitcoin with multiple addresses enabled or a TON Connect manifest for another domain, is skipped and the rest still connect.

Patch Changes

  • #215 5904076 Thanks @hippocampusSK! - Ledger keeps signing Zcash through the NU7 network upgrade (mainnet block 3,543,405, around 5 November 2026). The Ledger Zcash signer kit moves to 0.9.0, the first release whose mainnet table carries the NU7 consensus branch id 0x77190ad9, and the client now maps a transaction built under NU7 to that activation height. Each previous transaction is framed with the same height, so a v4 input is hashed under the branch the transaction is signed for rather than the kit's default. Before NU7 nothing changes: transactions built under Ironwood still sign under Ironwood. The device must run the Zcash app release that accepts the NU7 branch id, installed from Ledger Live. The Device Management Kit moves to 1.11.0, with the Ethereum signer kit and context module on the matching releases, and @swapkit/utxo-signer to 3.2.0 across the wallet packages.

  • #215 5904076 Thanks @hippocampusSK! - Update SwapKit SDK dependencies:

    • #465 d03591d Thanks @towanTG! - Zcash transactions keep working through the NU7 network upgrade (mainnet block 3,543,405, around 5 November 2026), which rejects version 4 transactions. From the activation block on, the Zcash toolbox builds version 5 transactions with the NU7 consensus branch id 0x77190ad9; before it, nothing changes. If the block height can't be fetched, building a Zcash transaction now fails with toolbox_utxo_api_error instead of guessing the format, because a guess on the wrong side of an upgrade produces a transaction the network rejects. @swapkit/utxo-signer can now build, sign, parse and compute the txid of transparent version 5 transactions, including version 5 PSBTs and PCZTs, and exports getZcashTransactionFormat and ZCASH_NU7_ACTIVATION_HEIGHT. Parsing a raw Zcash transaction now keeps input txids in the right byte order, so re-serializing it no longer changes them.
    • #485 c380f81 Thanks @0xepicode! - The UTXO toolbox's Blockchair host is now configurable via SKConfig.set({ blockchairApiUrl }). When set, every Blockchair read and broadcast routes through that host (the /{chain-slug} path is still appended), letting a consumer proxy the calls and keep the API key server-side instead of shipping it to the browser. Unset, it defaults to https://api.blockchair.com as before. (via @swapkit/helpers@6.4.2)
    • #472 f960277 Thanks @ice-chillios! - Solana token transfers now use the token program that owns the mint. Before, every transfer was built for the original SPL Token program, so transfers of Token-2022 tokens such as PYUSD failed with "incorrect program id". A mint that does not exist, or that neither program owns, now throws toolbox_solana_unsupported_token_program from createTransaction, transfer and estimateTransactionFee. getBalanceFromRPC also lists Token-2022 balances, and checkPayerBalance sizes a new Token-2022 token account like the payer's own. (via @swapkit/helpers@6.4.2)
    • #466 2957c2f Thanks @ice-chillios! - THORChain and Maya tokens whose denom contains more than one "/", such as staked RUJI (x/staking-x/ruji), now keep their full name. Their balances show under the right asset, and sending or depositing them uses the full denom instead of a cut-off one that the chain rejects. THORChain and Maya asset identifiers with an empty part, such as THOR.ETH//ETH, are now rejected with helpers_invalid_asset_identifier instead of being cut short. (via @swapkit/helpers@6.4.2)
    • #484 c03235b Thanks @github-actions! - Update generated token lists. (via @swapkit/helpers@6.4.2)
    • #481 b09262a Thanks @hippocampusSK! - Zcash transfers to ZIP-320 TEX addresses (tex1…), the format THORChain publishes its ZEC vault in, are now built instead of being rejected as invalid. TEX addresses are reported as their own tex address type, THORChain and Maya swaps accept them as the ZEC destination, and toTransparentZcashAddress converts one to the t1 address it pays on chain. (via @swapkit/toolboxes@6.6.0)
    • #477 efc495d Thanks @hippocampusSK! - Selling from HyperCore now works through NEAR Intents as well as Flashnet, and each swap sends the funds to the account that provider credits. (via @swapkit/toolboxes@6.6.0)
    • #483 b717e30 Thanks @0xepicode! - Transparent Zcash swaps now broadcast the extracted network transaction instead of the PCZT envelope. The toolbox signer discriminated the transaction it received with instanceof ZcashPSBT / instanceof PCZT, but the swap plugin builds that transaction through a dynamic import of @swapkit/utxo-signer, which a bundler can resolve to a different module instance than the toolbox's static import. The instanceof check then missed, the signer fell through to its generic branch, and the still-wrapped PSBT was broadcast as its PCZT envelope — which the network rejects. The signer now discriminates by shape — a PCZT and a ZcashPSBT both expose extract, a raw transaction does not — which is independent of class identity. (via @swapkit/toolboxes@6.6.0)
    • #479 d3e65c6 Thanks @hippocampusSK! - The limit order parameter types used by the SwapKit plugin are now exported, so projects that re-export the plugins can build their type declarations again. (via @swapkit/plugins@5.2.1)
    • #478 0ea5efb Thanks @hippocampusSK! - The Tron toolbox now reports toolbox_tron_insufficient_balance instead of toolbox_tron_transaction_creation_failed when the node rejects a TRX or TRC-20 transfer because the wallet cannot cover it, including the extra fee for sending to an account that is not activated yet. The node's reason is kept in the error info, and transfer no longer wraps this error in toolbox_tron_token_transfer_failed. (via @swapkit/plugins@5.2.1)
    • #460 9190931 Thanks @hippocampusSK! - Add limit orders. A SwapKit instance with the swapkit plugin exposes swapKit.limitOrder: tokens, quote, build, sign, submit, execute, list, get, allowedProviders and canSign, plus cancel.build, cancel.sign, cancel.submit and cancel.execute. execute({ build }) signs a built order with the connected wallet and submits it in one step; cancel.execute(orderId) does the same for a cancellation.
    • #467 6ddbd12 Thanks @ice-chillios! - getTokenAddress and getChecksumAddressFromAsset now use isGasAsset, so MONAD.MON, XLAYER.OKB and GNO.xDAI resolve to the native asset address instead of returning null or throwing. Identifiers that repeat the chain name on a chain whose gas asset has another ticker, such as ARB.ARB or BSC.BSC, no longer resolve to the native asset address. ContractAddress[Chain.Optimism] is now the zero address, like every EVM chain except Polygon, so OP.ETH resolves to the zero address instead of the OP token contract (0x4200000000000000000000000000000000000042). OP.OP without an address still resolves to the OP token contract. The Botanix toolbox now targets the Botanix network instead of Sonic. (via @swapkit/helpers@6.4.0)
    • #474 f107064 Thanks @ice-chillios! - The TON toolbox spaces out and retries its requests to the public Toncenter endpoint, which allows about one request per second without an API key, so TON jetton sales such as TON.USDT are much less likely to fail there. Requests to the chain's default endpoints start at least 1.1 seconds apart, through a queue shared by every toolbox in the process. Waits therefore grow with concurrent TON activity; for servers and other high-volume use, configure a custom TON RPC or a Toncenter API key, which is not spaced out. The endpoint health check is not queued. A request rejected with 429 or a gateway error (502 and above) is sent again after 1, 2 and 4 seconds. A node's 500 answer, such as a rejected message, a timeout and a network failure fail at once. A jetton lookup that the RPC does not answer is reported as helpers_chain_rpc_connection_failed instead of core_swap_contract_not_found. A toolbox looks up each jetton wallet address only once per jetton and owner. (via @swapkit/helpers@6.4.0)
    • #464 c20cc10 Thanks @github-actions! - Update generated token lists. (via @swapkit/helpers@6.4.0)
    • #468 8062907 Thanks @ice-chillios! - The TON toolbox no longer falls back to Orbs TON Access when every configured TON RPC fails. That service no longer returns any nodes, so the fallback itself failed with an unclear error. Now the toolbox throws helpers_chain_rpc_connection_failed, and jetton transfers and sweeps report that error instead of core_swap_contract_not_found. Set a working endpoint with SKConfig.setRpcUrl(Chain.Ton, [...]) or pass provider to the toolbox. The @orbs-network/ton-access dependency is removed. (via @swapkit/toolboxes@6.5.0)

@swapkit/wallet-hardware@6.3.0

Minor Changes

  • #215 5904076 Thanks @hippocampusSK! - Ledger keeps signing Zcash through the NU7 network upgrade (mainnet block 3,543,405, around 5 November 2026). The Ledger Zcash signer kit moves to 0.9.0, the first release whose mainnet table carries the NU7 consensus branch id 0x77190ad9, and the client now maps a transaction built under NU7 to that activation height. Each previous transaction is framed with the same height, so a v4 input is hashed under the branch the transaction is signed for rather than the kit's default. Before NU7 nothing changes: transactions built under Ironwood still sign under Ironwood. The device must run the Zcash app release that accepts the NU7 branch id, installed from Ledger Live. The Device Management Kit moves to 1.11.0, with the Ethereum signer kit and context module on the matching releases, and @swapkit/utxo-signer to 3.2.0 across the wallet packages.

  • #182 190babc Thanks @hippocampusSK! - Add HyperCore (Hyperliquid) support to the Trezor wallet for USDC transfers and swaps.

Patch Changes

  • #208 6e087ca Thanks @mfaizan1! - Sign Zcash sends and swaps on Ledger again. The connector told the device that change returns to the account's receive address, and the Zcash app only accepts a change path on the internal chain (…/1/x), so every transaction was refused with status 6986 before the review screen. Change on a receive address is now left for the device to show as a regular output, which you approve along with the payment.

  • #215 5904076 Thanks @hippocampusSK! - Update SwapKit SDK dependencies:

    • #465 d03591d Thanks @towanTG! - Zcash transactions keep working through the NU7 network upgrade (mainnet block 3,543,405, around 5 November 2026), which rejects version 4 transactions. From the activation block on, the Zcash toolbox builds version 5 transactions with the NU7 consensus branch id 0x77190ad9; before it, nothing changes. If the block height can't be fetched, building a Zcash transaction now fails with toolbox_utxo_api_error instead of guessing the format, because a guess on the wrong side of an upgrade produces a transaction the network rejects. @swapkit/utxo-signer can now build, sign, parse and compute the txid of transparent version 5 transactions, including version 5 PSBTs and PCZTs, and exports getZcashTransactionFormat and ZCASH_NU7_ACTIVATION_HEIGHT. Parsing a raw Zcash transaction now keeps input txids in the right byte order, so re-serializing it no longer changes them.
    • #485 c380f81 Thanks @0xepicode! - The UTXO toolbox's Blockchair host is now configurable via SKConfig.set({ blockchairApiUrl }). When set, every Blockchair read and broadcast routes through that host (the /{chain-slug} path is still appended), letting a consumer proxy the calls and keep the API key server-side instead of shipping it to the browser. Unset, it defaults to https://api.blockchair.com as before. (via @swapkit/helpers@6.4.2)
    • #472 f960277 Thanks @ice-chillios! - Solana token transfers now use the token program that owns the mint. Before, every transfer was built for the original SPL Token program, so transfers of Token-2022 tokens such as PYUSD failed with "incorrect program id". A mint that does not exist, or that neither program owns, now throws toolbox_solana_unsupported_token_program from createTransaction, transfer and estimateTransactionFee. getBalanceFromRPC also lists Token-2022 balances, and checkPayerBalance sizes a new Token-2022 token account like the payer's own. (via @swapkit/helpers@6.4.2)
    • #466 2957c2f Thanks @ice-chillios! - THORChain and Maya tokens whose denom contains more than one "/", such as staked RUJI (x/staking-x/ruji), now keep their full name. Their balances show under the right asset, and sending or depositing them uses the full denom instead of a cut-off one that the chain rejects. THORChain and Maya asset identifiers with an empty part, such as THOR.ETH//ETH, are now rejected with helpers_invalid_asset_identifier instead of being cut short. (via @swapkit/helpers@6.4.2)
    • #484 c03235b Thanks @github-actions! - Update generated token lists. (via @swapkit/helpers@6.4.2)
    • #481 b09262a Thanks @hippocampusSK! - Zcash transfers to ZIP-320 TEX addresses (tex1…), the format THORChain publishes its ZEC vault in, are now built instead of being rejected as invalid. TEX addresses are reported as their own tex address type, THORChain and Maya swaps accept them as the ZEC destination, and toTransparentZcashAddress converts one to the t1 address it pays on chain. (via @swapkit/toolboxes@6.6.0)
    • #477 efc495d Thanks @hippocampusSK! - Selling from HyperCore now works through NEAR Intents as well as Flashnet, and each swap sends the funds to the account that provider credits. (via @swapkit/toolboxes@6.6.0)
    • #483 b717e30 Thanks @0xepicode! - Transparent Zcash swaps now broadcast the extracted network transaction instead of the PCZT envelope. The toolbox signer discriminated the transaction it received with instanceof ZcashPSBT / instanceof PCZT, but the swap plugin builds that transaction through a dynamic import of @swapkit/utxo-signer, which a bundler can resolve to a different module instance than the toolbox's static import. The instanceof check then missed, the signer fell through to its generic branch, and the still-wrapped PSBT was broadcast as its PCZT envelope — which the network rejects. The signer now discriminates by shape — a PCZT and a ZcashPSBT both expose extract, a raw transaction does not — which is independent of class identity. (via @swapkit/toolboxes@6.6.0)
    • #479 d3e65c6 Thanks @hippocampusSK! - The limit order parameter types used by the SwapKit plugin are now exported, so projects that re-export the plugins can build their type declarations again. (via @swapkit/plugins@5.2.1)
    • #478 0ea5efb Thanks @hippocampusSK! - The Tron toolbox now reports toolbox_tron_insufficient_balance instead of toolbox_tron_transaction_creation_failed when the node rejects a TRX or TRC-20 transfer because the wallet cannot cover it, including the extra fee for sending to an account that is not activated yet. The node's reason is kept in the error info, and transfer no longer wraps this error in toolbox_tron_token_transfer_failed. (via @swapkit/plugins@5.2.1)
    • #460 9190931 Thanks @hippocampusSK! - Add limit orders. A SwapKit instance with the swapkit plugin exposes swapKit.limitOrder: tokens, quote, build, sign, submit, execute, list, get, allowedProviders and canSign, plus cancel.build, cancel.sign, cancel.submit and cancel.execute. execute({ build }) signs a built order with the connected wallet and submits it in one step; cancel.execute(orderId) does the same for a cancellation.
    • #467 6ddbd12 Thanks @ice-chillios! - getTokenAddress and getChecksumAddressFromAsset now use isGasAsset, so MONAD.MON, XLAYER.OKB and GNO.xDAI resolve to the native asset address instead of returning null or throwing. Identifiers that repeat the chain name on a chain whose gas asset has another ticker, such as ARB.ARB or BSC.BSC, no longer resolve to the native asset address. ContractAddress[Chain.Optimism] is now the zero address, like every EVM chain except Polygon, so OP.ETH resolves to the zero address instead of the OP token contract (0x4200000000000000000000000000000000000042). OP.OP without an address still resolves to the OP token contract. The Botanix toolbox now targets the Botanix network instead of Sonic. (via @swapkit/helpers@6.4.0)
    • #474 f107064 Thanks @ice-chillios! - The TON toolbox spaces out and retries its requests to the public Toncenter endpoint, which allows about one request per second without an API key, so TON jetton sales such as TON.USDT are much less likely to fail there. Requests to the chain's default endpoints start at least 1.1 seconds apart, through a queue shared by every toolbox in the process. Waits therefore grow with concurrent TON activity; for servers and other high-volume use, configure a custom TON RPC or a Toncenter API key, which is not spaced out. The endpoint health check is not queued. A request rejected with 429 or a gateway error (502 and above) is sent again after 1, 2 and 4 seconds. A node's 500 answer, such as a rejected message, a timeout and a network failure fail at once. A jetton lookup that the RPC does not answer is reported as helpers_chain_rpc_connection_failed instead of core_swap_contract_not_found. A toolbox looks up each jetton wallet address only once per jetton and owner. (via @swapkit/helpers@6.4.0)
    • #464 c20cc10 Thanks @github-actions! - Update generated token lists. (via @swapkit/helpers@6.4.0)
    • #468 8062907 Thanks @ice-chillios! - The TON toolbox no longer falls back to Orbs TON Access when every configured TON RPC fails. That service no longer returns any nodes, so the fallback itself failed with an unclear error. Now the toolbox throws helpers_chain_rpc_connection_failed, and jetton transfers and sweeps report that error instead of core_swap_contract_not_found. Set a working endpoint with SKConfig.setRpcUrl(Chain.Ton, [...]) or pass provider to the toolbox. The @orbs-network/ton-access dependency is removed. (via @swapkit/toolboxes@6.5.0)
  • #216 894f4bd Thanks @hippocampusSK! - Trezor signs transparent Zcash as version 5 transactions, carrying the branch id, expiry and lock time of the transaction it was handed instead of a fixed version 4 header. Signing as v4 made Trezor Connect fetch and parse every previous transaction, and it cannot read the v6 transactions in use since Ironwood, so spending ZEC received that way failed with "Transaction has unexpected data"; v5 commits to the input amounts directly and needs no previous transactions. It also keeps Trezor working through the NU7 network upgrade (mainnet block 3,543,405, around 5 November 2026), which rejects version 4 transactions: the SDK resolves the branch id and version from the block height, and the signer now passes them through. signPCZT returns a v5 PCZT carrying the header Trezor signed, so the transaction extracted from it matches the signatures. A transaction handed over as raw bytes carries no input amounts, so the signer now looks them up by outpoint before signing and refuses when one cannot be resolved, instead of asking the device to sign zero-value inputs.

@swapkit/wallets@6.2.0

Minor Changes

  • #209 542e1f8 Thanks @hippocampusSK! - The keystore wallet now declares that it can sign Bitcoin messages (signingSupport[Chain.Bitcoin].btcMessage, carried on the connected Bitcoin wallet as signing.btcMessage), so flows that need one, like cancelling a Harbor Bitcoin limit order, can use it. A keystore using a Bitcoin address type that Bitcoin message signatures cannot express, such as Taproot, does not declare it.
  • #215 5904076 Thanks @hippocampusSK! - Ledger keeps signing Zcash through the NU7 network upgrade (mainnet block 3,543,405, around 5 November 2026). The Ledger Zcash signer kit moves to 0.9.0, the first release whose mainnet table carries the NU7 consensus branch id 0x77190ad9, and the client now maps a transaction built under NU7 to that activation height. Each previous transaction is framed with the same height, so a v4 input is hashed under the branch the transaction is signed for rather than the kit's default. Before NU7 nothing changes: transactions built under Ironwood still sign under Ironwood. The device must run the Zcash app release that accepts the NU7 branch id, installed from Ledger Live. The Device Management Kit moves to 1.11.0, with the Ethereum signer kit and context module on the matching releases, and @swapkit/utxo-signer to 3.2.0 across the wallet packages.
  • #215 5904076 Thanks @hippocampusSK! - Update SwapKit SDK dependencies:
  • #182 190babc Thanks @hippocampusSK! - Add HyperCore (Hyperliquid) support to the Trezor wallet for USDC transfers and swaps. (via @swapkit/wallet-hardware@6.3.0)
  • #208 6e087ca Thanks @mfaizan1! - Sign Zcash sends and swaps on Ledger again. The connector told the device that change returns to the account's receive address, and the Zcash app only accepts a change path on the internal chain (…/1/x), so every transaction was refused with status 6986 before the review screen. Change on a receive address is now left for the device to show as a regular output, which you approve along with the payment. (via @swapkit/wallet-hardware@6.3.0)
  • #216 894f4bd Thanks @hippocampusSK! - Trezor signs transparent Zcash as version 5 transactions, carrying the branch id, expiry and lock time of the transaction it was handed instead of a fixed version 4 header. Signing as v4 made Trezor Connect fetch and parse every previous transaction, and it cannot read the v6 transactions in use since Ironwood, so spending ZEC received that way failed with "Transaction has unexpected data"; v5 commits to the input amounts directly and needs no previous transactions. It also keeps Trezor working through the NU7 network upgrade (mainnet block 3,543,405, around 5 November 2026), which rejects version 4 transactions: the SDK resolves the branch id and version from the block height, and the signer now passes them through. signPCZT returns a v5 PCZT carrying the header Trezor signed, so the transaction extracted from it matches the signatures. A transaction handed over as raw bytes carries no input amounts, so the signer now looks them up by outpoint before signing and refuses when one cannot be resolved, instead of asking the device to sign zero-value inputs. (via @swapkit/wallet-hardware@6.3.0)
  • #210 4e3f9f7 Thanks @hippocampusSK! - OneKey now connects Stellar, TON, TRON and NEAR on mainnet, alongside its EVM chains. Bitcoin and Solana connections work again: they were looking for wallet providers the OneKey extension never exposes, so connecting either chain always failed. A TRON or Stellar signature from OneKey is rejected if it covers a different transaction than the one requested. (via @swapkit/wallet-extensions@4.9.0)

@swapkit/sdk@5.1.5

Patch Changes

  • #219 14dfb3f Thanks @github-actions! - Update SwapKit SDK dependencies:
  • #209 542e1f8 Thanks @hippocampusSK! - The keystore wallet now declares that it can sign Bitcoin messages (signingSupport[Chain.Bitcoin].btcMessage, carried on the connected Bitcoin wallet as signing.btcMessage), so flows that need one, like cancelling a Harbor Bitcoin limit order, can use it. A keystore using a Bitcoin address type that Bitcoin message signatures cannot express, such as Taproot, does not declare it. (via @swapkit/wallets@6.2.0)
  • #215 5904076 Thanks @hippocampusSK! - Ledger keeps signing Zcash through the NU7 network upgrade (mainnet block 3,543,405, around 5 November 2026). The Ledger Zcash signer kit moves to 0.9.0, the first release whose mainnet table carries the NU7 consensus branch id 0x77190ad9, and the client now maps a transaction built under NU7 to that activation height. Each previous transaction is framed with the same height, so a v4 input is hashed under the branch the transaction is signed for rather than the kit's default. Before NU7 nothing changes: transactions built under Ironwood still sign under Ironwood. The device must run the Zcash app release that accepts the NU7 branch id, installed from Ledger Live. The Device Management Kit moves to 1.11.0, with the Ethereum signer kit and context module on the matching releases, and @swapkit/utxo-signer to 3.2.0 across the wallet packages. (via @swapkit/wallets@6.2.0)
  • #215 5904076 Thanks @hippocampusSK! - Update SwapKit SDK dependencies: (via @swapkit/wallets@6.2.0)
  • #182 190babc Thanks @hippocampusSK! - Add HyperCore (Hyperliquid) support to the Trezor wallet for USDC transfers and swaps. (via @swapkit/wallets@6.2.0)
  • #208 6e087ca Thanks @mfaizan1! - Sign Zcash sends and swaps on Ledger again. The connector told the device that change returns to the account's receive address, and the Zcash app only accepts a change path on the internal chain (…/1/x), so every transaction was refused with status 6986 before the review screen. Change on a receive address is now left for the device to show as a regular output, which you approve along with the payment. (via @swapkit/wallets@6.2.0)
  • #216 894f4bd Thanks @hippocampusSK! - Trezor signs transparent Zcash as version 5 transactions, carrying the branch id, expiry and lock time of the transaction it was handed instead of a fixed version 4 header. Signing as v4 made Trezor Connect fetch and parse every previous transaction, and it cannot read the v6 transactions in use since Ironwood, so spending ZEC received that way failed with "Transaction has unexpected data"; v5 commits to the input amounts directly and needs no previous transactions. It also keeps Trezor working through the NU7 network upgrade (mainnet block 3,543,405, around 5 November 2026), which rejects version 4 transactions: the SDK resolves the branch id and version from the block height, and the signer now passes them through. signPCZT returns a v5 PCZT carrying the header Trezor signed, so the transaction extracted from it matches the signatures. A transaction handed over as raw bytes carries no input amounts, so the signer now looks them up by outpoint before signing and refuses when one cannot be resolved, instead of asking the device to sign zero-value inputs. (via @swapkit/wallets@6.2.0)
  • #210 4e3f9f7 Thanks @hippocampusSK! - OneKey now connects Stellar, TON, TRON and NEAR on mainnet, alongside its EVM chains. Bitcoin and Solana connections work again: they were looking for wallet providers the OneKey extension never exposes, so connecting either chain always failed. A TRON or Stellar signature from OneKey is rejected if it covers a different transaction than the one requested. (via @swapkit/wallets@6.2.0)

@swapkit/wallet-mobile@4.3.32

Patch Changes

  • #219 14dfb3f Thanks @github-actions! - Update SwapKit SDK dependencies:

    • #485 c380f81 Thanks @0xepicode! - The UTXO toolbox's Blockchair host is now configurable via SKConfig.set({ blockchairApiUrl }). When set, every Blockchair read and broadcast routes through that host (the /{chain-slug} path is still appended), letting a consumer proxy the calls and keep the API key server-side instead of shipping it to the browser. Unset, it defaults to https://api.blockchair.com as before. (via @swapkit/helpers@6.4.2)
    • #472 f960277 Thanks @ice-chillios! - Solana token transfers now use the token program that owns the mint. Before, every transfer was built for the original SPL Token program, so transfers of Token-2022 tokens such as PYUSD failed with "incorrect program id". A mint that does not exist, or that neither program owns, now throws toolbox_solana_unsupported_token_program from createTransaction, transfer and estimateTransactionFee. getBalanceFromRPC also lists Token-2022 balances, and checkPayerBalance sizes a new Token-2022 token account like the payer's own. (via @swapkit/helpers@6.4.2)
    • #466 2957c2f Thanks @ice-chillios! - THORChain and Maya tokens whose denom contains more than one "/", such as staked RUJI (x/staking-x/ruji), now keep their full name. Their balances show under the right asset, and sending or depositing them uses the full denom instead of a cut-off one that the chain rejects. THORChain and Maya asset identifiers with an empty part, such as THOR.ETH//ETH, are now rejected with helpers_invalid_asset_identifier instead of being cut short. (via @swapkit/helpers@6.4.2)
    • #484 c03235b Thanks @github-actions! - Update generated token lists. (via @swapkit/helpers@6.4.2)
    • #481 b09262a Thanks @hippocampusSK! - Zcash transfers to ZIP-320 TEX addresses (tex1…), the format THORChain publishes its ZEC vault in, are now built instead of being rejected as invalid. TEX addresses are reported as their own tex address type, THORChain and Maya swaps accept them as the ZEC destination, and toTransparentZcashAddress converts one to the t1 address it pays on chain. (via @swapkit/toolboxes@6.6.0)
    • #477 efc495d Thanks @hippocampusSK! - Selling from HyperCore now works through NEAR Intents as well as Flashnet, and each swap sends the funds to the account that provider credits. (via @swapkit/toolboxes@6.6.0)
    • #483 b717e30 Thanks @0xepicode! - Transparent Zcash swaps now broadcast the extracted network transaction instead of the PCZT envelope. The toolbox signer discriminated the transaction it received with instanceof ZcashPSBT / instanceof PCZT, but the swap plugin builds that transaction through a dynamic import of @swapkit/utxo-signer, which a bundler can resolve to a different module instance than the toolbox's static import. The instanceof check then missed, the signer fell through to its generic branch, and the still-wrapped PSBT was broadcast as its PCZT envelope — which the network rejects. The signer now discriminates by shape — a PCZT and a ZcashPSBT both expose extract, a raw transaction does not — which is independent of class identity. (via @swapkit/toolboxes@6.6.0)
    • #479 d3e65c6 Thanks @hippocampusSK! - The limit order parameter types used by the SwapKit plugin are now exported, so projects that re-export the plugins can build their type declarations again. (via @swapkit/plugins@5.2.1)
    • #478 0ea5efb Thanks @hippocampusSK! - The Tron toolbox now reports toolbox_tron_insufficient_balance instead of toolbox_tron_transaction_creation_failed when the node rejects a TRX or TRC-20 transfer because the wallet cannot cover it, including the extra fee for sending to an account that is not activated yet. The node's reason is kept in the error info, and transfer no longer wraps this error in toolbox_tron_token_transfer_failed. (via @swapkit/plugins@5.2.1)
    • #460 9190931 Thanks @hippocampusSK! - Add limit orders. A SwapKit instance with the swapkit plugin exposes swapKit.limitOrder: tokens, quote, build, sign, submit, execute, list, get, allowedProviders and canSign, plus cancel.build, cancel.sign, cancel.submit and cancel.execute. execute({ build }) signs a built order with the connected wallet and submits it in one step; cancel.execute(orderId) does the same for a cancellation.
    • #467 6ddbd12 Thanks @ice-chillios! - getTokenAddress and getChecksumAddressFromAsset now use isGasAsset, so MONAD.MON, XLAYER.OKB and GNO.xDAI resolve to the native asset address instead of returning null or throwing. Identifiers that repeat the chain name on a chain whose gas asset has another ticker, such as ARB.ARB or BSC.BSC, no longer resolve to the native asset address. ContractAddress[Chain.Optimism] is now the zero address, like every EVM chain except Polygon, so OP.ETH resolves to the zero address instead of the OP token contract (0x4200000000000000000000000000000000000042). OP.OP without an address still resolves to the OP token contract. The Botanix toolbox now targets the Botanix network instead of Sonic. (via @swapkit/helpers@6.4.0)
    • #474 f107064 Thanks @ice-chillios! - The TON toolbox spaces out and retries its requests to the public Toncenter endpoint, which allows about one request per second without an API key, so TON jetton sales such as TON.USDT are much less likely to fail there. Requests to the chain's default endpoints start at least 1.1 seconds apart, through a queue shared by every toolbox in the process. Waits therefore grow with concurrent TON activity; for servers and other high-volume use, configure a custom TON RPC or a Toncenter API key, which is not spaced out. The endpoint health check is not queued. A request rejected with 429 or a gateway error (502 and above) is sent again after 1, 2 and 4 seconds. A node's 500 answer, such as a rejected message, a timeout and a network failure fail at once. A jetton lookup that the RPC does not answer is reported as helpers_chain_rpc_connection_failed instead of core_swap_contract_not_found. A toolbox looks up each jetton wallet address only once per jetton and owner. (via @swapkit/helpers@6.4.0)
    • #464 c20cc10 Thanks @github-actions! - Update generated token lists. (via @swapkit/helpers@6.4.0)
    • #468 8062907 Thanks @ice-chillios! - The TON toolbox no longer falls back to Orbs TON Access when every configured TON RPC fails. That service no longer returns any nodes, so the fallback itself failed with an unclear error. Now the toolbox throws helpers_chain_rpc_connection_failed, and jetton transfers and sweeps report that error instead of core_swap_contract_not_found. Set a working endpoint with SKConfig.setRpcUrl(Chain.Ton, [...]) or pass provider to the toolbox. The @orbs-network/ton-access dependency is removed. (via @swapkit/toolboxes@6.5.0)
    • #465 d03591d Thanks @towanTG! - Zcash transactions keep working through the NU7 network upgrade (mainnet block 3,543,405, around 5 November 2026), which rejects version 4 transactions. From the activation block on, the Zcash toolbox builds version 5 transactions with the NU7 consensus branch id 0x77190ad9; before it, nothing changes. If the block height can't be fetched, building a Zcash transaction now fails with toolbox_utxo_api_error instead of guessing the format, because a guess on the wrong side of an upgrade produces a transaction the network rejects. @swapkit/utxo-signer can now build, sign, parse and compute the txid of transparent version 5 transactions, including version 5 PSBTs and PCZTs, and exports getZcashTransactionFormat and ZCASH_NU7_ACTIVATION_HEIGHT. Parsing a raw Zcash transaction now keeps input txids in the right byte order, so re-serializing it no longer changes them. (via @swapkit/toolboxes@6.5.0)

@github-actions
github-actions Bot force-pushed the changeset-release/develop branch 6 times, most recently from a04b51b to 565d1bd Compare November 3, 2026 16:51
@github-actions
github-actions Bot force-pushed the changeset-release/develop branch from 565d1bd to 674547d Compare November 3, 2026 17:07
@hippocampusSK
hippocampusSK merged commit 15a8aad into develop Nov 3, 2026
2 checks passed
@hippocampusSK
hippocampusSK deleted the changeset-release/develop branch November 3, 2026 17:10
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.

1 participant