@vultisig/core-chain 2.31.2 → 2.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/chains/sui/prebuiltGasData.d.ts +16 -0
  3. package/dist/chains/sui/prebuiltGasData.d.ts.map +1 -0
  4. package/dist/chains/sui/prebuiltGasData.js +28 -0
  5. package/dist/chains/sui/prebuiltGasData.js.map +1 -0
  6. package/dist/coin/utils/getCoinValue.d.ts +5 -0
  7. package/dist/coin/utils/getCoinValue.d.ts.map +1 -1
  8. package/dist/coin/utils/getCoinValue.js +11 -2
  9. package/dist/coin/utils/getCoinValue.js.map +1 -1
  10. package/dist/swap/general/swapkit/SwapKitEnabledChains.d.ts.map +1 -1
  11. package/dist/swap/general/swapkit/SwapKitEnabledChains.js +9 -6
  12. package/dist/swap/general/swapkit/SwapKitEnabledChains.js.map +1 -1
  13. package/dist/swap/general/swapkit/api/getSwapKitQuote.d.ts.map +1 -1
  14. package/dist/swap/general/swapkit/api/getSwapKitQuote.js +34 -17
  15. package/dist/swap/general/swapkit/api/getSwapKitQuote.js.map +1 -1
  16. package/dist/swap/native/limitSwapCancelBucket.d.ts.map +1 -1
  17. package/dist/swap/native/limitSwapCancelBucket.js +2 -2
  18. package/dist/swap/native/limitSwapCancelBucket.js.map +1 -1
  19. package/dist/swap/native/limitSwapCancelMemo.d.ts +18 -0
  20. package/dist/swap/native/limitSwapCancelMemo.d.ts.map +1 -1
  21. package/dist/swap/native/limitSwapCancelMemo.js +69 -3
  22. package/dist/swap/native/limitSwapCancelMemo.js.map +1 -1
  23. package/dist/swap/native/thorchainMemoAsset.d.ts +96 -1
  24. package/dist/swap/native/thorchainMemoAsset.d.ts.map +1 -1
  25. package/dist/swap/native/thorchainMemoAsset.js +136 -11
  26. package/dist/swap/native/thorchainMemoAsset.js.map +1 -1
  27. package/package.json +6 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # @vultisig/core-chain
2
2
 
