@vultisig/core-chain 2.2.3 → 2.2.5
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 +12 -0
- package/dist/chains/polkadot/dapp/constructSigningPayload.d.ts +19 -5
- package/dist/chains/polkadot/dapp/constructSigningPayload.d.ts.map +1 -1
- package/dist/chains/polkadot/dapp/constructSigningPayload.js +33 -6
- package/dist/chains/polkadot/dapp/constructSigningPayload.js.map +1 -1
- package/dist/coin/balance/resolvers/tron.d.ts +17 -4
- package/dist/coin/balance/resolvers/tron.d.ts.map +1 -1
- package/dist/coin/balance/resolvers/tron.js +61 -55
- package/dist/coin/balance/resolvers/tron.js.map +1 -1
- package/dist/coin/knownTokens/index.d.ts.map +1 -1
- package/dist/coin/knownTokens/index.js +19 -0
- package/dist/coin/knownTokens/index.js.map +1 -1
- package/dist/station/importPrimitives.d.ts +57 -0
- package/dist/station/importPrimitives.d.ts.map +1 -0
- package/dist/station/importPrimitives.js +124 -0
- package/dist/station/importPrimitives.js.map +1 -0
- package/dist/swap/general/GeneralSwapQuote.d.ts +4 -0
- package/dist/swap/general/GeneralSwapQuote.d.ts.map +1 -1
- package/dist/swap/general/lifi/api/getLifiSwapQuote.d.ts.map +1 -1
- package/dist/swap/general/lifi/api/getLifiSwapQuote.js +55 -2
- package/dist/swap/general/lifi/api/getLifiSwapQuote.js.map +1 -1
- package/dist/swap/general/lifi/api/injectSolanaAtaIfMissing.d.ts +10 -0
- package/dist/swap/general/lifi/api/injectSolanaAtaIfMissing.d.ts.map +1 -1
- package/dist/swap/general/lifi/api/injectSolanaAtaIfMissing.js +38 -5
- package/dist/swap/general/lifi/api/injectSolanaAtaIfMissing.js.map +1 -1
- package/dist/swap/general/swapkit/api/getSwapKitQuote.d.ts.map +1 -1
- package/dist/swap/general/swapkit/api/getSwapKitQuote.js +38 -0
- package/dist/swap/general/swapkit/api/getSwapKitQuote.js.map +1 -1
- package/dist/tx/status/resolvers/tron.d.ts.map +1 -1
- package/dist/tx/status/resolvers/tron.js +28 -3
- package/dist/tx/status/resolvers/tron.js.map +1 -1
- package/package.json +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @vultisig/core-chain
|
|
2
2
|
|
|
3
|
+
## 2.2.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#554](https://github.com/vultisig/vultisig-sdk/pull/554) [`bf7278c`](https://github.com/vultisig/vultisig-sdk/commit/bf7278c5886789c4a181169a36bc9296ef81b79c) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Emit the dedicated commondata SwapKit swap payload for source-chain transfer routes so QR cosigners can distinguish SwapKit swaps from OneInch-compatible swap payloads.
|
|
8
|
+
|
|
9
|
+
## 2.2.4
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#512](https://github.com/vultisig/vultisig-sdk/pull/512) [`72eb200`](https://github.com/vultisig/vultisig-sdk/commit/72eb200ec647a707d1ebdc1f8b6f0f5243780477) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Add Station Terra import primitives for legacy seed-byte, mnemonic, and raw private-key migration flows.
|
|
14
|
+
|
|
3
15
|
## 2.2.3
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
import { PolkadotSignerPayloadJSON } from './PolkadotSignerPayload.js';
|
|
2
2
|
/**
|
|
3
|
-
* Construct the raw signing payload bytes from
|
|
3
|
+
* Construct the raw signing payload bytes from an Asset Hub Polkadot SignerPayloadJSON.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* SCOPE: Asset Hub (statemint/statemine) payloads ONLY. The payload must include
|
|
6
|
+
* both `ChargeAssetTxPayment` and `CheckMetadataHash` in `signedExtensions`.
|
|
7
|
+
* Relay-chain payloads use different extensions and must NOT use this function.
|
|
8
|
+
*
|
|
9
|
+
* Follows the Asset Hub Polkadot (statemint) extrinsic payload v4 encoding:
|
|
10
|
+
* method + era + compact(nonce) + compact(tip)
|
|
11
|
+
* + ChargeAssetTxPayment::extra (Option<MultiLocation>=None = 0x00)
|
|
12
|
+
* + CheckMetadataHash::extra (mode=Disabled = 0x00)
|
|
13
|
+
* + LE-u32(specVersion) + LE-u32(transactionVersion)
|
|
14
|
+
* + genesisHash + blockHash
|
|
15
|
+
* + CheckMetadataHash::additional_signed (Option<H256>=None = 0x00)
|
|
16
|
+
*
|
|
17
|
+
* The three Asset Hub signed-extension bytes (ChargeAssetTxPayment option byte,
|
|
18
|
+
* CheckMetadataHash mode byte, CheckMetadataHash additional-signed byte) are
|
|
19
|
+
* required by the Asset Hub runtime. Without them the node rejects the
|
|
20
|
+
* extrinsic with BadProof because the payload hash the node computes differs
|
|
21
|
+
* from the one the wallet signed.
|
|
8
22
|
*
|
|
9
23
|
* If the payload exceeds 256 bytes, it is blake2b-256 hashed before signing.
|
|
10
24
|
*/
|
|
11
|
-
export declare const
|
|
25
|
+
export declare const constructAssetHubPolkadotSigningPayload: (payload: PolkadotSignerPayloadJSON) => Uint8Array;
|
|
12
26
|
//# sourceMappingURL=constructSigningPayload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constructSigningPayload.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/polkadot/dapp/constructSigningPayload.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAInE
|
|
1
|
+
{"version":3,"file":"constructSigningPayload.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/polkadot/dapp/constructSigningPayload.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAInE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,uCAAuC,GAAI,SAAS,yBAAyB,KAAG,UAmD5F,CAAA"}
|
|
@@ -2,26 +2,53 @@ import { compactToU8a, hexToU8a, u8aConcat } from '@polkadot/util';
|
|
|
2
2
|
import { blake2AsU8a } from '@polkadot/util-crypto';
|
|
3
3
|
const polkadotSigningPayloadHashThreshold = 256;
|
|
4
4
|
/**
|
|
5
|
-
* Construct the raw signing payload bytes from
|
|
5
|
+
* Construct the raw signing payload bytes from an Asset Hub Polkadot SignerPayloadJSON.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* SCOPE: Asset Hub (statemint/statemine) payloads ONLY. The payload must include
|
|
8
|
+
* both `ChargeAssetTxPayment` and `CheckMetadataHash` in `signedExtensions`.
|
|
9
|
+
* Relay-chain payloads use different extensions and must NOT use this function.
|
|
10
|
+
*
|
|
11
|
+
* Follows the Asset Hub Polkadot (statemint) extrinsic payload v4 encoding:
|
|
12
|
+
* method + era + compact(nonce) + compact(tip)
|
|
13
|
+
* + ChargeAssetTxPayment::extra (Option<MultiLocation>=None = 0x00)
|
|
14
|
+
* + CheckMetadataHash::extra (mode=Disabled = 0x00)
|
|
15
|
+
* + LE-u32(specVersion) + LE-u32(transactionVersion)
|
|
16
|
+
* + genesisHash + blockHash
|
|
17
|
+
* + CheckMetadataHash::additional_signed (Option<H256>=None = 0x00)
|
|
18
|
+
*
|
|
19
|
+
* The three Asset Hub signed-extension bytes (ChargeAssetTxPayment option byte,
|
|
20
|
+
* CheckMetadataHash mode byte, CheckMetadataHash additional-signed byte) are
|
|
21
|
+
* required by the Asset Hub runtime. Without them the node rejects the
|
|
22
|
+
* extrinsic with BadProof because the payload hash the node computes differs
|
|
23
|
+
* from the one the wallet signed.
|
|
10
24
|
*
|
|
11
25
|
* If the payload exceeds 256 bytes, it is blake2b-256 hashed before signing.
|
|
12
26
|
*/
|
|
13
|
-
export const
|
|
27
|
+
export const constructAssetHubPolkadotSigningPayload = (payload) => {
|
|
28
|
+
const required = ['ChargeAssetTxPayment', 'CheckMetadataHash'];
|
|
29
|
+
if (payload.signedExtensions != null) {
|
|
30
|
+
const missing = required.filter(ext => !payload.signedExtensions.includes(ext));
|
|
31
|
+
if (missing.length > 0) {
|
|
32
|
+
throw new Error(`constructAssetHubPolkadotSigningPayload: payload signedExtensions missing required Asset Hub extensions: ${missing.join(', ')}. This function only encodes Asset Hub (statemint) payloads.`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
14
35
|
const method = hexToU8a(payload.method);
|
|
15
36
|
const era = hexToU8a(payload.era);
|
|
16
37
|
const nonce = compactToU8a(parseInt(payload.nonce, 16));
|
|
17
38
|
const tip = compactToU8a(payload.tip ? BigInt(payload.tip) : 0n);
|
|
39
|
+
// ChargeAssetTxPayment::extra - Option<MultiLocation> = None
|
|
40
|
+
const chargeAssetTxPaymentNone = new Uint8Array([0x00]);
|
|
41
|
+
// CheckMetadataHash::extra - mode byte = Disabled
|
|
42
|
+
const checkMetadataHashMode = new Uint8Array([0x00]);
|
|
18
43
|
const specVersion = new Uint8Array(4);
|
|
19
44
|
new DataView(specVersion.buffer).setUint32(0, parseInt(payload.specVersion, 16), true);
|
|
20
45
|
const transactionVersion = new Uint8Array(4);
|
|
21
46
|
new DataView(transactionVersion.buffer).setUint32(0, parseInt(payload.transactionVersion, 16), true);
|
|
22
47
|
const genesisHash = hexToU8a(payload.genesisHash);
|
|
23
48
|
const blockHash = hexToU8a(payload.blockHash);
|
|
24
|
-
|
|
49
|
+
// CheckMetadataHash::additional_signed - Option<H256> = None
|
|
50
|
+
const checkMetadataHashNone = new Uint8Array([0x00]);
|
|
51
|
+
const raw = u8aConcat(method, era, nonce, tip, chargeAssetTxPaymentNone, checkMetadataHashMode, specVersion, transactionVersion, genesisHash, blockHash, checkMetadataHashNone);
|
|
25
52
|
if (raw.length > polkadotSigningPayloadHashThreshold) {
|
|
26
53
|
return blake2AsU8a(raw, 256);
|
|
27
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constructSigningPayload.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/polkadot/dapp/constructSigningPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAInD,MAAM,mCAAmC,GAAG,GAAG,CAAA;AAE/C
|
|
1
|
+
{"version":3,"file":"constructSigningPayload.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/polkadot/dapp/constructSigningPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAInD,MAAM,mCAAmC,GAAG,GAAG,CAAA;AAE/C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,OAAkC,EAAc,EAAE;IACxG,MAAM,QAAQ,GAAG,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAA;IAC9D,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAChF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,4GAA4G,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,8DAA8D,CAC7L,CAAA;QACH,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;IACvD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAEhE,6DAA6D;IAC7D,MAAM,wBAAwB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACvD,kDAAkD;IAClD,MAAM,qBAAqB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAEpD,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;IAEtF,MAAM,kBAAkB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5C,IAAI,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;IAEpG,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAE7C,6DAA6D;IAC7D,MAAM,qBAAqB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAEpD,MAAM,GAAG,GAAG,SAAS,CACnB,MAAM,EACN,GAAG,EACH,KAAK,EACL,GAAG,EACH,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,qBAAqB,CACtB,CAAA;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,mCAAmC,EAAE,CAAC;QACrD,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
import { CoinBalanceResolver } from '../resolver.js';
|
|
2
|
+
export declare const getTronCoinBalance: CoinBalanceResolver;
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Decodes a Tron Base58Check address and validates its checksum and network prefix.
|
|
5
|
+
*
|
|
6
|
+
* Tron addresses are Base58Check-encoded 21-byte payloads: one-byte network
|
|
7
|
+
* prefix (0x41 on mainnet, 0xa0 on Nile testnet) followed by a 20-byte
|
|
8
|
+
* EVM-compatible address. Using plain bs58 (no checksum) silently produces a
|
|
9
|
+
* wrong 20-byte value when the input address is corrupted or mistyped, causing
|
|
10
|
+
* balance queries to hit a completely different account and return 0 without
|
|
11
|
+
* any error.
|
|
12
|
+
*
|
|
13
|
+
* bs58check.decode verifies the 4-byte SHA-256d checksum and throws on
|
|
14
|
+
* mismatch, so callers get an explicit error rather than silent misdirection.
|
|
15
|
+
*
|
|
16
|
+
* TODO: `packages/sdk/src/chains/tron/tx.ts:tronAddressToBytes` duplicates
|
|
17
|
+
* this logic - consolidate once the SDK can import from core without circular
|
|
18
|
+
* dep issues.
|
|
6
19
|
*/
|
|
7
|
-
export declare
|
|
20
|
+
export declare function base58CheckTronDecode(address: string): string;
|
|
8
21
|
//# sourceMappingURL=tron.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/tron.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/tron.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAgBjD,eAAO,MAAM,kBAAkB,EAAE,mBA0BhC,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAa7D"}
|
|
@@ -2,74 +2,74 @@ import { tronRpcUrl } from '@vultisig/core-chain/chains/tron/config';
|
|
|
2
2
|
import { isFeeCoin } from '@vultisig/core-chain/coin/utils/isFeeCoin';
|
|
3
3
|
import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
4
4
|
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
import bs58check from 'bs58check';
|
|
6
|
+
const _mod = bs58check;
|
|
7
|
+
const _decode = (() => {
|
|
8
|
+
const fn = _mod.decode ?? _mod.default?.decode;
|
|
9
|
+
if (!fn)
|
|
10
|
+
throw new Error('bs58check.decode unavailable — bundler did not resolve bs58check correctly');
|
|
11
|
+
return fn;
|
|
12
|
+
})();
|
|
13
|
+
// Tron network prefixes. 0x41 = mainnet, 0xa0 = Nile testnet.
|
|
14
|
+
const TRON_NETWORK_PREFIXES = [0x41, 0xa0];
|
|
11
15
|
export const getTronCoinBalance = async (input) => {
|
|
12
16
|
if (isFeeCoin(input)) {
|
|
13
|
-
|
|
17
|
+
const data = await queryUrl(`${tronRpcUrl}/wallet/getaccount`, {
|
|
18
|
+
body: {
|
|
19
|
+
address: input.address,
|
|
20
|
+
visible: true,
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
const balance = data.result?.balance ?? data.balance ?? data.result?.balance?.toString() ?? '0';
|
|
14
24
|
try {
|
|
15
|
-
const data = await queryUrl(`${tronRpcUrl}/wallet/getaccount`, {
|
|
16
|
-
body: {
|
|
17
|
-
address: input.address,
|
|
18
|
-
visible: true,
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
// Extract balance, handling different possible response formats
|
|
22
|
-
const balance = data.result?.balance ?? data.balance ?? data.result?.balance?.toString() ?? '0';
|
|
23
25
|
return BigInt(balance ?? '0');
|
|
24
26
|
}
|
|
25
|
-
catch (
|
|
26
|
-
console.error(
|
|
27
|
-
|
|
27
|
+
catch (err) {
|
|
28
|
+
console.error(`[tron] malformed TRX balance value: ${balance}`, err);
|
|
29
|
+
throw new Error(`Tron RPC returned malformed TRX balance: ${balance}`);
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
else {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const hexAddress = base58TronDecode(input.address);
|
|
35
|
-
const hexContractAddress = base58TronDecode(shouldBePresent(input.id));
|
|
36
|
-
// Fetch TRC20 token balance using EVM service
|
|
37
|
-
const balance = await fetchTRC20TokenBalance(`0x${hexContractAddress}`, `0x${hexAddress}`);
|
|
38
|
-
return BigInt(balance ?? '0');
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
console.error('Error fetching TRC20 token balance:', error);
|
|
42
|
-
return BigInt('0');
|
|
43
|
-
}
|
|
33
|
+
const hexAddress = base58CheckTronDecode(input.address);
|
|
34
|
+
const hexContractAddress = base58CheckTronDecode(shouldBePresent(input.id));
|
|
35
|
+
return fetchTRC20TokenBalance(`0x${hexContractAddress}`, `0x${hexAddress}`);
|
|
44
36
|
}
|
|
45
37
|
};
|
|
46
38
|
/**
|
|
47
|
-
* Decodes a
|
|
39
|
+
* Decodes a Tron Base58Check address and validates its checksum and network prefix.
|
|
40
|
+
*
|
|
41
|
+
* Tron addresses are Base58Check-encoded 21-byte payloads: one-byte network
|
|
42
|
+
* prefix (0x41 on mainnet, 0xa0 on Nile testnet) followed by a 20-byte
|
|
43
|
+
* EVM-compatible address. Using plain bs58 (no checksum) silently produces a
|
|
44
|
+
* wrong 20-byte value when the input address is corrupted or mistyped, causing
|
|
45
|
+
* balance queries to hit a completely different account and return 0 without
|
|
46
|
+
* any error.
|
|
47
|
+
*
|
|
48
|
+
* bs58check.decode verifies the 4-byte SHA-256d checksum and throws on
|
|
49
|
+
* mismatch, so callers get an explicit error rather than silent misdirection.
|
|
50
|
+
*
|
|
51
|
+
* TODO: `packages/sdk/src/chains/tron/tx.ts:tronAddressToBytes` duplicates
|
|
52
|
+
* this logic - consolidate once the SDK can import from core without circular
|
|
53
|
+
* dep issues.
|
|
48
54
|
*/
|
|
49
|
-
function
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
// 3. Convert to hex string - extract only the address part (21 bytes)
|
|
56
|
-
const hex = Buffer.from(addressBytes).toString('hex');
|
|
57
|
-
// 4. Return only the valid address part (should be 42 chars including '41' prefix)
|
|
58
|
-
return hex.substring(0, 42);
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
console.error('Base58 decoding error:', error);
|
|
62
|
-
return '';
|
|
55
|
+
export function base58CheckTronDecode(address) {
|
|
56
|
+
// Throws if the checksum is invalid - intentional.
|
|
57
|
+
const decoded = _decode(address);
|
|
58
|
+
// 21 bytes: 1-byte network prefix + 20-byte EVM address.
|
|
59
|
+
if (decoded.length !== 21 || !TRON_NETWORK_PREFIXES.includes(decoded[0])) {
|
|
60
|
+
throw new Error(`invalid tron address prefix: expected ${TRON_NETWORK_PREFIXES.map(p => `0x${p.toString(16)}`).join(' or ')}, got 0x${decoded[0]?.toString(16) ?? '??'} (length ${decoded.length})`);
|
|
63
61
|
}
|
|
62
|
+
// Return only the 20-byte EVM address part as hex (strip the network prefix).
|
|
63
|
+
return Buffer.from(decoded.subarray(1)).toString('hex');
|
|
64
64
|
}
|
|
65
65
|
async function fetchTRC20TokenBalance(contractAddress, walletAddress) {
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
// walletAddress is "0x" + 40-char EVM hex (base58CheckTronDecode output, prefix already stripped).
|
|
67
|
+
// Pad to 64 chars (12 zero bytes + 20-byte addr) for the balanceOf(address) ABI param.
|
|
68
|
+
const evmHex = walletAddress.slice(2); // 40-char hex, no prefix
|
|
69
|
+
const paddedWalletAddress = '000000000000000000000000' + evmHex; // 24 + 40 = 64 chars
|
|
69
70
|
const data = '0x70a08231' + paddedWalletAddress;
|
|
70
|
-
//
|
|
71
|
-
const
|
|
72
|
-
const toAddress = '0x' + contractAddress.slice(4); // Keep "0x", remove "41"
|
|
71
|
+
const fromAddress = walletAddress; // already "0x" + 40-char EVM hex
|
|
72
|
+
const toAddress = contractAddress; // already "0x" + 40-char EVM hex
|
|
73
73
|
const params = [
|
|
74
74
|
{
|
|
75
75
|
from: fromAddress,
|
|
@@ -81,7 +81,6 @@ async function fetchTRC20TokenBalance(contractAddress, walletAddress) {
|
|
|
81
81
|
},
|
|
82
82
|
'latest',
|
|
83
83
|
];
|
|
84
|
-
// Call the RPC method
|
|
85
84
|
return await intRpcCall('eth_call', params);
|
|
86
85
|
}
|
|
87
86
|
async function intRpcCall(method, params) {
|
|
@@ -90,9 +89,16 @@ async function intRpcCall(method, params) {
|
|
|
90
89
|
return BigInt(result);
|
|
91
90
|
}
|
|
92
91
|
if (typeof result === 'string') {
|
|
93
|
-
// Remove '0x' prefix if present
|
|
94
92
|
const hexString = result.startsWith('0x') ? result.slice(2) : result;
|
|
95
|
-
|
|
93
|
+
if (!hexString)
|
|
94
|
+
return 0n;
|
|
95
|
+
try {
|
|
96
|
+
return BigInt(`0x${hexString}`);
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
console.error(`[tron] malformed RPC hex response: ${result}`, err);
|
|
100
|
+
throw new Error(`Tron RPC returned malformed hex: ${result}`);
|
|
101
|
+
}
|
|
96
102
|
}
|
|
97
103
|
throw {
|
|
98
104
|
code: 500,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,MAAM,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/tron.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/knownTokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAIlD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKtE,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,iBAOnC,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,iBAOnC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/knownTokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAIlD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKtE,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,iBAOnC,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,iBAOnC,CAAA;AAquBD,eAAO,MAAM,WAAW,uYAetB,CAAA;AAEF,KAAK,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;AAE1D,eAAO,MAAM,gBAAgB,EAAE,UAO7B,CAAA"}
|
|
@@ -76,6 +76,25 @@ const leanTokens = {
|
|
|
76
76
|
decimals: 6,
|
|
77
77
|
priceProviderId: 'tether',
|
|
78
78
|
},
|
|
79
|
+
// CoinGecko canonical address. TronScan shows publicTag="USDCOLD" but blueTag="USDC" + 2.5M+ txns confirm this is Circle's USDC.
|
|
80
|
+
TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8: {
|
|
81
|
+
ticker: 'USDC',
|
|
82
|
+
logo: 'usdc',
|
|
83
|
+
decimals: 6,
|
|
84
|
+
priceProviderId: 'usd-coin',
|
|
85
|
+
},
|
|
86
|
+
TXDk8mbtRbXeYuMNS83CfKPaYYT8XWv9Hz: {
|
|
87
|
+
ticker: 'USDD',
|
|
88
|
+
logo: 'usdd',
|
|
89
|
+
decimals: 18,
|
|
90
|
+
priceProviderId: 'usdd',
|
|
91
|
+
},
|
|
92
|
+
TThzxNRLrW2Brp9DcTQU8i4Wd9udCWEdZ3: {
|
|
93
|
+
ticker: 'stUSDT',
|
|
94
|
+
logo: 'stusdt',
|
|
95
|
+
decimals: 18,
|
|
96
|
+
priceProviderId: 'staked-usdt',
|
|
97
|
+
},
|
|
79
98
|
},
|
|
80
99
|
[Chain.Solana]: {
|
|
81
100
|
// QA dogfood Bug J (paaao 2026-05-02): USDC and USDT on Solana
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/knownTokens/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/knownTokens/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { WalletCore } from '@trustwallet/wallet-core';
|
|
2
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
3
|
+
export declare const stationTerraCoinTypes: readonly [330, 118];
|
|
4
|
+
export type StationTerraCoinType = (typeof stationTerraCoinTypes)[number];
|
|
5
|
+
export type StationTerraChain = typeof Chain.Terra | typeof Chain.TerraClassic;
|
|
6
|
+
type StationTerraDerivationOptions = {
|
|
7
|
+
/** Station account index from the legacy wallet. Defaults to 0. */
|
|
8
|
+
index?: number;
|
|
9
|
+
/** BIP44 account segment. Station uses 0 by default. */
|
|
10
|
+
account?: number;
|
|
11
|
+
/** Terra coin type. Station defaults to 330 and legacy wallets may use 118. */
|
|
12
|
+
coinType?: StationTerraCoinType;
|
|
13
|
+
};
|
|
14
|
+
export type StationSeedImportSource = StationTerraDerivationOptions & {
|
|
15
|
+
kind: 'seed';
|
|
16
|
+
/** BIP39 seed bytes, for example legacy Station encryptedSeed after decrypting. */
|
|
17
|
+
seed: Uint8Array;
|
|
18
|
+
};
|
|
19
|
+
export type StationMnemonicImportSource = StationTerraDerivationOptions & {
|
|
20
|
+
kind: 'mnemonic';
|
|
21
|
+
mnemonic: string;
|
|
22
|
+
};
|
|
23
|
+
export type StationPrivateKeyImportSource = {
|
|
24
|
+
kind: 'privateKey';
|
|
25
|
+
/** Raw secp256k1 private key as 64 hex characters, optionally prefixed with 0x. */
|
|
26
|
+
privateKeyHex: string;
|
|
27
|
+
};
|
|
28
|
+
export type StationImportSource = StationSeedImportSource | StationMnemonicImportSource | StationPrivateKeyImportSource;
|
|
29
|
+
export type StationTerraChainPublicData = {
|
|
30
|
+
chain: StationTerraChain;
|
|
31
|
+
publicKeyHex: string;
|
|
32
|
+
publicKeyBase64: string;
|
|
33
|
+
address: string;
|
|
34
|
+
isEddsa: false;
|
|
35
|
+
};
|
|
36
|
+
export type StationTerraKeyMaterial = {
|
|
37
|
+
source: StationImportSource['kind'];
|
|
38
|
+
privateKeyHex: string;
|
|
39
|
+
publicKeyHex: string;
|
|
40
|
+
publicKeyBase64: string;
|
|
41
|
+
address: string;
|
|
42
|
+
chainPublicKeys: StationTerraChainPublicData[];
|
|
43
|
+
derivePath?: string;
|
|
44
|
+
coinType?: StationTerraCoinType;
|
|
45
|
+
account?: number;
|
|
46
|
+
index?: number;
|
|
47
|
+
};
|
|
48
|
+
type DeriveStationTerraKeyMaterialInput = {
|
|
49
|
+
source: StationImportSource;
|
|
50
|
+
walletCore: WalletCore;
|
|
51
|
+
};
|
|
52
|
+
export declare const getStationTerraDerivationPath: (options?: StationTerraDerivationOptions) => string;
|
|
53
|
+
export declare const normalizeStationPrivateKeyHex: (input: string) => string;
|
|
54
|
+
export declare const validateStationPrivateKeyHex: (input: string) => string;
|
|
55
|
+
export declare const deriveStationTerraKeyMaterial: ({ source, walletCore, }: DeriveStationTerraKeyMaterialInput) => StationTerraKeyMaterial;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=importPrimitives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importPrimitives.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/station/importPrimitives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAKlD,eAAO,MAAM,qBAAqB,qBAAsB,CAAA;AAExD,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AACzE,MAAM,MAAM,iBAAiB,GAAG,OAAO,KAAK,CAAC,KAAK,GAAG,OAAO,KAAK,CAAC,YAAY,CAAA;AAE9E,KAAK,6BAA6B,GAAG;IACnC,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,6BAA6B,GAAG;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,mFAAmF;IACnF,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,6BAA6B,GAAG;IACxE,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,YAAY,CAAA;IAClB,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GAAG,2BAA2B,GAAG,6BAA6B,CAAA;AAEvH,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,iBAAiB,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,KAAK,CAAA;CACf,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,2BAA2B,EAAE,CAAA;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,oBAAoB,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,kCAAkC,GAAG;IACxC,MAAM,EAAE,mBAAmB,CAAA;IAC3B,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAyBD,eAAO,MAAM,6BAA6B,GAAI,UAAS,6BAAkC,KAAG,MAI3F,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,OAAO,MAAM,KAAG,MACM,CAAA;AAEpE,eAAO,MAAM,4BAA4B,GAAI,OAAO,MAAM,KAAG,MAY5D,CAAA;AA2FD,eAAO,MAAM,6BAA6B,GAAI,yBAG3C,kCAAkC,KAAG,uBAkBvC,CAAA"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { deriveAddress } from '@vultisig/core-chain/publicKey/address/deriveAddress';
|
|
3
|
+
import BIP32Factory from 'bip32';
|
|
4
|
+
import * as ecc from 'tiny-secp256k1';
|
|
5
|
+
export const stationTerraCoinTypes = [330, 118];
|
|
6
|
+
const stationTerraChains = [Chain.Terra, Chain.TerraClassic];
|
|
7
|
+
const assertNonNegativeInteger = (value, name) => {
|
|
8
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
9
|
+
throw new Error(`${name} must be a non-negative safe integer`);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
const normalizeDerivationOptions = ({ account = 0, index = 0, coinType = 330, }) => {
|
|
13
|
+
assertNonNegativeInteger(account, 'account');
|
|
14
|
+
assertNonNegativeInteger(index, 'index');
|
|
15
|
+
if (!stationTerraCoinTypes.includes(coinType)) {
|
|
16
|
+
throw new Error(`Unsupported Station Terra coin type: ${coinType}`);
|
|
17
|
+
}
|
|
18
|
+
return { account, index, coinType };
|
|
19
|
+
};
|
|
20
|
+
export const getStationTerraDerivationPath = (options = {}) => {
|
|
21
|
+
const { account, index, coinType } = normalizeDerivationOptions(options);
|
|
22
|
+
return `m/44'/${coinType}'/${account}'/0/${index}`;
|
|
23
|
+
};
|
|
24
|
+
export const normalizeStationPrivateKeyHex = (input) => input.trim().replace(/^0x/i, '').replace(/\s+/g, '').toLowerCase();
|
|
25
|
+
export const validateStationPrivateKeyHex = (input) => {
|
|
26
|
+
const privateKeyHex = normalizeStationPrivateKeyHex(input);
|
|
27
|
+
if (!/^[0-9a-f]{64}$/.test(privateKeyHex)) {
|
|
28
|
+
throw new Error('Private key must be 64 hexadecimal characters');
|
|
29
|
+
}
|
|
30
|
+
if (!ecc.isPrivate(Buffer.from(privateKeyHex, 'hex'))) {
|
|
31
|
+
throw new Error('Invalid secp256k1 private key');
|
|
32
|
+
}
|
|
33
|
+
return privateKeyHex;
|
|
34
|
+
};
|
|
35
|
+
const derivePrivateKeyHexFromSeed = (source) => {
|
|
36
|
+
const { account, index, coinType } = normalizeDerivationOptions(source);
|
|
37
|
+
const bip32 = BIP32Factory(ecc);
|
|
38
|
+
const derived = bip32
|
|
39
|
+
.fromSeed(Buffer.from(source.seed))
|
|
40
|
+
.derivePath(getStationTerraDerivationPath({ account, index, coinType }));
|
|
41
|
+
const privateKey = derived.privateKey;
|
|
42
|
+
if (!privateKey) {
|
|
43
|
+
throw new Error('Failed to derive Station Terra private key from seed');
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
privateKeyHex: Buffer.from(privateKey).toString('hex'),
|
|
47
|
+
derivePath: getStationTerraDerivationPath({ account, index, coinType }),
|
|
48
|
+
account,
|
|
49
|
+
index,
|
|
50
|
+
coinType,
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
const walletCoreCoinTypeForStationTerra = (walletCore, coinType) => coinType === 330 ? walletCore.CoinType.terraV2 : walletCore.CoinType.terra;
|
|
54
|
+
const derivePrivateKeyHexFromMnemonic = (source, walletCore) => {
|
|
55
|
+
const { account, index, coinType } = normalizeDerivationOptions(source);
|
|
56
|
+
const derivePath = getStationTerraDerivationPath({ account, index, coinType });
|
|
57
|
+
const hdWallet = walletCore.HDWallet.createWithMnemonic(source.mnemonic.trim(), '');
|
|
58
|
+
try {
|
|
59
|
+
const privateKey = hdWallet.getKey(walletCoreCoinTypeForStationTerra(walletCore, coinType), derivePath);
|
|
60
|
+
try {
|
|
61
|
+
return {
|
|
62
|
+
privateKeyHex: Buffer.from(privateKey.data()).toString('hex'),
|
|
63
|
+
derivePath,
|
|
64
|
+
account,
|
|
65
|
+
index,
|
|
66
|
+
coinType,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
privateKey.delete?.();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
hdWallet.delete?.();
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const derivePublicDataFromPrivateKey = (privateKeyHex, walletCore) => {
|
|
78
|
+
const normalizedPrivateKeyHex = validateStationPrivateKeyHex(privateKeyHex);
|
|
79
|
+
const privateKey = walletCore.PrivateKey.createWithData(Buffer.from(normalizedPrivateKeyHex, 'hex'));
|
|
80
|
+
try {
|
|
81
|
+
const publicKey = privateKey.getPublicKeySecp256k1(true);
|
|
82
|
+
try {
|
|
83
|
+
const publicKeyHex = Buffer.from(publicKey.data()).toString('hex');
|
|
84
|
+
const publicKeyBase64 = Buffer.from(publicKey.data()).toString('base64');
|
|
85
|
+
const chainPublicKeys = stationTerraChains.map(chain => ({
|
|
86
|
+
chain,
|
|
87
|
+
publicKeyHex,
|
|
88
|
+
publicKeyBase64,
|
|
89
|
+
address: deriveAddress({ chain, publicKey, walletCore }),
|
|
90
|
+
isEddsa: false,
|
|
91
|
+
}));
|
|
92
|
+
return {
|
|
93
|
+
privateKeyHex: normalizedPrivateKeyHex,
|
|
94
|
+
publicKeyHex,
|
|
95
|
+
publicKeyBase64,
|
|
96
|
+
address: chainPublicKeys[0].address,
|
|
97
|
+
chainPublicKeys,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
publicKey.delete?.();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
privateKey.delete?.();
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
export const deriveStationTerraKeyMaterial = ({ source, walletCore, }) => {
|
|
109
|
+
if (source.kind === 'privateKey') {
|
|
110
|
+
return {
|
|
111
|
+
source: source.kind,
|
|
112
|
+
...derivePublicDataFromPrivateKey(source.privateKeyHex, walletCore),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const seedFields = source.kind === 'mnemonic'
|
|
116
|
+
? derivePrivateKeyHexFromMnemonic(source, walletCore)
|
|
117
|
+
: derivePrivateKeyHexFromSeed(source);
|
|
118
|
+
return {
|
|
119
|
+
source: source.kind,
|
|
120
|
+
...seedFields,
|
|
121
|
+
...derivePublicDataFromPrivateKey(seedFields.privateKeyHex, walletCore),
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=importPrimitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importPrimitives.js","sourceRoot":"","sources":["../../../../../packages/core/chain/station/importPrimitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneralSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/general/GeneralSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,MAAM,aAAa,GACrB;IACE,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAA;CACF,GACD;IACE,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;CACF,GACD;IACE,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"GeneralSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/general/GeneralSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,MAAM,aAAa,GACrB;IACE,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAA;CACF,GACD;IACE,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;CACF,GACD;IACE,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,UAAU,CAAA;QACtB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAEL,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,EAAE,EAAE,aAAa,CAAA;CAClB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLifiSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/getLifiSwapQuote.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmB,oBAAoB,EAAE,MAAM,8DAA8D,CAAA;AAKpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC,GAAG;IAC7E,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;
|
|
1
|
+
{"version":3,"file":"getLifiSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/getLifiSwapQuote.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmB,oBAAoB,EAAE,MAAM,8DAA8D,CAAA;AAKpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC,GAAG;IAC7E,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAuFD,eAAO,MAAM,gBAAgB,GAAU,uCAAuC,KAAK,KAAG,OAAO,CAAC,gBAAgB,CA4J7G,CAAA"}
|
|
@@ -64,6 +64,32 @@ const DEFAULT_LIFI_SLIPPAGE_TOLERANCE = 0.01;
|
|
|
64
64
|
// not a hard reject — getQuote will still dispatch. NeOMakinG #513
|
|
65
65
|
// round 1 `suggestion` 1.
|
|
66
66
|
const MAX_COMBINED_COST_BPS = 300;
|
|
67
|
+
// Resolve a LiFi fee-token `chainId` back to a Vultisig `LifiSwapEnabledChain`.
|
|
68
|
+
//
|
|
69
|
+
// `mirrorRecord(lifiSwapChainId)` is a closed, build-time map of LI.FI source
|
|
70
|
+
// chains (EVM chains Vultisig exposes + Solana). LI.FI's `feeCosts[].token`
|
|
71
|
+
// is *not* guaranteed by the API contract to live on the source chain — for
|
|
72
|
+
// cross-chain routes (e.g. EVM → Cosmos via Stargate, EVM → BTC via THORChain
|
|
73
|
+
// relay) the fee can be denominated on an intermediate chain whose ID is not
|
|
74
|
+
// a key in this map. `mirrorRecord(...)[unknownChainId]` then silently yields
|
|
75
|
+
// `undefined`, producing `affiliateFee.chain = undefined`, which serializes
|
|
76
|
+
// as an absent `swap_fee_chain` field alongside a non-empty `swap_fee` —
|
|
77
|
+
// exactly the ambiguous state this PR set out to eliminate.
|
|
78
|
+
//
|
|
79
|
+
// Fall back to `transfer.from.chain` because LiFi's fixed fee is collected
|
|
80
|
+
// from the user's source-chain wallet regardless of which bridge leg
|
|
81
|
+
// denominates it internally, and the source chain is always a
|
|
82
|
+
// `LifiSwapEnabledChain` (guaranteed by the `Input` type). Warn so any
|
|
83
|
+
// future LiFi behavioural drift is visible in ops telemetry rather than
|
|
84
|
+
// silently misattributed. (NeOMakinG #540 review blocking #1.)
|
|
85
|
+
const resolveSwapFeeChain = (chainId, fallback) => {
|
|
86
|
+
const resolved = mirrorRecord(lifiSwapChainId)[chainId];
|
|
87
|
+
if (resolved === undefined) {
|
|
88
|
+
console.warn(`[getLifiSwapQuote] fee token chainId ${chainId} not in lifiSwapChainId; falling back to ${fallback}`);
|
|
89
|
+
return fallback;
|
|
90
|
+
}
|
|
91
|
+
return resolved;
|
|
92
|
+
};
|
|
67
93
|
export const getLifiSwapQuote = async ({ amount, affiliateBps, ...transfer }) => {
|
|
68
94
|
setupLifi();
|
|
69
95
|
const [fromChain, toChain] = [transfer.from, transfer.to].map(({ chain }) => lifiSwapChainId[chain]);
|
|
@@ -129,7 +155,7 @@ export const getLifiSwapQuote = async ({ amount, affiliateBps, ...transfer }) =>
|
|
|
129
155
|
swapFee: {
|
|
130
156
|
amount: BigInt(swapFee.amount),
|
|
131
157
|
decimals: swapFee.token.decimals,
|
|
132
|
-
chain:
|
|
158
|
+
chain: resolveSwapFeeChain(swapFee.token.chainId, transfer.from.chain),
|
|
133
159
|
id: swapFeeAssetId,
|
|
134
160
|
},
|
|
135
161
|
},
|
|
@@ -153,13 +179,30 @@ export const getLifiSwapQuote = async ({ amount, affiliateBps, ...transfer }) =>
|
|
|
153
179
|
swapFee: {
|
|
154
180
|
amount: BigInt(swapFee.amount),
|
|
155
181
|
decimals: swapFee.token.decimals,
|
|
156
|
-
chain:
|
|
182
|
+
chain: resolveSwapFeeChain(swapFee.token.chainId, transfer.from.chain),
|
|
157
183
|
id: swapFeeAssetId,
|
|
158
184
|
},
|
|
159
185
|
},
|
|
160
186
|
};
|
|
161
187
|
},
|
|
162
188
|
evm: () => {
|
|
189
|
+
// Mirror the Solana branch's fee extraction so EVM routes
|
|
190
|
+
// (including cross-chain EVM → Solana/Cosmos via Stargate, Across,
|
|
191
|
+
// etc.) surface the affiliate fee. LI.FI's `feeCosts` is the same
|
|
192
|
+
// for both kinds; the EVM branch was previously dropping it on the
|
|
193
|
+
// floor which left the swap-fee row blank for every LI.FI EVM
|
|
194
|
+
// route. Keep `affiliateFee` optional: not every route has one
|
|
195
|
+
// (affiliateBps may be 0 and no LIFI Fixed Fee charged).
|
|
196
|
+
const fees = estimate.feeCosts ?? [];
|
|
197
|
+
const swapFee = fees.find(fee => fee.name === 'LIFI Fixed Fee') || fees[0];
|
|
198
|
+
// EVM addresses can come back from LiFi in either lowercase or
|
|
199
|
+
// EIP-55 checksum form; normalize both sides to lowercase so a
|
|
200
|
+
// checksum mismatch doesn't silently fall back to the native
|
|
201
|
+
// fee coin and misattribute the affiliate fee.
|
|
202
|
+
const swapFeeAddress = swapFee?.token.address.toLowerCase();
|
|
203
|
+
const swapFeeAssetId = swapFee &&
|
|
204
|
+
([fromToken, toToken].find(token => token.toLowerCase() === swapFeeAddress) ||
|
|
205
|
+
chainFeeCoin[transfer.from.chain].id);
|
|
163
206
|
return {
|
|
164
207
|
evm: {
|
|
165
208
|
from: shouldBePresent(from),
|
|
@@ -167,6 +210,16 @@ export const getLifiSwapQuote = async ({ amount, affiliateBps, ...transfer }) =>
|
|
|
167
210
|
data: shouldBePresent(data),
|
|
168
211
|
value: BigInt(shouldBePresent(value)).toString(),
|
|
169
212
|
gasLimit: gasLimit ? BigInt(gasLimit) : undefined,
|
|
213
|
+
...(swapFee
|
|
214
|
+
? {
|
|
215
|
+
affiliateFee: {
|
|
216
|
+
amount: BigInt(swapFee.amount),
|
|
217
|
+
decimals: swapFee.token.decimals,
|
|
218
|
+
chain: resolveSwapFeeChain(swapFee.token.chainId, transfer.from.chain),
|
|
219
|
+
id: swapFeeAssetId,
|
|
220
|
+
},
|
|
221
|
+
}
|
|
222
|
+
: {}),
|
|
170
223
|
},
|
|
171
224
|
};
|
|
172
225
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLifiSwapQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/getLifiSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getLifiSwapQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/getLifiSwapQuote.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,16 @@ export type InjectSolanaAtaResult = {
|
|
|
15
15
|
* runtime so the correct token program (Token or Token-2022) is used for ATA
|
|
16
16
|
* derivation and instruction creation.
|
|
17
17
|
*
|
|
18
|
+
* Token-2022 extension limitation: this function handles ATA derivation and
|
|
19
|
+
* creation correctly for Token-2022 mints, but it does NOT inspect or handle
|
|
20
|
+
* Token-2022 extension data (e.g. TransferFee, ConfidentialTransfer,
|
|
21
|
+
* InterestBearingMint). Extensions that affect transfer semantics (e.g.
|
|
22
|
+
* TransferFee withholding, MemoRequired) are the responsibility of the LiFi
|
|
23
|
+
* route builder, not of this ATA injection layer. If a Token-2022 mint has
|
|
24
|
+
* extensions that require special instruction handling beyond ATA creation,
|
|
25
|
+
* the LiFi transaction itself must already encode those requirements.
|
|
26
|
+
* (#519 r-N NeO preferably-blocking #1 - document limitation.)
|
|
27
|
+
*
|
|
18
28
|
* @param txData Base64-encoded serialized VersionedTransaction from LiFi.
|
|
19
29
|
* @param mintAddress SPL token mint address (e.g. USDC mint on Solana).
|
|
20
30
|
* @param owner Wallet address that will own the ATA (swap destination).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectSolanaAtaIfMissing.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/injectSolanaAtaIfMissing.ts"],"names":[],"mappings":"AAsCA,MAAM,MAAM,qBAAqB,GAAG;IAClC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"injectSolanaAtaIfMissing.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/injectSolanaAtaIfMissing.ts"],"names":[],"mappings":"AAsCA,MAAM,MAAM,qBAAqB,GAAG;IAClC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,OAAO,MAAM,EACb,OAAO,MAAM,KACZ,OAAO,CAAC,qBAAqB,CAiK/B,CAAA"}
|
|
@@ -37,6 +37,16 @@ async function fetchLutWithRetry(client, accountKey) {
|
|
|
37
37
|
* runtime so the correct token program (Token or Token-2022) is used for ATA
|
|
38
38
|
* derivation and instruction creation.
|
|
39
39
|
*
|
|
40
|
+
* Token-2022 extension limitation: this function handles ATA derivation and
|
|
41
|
+
* creation correctly for Token-2022 mints, but it does NOT inspect or handle
|
|
42
|
+
* Token-2022 extension data (e.g. TransferFee, ConfidentialTransfer,
|
|
43
|
+
* InterestBearingMint). Extensions that affect transfer semantics (e.g.
|
|
44
|
+
* TransferFee withholding, MemoRequired) are the responsibility of the LiFi
|
|
45
|
+
* route builder, not of this ATA injection layer. If a Token-2022 mint has
|
|
46
|
+
* extensions that require special instruction handling beyond ATA creation,
|
|
47
|
+
* the LiFi transaction itself must already encode those requirements.
|
|
48
|
+
* (#519 r-N NeO preferably-blocking #1 - document limitation.)
|
|
49
|
+
*
|
|
40
50
|
* @param txData Base64-encoded serialized VersionedTransaction from LiFi.
|
|
41
51
|
* @param mintAddress SPL token mint address (e.g. USDC mint on Solana).
|
|
42
52
|
* @param owner Wallet address that will own the ATA (swap destination).
|
|
@@ -70,9 +80,20 @@ export const injectSolanaAtaIfMissing = async (txData, mintAddress, owner, payer
|
|
|
70
80
|
else {
|
|
71
81
|
throw new Error(`Mint ${mintAddress} is owned by unsupported program ${mintInfo.owner.toBase58()} - expected Token or Token-2022`);
|
|
72
82
|
}
|
|
73
|
-
//
|
|
83
|
+
// Validate that the owner is on the ed25519 curve (i.e. a normal wallet keypair).
|
|
84
|
+
// In Vultisig flows the swap destination is always a user wallet — off-curve
|
|
85
|
+
// addresses are PDAs (Program Derived Addresses) and are valid ATA owners in the
|
|
86
|
+
// broader Solana ecosystem but should never appear as the destination in a LiFi
|
|
87
|
+
// quote. Silently passing an off-curve owner with allowOwnerOffCurve=true would
|
|
88
|
+
// derive an ATA that the user likely can never sign for, producing an opaque
|
|
89
|
+
// simulation failure. (#519 r-N NeO should-fix #2.)
|
|
90
|
+
if (!PublicKey.isOnCurve(ownerPubkey.toBytes())) {
|
|
91
|
+
throw new Error(`Owner ${owner} is off the ed25519 curve (PDA or invalid key) - Vultisig LiFi swaps require an on-curve wallet address as destination`);
|
|
92
|
+
}
|
|
93
|
+
// allowOwnerOffCurve=false (default): we already validated above that the owner
|
|
94
|
+
// is on-curve, so we don't need to pass the flag — keeping it explicit for clarity.
|
|
74
95
|
const ataAddress = getAssociatedTokenAddressSync(mintPubkey, ownerPubkey,
|
|
75
|
-
/* allowOwnerOffCurve */
|
|
96
|
+
/* allowOwnerOffCurve */ false, tokenProgramId);
|
|
76
97
|
const ataInfo = await client.getAccountInfo(ataAddress);
|
|
77
98
|
// ATA already exists - verify it's actually a token account owned by the
|
|
78
99
|
// matching program before skipping injection. A non-token account squatting
|
|
@@ -105,9 +126,21 @@ export const injectSolanaAtaIfMissing = async (txData, mintAddress, owner, payer
|
|
|
105
126
|
// accepts both legacy and V0 messages, and compileToV0Message always produces
|
|
106
127
|
// a V0 message. LiFi does not send legacy Solana transactions in practice but
|
|
107
128
|
// the path is safe regardless.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
129
|
+
//
|
|
130
|
+
// When the tx references LUTs, decompile can fail if a referenced LUT account
|
|
131
|
+
// was not fetched (e.g. all retry attempts exhausted). Rather than letting the
|
|
132
|
+
// SDK throw an opaque "unknown account" message, we wrap here and re-throw with
|
|
133
|
+
// context so callers can distinguish a LUT-dependency failure from any other
|
|
134
|
+
// decompile error. (#519 r-N NeO should-fix #1.)
|
|
135
|
+
let decompiledMessage;
|
|
136
|
+
try {
|
|
137
|
+
decompiledMessage = TransactionMessage.decompile(versionedTx.message, {
|
|
138
|
+
addressLookupTableAccounts: lutAccounts,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
throw new Error(`Failed to decompile LiFi transaction message - one or more LUT accounts could not be resolved (fetched ${lutAccounts.length} of ${versionedTx.message.addressTableLookups?.length ?? 0} referenced LUTs). Original error: ${err instanceof Error ? err.message : String(err)}`);
|
|
143
|
+
}
|
|
111
144
|
// Validate the caller-supplied payer matches the tx's actual fee-payer.
|
|
112
145
|
// If LiFi ever changes the fee-payer convention (or the caller passes a
|
|
113
146
|
// wrong address), the createAtaIx would be funded by `payerPubkey` while
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectSolanaAtaIfMissing.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/injectSolanaAtaIfMissing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iDAAiD,EACjD,6BAA6B,EAC7B,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA6B,SAAS,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAE3E,yDAAyD;AACzD,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEhC;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAC9B,MAA0C,EAC1C,UAAqB;IAErB,MAAM,MAAM,GAAc,EAAE,CAAA;IAC5B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,sBAAsB,EAAE,OAAO,EAAE,EAAE,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;YAC7D,OAAO,MAAM,CAAC,KAAK,IAAI,IAAI,CAAA;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAChB,IAAI,OAAO,GAAG,sBAAsB,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAA;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IACD,sEAAsE;IACtE,wEAAwE;IACxE,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,MAAM,CAAC,CAAA;IAClF,OAAO,IAAI,CAAA;AACb,CAAC;AASD
|
|
1
|
+
{"version":3,"file":"injectSolanaAtaIfMissing.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/injectSolanaAtaIfMissing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSwapKitQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/swapkit/api/getSwapKitQuote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getSwapKitQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/swapkit/api/getSwapKitQuote.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAEnE,OAAO,EAAE,gBAAgB,EAAiB,MAAM,oDAAoD,CAAA;AAEpG,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gEAAgE,CAAA;AAGxH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC,GAAG;IACzE,IAAI,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAooBD,eAAO,MAAM,eAAe,GAAU,+CAMnC,KAAK,KAAG,OAAO,CAAC,gBAAgB,CA2BlC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { base64Decode } from '@bufbuild/protobuf/wire';
|
|
1
2
|
import { toChainAmount } from '@vultisig/core-chain/amount/toChainAmount';
|
|
2
3
|
import { Chain } from '@vultisig/core-chain/Chain';
|
|
3
4
|
import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
|
|
@@ -288,6 +289,35 @@ const getTransferAmount = ({ depositAmount, tx }, amount, decimals) => {
|
|
|
288
289
|
return amount;
|
|
289
290
|
};
|
|
290
291
|
const shouldUseTransferTx = (chain) => isOneOf(chain, swapKitTransferSourceChains);
|
|
292
|
+
const textEncoder = new TextEncoder();
|
|
293
|
+
const stringifyCanonicalJson = (value) => {
|
|
294
|
+
if (Array.isArray(value)) {
|
|
295
|
+
return `[${value.map(stringifyCanonicalJson).join(',')}]`;
|
|
296
|
+
}
|
|
297
|
+
if (isRecord(value)) {
|
|
298
|
+
return `{${Object.keys(value)
|
|
299
|
+
.sort()
|
|
300
|
+
.flatMap(key => {
|
|
301
|
+
const item = value[key];
|
|
302
|
+
return item === undefined ? [] : [`${JSON.stringify(key)}:${stringifyCanonicalJson(item)}`];
|
|
303
|
+
})
|
|
304
|
+
.join(',')}}`;
|
|
305
|
+
}
|
|
306
|
+
return JSON.stringify(value);
|
|
307
|
+
};
|
|
308
|
+
const encodeSwapKitTxPayload = (tx, txType) => {
|
|
309
|
+
const normalizedTxType = txType?.toUpperCase();
|
|
310
|
+
if (normalizedTxType === 'CARDANO' || tx === undefined || tx === null) {
|
|
311
|
+
return new Uint8Array();
|
|
312
|
+
}
|
|
313
|
+
if (typeof tx === 'string') {
|
|
314
|
+
if (normalizedTxType === 'PSBT' || normalizedTxType === 'SUI') {
|
|
315
|
+
return base64Decode(tx);
|
|
316
|
+
}
|
|
317
|
+
return textEncoder.encode(tx);
|
|
318
|
+
}
|
|
319
|
+
return textEncoder.encode(stringifyCanonicalJson(tx));
|
|
320
|
+
};
|
|
291
321
|
const buildTransferTx = (response, from, amount) => {
|
|
292
322
|
const to = getTransferTargetAddress(response);
|
|
293
323
|
if (!to) {
|
|
@@ -297,6 +327,14 @@ const buildTransferTx = (response, from, amount) => {
|
|
|
297
327
|
to,
|
|
298
328
|
amount: getTransferAmount(response, amount, from.decimals),
|
|
299
329
|
...(response.memo ? { memo: response.memo } : {}),
|
|
330
|
+
...(response.meta?.txType ? { txType: response.meta.txType } : {}),
|
|
331
|
+
...(response.tx
|
|
332
|
+
? {
|
|
333
|
+
txPayload: encodeSwapKitTxPayload(response.tx, response.meta?.txType),
|
|
334
|
+
}
|
|
335
|
+
: {}),
|
|
336
|
+
...(response.inboundAddress ? { inboundAddress: response.inboundAddress } : {}),
|
|
337
|
+
...(response.swapId ? { swapId: response.swapId } : {}),
|
|
300
338
|
};
|
|
301
339
|
return {
|
|
302
340
|
transfer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSwapKitQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/swapkit/api/getSwapKitQuote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getSwapKitQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/swapkit/api/getSwapKitQuote.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAM9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAM9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAgC9C,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CA0C7D,CAAA"}
|
|
@@ -3,6 +3,18 @@ import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
|
|
|
3
3
|
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
4
4
|
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
5
5
|
import { tronRpcUrl } from '../../../chains/tron/config.js';
|
|
6
|
+
// Terminal failure codes for ResourceReceipt.result (core/Tron.proto field 7, contractResult enum).
|
|
7
|
+
// Protobuf3 JSON serializes non-default enum values by name: successful TRC20 calls emit
|
|
8
|
+
// receipt.result="SUCCESS" (non-default, value=1). Native TRX transfers emit no receipt at all.
|
|
9
|
+
// Known failure codes verified against Tron protocol and live mainnet responses.
|
|
10
|
+
const TRON_RECEIPT_FAILURE_RESULTS = new Set([
|
|
11
|
+
'FAILED',
|
|
12
|
+
'OUT_OF_ENERGY',
|
|
13
|
+
'REVERT',
|
|
14
|
+
'OUT_OF_TIME',
|
|
15
|
+
'BANDWIDTH_ERROR',
|
|
16
|
+
'ACCOUNT_FREEZED',
|
|
17
|
+
]);
|
|
6
18
|
export const getTronTxStatus = async ({ hash }) => {
|
|
7
19
|
const url = `${tronRpcUrl}/wallet/gettransactioninfobyid`;
|
|
8
20
|
const { data: tx, error } = await attempt(queryUrl(url, {
|
|
@@ -11,9 +23,22 @@ export const getTronTxStatus = async ({ hash }) => {
|
|
|
11
23
|
if (error || !tx || tx.blockNumber === undefined || tx.blockNumber === 0) {
|
|
12
24
|
return { status: 'pending' };
|
|
13
25
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
26
|
+
// 1. top-level result === "FAILED" → error
|
|
27
|
+
// Tron RPC only emits "FAILED" here — no "SUCCESS" counterpart exists at the top level.
|
|
28
|
+
// iOS ref: `if let topLevelResult = response.data.result, topLevelResult == "FAILED"`
|
|
29
|
+
// (TronTransactionStatusProvider.swift:41 — same guard, same single-value invariant)
|
|
30
|
+
if (tx.result === 'FAILED') {
|
|
31
|
+
return { status: 'error' };
|
|
32
|
+
}
|
|
33
|
+
// 2. receipt absent → pending (native TRX transfers or tx still processing)
|
|
34
|
+
if (!tx.receipt) {
|
|
35
|
+
return { status: 'pending' };
|
|
36
|
+
}
|
|
37
|
+
// 3. receipt.result in terminal failure set → error
|
|
38
|
+
// receipt.result == null → success (native TRX send, no contract result)
|
|
39
|
+
// receipt.result == 'SUCCESS' → success (TRC20/smart-contract success, protobuf3 non-default enum)
|
|
40
|
+
// receipt.result unknown → treat as success (safer than false-failure for user)
|
|
41
|
+
const status = tx.receipt.result != null && TRON_RECEIPT_FAILURE_RESULTS.has(tx.receipt.result) ? 'error' : 'success';
|
|
17
42
|
const feeCoin = chainFeeCoin[Chain.Tron];
|
|
18
43
|
const receipt = tx.fee != null
|
|
19
44
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,oGAAoG;AACpG,yFAAyF;AACzF,gGAAgG;AAChG,iFAAiF;AACjF,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,QAAQ;IACR,eAAe;IACf,QAAQ;IACR,aAAa;IACb,iBAAiB;IACjB,iBAAiB;CAClB,CAAC,CAAA;AAmBF,MAAM,CAAC,MAAM,eAAe,GAAsC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACnF,MAAM,GAAG,GAAG,GAAG,UAAU,gCAAgC,CAAA;IAEzD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CACvC,QAAQ,CAAqB,GAAG,EAAE;QAChC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACtB,CAAC,CACH,CAAA;IAED,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAC9B,CAAC;IAED,2CAA2C;IAC3C,2FAA2F;IAC3F,yFAAyF;IACzF,wFAAwF;IACxF,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC5B,CAAC;IAED,4EAA4E;IAC5E,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAC9B,CAAC;IAED,oDAAoD;IACpD,4EAA4E;IAC5E,sGAAsG;IACtG,mFAAmF;IACnF,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,IAAI,4BAA4B,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACrH,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACxC,MAAM,OAAO,GACX,EAAE,CAAC,GAAG,IAAI,IAAI;QACZ,CAAC,CAAC;YACE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;YACzB,WAAW,EAAE,OAAO,CAAC,QAAQ;YAC7B,SAAS,EAAE,OAAO,CAAC,MAAM;SAC1B;QACH,CAAC,CAAC,SAAS,CAAA;IAEf,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC5B,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-chain",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.5",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -1240,6 +1240,11 @@
|
|
|
1240
1240
|
"import": "./dist/signing/SignatureFormat.js",
|
|
1241
1241
|
"default": "./dist/signing/SignatureFormat.js"
|
|
1242
1242
|
},
|
|
1243
|
+
"./station/importPrimitives": {
|
|
1244
|
+
"types": "./dist/station/importPrimitives.d.ts",
|
|
1245
|
+
"import": "./dist/station/importPrimitives.js",
|
|
1246
|
+
"default": "./dist/station/importPrimitives.js"
|
|
1247
|
+
},
|
|
1243
1248
|
"./swap/affiliate": {
|
|
1244
1249
|
"types": "./dist/swap/affiliate/index.d.ts",
|
|
1245
1250
|
"import": "./dist/swap/affiliate/index.js",
|
|
@@ -1732,6 +1737,7 @@
|
|
|
1732
1737
|
"bip32": "^5.0.1",
|
|
1733
1738
|
"bitcoinjs-lib": "^7.0.1",
|
|
1734
1739
|
"bs58": "^6.0.0",
|
|
1740
|
+
"bs58check": "^4.0.0",
|
|
1735
1741
|
"cbor-x": "^1.6.4",
|
|
1736
1742
|
"date-fns": "^4.1.0",
|
|
1737
1743
|
"ethers": "^6.16.0",
|