diff --git a/.changeset/keystore-btc-message-signing.md b/.changeset/keystore-btc-message-signing.md deleted file mode 100644 index c08097c0..00000000 --- a/.changeset/keystore-btc-message-signing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@swapkit/wallets": minor ---- - -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. diff --git a/.changeset/ledger-zcash-change-path.md b/.changeset/ledger-zcash-change-path.md deleted file mode 100644 index 6169dc61..00000000 --- a/.changeset/ledger-zcash-change-path.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@swapkit/wallet-hardware": patch ---- - -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. diff --git a/.changeset/ledger-zcash-nu7.md b/.changeset/ledger-zcash-nu7.md deleted file mode 100644 index ae0b2d7a..00000000 --- a/.changeset/ledger-zcash-nu7.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@swapkit/wallet-hardware": minor -"@swapkit/wallet-extensions": patch -"@swapkit/wallets": patch ---- - -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. diff --git a/.changeset/onekey-multichain-support.md b/.changeset/onekey-multichain-support.md deleted file mode 100644 index 29e9dae9..00000000 --- a/.changeset/onekey-multichain-support.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@swapkit/wallet-extensions": minor ---- - -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. diff --git a/.changeset/swapkit-sdk-246j4ukv3j30h.md b/.changeset/swapkit-sdk-246j4ukv3j30h.md deleted file mode 100644 index e7669fe4..00000000 --- a/.changeset/swapkit-sdk-246j4ukv3j30h.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@swapkit/wallet-extensions": patch -"@swapkit/wallet-hardware": patch -"@swapkit/wallets": patch ---- - -Update SwapKit SDK dependencies: - -- @swapkit/utxo-signer: 3.1.1 → 3.2.0 diff --git a/.changeset/swapkit-sdk-37rn56szd46f7.md b/.changeset/swapkit-sdk-37rn56szd46f7.md deleted file mode 100644 index 432e2732..00000000 --- a/.changeset/swapkit-sdk-37rn56szd46f7.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@swapkit/sdk": patch -"@swapkit/wallet-extensions": patch -"@swapkit/wallet-hardware": patch -"@swapkit/wallet-mobile": patch -"@swapkit/wallets": patch ---- - -Update SwapKit SDK dependencies: - -- @swapkit/core: 5.4.1 → 5.4.2 -- @swapkit/helpers: 6.4.1 → 6.4.2 -- @swapkit/toolboxes: 6.5.1 → 6.6.0 -- @swapkit/utxo-signer: 3.2.0 → 3.3.0 diff --git a/.changeset/swapkit-sdk-3j7idluqjw4zz.md b/.changeset/swapkit-sdk-3j7idluqjw4zz.md deleted file mode 100644 index b55f9ec7..00000000 --- a/.changeset/swapkit-sdk-3j7idluqjw4zz.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@swapkit/sdk": patch -"@swapkit/wallet-extensions": patch -"@swapkit/wallet-hardware": patch -"@swapkit/wallet-mobile": patch -"@swapkit/wallets": patch ---- - -Update SwapKit SDK dependencies: - -- @swapkit/core: 5.3.0 → 5.4.1 -- @swapkit/helpers: 6.3.0 → 6.4.1 -- @swapkit/toolboxes: 6.4.1 → 6.5.1 diff --git a/.changeset/trezor-hypercore.md b/.changeset/trezor-hypercore.md deleted file mode 100644 index a9a73147..00000000 --- a/.changeset/trezor-hypercore.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@swapkit/wallet-hardware": minor ---- - -Add HyperCore (Hyperliquid) support to the Trezor wallet for USDC transfers and swaps. diff --git a/.changeset/trezor-zcash-v5-signing.md b/.changeset/trezor-zcash-v5-signing.md deleted file mode 100644 index b3552bbe..00000000 --- a/.changeset/trezor-zcash-v5-signing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@swapkit/wallet-hardware": patch ---- - -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. diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md index 30833011..2280a987 100644 --- a/packages/sdk/CHANGELOG.md +++ b/packages/sdk/CHANGELOG.md @@ -1,5 +1,18 @@ # @swapkit/sdk +## 5.1.5 + +### Patch Changes + +- [#219](https://github.com/swapkit/wallets/pull/219) [`14dfb3f`](https://github.com/swapkit/wallets/commit/14dfb3f145a33e246c456f6cb2a98c27d10b4540) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update SwapKit SDK dependencies: +- [#209](https://github.com/swapkit/wallets/pull/209) [`542e1f8`](https://github.com/swapkit/wallets/commit/542e1f8126b4045c9b38e8a4371380223745aa49) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/wallets/pull/215) [`5904076`](https://github.com/swapkit/wallets/commit/5904076f28afd4866331fd735f3b0d7f6dd2adaf) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/wallets/pull/215) [`5904076`](https://github.com/swapkit/wallets/commit/5904076f28afd4866331fd735f3b0d7f6dd2adaf) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Update SwapKit SDK dependencies: (via @swapkit/wallets@6.2.0) +- [#182](https://github.com/swapkit/wallets/pull/182) [`190babc`](https://github.com/swapkit/wallets/commit/190babc006c9ff5cc54fc71e3098f1556e7ab2ed) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Add HyperCore (Hyperliquid) support to the Trezor wallet for USDC transfers and swaps. (via @swapkit/wallets@6.2.0) +- [#208](https://github.com/swapkit/wallets/pull/208) [`6e087ca`](https://github.com/swapkit/wallets/commit/6e087ca27f3890c5ea627481b9a2d3cffff14234) Thanks [@mfaizan1](https://github.com/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](https://github.com/swapkit/wallets/pull/216) [`894f4bd`](https://github.com/swapkit/wallets/commit/894f4bd0e6a42deed66e9400abd18fbf625ed574) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/wallets/pull/210) [`4e3f9f7`](https://github.com/swapkit/wallets/commit/4e3f9f7f4c955f2eca10ca2419d3db5089a8c0e2) Thanks [@hippocampusSK](https://github.com/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) + ## 5.1.4 ### Patch Changes diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 3164f44a..0870edc9 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -45,12 +45,21 @@ "types": "./dist/types/wallets.d.ts" } }, - "files": ["dist/", "src/"], + "files": [ + "dist/", + "src/" + ], "homepage": "https://github.com/swapkit/wallets", "license": "SEE LICENSE IN LICENSE", "name": "@swapkit/sdk", - "publishConfig": { "access": "public" }, - "repository": { "directory": "packages/sdk", "type": "git", "url": "git+https://github.com/swapkit/wallets.git" }, + "publishConfig": { + "access": "public" + }, + "repository": { + "directory": "packages/sdk", + "type": "git", + "url": "git+https://github.com/swapkit/wallets.git" + }, "scripts": { "build": "bun run ./build.ts", "build:clean": "rm -rf dist && bun run ./build.ts", @@ -59,5 +68,5 @@ "type-check:go": "tsgo" }, "type": "module", - "version": "5.1.4" + "version": "5.1.5" } diff --git a/packages/wallet-extensions/CHANGELOG.md b/packages/wallet-extensions/CHANGELOG.md index 71855ab6..061ebfca 100644 --- a/packages/wallet-extensions/CHANGELOG.md +++ b/packages/wallet-extensions/CHANGELOG.md @@ -1,5 +1,35 @@ # @swapkit-dev/wallet-extensions +## 4.9.0 + +### Minor Changes + +- [#210](https://github.com/swapkit/wallets/pull/210) [`4e3f9f7`](https://github.com/swapkit/wallets/commit/4e3f9f7f4c955f2eca10ca2419d3db5089a8c0e2) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/wallets/pull/215) [`5904076`](https://github.com/swapkit/wallets/commit/5904076f28afd4866331fd735f3b0d7f6dd2adaf) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/wallets/pull/215) [`5904076`](https://github.com/swapkit/wallets/commit/5904076f28afd4866331fd735f3b0d7f6dd2adaf) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Update SwapKit SDK dependencies: + + - [#465](https://github.com/swapkit/sdk/pull/465) [`d03591d`](https://github.com/swapkit/sdk/commit/d03591dd257fb2735d1ce1eb72540e11082a084e) Thanks [@towanTG](https://github.com/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](https://github.com/swapkit/sdk/pull/485) [`c380f81`](https://github.com/swapkit/sdk/commit/c380f812ad4e844a5a0782e020699b6d9ff5a10a) Thanks [@0xepicode](https://github.com/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](https://github.com/swapkit/sdk/pull/472) [`f960277`](https://github.com/swapkit/sdk/commit/f960277adc6f9f20807f732858324eef971cb397) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/466) [`2957c2f`](https://github.com/swapkit/sdk/commit/2957c2fe6605b10b08e280acc0aefd43fb095d64) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/484) [`c03235b`](https://github.com/swapkit/sdk/commit/c03235b7a06fc3c71c67c0407a2c8c5159b4cb17) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update generated token lists. (via @swapkit/helpers@6.4.2) + - [#481](https://github.com/swapkit/sdk/pull/481) [`b09262a`](https://github.com/swapkit/sdk/commit/b09262a0113cbd09f3c2b08711008dfbd55a0e76) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/477) [`efc495d`](https://github.com/swapkit/sdk/commit/efc495df7dfb7851876e5d8ca7567ce64070b494) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/483) [`b717e30`](https://github.com/swapkit/sdk/commit/b717e309061c894fb7b6b9d27acffa1e58399efa) Thanks [@0xepicode](https://github.com/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](https://github.com/swapkit/sdk/pull/479) [`d3e65c6`](https://github.com/swapkit/sdk/commit/d3e65c6ee0d79cf6d515fa87c668749232a4cb01) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/478) [`0ea5efb`](https://github.com/swapkit/sdk/commit/0ea5efbcd24d3771b169e893d583760c64838f6b) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/460) [`9190931`](https://github.com/swapkit/sdk/commit/9190931bb2c1f911543a22cb8ccc91e3913cfe6c) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/467) [`6ddbd12`](https://github.com/swapkit/sdk/commit/6ddbd12b87af88d304aa575518970214ca4516e9) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/474) [`f107064`](https://github.com/swapkit/sdk/commit/f10706478e42440912a009b011b92b4e345104f8) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/464) [`c20cc10`](https://github.com/swapkit/sdk/commit/c20cc10b4534c7948dfe4b57f29e07f1b183f1ca) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update generated token lists. (via @swapkit/helpers@6.4.0) + - [#468](https://github.com/swapkit/sdk/pull/468) [`8062907`](https://github.com/swapkit/sdk/commit/8062907e7f2dd5a7c12f436b9ee3a2b5fad66e15) Thanks [@ice-chillios](https://github.com/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) + ## 4.8.0 ### Minor Changes diff --git a/packages/wallet-extensions/package.json b/packages/wallet-extensions/package.json index c481350f..816e5e85 100644 --- a/packages/wallet-extensions/package.json +++ b/packages/wallet-extensions/package.json @@ -147,11 +147,16 @@ "types": "./dist/types/vultisig/index.d.ts" } }, - "files": ["dist/", "src/"], + "files": [ + "dist/", + "src/" + ], "homepage": "https://github.com/swapkit/wallets", "license": "SEE LICENSE IN LICENSE", "name": "@swapkit/wallet-extensions", - "publishConfig": { "access": "public" }, + "publishConfig": { + "access": "public" + }, "repository": { "directory": "packages/wallet-extensions", "type": "git", @@ -165,5 +170,5 @@ "type-check:go": "tsgo" }, "type": "module", - "version": "4.8.0" + "version": "4.9.0" } diff --git a/packages/wallet-hardware/CHANGELOG.md b/packages/wallet-hardware/CHANGELOG.md index c1ff6783..3a40b97c 100644 --- a/packages/wallet-hardware/CHANGELOG.md +++ b/packages/wallet-hardware/CHANGELOG.md @@ -1,5 +1,37 @@ # @swapkit-dev/wallet-hardware +## 6.3.0 + +### Minor Changes + +- [#215](https://github.com/swapkit/wallets/pull/215) [`5904076`](https://github.com/swapkit/wallets/commit/5904076f28afd4866331fd735f3b0d7f6dd2adaf) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/wallets/pull/182) [`190babc`](https://github.com/swapkit/wallets/commit/190babc006c9ff5cc54fc71e3098f1556e7ab2ed) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Add HyperCore (Hyperliquid) support to the Trezor wallet for USDC transfers and swaps. + +### Patch Changes + +- [#208](https://github.com/swapkit/wallets/pull/208) [`6e087ca`](https://github.com/swapkit/wallets/commit/6e087ca27f3890c5ea627481b9a2d3cffff14234) Thanks [@mfaizan1](https://github.com/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](https://github.com/swapkit/wallets/pull/215) [`5904076`](https://github.com/swapkit/wallets/commit/5904076f28afd4866331fd735f3b0d7f6dd2adaf) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Update SwapKit SDK dependencies: + + - [#465](https://github.com/swapkit/sdk/pull/465) [`d03591d`](https://github.com/swapkit/sdk/commit/d03591dd257fb2735d1ce1eb72540e11082a084e) Thanks [@towanTG](https://github.com/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](https://github.com/swapkit/sdk/pull/485) [`c380f81`](https://github.com/swapkit/sdk/commit/c380f812ad4e844a5a0782e020699b6d9ff5a10a) Thanks [@0xepicode](https://github.com/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](https://github.com/swapkit/sdk/pull/472) [`f960277`](https://github.com/swapkit/sdk/commit/f960277adc6f9f20807f732858324eef971cb397) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/466) [`2957c2f`](https://github.com/swapkit/sdk/commit/2957c2fe6605b10b08e280acc0aefd43fb095d64) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/484) [`c03235b`](https://github.com/swapkit/sdk/commit/c03235b7a06fc3c71c67c0407a2c8c5159b4cb17) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update generated token lists. (via @swapkit/helpers@6.4.2) + - [#481](https://github.com/swapkit/sdk/pull/481) [`b09262a`](https://github.com/swapkit/sdk/commit/b09262a0113cbd09f3c2b08711008dfbd55a0e76) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/477) [`efc495d`](https://github.com/swapkit/sdk/commit/efc495df7dfb7851876e5d8ca7567ce64070b494) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/483) [`b717e30`](https://github.com/swapkit/sdk/commit/b717e309061c894fb7b6b9d27acffa1e58399efa) Thanks [@0xepicode](https://github.com/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](https://github.com/swapkit/sdk/pull/479) [`d3e65c6`](https://github.com/swapkit/sdk/commit/d3e65c6ee0d79cf6d515fa87c668749232a4cb01) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/478) [`0ea5efb`](https://github.com/swapkit/sdk/commit/0ea5efbcd24d3771b169e893d583760c64838f6b) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/460) [`9190931`](https://github.com/swapkit/sdk/commit/9190931bb2c1f911543a22cb8ccc91e3913cfe6c) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/467) [`6ddbd12`](https://github.com/swapkit/sdk/commit/6ddbd12b87af88d304aa575518970214ca4516e9) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/474) [`f107064`](https://github.com/swapkit/sdk/commit/f10706478e42440912a009b011b92b4e345104f8) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/464) [`c20cc10`](https://github.com/swapkit/sdk/commit/c20cc10b4534c7948dfe4b57f29e07f1b183f1ca) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update generated token lists. (via @swapkit/helpers@6.4.0) + - [#468](https://github.com/swapkit/sdk/pull/468) [`8062907`](https://github.com/swapkit/sdk/commit/8062907e7f2dd5a7c12f436b9ee3a2b5fad66e15) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/wallets/pull/216) [`894f4bd`](https://github.com/swapkit/wallets/commit/894f4bd0e6a42deed66e9400abd18fbf625ed574) Thanks [@hippocampusSK](https://github.com/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. + ## 6.2.0 ### Minor Changes diff --git a/packages/wallet-hardware/package.json b/packages/wallet-hardware/package.json index 93fe8fc3..e6fec2c2 100644 --- a/packages/wallet-hardware/package.json +++ b/packages/wallet-hardware/package.json @@ -107,11 +107,16 @@ "types": "./dist/types/trezor/index.d.ts" } }, - "files": ["dist/", "src/"], + "files": [ + "dist/", + "src/" + ], "homepage": "https://github.com/swapkit/wallets", "license": "SEE LICENSE IN LICENSE", "name": "@swapkit/wallet-hardware", - "publishConfig": { "access": "public" }, + "publishConfig": { + "access": "public" + }, "repository": { "directory": "packages/wallet-hardware", "type": "git", @@ -125,5 +130,5 @@ "type-check:go": "tsgo" }, "type": "module", - "version": "6.2.0" + "version": "6.3.0" } diff --git a/packages/wallet-mobile/CHANGELOG.md b/packages/wallet-mobile/CHANGELOG.md index 75fd17c4..1eea8a7d 100644 --- a/packages/wallet-mobile/CHANGELOG.md +++ b/packages/wallet-mobile/CHANGELOG.md @@ -1,5 +1,27 @@ # @swapkit-dev/wallet-mobile +## 4.3.32 + +### Patch Changes + +- [#219](https://github.com/swapkit/wallets/pull/219) [`14dfb3f`](https://github.com/swapkit/wallets/commit/14dfb3f145a33e246c456f6cb2a98c27d10b4540) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update SwapKit SDK dependencies: + + - [#485](https://github.com/swapkit/sdk/pull/485) [`c380f81`](https://github.com/swapkit/sdk/commit/c380f812ad4e844a5a0782e020699b6d9ff5a10a) Thanks [@0xepicode](https://github.com/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](https://github.com/swapkit/sdk/pull/472) [`f960277`](https://github.com/swapkit/sdk/commit/f960277adc6f9f20807f732858324eef971cb397) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/466) [`2957c2f`](https://github.com/swapkit/sdk/commit/2957c2fe6605b10b08e280acc0aefd43fb095d64) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/484) [`c03235b`](https://github.com/swapkit/sdk/commit/c03235b7a06fc3c71c67c0407a2c8c5159b4cb17) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update generated token lists. (via @swapkit/helpers@6.4.2) + - [#481](https://github.com/swapkit/sdk/pull/481) [`b09262a`](https://github.com/swapkit/sdk/commit/b09262a0113cbd09f3c2b08711008dfbd55a0e76) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/477) [`efc495d`](https://github.com/swapkit/sdk/commit/efc495df7dfb7851876e5d8ca7567ce64070b494) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/483) [`b717e30`](https://github.com/swapkit/sdk/commit/b717e309061c894fb7b6b9d27acffa1e58399efa) Thanks [@0xepicode](https://github.com/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](https://github.com/swapkit/sdk/pull/479) [`d3e65c6`](https://github.com/swapkit/sdk/commit/d3e65c6ee0d79cf6d515fa87c668749232a4cb01) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/478) [`0ea5efb`](https://github.com/swapkit/sdk/commit/0ea5efbcd24d3771b169e893d583760c64838f6b) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/460) [`9190931`](https://github.com/swapkit/sdk/commit/9190931bb2c1f911543a22cb8ccc91e3913cfe6c) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/sdk/pull/467) [`6ddbd12`](https://github.com/swapkit/sdk/commit/6ddbd12b87af88d304aa575518970214ca4516e9) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/474) [`f107064`](https://github.com/swapkit/sdk/commit/f10706478e42440912a009b011b92b4e345104f8) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/464) [`c20cc10`](https://github.com/swapkit/sdk/commit/c20cc10b4534c7948dfe4b57f29e07f1b183f1ca) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update generated token lists. (via @swapkit/helpers@6.4.0) + - [#468](https://github.com/swapkit/sdk/pull/468) [`8062907`](https://github.com/swapkit/sdk/commit/8062907e7f2dd5a7c12f436b9ee3a2b5fad66e15) Thanks [@ice-chillios](https://github.com/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](https://github.com/swapkit/sdk/pull/465) [`d03591d`](https://github.com/swapkit/sdk/commit/d03591dd257fb2735d1ce1eb72540e11082a084e) Thanks [@towanTG](https://github.com/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) + ## 4.3.31 ### Patch Changes diff --git a/packages/wallet-mobile/package.json b/packages/wallet-mobile/package.json index fdc04962..7e62d127 100644 --- a/packages/wallet-mobile/package.json +++ b/packages/wallet-mobile/package.json @@ -1,6 +1,10 @@ { "author": "swapkit", - "dependencies": { "@swapkit/helpers": "^6.4.2", "@swapkit/toolboxes": "^6.6.0", "@swapkit/wallet-core": "^5.1.0" }, + "dependencies": { + "@swapkit/helpers": "^6.4.2", + "@swapkit/toolboxes": "^6.6.0", + "@swapkit/wallet-core": "^5.1.0" + }, "description": "SwapKit - Wallet Mobile", "exports": { ".": { @@ -10,11 +14,16 @@ "types": "./dist/types/index.d.ts" } }, - "files": ["dist/", "src/"], + "files": [ + "dist/", + "src/" + ], "homepage": "https://github.com/swapkit/wallets", "license": "SEE LICENSE IN LICENSE", "name": "@swapkit/wallet-mobile", - "publishConfig": { "access": "public" }, + "publishConfig": { + "access": "public" + }, "repository": { "directory": "packages/wallet-mobile", "type": "git", @@ -28,5 +37,5 @@ "type-check:go": "tsgo" }, "type": "module", - "version": "4.3.31" + "version": "4.3.32" } diff --git a/packages/wallets/CHANGELOG.md b/packages/wallets/CHANGELOG.md index b13382d7..8c5ebbd9 100644 --- a/packages/wallets/CHANGELOG.md +++ b/packages/wallets/CHANGELOG.md @@ -1,5 +1,17 @@ # @swapkit-dev/wallets +## 6.2.0 + +### Minor Changes + +- [#209](https://github.com/swapkit/wallets/pull/209) [`542e1f8`](https://github.com/swapkit/wallets/commit/542e1f8126b4045c9b38e8a4371380223745aa49) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/wallets/pull/215) [`5904076`](https://github.com/swapkit/wallets/commit/5904076f28afd4866331fd735f3b0d7f6dd2adaf) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/wallets/pull/215) [`5904076`](https://github.com/swapkit/wallets/commit/5904076f28afd4866331fd735f3b0d7f6dd2adaf) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Update SwapKit SDK dependencies: +- [#182](https://github.com/swapkit/wallets/pull/182) [`190babc`](https://github.com/swapkit/wallets/commit/190babc006c9ff5cc54fc71e3098f1556e7ab2ed) Thanks [@hippocampusSK](https://github.com/hippocampusSK)! - Add HyperCore (Hyperliquid) support to the Trezor wallet for USDC transfers and swaps. (via @swapkit/wallet-hardware@6.3.0) +- [#208](https://github.com/swapkit/wallets/pull/208) [`6e087ca`](https://github.com/swapkit/wallets/commit/6e087ca27f3890c5ea627481b9a2d3cffff14234) Thanks [@mfaizan1](https://github.com/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](https://github.com/swapkit/wallets/pull/216) [`894f4bd`](https://github.com/swapkit/wallets/commit/894f4bd0e6a42deed66e9400abd18fbf625ed574) Thanks [@hippocampusSK](https://github.com/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](https://github.com/swapkit/wallets/pull/210) [`4e3f9f7`](https://github.com/swapkit/wallets/commit/4e3f9f7f4c955f2eca10ca2419d3db5089a8c0e2) Thanks [@hippocampusSK](https://github.com/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) + ## 6.1.0 ### Minor Changes diff --git a/packages/wallets/package.json b/packages/wallets/package.json index 2cfdf435..5d9a7cc9 100644 --- a/packages/wallets/package.json +++ b/packages/wallets/package.json @@ -245,12 +245,21 @@ "types": "./dist/types/xaman/index.d.ts" } }, - "files": ["dist/", "src/"], + "files": [ + "dist/", + "src/" + ], "homepage": "https://github.com/swapkit/wallets", "license": "SEE LICENSE IN LICENSE", "name": "@swapkit/wallets", - "publishConfig": { "access": "public" }, - "repository": { "directory": "packages/wallets", "type": "git", "url": "git+https://github.com/swapkit/wallets.git" }, + "publishConfig": { + "access": "public" + }, + "repository": { + "directory": "packages/wallets", + "type": "git", + "url": "git+https://github.com/swapkit/wallets.git" + }, "scripts": { "build": "bun run ./build.ts", "build:clean": "rm -rf dist && bun run ./build.ts", @@ -259,5 +268,5 @@ "type-check:go": "tsgo" }, "type": "module", - "version": "6.1.0" + "version": "6.2.0" } diff --git a/playgrounds/vite-lite/package.json b/playgrounds/vite-lite/package.json index 251883f5..254b0f90 100644 --- a/playgrounds/vite-lite/package.json +++ b/playgrounds/vite-lite/package.json @@ -23,7 +23,11 @@ }, "name": "@internal/playground-vite-lite", "private": true, - "scripts": { "build": "vite build", "dev": "vite", "preview": "vite preview" }, + "scripts": { + "build": "vite build", + "dev": "vite", + "preview": "vite preview" + }, "type": "module", "version": "0.0.9" }