@vultisig/core-chain 2.30.0 → 2.31.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.
- package/CHANGELOG.md +22 -0
- package/dist/Chain.d.ts +3 -0
- package/dist/Chain.d.ts.map +1 -1
- package/dist/Chain.js +1 -0
- package/dist/Chain.js.map +1 -1
- package/dist/ChainKind.d.ts +1 -0
- package/dist/ChainKind.d.ts.map +1 -1
- package/dist/ChainKind.js +1 -0
- package/dist/ChainKind.js.map +1 -1
- package/dist/chains/evm/chainInfo.d.ts +54 -0
- package/dist/chains/evm/chainInfo.d.ts.map +1 -1
- package/dist/chains/evm/chainInfo.js +22 -0
- package/dist/chains/evm/chainInfo.js.map +1 -1
- package/dist/chains/evm/tx/fee/index.d.ts.map +1 -1
- package/dist/chains/evm/tx/fee/index.js +1 -0
- package/dist/chains/evm/tx/fee/index.js.map +1 -1
- package/dist/coin/coinType.d.ts.map +1 -1
- package/dist/coin/coinType.js +1 -0
- package/dist/coin/coinType.js.map +1 -1
- package/dist/coin/find/resolvers/evm/index.d.ts.map +1 -1
- package/dist/coin/find/resolvers/evm/index.js +31 -2
- package/dist/coin/find/resolvers/evm/index.js.map +1 -1
- package/dist/coin/knownTokens/index.d.ts +1 -1
- package/dist/coin/knownTokens/index.d.ts.map +1 -1
- package/dist/coin/knownTokens/index.js +506 -0
- package/dist/coin/knownTokens/index.js.map +1 -1
- package/dist/coin/price/evm/getErc20Prices.d.ts.map +1 -1
- package/dist/coin/price/evm/getErc20Prices.js +1 -0
- package/dist/coin/price/evm/getErc20Prices.js.map +1 -1
- package/dist/coin/token/metadata/chains.d.ts +1 -1
- package/dist/coin/token/metadata/chains.d.ts.map +1 -1
- package/dist/security/blockaid/evmChains.d.ts.map +1 -1
- package/dist/security/blockaid/evmChains.js +2 -0
- package/dist/security/blockaid/evmChains.js.map +1 -1
- package/dist/swap/general/knownAggregatorRouters.d.ts.map +1 -1
- package/dist/swap/general/knownAggregatorRouters.js +7 -1
- package/dist/swap/general/knownAggregatorRouters.js.map +1 -1
- package/dist/swap/general/kyber/chains.d.ts +1 -1
- package/dist/swap/general/kyber/chains.d.ts.map +1 -1
- package/dist/swap/general/kyber/chains.js +1 -0
- package/dist/swap/general/kyber/chains.js.map +1 -1
- package/dist/swap/general/lifi/LifiSwapEnabledChains.d.ts +1 -1
- package/dist/swap/general/lifi/LifiSwapEnabledChains.d.ts.map +1 -1
- package/dist/swap/general/oneInch/OneInchSwapEnabledChains.d.ts +1 -1
- package/dist/swap/general/oneInch/OneInchSwapEnabledChains.d.ts.map +1 -1
- package/dist/swap/general/oneInch/OneInchSwapEnabledChains.js +3 -0
- package/dist/swap/general/oneInch/OneInchSwapEnabledChains.js.map +1 -1
- package/dist/swap/native/limitSwapCancelBucket.d.ts +47 -0
- package/dist/swap/native/limitSwapCancelBucket.d.ts.map +1 -0
- package/dist/swap/native/limitSwapCancelBucket.js +86 -0
- package/dist/swap/native/limitSwapCancelBucket.js.map +1 -0
- package/dist/swap/native/limitSwapCancelDust.d.ts +36 -0
- package/dist/swap/native/limitSwapCancelDust.d.ts.map +1 -0
- package/dist/swap/native/limitSwapCancelDust.js +100 -0
- package/dist/swap/native/limitSwapCancelDust.js.map +1 -0
- package/dist/swap/native/limitSwapCancelEligibility.d.ts +96 -0
- package/dist/swap/native/limitSwapCancelEligibility.d.ts.map +1 -0
- package/dist/swap/native/limitSwapCancelEligibility.js +165 -0
- package/dist/swap/native/limitSwapCancelEligibility.js.map +1 -0
- package/dist/swap/native/limitSwapCancelMemo.d.ts +123 -0
- package/dist/swap/native/limitSwapCancelMemo.d.ts.map +1 -0
- package/dist/swap/native/limitSwapCancelMemo.js +158 -0
- package/dist/swap/native/limitSwapCancelMemo.js.map +1 -0
- package/dist/swap/native/limitSwapMemo.d.ts.map +1 -1
- package/dist/swap/native/limitSwapMemo.js +7 -3
- package/dist/swap/native/limitSwapMemo.js.map +1 -1
- package/dist/swap/swapEnabledChains.d.ts +1 -1
- package/dist/swap/swapEnabledChains.d.ts.map +1 -1
- package/dist/tx/fee/evm/clampEvmPriorityFee.d.ts.map +1 -1
- package/dist/tx/fee/evm/clampEvmPriorityFee.js +2 -1
- package/dist/tx/fee/evm/clampEvmPriorityFee.js.map +1 -1
- package/dist/tx/fee/evm/evmGasLimit.d.ts.map +1 -1
- package/dist/tx/fee/evm/evmGasLimit.js +2 -0
- package/dist/tx/fee/evm/evmGasLimit.js.map +1 -1
- package/dist/utils/getBlockExplorerUrl/index.d.ts.map +1 -1
- package/dist/utils/getBlockExplorerUrl/index.js +4 -1
- package/dist/utils/getBlockExplorerUrl/index.js.map +1 -1
- package/package.json +21 -1
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { buildCancelLimitSwapMemo, doesCancelLimitSwapMemoFit, isAbbreviatedThorchainMemoAsset, } from './limitSwapCancelMemo.js';
|
|
2
|
+
import { getLimitSwapSourceChainKind } from './limitSwapMemo.js';
|
|
3
|
+
export const limitSwapCancelBlockers = [
|
|
4
|
+
/** The order has already closed. Nothing left to cancel. */
|
|
5
|
+
'terminal',
|
|
6
|
+
/**
|
|
7
|
+
* A cancel for this order has already been broadcast and is waiting to be
|
|
8
|
+
* observed. Without this, a user could pay the fee (and on L1 donate the
|
|
9
|
+
* dust) again for an identical memo landing in the identical bucket.
|
|
10
|
+
*/
|
|
11
|
+
'cancelAlreadyBroadcast',
|
|
12
|
+
/**
|
|
13
|
+
* The order predates the fields cancelling needs, or no source can supply an
|
|
14
|
+
* asset's full spelling. Fails closed rather than guessing at the values the
|
|
15
|
+
* matcher keys on.
|
|
16
|
+
*/
|
|
17
|
+
'missingSignedData',
|
|
18
|
+
/**
|
|
19
|
+
* What was recorded at signing and what the queue reports disagree. One of
|
|
20
|
+
* them is wrong and there is no way to tell which, so neither is signed.
|
|
21
|
+
*/
|
|
22
|
+
'signedDataDisagreesWithChain',
|
|
23
|
+
/**
|
|
24
|
+
* The cancel memo does not fit the source chain's per-transaction budget —
|
|
25
|
+
* in practice an ERC20 target from a UTXO source. Nothing in a cancel memo
|
|
26
|
+
* can be shortened, so the order simply refunds at expiry instead.
|
|
27
|
+
*/
|
|
28
|
+
'memoTooLongForSourceChain',
|
|
29
|
+
/**
|
|
30
|
+
* The source asset names a chain THORChain cannot route, so there is no
|
|
31
|
+
* inbound vault to send the cancel to and no byte budget to size it against.
|
|
32
|
+
*/
|
|
33
|
+
'unroutableSourceChain',
|
|
34
|
+
];
|
|
35
|
+
const trimmed = (value) => {
|
|
36
|
+
const text = value?.trim();
|
|
37
|
+
return text ? text : undefined;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Resolve which spelling of one of the order's assets a cancel may use.
|
|
41
|
+
*
|
|
42
|
+
* Three sources, in decreasing order of how much they prove:
|
|
43
|
+
*
|
|
44
|
+
* 1. **The queue's own report** — the string THORChain built this order's index
|
|
45
|
+
* entry from. Authoritative by construction, and the only source for an
|
|
46
|
+
* order placed before the full form was recorded locally.
|
|
47
|
+
* 2. **The full form captured at signing** — derived from the coin's own
|
|
48
|
+
* contract, so exact whenever it exists.
|
|
49
|
+
* 3. **The stored placement spelling** — usable ONLY when it carries no
|
|
50
|
+
* truncated identifier, which makes it full by construction. That covers
|
|
51
|
+
* every native leg (`BTC.BTC`, `THOR.RUNE`) and every secured denom.
|
|
52
|
+
*
|
|
53
|
+
* `disagrees` when a local spelling and the chain's own differ: one is wrong
|
|
54
|
+
* and there is no way to tell which. This is the check a real failure needed —
|
|
55
|
+
* the amounts were cross-checked and agreed, the assets were never compared,
|
|
56
|
+
* and the asset was the entire defect.
|
|
57
|
+
*
|
|
58
|
+
* Compared case-insensitively: the sources differ on case by convention (a
|
|
59
|
+
* secured denom is emitted lower-case and reported upper-case, and
|
|
60
|
+
* `common.ParseCoin` upper-cases whatever it is given). Anything beyond case is
|
|
61
|
+
* a real difference.
|
|
62
|
+
*/
|
|
63
|
+
export const resolveLimitSwapCancelAsset = ({ stored, signed, observed, }) => {
|
|
64
|
+
const storedIfUsable = isAbbreviatedThorchainMemoAsset(stored) ? undefined : trimmed(stored);
|
|
65
|
+
const local = trimmed(signed) ?? storedIfUsable;
|
|
66
|
+
const chain = trimmed(observed);
|
|
67
|
+
if (!chain) {
|
|
68
|
+
return local ? { resolved: local } : { problem: 'unknown' };
|
|
69
|
+
}
|
|
70
|
+
if (!local) {
|
|
71
|
+
// No local spelling to check against — the legacy token case, rescued by
|
|
72
|
+
// the only source still holding the full contract.
|
|
73
|
+
return { resolved: chain };
|
|
74
|
+
}
|
|
75
|
+
if (local.toLowerCase() !== chain.toLowerCase()) {
|
|
76
|
+
return { problem: 'disagrees' };
|
|
77
|
+
}
|
|
78
|
+
// Proven equal bar case, so the local spelling is kept: it is the exact byte
|
|
79
|
+
// form this SDK derived.
|
|
80
|
+
return { resolved: local };
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Decide whether an order can be cancelled, and if so with which exact amounts.
|
|
84
|
+
*
|
|
85
|
+
* **Fails closed at every unknown.** The failure this guards against is not a
|
|
86
|
+
* crash or an error dialog — it is a cancel that is accepted, costs a fee, and
|
|
87
|
+
* silently matches no order at all. Every branch that cannot prove the values
|
|
88
|
+
* are the ones THORChain holds returns a blocker.
|
|
89
|
+
*
|
|
90
|
+
* The signed-versus-observed cross-check covers assets as well as amounts.
|
|
91
|
+
* Absence is NOT disagreement: an order placed seconds ago has not been polled,
|
|
92
|
+
* and refusing to cancel until the first poll lands would be a worse failure
|
|
93
|
+
* than the one this prevents. But present-and-unparseable blocks exactly as a
|
|
94
|
+
* mismatch does — "not polled yet" and "polled, and the wire carried something
|
|
95
|
+
* we do not model" are different claims, and only the first is safe to proceed
|
|
96
|
+
* through.
|
|
97
|
+
*/
|
|
98
|
+
export const getLimitSwapCancelEligibility = (candidate) => {
|
|
99
|
+
if (candidate.isTerminal) {
|
|
100
|
+
return { blocked: 'terminal' };
|
|
101
|
+
}
|
|
102
|
+
if (candidate.hasPendingCancel) {
|
|
103
|
+
return { blocked: 'cancelAlreadyBroadcast' };
|
|
104
|
+
}
|
|
105
|
+
const { signedSourceAmount, signedTradeTarget } = candidate;
|
|
106
|
+
if (signedSourceAmount === undefined ||
|
|
107
|
+
signedTradeTarget === undefined ||
|
|
108
|
+
signedSourceAmount <= 0n ||
|
|
109
|
+
signedTradeTarget <= 0n) {
|
|
110
|
+
return { blocked: 'missingSignedData' };
|
|
111
|
+
}
|
|
112
|
+
// `state.deposit` IS the swap's `Tx.Coins[0].Amount` and `trade_target` IS
|
|
113
|
+
// `msg.TradeTarget` — the exact pair the matcher's ratio is computed from.
|
|
114
|
+
if (candidate.observedDeposit !== undefined && candidate.observedDeposit !== signedSourceAmount) {
|
|
115
|
+
return { blocked: 'signedDataDisagreesWithChain' };
|
|
116
|
+
}
|
|
117
|
+
if (candidate.observedTradeTarget !== undefined && candidate.observedTradeTarget !== signedTradeTarget) {
|
|
118
|
+
return { blocked: 'signedDataDisagreesWithChain' };
|
|
119
|
+
}
|
|
120
|
+
const source = resolveLimitSwapCancelAsset({
|
|
121
|
+
stored: candidate.sourceAsset,
|
|
122
|
+
signed: candidate.signedSourceAsset,
|
|
123
|
+
observed: candidate.observedSourceAsset,
|
|
124
|
+
});
|
|
125
|
+
const target = resolveLimitSwapCancelAsset({
|
|
126
|
+
stored: candidate.targetAsset,
|
|
127
|
+
signed: candidate.signedTargetAsset,
|
|
128
|
+
observed: candidate.observedTargetAsset,
|
|
129
|
+
});
|
|
130
|
+
if (!('resolved' in source) || !('resolved' in target)) {
|
|
131
|
+
const disagrees = ('problem' in source && source.problem === 'disagrees') || ('problem' in target && target.problem === 'disagrees');
|
|
132
|
+
return { blocked: disagrees ? 'signedDataDisagreesWithChain' : 'missingSignedData' };
|
|
133
|
+
}
|
|
134
|
+
const inputs = {
|
|
135
|
+
sourceAsset: source.resolved,
|
|
136
|
+
sourceAmount: signedSourceAmount,
|
|
137
|
+
targetAsset: target.resolved,
|
|
138
|
+
tradeTarget: signedTradeTarget,
|
|
139
|
+
};
|
|
140
|
+
// The memo must be buildable AND fit the chain it will be sent from. Checked
|
|
141
|
+
// here rather than at signing so the action is never offered for an order
|
|
142
|
+
// that cannot actually be cancelled.
|
|
143
|
+
let memo;
|
|
144
|
+
try {
|
|
145
|
+
memo = buildCancelLimitSwapMemo(inputs);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return { blocked: 'missingSignedData' };
|
|
149
|
+
}
|
|
150
|
+
// Resolved in its own guarded step: the memo builder does not check
|
|
151
|
+
// routability, so an unrecognised prefix reaches this call and throws —
|
|
152
|
+
// escaping a function whose whole contract is to answer with a blocker.
|
|
153
|
+
let sourceChainKind;
|
|
154
|
+
try {
|
|
155
|
+
sourceChainKind = getLimitSwapSourceChainKind(inputs.sourceAsset);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
return { blocked: 'unroutableSourceChain' };
|
|
159
|
+
}
|
|
160
|
+
if (!doesCancelLimitSwapMemoFit(memo, sourceChainKind)) {
|
|
161
|
+
return { blocked: 'memoTooLongForSourceChain' };
|
|
162
|
+
}
|
|
163
|
+
return { cancellable: inputs };
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=limitSwapCancelEligibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limitSwapCancelEligibility.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapCancelEligibility.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,+BAA+B,GAEhC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,2BAA2B,EAA4B,MAAM,iBAAiB,CAAA;AAEvF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,4DAA4D;IAC5D,UAAU;IACV;;;;OAIG;IACH,wBAAwB;IACxB;;;;OAIG;IACH,mBAAmB;IACnB;;;OAGG;IACH,8BAA8B;IAC9B;;;;OAIG;IACH,2BAA2B;IAC3B;;;OAGG;IACH,uBAAuB;CACf,CAAA;AAkBV,MAAM,OAAO,GAAG,CAAC,KAAyB,EAAsB,EAAE;IAChE,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,CAAA;IAC1B,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AAChC,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,MAAM,EACN,MAAM,EACN,QAAQ,GACyB,EAAkC,EAAE;IACrE,MAAM,cAAc,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5F,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,cAAc,CAAA;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;IAC7D,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,yEAAyE;QACzE,mDAAmD;QACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IAC5B,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAChD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;IACjC,CAAC;IACD,6EAA6E;IAC7E,yBAAyB;IACzB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAC5B,CAAC,CAAA;AA+BD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,SAAmC,EAA8B,EAAE;IAC/G,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;IAChC,CAAC;IACD,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC/B,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAA;IAC9C,CAAC;IAED,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAA;IAC3D,IACE,kBAAkB,KAAK,SAAS;QAChC,iBAAiB,KAAK,SAAS;QAC/B,kBAAkB,IAAI,EAAE;QACxB,iBAAiB,IAAI,EAAE,EACvB,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAA;IACzC,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,IAAI,SAAS,CAAC,eAAe,KAAK,SAAS,IAAI,SAAS,CAAC,eAAe,KAAK,kBAAkB,EAAE,CAAC;QAChG,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAA;IACpD,CAAC;IACD,IAAI,SAAS,CAAC,mBAAmB,KAAK,SAAS,IAAI,SAAS,CAAC,mBAAmB,KAAK,iBAAiB,EAAE,CAAC;QACvG,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAA;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,2BAA2B,CAAC;QACzC,MAAM,EAAE,SAAS,CAAC,WAAW;QAC7B,MAAM,EAAE,SAAS,CAAC,iBAAiB;QACnC,QAAQ,EAAE,SAAS,CAAC,mBAAmB;KACxC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,2BAA2B,CAAC;QACzC,MAAM,EAAE,SAAS,CAAC,WAAW;QAC7B,MAAM,EAAE,SAAS,CAAC,iBAAiB;QACnC,QAAQ,EAAE,SAAS,CAAC,mBAAmB;KACxC,CAAC,CAAA;IAEF,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,GACb,CAAC,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,WAAW,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,WAAW,CAAC,CAAA;QACpH,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAA;IACtF,CAAC;IAED,MAAM,MAAM,GAA0B;QACpC,WAAW,EAAE,MAAM,CAAC,QAAQ;QAC5B,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,MAAM,CAAC,QAAQ;QAC5B,WAAW,EAAE,iBAAiB;KAC/B,CAAA;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,qCAAqC;IACrC,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAA;IACzC,CAAC;IAED,oEAAoE;IACpE,wEAAwE;IACxE,wEAAwE;IACxE,IAAI,eAAyC,CAAA;IAC7C,IAAI,CAAC;QACH,eAAe,GAAG,2BAA2B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAA;IAC7C,CAAC;IAED,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAA;IACjD,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;AAChC,CAAC,CAAA"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { LimitSwapSourceChainKind } from './limitSwapMemo.js';
|
|
2
|
+
/**
|
|
3
|
+
* THORChain's modify-limit-swap prefix. Distinct from `limitSwapMemoPrefix`
|
|
4
|
+
* (`=<:`), which PLACES an order — `m=<:` modifies one that is already resting.
|
|
5
|
+
*/
|
|
6
|
+
export declare const modifyLimitSwapMemoPrefix = "m=<:";
|
|
7
|
+
/**
|
|
8
|
+
* Whether `memo` MODIFIES a resting order — which includes, but is not limited
|
|
9
|
+
* to, cancelling it.
|
|
10
|
+
*
|
|
11
|
+
* Named for what it matches. A cancel is the special case where the final field
|
|
12
|
+
* is zero; a non-zero value re-targets. Only the cancel form is built here, so
|
|
13
|
+
* today the two coincide — but a predicate that says "cancel" while matching
|
|
14
|
+
* any modification is the kind of small lie that outlives the assumption that
|
|
15
|
+
* made it true.
|
|
16
|
+
*/
|
|
17
|
+
export declare const isModifyLimitSwapMemo: (memo: string | undefined | null) => boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Whether `memo` CANCELS a resting order, rather than merely modifying one.
|
|
20
|
+
*
|
|
21
|
+
* The final field is compared NUMERICALLY, the way THORNode's `getUint` reads
|
|
22
|
+
* it: `"00"` is zero there, and a string comparison would call that a retarget.
|
|
23
|
+
* Digits only, so a sign cannot smuggle `"-0"` past an unsigned field.
|
|
24
|
+
*/
|
|
25
|
+
export declare const isCancelLimitSwapMemo: (memo: string | undefined | null) => boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Everything the cancel memo needs, reduced to the exact integers THORChain
|
|
28
|
+
* itself holds. Amounts are bigint so a caller cannot pass an unparsed or
|
|
29
|
+
* negative value.
|
|
30
|
+
*/
|
|
31
|
+
export type LimitSwapCancelInputs = {
|
|
32
|
+
/**
|
|
33
|
+
* THORChain memo form of the order's SOURCE asset.
|
|
34
|
+
*
|
|
35
|
+
* Must carry the token's FULL contract (`ETH.USDC-0XA0B86991…`), never the
|
|
36
|
+
* placement memo's 6-character abbreviation — see `buildCancelLimitSwapMemo`.
|
|
37
|
+
*
|
|
38
|
+
* Must be the asset's SECURED denom (`eth-usdc-0xa0b…`) when the source is a
|
|
39
|
+
* secured asset, never its layer-1 form. `MsgModifyLimitSwap.ValidateBasic`
|
|
40
|
+
* enforces `From.IsChain(Source.Asset.GetChain())`, and `GetChain()` returns
|
|
41
|
+
* THORChain only for synth, trade and secured assets. The layer-1 spelling
|
|
42
|
+
* makes it report the L1 chain, and a cancel sent from a THOR address is then
|
|
43
|
+
* rejected outright at validation.
|
|
44
|
+
*/
|
|
45
|
+
sourceAsset: string;
|
|
46
|
+
/** The order's deposited source amount, in THORChain's 1e8 fixed point. */
|
|
47
|
+
sourceAmount: bigint;
|
|
48
|
+
/** THORChain memo form of the TARGET asset, under the same full-spelling rule. */
|
|
49
|
+
targetAsset: string;
|
|
50
|
+
/** The order's ORIGINAL trade target (the placement memo's LIM), in 1e8. */
|
|
51
|
+
tradeTarget: bigint;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Whether a memo asset carries a TRUNCATED token identifier —
|
|
55
|
+
* `ETH.USDC-06EB48` rather than `ETH.USDC-0XA0B86991…`.
|
|
56
|
+
*
|
|
57
|
+
* The chain prefix has to be stripped first, and cannot be assumed to end at a
|
|
58
|
+
* `.`: a SECURED asset spells the whole thing with `-`, so a secured native
|
|
59
|
+
* denom is `btc-btc` and a secured token is `eth-usdc-0xa0b…`. Reading the tail
|
|
60
|
+
* after the last `-` would call the first of those truncated and make every
|
|
61
|
+
* secured-native order uncancellable.
|
|
62
|
+
*
|
|
63
|
+
* So: drop everything up to the first separator — that is the chain — and look
|
|
64
|
+
* at the SYMBOL that follows. A symbol is `TICKER` or `TICKER-<identifier>`,
|
|
65
|
+
* and only the second form can be truncated. `BTC.BTC`, `THOR.RUNE` and
|
|
66
|
+
* `btc-btc` carry no identifier at all and are full by construction.
|
|
67
|
+
*/
|
|
68
|
+
export declare const isAbbreviatedThorchainMemoAsset: (asset: string) => boolean;
|
|
69
|
+
export declare const limitSwapCancelMemoErrors: readonly ["emptyAsset", "nonPositiveAmount", "abbreviatedAsset"];
|
|
70
|
+
export type LimitSwapCancelMemoError = (typeof limitSwapCancelMemoErrors)[number];
|
|
71
|
+
export declare class LimitSwapCancelMemoBuildError extends Error {
|
|
72
|
+
readonly reason: LimitSwapCancelMemoError;
|
|
73
|
+
constructor(reason: LimitSwapCancelMemoError, message: string);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Both amounts must be positive, for every consumer of these inputs.
|
|
77
|
+
*
|
|
78
|
+
* Shared because two modules depend on it for different reasons: the memo would
|
|
79
|
+
* encode a coin THORNode cannot parse, and the bucket key divides by the trade
|
|
80
|
+
* target — where a zero would raise `RangeError` rather than a domain error a
|
|
81
|
+
* caller can branch on.
|
|
82
|
+
*/
|
|
83
|
+
export declare const assertPositiveLimitSwapCancelAmounts: ({ sourceAmount, tradeTarget, }: Pick<LimitSwapCancelInputs, "sourceAmount" | "tradeTarget">) => void;
|
|
84
|
+
/**
|
|
85
|
+
* Build the `m=<` memo that cancels a resting limit order.
|
|
86
|
+
*
|
|
87
|
+
* m=<:<SRC_AMOUNT><SRC_ASSET>:<TRADE_TARGET><TGT_ASSET>:0
|
|
88
|
+
*
|
|
89
|
+
* Both coins are `<amount><ASSET>` with NO space — THORNode's `getCoin` scans
|
|
90
|
+
* leading digits and splices the space back in before parsing.
|
|
91
|
+
*
|
|
92
|
+
* Three properties, each of which causes a SILENT no-op if broken — the cancel
|
|
93
|
+
* is accepted, costs a fee, matches nothing, and looks exactly like success:
|
|
94
|
+
*
|
|
95
|
+
* - **Assets are spelled in FULL.** `processOneTxIn` runs every other inbound
|
|
96
|
+
* memo through `fuzzyAssetMatch`, which is what lets a placement say
|
|
97
|
+
* `ETH.USDC-06EB48` and still be indexed under the full contract.
|
|
98
|
+
* `ModifyLimitSwapMemo` is the exception: its asset string builds the lookup
|
|
99
|
+
* key verbatim, so an abbreviation addresses a bucket that by construction
|
|
100
|
+
* holds nothing. Enforced here, not merely documented.
|
|
101
|
+
* - **Amounts are plain decimal integers.** The placement memo's LIM goes
|
|
102
|
+
* through `getUintWithScientificNotation` and understands `544e6`; these
|
|
103
|
+
* coins go through `cosmos.ParseCoins`, which does not.
|
|
104
|
+
* - **Both amounts are exact.** THORNode does not compare them directly — they
|
|
105
|
+
* feed the ratio its index key is built from (see
|
|
106
|
+
* `getThorchainLimitOrderBucketKey`), and one unit of drift lands in a
|
|
107
|
+
* different bucket.
|
|
108
|
+
*/
|
|
109
|
+
export declare const buildCancelLimitSwapMemo: (inputs: LimitSwapCancelInputs) => string;
|
|
110
|
+
/**
|
|
111
|
+
* Whether a cancel memo fits the per-transaction budget of the chain it will be
|
|
112
|
+
* sent from.
|
|
113
|
+
*
|
|
114
|
+
* In practice this rules out an ERC20 target from a UTXO source: two
|
|
115
|
+
* full-contract assets plus two exact amounts overflow the 80-byte OP_RETURN
|
|
116
|
+
* cap, and NOTHING in a cancel memo can be shortened — the amounts define the
|
|
117
|
+
* bucket, short codes are rejected by `cosmos.ParseCoins`, and this memo type
|
|
118
|
+
* skips `fuzzyAssetMatch`. Such an order still refunds automatically at expiry.
|
|
119
|
+
*/
|
|
120
|
+
export declare const doesCancelLimitSwapMemoFit: (memo: string, sourceChainKind: LimitSwapSourceChainKind) => boolean;
|
|
121
|
+
/** Convenience: the byte-cap check keyed off the source asset's memo notation. */
|
|
122
|
+
export declare const doesCancelLimitSwapMemoFitSourceAsset: (memo: string, sourceAsset: string) => boolean;
|
|
123
|
+
//# sourceMappingURL=limitSwapCancelMemo.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { getLimitSwapSourceChainKind, limitSwapMemoByteLimit } from './limitSwapMemo.js';
|
|
2
|
+
/**
|
|
3
|
+
* THORChain's modify-limit-swap prefix. Distinct from `limitSwapMemoPrefix`
|
|
4
|
+
* (`=<:`), which PLACES an order — `m=<:` modifies one that is already resting.
|
|
5
|
+
*/
|
|
6
|
+
export const modifyLimitSwapMemoPrefix = 'm=<:';
|
|
7
|
+
/**
|
|
8
|
+
* The `ModifiedTargetAmount` that means "cancel". THORNode branches on
|
|
9
|
+
* `msg.ModifiedTargetAmount.IsZero()`; any other value re-targets the order
|
|
10
|
+
* instead, which is a different action this module deliberately does not build.
|
|
11
|
+
*/
|
|
12
|
+
const cancelModifiedTargetAmount = '0';
|
|
13
|
+
/**
|
|
14
|
+
* Whether `memo` MODIFIES a resting order — which includes, but is not limited
|
|
15
|
+
* to, cancelling it.
|
|
16
|
+
*
|
|
17
|
+
* Named for what it matches. A cancel is the special case where the final field
|
|
18
|
+
* is zero; a non-zero value re-targets. Only the cancel form is built here, so
|
|
19
|
+
* today the two coincide — but a predicate that says "cancel" while matching
|
|
20
|
+
* any modification is the kind of small lie that outlives the assumption that
|
|
21
|
+
* made it true.
|
|
22
|
+
*/
|
|
23
|
+
export const isModifyLimitSwapMemo = (memo) => !!memo?.startsWith(modifyLimitSwapMemoPrefix);
|
|
24
|
+
/**
|
|
25
|
+
* Whether `memo` CANCELS a resting order, rather than merely modifying one.
|
|
26
|
+
*
|
|
27
|
+
* The final field is compared NUMERICALLY, the way THORNode's `getUint` reads
|
|
28
|
+
* it: `"00"` is zero there, and a string comparison would call that a retarget.
|
|
29
|
+
* Digits only, so a sign cannot smuggle `"-0"` past an unsigned field.
|
|
30
|
+
*/
|
|
31
|
+
export const isCancelLimitSwapMemo = (memo) => {
|
|
32
|
+
if (!isModifyLimitSwapMemo(memo) || !memo) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
const fields = memo.split(':');
|
|
36
|
+
const modifiedTarget = fields[fields.length - 1];
|
|
37
|
+
if (!modifiedTarget || !/^\d+$/.test(modifiedTarget)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return BigInt(modifiedTarget) === 0n;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Shortest token identifier a cancel memo will accept.
|
|
44
|
+
*
|
|
45
|
+
* An EVM contract is 42 characters (`0X` + 40 hex) and the placement memo's
|
|
46
|
+
* abbreviation is 6, so anything between is a wide, unambiguous gap. Fixed at a
|
|
47
|
+
* length rather than an exact `0X…` pattern so a future asset flavour with a
|
|
48
|
+
* differently-shaped identifier is not rejected out of hand — the job is to
|
|
49
|
+
* catch truncation, not to validate contract syntax.
|
|
50
|
+
*/
|
|
51
|
+
const minimumFullTokenIdentifierLength = 20;
|
|
52
|
+
/** Every separator a THORChain memo asset can use: L1, synth, trade, secured. */
|
|
53
|
+
const assetSeparators = ['.', '/', '~', '-'];
|
|
54
|
+
/**
|
|
55
|
+
* Whether a memo asset carries a TRUNCATED token identifier —
|
|
56
|
+
* `ETH.USDC-06EB48` rather than `ETH.USDC-0XA0B86991…`.
|
|
57
|
+
*
|
|
58
|
+
* The chain prefix has to be stripped first, and cannot be assumed to end at a
|
|
59
|
+
* `.`: a SECURED asset spells the whole thing with `-`, so a secured native
|
|
60
|
+
* denom is `btc-btc` and a secured token is `eth-usdc-0xa0b…`. Reading the tail
|
|
61
|
+
* after the last `-` would call the first of those truncated and make every
|
|
62
|
+
* secured-native order uncancellable.
|
|
63
|
+
*
|
|
64
|
+
* So: drop everything up to the first separator — that is the chain — and look
|
|
65
|
+
* at the SYMBOL that follows. A symbol is `TICKER` or `TICKER-<identifier>`,
|
|
66
|
+
* and only the second form can be truncated. `BTC.BTC`, `THOR.RUNE` and
|
|
67
|
+
* `btc-btc` carry no identifier at all and are full by construction.
|
|
68
|
+
*/
|
|
69
|
+
export const isAbbreviatedThorchainMemoAsset = (asset) => {
|
|
70
|
+
const chainEnd = [...asset].findIndex(char => assetSeparators.includes(char));
|
|
71
|
+
const symbol = chainEnd === -1 ? asset : asset.slice(chainEnd + 1);
|
|
72
|
+
const identifierStart = symbol.indexOf('-');
|
|
73
|
+
if (identifierStart === -1) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
return symbol.slice(identifierStart + 1).length < minimumFullTokenIdentifierLength;
|
|
77
|
+
};
|
|
78
|
+
export const limitSwapCancelMemoErrors = ['emptyAsset', 'nonPositiveAmount', 'abbreviatedAsset'];
|
|
79
|
+
export class LimitSwapCancelMemoBuildError extends Error {
|
|
80
|
+
reason;
|
|
81
|
+
constructor(reason, message) {
|
|
82
|
+
super(message);
|
|
83
|
+
this.reason = reason;
|
|
84
|
+
this.name = 'LimitSwapCancelMemoBuildError';
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Both amounts must be positive, for every consumer of these inputs.
|
|
89
|
+
*
|
|
90
|
+
* Shared because two modules depend on it for different reasons: the memo would
|
|
91
|
+
* encode a coin THORNode cannot parse, and the bucket key divides by the trade
|
|
92
|
+
* target — where a zero would raise `RangeError` rather than a domain error a
|
|
93
|
+
* caller can branch on.
|
|
94
|
+
*/
|
|
95
|
+
export const assertPositiveLimitSwapCancelAmounts = ({ sourceAmount, tradeTarget, }) => {
|
|
96
|
+
if (sourceAmount <= 0n || tradeTarget <= 0n) {
|
|
97
|
+
throw new LimitSwapCancelMemoBuildError('nonPositiveAmount', `limit order cancel: amounts must be positive, got source ${sourceAmount} and trade target ${tradeTarget}`);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Build the `m=<` memo that cancels a resting limit order.
|
|
102
|
+
*
|
|
103
|
+
* m=<:<SRC_AMOUNT><SRC_ASSET>:<TRADE_TARGET><TGT_ASSET>:0
|
|
104
|
+
*
|
|
105
|
+
* Both coins are `<amount><ASSET>` with NO space — THORNode's `getCoin` scans
|
|
106
|
+
* leading digits and splices the space back in before parsing.
|
|
107
|
+
*
|
|
108
|
+
* Three properties, each of which causes a SILENT no-op if broken — the cancel
|
|
109
|
+
* is accepted, costs a fee, matches nothing, and looks exactly like success:
|
|
110
|
+
*
|
|
111
|
+
* - **Assets are spelled in FULL.** `processOneTxIn` runs every other inbound
|
|
112
|
+
* memo through `fuzzyAssetMatch`, which is what lets a placement say
|
|
113
|
+
* `ETH.USDC-06EB48` and still be indexed under the full contract.
|
|
114
|
+
* `ModifyLimitSwapMemo` is the exception: its asset string builds the lookup
|
|
115
|
+
* key verbatim, so an abbreviation addresses a bucket that by construction
|
|
116
|
+
* holds nothing. Enforced here, not merely documented.
|
|
117
|
+
* - **Amounts are plain decimal integers.** The placement memo's LIM goes
|
|
118
|
+
* through `getUintWithScientificNotation` and understands `544e6`; these
|
|
119
|
+
* coins go through `cosmos.ParseCoins`, which does not.
|
|
120
|
+
* - **Both amounts are exact.** THORNode does not compare them directly — they
|
|
121
|
+
* feed the ratio its index key is built from (see
|
|
122
|
+
* `getThorchainLimitOrderBucketKey`), and one unit of drift lands in a
|
|
123
|
+
* different bucket.
|
|
124
|
+
*/
|
|
125
|
+
export const buildCancelLimitSwapMemo = (inputs) => {
|
|
126
|
+
const { sourceAmount, tradeTarget } = inputs;
|
|
127
|
+
// Trimmed once and used throughout: validating the trimmed form while
|
|
128
|
+
// emitting the raw one would let ' THOR.RUNE' produce `100000000 THOR.RUNE`,
|
|
129
|
+
// and THORNode's getCoin splices its own space in — so the stray one corrupts
|
|
130
|
+
// the coin field and the cancel matches nothing.
|
|
131
|
+
const sourceAsset = inputs.sourceAsset.trim();
|
|
132
|
+
const targetAsset = inputs.targetAsset.trim();
|
|
133
|
+
if (!sourceAsset || !targetAsset) {
|
|
134
|
+
throw new LimitSwapCancelMemoBuildError('emptyAsset', 'cancel memo: source and target assets are required');
|
|
135
|
+
}
|
|
136
|
+
assertPositiveLimitSwapCancelAmounts({ sourceAmount, tradeTarget });
|
|
137
|
+
if (isAbbreviatedThorchainMemoAsset(sourceAsset) || isAbbreviatedThorchainMemoAsset(targetAsset)) {
|
|
138
|
+
throw new LimitSwapCancelMemoBuildError('abbreviatedAsset', `cancel memo: assets must carry their full token identifier, got ${JSON.stringify(sourceAsset)} and ${JSON.stringify(targetAsset)}. ` +
|
|
139
|
+
'This memo type skips fuzzyAssetMatch, so an abbreviation would address a bucket holding no order.');
|
|
140
|
+
}
|
|
141
|
+
const source = `${sourceAmount}${sourceAsset}`;
|
|
142
|
+
const target = `${tradeTarget}${targetAsset}`;
|
|
143
|
+
return `${modifyLimitSwapMemoPrefix}${source}:${target}:${cancelModifiedTargetAmount}`;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Whether a cancel memo fits the per-transaction budget of the chain it will be
|
|
147
|
+
* sent from.
|
|
148
|
+
*
|
|
149
|
+
* In practice this rules out an ERC20 target from a UTXO source: two
|
|
150
|
+
* full-contract assets plus two exact amounts overflow the 80-byte OP_RETURN
|
|
151
|
+
* cap, and NOTHING in a cancel memo can be shortened — the amounts define the
|
|
152
|
+
* bucket, short codes are rejected by `cosmos.ParseCoins`, and this memo type
|
|
153
|
+
* skips `fuzzyAssetMatch`. Such an order still refunds automatically at expiry.
|
|
154
|
+
*/
|
|
155
|
+
export const doesCancelLimitSwapMemoFit = (memo, sourceChainKind) => new TextEncoder().encode(memo).length <= limitSwapMemoByteLimit[sourceChainKind];
|
|
156
|
+
/** Convenience: the byte-cap check keyed off the source asset's memo notation. */
|
|
157
|
+
export const doesCancelLimitSwapMemoFitSourceAsset = (memo, sourceAsset) => doesCancelLimitSwapMemoFit(memo, getLimitSwapSourceChainKind(sourceAsset));
|
|
158
|
+
//# sourceMappingURL=limitSwapCancelMemo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limitSwapCancelMemo.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapCancelMemo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limitSwapMemo.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapMemo.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,oBAAoB,uBAAwB,CAAA;AACzD,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA;AAExE,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,qBAAqB,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,qBAAqB,CAAA;IACnC,YAAY,EAAE,oBAAoB,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,OAAO,CAAA;AAEvD,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAG3E,CAAA;AA8FD,eAAO,MAAM,2BAA2B,GAAI,aAAa,MAAM,KAAG,wBAGjE,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,aAAa,oBAAoB,KAAG,MAM9E,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,kCAGrC,IAAI,CAAC,kBAAkB,EAAE,eAAe,GAAG,cAAc,CAAC,KAAG,MAoB/D,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,iBAAiB,wBAAwB,KAAG,IAU9F,CAAA;
|
|
1
|
+
{"version":3,"file":"limitSwapMemo.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapMemo.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,oBAAoB,uBAAwB,CAAA;AACzD,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA;AAExE,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,qBAAqB,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,qBAAqB,CAAA;IACnC,YAAY,EAAE,oBAAoB,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,OAAO,CAAA;AAEvD,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAG3E,CAAA;AA8FD,eAAO,MAAM,2BAA2B,GAAI,aAAa,MAAM,KAAG,wBAGjE,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,aAAa,oBAAoB,KAAG,MAM9E,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,kCAGrC,IAAI,CAAC,kBAAkB,EAAE,eAAe,GAAG,cAAc,CAAC,KAAG,MAoB/D,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,iBAAiB,wBAAwB,KAAG,IAU9F,CAAA;AAsED,eAAO,MAAM,uBAAuB,GAAI,QAAQ,kBAAkB,KAAG,IAOpE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAA;AAQxC,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAA;IACnB,qCAAqC;IACrC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAA;IACb,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAA;IACtB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,mBAwDjD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,IAElD,CAAA;AAUD,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB,KAAG,MAmB/D,CAAA"}
|
|
@@ -182,11 +182,14 @@ const assertValidLimitSwapDestinationAddress = (targetChain, address) => {
|
|
|
182
182
|
throw new Error(`dest_addr is not a valid ${targetChain} address`);
|
|
183
183
|
}
|
|
184
184
|
};
|
|
185
|
+
const assertValidLimitSwapDestination = (targetAsset, address) => {
|
|
186
|
+
const targetChain = getSupportedThorchainAssetChain(targetAsset, 'target_asset');
|
|
187
|
+
assertMemoSegmentSafe(address, 'dest_addr');
|
|
188
|
+
assertValidLimitSwapDestinationAddress(targetChain, address);
|
|
189
|
+
};
|
|
185
190
|
export const validateLimitSwapInputs = (inputs) => {
|
|
186
191
|
getSupportedThorchainAssetChain(inputs.source_asset, 'source_asset');
|
|
187
|
-
|
|
188
|
-
assertMemoSegmentSafe(inputs.dest_addr, 'dest_addr');
|
|
189
|
-
assertValidLimitSwapDestinationAddress(targetChain, inputs.dest_addr);
|
|
192
|
+
assertValidLimitSwapDestination(inputs.target_asset, inputs.dest_addr);
|
|
190
193
|
parsePositiveInteger(inputs.source_amount, 'source_amount');
|
|
191
194
|
parsePositiveDecimal(inputs.target_price, 'target_price');
|
|
192
195
|
getLimitSwapIntervalBlocks(inputs.expiry_hours);
|
|
@@ -251,6 +254,7 @@ export const parseLimitSwapMemo = (memo) => {
|
|
|
251
254
|
throw new Error(`limit-swap memo affiliate bps must be an integer, got ${JSON.stringify(affiliateBps)}`);
|
|
252
255
|
}
|
|
253
256
|
}
|
|
257
|
+
assertValidLimitSwapDestination(targetAsset, destAddress);
|
|
254
258
|
return {
|
|
255
259
|
targetAsset,
|
|
256
260
|
destinationAddress: destAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limitSwapMemo.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapMemo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"limitSwapMemo.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapMemo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAElE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAU,CAAA;AAgBzD,MAAM,CAAC,MAAM,sBAAsB,GAA6C;IAC9E,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,GAAG;CACX,CAAA;AAED,MAAM,UAAU,GAAG,UAAY,CAAA;AAE/B,MAAM,2BAA2B,GAAyC;IACxE,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;CACX,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAE,SAAiB,EAAQ,EAAE;IACvE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,6BAA6B,CAAC,CAAA;IAC5D,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,8CAA8C,CAAC,CAAA;IAC7E,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,8BAA8B,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,+CAA+C,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAU,EAAE;IACpD,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACjC,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,+BAA+B,GAAG,CAAC,KAAa,EAAE,SAAiB,EAAS,EAAE;IAClF,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAExB,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,KAAK,GAAG,2BAA2B,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,4CAA4C,MAAM,EAAE,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,KAA4B,EAAE,SAAiB,EAAU,EAAE;IACvF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,KAAK,CAAA;QAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,yBAAyB,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QAClE,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,kCAAkC,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,oCAAoC,CAAC,CAAA;IACnE,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,CAAC,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,KAA4B,EAAE,SAAiB,EAAU,EAAE;IACvF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,KAAK,GAAG,UAAU,CAAA;QACzC,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,yBAAyB,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,UAAkB,CAAA;IACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,yBAAyB,CAAC,CAAA;QACxD,CAAC;QACD,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC7B,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC/B,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,8DAA8D,CAAC,CAAA;QAC7F,CAAC;IACH,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC3B,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,8DAA8D,CAAC,CAAA;IAC7F,CAAC;IAED,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,EAAE,CAAC,GAAG,KAAK,CAAA;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7E,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,yBAAyB,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,WAAmB,EAA4B,EAAE;IAC3F,MAAM,KAAK,GAAG,+BAA+B,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAC1E,OAAO,YAAY,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;AAC1D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,WAAiC,EAAU,EAAE;IACtF,MAAM,QAAQ,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAA;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,WAAW,EAAE,CAAC,CAAA;IACvG,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,aAAa,EACb,YAAY,GAC+C,EAAU,EAAE;IACvE,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;IACzE,MAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IAEtE,MAAM,KAAK,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,UAAU,CAAA;IAEvD,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,wEAAwE;QACxE,oEAAoE;QACpE,uEAAuE;QACvE,yEAAyE;QACzE,0DAA0D;QAC1D,MAAM,IAAI,KAAK,CACb,sFAAsF;YACpF,uFAAuF;YACvF,mEAAmE,CACtE,CAAA;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,eAAyC,EAAQ,EAAE;IACpG,MAAM,KAAK,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAA;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,eAAe,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;IACxD,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,qBAAqB,eAAe,UAAU,KAAK,EAAE,CAAC,CAAA;IAClH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AAE/C,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,MAAc,EAAW,EAAE;IACnE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;QACnC,OAAO,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,OAAe,EAAW,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAEtF,MAAM,eAAe,GAAG,CAAC,OAAe,EAAW,EAAE;IACnD,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,kBAAkB,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,EAAE,CAAA;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,8BAA8B,GAAyD;IAC3F,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,YAAY;IAC9B,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,YAAY;IAC/B,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY;IAC1B,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,YAAY;IACzB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,YAAY;IAE9B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,CACzB,IAAI,MAAM,CAAC,qCAAqC,kBAAkB,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACpG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,EAAE,CAC7B,IAAI,MAAM,CAAC,2BAA2B,kBAAkB,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IAC1F,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,kBAAkB,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACnF,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,oBAAoB,kBAAkB,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACrG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,CAC1B,IAAI,MAAM,CAAC,uCAAuC,kBAAkB,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACtG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU,kBAAkB,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IAExF,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,eAAe;IAE/B,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC7D,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC7D,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC;IAC9D,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC;IAE3D,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,kBAAkB,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACxF,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,kBAAkB,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;CACpF,CAAA;AAED,MAAM,sCAAsC,GAAG,CAAC,WAAkB,EAAE,OAAe,EAAQ,EAAE;IAC3F,MAAM,SAAS,GAAG,8BAA8B,CAAC,WAAW,CAAC,CAAA;IAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,WAAW,+CAA+C,CAAC,CAAA;IACnG,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,WAAW,UAAU,CAAC,CAAA;IACpE,CAAC;AACH,CAAC,CAAA;AAED,MAAM,+BAA+B,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAQ,EAAE;IACrF,MAAM,WAAW,GAAG,+BAA+B,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAChF,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAC3C,sCAAsC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAA0B,EAAQ,EAAE;IAC1E,+BAA+B,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IACpE,+BAA+B,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IAEtE,oBAAoB,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;IAC3D,oBAAoB,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IACzD,0BAA0B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AACjD,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAA;AAExC,qFAAqF;AACrF,MAAM,+BAA+B,GAAG,iBAAiB,CAAA;AAEzD,gGAAgG;AAChG,MAAM,gCAAgC,GAAG,OAAO,CAAA;AAkBhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAuB,EAAE;IACtE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,wDAAwD,mBAAmB,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAChH,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,uFAAuF,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAClI,CAAA;IACH,CAAC;IAED,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAA;IAEjF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gDAAgD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzF,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,uDAAuD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChG,CAAC;IAED,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,6EAA6E,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAC3G,CAAA;IACH,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1D,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QACzB,sEAAsE;QACtE,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAA;IAChH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5F,CAAC;QAED,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,yDAAyD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC1G,CAAC;IACH,CAAC;IAED,+BAA+B,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAEzD,OAAO;QACL,WAAW;QACX,kBAAkB,EAAE,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC1B,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpF,CAAA;AACH,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAQ,EAAE;IACxD,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,MAA0B,EAAE,gBAAyB,EAAU,EAAE;IAClF,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,0BAA0B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAChE,MAAM,IAAI,GAAG,GAAG,mBAAmB,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,IAAI,KAAK,IAAI,QAAQ,IAAI,CAAA;IAEtG,OAAO,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,yBAAyB,CAAC,mBAAmB,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACjH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAA0B,EAAU,EAAE;IACvE,uBAAuB,CAAC,MAAM,CAAC,CAAA;IAE/B,MAAM,eAAe,GAAG,2BAA2B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACxE,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAE7C,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,oBAAoB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;YACpD,OAAO,aAAa,CAAA;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,oBAAoB,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACrD,oBAAoB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAA;YAC3D,OAAO,oBAAoB,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;IACpD,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const swapEnabledChains: readonly [...("Arbitrum" | "Base" | "Blast" | "Optimism" | "Zksync" | "Mantle" | "Avalanche" | "CronosChain" | "BSC" | "Ethereum" | "Polygon" | "Hyperliquid" | "Sei" | "Cosmos" | "Kujira" | "Noble" | "THORChain" | "MayaChain" | import("../Chain.js").UtxoChain | import("../Chain.js").OtherChain.Solana | import("../Chain.js").OtherChain.Ripple | import("../Chain.js").OtherChain.Tron | import("../Chain.js").OtherChain.Cardano)[], import("../Chain.js").OtherChain.Solana, "Ethereum", "Arbitrum", "Avalanche", "Base", "BSC", "Optimism", "Polygon", import("../Chain.js").OtherChain.Solana, import("../Chain.js").UtxoChain.Bitcoin, import("../Chain.js").UtxoChain.BitcoinCash, import("../Chain.js").UtxoChain.Dogecoin, import("../Chain.js").UtxoChain.Litecoin, import("../Chain.js").OtherChain.Ripple, import("../Chain.js").OtherChain.Ton, import("../Chain.js").OtherChain.Tron, import("../Chain.js").UtxoChain.Zcash, import("../Chain.js").OtherChain.Sui, import("../Chain.js").OtherChain.Cardano, "Cosmos", import("../Chain.js").UtxoChain.Dash, "Kujira", "MayaChain", "THORChain"];
|
|
1
|
+
export declare const swapEnabledChains: readonly [...("Arbitrum" | "Base" | "Blast" | "Optimism" | "Zksync" | "Mantle" | "Robinhood" | "Avalanche" | "CronosChain" | "BSC" | "Ethereum" | "Polygon" | "Hyperliquid" | "Sei" | "Cosmos" | "Kujira" | "Noble" | "THORChain" | "MayaChain" | import("../Chain.js").UtxoChain | import("../Chain.js").OtherChain.Solana | import("../Chain.js").OtherChain.Ripple | import("../Chain.js").OtherChain.Tron | import("../Chain.js").OtherChain.Cardano)[], import("../Chain.js").OtherChain.Solana, "Ethereum", "Arbitrum", "Avalanche", "Base", "BSC", "Optimism", "Polygon", import("../Chain.js").OtherChain.Solana, import("../Chain.js").UtxoChain.Bitcoin, import("../Chain.js").UtxoChain.BitcoinCash, import("../Chain.js").UtxoChain.Dogecoin, import("../Chain.js").UtxoChain.Litecoin, import("../Chain.js").OtherChain.Ripple, import("../Chain.js").OtherChain.Ton, import("../Chain.js").OtherChain.Tron, import("../Chain.js").UtxoChain.Zcash, import("../Chain.js").OtherChain.Sui, import("../Chain.js").OtherChain.Cardano, "Cosmos", import("../Chain.js").UtxoChain.Dash, "Kujira", "MayaChain", "THORChain"];
|
|
2
2
|
//# sourceMappingURL=swapEnabledChains.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapEnabledChains.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/swap/swapEnabledChains.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"swapEnabledChains.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/swap/swapEnabledChains.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,iBAAiB,ghCAQpB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clampEvmPriorityFee.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/fee/evm/clampEvmPriorityFee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"clampEvmPriorityFee.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/fee/evm/clampEvmPriorityFee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AA0DrD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,QAAQ,EAAE,mBAAmB,MAAM,KAAG,MAkBhF,CAAA"}
|
|
@@ -15,7 +15,7 @@ const GWEI = 1000000000n;
|
|
|
15
15
|
* congestion (NFT mints, MEV bursts) -> 500 gwei ceiling, 5-10x margin.
|
|
16
16
|
* - Polygon PoS: gas has historically spiked into the hundreds of gwei
|
|
17
17
|
* during congestion -> 3,000 gwei ceiling, well above any observed spike.
|
|
18
|
-
* - Rollup L2s (Arbitrum, Base, Blast, Optimism, Zksync, Mantle): sequencer
|
|
18
|
+
* - Rollup L2s (Arbitrum, Base, Blast, Optimism, Zksync, Mantle, Robinhood): sequencer
|
|
19
19
|
* priority fees are typically ~0-2 gwei -> 50 gwei ceiling. Still 25x+
|
|
20
20
|
* normal, but tight enough to catch an order-of-magnitude inflation on a
|
|
21
21
|
* chain where fees are otherwise negligible.
|
|
@@ -32,6 +32,7 @@ const priorityFeeCeilingWeiByChain = {
|
|
|
32
32
|
[EvmChain.Optimism]: 50n * GWEI,
|
|
33
33
|
[EvmChain.Zksync]: 50n * GWEI,
|
|
34
34
|
[EvmChain.Mantle]: 50n * GWEI,
|
|
35
|
+
[EvmChain.Robinhood]: 50n * GWEI,
|
|
35
36
|
};
|
|
36
37
|
const defaultPriorityFeeCeilingWei = 500n * GWEI;
|
|
37
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clampEvmPriorityFee.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/fee/evm/clampEvmPriorityFee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD,MAAM,IAAI,GAAG,WAAc,CAAA;AAE3B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,4BAA4B,GAAsC;IACtE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI;IAChC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAM,GAAG,IAAI;IACjC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI;IAC5B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;IAC7B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"clampEvmPriorityFee.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/fee/evm/clampEvmPriorityFee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD,MAAM,IAAI,GAAG,WAAc,CAAA;AAE3B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,4BAA4B,GAAsC;IACtE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI;IAChC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAM,GAAG,IAAI;IACjC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI;IAC5B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;IAC7B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;IAC7B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI;CACjC,CAAA;AAED,MAAM,4BAA4B,GAAG,IAAI,GAAG,IAAI,CAAA;AAEhD;;;;;;;;;;;GAWG;AACH,MAAM,0BAA0B,GAAsC;IACpE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,IAAI;IAC9B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;CAC/B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAe,EAAE,iBAAyB,EAAU,EAAE;IACxF,MAAM,OAAO,GAAG,4BAA4B,CAAC,KAAK,CAAC,IAAI,4BAA4B,CAAA;IAEnF,IAAI,iBAAiB,GAAG,OAAO,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CACV,+CAA+C,KAAK,KAAK,iBAAiB,qCAAqC,OAAO,iCAAiC,CACxJ,CAAA;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAErD,IAAI,iBAAiB,GAAG,KAAK,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evmGasLimit.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/fee/evm/evmGasLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"evmGasLimit.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/fee/evm/evmGasLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAyC5C,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,gBAAgB,sBAAsB,WAOvE,CAAA"}
|
|
@@ -15,6 +15,7 @@ const feeCoinTransferGasLimit = {
|
|
|
15
15
|
[EvmChain.Mantle]: mantleTransferGasLimit,
|
|
16
16
|
[EvmChain.Hyperliquid]: 23000n,
|
|
17
17
|
[EvmChain.Sei]: 30000n,
|
|
18
|
+
[EvmChain.Robinhood]: 120000n,
|
|
18
19
|
};
|
|
19
20
|
const defaultErc20TransferGasLimit = 120000n;
|
|
20
21
|
const erc20TransferGasLimit = {
|
|
@@ -31,6 +32,7 @@ const erc20TransferGasLimit = {
|
|
|
31
32
|
[EvmChain.Mantle]: mantleTransferGasLimit,
|
|
32
33
|
[EvmChain.Hyperliquid]: defaultErc20TransferGasLimit,
|
|
33
34
|
[EvmChain.Sei]: defaultErc20TransferGasLimit,
|
|
35
|
+
[EvmChain.Robinhood]: defaultErc20TransferGasLimit,
|
|
34
36
|
};
|
|
35
37
|
export const deriveEvmGasLimit = ({ coin, data }) => {
|
|
36
38
|
const { id, chain } = coin;
|