@vultisig/core-chain 1.7.0 → 1.7.1
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 +8 -0
- package/dist/chains/cosmos/cosmosRpcUrl.d.ts +9 -1
- package/dist/chains/cosmos/cosmosRpcUrl.d.ts.map +1 -1
- package/dist/chains/cosmos/cosmosRpcUrl.js +14 -1
- package/dist/chains/cosmos/cosmosRpcUrl.js.map +1 -1
- package/dist/coin/balance/resolvers/cosmos.d.ts.map +1 -1
- package/dist/coin/balance/resolvers/cosmos.js +2 -9
- package/dist/coin/balance/resolvers/cosmos.js.map +1 -1
- package/dist/coin/token/metadata/resolvers/cosmos.d.ts.map +1 -1
- package/dist/coin/token/metadata/resolvers/cosmos.js +41 -4
- package/dist/coin/token/metadata/resolvers/cosmos.js.map +1 -1
- package/dist/swap/native/NativeSwapChain.d.ts +22 -1
- package/dist/swap/native/NativeSwapChain.d.ts.map +1 -1
- package/dist/swap/native/NativeSwapChain.js.map +1 -1
- package/dist/swap/native/asset/toNativeSwapAsset.d.ts.map +1 -1
- package/dist/swap/native/asset/toNativeSwapAsset.js +43 -1
- package/dist/swap/native/asset/toNativeSwapAsset.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @vultisig/core-chain
|
|
2
2
|
|
|
3
|
+
## 1.7.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#455](https://github.com/vultisig/vultisig-sdk/pull/455) [`5102976`](https://github.com/vultisig/vultisig-sdk/commit/5102976d7c13fa9578bbbc6e5122526cefc1ec66) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Normalize THORChain/MayaChain native swap asset ids: single-segment denoms and simple `x/…` paths map to `THOR.<ticker>` / `MAYA.<ticker>`; secured `chain-symbol-0x…` denoms map to `CHAIN.SYMBOL` notation using the canonical `nativeSwapChainIds` mapping. Full `CHAIN.SYMBOL` strings and unrecognized complex denoms remain unchanged.
|
|
8
|
+
|
|
9
|
+
- [#456](https://github.com/vultisig/vultisig-sdk/pull/456) [`b36eb62`](https://github.com/vultisig/vultisig-sdk/commit/b36eb62842051b8b2bae06f1e123a5ebcf6cad88) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Add Terra CW20 metadata resolution and build CW20 token sends as CosmWasm execute transfers.
|
|
10
|
+
|
|
3
11
|
## 1.7.0
|
|
4
12
|
|
|
5
13
|
### Minor Changes
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { CosmosChain } from '@vultisig/core-chain/Chain';
|
|
2
2
|
import { AccountCoinKey } from '@vultisig/core-chain/coin/AccountCoin';
|
|
3
|
+
type CosmosWasmContract = {
|
|
4
|
+
chain: CosmosChain;
|
|
5
|
+
id: string;
|
|
6
|
+
};
|
|
3
7
|
export declare const cosmosRpcUrl: Record<CosmosChain, string>;
|
|
4
|
-
export declare const
|
|
8
|
+
export declare const isCosmosWasmTokenId: (id?: string) => id is string;
|
|
9
|
+
export declare const getCosmosWasmSmartQueryUrl: ({ chain, id }: CosmosWasmContract, query: object) => string;
|
|
10
|
+
export declare const getCosmosWasmTokenBalanceUrl: ({ chain, id, address }: AccountCoinKey<CosmosChain>) => string;
|
|
11
|
+
export declare const getCosmosWasmTokenInfoUrl: (input: CosmosWasmContract) => string;
|
|
12
|
+
export {};
|
|
5
13
|
//# sourceMappingURL=cosmosRpcUrl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmosRpcUrl.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cosmos/cosmosRpcUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"cosmosRpcUrl.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cosmos/cosmosRpcUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AAItE,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAWpD,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,KAAG,EAAE,IAAI,MAQvD,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,eAAe,kBAAkB,EAAE,OAAO,MAAM,WACY,CAAA;AAEvG,eAAO,MAAM,4BAA4B,GAAI,wBAAwB,cAAc,CAAC,WAAW,CAAC,WAO7F,CAAA;AAEH,eAAO,MAAM,yBAAyB,GAAI,OAAO,kBAAkB,WACZ,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
1
2
|
import { base64Encode } from '@vultisig/lib-utils/base64Encode';
|
|
2
3
|
export const cosmosRpcUrl = {
|
|
3
4
|
Cosmos: 'https://cosmos-rest.publicnode.com',
|
|
@@ -11,5 +12,17 @@ export const cosmosRpcUrl = {
|
|
|
11
12
|
MayaChain: 'https://mayanode.mayachain.info',
|
|
12
13
|
Akash: 'https://akash-rest.publicnode.com',
|
|
13
14
|
};
|
|
14
|
-
export const
|
|
15
|
+
export const isCosmosWasmTokenId = (id) => {
|
|
16
|
+
if (!id || id.startsWith('ibc/') || id.startsWith('factory/')) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const wasmTokenPattern = /^[a-z]+1[a-z0-9]{20,80}$/;
|
|
20
|
+
return wasmTokenPattern.test(id);
|
|
21
|
+
};
|
|
22
|
+
export const getCosmosWasmSmartQueryUrl = ({ chain, id }, query) => `${cosmosRpcUrl[chain]}/cosmwasm/wasm/v1/contract/${id}/smart/${base64Encode(JSON.stringify(query))}`;
|
|
23
|
+
export const getCosmosWasmTokenBalanceUrl = ({ chain, id, address }) => getCosmosWasmSmartQueryUrl({
|
|
24
|
+
chain,
|
|
25
|
+
id: shouldBePresent(id),
|
|
26
|
+
}, { balance: { address } });
|
|
27
|
+
export const getCosmosWasmTokenInfoUrl = (input) => getCosmosWasmSmartQueryUrl(input, { token_info: {} });
|
|
15
28
|
//# sourceMappingURL=cosmosRpcUrl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmosRpcUrl.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cosmos/cosmosRpcUrl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"cosmosRpcUrl.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cosmos/cosmosRpcUrl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAO/D,MAAM,CAAC,MAAM,YAAY,GAAgC;IACvD,MAAM,EAAE,oCAAoC;IAC5C,OAAO,EAAE,qCAAqC;IAC9C,IAAI,EAAE,kCAAkC;IACxC,MAAM,EAAE,oCAAoC;IAC5C,KAAK,EAAE,kCAAkC;IACzC,YAAY,EAAE,0CAA0C;IACxD,KAAK,EAAE,gCAAgC;IACvC,SAAS,EAAE,iDAAiD;IAC5D,SAAS,EAAE,iCAAiC;IAC5C,KAAK,EAAE,mCAAmC;CAC3C,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAW,EAAgB,EAAE;IAC/D,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,gBAAgB,GAAG,0BAA0B,CAAA;IAEnD,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAsB,EAAE,KAAa,EAAE,EAAE,CAC7F,GAAG,YAAY,CAAC,KAAK,CAAC,8BAA8B,EAAE,UAAU,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;AAEvG,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAA+B,EAAE,EAAE,CAClG,0BAA0B,CACxB;IACE,KAAK;IACL,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC;CACxB,EACD,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CACzB,CAAA;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAyB,EAAE,EAAE,CACrE,0BAA0B,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/cosmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAMxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/cosmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAMxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,CAAC,WAAW,CAcjE,CAAA"}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import { getCosmosClient } from '@vultisig/core-chain/chains/cosmos/client';
|
|
2
|
-
import { getCosmosWasmTokenBalanceUrl } from '@vultisig/core-chain/chains/cosmos/cosmosRpcUrl';
|
|
2
|
+
import { getCosmosWasmTokenBalanceUrl, isCosmosWasmTokenId } from '@vultisig/core-chain/chains/cosmos/cosmosRpcUrl';
|
|
3
3
|
import { getDenom } from '@vultisig/core-chain/coin/utils/getDenom';
|
|
4
4
|
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
5
|
-
const isWasmToken = (id) => {
|
|
6
|
-
if (id.startsWith('ibc/') || id.startsWith('factory/')) {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
const wasmTokenPattern = /^[a-z]+1[a-z0-9]{20,80}$/;
|
|
10
|
-
return wasmTokenPattern.test(id);
|
|
11
|
-
};
|
|
12
5
|
export const getCosmosCoinBalance = async (input) => {
|
|
13
|
-
if (
|
|
6
|
+
if (isCosmosWasmTokenId(input.id)) {
|
|
14
7
|
const url = getCosmosWasmTokenBalanceUrl(input);
|
|
15
8
|
const { data } = await queryUrl(url);
|
|
16
9
|
return BigInt(data.balance ?? 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/cosmos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAA;
|
|
1
|
+
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/cosmos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AACnH,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAI7D,MAAM,CAAC,MAAM,oBAAoB,GAAqC,KAAK,EAAC,KAAK,EAAC,EAAE;IAClF,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAoB,GAAG,CAAC,CAAA;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAEjD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAE7D,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/cosmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/cosmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAQxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AAgFzF,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,CAAC,WAAW,CAuCrE,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cosmosRpcUrl } from '@vultisig/core-chain/chains/cosmos/cosmosRpcUrl';
|
|
1
|
+
import { cosmosRpcUrl, getCosmosWasmTokenInfoUrl, isCosmosWasmTokenId, } from '@vultisig/core-chain/chains/cosmos/cosmosRpcUrl';
|
|
2
2
|
import { knownCosmosTokens } from '@vultisig/core-chain/coin/knownTokens/cosmos';
|
|
3
3
|
import { getLastItem } from '@vultisig/lib-utils/array/getLastItem';
|
|
4
4
|
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
@@ -7,8 +7,15 @@ import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
|
7
7
|
const decimalsFromMeta = (meta) => {
|
|
8
8
|
if (!meta.denom_units || !meta.display)
|
|
9
9
|
return null;
|
|
10
|
-
const
|
|
11
|
-
|
|
10
|
+
const byDisplay = meta.denom_units.find(u => u.denom === meta.display);
|
|
11
|
+
if (byDisplay)
|
|
12
|
+
return byDisplay.exponent;
|
|
13
|
+
if (meta.symbol) {
|
|
14
|
+
const bySymbol = meta.denom_units.find(u => u.denom === meta.symbol);
|
|
15
|
+
if (bySymbol)
|
|
16
|
+
return bySymbol.exponent;
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
12
19
|
};
|
|
13
20
|
const deriveTicker = (denom, meta) => {
|
|
14
21
|
if (meta.symbol)
|
|
@@ -41,6 +48,20 @@ const getDenomMetaFromLCD = async (lcdBase, denom) => {
|
|
|
41
48
|
return listRes.data?.metadatas?.find(data => data.base === denom) ?? null;
|
|
42
49
|
});
|
|
43
50
|
};
|
|
51
|
+
const getCw20MetaFromLCD = async (chain, id) => {
|
|
52
|
+
const { data } = await queryUrl(getCosmosWasmTokenInfoUrl({ chain, id }));
|
|
53
|
+
const ticker = data?.symbol?.trim();
|
|
54
|
+
if (!ticker)
|
|
55
|
+
throw new Error(`Could not fetch CW20 symbol for ${id}`);
|
|
56
|
+
const decimals = data?.decimals;
|
|
57
|
+
if (typeof decimals !== 'number' || !Number.isInteger(decimals) || decimals < 0) {
|
|
58
|
+
throw new Error(`Could not fetch CW20 decimals for ${id}`);
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
ticker,
|
|
62
|
+
decimals,
|
|
63
|
+
};
|
|
64
|
+
};
|
|
44
65
|
export const getCosmosTokenMetadata = async ({ chain, id }) => {
|
|
45
66
|
const knownMeta = knownCosmosTokens[chain]?.[id];
|
|
46
67
|
if (knownMeta) {
|
|
@@ -49,12 +70,28 @@ export const getCosmosTokenMetadata = async ({ chain, id }) => {
|
|
|
49
70
|
decimals: knownMeta.decimals,
|
|
50
71
|
};
|
|
51
72
|
}
|
|
73
|
+
if (isCosmosWasmTokenId(id)) {
|
|
74
|
+
return asyncFallbackChain(async () => getCw20MetaFromLCD(chain, id), async () => {
|
|
75
|
+
const lcd = cosmosRpcUrl[chain];
|
|
76
|
+
const meta = await getDenomMetaFromLCD(lcd, id);
|
|
77
|
+
if (!meta)
|
|
78
|
+
throw new Error(`No denom meta information available for ${id}`);
|
|
79
|
+
const decimals = decimalsFromMeta(meta);
|
|
80
|
+
if (decimals === null)
|
|
81
|
+
throw new Error(`Could not fetch decimal for ${id}`);
|
|
82
|
+
const ticker = deriveTicker(id, meta);
|
|
83
|
+
return {
|
|
84
|
+
ticker,
|
|
85
|
+
decimals,
|
|
86
|
+
};
|
|
87
|
+
});
|
|
88
|
+
}
|
|
52
89
|
const lcd = cosmosRpcUrl[chain];
|
|
53
90
|
const meta = await getDenomMetaFromLCD(lcd, id);
|
|
54
91
|
if (!meta)
|
|
55
92
|
throw new Error(`No denom meta information available for ${id}`);
|
|
56
93
|
const decimals = decimalsFromMeta(meta);
|
|
57
|
-
if (
|
|
94
|
+
if (decimals === null)
|
|
58
95
|
throw new Error(`Could not fetch decimal for ${id}`);
|
|
59
96
|
const ticker = deriveTicker(id, meta);
|
|
60
97
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/cosmos.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/cosmos.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,28 @@ export declare const nativeSwapEnabledChainsRecord: {
|
|
|
14
14
|
};
|
|
15
15
|
type NativeSwapEnabledChain = (typeof nativeSwapEnabledChainsRecord)[NativeSwapChain][number];
|
|
16
16
|
export declare const nativeSwapEnabledChains: NativeSwapEnabledChain[];
|
|
17
|
-
export declare const nativeSwapChainIds:
|
|
17
|
+
export declare const nativeSwapChainIds: {
|
|
18
|
+
Avalanche: string;
|
|
19
|
+
"Bitcoin-Cash": string;
|
|
20
|
+
BSC: string;
|
|
21
|
+
Bitcoin: string;
|
|
22
|
+
Dogecoin: string;
|
|
23
|
+
Ethereum: string;
|
|
24
|
+
Cosmos: string;
|
|
25
|
+
Litecoin: string;
|
|
26
|
+
THORChain: string;
|
|
27
|
+
MayaChain: string;
|
|
28
|
+
Kujira: string;
|
|
29
|
+
Dash: string;
|
|
30
|
+
Arbitrum: string;
|
|
31
|
+
Zcash: string;
|
|
32
|
+
Ripple: string;
|
|
33
|
+
Base: string;
|
|
34
|
+
Solana: string;
|
|
35
|
+
Tron: string;
|
|
36
|
+
Noble: string;
|
|
37
|
+
};
|
|
38
|
+
export type NativeSwapChainId = (typeof nativeSwapChainIds)[NativeSwapEnabledChain];
|
|
18
39
|
type NativeSwapPayloadCase = 'thorchainSwapPayload' | 'mayachainSwapPayload';
|
|
19
40
|
export declare const nativeSwapPayloadCase: Record<NativeSwapChain, NativeSwapPayloadCase>;
|
|
20
41
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeSwapChain.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/NativeSwapChain.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,qCAA8C,CAAA;AAC3E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,wFAAwF;AACxF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAGvE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,0CAA0C,MAAM,CAAA;AAE7D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAGhE,CAAA;AAmBD,eAAO,MAAM,6BAA6B;;;CAYhC,CAAA;AAEV,KAAK,sBAAsB,GACzB,CAAC,OAAO,6BAA6B,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjE,eAAO,MAAM,uBAAuB,EAE/B,sBAAsB,EAAE,CAAA;AAE7B,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"NativeSwapChain.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/NativeSwapChain.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,qCAA8C,CAAA;AAC3E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,wFAAwF;AACxF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAGvE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,0CAA0C,MAAM,CAAA;AAE7D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAGhE,CAAA;AAmBD,eAAO,MAAM,6BAA6B;;;CAYhC,CAAA;AAEV,KAAK,sBAAsB,GACzB,CAAC,OAAO,6BAA6B,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjE,eAAO,MAAM,uBAAuB,EAE/B,sBAAsB,EAAE,CAAA;AAE7B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;CAoBmB,CAAA;AAClD,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,kBAAkB,CAAC,CAAC,sBAAsB,CAAC,CAAA;AAErD,KAAK,qBAAqB,GACtB,sBAAsB,GACtB,sBAAsB,CAAA;AAE1B,eAAO,MAAM,qBAAqB,EAAE,MAAM,CACxC,eAAe,EACf,qBAAqB,CAItB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeSwapChain.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/NativeSwapChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAU,CAAA;AAG3E,wFAAwF;AACxF,MAAM,CAAC,MAAM,2BAA2B,GAAoC;IAC1E,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IACpB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;CACrB,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,GAAG,CAAA;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAoC;IACnE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY;IAC/D,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY;CAChE,CAAA;AAED,MAAM,0BAA0B,GAAG;IACjC,KAAK,CAAC,SAAS;IACf,KAAK,CAAC,WAAW;IACjB,KAAK,CAAC,GAAG;IACT,KAAK,CAAC,OAAO;IACb,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,SAAS;IACf,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,KAAK;CACH,CAAA;AAEV,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,0BAA0B;IAC7C,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QACjB,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,KAAK;KACZ;CACO,CAAA;AAKV,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CACtD,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CACzC,CAAA;AAE7B,MAAM,CAAC,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"NativeSwapChain.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/NativeSwapChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAU,CAAA;AAG3E,wFAAwF;AACxF,MAAM,CAAC,MAAM,2BAA2B,GAAoC;IAC1E,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IACpB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;CACrB,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,GAAG,CAAA;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAoC;IACnE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY;IAC/D,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY;CAChE,CAAA;AAED,MAAM,0BAA0B,GAAG;IACjC,KAAK,CAAC,SAAS;IACf,KAAK,CAAC,WAAW;IACjB,KAAK,CAAC,GAAG;IACT,KAAK,CAAC,OAAO;IACb,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,SAAS;IACf,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,KAAK;CACH,CAAA;AAEV,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,0BAA0B;IAC7C,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QACjB,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,KAAK;KACZ;CACO,CAAA;AAKV,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CACtD,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CACzC,CAAA;AAE7B,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM;IACzB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK;IAC1B,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK;IAClB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK;IACtB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM;IACxB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK;IACvB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM;IACtB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK;IACvB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM;IACzB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM;IACzB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM;IACtB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM;IACpB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK;IACvB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK;IACpB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK;IACrB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM;IACpB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK;IACrB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM;IACpB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;CAC0B,CAAA;AAQlD,MAAM,CAAC,MAAM,qBAAqB,GAG9B;IACF,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,sBAAsB;IACzC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,sBAAsB;CAC1C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toNativeSwapAsset.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/native/asset/toNativeSwapAsset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAA;
|
|
1
|
+
{"version":3,"file":"toNativeSwapAsset.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/native/asset/toNativeSwapAsset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAA;AA2EhF,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,GAAI,wBAI/B,OAAO,GAAG,gBAAgB,KAAG,MAoB/B,CAAA"}
|
|
@@ -2,6 +2,44 @@ import { isOneOf } from '@vultisig/lib-utils/array/isOneOf';
|
|
|
2
2
|
import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
3
3
|
import { isFeeCoin } from '../../../coin/utils/isFeeCoin.js';
|
|
4
4
|
import { nativeSwapChainIds, nativeSwapChains, nativeSwapEnabledChains, } from '../NativeSwapChain.js';
|
|
5
|
+
const nativeSwapChainIdValues = Object.values(nativeSwapChainIds);
|
|
6
|
+
const securedAssetDenomChainKeyToSwapId = Object.fromEntries(nativeSwapChainIdValues.map(swapId => [
|
|
7
|
+
swapId.toLowerCase(),
|
|
8
|
+
swapId,
|
|
9
|
+
]));
|
|
10
|
+
const getSecuredAssetSwapId = (chainKey) => securedAssetDenomChainKeyToSwapId[chainKey.toLowerCase()];
|
|
11
|
+
const formatSecuredAssetRest = (rest) => {
|
|
12
|
+
const evmTail = rest.match(/^(.+)-(0x[0-9a-fA-F]+)$/i);
|
|
13
|
+
if (evmTail) {
|
|
14
|
+
return `${evmTail[1].toUpperCase()}-${evmTail[2]}`;
|
|
15
|
+
}
|
|
16
|
+
return rest.toUpperCase();
|
|
17
|
+
};
|
|
18
|
+
const normalizeNativeSwapChainDenom = ({ chain, id, ticker, }) => {
|
|
19
|
+
let denom = id;
|
|
20
|
+
if (id.startsWith('x/')) {
|
|
21
|
+
const tail = id.slice(2);
|
|
22
|
+
if (!tail.includes('/')) {
|
|
23
|
+
denom = shouldBePresent(tail);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (denom.includes('.')) {
|
|
27
|
+
return denom;
|
|
28
|
+
}
|
|
29
|
+
const segments = denom.split('-');
|
|
30
|
+
if (segments.length >= 2) {
|
|
31
|
+
const swapId = getSecuredAssetSwapId(segments[0]);
|
|
32
|
+
if (swapId) {
|
|
33
|
+
const rest = segments.slice(1).join('-');
|
|
34
|
+
return `${swapId}.${formatSecuredAssetRest(rest)}`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (!denom.includes('-') && !denom.includes('/')) {
|
|
38
|
+
const swapChainId = nativeSwapChainIds[chain];
|
|
39
|
+
return `${swapChainId}.${ticker}`;
|
|
40
|
+
}
|
|
41
|
+
return id;
|
|
42
|
+
};
|
|
5
43
|
/** Converts a coin to the asset notation used by THORChain/MayaChain swap APIs */
|
|
6
44
|
export const toNativeSwapAsset = ({ chain, id, ticker, }) => {
|
|
7
45
|
if (!isOneOf(chain, nativeSwapEnabledChains)) {
|
|
@@ -12,7 +50,11 @@ export const toNativeSwapAsset = ({ chain, id, ticker, }) => {
|
|
|
12
50
|
return `${swapChainId}.${ticker}`;
|
|
13
51
|
}
|
|
14
52
|
if (isOneOf(chain, nativeSwapChains)) {
|
|
15
|
-
return
|
|
53
|
+
return normalizeNativeSwapChainDenom({
|
|
54
|
+
chain,
|
|
55
|
+
id: shouldBePresent(id),
|
|
56
|
+
ticker,
|
|
57
|
+
});
|
|
16
58
|
}
|
|
17
59
|
const swapChainId = nativeSwapChainIds[chain];
|
|
18
60
|
return `${swapChainId}.${ticker}-${id}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toNativeSwapAsset.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/native/asset/toNativeSwapAsset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAG5E,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"toNativeSwapAsset.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/native/asset/toNativeSwapAsset.ts"],"names":[],"mappings":"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"}
|