@vultisig/core-chain 2.29.1 → 2.29.3
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 +96 -0
- package/dist/chains/evm/tx/fee/index.d.ts.map +1 -1
- package/dist/chains/evm/tx/fee/index.js +6 -1
- package/dist/chains/evm/tx/fee/index.js.map +1 -1
- package/dist/coin/balance/resolvers/bittensor.d.ts.map +1 -1
- package/dist/coin/balance/resolvers/bittensor.js +14 -0
- package/dist/coin/balance/resolvers/bittensor.js.map +1 -1
- package/dist/coin/token/metadata/resolvers/ripple.d.ts +7 -7
- package/dist/coin/token/metadata/resolvers/ripple.d.ts.map +1 -1
- package/dist/coin/token/metadata/resolvers/ripple.js +36 -14
- package/dist/coin/token/metadata/resolvers/ripple.js.map +1 -1
- package/dist/security/dangerousAddresses.d.ts +63 -0
- package/dist/security/dangerousAddresses.d.ts.map +1 -0
- package/dist/security/dangerousAddresses.js +115 -0
- package/dist/security/dangerousAddresses.js.map +1 -0
- package/dist/swap/affiliate/index.d.ts.map +1 -1
- package/dist/swap/affiliate/index.js +2 -3
- package/dist/swap/affiliate/index.js.map +1 -1
- package/dist/swap/quote/findSwapQuote.d.ts.map +1 -1
- package/dist/swap/quote/findSwapQuote.js +14 -8
- package/dist/swap/quote/findSwapQuote.js.map +1 -1
- package/dist/tx/broadcast/resolvers/tron.d.ts.map +1 -1
- package/dist/tx/broadcast/resolvers/tron.js +4 -1
- package/dist/tx/broadcast/resolvers/tron.js.map +1 -1
- package/dist/tx/fee/evm/clampEvmPriorityFee.d.ts +5 -3
- package/dist/tx/fee/evm/clampEvmPriorityFee.d.ts.map +1 -1
- package/dist/tx/fee/evm/clampEvmPriorityFee.js +29 -7
- package/dist/tx/fee/evm/clampEvmPriorityFee.js.map +1 -1
- package/package.json +6 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,101 @@
|
|
|
1
1
|
# @vultisig/core-chain
|
|
2
2
|
|
|
3
|
+
## 2.29.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#1678](https://github.com/vultisig/vultisig-sdk/pull/1678) [`7603f32`](https://github.com/vultisig/vultisig-sdk/commit/7603f32e612a7d575b05c49e604aed228817f38c) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - Compare VULT discount tier balances in bigint base units instead of float64.
|
|
8
|
+
`100000n * 10n**18n` is not representable in float64 (`Number` round-trips it
|
|
9
|
+
to 99999.99999999999), so a wallet holding exactly 100,000 VULT — the diamond
|
|
10
|
+
minimum — was demoted to platinum and paid a 25 bps affiliate fee instead of
|
|
11
|
+
15 on every swap. The float rounding also swallowed one-base-unit differences
|
|
12
|
+
around every tier boundary. Comparisons now stay exact via `toChainAmount`
|
|
13
|
+
(vultisig-sdk#1677).
|
|
14
|
+
|
|
15
|
+
## 2.29.2
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [#1650](https://github.com/vultisig/vultisig-sdk/pull/1650) [`8061f30`](https://github.com/vultisig/vultisig-sdk/commit/8061f3072cc299196894b3c118bf7046eff8a004) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Validate Bittensor SS58 prefix and checksum before reading TAO balances.
|
|
20
|
+
|
|
21
|
+
- [#1661](https://github.com/vultisig/vultisig-sdk/pull/1661) [`ec4aac7`](https://github.com/vultisig/vultisig-sdk/commit/ec4aac78e96db00cae283fe8a506983a30c42412) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - Floor the signed EVM `maxPriorityFeePerGas` on tip-auction chains: 1 gwei on
|
|
22
|
+
Ethereum (parity with iOS `FeeService.calculateMaxPriorityFeePerGas` and
|
|
23
|
+
Android `EthereumFeeService`, which both floor at 1 gwei) and 30 gwei on
|
|
24
|
+
Polygon (validators enforce a ~25 gwei minimum tip). In quiet fee markets the
|
|
25
|
+
raw `eth_maxPriorityFeePerGas` suggestion collapses to near zero (~0.0004 gwei
|
|
26
|
+
observed live), and a tx signed with that tip is never picked up by block
|
|
27
|
+
builders — it sat in the public mempool until evicted, so Ethereum mainnet
|
|
28
|
+
sends from extension/desktop broadcast fine but vanished unmined. Rollup L2s
|
|
29
|
+
and the zkSync `estimateFee` path keep their current no-floor behavior, and
|
|
30
|
+
explicit user fee settings still bypass the clamp (vultisig-sdk#1659).
|
|
31
|
+
|
|
32
|
+
- [#1193](https://github.com/vultisig/vultisig-sdk/pull/1193) [`d1ed4bb`](https://github.com/vultisig/vultisig-sdk/commit/d1ed4bbd459bfed006cf9f319d9e39356ffe25b9) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - Reconcile and publicly export the dangerous/burn-address guard.
|
|
33
|
+
|
|
34
|
+
The SDK's `dangerousAddresses.ts` list had drifted from its own authoritative
|
|
35
|
+
parity source (mcp-ts `src/lib/dangerous-addresses.ts`) and from
|
|
36
|
+
agent-backend-ts's copy — the exact drift class the file's own header documents
|
|
37
|
+
via the CCTP `mintRecipient` burn incident. Reconciled to the **union** of all
|
|
38
|
+
three copies (additive/tightening only, never weakening an existing entry):
|
|
39
|
+
|
|
40
|
+
- Solana: added the SPL Token Program and Wrapped SOL mint (from mcp-ts), kept
|
|
41
|
+
the Solana Incinerator (which only this SDK copy carried).
|
|
42
|
+
- UTXO (Bitcoin/Litecoin/Dogecoin/Bitcoin-Cash/Dash/Zcash): added the Bitcoin
|
|
43
|
+
null-script and eater burn addresses.
|
|
44
|
+
- XRP (Ripple): added the ACCOUNT_ZERO black-hole and ACCOUNT_ONE reserved
|
|
45
|
+
system account.
|
|
46
|
+
|
|
47
|
+
The guard (`assertSafeDestination`, `assertSafeEvmDestination`,
|
|
48
|
+
`isEvmBurnAddress`, `getEvmDangerousReason`, `getChainDangerousReason`, and the
|
|
49
|
+
per-family tables) is now exported from the SDK's public API so the app and
|
|
50
|
+
agent-backend-ts can consume the single source of truth instead of maintaining
|
|
51
|
+
divergent copies. Non-EVM lists stay chain-family-scoped, so a burn address for
|
|
52
|
+
one family never blocks an unrelated chain.
|
|
53
|
+
|
|
54
|
+
The canonical table now lives in `@vultisig/core-chain`
|
|
55
|
+
(`security/dangerousAddresses`) — re-exported unchanged from the SDK — so the
|
|
56
|
+
lower-level core-chain swap guard can share it too (core-chain cannot depend on
|
|
57
|
+
the SDK). Two in-repo siblings that still held private, incomplete copies now
|
|
58
|
+
route through it:
|
|
59
|
+
|
|
60
|
+
- `recipientSanity.isNullAddress` (SDK) previously missed the SPL Token
|
|
61
|
+
Program + Wrapped SOL mint, the Bitcoin/XRP burns, and the third EVM variant;
|
|
62
|
+
it now flags all of them.
|
|
63
|
+
- `findSwapQuote`'s custom-recipient guard (core-chain) previously vetted only
|
|
64
|
+
the EVM zero + `…dEaD` addresses; it now rejects the `0xdead…42069` variant
|
|
65
|
+
and the base58 (Solana / UTXO / XRP) family burns on the destination chain.
|
|
66
|
+
|
|
67
|
+
The shared EVM shape check is now case-insensitive on the `0x` prefix, so a
|
|
68
|
+
`0X…`-prefixed burn can't slip past (parity with the Go guard).
|
|
69
|
+
|
|
70
|
+
- [#1655](https://github.com/vultisig/vultisig-sdk/pull/1655) [`648d932`](https://github.com/vultisig/vultisig-sdk/commit/648d932b7e3c6f3c30ff7007f3c4e4387879ba38) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - feat(ripple): resolve logos for XRPL issued currencies
|
|
71
|
+
|
|
72
|
+
Only curated issued currencies (RLUSD) carried a logo, so every other trust-line
|
|
73
|
+
token — SOLO, an issuer's USD, anything added by id or surfaced by ledger
|
|
74
|
+
discovery — resolved with no logo and rendered as a broken-image placeholder in
|
|
75
|
+
clients.
|
|
76
|
+
|
|
77
|
+
`getRippleTokenMetadata` now reads an uncurated token's official icon from the
|
|
78
|
+
XRPL token registry (xrplmeta), keyed by the `<currency>:<issuer>` pair. This is
|
|
79
|
+
the same shape as the EVM resolver reading `logoURI` from 1inch and the Solana
|
|
80
|
+
resolver returning `icon`; XRPL was the outlier because it has no on-ledger token
|
|
81
|
+
metadata registry of its own.
|
|
82
|
+
|
|
83
|
+
A curated token is unchanged: it keeps its bundled logo and price provider and
|
|
84
|
+
performs no lookup. An uncurated token may borrow an icon but never a curated
|
|
85
|
+
token's `priceProviderId` — two issuers can share a ticker on XRPL, so the issuer
|
|
86
|
+
is what identifies a token. The lookup fails soft: an unlisted token or an
|
|
87
|
+
unreachable registry still resolves, just without a logo.
|
|
88
|
+
|
|
89
|
+
- [#1653](https://github.com/vultisig/vultisig-sdk/pull/1653) [`6763ddb`](https://github.com/vultisig/vultisig-sdk/commit/6763ddbd382bd71cdf9f24bbd3bde0116a694906) Thanks [@aminsato](https://github.com/aminsato)! - Sign Sei as EIP-1559 (enveloped) instead of legacy, matching iOS
|
|
90
|
+
(`EVMHelper.setGasParameters`) and Android (`EthereumGasHelper.setGasParameters`),
|
|
91
|
+
which sign every EVM chain except BSC as EIP-1559. Sei was the only
|
|
92
|
+
enveloped-capable EVM chain still mapped to `'legacy'` in
|
|
93
|
+
`evmChainTxFeeFormat`, so the pre-signing hash (and therefore the relay
|
|
94
|
+
`message_id`) diverged between mobile and extension/desktop, deadlocking
|
|
95
|
+
Sei co-signing between them (vultisig-windows#4369).
|
|
96
|
+
|
|
97
|
+
- [#1433](https://github.com/vultisig/vultisig-sdk/pull/1433) [`259837f`](https://github.com/vultisig/vultisig-sdk/commit/259837f482717624d6422797e088a9341d4f1a23) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - Return the tx hash string (not the full RPC envelope object) from the Tron broadcast resolver, consistent with the other broadcast resolvers. The SDK's `BroadcastService` discards the broadcast resolver's return and derives the hash itself, so no consumer read the object — this is a shape-consistency fix.
|
|
98
|
+
|
|
3
99
|
## 2.29.1
|
|
4
100
|
|
|
5
101
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/evm/tx/fee/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAA;AAEnD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/evm/tx/fee/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAA;AAEnD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc,CAmBhE,CAAA"}
|
|
@@ -12,6 +12,11 @@ export const evmChainTxFeeFormat = {
|
|
|
12
12
|
[EvmChain.Polygon]: 'enveloped',
|
|
13
13
|
[EvmChain.Mantle]: 'enveloped',
|
|
14
14
|
[EvmChain.Hyperliquid]: 'enveloped',
|
|
15
|
-
|
|
15
|
+
// Sei must stay 'enveloped': iOS (EVMHelper.setGasParameters) and Android
|
|
16
|
+
// (EthereumGasHelper.setGasParameters) sign every EVM chain except BSC as
|
|
17
|
+
// EIP-1559. A different tx mode changes the pre-signing hash and therefore
|
|
18
|
+
// the relay message_id, so extension<->mobile Sei co-signing deadlocks
|
|
19
|
+
// (vultisig-windows#4369).
|
|
20
|
+
[EvmChain.Sei]: 'enveloped',
|
|
16
21
|
};
|
|
17
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/evm/tx/fee/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAI5C,MAAM,CAAC,MAAM,mBAAmB,GAAqC;IACnE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW;IAChC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW;IAC5B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW;IAC7B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW;IAChC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW;IAC9B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW;IACjC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW;IACnC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ;IACxB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW;IAChC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW;IAC/B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW;IAC9B,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW;IACnC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/evm/tx/fee/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAI5C,MAAM,CAAC,MAAM,mBAAmB,GAAqC;IACnE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW;IAChC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW;IAC5B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW;IAC7B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW;IAChC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW;IAC9B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW;IACjC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW;IACnC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ;IACxB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW;IAChC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW;IAC/B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW;IAC9B,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW;IACnC,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,uEAAuE;IACvE,2BAA2B;IAC3B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW;CAC5B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bittensor.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/bittensor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"bittensor.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/bittensor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAwCjD,eAAO,MAAM,uBAAuB,EAAE,mBAqCrC,CAAA"}
|
|
@@ -5,14 +5,28 @@ import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
|
5
5
|
import bs58 from 'bs58';
|
|
6
6
|
// System.Account storage key prefix: twox128("System") ++ twox128("Account")
|
|
7
7
|
const systemAccountPrefix = '0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9';
|
|
8
|
+
const bittensorSs58Prefix = 42;
|
|
8
9
|
const ss58AddressByteLength = 35;
|
|
9
10
|
const ss58PublicKeyOffset = 1;
|
|
10
11
|
const ss58PublicKeyEnd = 33;
|
|
12
|
+
const ss58ChecksumPreamble = new TextEncoder().encode('SS58PRE');
|
|
11
13
|
const decodeSs58PublicKey = (address) => {
|
|
12
14
|
const decoded = bs58.decode(address);
|
|
13
15
|
if (decoded.length !== ss58AddressByteLength) {
|
|
14
16
|
throw new Error(`Invalid SS58 address length: expected ${ss58AddressByteLength} bytes, got ${decoded.length}`);
|
|
15
17
|
}
|
|
18
|
+
if (decoded[0] !== bittensorSs58Prefix) {
|
|
19
|
+
throw new Error(`Not a Bittensor address: SS58 network prefix ${decoded[0]}, expected ${bittensorSs58Prefix}`);
|
|
20
|
+
}
|
|
21
|
+
const body = decoded.subarray(0, ss58PublicKeyEnd);
|
|
22
|
+
const checksum = decoded.subarray(ss58PublicKeyEnd);
|
|
23
|
+
const checksumInput = new Uint8Array(ss58ChecksumPreamble.length + body.length);
|
|
24
|
+
checksumInput.set(ss58ChecksumPreamble);
|
|
25
|
+
checksumInput.set(body, ss58ChecksumPreamble.length);
|
|
26
|
+
const expected = blake2b(checksumInput, { dkLen: 64 });
|
|
27
|
+
if (expected[0] !== checksum[0] || expected[1] !== checksum[1]) {
|
|
28
|
+
throw new Error('Invalid SS58 checksum');
|
|
29
|
+
}
|
|
16
30
|
return decoded.slice(ss58PublicKeyOffset, ss58PublicKeyEnd);
|
|
17
31
|
};
|
|
18
32
|
export const getBittensorCoinBalance = async (input) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bittensor.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/bittensor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,IAAI,MAAM,MAAM,CAAA;AAWvB,6EAA6E;AAC7E,MAAM,mBAAmB,GAAG,oEAAoE,CAAA;AAEhG,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAChC,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAC7B,MAAM,gBAAgB,GAAG,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"bittensor.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/bittensor.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,14 @@ import { TokenMetadataResolver } from '../resolver.js';
|
|
|
4
4
|
* Metadata for a custom XRPL issued currency identified by a `currency.issuer`
|
|
5
5
|
* token id.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* XRPL issued currencies expose no on-ledger metadata call: issued amounts carry
|
|
8
|
+
* no fixed on-chain decimal count (we model them at
|
|
9
9
|
* {@link rippleIssuedCurrencyDecimals}) and the ticker is derived from the
|
|
10
|
-
* currency code itself
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
10
|
+
* currency code itself. A curated token keeps its bundled logo and price
|
|
11
|
+
* provider; any other token borrows its official icon from the XRPL token
|
|
12
|
+
* registry (falling back to no logo), but never a curated token's price — two
|
|
13
|
+
* issuers can share a ticker on XRPL, so the issuer (encoded in the id) is what
|
|
14
|
+
* actually distinguishes them.
|
|
15
15
|
*/
|
|
16
16
|
export declare const getRippleTokenMetadata: TokenMetadataResolver<OtherChain.Ripple>;
|
|
17
17
|
//# sourceMappingURL=ripple.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/ripple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/ripple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAWvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAsDnD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAuB3E,CAAA"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { parseRippleTokenId, rippleIssuedCurrencyDecimals, rippleKnownIssuedTokens, rippleTokenId, } from '@vultisig/core-chain/chains/ripple/issuedCurrency';
|
|
2
2
|
import { areEqualCoins } from '@vultisig/core-chain/coin/Coin';
|
|
3
|
+
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
4
|
+
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
3
5
|
/**
|
|
4
6
|
* Human-readable ticker for an XRPL issued currency. Standard 3-character codes
|
|
5
7
|
* (`USD`) are already tickers; the 160-bit hex form encodes ASCII right-padded
|
|
@@ -12,18 +14,37 @@ const toIssuedCurrencyTicker = (currency) => {
|
|
|
12
14
|
const ascii = Buffer.from(currency, 'hex').toString('ascii').replace(/\0+$/, '');
|
|
13
15
|
return /^[\x20-\x7e]+$/.test(ascii) ? ascii : currency;
|
|
14
16
|
};
|
|
17
|
+
/** XRPL token registry that maps a `<currency>:<issuer>` pair to community metadata. */
|
|
18
|
+
const xrplMetaBaseUrl = 'https://s1.xrplmeta.org';
|
|
19
|
+
/**
|
|
20
|
+
* Official token icon from the XRPL token registry (xrplmeta), or `undefined`
|
|
21
|
+
* when the token is unlisted or the registry is unreachable.
|
|
22
|
+
*
|
|
23
|
+
* XRPL issued currencies carry no on-ledger logo, so — as the EVM (1inch) and
|
|
24
|
+
* Solana resolvers do for their chains — an arbitrary token borrows its logo
|
|
25
|
+
* from a community registry, keyed by the `<currency>:<issuer>` pair. A registry
|
|
26
|
+
* miss or outage is not an error here: the token still resolves, just without a
|
|
27
|
+
* logo, so the lookup fails soft.
|
|
28
|
+
*/
|
|
29
|
+
const getRippleTokenIcon = async ({ currency, issuer, }) => {
|
|
30
|
+
const result = await attempt(() => queryUrl(`${xrplMetaBaseUrl}/token/${currency}:${issuer}`));
|
|
31
|
+
if ('error' in result) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return result.data.meta?.token?.icon || undefined;
|
|
35
|
+
};
|
|
15
36
|
/**
|
|
16
37
|
* Metadata for a custom XRPL issued currency identified by a `currency.issuer`
|
|
17
38
|
* token id.
|
|
18
39
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
40
|
+
* XRPL issued currencies expose no on-ledger metadata call: issued amounts carry
|
|
41
|
+
* no fixed on-chain decimal count (we model them at
|
|
21
42
|
* {@link rippleIssuedCurrencyDecimals}) and the ticker is derived from the
|
|
22
|
-
* currency code itself
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
43
|
+
* currency code itself. A curated token keeps its bundled logo and price
|
|
44
|
+
* provider; any other token borrows its official icon from the XRPL token
|
|
45
|
+
* registry (falling back to no logo), but never a curated token's price — two
|
|
46
|
+
* issuers can share a ticker on XRPL, so the issuer (encoded in the id) is what
|
|
47
|
+
* actually distinguishes them.
|
|
27
48
|
*/
|
|
28
49
|
export const getRippleTokenMetadata = async ({ id, chain }) => {
|
|
29
50
|
const { currency, issuer } = parseRippleTokenId(id);
|
|
@@ -32,13 +53,14 @@ export const getRippleTokenMetadata = async ({ id, chain }) => {
|
|
|
32
53
|
decimals: rippleIssuedCurrencyDecimals,
|
|
33
54
|
};
|
|
34
55
|
const knownToken = rippleKnownIssuedTokens.find(token => areEqualCoins(token, { chain, id: rippleTokenId({ currency, issuer }) }));
|
|
35
|
-
if (
|
|
36
|
-
return
|
|
56
|
+
if (knownToken) {
|
|
57
|
+
return {
|
|
58
|
+
...metadata,
|
|
59
|
+
logo: knownToken.logo,
|
|
60
|
+
priceProviderId: knownToken.priceProviderId,
|
|
61
|
+
};
|
|
37
62
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
logo: knownToken.logo,
|
|
41
|
-
priceProviderId: knownToken.priceProviderId,
|
|
42
|
-
};
|
|
63
|
+
const logo = await getRippleTokenIcon({ currency, issuer });
|
|
64
|
+
return logo ? { ...metadata, logo } : metadata;
|
|
43
65
|
};
|
|
44
66
|
//# sourceMappingURL=ripple.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/ripple.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,aAAa,GACd,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAgB,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/ripple.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,aAAa,GACd,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAgB,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAI7D;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAU,EAAE;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAEhF,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;AACxD,CAAC,CAAA;AAED,wFAAwF;AACxF,MAAM,eAAe,GAAG,yBAAyB,CAAA;AAUjD;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAChC,QAAQ,EACR,MAAM,GAIP,EAA+B,EAAE;IAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAwB,GAAG,eAAe,UAAU,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC,CAAA;IAErH,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS,CAAA;AACnD,CAAC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA6C,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACtG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAiB;QAC7B,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC;QACxC,QAAQ,EAAE,4BAA4B;KACvC,CAAA;IAED,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACtD,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CACzE,CAAA;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;YACL,GAAG,QAAQ;YACX,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,eAAe,EAAE,UAAU,CAAC,eAAe;SAC5C,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAE3D,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AAChD,CAAC,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical dangerous/burn-address list, shared across every SDK build-tx
|
|
3
|
+
* primitive that encodes value-moving calldata.
|
|
4
|
+
*
|
|
5
|
+
* Port of mcp-ts `src/lib/dangerous-addresses.ts` (itself the parity source for
|
|
6
|
+
* the Go MCP guard). The CCTP bridge previously inlined a partial EVM burn-list
|
|
7
|
+
* that DROPPED the third canonical EVM burn address
|
|
8
|
+
* (`0xdead000000000000000042069420694206942069`, the post-#415 `EVM_DANGEROUS`
|
|
9
|
+
* variant). A CCTP burn whose `mintRecipient` is that address mints USDC to a
|
|
10
|
+
* permanently unspendable account on the destination chain. Centralizing the
|
|
11
|
+
* list here means it can't drift per call-site again.
|
|
12
|
+
*
|
|
13
|
+
* Reconciled to the UNION of the three copies that had drifted (SDK #1160):
|
|
14
|
+
* the mcp-ts authoritative source added the SPL Token Program + Wrapped SOL
|
|
15
|
+
* mint (Solana), the Bitcoin null/eater burns (UTXO chains) and the XRP Ledger
|
|
16
|
+
* black-hole accounts, while this SDK copy was the only one carrying the Solana
|
|
17
|
+
* Incinerator. Every address from every copy is kept — the guard is only ever
|
|
18
|
+
* additive/tightening, never weakened.
|
|
19
|
+
*
|
|
20
|
+
* Design notes (mirrored from the mcp-ts source, see PR #31 review):
|
|
21
|
+
* - EVM addresses are matched by SHAPE (`0x` + 40 hex) regardless of the chain
|
|
22
|
+
* name the caller passed. Chains rotate in and out of routing tables; the
|
|
23
|
+
* burn-address set does not. A 40-hex EVM address on a chain we don't yet
|
|
24
|
+
* recognise is still treated as EVM for guard purposes, so a newly-added EVM
|
|
25
|
+
* chain can't silently escape the guard.
|
|
26
|
+
* - Comparison is case-insensitive for EVM (normalize to lowercase) so a
|
|
27
|
+
* checksummed `0x...dEaD` is rejected the same as `0x...dead`.
|
|
28
|
+
* - Non-EVM burn lists are keyed by the destination chain family. A Solana
|
|
29
|
+
* program id should not be treated as a burn address for an unrelated chain.
|
|
30
|
+
* - Self-send (`from == to`) is NOT guarded here: self-sends are a legitimate
|
|
31
|
+
* smoke-test pattern users run before the real transfer.
|
|
32
|
+
*/
|
|
33
|
+
/** EVM burn / dead addresses keyed to a human-readable reason. Keys are lowercase. */
|
|
34
|
+
export declare const EVM_DANGEROUS_ADDRESSES: Record<string, string>;
|
|
35
|
+
/** Solana burn / program destinations that cannot be user-controlled. Keys are case-sensitive. */
|
|
36
|
+
export declare const SOLANA_DANGEROUS_ADDRESSES: Record<string, string>;
|
|
37
|
+
/** UTXO (Bitcoin family) burn destinations. Keys are case-sensitive base58. */
|
|
38
|
+
export declare const UTXO_DANGEROUS_ADDRESSES: Record<string, string>;
|
|
39
|
+
/** XRP Ledger black-hole / reserved system accounts. Keys are case-sensitive. */
|
|
40
|
+
export declare const XRP_DANGEROUS_ADDRESSES: Record<string, string>;
|
|
41
|
+
/**
|
|
42
|
+
* Return the dangerous-address reason string if `address` is a known EVM burn
|
|
43
|
+
* address, otherwise `undefined`. Shape-based: any `0x`+40-hex string is vetted
|
|
44
|
+
* against the EVM burn-list regardless of the chain it's destined for.
|
|
45
|
+
*/
|
|
46
|
+
export declare const getEvmDangerousReason: (address: string) => string | undefined;
|
|
47
|
+
/** True iff `address` is a known EVM burn / dead address. */
|
|
48
|
+
export declare const isEvmBurnAddress: (address: string) => boolean;
|
|
49
|
+
/** Return the chain-specific dangerous-address reason, if one applies. */
|
|
50
|
+
export declare const getChainDangerousReason: (chain: string, address: string) => string | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Throws a descriptive error if `address` is a known EVM burn / dead address.
|
|
53
|
+
* Call this in every primitive that encodes a destination/recipient into
|
|
54
|
+
* value-moving calldata, BEFORE building the calldata.
|
|
55
|
+
*/
|
|
56
|
+
export declare const assertSafeEvmDestination: (address: string) => void;
|
|
57
|
+
/**
|
|
58
|
+
* Chain-aware overload of the burn-address guard used by swap/bridge tools.
|
|
59
|
+
* EVM detection remains shape-based; non-EVM lists are keyed by the destination
|
|
60
|
+
* chain so family-specific sentinel addresses do not block unrelated chains.
|
|
61
|
+
*/
|
|
62
|
+
export declare function assertSafeDestination(chain: string, destination: string): void;
|
|
63
|
+
//# sourceMappingURL=dangerousAddresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dangerousAddresses.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/security/dangerousAddresses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK1D,CAAA;AAED,kGAAkG;AAClG,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM7D,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG3D,CAAA;AAED,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI1D,CAAA;AAaD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,SAGhE,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,OAAuD,CAAA;AAE1G,0EAA0E;AAC1E,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,EAAE,SAAS,MAAM,KAAG,MAAM,GAAG,SAejF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,SAAS,MAAM,KAAG,IAK1D,CAAA;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAM9E"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical dangerous/burn-address list, shared across every SDK build-tx
|
|
3
|
+
* primitive that encodes value-moving calldata.
|
|
4
|
+
*
|
|
5
|
+
* Port of mcp-ts `src/lib/dangerous-addresses.ts` (itself the parity source for
|
|
6
|
+
* the Go MCP guard). The CCTP bridge previously inlined a partial EVM burn-list
|
|
7
|
+
* that DROPPED the third canonical EVM burn address
|
|
8
|
+
* (`0xdead000000000000000042069420694206942069`, the post-#415 `EVM_DANGEROUS`
|
|
9
|
+
* variant). A CCTP burn whose `mintRecipient` is that address mints USDC to a
|
|
10
|
+
* permanently unspendable account on the destination chain. Centralizing the
|
|
11
|
+
* list here means it can't drift per call-site again.
|
|
12
|
+
*
|
|
13
|
+
* Reconciled to the UNION of the three copies that had drifted (SDK #1160):
|
|
14
|
+
* the mcp-ts authoritative source added the SPL Token Program + Wrapped SOL
|
|
15
|
+
* mint (Solana), the Bitcoin null/eater burns (UTXO chains) and the XRP Ledger
|
|
16
|
+
* black-hole accounts, while this SDK copy was the only one carrying the Solana
|
|
17
|
+
* Incinerator. Every address from every copy is kept — the guard is only ever
|
|
18
|
+
* additive/tightening, never weakened.
|
|
19
|
+
*
|
|
20
|
+
* Design notes (mirrored from the mcp-ts source, see PR #31 review):
|
|
21
|
+
* - EVM addresses are matched by SHAPE (`0x` + 40 hex) regardless of the chain
|
|
22
|
+
* name the caller passed. Chains rotate in and out of routing tables; the
|
|
23
|
+
* burn-address set does not. A 40-hex EVM address on a chain we don't yet
|
|
24
|
+
* recognise is still treated as EVM for guard purposes, so a newly-added EVM
|
|
25
|
+
* chain can't silently escape the guard.
|
|
26
|
+
* - Comparison is case-insensitive for EVM (normalize to lowercase) so a
|
|
27
|
+
* checksummed `0x...dEaD` is rejected the same as `0x...dead`.
|
|
28
|
+
* - Non-EVM burn lists are keyed by the destination chain family. A Solana
|
|
29
|
+
* program id should not be treated as a burn address for an unrelated chain.
|
|
30
|
+
* - Self-send (`from == to`) is NOT guarded here: self-sends are a legitimate
|
|
31
|
+
* smoke-test pattern users run before the real transfer.
|
|
32
|
+
*/
|
|
33
|
+
/** EVM burn / dead addresses keyed to a human-readable reason. Keys are lowercase. */
|
|
34
|
+
export const EVM_DANGEROUS_ADDRESSES = {
|
|
35
|
+
'0x0000000000000000000000000000000000000000': 'zero address (ETH burn address): funds sent here are permanently destroyed',
|
|
36
|
+
'0x000000000000000000000000000000000000dead': 'dead address (commonly used burn address): funds are unrecoverable',
|
|
37
|
+
'0xdead000000000000000042069420694206942069': 'dead address variant: funds are unrecoverable',
|
|
38
|
+
};
|
|
39
|
+
/** Solana burn / program destinations that cannot be user-controlled. Keys are case-sensitive. */
|
|
40
|
+
export const SOLANA_DANGEROUS_ADDRESSES = {
|
|
41
|
+
'11111111111111111111111111111111': 'Solana System Program: no private key controls this address',
|
|
42
|
+
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA: 'SPL Token Program: this is a program, not a wallet',
|
|
43
|
+
So11111111111111111111111111111111111111112: 'Wrapped SOL mint: this is a program, not a wallet',
|
|
44
|
+
'1nc1nerator11111111111111111111111111111111': 'Solana Incinerator burn address: funds sent here are permanently destroyed',
|
|
45
|
+
};
|
|
46
|
+
/** UTXO (Bitcoin family) burn destinations. Keys are case-sensitive base58. */
|
|
47
|
+
export const UTXO_DANGEROUS_ADDRESSES = {
|
|
48
|
+
'1111111111111111111114oLvT2': 'Bitcoin burn address: funds are unrecoverable',
|
|
49
|
+
'1BitcoinEaterAddressDontSendf59kuE': 'Bitcoin eater address: funds are permanently destroyed',
|
|
50
|
+
};
|
|
51
|
+
/** XRP Ledger black-hole / reserved system accounts. Keys are case-sensitive. */
|
|
52
|
+
export const XRP_DANGEROUS_ADDRESSES = {
|
|
53
|
+
rrrrrrrrrrrrrrrrrrrrrhoLvTp: 'XRP Ledger black-hole address (ACCOUNT_ZERO): funds are unrecoverable',
|
|
54
|
+
rrrrrrrrrrrrrrrrrrrrBZbvji: 'reserved XRPL system account (ACCOUNT_ONE): almost certainly a mistake, not a valid destination',
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* UTXO chain names (lowercased) whose destinations are vetted against the
|
|
58
|
+
* Bitcoin-family burn list. Mirrors mcp-ts `UTXO_CHAINS`.
|
|
59
|
+
*/
|
|
60
|
+
const UTXO_CHAINS = new Set(['bitcoin', 'litecoin', 'dogecoin', 'bitcoin-cash', 'dash', 'zcash']);
|
|
61
|
+
/** Shape of a 20-byte EVM address (`0x` + 40 hex). Case-insensitive prefix so an uppercase `0X…` is
|
|
62
|
+
* vetted the same as `0x…` (Go's guard lowercases the prefix; matching that keeps a `0X`-prefixed burn
|
|
63
|
+
* from escaping). */
|
|
64
|
+
const EVM_ADDRESS_RE = /^0x[0-9a-fA-F]{40}$/i;
|
|
65
|
+
/**
|
|
66
|
+
* Return the dangerous-address reason string if `address` is a known EVM burn
|
|
67
|
+
* address, otherwise `undefined`. Shape-based: any `0x`+40-hex string is vetted
|
|
68
|
+
* against the EVM burn-list regardless of the chain it's destined for.
|
|
69
|
+
*/
|
|
70
|
+
export const getEvmDangerousReason = (address) => {
|
|
71
|
+
if (!EVM_ADDRESS_RE.test(address))
|
|
72
|
+
return undefined;
|
|
73
|
+
return EVM_DANGEROUS_ADDRESSES[address.toLowerCase()];
|
|
74
|
+
};
|
|
75
|
+
/** True iff `address` is a known EVM burn / dead address. */
|
|
76
|
+
export const isEvmBurnAddress = (address) => getEvmDangerousReason(address) !== undefined;
|
|
77
|
+
/** Return the chain-specific dangerous-address reason, if one applies. */
|
|
78
|
+
export const getChainDangerousReason = (chain, address) => {
|
|
79
|
+
const normalizedChain = chain.trim().toLowerCase();
|
|
80
|
+
const destination = address.trim();
|
|
81
|
+
if (normalizedChain === 'solana') {
|
|
82
|
+
return SOLANA_DANGEROUS_ADDRESSES[destination];
|
|
83
|
+
}
|
|
84
|
+
if (UTXO_CHAINS.has(normalizedChain)) {
|
|
85
|
+
return UTXO_DANGEROUS_ADDRESSES[destination];
|
|
86
|
+
}
|
|
87
|
+
if (normalizedChain === 'ripple') {
|
|
88
|
+
return XRP_DANGEROUS_ADDRESSES[destination];
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Throws a descriptive error if `address` is a known EVM burn / dead address.
|
|
94
|
+
* Call this in every primitive that encodes a destination/recipient into
|
|
95
|
+
* value-moving calldata, BEFORE building the calldata.
|
|
96
|
+
*/
|
|
97
|
+
export const assertSafeEvmDestination = (address) => {
|
|
98
|
+
const reason = getEvmDangerousReason(address);
|
|
99
|
+
if (reason) {
|
|
100
|
+
throw new Error(`Refusing to build transaction: destination ${address} is a ${reason}.`);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Chain-aware overload of the burn-address guard used by swap/bridge tools.
|
|
105
|
+
* EVM detection remains shape-based; non-EVM lists are keyed by the destination
|
|
106
|
+
* chain so family-specific sentinel addresses do not block unrelated chains.
|
|
107
|
+
*/
|
|
108
|
+
export function assertSafeDestination(chain, destination) {
|
|
109
|
+
assertSafeEvmDestination(destination);
|
|
110
|
+
const reason = getChainDangerousReason(chain, destination);
|
|
111
|
+
if (reason) {
|
|
112
|
+
throw new Error(`Refusing to build transaction: destination ${destination} is a ${reason}.`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=dangerousAddresses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dangerousAddresses.js","sourceRoot":"","sources":["../../../../../packages/core/chain/security/dangerousAddresses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,sFAAsF;AACtF,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,4CAA4C,EAC1C,4EAA4E;IAC9E,4CAA4C,EAAE,oEAAoE;IAClH,4CAA4C,EAAE,+CAA+C;CAC9F,CAAA;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,0BAA0B,GAA2B;IAChE,kCAAkC,EAAE,6DAA6D;IACjG,2CAA2C,EAAE,oDAAoD;IACjG,2CAA2C,EAAE,mDAAmD;IAChG,6CAA6C,EAC3C,4EAA4E;CAC/E,CAAA;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC9D,6BAA6B,EAAE,+CAA+C;IAC9E,oCAAoC,EAAE,wDAAwD;CAC/F,CAAA;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,2BAA2B,EAAE,uEAAuE;IACpG,0BAA0B,EACxB,iGAAiG;CACpG,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEjG;;qBAEqB;AACrB,MAAM,cAAc,GAAG,sBAAsB,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAsB,EAAE;IAC3E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;IACnD,OAAO,uBAAuB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAW,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;AAE1G,0EAA0E;AAC1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,OAAe,EAAsB,EAAE;IAC5F,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAClD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAElC,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,0BAA0B,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC;IACD,IAAI,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QACrC,OAAO,wBAAwB,CAAC,WAAW,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAA;IAC7C,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAe,EAAQ,EAAE;IAChE,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC7C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,8CAA8C,OAAO,SAAS,MAAM,GAAG,CAAC,CAAA;IAC1F,CAAC;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,WAAmB;IACtE,wBAAwB,CAAC,WAAW,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAC1D,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,8CAA8C,WAAW,SAAS,MAAM,GAAG,CAAC,CAAA;IAC9F,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/affiliate/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,gBAAgB,EAAoD,MAAM,UAAU,CAAA;AAE/G,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC,KAAK,wBAAwB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,uCAGjC,wBAAwB,KAAG,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/affiliate/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,gBAAgB,EAAoD,MAAM,UAAU,CAAA;AAE/G,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC,KAAK,wBAAwB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,uCAGjC,wBAAwB,KAAG,gBAAgB,GAAG,IAqBhD,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,cAAc,gBAAgB,GAAG,IAAI,KAAG,MAE3E,CAAA"}
|
|
@@ -2,12 +2,11 @@ import { vult } from '@vultisig/core-chain/coin/knownTokens';
|
|
|
2
2
|
import { getLastItem } from '@vultisig/lib-utils/array/getLastItem';
|
|
3
3
|
import { order } from '@vultisig/lib-utils/array/order';
|
|
4
4
|
import { toEntries } from '@vultisig/lib-utils/record/toEntries';
|
|
5
|
-
import {
|
|
5
|
+
import { toChainAmount } from '../../amount/toChainAmount.js';
|
|
6
6
|
import { baseAffiliateBps, vultDiscountTierBps, vultDiscountTierMinBalances } from './config.js';
|
|
7
7
|
export const getVultDiscountTier = ({ vultBalance, thorguardNftBalance, }) => {
|
|
8
|
-
const balance = fromChainAmount(vultBalance, vult.decimals);
|
|
9
8
|
const descendingTiers = order(toEntries(vultDiscountTierMinBalances), ({ value }) => value, 'desc');
|
|
10
|
-
const baseTier = descendingTiers.find(({ value }) =>
|
|
9
|
+
const baseTier = descendingTiers.find(({ value }) => vultBalance >= toChainAmount(value, vult.decimals))?.key;
|
|
11
10
|
if (thorguardNftBalance === 0n) {
|
|
12
11
|
return baseTier ?? null;
|
|
13
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/affiliate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uCAAuC,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAEhE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/affiliate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uCAAuC,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAoB,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAS/G,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,WAAW,EACX,mBAAmB,GACM,EAA2B,EAAE;IACtD,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAEnG,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,WAAW,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAA;IAE7G,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;QAC/B,OAAO,QAAQ,IAAI,IAAI,CAAA;IACzB,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,WAAW,CAAC,eAAe,CAAC,CAAC,GAAG,CAAA;IACzC,CAAC;IAED,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAA;IAChF,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;IAEjF,IAAI,gBAAgB,IAAI,aAAa,EAAE,CAAC;QACtC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,eAAe,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;AAClD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,YAAqC,EAAU,EAAE;IACnF,OAAO,YAAY,CAAC,CAAC,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAA;AAC/F,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"findSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAEnE,OAAO,EAAuB,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAI3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AAEhG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AAI9F,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAA;AAE7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAEnF,OAAO,EAEL,sBAAsB,EACvB,MAAM,mEAAmE,CAAA;AAQ1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAA;AAqB1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC;;;;8CAI8C;AAC9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAClC,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC,KAAK,CAAC,EAAE,4BAA4B,CAAA;IACpC,IAAI,CAAC,EAAE,mBAAmB,CAAA;IAC1B,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC1C,eAAe,CAAC,EAAE,mBAAmB,CAAA;IACrC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,EAAE,4BAA4B,EAAE,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,OAAO,GACP,MAAM,GACN,SAAS,GACT,SAAS,GACT,WAAW,GACX,WAAW,CAAA;AAEf,MAAM,MAAM,4BAA4B,GAAG,qBAAqB,GAAG,mBAAmB,CAAA;AAiCtF;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,qBAAqB,EAiB1D,CAAA;AAEV,iDAAiD;AACjD,eAAO,MAAM,yBAAyB,kCAA0B,CAAA;AA+ZhE,eAAO,MAAM,aAAa,GAAU,oHAUjC,kBAAkB,KAAG,OAAO,CAAC,SAAS,CAwexC,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
2
|
import { isChainOfKind } from '@vultisig/core-chain/ChainKind';
|
|
3
|
+
import { getChainDangerousReason, getEvmDangerousReason } from '@vultisig/core-chain/security/dangerousAddresses';
|
|
3
4
|
import { getSwapAffiliateBps } from '@vultisig/core-chain/swap/affiliate';
|
|
4
5
|
import { getCowSwapQuote } from '@vultisig/core-chain/swap/general/cowswap/api/getCowSwapQuote';
|
|
5
6
|
import { cowSwapChainConfig, cowSwapSupportedChains } from '@vultisig/core-chain/swap/general/cowswap/config';
|
|
@@ -338,21 +339,26 @@ const isEvmAddress = (address) => /^0x[0-9a-fA-F]{40}$/i.test(address);
|
|
|
338
339
|
// THOR/Maya pairs the node validates the destination downstream, so a malformed
|
|
339
340
|
// non-EVM address fails there and the EVM check is skipped. Extracted from
|
|
340
341
|
// findSwapQuote to keep that function's cognitive complexity within the gate.
|
|
341
|
-
//
|
|
342
|
-
//
|
|
343
|
-
//
|
|
344
|
-
|
|
345
|
-
|
|
342
|
+
// Burn sinks — a swap output routed here is unrecoverably destroyed. Never a legit payout target for
|
|
343
|
+
// ANY route, so reject up front (a well-formed but merely WRONG non-burn recipient is the caller's
|
|
344
|
+
// grounding responsibility). Routed through the canonical shared table so it can't drift from the other
|
|
345
|
+
// guards: the EVM check now covers all three canonical burns (incl. the `0xdead…42069` variant it used to
|
|
346
|
+
// miss) and the non-EVM check adds the Solana / UTXO / XRP family burn addresses (base58 it used to miss).
|
|
346
347
|
const assertValidCustomRecipient = (recipient, from, to) => {
|
|
347
348
|
if (recipient === undefined)
|
|
348
349
|
return;
|
|
349
350
|
if (isEvmAddress(recipient)) {
|
|
350
|
-
const
|
|
351
|
-
if (
|
|
352
|
-
throw new SwapError(SwapErrorCode.InvalidConfig, `recipient "${recipient}" is a
|
|
351
|
+
const evmReason = getEvmDangerousReason(recipient);
|
|
352
|
+
if (evmReason) {
|
|
353
|
+
throw new SwapError(SwapErrorCode.InvalidConfig, `recipient "${recipient}" is a ${evmReason} — the swap output would be unrecoverable.`);
|
|
353
354
|
}
|
|
354
355
|
return;
|
|
355
356
|
}
|
|
357
|
+
// Non-EVM recipient: reject a family-specific burn / black-hole on the destination chain.
|
|
358
|
+
const chainReason = getChainDangerousReason(to.chain, recipient);
|
|
359
|
+
if (chainReason) {
|
|
360
|
+
throw new SwapError(SwapErrorCode.InvalidConfig, `recipient "${recipient}" is a ${chainReason} — the swap output would be unrecoverable.`);
|
|
361
|
+
}
|
|
356
362
|
const cowSwapPathReachable = isChainOfKind(from.chain, 'evm') &&
|
|
357
363
|
from.id !== undefined &&
|
|
358
364
|
isChainOfKind(to.chain, 'evm') &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findSwapQuote.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"findSwapQuote.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAIvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,eAAO,MAAM,eAAe,EAAE,mBAAmB,CAAC,UAAU,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAIvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,eAAO,MAAM,eAAe,EAAE,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAuBhE,CAAA"}
|
|
@@ -12,7 +12,10 @@ export const broadcastTronTx = async ({ chain, tx }) => {
|
|
|
12
12
|
: (result.code ?? 'Unknown error');
|
|
13
13
|
throw new Error(`Tron broadcast failed: ${msg}`);
|
|
14
14
|
}
|
|
15
|
-
return
|
|
15
|
+
// Return the tx hash string, consistent with the other broadcast resolvers (which return a hash
|
|
16
|
+
// or void) rather than the full RPC envelope. The SDK's BroadcastService discards this return and
|
|
17
|
+
// derives the hash itself, so no consumer reads the object — this is a shape-consistency fix.
|
|
18
|
+
return result.txid;
|
|
16
19
|
}
|
|
17
20
|
catch (error) {
|
|
18
21
|
await verifyBroadcastByHash({ chain, tx, error });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/tron.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,MAAM,CAAC,MAAM,eAAe,GAAyC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;IAC3F,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,GAAG,UAAU,8BAA8B,EAC3C;YACE,IAAI,EAAE,EAAE,CAAC,IAAI;SACd,CACF,CAAA;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;gBACxB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrD,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,eAAe,CAAC,CAAA;YACpC,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAA;QAClD,CAAC;QAED,OAAO,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/tron.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,MAAM,CAAC,MAAM,eAAe,GAAyC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;IAC3F,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,GAAG,UAAU,8BAA8B,EAC3C;YACE,IAAI,EAAE,EAAE,CAAC,IAAI;SACd,CACF,CAAA;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;gBACxB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrD,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,eAAe,CAAC,CAAA;YACpC,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAA;QAClD,CAAC;QAED,gGAAgG;QAChG,kGAAkG;QAClG,8FAA8F;QAC9F,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IACnD,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { EvmChain } from '@vultisig/core-chain/Chain';
|
|
2
2
|
/**
|
|
3
|
-
* Clamps an RPC-reported EVM maxPriorityFeePerGas
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Clamps an RPC-reported EVM maxPriorityFeePerGas into a per-chain sane
|
|
4
|
+
* range: a generous ceiling against a compromised RPC inflating the fee, and
|
|
5
|
+
* a floor (tip-auction chains only) against an honest RPC suggesting a tip
|
|
6
|
+
* too low to ever be mined. Never throws — a clamp still lets the tx go
|
|
7
|
+
* through at a safe fee, whereas rejecting it would strand the user mid-flow.
|
|
6
8
|
*/
|
|
7
9
|
export declare const clampEvmPriorityFee: (chain: EvmChain, rpcPriorityFeeWei: bigint) => bigint;
|
|
8
10
|
//# sourceMappingURL=clampEvmPriorityFee.d.ts.map
|
|
@@ -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;AAyDrD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,QAAQ,EAAE,mBAAmB,MAAM,KAAG,MAkBhF,CAAA"}
|
|
@@ -35,16 +35,38 @@ const priorityFeeCeilingWeiByChain = {
|
|
|
35
35
|
};
|
|
36
36
|
const defaultPriorityFeeCeilingWei = 500n * GWEI;
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
38
|
+
* Minimum tip (wei) to sign on chains where inclusion is a public tip
|
|
39
|
+
* auction. In quiet fee markets the RPC-suggested maxPriorityFeePerGas
|
|
40
|
+
* collapses to near zero (~0.0004 gwei observed on Ethereum L1); a tx signed
|
|
41
|
+
* with that tip gives block builders no incentive to include it, so it sits
|
|
42
|
+
* in the public mempool until evicted and shows up as "pending then
|
|
43
|
+
* disappeared" on explorers. Mirrors the mobile clients, which floor
|
|
44
|
+
* Ethereum at 1 gwei (iOS FeeService.calculateMaxPriorityFeePerGas, Android
|
|
45
|
+
* EthereumFeeService) and Polygon at 30 gwei (Polygon validators enforce a
|
|
46
|
+
* ~25 gwei minimum tip). L2 sequencers include txs regardless of tip, so
|
|
47
|
+
* rollups deliberately have no floor.
|
|
48
|
+
*/
|
|
49
|
+
const priorityFeeFloorWeiByChain = {
|
|
50
|
+
[EvmChain.Ethereum]: 1n * GWEI,
|
|
51
|
+
[EvmChain.Polygon]: 30n * GWEI,
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Clamps an RPC-reported EVM maxPriorityFeePerGas into a per-chain sane
|
|
55
|
+
* range: a generous ceiling against a compromised RPC inflating the fee, and
|
|
56
|
+
* a floor (tip-auction chains only) against an honest RPC suggesting a tip
|
|
57
|
+
* too low to ever be mined. Never throws — a clamp still lets the tx go
|
|
58
|
+
* through at a safe fee, whereas rejecting it would strand the user mid-flow.
|
|
41
59
|
*/
|
|
42
60
|
export const clampEvmPriorityFee = (chain, rpcPriorityFeeWei) => {
|
|
43
61
|
const ceiling = priorityFeeCeilingWeiByChain[chain] ?? defaultPriorityFeeCeilingWei;
|
|
44
|
-
if (rpcPriorityFeeWei
|
|
45
|
-
|
|
62
|
+
if (rpcPriorityFeeWei > ceiling) {
|
|
63
|
+
console.warn(`[evm] RPC-reported maxPriorityFeePerGas for ${chain} (${rpcPriorityFeeWei} wei) exceeds the sanity ceiling (${ceiling} wei); clamping to the ceiling.`);
|
|
64
|
+
return ceiling;
|
|
65
|
+
}
|
|
66
|
+
const floor = priorityFeeFloorWeiByChain[chain] ?? 0n;
|
|
67
|
+
if (rpcPriorityFeeWei < floor) {
|
|
68
|
+
return floor;
|
|
46
69
|
}
|
|
47
|
-
|
|
48
|
-
return ceiling;
|
|
70
|
+
return rpcPriorityFeeWei;
|
|
49
71
|
};
|
|
50
72
|
//# sourceMappingURL=clampEvmPriorityFee.js.map
|
|
@@ -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;CAC9B,CAAA;AAED,MAAM,4BAA4B,GAAG,IAAI,GAAG,IAAI,CAAA;AAEhD
|
|
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;CAC9B,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-chain",
|
|
3
|
-
"version": "2.29.
|
|
3
|
+
"version": "2.29.3",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -1503,6 +1503,11 @@
|
|
|
1503
1503
|
"import": "./dist/security/blockaid/validationChains.js",
|
|
1504
1504
|
"default": "./dist/security/blockaid/validationChains.js"
|
|
1505
1505
|
},
|
|
1506
|
+
"./security/dangerousAddresses": {
|
|
1507
|
+
"types": "./dist/security/dangerousAddresses.d.ts",
|
|
1508
|
+
"import": "./dist/security/dangerousAddresses.js",
|
|
1509
|
+
"default": "./dist/security/dangerousAddresses.js"
|
|
1510
|
+
},
|
|
1506
1511
|
"./signing/SignatureAlgorithm": {
|
|
1507
1512
|
"types": "./dist/signing/SignatureAlgorithm.d.ts",
|
|
1508
1513
|
"import": "./dist/signing/SignatureAlgorithm.js",
|