@vultisig/core-chain 1.4.0 → 1.4.2
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 +15 -0
- package/dist/chains/cosmos/cosmosMsgTypes.d.ts +5 -1
- package/dist/chains/cosmos/cosmosMsgTypes.d.ts.map +1 -1
- package/dist/chains/cosmos/cosmosMsgTypes.js +5 -0
- package/dist/chains/cosmos/cosmosMsgTypes.js.map +1 -1
- package/dist/chains/cosmos/qbtc/claim/computeClaimHashes.d.ts +4 -2
- package/dist/chains/cosmos/qbtc/claim/computeClaimHashes.d.ts.map +1 -1
- package/dist/chains/cosmos/qbtc/claim/computeClaimHashes.js +17 -6
- package/dist/chains/cosmos/qbtc/claim/computeClaimHashes.js.map +1 -1
- package/dist/chains/cosmos/staking/lcdQueries.d.ts +117 -0
- package/dist/chains/cosmos/staking/lcdQueries.d.ts.map +1 -0
- package/dist/chains/cosmos/staking/lcdQueries.js +80 -0
- package/dist/chains/cosmos/staking/lcdQueries.js.map +1 -0
- package/dist/chains/cosmos/thor/lp/pools.d.ts +1 -1
- package/dist/chains/cosmos/thor/lp/pools.d.ts.map +1 -1
- package/dist/chains/cosmos/thor/lp/pools.js +1 -1
- package/dist/chains/cosmos/thor/lp/pools.js.map +1 -1
- package/dist/chains/solana/client.d.ts.map +1 -1
- package/dist/chains/solana/client.js +1 -3
- package/dist/chains/solana/client.js.map +1 -1
- package/dist/chains/ton/messageBody/decode.d.ts +42 -0
- package/dist/chains/ton/messageBody/decode.d.ts.map +1 -0
- package/dist/chains/ton/messageBody/decode.js +337 -0
- package/dist/chains/ton/messageBody/decode.js.map +1 -0
- package/dist/chains/ton/messageBody/knownRouters.d.ts +19 -0
- package/dist/chains/ton/messageBody/knownRouters.d.ts.map +1 -0
- package/dist/chains/ton/messageBody/knownRouters.js +179 -0
- package/dist/chains/ton/messageBody/knownRouters.js.map +1 -0
- package/dist/chains/ton/messageBody/opcodes.d.ts +23 -0
- package/dist/chains/ton/messageBody/opcodes.d.ts.map +1 -0
- package/dist/chains/ton/messageBody/opcodes.js +22 -0
- package/dist/chains/ton/messageBody/opcodes.js.map +1 -0
- package/dist/chains/ton/messageBody/types.d.ts +50 -0
- package/dist/chains/ton/messageBody/types.d.ts.map +1 -0
- package/dist/chains/ton/messageBody/types.js +2 -0
- package/dist/chains/ton/messageBody/types.js.map +1 -0
- package/dist/coin/balance/resolvers/polkadot.d.ts.map +1 -1
- package/dist/coin/balance/resolvers/polkadot.js +72 -6
- package/dist/coin/balance/resolvers/polkadot.js.map +1 -1
- package/dist/publicKey/ecdsa/derivePublicKey.d.ts.map +1 -1
- package/dist/publicKey/ecdsa/derivePublicKey.js +6 -0
- package/dist/publicKey/ecdsa/derivePublicKey.js.map +1 -1
- package/dist/security/blockaid/tx/simulation/api/core.d.ts.map +1 -1
- package/dist/security/blockaid/tx/simulation/api/core.js +30 -29
- package/dist/security/blockaid/tx/simulation/api/core.js.map +1 -1
- package/package.json +31 -4
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decoded intent extracted from a TON internal-message body BOC.
|
|
3
|
+
*
|
|
4
|
+
* Returned by `decodeTonMessageBody` when the body's leading opcode matches a
|
|
5
|
+
* known operation. Addresses are user-friendly (bounceable, mainnet) strings
|
|
6
|
+
* so they render directly in the UI without further conversion.
|
|
7
|
+
*/
|
|
8
|
+
export type TonMessageBodyIntent = {
|
|
9
|
+
kind: 'jettonTransfer';
|
|
10
|
+
queryId: bigint;
|
|
11
|
+
/** Jetton units the sender is moving (in jetton's own decimals). */
|
|
12
|
+
amount: bigint;
|
|
13
|
+
/** Real recipient of the jettons (NOT the jetton wallet contract). */
|
|
14
|
+
destination: string;
|
|
15
|
+
/** Where excess TON gas is refunded to. May be null. */
|
|
16
|
+
responseDestination: string | null;
|
|
17
|
+
/** TON forwarded with the inner notification to the recipient's jetton wallet. */
|
|
18
|
+
forwardTonAmount: bigint;
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'nftTransfer';
|
|
21
|
+
queryId: bigint;
|
|
22
|
+
/** Address that receives ownership of the NFT. */
|
|
23
|
+
newOwner: string;
|
|
24
|
+
/** Where excess TON gas is refunded to. May be null. */
|
|
25
|
+
responseDestination: string | null;
|
|
26
|
+
/** TON forwarded with the ownership-change notification. */
|
|
27
|
+
forwardAmount: bigint;
|
|
28
|
+
} | {
|
|
29
|
+
kind: 'excesses';
|
|
30
|
+
queryId: bigint;
|
|
31
|
+
} | TonSwapIntent;
|
|
32
|
+
export type TonSwapIntent = {
|
|
33
|
+
kind: 'swap';
|
|
34
|
+
provider: 'stonfi' | 'dedust';
|
|
35
|
+
/** Asset being offered by the signed message. */
|
|
36
|
+
offerAsset: 'ton' | 'jetton';
|
|
37
|
+
/** Offered amount in the source asset's base units. */
|
|
38
|
+
offerAmount: bigint;
|
|
39
|
+
/** Minimum output encoded in the swap payload, when the protocol exposes it. */
|
|
40
|
+
minOut: bigint | null;
|
|
41
|
+
/** Final recipient, when encoded by the swap protocol. */
|
|
42
|
+
receiverAddress: string | null;
|
|
43
|
+
/** Refund target, when encoded by the swap protocol. */
|
|
44
|
+
refundAddress: string | null;
|
|
45
|
+
/** Excess gas target, when encoded by the swap protocol. */
|
|
46
|
+
excessesAddress: string | null;
|
|
47
|
+
/** Protocol-side pool/token wallet that identifies the swap route. */
|
|
48
|
+
targetAddress: string | null;
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/ton/messageBody/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,kFAAkF;IAClF,gBAAgB,EAAE,MAAM,CAAA;CACzB,GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAA;CACtB,GACD;IACE,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,aAAa,CAAA;AAEjB,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC7B,iDAAiD;IACjD,UAAU,EAAE,KAAK,GAAG,QAAQ,CAAA;IAC5B,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,wDAAwD;IACxD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,4DAA4D;IAC5D,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,sEAAsE;IACtE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/ton/messageBody/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polkadot.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/polkadot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"polkadot.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/polkadot.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AA0CjD,eAAO,MAAM,sBAAsB,EAAE,mBAuCpC,CAAA"}
|
|
@@ -1,11 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// SS58 decode + blake2b are intentionally implemented with bs58 + @noble/hashes
|
|
2
|
+
// rather than @polkadot/util-crypto: the latter pulls a BN.js dep that double-bundles
|
|
3
|
+
// in browser/extension builds and crashes at module init with
|
|
4
|
+
// "Cannot assign to read only property 'toString'" — same root cause as the
|
|
5
|
+
// Bittensor revert that originally broke this resolver.
|
|
6
|
+
import { blake2b } from '@noble/hashes/blake2b';
|
|
7
|
+
import { bytesToHex } from '@noble/hashes/utils';
|
|
8
|
+
import { polkadotRpcUrl } from '@vultisig/core-chain/chains/polkadot/client';
|
|
4
9
|
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
10
|
+
import bs58 from 'bs58';
|
|
11
|
+
// twox128("System") ++ twox128("Account") — well-known Substrate storage prefix
|
|
12
|
+
const systemAccountPrefix = '0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9';
|
|
13
|
+
const polkadotSs58Prefix = 0;
|
|
14
|
+
const ss58AddressByteLength = 35;
|
|
15
|
+
const ss58ChecksumPreamble = new TextEncoder().encode('SS58PRE');
|
|
16
|
+
const decodePolkadotPublicKey = (address) => {
|
|
17
|
+
const decoded = bs58.decode(address);
|
|
18
|
+
if (decoded.length !== ss58AddressByteLength) {
|
|
19
|
+
throw new Error(`Invalid SS58 address length: expected ${ss58AddressByteLength} bytes, got ${decoded.length}`);
|
|
20
|
+
}
|
|
21
|
+
// Reject other Substrate networks (Kusama=2, generic=42, etc.) — they decode
|
|
22
|
+
// to the same length and would silently resolve to a 0 DOT balance, which
|
|
23
|
+
// looks indistinguishable from fund loss.
|
|
24
|
+
if (decoded[0] !== polkadotSs58Prefix) {
|
|
25
|
+
throw new Error(`Not a Polkadot address: SS58 network prefix ${decoded[0]}, expected ${polkadotSs58Prefix}`);
|
|
26
|
+
}
|
|
27
|
+
// SS58 checksum: blake2b-512("SS58PRE" || prefix || pubkey)[0..2] == trailing 2 bytes.
|
|
28
|
+
// Catches single-character typos that would otherwise yield a valid-shaped pubkey
|
|
29
|
+
// and a 0 balance.
|
|
30
|
+
const payload = decoded.subarray(0, 33);
|
|
31
|
+
const checksum = decoded.subarray(33);
|
|
32
|
+
const checksumInput = new Uint8Array(ss58ChecksumPreamble.length + payload.length);
|
|
33
|
+
checksumInput.set(ss58ChecksumPreamble);
|
|
34
|
+
checksumInput.set(payload, ss58ChecksumPreamble.length);
|
|
35
|
+
const expected = blake2b(checksumInput, { dkLen: 64 });
|
|
36
|
+
if (expected[0] !== checksum[0] || expected[1] !== checksum[1]) {
|
|
37
|
+
throw new Error('Invalid SS58 checksum');
|
|
38
|
+
}
|
|
39
|
+
return payload.subarray(1);
|
|
40
|
+
};
|
|
5
41
|
export const getPolkadotCoinBalance = async (input) => {
|
|
6
|
-
const
|
|
7
|
-
|
|
42
|
+
const pubkey = decodePolkadotPublicKey(input.address);
|
|
43
|
+
const hash = bytesToHex(blake2b(pubkey, { dkLen: 16 }));
|
|
44
|
+
const accountId = bytesToHex(pubkey);
|
|
45
|
+
const storageKey = systemAccountPrefix + hash + accountId;
|
|
46
|
+
const response = await queryUrl(polkadotRpcUrl, {
|
|
47
|
+
body: {
|
|
48
|
+
jsonrpc: '2.0',
|
|
49
|
+
method: 'state_getStorage',
|
|
50
|
+
params: [storageKey],
|
|
51
|
+
id: 1,
|
|
52
|
+
},
|
|
8
53
|
});
|
|
9
|
-
|
|
54
|
+
if (response.error) {
|
|
55
|
+
throw new Error(`Polkadot balance RPC error: ${response.error.message ?? `code ${response.error.code}`}`);
|
|
56
|
+
}
|
|
57
|
+
const result = response.result;
|
|
58
|
+
if (!result)
|
|
59
|
+
return BigInt(0);
|
|
60
|
+
// SCALE AccountInfo layout (frame_system + pallet_balances v47):
|
|
61
|
+
// nonce(u32) + consumers(u32) + providers(u32) + sufficients(u32)
|
|
62
|
+
// + AccountData { free(u128), reserved(u128), frozen(u128), flags(u128) }
|
|
63
|
+
// free is always at byte offset 16, length 16, encoded LE — stable across the
|
|
64
|
+
// misc_frozen/fee_frozen → frozen/flags migration, since `free` is always the
|
|
65
|
+
// first AccountData field.
|
|
66
|
+
const hex = result.startsWith('0x') ? result.slice(2) : result;
|
|
67
|
+
if (hex.length < 64 || !/^[0-9a-fA-F]+$/.test(hex)) {
|
|
68
|
+
throw new Error(`Unexpected storage response format: ${result}`);
|
|
69
|
+
}
|
|
70
|
+
const freeHex = hex.slice(32, 64);
|
|
71
|
+
const leBytes = freeHex.match(/.{2}/g);
|
|
72
|
+
if (!leBytes) {
|
|
73
|
+
throw new Error(`Failed to parse free balance hex: ${freeHex}`);
|
|
74
|
+
}
|
|
75
|
+
return BigInt('0x' + leBytes.reverse().join(''));
|
|
10
76
|
};
|
|
11
77
|
//# sourceMappingURL=polkadot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polkadot.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/polkadot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"polkadot.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/polkadot.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,sFAAsF;AACtF,8DAA8D;AAC9D,4EAA4E;AAC5E,wDAAwD;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,IAAI,MAAM,MAAM,CAAA;AAWvB,gFAAgF;AAChF,MAAM,mBAAmB,GAAG,oEAAoE,CAAA;AAEhG,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAC5B,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAChC,MAAM,oBAAoB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAEhE,MAAM,uBAAuB,GAAG,CAAC,OAAe,EAAc,EAAE;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACpC,IAAI,OAAO,CAAC,MAAM,KAAK,qBAAqB,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,yCAAyC,qBAAqB,eAAe,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAChH,CAAC;IACD,6EAA6E;IAC7E,0EAA0E;IAC1E,0CAA0C;IAC1C,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,CAAC,CAAC,CAAC,cAAc,kBAAkB,EAAE,CAAC,CAAA;IAC9G,CAAC;IACD,uFAAuF;IACvF,kFAAkF;IAClF,mBAAmB;IACnB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACrC,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,oBAAoB,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAClF,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACvC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACtD,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAwB,KAAK,EAAC,KAAK,EAAC,EAAE;IACvE,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACrD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,UAAU,GAAG,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAA;IAEzD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAA6B,cAAc,EAAE;QAC1E,IAAI,EAAE;YACJ,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,CAAC,UAAU,CAAC;YACpB,EAAE,EAAE,CAAC;SACN;KACF,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAC3G,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC9B,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;IAE7B,iEAAiE;IACjE,oEAAoE;IACpE,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,2BAA2B;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAC9D,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAM,EAAE,CAAC,CAAA;IAClE,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAClD,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivePublicKey.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/publicKey/ecdsa/derivePublicKey.ts"],"names":[],"mappings":"AAGA,KAAK,oBAAoB,GAAG;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,wCAI7B,oBAAoB,KAAG,
|
|
1
|
+
{"version":3,"file":"derivePublicKey.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/publicKey/ecdsa/derivePublicKey.ts"],"names":[],"mappings":"AAGA,KAAK,oBAAoB,GAAG;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,wCAI7B,oBAAoB,KAAG,MA4BzB,CAAA"}
|
|
@@ -17,6 +17,12 @@ export const derivePublicKey = ({ hexRootPubKey, hexChainCode, path, }) => {
|
|
|
17
17
|
}
|
|
18
18
|
const pathBuf = getDerivePathBytes(path);
|
|
19
19
|
const derivedKey = derivePubKeyFromPath(pubKeyBuf, chainCodeBuf, pathBuf);
|
|
20
|
+
if (derivedKey.length === 0) {
|
|
21
|
+
throw new Error(`derivePublicKey: produced a zero-length public key for path ${path}. ` +
|
|
22
|
+
'This indicates that `bip32` or `tiny-secp256k1` is being stubbed out by your bundler ' +
|
|
23
|
+
'(commonly a Metro `resolveRequest` / `SDK_EXTERNAL_STUBS` list). ' +
|
|
24
|
+
'The Vultisig SDK inlines these into its React Native bundle — do not stub them in consumer metro config.');
|
|
25
|
+
}
|
|
20
26
|
return Buffer.from(derivedKey).toString('hex');
|
|
21
27
|
};
|
|
22
28
|
const getDerivePathBytes = (derivePath) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivePublicKey.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/publicKey/ecdsa/derivePublicKey.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,OAAO,CAAA;AAChC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAQrC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,aAAa,EACb,YAAY,EACZ,IAAI,GACiB,EAAU,EAAE;IACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IAC/B,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;IACrD,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACxC,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;IACzE,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAChD,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,UAAkB,EAAY,EAAE;IAC1D,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAChC,SAAQ;QACV,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QACvD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,UAAU,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AACD,MAAM,cAAc,GAAG,UAAU,CAAA;AACjC,MAAM,oBAAoB,GAAG,CAC3B,MAAkB,EAClB,SAAqB,EACrB,IAAc,EACF,EAAE;IACd,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAEvD,IAAI,WAAW,GAAG,QAAQ,CAAA;IAC1B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,KAAK,IAAI,cAAc,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,uCAAuC,KAAK,qBAAqB,CAClE,CAAA;QACH,CAAC;QACD,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAChD,CAAC;IAED,OAAO,WAAW,CAAC,SAAS,CAAA;AAC9B,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"derivePublicKey.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/publicKey/ecdsa/derivePublicKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/chain/security/blockaid/tx/simulation/api/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAIrD,OAAO,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/chain/security/blockaid/tx/simulation/api/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAIrD,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAEjF,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE;QACf,mBAAmB,EAAE,KAAK,CAAC;YACzB,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO,GAAG,KAAK,CAAA;gBACrB,IAAI,CAAC,EAAE,MAAM,CAAA;gBACb,MAAM,CAAC,EAAE,MAAM,CAAA;gBACf,OAAO,CAAC,EAAE,MAAM,CAAA;gBAChB,QAAQ,EAAE,MAAM,CAAA;gBAChB,IAAI,EAAE,MAAM,CAAA;aACb,CAAA;YACD,EAAE,EAAE;gBACF,SAAS,EAAE,MAAM,CAAA;gBACjB,OAAO,EAAE,MAAM,CAAA;gBACf,KAAK,EAAE,MAAM,CAAA;gBACb,SAAS,EAAE,MAAM,CAAA;aAClB,GAAG,IAAI,CAAA;YACR,GAAG,EAAE;gBACH,SAAS,EAAE,MAAM,CAAA;gBACjB,OAAO,EAAE,MAAM,CAAA;gBACf,KAAK,EAAE,MAAM,CAAA;gBACb,SAAS,EAAE,MAAM,CAAA;aAClB,GAAG,IAAI,CAAA;YACR,UAAU,EAAE,OAAO,GAAG,KAAK,CAAA;SAC5B,CAAC,CAAA;KACH,CAAA;CACF,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE;QACf,YAAY,EAAE,KAAK,CAAC;YAClB,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAA;YAC9B,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;gBACxB,UAAU,EAAE,MAAM,CAAA;gBAClB,QAAQ,EAAE,MAAM,CAAA;gBAChB,QAAQ,EAAE,MAAM,CAAA;gBAChB,OAAO,CAAC,EAAE,MAAM,CAAA;gBAChB,QAAQ,EAAE,MAAM,CAAA;gBAChB,IAAI,EAAE,MAAM,CAAA;gBACZ,MAAM,EAAE,MAAM,CAAA;aACf,CAAA;YACD,EAAE,EAAE,KAAK,CAAC;gBACR,SAAS,EAAE,MAAM,CAAA;gBACjB,OAAO,EAAE,MAAM,CAAA;gBACf,KAAK,EAAE,MAAM,CAAA;gBACb,SAAS,EAAE,MAAM,CAAA;aAClB,CAAC,CAAA;YACF,GAAG,EAAE,KAAK,CAAC;gBACT,SAAS,EAAE,MAAM,CAAA;gBACjB,OAAO,EAAE,MAAM,CAAA;gBACf,KAAK,EAAE,MAAM,CAAA;gBACb,SAAS,EAAE,MAAM,CAAA;aAClB,CAAC,CAAA;YACF,eAAe,EAAE;gBACf,MAAM,EAAE;oBACN,SAAS,EAAE,MAAM,CAAA;oBACjB,KAAK,EAAE,MAAM,CAAA;oBACb,SAAS,EAAE,MAAM,CAAA;iBAClB,CAAA;gBACD,KAAK,EAAE;oBACL,SAAS,EAAE,MAAM,CAAA;oBACjB,KAAK,EAAE,MAAM,CAAA;oBACb,SAAS,EAAE,MAAM,CAAA;iBAClB,CAAA;aACF,CAAA;SACF,CAAC,CAAA;KACH,CAAA;CACF,CAAA;AAED,eAAO,MAAM,6BAA6B,GACxC,YAAY,wBAAwB,KACnC,OAAO,CAAC,4BAA4B,CA2EtC,CAAA;AAED,eAAO,MAAM,0BAA0B,GACrC,YAAY,qBAAqB,EACjC,OAAO,QAAQ,KACd,OAAO,CAAC,yBAAyB,CAoFnC,CAAA"}
|
|
@@ -48,12 +48,8 @@ export const parseBlockaidSolanaSimulation = async (simulation) => {
|
|
|
48
48
|
if (outAsset && inAsset && outValue && inValue) {
|
|
49
49
|
return {
|
|
50
50
|
swap: {
|
|
51
|
-
fromMint: outAsset.type === 'SOL'
|
|
52
|
-
|
|
53
|
-
: shouldBePresent(outAsset.address),
|
|
54
|
-
toMint: inAsset.type === 'SOL'
|
|
55
|
-
? 'So11111111111111111111111111111111111111112'
|
|
56
|
-
: shouldBePresent(inAsset.address),
|
|
51
|
+
fromMint: outAsset.type === 'SOL' ? 'So11111111111111111111111111111111111111112' : shouldBePresent(outAsset.address),
|
|
52
|
+
toMint: inAsset.type === 'SOL' ? 'So11111111111111111111111111111111111111112' : shouldBePresent(inAsset.address),
|
|
57
53
|
fromAmount: BigInt(shouldBePresent(outValue).raw_value),
|
|
58
54
|
toAmount: BigInt(shouldBePresent(inValue).raw_value),
|
|
59
55
|
toAssetDecimal: inAsset.decimals,
|
|
@@ -63,9 +59,7 @@ export const parseBlockaidSolanaSimulation = async (simulation) => {
|
|
|
63
59
|
else if (outAsset && outValue) {
|
|
64
60
|
return {
|
|
65
61
|
transfer: {
|
|
66
|
-
fromMint: outAsset.type === 'SOL'
|
|
67
|
-
? 'So11111111111111111111111111111111111111112'
|
|
68
|
-
: shouldBePresent(outAsset.address),
|
|
62
|
+
fromMint: outAsset.type === 'SOL' ? 'So11111111111111111111111111111111111111112' : shouldBePresent(outAsset.address),
|
|
69
63
|
fromAmount: BigInt(shouldBePresent(outValue).raw_value),
|
|
70
64
|
},
|
|
71
65
|
};
|
|
@@ -97,28 +91,35 @@ export const parseBlockaidEvmSimulation = async (simulation, chain) => {
|
|
|
97
91
|
};
|
|
98
92
|
}
|
|
99
93
|
else if (assetDiffs.length > 1) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
94
|
+
// Router-mediated flows (e.g. `permitAndCall`) often return three diffs
|
|
95
|
+
// with an intermediate permit/allowance leg between the user's `out` and
|
|
96
|
+
// `in` sides. Scan all diffs instead of using positional destructuring so
|
|
97
|
+
// the user-side pair is recovered regardless of order, and prefer an
|
|
98
|
+
// in-side asset that differs from the out-side asset (case-insensitive,
|
|
99
|
+
// since EIP-55 checksums vary by casing). Mirrors the iOS parser.
|
|
100
|
+
const outDiff = assetDiffs.find(diff => diff.out.length > 0);
|
|
101
|
+
if (!outDiff) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
const outAddress = outDiff.asset.address?.toLowerCase();
|
|
105
|
+
const inDiff = assetDiffs.find(diff => diff.in.length > 0 && diff.asset.address?.toLowerCase() !== outAddress) ??
|
|
106
|
+
assetDiffs.find(diff => diff.in.length > 0);
|
|
107
|
+
if (!inDiff) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
// Address is the primary identity for a token; symbol is just metadata
|
|
111
|
+
// and Blockaid sometimes returns inconsistent casing (`USDC` vs `usdc`)
|
|
112
|
+
// for the same contract. Reject refund-shaped pairs by address alone so
|
|
113
|
+
// we don't render a nonsense `A → A` swap when the in-side fallback
|
|
114
|
+
// matches the out-side asset.
|
|
115
|
+
const inAddress = inDiff.asset.address?.toLowerCase();
|
|
116
|
+
if (outAddress === inAddress) {
|
|
120
117
|
return null;
|
|
121
118
|
}
|
|
119
|
+
const outAsset = outDiff.asset;
|
|
120
|
+
const outValue = outDiff.out;
|
|
121
|
+
const inAsset = inDiff.asset;
|
|
122
|
+
const inValue = inDiff.in;
|
|
122
123
|
return {
|
|
123
124
|
swap: {
|
|
124
125
|
fromCoin: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../../../../../packages/core/chain/security/blockaid/tx/simulation/api/core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../../../../../packages/core/chain/security/blockaid/tx/simulation/api/core.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-chain",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -284,6 +284,11 @@
|
|
|
284
284
|
"import": "./dist/chains/cosmos/qbtc/tendermintRpcUrl.js",
|
|
285
285
|
"default": "./dist/chains/cosmos/qbtc/tendermintRpcUrl.js"
|
|
286
286
|
},
|
|
287
|
+
"./chains/cosmos/staking/lcdQueries": {
|
|
288
|
+
"types": "./dist/chains/cosmos/staking/lcdQueries.d.ts",
|
|
289
|
+
"import": "./dist/chains/cosmos/staking/lcdQueries.js",
|
|
290
|
+
"default": "./dist/chains/cosmos/staking/lcdQueries.js"
|
|
291
|
+
},
|
|
287
292
|
"./chains/cosmos/sumFeeAmountForCosmosChainFeeDenom": {
|
|
288
293
|
"types": "./dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.d.ts",
|
|
289
294
|
"import": "./dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.js",
|
|
@@ -634,6 +639,26 @@
|
|
|
634
639
|
"import": "./dist/chains/ton/config.js",
|
|
635
640
|
"default": "./dist/chains/ton/config.js"
|
|
636
641
|
},
|
|
642
|
+
"./chains/ton/messageBody/decode": {
|
|
643
|
+
"types": "./dist/chains/ton/messageBody/decode.d.ts",
|
|
644
|
+
"import": "./dist/chains/ton/messageBody/decode.js",
|
|
645
|
+
"default": "./dist/chains/ton/messageBody/decode.js"
|
|
646
|
+
},
|
|
647
|
+
"./chains/ton/messageBody/knownRouters": {
|
|
648
|
+
"types": "./dist/chains/ton/messageBody/knownRouters.d.ts",
|
|
649
|
+
"import": "./dist/chains/ton/messageBody/knownRouters.js",
|
|
650
|
+
"default": "./dist/chains/ton/messageBody/knownRouters.js"
|
|
651
|
+
},
|
|
652
|
+
"./chains/ton/messageBody/opcodes": {
|
|
653
|
+
"types": "./dist/chains/ton/messageBody/opcodes.d.ts",
|
|
654
|
+
"import": "./dist/chains/ton/messageBody/opcodes.js",
|
|
655
|
+
"default": "./dist/chains/ton/messageBody/opcodes.js"
|
|
656
|
+
},
|
|
657
|
+
"./chains/ton/messageBody/types": {
|
|
658
|
+
"types": "./dist/chains/ton/messageBody/types.d.ts",
|
|
659
|
+
"import": "./dist/chains/ton/messageBody/types.js",
|
|
660
|
+
"default": "./dist/chains/ton/messageBody/types.js"
|
|
661
|
+
},
|
|
637
662
|
"./chains/tron/config": {
|
|
638
663
|
"types": "./dist/chains/tron/config.d.ts",
|
|
639
664
|
"import": "./dist/chains/tron/config.js",
|
|
@@ -1643,18 +1668,20 @@
|
|
|
1643
1668
|
"@polkadot/util": "^14.0.1",
|
|
1644
1669
|
"@polkadot/util-crypto": "^14.0.1",
|
|
1645
1670
|
"@solana/web3.js": "^1.98.4",
|
|
1671
|
+
"@ton/core": "^0.63.1",
|
|
1672
|
+
"@ton/crypto": "^3.3.0",
|
|
1646
1673
|
"@trustwallet/wallet-core": "^4.6.0",
|
|
1647
1674
|
"@vultisig/core-config": "0.9.1",
|
|
1648
|
-
"@vultisig/lib-utils": "0.
|
|
1675
|
+
"@vultisig/lib-utils": "0.10.0",
|
|
1649
1676
|
"bip32": "^5.0.1",
|
|
1650
1677
|
"bitcoinjs-lib": "^7.0.1",
|
|
1651
1678
|
"bs58": "^6.0.0",
|
|
1652
1679
|
"cbor-x": "^1.6.4",
|
|
1653
1680
|
"date-fns": "^4.1.0",
|
|
1654
1681
|
"ethers": "^6.16.0",
|
|
1655
|
-
"i18next": "^
|
|
1682
|
+
"i18next": "^26.0.8",
|
|
1656
1683
|
"tiny-secp256k1": "^2.2.4",
|
|
1657
|
-
"viem": "^2.
|
|
1684
|
+
"viem": "^2.48.4",
|
|
1658
1685
|
"xrpl": "^4.6.0"
|
|
1659
1686
|
}
|
|
1660
1687
|
}
|