3
+ ## 2.33.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1776](https://github.com/vultisig/vultisig-sdk/pull/1776) [`a812367`](https://github.com/vultisig/vultisig-sdk/commit/a812367923ac3781dc240d00124232c6f0cc3348) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - SUI works as a SwapKit swap source, and the transfer-route path no longer trusts SwapKit's `meta.txType` to decide how to decode a payload.
8
+
9
+ Sui was rejected before any network call, on the stated grounds that no `GeneralSwapTx` variant could carry a programmable transaction block. That was never true: the `transfer` variant already carries opaque pre-built bytes as `txType` + `txPayload`, which is exactly how a Bitcoin PSBT route reaches the signer. Nothing needed porting either — `getSuiSigningInputs` has forwarded arbitrary BCS-serialized PTBs to WalletCore's `SignDirect` since the dApp Wallet Standard path landed, and the intent digest it produces is the same blake2b-32 over `[0,0,0] || ptb` that iOS computes by hand in `SwapKitSuiSigner`. The route now rides the transfer arm and hands its bytes to that signer, so a Sui source signs and broadcasts through paths already in use rather than new ones.
10
+
11
+ `disableBuildTx` is no longer opt-out-by-exception. `swapKitTransferSourceChains` mixes deposit-only chains, which need nothing but an address, with chains whose returned bytes _are_ the thing being signed, and the request suppressed transaction building for everything in the list except a hardcoded `!== Chain.Bitcoin`. Adding any prebuilt-tx chain therefore defaulted to asking SwapKit not to build the transaction — the wrong default, and a silent one: the response simply arrives without a `tx`, and the failure surfaces later as an empty payload during keysign construction rather than at the request that caused it. The two kinds of chain are now named separately, so membership of the transfer list no longer implies anything about who builds the transaction.
12
+
13
+ Payload decoding dispatches on the source chain instead of the wire label. SwapKit renames these labels live without versioning — `SOLANA` became `SERIALIZED_BASE64` and `CARDANO` became `CBOR`, both mid-flight — and an unrecognized label fell through to UTF-8-encoding the base64 string instead of decoding it, producing a `txPayload` of the right shape and entirely wrong bytes. The source chain is the discriminator EVM and Solana already used, and it is the only one SwapKit cannot rename. The stored `txType` is normalized to `SUI` for the same reason it must be: iOS hardcodes that spelling rather than persisting what it received, and the field is part of the cosigned `SwapKitSwapPayload`, so a device that stored the wire value would disagree with its own cosigner. A Sui route whose `tx` is not a string is now rejected outright, since the fallback would encode a JSON object into the payload and yield something that looks signable.
14
+
15
+ Pre-built PTBs also report their real network fee. `getSuiChainSpecific` returned an empty `SuiSpecific` for the `signSui` case on the reasoning that a built PTB has no construction inputs to fetch — true, but `getSuiFeeAmount` reads its budget from that message, so `BigInt('')` made every such transaction display a zero fee while the chain charged the budget baked into the bytes. The gas budget and price are read back out of the PTB offline, with no RPC call, and a payload that cannot be decoded still falls back to blank rather than blocking a transaction over a display concern. This corrects the dApp signing path as well as swaps.
16
+
17
+ Cardano stays blocked as a source. Its payload decode returns an empty byte array — there is no implementation at all — so any transaction built from it would be silently wrong.
18
+
19
+ ## 2.32.0
20
+
21
+ ### Minor Changes
22
+
23
+ - [#1696](https://github.com/vultisig/vultisig-sdk/pull/1696) [`37d7044`](https://github.com/vultisig/vultisig-sdk/commit/37d7044e33d475ddce93b91ff6295d55490052b4) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - Limit-order cancellation, end to end: a full-form memo asset, a cancel keysign payload builder, and cancel-aware review for co-signers.
24
+
25
+ The primitives shipped earlier could describe a cancellation but not send one, and a device joining the ceremony could not read one at all. These are the three pieces that close that.
26
+
27
+ `getThorchainCancelMemoAsset` emits the spelling a cancel requires — the same notation as the placement path, minus the abbreviation. That difference is the entire point: `ModifyLimitSwapMemo` is the one inbound memo type `processOneTxIn` does not route through `fuzzyAssetMatch`, so a placement's six-character contract suffix would address a bucket holding no order. `buildCancelLimitSwapMemo` already refused abbreviated assets, which meant there was previously no supported way to produce an input it would accept for a token leg. Both spellings now share one converter and one set of validation rules, so they cannot drift apart in anything but the abbreviation. `getThorchainMemoAssetChain` resolves a memo asset back to its home chain across every flavour, including the secured denoms that a `.`-split would fail to resolve at all.
28
+
29
+ `buildLimitSwapCancelKeysignPayload` turns that memo into a signable transaction, branching on where the order was funded: a THORChain source becomes a `MsgDeposit` carrying no value, and an L1 source a transfer to the live Asgard inbound with derived dust attached solely so Bifrost observes it. The signing asset is the funding chain's **gas** asset, never the order's own — a cancel moves no tokens, and a token here would build an ERC20 transfer that drops the memo entirely. Every gate fails closed: a retarget (`m=<` with a non-zero final field) is refused rather than signed as a cancellation, a memo that overflows the source chain's budget is refused rather than truncated into one matching nothing, and the destination is taken from a live inbound view rather than a cache.
30
+
31
+ The signing coin's chain is checked against the memo's, too. The two arrive as independent parameters, so a caller reaching for "the vault's ETH coin" while holding a BTC-sourced memo would otherwise get a payload that builds, signs and broadcasts cleanly — and is then refunded by THORChain's `From.IsChain(Source.Asset.GetChain())` check, leaving a successful-looking transaction that cancelled nothing. The funding chain is derived from the memo rather than cross-checked against a second parameter, so there is one authority for it. `getThorchainMemoAssetSourceChain` supplies that with `GetChain()` semantics rather than the asset's home chain: a secured or synth source is custodied on THORChain and must be sent from a THOR address even though it originates elsewhere.
32
+
33
+ The `EnableAdvSwapQueue` mimir is deliberately _not_ re-checked here, unlike at placement. That gate protects a new order from executing as an unprotected market swap, a risk a cancel does not carry; refusing to close an already-resting position because the queue stopped accepting new ones would strand it for the remainder of its TTL with no way out.
34
+
35
+ `getKeysignLimitSwapCancel` and `parseCancelLimitSwapMemo` give a joining device the order being closed, decoded from the memo. A cancel carries no swap payload on any branch, so a co-signer keying off one previously saw a dust transfer to an opaque address — worse than uninformative, since a trivial amount reads as harmless while the transaction closes a position. As with placement, the terms come from the memo because the memo is the instruction THORChain executes, so what a reviewer sees cannot disagree with what gets signed. A retarget is reported as not-a-cancellation rather than mislabelled, and the reproduced bucket key travels alongside so a reviewer holding the vault's open orders can tell whether the cancel is unambiguous.
36
+
37
+ `getThorchainCancelMemoAsset` emits its asset UPPER-CASED, unlike the coin's own contract id. Case is not semantic to THORNode — `common.ParseAsset` upper-cases whatever it is given, and the queue index key is built from an upper-cased asset — but it is semantic to this package's pool-id validation, which cancel eligibility routes through to size the memo against its source chain. In the contract's native lower case, every ERC20-funded order reads as an unroutable source chain and becomes uncancellable.
38
+
39
+ ### Patch Changes
40
+
41
+ - [#1755](https://github.com/vultisig/vultisig-sdk/pull/1755) [`7d2a91d`](https://github.com/vultisig/vultisig-sdk/commit/7d2a91de80a297c6db6b2fe2e9db41ace609c822) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Fix fiat valuation losing base-unit precision through float-first conversion, with regression coverage for exact VULT discount-tier boundaries.
42
+
3
43
  ## 2.31.2
4
44
 
5
45
  ### Patch Changes
@@ -0,0 +1,16 @@
1
+ export type SuiPrebuiltGasData = {
2
+ gasBudget: string;
3
+ referenceGasPrice: string;
4
+ };
5
+ /**
6
+ * Read the gas budget and price already baked into a pre-built Sui transaction
7
+ * (a dApp-supplied or SwapKit-supplied PTB, base64 BCS `TransactionData`).
8
+ *
9
+ * Signing never consults these — the bytes are hashed and signed verbatim — but
10
+ * the keysign payload carries them so the fee shown to the user matches what
11
+ * the chain will actually charge. Decoding failures return `undefined` rather
12
+ * than throwing: a display concern must never block an otherwise signable
13
+ * transaction.
14
+ */
15
+ export declare const getSuiPrebuiltGasData: (unsignedTxMsg: string) => SuiPrebuiltGasData | undefined;
16
+ //# sourceMappingURL=prebuiltGasData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prebuiltGasData.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/sui/prebuiltGasData.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAAI,eAAe,MAAM,KAAG,kBAAkB,GAAG,SAiBlF,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { Transaction } from '@mysten/sui/transactions';
2
+ import { fromBase64 } from '@mysten/sui/utils';
3
+ import { attempt } from '@vultisig/lib-utils/attempt';
4
+ /**
5
+ * Read the gas budget and price already baked into a pre-built Sui transaction
6
+ * (a dApp-supplied or SwapKit-supplied PTB, base64 BCS `TransactionData`).
7
+ *
8
+ * Signing never consults these — the bytes are hashed and signed verbatim — but
9
+ * the keysign payload carries them so the fee shown to the user matches what
10
+ * the chain will actually charge. Decoding failures return `undefined` rather
11
+ * than throwing: a display concern must never block an otherwise signable
12
+ * transaction.
13
+ */
14
+ export const getSuiPrebuiltGasData = (unsignedTxMsg) => {
15
+ const result = attempt(() => Transaction.from(fromBase64(unsignedTxMsg)).getData().gasData);
16
+ if ('error' in result) {
17
+ return undefined;
18
+ }
19
+ const { budget, price } = result.data;
20
+ if (!budget) {
21
+ return undefined;
22
+ }
23
+ return {
24
+ gasBudget: String(budget),
25
+ referenceGasPrice: price ? String(price) : '',
26
+ };
27
+ };
28
+ //# sourceMappingURL=prebuiltGasData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prebuiltGasData.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/sui/prebuiltGasData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAOrD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,aAAqB,EAAkC,EAAE;IAC7F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAA;IAE3F,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;IAErC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;QACzB,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;KAC9C,CAAA;AACH,CAAC,CAAA"}
@@ -1,4 +1,9 @@
1
1
  import { CoinAmount } from '@vultisig/core-chain/coin/Coin';
2
2
  import { EntityWithPrice } from '@vultisig/lib-utils/entities/EntityWithPrice';
3
+ /**
4
+ * Convert base units to their exact human decimal before entering the
5
+ * necessarily number-based price calculation. Converting the raw bigint to a
6
+ * number first can round once before division and again afterward.
7
+ */
3
8
  export declare const getCoinValue: ({ amount, decimals, price }: CoinAmount & EntityWithPrice) => number;
4
9
  //# sourceMappingURL=getCoinValue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getCoinValue.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/utils/getCoinValue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAA;AAE9E,eAAO,MAAM,YAAY,GAAI,6BAA6B,UAAU,GAAG,eAAe,WAC3C,CAAA"}
1
+ {"version":3,"file":"getCoinValue.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/utils/getCoinValue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAA;AAE9E;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,6BAA6B,UAAU,GAAG,eAAe,WAKrF,CAAA"}
@@ -1,3 +1,12 @@
1
- import { fromChainAmount } from '@vultisig/core-chain/amount/fromChainAmount';
2
- export const getCoinValue = ({ amount, decimals, price }) => fromChainAmount(amount, decimals) * price;
1
+ import { fromChainAmountExact } from '@vultisig/core-chain/amount/fromChainAmountExact';
2
+ /**
3
+ * Convert base units to their exact human decimal before entering the
4
+ * necessarily number-based price calculation. Converting the raw bigint to a
5
+ * number first can round once before division and again afterward.
6
+ */
7
+ export const getCoinValue = ({ amount, decimals, price }) => {
8
+ const sign = amount < 0n ? -1 : 1;
9
+ const absoluteAmount = amount < 0n ? -amount : amount;
10
+ return sign * Number(fromChainAmountExact(absoluteAmount, decimals)) * price;
11
+ };
3
12
  //# sourceMappingURL=getCoinValue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getCoinValue.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/utils/getCoinValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAI7E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAgC,EAAE,EAAE,CACxF,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAA"}
1
+ {"version":3,"file":"getCoinValue.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/utils/getCoinValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAA;AAIvF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAgC,EAAE,EAAE;IACxF,MAAM,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,cAAc,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;IAErD,OAAO,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAA;AAC9E,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SwapKitEnabledChains.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/general/swapkit/SwapKitEnabledChains.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,2rBA4BtB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAErE,eAAO,MAAM,oBAAoB,8xBAOvB,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"SwapKitEnabledChains.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/general/swapkit/SwapKitEnabledChains.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,2rBA+BtB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAErE,eAAO,MAAM,oBAAoB,8xBAOvB,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA"}
@@ -19,13 +19,16 @@ export const swapKitSourceChains = [
19
19
  // Sui + Cardano confirmed live as SOURCE via SwapKit's NEAR-Intents provider
20
20
  // (SUI.SUI->ETH.ETH, SUI.SUI->BTC.BTC, ADA.ADA->ETH.ETH all returned real
21
21
  // routes). Dest direction already worked (both were already in
22
- // swapKitEnabledChains below). NOTE: type-level source eligibility only —
23
- // `getSwapKitQuote` (getSwapKitQuote.ts) explicitly rejects these two as a
24
- // source with a clear error before making any network call, since neither
25
- // has a wired tx-build/decode path yet (see that file's
26
- // `SWAP_SOURCE_TX_BUILD_UNSUPPORTED` guard for the full explanation). Signing
27
- // support is separate follow-on work, not covered by this change.
22
+ // swapKitEnabledChains below).
23
+ //
24
+ // Sui is wired end-to-end: SwapKit's pre-built PTB rides the `transfer` arm
25
+ // as `txType: 'SUI'` + `txPayload`, and `buildSwapKeysignPayload` hands those
26
+ // bytes to the existing `signSui` signing path.
28
27
  Chain.Sui,
28
+ // Cardano is type-level source eligibility ONLY — `getSwapKitQuote` still
29
+ // rejects it as a source before any network call, because there is no CBOR
30
+ // decode for its payload yet (see that file's
31
+ // `SWAP_SOURCE_TX_BUILD_UNSUPPORTED` guard).
29
32
  Chain.Cardano,
30
33
  ];
31
34
  export const swapKitEnabledChains = [
@@ -1 +1 @@
1
- {"version":3,"file":"SwapKitEnabledChains.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/general/swapkit/SwapKitEnabledChains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,SAAS;IACf,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,GAAG;IACT,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,OAAO;IACb,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,OAAO;IACb,KAAK,CAAC,WAAW;IACjB,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,GAAG;IACT,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,KAAK;IACX,6EAA6E;IAC7E,0EAA0E;IAC1E,+DAA+D;IAC/D,0EAA0E;IAC1E,2EAA2E;IAC3E,0EAA0E;IAC1E,wDAAwD;IACxD,8EAA8E;IAC9E,kEAAkE;IAClE,KAAK,CAAC,GAAG;IACT,KAAK,CAAC,OAAO;CACL,CAAA;AAIV,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,mBAAmB;IACtB,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,SAAS;IACf,KAAK,CAAC,SAAS;CACP,CAAA"}
1
+ {"version":3,"file":"SwapKitEnabledChains.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/general/swapkit/SwapKitEnabledChains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,SAAS;IACf,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,GAAG;IACT,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,OAAO;IACb,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,OAAO;IACb,KAAK,CAAC,WAAW;IACjB,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,GAAG;IACT,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,KAAK;IACX,6EAA6E;IAC7E,0EAA0E;IAC1E,+DAA+D;IAC/D,+BAA+B;IAC/B,EAAE;IACF,4EAA4E;IAC5E,8EAA8E;IAC9E,gDAAgD;IAChD,KAAK,CAAC,GAAG;IACT,0EAA0E;IAC1E,2EAA2E;IAC3E,8CAA8C;IAC9C,6CAA6C;IAC7C,KAAK,CAAC,OAAO;CACL,CAAA;AAIV,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,mBAAmB;IACtB,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,SAAS;IACf,KAAK,CAAC,SAAS;CACP,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getSwapKitQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/swapkit/api/getSwapKitQuote.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAGnE,OAAO,EAAE,gBAAgB,EAAiB,MAAM,oDAAoD,CAAA;AAGpG,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gEAAgE,CAAA;AAaxH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAGzE,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC,GAAG;IACzE,IAAI,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AA8zBD,eAAO,MAAM,eAAe,GAAU,+CAMnC,KAAK,KAAG,OAAO,CAAC,gBAAgB,CAkDlC,CAAA"}
1
+ {"version":3,"file":"getSwapKitQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/swapkit/api/getSwapKitQuote.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAGnE,OAAO,EAAE,gBAAgB,EAAiB,MAAM,oDAAoD,CAAA;AAGpG,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gEAAgE,CAAA;AAaxH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAGzE,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC,GAAG;IACzE,IAAI,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAk1BD,eAAO,MAAM,eAAe,GAAU,+CAMnC,KAAK,KAAG,OAAO,CAAC,gBAAgB,CAmDlC,CAAA"}
@@ -81,6 +81,10 @@ const swapKitTransferSourceChains = [
81
81
  Chain.Dogecoin,
82
82
  Chain.Litecoin,
83
83
  Chain.Ripple,
84
+ // Sui rides the transfer arm for its pre-built PTB, the same way Bitcoin
85
+ // rides it for a PSBT: `txType`/`txPayload` carry the opaque signing bytes
86
+ // while `to`/`amount` stay informational (both are baked into the PTB).
87
+ Chain.Sui,
84
88
  Chain.Ton,
85
89
  Chain.Tron,
86
90
  Chain.Zcash,
@@ -372,6 +376,14 @@ const getTransferAmount = ({ depositAmount, tx }, amount, decimals) => {
372
376
  return amount;
373
377
  };
374
378
  const shouldUseTransferTx = (chain) => isOneOf(chain, swapKitTransferSourceChains);
379
+ // Transfer-arm chains that still need SwapKit to BUILD the transaction, so
380
+ // `/v3/swap` must not be sent `disableBuildTx`. Bitcoin gets a PSBT and Sui a
381
+ // pre-built PTB; in both cases those bytes drive signing directly, and asking
382
+ // SwapKit to skip construction returns a response with no `tx` at all. The
383
+ // remaining transfer chains are deposit-only (TON/XRP/ADA style) — they need
384
+ // nothing but an address, so skipping the build saves a pointless server-side
385
+ // construction that can fail on balance checks.
386
+ const swapKitPrebuiltTxSourceChains = new Set([Chain.Bitcoin, Chain.Sui]);
375
387
  const textEncoder = new TextEncoder();
376
388
  const stringifyCanonicalJson = (value) => {
377
389
  if (Array.isArray(value)) {
@@ -421,7 +433,18 @@ const buildTransferTx = (response, from, amount) => {
421
433
  if (!to) {
422
434
  throw new Error('SwapKit transfer route did not return a target address.');
423
435
  }
424
- const txType = response.meta?.txType;
436
+ // SwapKit renames base64 tx types on the wire without versioning — `SOLANA`
437
+ // became `SERIALIZED_BASE64` and `CARDANO` became `CBOR` mid-flight (iOS
438
+ // accepts both spellings in `SwapKitSwapResponse.decodeTx`). A Sui route's
439
+ // `meta.txType` therefore cannot be trusted to read `SUI`. The source chain
440
+ // is the reliable discriminator, and normalizing here also keeps
441
+ // `SwapKitSwapPayload.txType` byte-identical to what iOS stamps
442
+ // (`buildSwapKitSuiPayload` hardcodes `"SUI"`) — cosigning peers must agree.
443
+ const wireTxType = response.meta?.txType;
444
+ const txType = from.chain === Chain.Sui ? 'SUI' : wireTxType;
445
+ if (from.chain === Chain.Sui && response.tx !== undefined && typeof response.tx !== 'string') {
446
+ throw new Error('SwapKit Sui route did not return a base64 programmable transaction block.');
447
+ }
425
448
  const txPayload = response.tx ? encodeSwapKitTxPayload(response.tx, txType) : undefined;
426
449
  const psbtDestinationAmount = from.chain === Chain.Bitcoin && txType?.toUpperCase() === 'PSBT' && txPayload?.length
427
450
  ? getBitcoinPsbtDestinationAmount({
@@ -443,23 +466,17 @@ const buildTransferTx = (response, from, amount) => {
443
466
  transfer,
444
467
  };
445
468
  };
446
- // Sui + Cardano are eligible SwapKit SOURCE chains for quote-dispatch purposes
447
- // (see SwapKitEnabledChains.ts) but have no wired tx-build path here yet:
448
- // - Sui: SwapKit returns the tx as a base64 string (`encodeSwapKitTxPayload`'s
449
- // dormant `normalizedTxType === 'SUI'` branch decodes it), but there is no
450
- // `GeneralSwapTx` variant a Sui signer can consume it is neither `evm`
451
- // (no `to`/`data` fields) nor a plain `transfer` (a Sui PTB isn't a simple
452
- // send). Falling through to `buildEvmTx` would either throw an unrelated
453
- // "not a transaction object" error, or worse, silently build a nonsense
454
- // `{evm: {...}}` shape if the response ever coincidentally looks
455
- // record-like.
456
- // - Cardano: `encodeSwapKitTxPayload` explicitly returns an EMPTY byte array
457
- // for `normalizedTxType === 'CARDANO'` — there is no decode implementation
458
- // at all, so any tx built from it would be silently wrong.
469
+ // Cardano is an eligible SwapKit SOURCE chain for quote-dispatch purposes (see
470
+ // SwapKitEnabledChains.ts) but has no wired tx-build path here yet:
471
+ // `encodeSwapKitTxPayload` explicitly returns an EMPTY byte array for
472
+ // `normalizedTxType === 'CARDANO'` there is no decode implementation at all,
473
+ // so any tx built from it would be silently wrong. iOS covers this with a
474
+ // separate `CARDANO_PREBUILT` CBOR path (`SwapKitCardanoSigner.swift`); porting
475
+ // that decode is follow-on work.
476
+ //
459
477
  // Rejected in `getSwapKitQuote` BEFORE the network round-trip (no route/swap
460
478
  // API calls wasted on a request that can never produce a signable tx).
461
- // Signing support for these two as a SwapKit source is separate follow-on work.
462
- const SWAP_SOURCE_TX_BUILD_UNSUPPORTED = new Set([Chain.Sui, Chain.Cardano]);
479
+ const SWAP_SOURCE_TX_BUILD_UNSUPPORTED = new Set([Chain.Cardano]);
463
480
  const buildSwapKitTx = (response, from, to, amount, routeProvider) => {
464
481
  if (from.chain === Chain.Solana) {
465
482
  return buildSolanaTx(response.tx, response.fees, from, to, routeProvider);
@@ -608,7 +625,7 @@ export const getSwapKitQuote = async ({ from, to, amount, affiliateBps, slippage
608
625
  sourceAddress: from.address,
609
626
  destinationAddress: to.address,
610
627
  disableBalanceCheck: true,
611
- disableBuildTx: shouldUseTransferTx(from.chain) && from.chain !== Chain.Bitcoin ? true : undefined,
628
+ disableBuildTx: shouldUseTransferTx(from.chain) && !swapKitPrebuiltTxSourceChains.has(from.chain) ? true : undefined,
612
629
  }));
613
630
  const routeProvider = getRouteProviderName(swapResponse) ?? getRouteProviderName(route);
614
631
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"getSwapKitQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/swapkit/api/getSwapKitQuote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSwapKitQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/swapkit/api/getSwapKitQuote.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"limitSwapCancelBucket.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapCancelBucket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAcnG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,GAAI,OAAO,MAAM,KAAG,MAO1D,CAAA;AAcD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,+BAA+B,GAAI,0DAK7C,qBAAqB,KAAG,MAa1B,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qCAAqC,GAAI,GAAG,qBAAqB,EAAE,GAAG,qBAAqB,KAAG,OAChC,CAAA"}
1
+ {"version":3,"file":"limitSwapCancelBucket.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapCancelBucket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAenG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,GAAI,OAAO,MAAM,KAAG,MAM1D,CAAA;AAcD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,+BAA+B,GAAI,0DAK7C,qBAAqB,KAAG,MAa1B,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qCAAqC,GAAI,GAAG,qBAAqB,EAAE,GAAG,qBAAqB,KAAG,OAChC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { assertPositiveLimitSwapCancelAmounts } from './limitSwapCancelMemo.js';
2
+ import { findThorchainMemoAssetSeparatorIndex } from './thorchainMemoAsset.js';
2
3
  /**
3
4
  * THORChain's fixed-point exponent, the `1e8` the ratio is scaled by.
4
5
  */
@@ -23,8 +24,7 @@ const thorchainRatioLength = 18;
23
24
  * it, so it must not be touched.
24
25
  */
25
26
  export const toThorchainLayer1MemoAsset = (asset) => {
26
- const separators = ['/', '~', '-', '.'];
27
- const index = [...asset].findIndex(char => separators.includes(char));
27
+ const index = findThorchainMemoAssetSeparatorIndex(asset);
28
28
  if (index === -1 || asset[index] === '.') {
29
29
  return asset.toUpperCase();
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"limitSwapCancelBucket.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapCancelBucket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAyB,MAAM,uBAAuB,CAAA;AAEnG;;GAEG;AACH,MAAM,2BAA2B,GAAG,EAAE,CAAA;AAEtC;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAE/B;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAa,EAAU,EAAE;IAClE,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACvC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IACrE,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAA;AAC3E,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAU,EAAE,CACtD,KAAK,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAA;AAExH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,EAC9C,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,GACW,EAAU,EAAE;IAClC,6EAA6E;IAC7E,2EAA2E;IAC3E,sEAAsE;IACtE,4EAA4E;IAC5E,8EAA8E;IAC9E,+DAA+D;IAC/D,oCAAoC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAA;IAEnE,MAAM,KAAK,GAAG,CAAC,YAAY,GAAG,GAAG,IAAI,2BAA2B,CAAC,GAAG,WAAW,CAAA;IAC/E,MAAM,MAAM,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAA;IACtD,OAAO,GAAG,MAAM,IAAI,MAAM,IAAI,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAA;AAC1E,CAAC,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAwB,EAAE,CAAwB,EAAW,EAAE,CACnH,+BAA+B,CAAC,CAAC,CAAC,KAAK,+BAA+B,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"limitSwapCancelBucket.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapCancelBucket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAyB,MAAM,uBAAuB,CAAA;AACnG,OAAO,EAAE,oCAAoC,EAAE,MAAM,sBAAsB,CAAA;AAE3E;;GAEG;AACH,MAAM,2BAA2B,GAAG,EAAE,CAAA;AAEtC;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAE/B;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAa,EAAU,EAAE;IAClE,MAAM,KAAK,GAAG,oCAAoC,CAAC,KAAK,CAAC,CAAA;IACzD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAA;AAC3E,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAU,EAAE,CACtD,KAAK,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAA;AAExH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,EAC9C,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,GACW,EAAU,EAAE;IAClC,6EAA6E;IAC7E,2EAA2E;IAC3E,sEAAsE;IACtE,4EAA4E;IAC5E,8EAA8E;IAC9E,+DAA+D;IAC/D,oCAAoC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAA;IAEnE,MAAM,KAAK,GAAG,CAAC,YAAY,GAAG,GAAG,IAAI,2BAA2B,CAAC,GAAG,WAAW,CAAA;IAC/E,MAAM,MAAM,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAA;IACtD,OAAO,GAAG,MAAM,IAAI,MAAM,IAAI,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAA;AAC1E,CAAC,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAwB,EAAE,CAAwB,EAAW,EAAE,CACnH,+BAA+B,CAAC,CAAC,CAAC,KAAK,+BAA+B,CAAC,CAAC,CAAC,CAAA"}
@@ -107,6 +107,24 @@ export declare const assertPositiveLimitSwapCancelAmounts: ({ sourceAmount, trad
107
107
  * different bucket.
108
108
  */
109
109
  export declare const buildCancelLimitSwapMemo: (inputs: LimitSwapCancelInputs) => string;
110
+ /** The order identity an `m=<` cancel memo encodes, as decoded from the memo. */
111
+ export type ParsedLimitSwapCancelMemo = LimitSwapCancelInputs;
112
+ /**
113
+ * Decode the cancel memo's order identity — the inverse of
114
+ * {@link buildCancelLimitSwapMemo}.
115
+ *
116
+ * Fail closed on anything that is not a well-formed CANCEL memo, including a
117
+ * retarget: a non-zero final field modifies an order's price rather than closing
118
+ * it, and reporting one as a cancellation would show a co-signer the opposite of
119
+ * what they are about to sign.
120
+ *
121
+ * What comes back is the order's identity, not a request to act on it — these
122
+ * four values are exactly what {@link getThorchainLimitOrderBucketKey} hashes
123
+ * into the bucket THORChain will look in, so a caller can show which order is
124
+ * being cancelled without trusting any field the initiating device supplied
125
+ * alongside the memo.
126
+ */
127
+ export declare const parseCancelLimitSwapMemo: (memo: string) => ParsedLimitSwapCancelMemo;
110
128
  /**
111
129
  * Whether a cancel memo fits the per-transaction budget of the chain it will be
112
130
  * sent from.
@@ -1 +1 @@
1
- {"version":3,"file":"limitSwapCancelMemo.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapCancelMemo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAE/G;;;GAGG;AACH,eAAO,MAAM,yBAAyB,SAAS,CAAA;AAS/C;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,KAAG,OACzB,CAAA;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,KAAG,OAUvE,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;;;;;;;;OAYG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAA;IACpB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAA;IACnB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAgBD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,+BAA+B,GAAI,OAAO,MAAM,KAAG,OAQ/D,CAAA;AAED,eAAO,MAAM,yBAAyB,kEAAmE,CAAA;AAEzG,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjF,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;gBAE7B,MAAM,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM;CAK9D;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,GAAI,gCAGlD,IAAI,CAAC,qBAAqB,EAAE,cAAc,GAAG,aAAa,CAAC,KAAG,IAOhE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,qBAAqB,KAAG,MAwBxE,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,EAAE,iBAAiB,wBAAwB,KAAG,OACnB,CAAA;AAElF,kFAAkF;AAClF,eAAO,MAAM,qCAAqC,GAAI,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,OACd,CAAA"}
1
+ {"version":3,"file":"limitSwapCancelMemo.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapCancelMemo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAG/G;;;GAGG;AACH,eAAO,MAAM,yBAAyB,SAAS,CAAA;AAS/C;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,KAAG,OACzB,CAAA;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,KAAG,OAUvE,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;;;;;;;;OAYG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAA;IACpB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAA;IACnB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAaD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,+BAA+B,GAAI,OAAO,MAAM,KAAG,OAQ/D,CAAA;AAED,eAAO,MAAM,yBAAyB,kEAAmE,CAAA;AAEzG,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjF,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;gBAE7B,MAAM,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM;CAK9D;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,GAAI,gCAGlD,IAAI,CAAC,qBAAqB,EAAE,cAAc,GAAG,aAAa,CAAC,KAAG,IAOhE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,qBAAqB,KAAG,MAwBxE,CAAA;AAkCD,iFAAiF;AACjF,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,CAAA;AAE7D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,yBAsCvD,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,EAAE,iBAAiB,wBAAwB,KAAG,OACnB,CAAA;AAElF,kFAAkF;AAClF,eAAO,MAAM,qCAAqC,GAAI,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,OACd,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { getLimitSwapSourceChainKind, limitSwapMemoByteLimit } from './limitSwapMemo.js';
2
+ import { findThorchainMemoAssetSeparatorIndex } from './thorchainMemoAsset.js';
2
3
  /**
3
4
  * THORChain's modify-limit-swap prefix. Distinct from `limitSwapMemoPrefix`
4
5
  * (`=<:`), which PLACES an order — `m=<:` modifies one that is already resting.
@@ -49,8 +50,6 @@ export const isCancelLimitSwapMemo = (memo) => {
49
50
  * catch truncation, not to validate contract syntax.
50
51
  */
51
52
  const minimumFullTokenIdentifierLength = 20;
52
- /** Every separator a THORChain memo asset can use: L1, synth, trade, secured. */
53
- const assetSeparators = ['.', '/', '~', '-'];
54
53
  /**
55
54
  * Whether a memo asset carries a TRUNCATED token identifier —
56
55
  * `ETH.USDC-06EB48` rather than `ETH.USDC-0XA0B86991…`.
@@ -67,7 +66,7 @@ const assetSeparators = ['.', '/', '~', '-'];
67
66
  * `btc-btc` carry no identifier at all and are full by construction.
68
67
  */
69
68
  export const isAbbreviatedThorchainMemoAsset = (asset) => {
70
- const chainEnd = [...asset].findIndex(char => assetSeparators.includes(char));
69
+ const chainEnd = findThorchainMemoAssetSeparatorIndex(asset);
71
70
  const symbol = chainEnd === -1 ? asset : asset.slice(chainEnd + 1);
72
71
  const identifierStart = symbol.indexOf('-');
73
72
  if (identifierStart === -1) {
@@ -142,6 +141,73 @@ export const buildCancelLimitSwapMemo = (inputs) => {
142
141
  const target = `${tradeTarget}${targetAsset}`;
143
142
  return `${modifyLimitSwapMemoPrefix}${source}:${target}:${cancelModifiedTargetAmount}`;
144
143
  };
144
+ /**
145
+ * `<digits><ASSET>`, the space-less coin form THORNode's `getCoin` splits.
146
+ *
147
+ * The asset is anchored on a NON-digit. Without that anchor the greedy digit run
148
+ * backtracks, so an asset-less `100000000` parses as amount `10000000` and asset
149
+ * `"0"` — a coin THORNode would reject, silently reported here as valid. Every
150
+ * THORChain asset starts with a chain prefix letter, so nothing legitimate is
151
+ * excluded.
152
+ */
153
+ const cancelMemoCoinPattern = /^(\d+)(\D\S*)$/;
154
+ /**
155
+ * Split one `<amount><ASSET>` field the way THORNode's `getCoin` does: take the
156
+ * leading run of digits as the amount, and everything after it as the asset.
157
+ *
158
+ * The absence of a separator is what makes this necessary — an asset can itself
159
+ * contain digits (`ETH.USDC-0xA0b86991…`), so the boundary is defined only by
160
+ * where the digits stop.
161
+ */
162
+ const parseCancelMemoCoin = (field, fieldName, memo) => {
163
+ const match = cancelMemoCoinPattern.exec(field);
164
+ if (!match) {
165
+ throw new Error(`limit-order cancel memo ${fieldName} must be "<amount><ASSET>" with no separator, got ${JSON.stringify(field)} in ${JSON.stringify(memo)}`);
166
+ }
167
+ const [, amount, asset] = match;
168
+ return { amount: BigInt(amount), asset };
169
+ };
170
+ /**
171
+ * Decode the cancel memo's order identity — the inverse of
172
+ * {@link buildCancelLimitSwapMemo}.
173
+ *
174
+ * Fail closed on anything that is not a well-formed CANCEL memo, including a
175
+ * retarget: a non-zero final field modifies an order's price rather than closing
176
+ * it, and reporting one as a cancellation would show a co-signer the opposite of
177
+ * what they are about to sign.
178
+ *
179
+ * What comes back is the order's identity, not a request to act on it — these
180
+ * four values are exactly what {@link getThorchainLimitOrderBucketKey} hashes
181
+ * into the bucket THORChain will look in, so a caller can show which order is
182
+ * being cancelled without trusting any field the initiating device supplied
183
+ * alongside the memo.
184
+ */
185
+ export const parseCancelLimitSwapMemo = (memo) => {
186
+ if (!isModifyLimitSwapMemo(memo)) {
187
+ throw new Error(`memo is not a THORChain limit-order modification (expected a "${modifyLimitSwapMemoPrefix}" prefix): ${JSON.stringify(memo)}`);
188
+ }
189
+ const segments = memo.slice(modifyLimitSwapMemoPrefix.length).split(':');
190
+ if (segments.length !== 3) {
191
+ throw new Error(`limit-order cancel memo must have 3 segments after the prefix, got ${segments.length}: ${JSON.stringify(memo)}`);
192
+ }
193
+ const [sourceField, targetField, modifiedTarget] = segments;
194
+ if (!/^\d+$/.test(modifiedTarget) || BigInt(modifiedTarget) !== 0n) {
195
+ throw new Error(`memo re-targets a limit order rather than cancelling it (modified target ${JSON.stringify(modifiedTarget)}): ${JSON.stringify(memo)}`);
196
+ }
197
+ const source = parseCancelMemoCoin(sourceField, 'source coin', memo);
198
+ const target = parseCancelMemoCoin(targetField, 'target coin', memo);
199
+ const inputs = {
200
+ sourceAsset: source.asset,
201
+ sourceAmount: source.amount,
202
+ targetAsset: target.asset,
203
+ tradeTarget: target.amount,
204
+ };
205
+ // The same invariants the builder enforces, re-checked on the way back in: a
206
+ // memo that reaches a reviewer from another device was not necessarily built
207
+ // by this code.
208
+ assertPositiveLimitSwapCancelAmounts(inputs);
209
+ return inputs;
210
+ };
145
211
  /**
146
212
  * Whether a cancel memo fits the per-transaction budget of the chain it will be
147
213
  * sent from.
@@ -1 +1 @@
1
- {"version":3,"file":"limitSwapCancelMemo.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapCancelMemo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"limitSwapCancelMemo.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapCancelMemo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAA4B,MAAM,iBAAiB,CAAA;AAC/G,OAAO,EAAE,oCAAoC,EAAE,MAAM,sBAAsB,CAAA;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAA;AAE/C;;;;GAIG;AACH,MAAM,0BAA0B,GAAG,GAAG,CAAA;AAEtC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAA+B,EAAW,EAAE,CAChF,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,yBAAyB,CAAC,CAAA;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAA+B,EAAW,EAAE;IAChF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAChD,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;AACtC,CAAC,CAAA;AA8BD;;;;;;;;GAQG;AACH,MAAM,gCAAgC,GAAG,EAAE,CAAA;AAE3C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,KAAa,EAAW,EAAE;IACxE,MAAM,QAAQ,GAAG,oCAAoC,CAAC,KAAK,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;IAClE,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3C,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,gCAAgC,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,CAAU,CAAA;AAIzG,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAC7C,MAAM,CAA0B;IAEzC,YAAY,MAAgC,EAAE,OAAe;QAC3D,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAA;IAC7C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,EACnD,YAAY,EACZ,WAAW,GACiD,EAAQ,EAAE;IACtE,IAAI,YAAY,IAAI,EAAE,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,6BAA6B,CACrC,mBAAmB,EACnB,4DAA4D,YAAY,qBAAqB,WAAW,EAAE,CAC3G,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAA6B,EAAU,EAAE;IAChF,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;IAC5C,sEAAsE;IACtE,6EAA6E;IAC7E,8EAA8E;IAC9E,iDAAiD;IACjD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAE7C,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,6BAA6B,CAAC,YAAY,EAAE,oDAAoD,CAAC,CAAA;IAC7G,CAAC;IACD,oCAAoC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAA;IACnE,IAAI,+BAA+B,CAAC,WAAW,CAAC,IAAI,+BAA+B,CAAC,WAAW,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,6BAA6B,CACrC,kBAAkB,EAClB,mEAAmE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI;YACnI,mGAAmG,CACtG,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,YAAY,GAAG,WAAW,EAAE,CAAA;IAC9C,MAAM,MAAM,GAAG,GAAG,WAAW,GAAG,WAAW,EAAE,CAAA;IAC7C,OAAO,GAAG,yBAAyB,GAAG,MAAM,IAAI,MAAM,IAAI,0BAA0B,EAAE,CAAA;AACxF,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,qBAAqB,GAAG,gBAAgB,CAAA;AAE9C;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,SAAiB,EAAE,IAAY,EAAqC,EAAE;IAChH,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,2BAA2B,SAAS,qDAAqD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC5I,CAAA;IACH,CAAC;IAED,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,CAAA;IAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;AAC1C,CAAC,CAAA;AAKD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAA6B,EAAE;IAClF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,iEAAiE,yBAAyB,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC/H,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,sEAAsE,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACjH,CAAA;IACH,CAAC;IAED,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAA;IAE3D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,4EAA4E,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACvI,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IACpE,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IAEpE,MAAM,MAAM,GAA8B;QACxC,WAAW,EAAE,MAAM,CAAC,KAAK;QACzB,YAAY,EAAE,MAAM,CAAC,MAAM;QAC3B,WAAW,EAAE,MAAM,CAAC,KAAK;QACzB,WAAW,EAAE,MAAM,CAAC,MAAM;KAC3B,CAAA;IAED,6EAA6E;IAC7E,6EAA6E;IAC7E,gBAAgB;IAChB,oCAAoC,CAAC,MAAM,CAAC,CAAA;IAE5C,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,eAAyC,EAAW,EAAE,CAC7G,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,sBAAsB,CAAC,eAAe,CAAC,CAAA;AAElF,kFAAkF;AAClF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,IAAY,EAAE,WAAmB,EAAW,EAAE,CAClG,0BAA0B,CAAC,IAAI,EAAE,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAA"}
@@ -28,6 +28,69 @@ export declare const thorchainMemoAssetChainPrefix: Readonly<Partial<Record<Chai
28
28
  * builds one that routes somewhere unintended.
29
29
  */
30
30
  export declare const thorchainAssetPrefixToChain: Readonly<Partial<Record<string, Chain>>>;
31
+ /**
32
+ * Every separator a THORChain memo asset can use: L1 (`.`), synth (`/`), trade
33
+ * (`~`) and secured (`-`). Shared so the modules that have to find where a
34
+ * chain prefix ends cannot disagree about which flavours exist.
35
+ */
36
+ export declare const thorchainMemoAssetSeparators: readonly string[];
37
+ /**
38
+ * Index of the separator that ends a memo asset's CHAIN prefix, or `-1` when the
39
+ * asset carries none.
40
+ *
41
+ * Always the FIRST separator, never the last. A secured asset spells the whole
42
+ * denom with `-` (`eth-usdc-0x…`), so searching from the right would put the
43
+ * boundary inside the token identifier and make every secured asset read as a
44
+ * different chain, or as truncated. Shared with the traversal rather than only
45
+ * the character list, so the three modules that need this boundary cannot
46
+ * disagree about where it falls.
47
+ */
48
+ export declare const findThorchainMemoAssetSeparatorIndex: (asset: string) => number;
49
+ /**
50
+ * The chain a memo asset ORIGINATES from — what `Asset.GetLayer1Asset().Chain`
51
+ * resolves to on THORNode's side.
52
+ *
53
+ * Reads the prefix up to the first separator, so it holds for every flavour:
54
+ * `ETH.USDC-0x…`, `BTC/BTC` and the secured `eth-usdc-0x…` all resolve to their
55
+ * L1 chain. Splitting on `.` alone would return the whole denom for a secured
56
+ * asset and resolve nothing.
57
+ *
58
+ * Note this is the asset's home chain, NOT necessarily the chain a transaction
59
+ * touching it is signed from — a secured asset lives on THORChain while still
60
+ * reporting Ethereum here.
61
+ *
62
+ * `undefined` for a prefix this SDK cannot route, which a caller should treat as
63
+ * "unknown chain" rather than an error: an asset THORChain understands and this
64
+ * SDK does not is still a real order.
65
+ */
66
+ export declare const getThorchainMemoAssetChain: (asset: string) => Chain | undefined;
67
+ /**
68
+ * The chain a transaction referencing this asset must be SENT FROM — what
69
+ * `Asset.GetChain()` resolves to on THORNode's side, which is a different
70
+ * question from {@link getThorchainMemoAssetChain}.
71
+ *
72
+ * The two diverge for every THORChain-HELD flavour. A secured `eth-usdc-0x…`
73
+ * originates on Ethereum but is custodied on THORChain, so a message referencing
74
+ * it must come from a THOR address; the same holds for synths (`BTC/BTC`) and
75
+ * trade assets (`ETH~ETH`). Only dotted layer-1 notation names a chain that also
76
+ * has to send.
77
+ *
78
+ * The separator IS the discriminator: THORNode's own flavour detection works the
79
+ * same way, and the first separator is the one that decides — a dotted asset's
80
+ * later `-` introduces a contract id, not a flavour.
81
+ *
82
+ * This is what `MsgModifyLimitSwap.ValidateBasic`'s
83
+ * `From.IsChain(Source.Asset.GetChain())` compares against, so a caller that
84
+ * pairs a signing coin with a memo must agree with this or the transaction
85
+ * broadcasts successfully and is refunded without cancelling anything.
86
+ *
87
+ * `undefined` when the prefix is unroutable — treat as "unknown", and refuse.
88
+ * That holds for the THORChain-held flavours too: a recognisable SHAPE is not a
89
+ * recognisable asset, so `NOPE-NOPE` is unknown rather than THORChain-held.
90
+ * Answering THORChain on the strength of a separator alone would let a garbage
91
+ * source asset pair successfully with a RUNE coin and reach a signer.
92
+ */
93
+ export declare const getThorchainMemoAssetSourceChain: (asset: string) => Chain | undefined;
31
94
  /**
32
95
  * Whether a chain can be encoded as a THORChain memo asset — i.e. whether it is
33
96
  * routable through THORChain at all.
@@ -72,5 +135,37 @@ export type ThorchainMemoAssetInput = Pick<Coin, 'chain' | 'id' | 'ticker'>;
72
135
  * too short to abbreviate — a malformed asset segment must fail here rather than
73
136
  * at broadcast time, once funds are committed.
74
137
  */
75
- export declare const getThorchainMemoAsset: ({ chain, id, ticker }: ThorchainMemoAssetInput) => string;
138
+ export declare const getThorchainMemoAsset: (input: ThorchainMemoAssetInput) => string;
139
+ /**
140
+ * Build the THORChain memo-asset string a **cancel** memo must use — the same
141
+ * notation {@link getThorchainMemoAsset} emits, minus the abbreviation.
142
+ *
143
+ * - native → `CHAIN.TICKER` (`BTC.BTC`, `THOR.RUNE`)
144
+ * - THORChain tokens → `THOR.TICKER` (`THOR.TCY`)
145
+ * - THORChain secured assets → `CHAIN-ASSET` (`XRP-XRP`, `ETH-USDC-0X…`)
146
+ * - any other token → `CHAIN.TICKER-<full contract>` (`ETH.USDC-0XA0B8…`)
147
+ *
148
+ * The difference from the placement spelling is the entire point. A placement
149
+ * memo abbreviates an L1 contract to its last six characters because memo bytes
150
+ * are scarce and `fuzzyAssetMatch` expands it again on arrival. A cancel gets no
151
+ * such treatment: `ModifyLimitSwapMemo` is the one inbound memo type
152
+ * `processOneTxIn` does NOT route through `fuzzyAssetMatch`, so its asset string
153
+ * builds the order-index key verbatim. An abbreviation there addresses a bucket
154
+ * that by construction holds no order — the cancel is accepted, costs a fee, and
155
+ * cancels nothing.
156
+ *
157
+ * UPPER-CASED, unlike the coin's own contract id. Case is not semantic to
158
+ * THORNode — `common.ParseAsset` upper-cases whatever it is given, and the queue
159
+ * index key is built from an upper-cased asset — but it IS semantic to this
160
+ * package's own pool-id validation, which the cancel eligibility check routes
161
+ * through to size the memo against its source chain. Left in the contract's
162
+ * native lower case, every ERC20-funded order would be reported as an
163
+ * unroutable source chain and become uncancellable. Upper-casing also makes this
164
+ * byte-identical to what the queue reports the order's assets as, which is what
165
+ * the two are cross-checked against.
166
+ *
167
+ * Both spellings share their notation source and their validation, so the two
168
+ * cannot drift apart in anything except the abbreviation and that case.
169
+ */
170
+ export declare const getThorchainCancelMemoAsset: (input: ThorchainMemoAssetInput) => string;
76
171
  //# sourceMappingURL=thorchainMemoAsset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thorchainMemoAsset.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/thorchainMemoAsset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAgBtC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAMjF,CAAA;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAKhF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,KAAK,KAAG,OAA6D,CAAA;AAEhH;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,GAAI,IAAI,MAAM,KAAG,OAAmD,CAAA;AAE1G,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAA;AAsB3E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,qBAAqB,GAAI,uBAAuB,uBAAuB,KAAG,MAgBtF,CAAA"}
1
+ {"version":3,"file":"thorchainMemoAsset.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/thorchainMemoAsset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAgBtC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAMjF,CAAA;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAKhF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAAwC,CAAA;AAElG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oCAAoC,GAAI,OAAO,MAAM,KAAG,MACM,CAAA;AAE3E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,0BAA0B,GAAI,OAAO,MAAM,KAAG,KAAK,GAAG,SAKlE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,gCAAgC,GAAI,OAAO,MAAM,KAAG,KAAK,GAAG,SAkBxE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,KAAK,KAAG,OAA6D,CAAA;AAEhH;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,GAAI,IAAI,MAAM,KAAG,OAAmD,CAAA;AAE1G,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAA;AA6C3E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,uBAAuB,KAAG,MAMtE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,2BAA2B,GAAI,OAAO,uBAAuB,KAAG,MACG,CAAA"}
@@ -51,6 +51,88 @@ export const thorchainAssetPrefixToChain = Object.freeze(toEntries(thorchainMemo
51
51
  acc[value] = key;
52
52
  return acc;
53
53
  }, {}));
54
+ /**
55
+ * Every separator a THORChain memo asset can use: L1 (`.`), synth (`/`), trade
56
+ * (`~`) and secured (`-`). Shared so the modules that have to find where a
57
+ * chain prefix ends cannot disagree about which flavours exist.
58
+ */
59
+ export const thorchainMemoAssetSeparators = Object.freeze(['.', '/', '~', '-']);
60
+ /**
61
+ * Index of the separator that ends a memo asset's CHAIN prefix, or `-1` when the
62
+ * asset carries none.
63
+ *
64
+ * Always the FIRST separator, never the last. A secured asset spells the whole
65
+ * denom with `-` (`eth-usdc-0x…`), so searching from the right would put the
66
+ * boundary inside the token identifier and make every secured asset read as a
67
+ * different chain, or as truncated. Shared with the traversal rather than only
68
+ * the character list, so the three modules that need this boundary cannot
69
+ * disagree about where it falls.
70
+ */
71
+ export const findThorchainMemoAssetSeparatorIndex = (asset) => [...asset].findIndex(char => thorchainMemoAssetSeparators.includes(char));
72
+ /**
73
+ * The chain a memo asset ORIGINATES from — what `Asset.GetLayer1Asset().Chain`
74
+ * resolves to on THORNode's side.
75
+ *
76
+ * Reads the prefix up to the first separator, so it holds for every flavour:
77
+ * `ETH.USDC-0x…`, `BTC/BTC` and the secured `eth-usdc-0x…` all resolve to their
78
+ * L1 chain. Splitting on `.` alone would return the whole denom for a secured
79
+ * asset and resolve nothing.
80
+ *
81
+ * Note this is the asset's home chain, NOT necessarily the chain a transaction
82
+ * touching it is signed from — a secured asset lives on THORChain while still
83
+ * reporting Ethereum here.
84
+ *
85
+ * `undefined` for a prefix this SDK cannot route, which a caller should treat as
86
+ * "unknown chain" rather than an error: an asset THORChain understands and this
87
+ * SDK does not is still a real order.
88
+ */
89
+ export const getThorchainMemoAssetChain = (asset) => {
90
+ const separatorIndex = findThorchainMemoAssetSeparatorIndex(asset);
91
+ const prefix = separatorIndex === -1 ? asset : asset.slice(0, separatorIndex);
92
+ return thorchainAssetPrefixToChain[prefix.toUpperCase()];
93
+ };
94
+ /**
95
+ * The chain a transaction referencing this asset must be SENT FROM — what
96
+ * `Asset.GetChain()` resolves to on THORNode's side, which is a different
97
+ * question from {@link getThorchainMemoAssetChain}.
98
+ *
99
+ * The two diverge for every THORChain-HELD flavour. A secured `eth-usdc-0x…`
100
+ * originates on Ethereum but is custodied on THORChain, so a message referencing
101
+ * it must come from a THOR address; the same holds for synths (`BTC/BTC`) and
102
+ * trade assets (`ETH~ETH`). Only dotted layer-1 notation names a chain that also
103
+ * has to send.
104
+ *
105
+ * The separator IS the discriminator: THORNode's own flavour detection works the
106
+ * same way, and the first separator is the one that decides — a dotted asset's
107
+ * later `-` introduces a contract id, not a flavour.
108
+ *
109
+ * This is what `MsgModifyLimitSwap.ValidateBasic`'s
110
+ * `From.IsChain(Source.Asset.GetChain())` compares against, so a caller that
111
+ * pairs a signing coin with a memo must agree with this or the transaction
112
+ * broadcasts successfully and is refunded without cancelling anything.
113
+ *
114
+ * `undefined` when the prefix is unroutable — treat as "unknown", and refuse.
115
+ * That holds for the THORChain-held flavours too: a recognisable SHAPE is not a
116
+ * recognisable asset, so `NOPE-NOPE` is unknown rather than THORChain-held.
117
+ * Answering THORChain on the strength of a separator alone would let a garbage
118
+ * source asset pair successfully with a RUNE coin and reach a signer.
119
+ */
120
+ export const getThorchainMemoAssetSourceChain = (asset) => {
121
+ const separatorIndex = findThorchainMemoAssetSeparatorIndex(asset);
122
+ // A bare chain prefix carries no symbol, so it is not an asset — even though
123
+ // the prefix lookup would happily resolve `BTC` on its own.
124
+ if (separatorIndex === -1) {
125
+ return undefined;
126
+ }
127
+ const homeChain = getThorchainMemoAssetChain(asset);
128
+ if (homeChain === undefined) {
129
+ return undefined;
130
+ }
131
+ // Prefix resolved, so the separator can be trusted to mean what it says: a
132
+ // non-dot one marks a THORChain-HELD flavour, which sends from THORChain
133
+ // whatever chain it originates on.
134
+ return asset[separatorIndex] === '.' ? homeChain : Chain.THORChain;
135
+ };
54
136
  /**
55
137
  * Whether a chain can be encoded as a THORChain memo asset — i.e. whether it is
56
138
  * routable through THORChain at all.
@@ -83,6 +165,25 @@ const abbreviateContractSuffix = (asset) => {
83
165
  }
84
166
  return `${asset.slice(0, separatorIndex)}-${contract.slice(-contractSuffixLength).toUpperCase()}`;
85
167
  };
168
+ /**
169
+ * Notation shared by both memo spellings: the routability and ticker checks a
170
+ * memo asset must pass, then the one converter that decides what a THORChain
171
+ * asset string looks like.
172
+ *
173
+ * Both callers reject the same inputs for the same reasons, so an asset that is
174
+ * unbuildable for a placement cannot become buildable for a cancel.
175
+ */
176
+ const toValidatedNativeSwapAsset = ({ chain, id, ticker }, caller) => {
177
+ if (!isThorchainRoutable(chain)) {
178
+ throw new Error(`${caller}: ${chain} is not routable through THORChain`);
179
+ }
180
+ const normalizedTicker = ticker.trim();
181
+ if (!normalizedTicker) {
182
+ throw new Error(`${caller}: ticker must be a non-empty string for ${chain}`);
183
+ }
184
+ const normalizedId = id?.trim();
185
+ return toNativeSwapAsset({ chain, id: normalizedId || undefined, ticker: normalizedTicker });
186
+ };
86
187
  /**
87
188
  * Build the THORChain memo-asset string for a coin — the `source_asset` /
88
189
  * `target_asset` a limit-swap memo is built from.
@@ -109,18 +210,42 @@ const abbreviateContractSuffix = (asset) => {
109
210
  * too short to abbreviate — a malformed asset segment must fail here rather than
110
211
  * at broadcast time, once funds are committed.
111
212
  */
112
- export const getThorchainMemoAsset = ({ chain, id, ticker }) => {
113
- if (!isThorchainRoutable(chain)) {
114
- throw new Error(`getThorchainMemoAsset: ${chain} is not routable through THORChain`);
115
- }
116
- const normalizedTicker = ticker.trim();
117
- if (!normalizedTicker) {
118
- throw new Error(`getThorchainMemoAsset: ticker must be a non-empty string for ${chain}`);
119
- }
120
- const normalizedId = id?.trim();
121
- const asset = toNativeSwapAsset({ chain, id: normalizedId || undefined, ticker: normalizedTicker });
213
+ export const getThorchainMemoAsset = (input) => {
214
+ const asset = toValidatedNativeSwapAsset(input, 'getThorchainMemoAsset');
122
215
  // THORChain-held assets (secured denoms, `THOR.TCY`) carry no L1 contract to
123
216
  // shorten -- the trailing address of a secured denom identifies the asset.
124
- return chain === Chain.THORChain ? asset : abbreviateContractSuffix(asset);
217
+ return input.chain === Chain.THORChain ? asset : abbreviateContractSuffix(asset);
125
218
  };
219
+ /**
220
+ * Build the THORChain memo-asset string a **cancel** memo must use — the same
221
+ * notation {@link getThorchainMemoAsset} emits, minus the abbreviation.
222
+ *
223
+ * - native → `CHAIN.TICKER` (`BTC.BTC`, `THOR.RUNE`)
224
+ * - THORChain tokens → `THOR.TICKER` (`THOR.TCY`)
225
+ * - THORChain secured assets → `CHAIN-ASSET` (`XRP-XRP`, `ETH-USDC-0X…`)
226
+ * - any other token → `CHAIN.TICKER-<full contract>` (`ETH.USDC-0XA0B8…`)
227
+ *
228
+ * The difference from the placement spelling is the entire point. A placement
229
+ * memo abbreviates an L1 contract to its last six characters because memo bytes
230
+ * are scarce and `fuzzyAssetMatch` expands it again on arrival. A cancel gets no
231
+ * such treatment: `ModifyLimitSwapMemo` is the one inbound memo type
232
+ * `processOneTxIn` does NOT route through `fuzzyAssetMatch`, so its asset string
233
+ * builds the order-index key verbatim. An abbreviation there addresses a bucket
234
+ * that by construction holds no order — the cancel is accepted, costs a fee, and
235
+ * cancels nothing.
236
+ *
237
+ * UPPER-CASED, unlike the coin's own contract id. Case is not semantic to
238
+ * THORNode — `common.ParseAsset` upper-cases whatever it is given, and the queue
239
+ * index key is built from an upper-cased asset — but it IS semantic to this
240
+ * package's own pool-id validation, which the cancel eligibility check routes
241
+ * through to size the memo against its source chain. Left in the contract's
242
+ * native lower case, every ERC20-funded order would be reported as an
243
+ * unroutable source chain and become uncancellable. Upper-casing also makes this
244
+ * byte-identical to what the queue reports the order's assets as, which is what
245
+ * the two are cross-checked against.
246
+ *
247
+ * Both spellings share their notation source and their validation, so the two
248
+ * cannot drift apart in anything except the abbreviation and that case.
249
+ */
250
+ export const getThorchainCancelMemoAsset = (input) => toValidatedNativeSwapAsset(input, 'getThorchainCancelMemoAsset').toUpperCase();
126
251
  //# sourceMappingURL=thorchainMemoAsset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thorchainMemoAsset.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/thorchainMemoAsset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thorchainMemoAsset.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/thorchainMemoAsset.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vultisig/core-chain",
3
- "version": "2.31.2",
3
+ "version": "2.33.0",
4
4
  "description": "Blockchain chain logic shared across Vultisig clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -830,6 +830,11 @@
830
830
  "import": "./dist/chains/sui/listAllCoins.js",
831
831
  "default": "./dist/chains/sui/listAllCoins.js"
832
832
  },
833
+ "./chains/sui/prebuiltGasData": {
834
+ "types": "./dist/chains/sui/prebuiltGasData.d.ts",
835
+ "import": "./dist/chains/sui/prebuiltGasData.js",
836
+ "default": "./dist/chains/sui/prebuiltGasData.js"
837
+ },
833
838
  "./chains/sui/sign": {
834
839
  "types": "./dist/chains/sui/sign.d.ts",
835
840
  "import": "./dist/chains/sui/sign.js",