@shapeshiftoss/caip 3.1.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/accountId/accountId.js +2 -2
- package/dist/adapters/coincap/utils.js +8 -8
- package/dist/adapters/coingecko/utils.js +8 -8
- package/dist/adapters/osmosis/utils.js +3 -4
- package/dist/adapters/yearn/utils.js +1 -1
- package/dist/assetId/assetId.d.ts +9 -15
- package/dist/assetId/assetId.js +26 -45
- package/dist/chainId/chainId.d.ts +18 -16
- package/dist/chainId/chainId.js +67 -69
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -64,8 +64,8 @@ Ether
|
|
|
64
64
|
```ts
|
|
65
65
|
const chain = ChainTypes.Ethereum
|
|
66
66
|
const network = NetworkTypes.MAINNET
|
|
67
|
-
const assetNamespace =
|
|
68
|
-
const assetReference =
|
|
67
|
+
const assetNamespace = 'slip44'
|
|
68
|
+
const assetReference = ASSET_REFERENCE.Ethereum
|
|
69
69
|
const result = toAssetId({ chain, network, assetNamespace, assetReference })
|
|
70
70
|
expect(result).toEqual('eip155:1/slip44:60')
|
|
71
71
|
```
|
|
@@ -75,7 +75,7 @@ ERC20 token
|
|
|
75
75
|
```ts
|
|
76
76
|
const chain = ChainTypes.Ethereum
|
|
77
77
|
const network = NetworkTypes.MAINNET
|
|
78
|
-
const contractType =
|
|
78
|
+
const contractType = 'erc20'
|
|
79
79
|
const tokenId = '0xc770eefad204b5180df6a14ee197d99d808ee52d'
|
|
80
80
|
const result = toAssetId({ chain, network, contractType, tokenId })
|
|
81
81
|
expect(result).toEqual('eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d')
|
|
@@ -90,8 +90,8 @@ const assetId = 'eip155:1/slip44:60'
|
|
|
90
90
|
const { chain, network, contractType, tokenId } = fromAssetId(assetId)
|
|
91
91
|
expect(chain).toEqual(ChainTypes.Ethereum)
|
|
92
92
|
expect(network).toEqual(NetworkTypes.MAINNET)
|
|
93
|
-
expect(contractType).toEqual(
|
|
94
|
-
expect(tokenId).toEqual(
|
|
93
|
+
expect(contractType).toEqual('slip44')
|
|
94
|
+
expect(tokenId).toEqual(ASSET_REFERENCE.Ethereum)
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
ERC20 token
|
|
@@ -101,7 +101,7 @@ const assetId = 'eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d'
|
|
|
101
101
|
const { chain, network, contractType, tokenId } = fromAssetId(assetId)
|
|
102
102
|
expect(chain).toEqual(ChainTypes.Ethereum)
|
|
103
103
|
expect(network).toEqual(NetworkTypes.MAINNET)
|
|
104
|
-
expect(contractType).toEqual(
|
|
104
|
+
expect(contractType).toEqual('erc20')
|
|
105
105
|
expect(tokenId).toEqual('0xc770eefad204b5180df6a14ee197d99d808ee52d')
|
|
106
106
|
```
|
|
107
107
|
|
|
@@ -13,7 +13,7 @@ const toAccountId = ({ chainId, account }) => {
|
|
|
13
13
|
// we lowercase eth accounts as per the draft spec
|
|
14
14
|
// it's not explicit, but cHecKsUM can be recovered from lowercase eth accounts
|
|
15
15
|
// we don't lowercase bitcoin addresses as they'll fail checksum
|
|
16
|
-
const outputAccount = namespace === chainId_1.
|
|
16
|
+
const outputAccount = namespace === chainId_1.CHAIN_NAMESPACE.Ethereum ? account.toLowerCase() : account;
|
|
17
17
|
return `${chainId}:${outputAccount}`;
|
|
18
18
|
};
|
|
19
19
|
exports.toAccountId = toAccountId;
|
|
@@ -34,7 +34,7 @@ const fromAccountId = (accountId) => {
|
|
|
34
34
|
// we lowercase eth accounts as per the draft spec
|
|
35
35
|
// it's not explicit, but cHecKsUM can be recovered from lowercase eth accounts
|
|
36
36
|
// we don't lowercase bitcoin addresses as they'll fail checksum
|
|
37
|
-
const outputAccount = namespace === chainId_1.
|
|
37
|
+
const outputAccount = namespace === chainId_1.CHAIN_NAMESPACE.Ethereum ? account.toLowerCase() : account;
|
|
38
38
|
return { chainId, account: outputAccount };
|
|
39
39
|
};
|
|
40
40
|
exports.fromAccountId = fromAccountId;
|
|
@@ -24,8 +24,8 @@ const parseEthData = (data) => {
|
|
|
24
24
|
const chain = types_1.ChainTypes.Ethereum;
|
|
25
25
|
const network = types_1.NetworkTypes.MAINNET;
|
|
26
26
|
return ethCoins.reduce((acc, { id, explorer }) => {
|
|
27
|
-
let assetReference = assetId_1.
|
|
28
|
-
const assetNamespace = id === 'ethereum' ?
|
|
27
|
+
let assetReference = assetId_1.ASSET_REFERENCE.Ethereum;
|
|
28
|
+
const assetNamespace = id === 'ethereum' ? 'slip44' : 'erc20';
|
|
29
29
|
if (id !== 'ethereum' && explorer) {
|
|
30
30
|
assetReference = explorer
|
|
31
31
|
.replace('https://etherscan.io/token/', '')
|
|
@@ -44,8 +44,8 @@ const makeBtcData = () => {
|
|
|
44
44
|
const assetId = (0, assetId_1.toAssetId)({
|
|
45
45
|
chain,
|
|
46
46
|
network,
|
|
47
|
-
assetNamespace:
|
|
48
|
-
assetReference: assetId_1.
|
|
47
|
+
assetNamespace: 'slip44',
|
|
48
|
+
assetReference: assetId_1.ASSET_REFERENCE.Bitcoin
|
|
49
49
|
});
|
|
50
50
|
return { [assetId]: 'bitcoin' };
|
|
51
51
|
};
|
|
@@ -56,8 +56,8 @@ const makeCosmosHubData = () => {
|
|
|
56
56
|
const assetId = (0, assetId_1.toAssetId)({
|
|
57
57
|
chain,
|
|
58
58
|
network,
|
|
59
|
-
assetNamespace:
|
|
60
|
-
assetReference: assetId_1.
|
|
59
|
+
assetNamespace: 'slip44',
|
|
60
|
+
assetReference: assetId_1.ASSET_REFERENCE.Cosmos
|
|
61
61
|
});
|
|
62
62
|
return { [assetId]: 'cosmos' };
|
|
63
63
|
};
|
|
@@ -68,8 +68,8 @@ const makeOsmosisData = () => {
|
|
|
68
68
|
const assetId = (0, assetId_1.toAssetId)({
|
|
69
69
|
chain,
|
|
70
70
|
network,
|
|
71
|
-
assetNamespace:
|
|
72
|
-
assetReference: assetId_1.
|
|
71
|
+
assetNamespace: 'slip44',
|
|
72
|
+
assetReference: assetId_1.ASSET_REFERENCE.Osmosis
|
|
73
73
|
});
|
|
74
74
|
return { [assetId]: 'osmosis' };
|
|
75
75
|
};
|
|
@@ -24,8 +24,8 @@ const parseEthData = (data) => {
|
|
|
24
24
|
const chain = types_1.ChainTypes.Ethereum;
|
|
25
25
|
const network = types_1.NetworkTypes.MAINNET;
|
|
26
26
|
return ethCoins.reduce((acc, { id, platforms }) => {
|
|
27
|
-
const assetNamespace = id === 'ethereum' ?
|
|
28
|
-
const assetReference = id === 'ethereum' ? assetId_1.
|
|
27
|
+
const assetNamespace = id === 'ethereum' ? 'slip44' : 'erc20';
|
|
28
|
+
const assetReference = id === 'ethereum' ? assetId_1.ASSET_REFERENCE.Ethereum : platforms === null || platforms === void 0 ? void 0 : platforms.ethereum;
|
|
29
29
|
const assetId = (0, assetId_1.toAssetId)({ chain, network, assetNamespace, assetReference });
|
|
30
30
|
acc[assetId] = id;
|
|
31
31
|
return acc;
|
|
@@ -38,8 +38,8 @@ const makeBtcData = () => {
|
|
|
38
38
|
const assetId = (0, assetId_1.toAssetId)({
|
|
39
39
|
chain,
|
|
40
40
|
network,
|
|
41
|
-
assetNamespace:
|
|
42
|
-
assetReference: assetId_1.
|
|
41
|
+
assetNamespace: 'slip44',
|
|
42
|
+
assetReference: assetId_1.ASSET_REFERENCE.Bitcoin
|
|
43
43
|
});
|
|
44
44
|
return { [assetId]: 'bitcoin' };
|
|
45
45
|
};
|
|
@@ -50,8 +50,8 @@ const makeCosmosHubData = () => {
|
|
|
50
50
|
const assetId = (0, assetId_1.toAssetId)({
|
|
51
51
|
chain,
|
|
52
52
|
network,
|
|
53
|
-
assetNamespace:
|
|
54
|
-
assetReference: assetId_1.
|
|
53
|
+
assetNamespace: 'slip44',
|
|
54
|
+
assetReference: assetId_1.ASSET_REFERENCE.Cosmos
|
|
55
55
|
});
|
|
56
56
|
return { [assetId]: 'cosmos' };
|
|
57
57
|
};
|
|
@@ -62,8 +62,8 @@ const makeOsmosisData = () => {
|
|
|
62
62
|
const assetId = (0, assetId_1.toAssetId)({
|
|
63
63
|
chain,
|
|
64
64
|
network,
|
|
65
|
-
assetNamespace:
|
|
66
|
-
assetReference: assetId_1.
|
|
65
|
+
assetNamespace: 'slip44',
|
|
66
|
+
assetReference: assetId_1.ASSET_REFERENCE.Osmosis
|
|
67
67
|
});
|
|
68
68
|
return { [assetId]: 'osmosis' };
|
|
69
69
|
};
|
|
@@ -27,13 +27,12 @@ const parseOsmosisData = (data) => {
|
|
|
27
27
|
let assetNamespace;
|
|
28
28
|
let assetReference;
|
|
29
29
|
if (isNativeAsset) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
assetNamespace = isOsmo ? assetId_1.AssetNamespace.Slip44 : assetId_1.AssetNamespace.NATIVE;
|
|
30
|
+
assetReference = isOsmo ? assetId_1.ASSET_REFERENCE.Osmosis : denom;
|
|
31
|
+
assetNamespace = isOsmo ? 'slip44' : 'native';
|
|
33
32
|
}
|
|
34
33
|
else {
|
|
35
34
|
assetReference = denom.split('/')[1];
|
|
36
|
-
assetNamespace =
|
|
35
|
+
assetNamespace = 'ibc';
|
|
37
36
|
}
|
|
38
37
|
const chain = types_1.ChainTypes.Osmosis;
|
|
39
38
|
const network = types_1.NetworkTypes.OSMOSIS_MAINNET;
|
|
@@ -36,7 +36,7 @@ const fetchData = async () => {
|
|
|
36
36
|
exports.fetchData = fetchData;
|
|
37
37
|
const parseEthData = (data) => {
|
|
38
38
|
const chain = types_1.ChainTypes.Ethereum;
|
|
39
|
-
const assetNamespace =
|
|
39
|
+
const assetNamespace = 'erc20';
|
|
40
40
|
return data.reduce((acc, datum) => {
|
|
41
41
|
const { address } = datum;
|
|
42
42
|
const id = address;
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
import { ChainTypes, NetworkTypes } from '@shapeshiftoss/types';
|
|
2
2
|
import { ChainReference } from '../chainId/chainId';
|
|
3
3
|
export declare type AssetId = string;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export declare enum AssetReference {
|
|
14
|
-
Bitcoin = "0",
|
|
15
|
-
Ethereum = "60",
|
|
16
|
-
Cosmos = "118",
|
|
17
|
-
Osmosis = "118"
|
|
18
|
-
}
|
|
4
|
+
declare const assetNamespaceStrings: readonly ["cw20", "cw721", "erc20", "erc721", "slip44", "native", "ibc"];
|
|
5
|
+
export declare type AssetNamespace = typeof assetNamespaceStrings[number];
|
|
6
|
+
export declare const ASSET_REFERENCE: {
|
|
7
|
+
readonly Bitcoin: "0";
|
|
8
|
+
readonly Ethereum: "60";
|
|
9
|
+
readonly Cosmos: "118";
|
|
10
|
+
readonly Osmosis: "118";
|
|
11
|
+
};
|
|
12
|
+
export declare type AssetReference = typeof ASSET_REFERENCE[keyof typeof ASSET_REFERENCE];
|
|
19
13
|
declare type ToAssetIdArgs = {
|
|
20
14
|
chain: ChainTypes;
|
|
21
15
|
network: NetworkTypes | ChainReference;
|
package/dist/assetId/assetId.js
CHANGED
|
@@ -1,50 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fromCAIP19 = exports.toCAIP19 = exports.fromAssetId = exports.toAssetId = exports.
|
|
3
|
+
exports.fromCAIP19 = exports.toCAIP19 = exports.fromAssetId = exports.toAssetId = exports.ASSET_REFERENCE = void 0;
|
|
4
4
|
// https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-19.md
|
|
5
5
|
const types_1 = require("@shapeshiftoss/types");
|
|
6
6
|
const chainId_1 = require("../chainId/chainId");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
AssetReference["Osmosis"] = "118";
|
|
23
|
-
})(AssetReference = exports.AssetReference || (exports.AssetReference = {}));
|
|
7
|
+
const assetNamespaceStrings = [
|
|
8
|
+
'cw20',
|
|
9
|
+
'cw721',
|
|
10
|
+
'erc20',
|
|
11
|
+
'erc721',
|
|
12
|
+
'slip44',
|
|
13
|
+
'native',
|
|
14
|
+
'ibc'
|
|
15
|
+
];
|
|
16
|
+
exports.ASSET_REFERENCE = {
|
|
17
|
+
Bitcoin: '0',
|
|
18
|
+
Ethereum: '60',
|
|
19
|
+
Cosmos: '118',
|
|
20
|
+
Osmosis: '118'
|
|
21
|
+
};
|
|
24
22
|
const validAssetNamespaces = Object.freeze({
|
|
25
|
-
[types_1.ChainTypes.Bitcoin]: [
|
|
26
|
-
[types_1.ChainTypes.Ethereum]: [
|
|
27
|
-
[types_1.ChainTypes.Cosmos]: [
|
|
28
|
-
|
|
29
|
-
AssetNamespace.CW721,
|
|
30
|
-
AssetNamespace.IBC,
|
|
31
|
-
AssetNamespace.NATIVE,
|
|
32
|
-
AssetNamespace.Slip44
|
|
33
|
-
],
|
|
34
|
-
[types_1.ChainTypes.Osmosis]: [
|
|
35
|
-
AssetNamespace.CW20,
|
|
36
|
-
AssetNamespace.CW721,
|
|
37
|
-
AssetNamespace.IBC,
|
|
38
|
-
AssetNamespace.NATIVE,
|
|
39
|
-
AssetNamespace.Slip44
|
|
40
|
-
]
|
|
23
|
+
[types_1.ChainTypes.Bitcoin]: ['slip44'],
|
|
24
|
+
[types_1.ChainTypes.Ethereum]: ['slip44', 'erc20', 'erc721'],
|
|
25
|
+
[types_1.ChainTypes.Cosmos]: ['cw20', 'cw721', 'ibc', 'native', 'slip44'],
|
|
26
|
+
[types_1.ChainTypes.Osmosis]: ['cw20', 'cw721', 'ibc', 'native', 'slip44']
|
|
41
27
|
});
|
|
42
|
-
|
|
43
|
-
function stringToEnum(obj, item) {
|
|
44
|
-
var _a;
|
|
45
|
-
const found = (_a = Object.entries(obj).find((i) => i.includes(item))) === null || _a === void 0 ? void 0 : _a[0];
|
|
46
|
-
return found ? obj[found] : undefined;
|
|
47
|
-
}
|
|
28
|
+
const isAssetNamespace = (maybeAssetNamespace) => assetNamespaceStrings.some((s) => s === maybeAssetNamespace);
|
|
48
29
|
/**
|
|
49
30
|
* validate that a value is a string slip44 value
|
|
50
31
|
* @see https://github.com/satoshilabs/slips/blob/master/slip-0044.md
|
|
@@ -70,10 +51,10 @@ const toAssetId = (args) => {
|
|
|
70
51
|
if (!validAssetNamespaces[chain].includes(assetNamespace)) {
|
|
71
52
|
throw new Error(`toAssetId: Asset Namespace ${assetNamespace} not supported for chain ${chain}`);
|
|
72
53
|
}
|
|
73
|
-
if (assetNamespace ===
|
|
54
|
+
if (assetNamespace === 'slip44' && !isValidSlip44(String(assetReference))) {
|
|
74
55
|
throw new Error(`Invalid reference for namespace slip44`);
|
|
75
56
|
}
|
|
76
|
-
if (
|
|
57
|
+
if (Array('erc20', 'erc721').includes(assetNamespace)) {
|
|
77
58
|
if (!assetReference.startsWith('0x')) {
|
|
78
59
|
throw new Error(`toAssetId: assetReference must start with 0x: ${assetReference}`);
|
|
79
60
|
}
|
|
@@ -94,7 +75,7 @@ const fromAssetId = (assetId) => {
|
|
|
94
75
|
// they are valid enum values
|
|
95
76
|
let chain = chainId_1.chainNamespaceToChainType[matches[1]];
|
|
96
77
|
const network = chainId_1.chainReferenceToNetworkType[matches[2]];
|
|
97
|
-
const assetNamespace =
|
|
78
|
+
const assetNamespace = isAssetNamespace(matches[3]) ? matches[3] : undefined;
|
|
98
79
|
let assetReference = matches[4];
|
|
99
80
|
if (chain && network && assetNamespace && assetReference) {
|
|
100
81
|
switch (network) {
|
|
@@ -103,8 +84,8 @@ const fromAssetId = (assetId) => {
|
|
|
103
84
|
chain = types_1.ChainTypes.Osmosis;
|
|
104
85
|
}
|
|
105
86
|
switch (assetNamespace) {
|
|
106
|
-
case
|
|
107
|
-
case
|
|
87
|
+
case 'erc20':
|
|
88
|
+
case 'erc721': {
|
|
108
89
|
assetReference = assetReference.toLowerCase();
|
|
109
90
|
}
|
|
110
91
|
}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { ChainTypes, NetworkTypes } from '@shapeshiftoss/types';
|
|
2
2
|
export declare type ChainId = string;
|
|
3
|
-
export declare
|
|
4
|
-
Ethereum
|
|
5
|
-
Bitcoin
|
|
6
|
-
Cosmos
|
|
7
|
-
}
|
|
8
|
-
export declare
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
3
|
+
export declare const CHAIN_NAMESPACE: {
|
|
4
|
+
readonly Ethereum: "eip155";
|
|
5
|
+
readonly Bitcoin: "bip122";
|
|
6
|
+
readonly Cosmos: "cosmos";
|
|
7
|
+
};
|
|
8
|
+
export declare type ChainNamespace = typeof CHAIN_NAMESPACE[keyof typeof CHAIN_NAMESPACE];
|
|
9
|
+
export declare const CHAIN_REFERENCE: {
|
|
10
|
+
readonly EthereumMainnet: "1";
|
|
11
|
+
readonly EthereumRopsten: "3";
|
|
12
|
+
readonly EthereumRinkeby: "4";
|
|
13
|
+
readonly BitcoinMainnet: "000000000019d6689c085ae165831e93";
|
|
14
|
+
readonly BitcoinTestnet: "000000000933ea01ad0ee984209779ba";
|
|
15
|
+
readonly CosmosHubMainnet: "cosmoshub-4";
|
|
16
|
+
readonly CosmosHubVega: "vega-testnet";
|
|
17
|
+
readonly OsmosisMainnet: "osmosis-1";
|
|
18
|
+
readonly OsmosisTestnet: "osmo-testnet-1";
|
|
19
|
+
};
|
|
20
|
+
export declare type ChainReference = typeof CHAIN_REFERENCE[keyof typeof CHAIN_REFERENCE];
|
|
19
21
|
declare type ToChainIdArgs = {
|
|
20
22
|
chain: ChainTypes;
|
|
21
23
|
network: NetworkTypes | ChainReference;
|
package/dist/chainId/chainId.js
CHANGED
|
@@ -4,58 +4,56 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.fromCAIP2 = exports.toCAIP2 = exports.chainNamespaceToChainType = exports.networkTypeToChainReference = exports.chainReferenceToNetworkType = exports.isChainId = exports.fromChainId = exports.toChainId = exports.
|
|
7
|
+
exports.fromCAIP2 = exports.toCAIP2 = exports.chainNamespaceToChainType = exports.networkTypeToChainReference = exports.chainReferenceToNetworkType = exports.isChainId = exports.fromChainId = exports.toChainId = exports.CHAIN_REFERENCE = exports.CHAIN_NAMESPACE = void 0;
|
|
8
8
|
const types_1 = require("@shapeshiftoss/types");
|
|
9
9
|
const invert_1 = __importDefault(require("lodash/invert"));
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
ChainReference["EthereumRinkeby"] = "4";
|
|
21
|
-
// EthereumKovan = '42', // currently unsupported by ShapeShift
|
|
10
|
+
exports.CHAIN_NAMESPACE = {
|
|
11
|
+
Ethereum: 'eip155',
|
|
12
|
+
Bitcoin: 'bip122',
|
|
13
|
+
Cosmos: 'cosmos'
|
|
14
|
+
};
|
|
15
|
+
exports.CHAIN_REFERENCE = {
|
|
16
|
+
EthereumMainnet: '1',
|
|
17
|
+
EthereumRopsten: '3',
|
|
18
|
+
EthereumRinkeby: '4',
|
|
19
|
+
// EthereumKovan: '42', // currently unsupported by ShapeShift
|
|
22
20
|
// https://github.com/bitcoin/bips/blob/master/bip-0122.mediawiki#definition-of-chain-id
|
|
23
21
|
// chainId uses max length of 32 chars of the genesis block
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
22
|
+
BitcoinMainnet: '000000000019d6689c085ae165831e93',
|
|
23
|
+
BitcoinTestnet: '000000000933ea01ad0ee984209779ba',
|
|
24
|
+
CosmosHubMainnet: 'cosmoshub-4',
|
|
25
|
+
CosmosHubVega: 'vega-testnet',
|
|
26
|
+
OsmosisMainnet: 'osmosis-1',
|
|
27
|
+
OsmosisTestnet: 'osmo-testnet-1'
|
|
28
|
+
};
|
|
31
29
|
const shapeShiftToChainId = Object.freeze({
|
|
32
30
|
[types_1.ChainTypes.Ethereum]: {
|
|
33
|
-
namespace:
|
|
31
|
+
namespace: exports.CHAIN_NAMESPACE.Ethereum,
|
|
34
32
|
reference: {
|
|
35
|
-
[types_1.NetworkTypes.MAINNET]:
|
|
36
|
-
[types_1.NetworkTypes.ETH_ROPSTEN]:
|
|
37
|
-
[types_1.NetworkTypes.ETH_RINKEBY]:
|
|
33
|
+
[types_1.NetworkTypes.MAINNET]: exports.CHAIN_REFERENCE.EthereumMainnet,
|
|
34
|
+
[types_1.NetworkTypes.ETH_ROPSTEN]: exports.CHAIN_REFERENCE.EthereumRopsten,
|
|
35
|
+
[types_1.NetworkTypes.ETH_RINKEBY]: exports.CHAIN_REFERENCE.EthereumRinkeby
|
|
38
36
|
}
|
|
39
37
|
},
|
|
40
38
|
[types_1.ChainTypes.Bitcoin]: {
|
|
41
|
-
namespace:
|
|
39
|
+
namespace: exports.CHAIN_NAMESPACE.Bitcoin,
|
|
42
40
|
reference: {
|
|
43
|
-
[types_1.NetworkTypes.MAINNET]:
|
|
44
|
-
[types_1.NetworkTypes.TESTNET]:
|
|
41
|
+
[types_1.NetworkTypes.MAINNET]: exports.CHAIN_REFERENCE.BitcoinMainnet,
|
|
42
|
+
[types_1.NetworkTypes.TESTNET]: exports.CHAIN_REFERENCE.BitcoinTestnet
|
|
45
43
|
}
|
|
46
44
|
},
|
|
47
45
|
[types_1.ChainTypes.Cosmos]: {
|
|
48
|
-
namespace:
|
|
46
|
+
namespace: exports.CHAIN_NAMESPACE.Cosmos,
|
|
49
47
|
reference: {
|
|
50
|
-
[types_1.NetworkTypes.COSMOSHUB_MAINNET]:
|
|
51
|
-
[types_1.NetworkTypes.COSMOSHUB_VEGA]:
|
|
48
|
+
[types_1.NetworkTypes.COSMOSHUB_MAINNET]: exports.CHAIN_REFERENCE.CosmosHubMainnet,
|
|
49
|
+
[types_1.NetworkTypes.COSMOSHUB_VEGA]: exports.CHAIN_REFERENCE.CosmosHubVega
|
|
52
50
|
}
|
|
53
51
|
},
|
|
54
52
|
[types_1.ChainTypes.Osmosis]: {
|
|
55
|
-
namespace:
|
|
53
|
+
namespace: exports.CHAIN_NAMESPACE.Cosmos,
|
|
56
54
|
reference: {
|
|
57
|
-
[types_1.NetworkTypes.OSMOSIS_MAINNET]:
|
|
58
|
-
[types_1.NetworkTypes.OSMOSIS_TESTNET]:
|
|
55
|
+
[types_1.NetworkTypes.OSMOSIS_MAINNET]: exports.CHAIN_REFERENCE.OsmosisMainnet,
|
|
56
|
+
[types_1.NetworkTypes.OSMOSIS_TESTNET]: exports.CHAIN_REFERENCE.OsmosisTestnet
|
|
59
57
|
}
|
|
60
58
|
}
|
|
61
59
|
});
|
|
@@ -118,18 +116,18 @@ const fromChainId = (chainId) => {
|
|
|
118
116
|
throw new Error(`fromChainId: error parsing chainId, chain: ${c}, network: ${n}`);
|
|
119
117
|
}
|
|
120
118
|
switch (c) {
|
|
121
|
-
case
|
|
119
|
+
case exports.CHAIN_NAMESPACE.Cosmos: {
|
|
122
120
|
switch (n) {
|
|
123
|
-
case
|
|
121
|
+
case exports.CHAIN_REFERENCE.CosmosHubMainnet: {
|
|
124
122
|
return { chain: types_1.ChainTypes.Cosmos, network: types_1.NetworkTypes.COSMOSHUB_MAINNET };
|
|
125
123
|
}
|
|
126
|
-
case
|
|
124
|
+
case exports.CHAIN_REFERENCE.CosmosHubVega: {
|
|
127
125
|
return { chain: types_1.ChainTypes.Cosmos, network: types_1.NetworkTypes.COSMOSHUB_VEGA };
|
|
128
126
|
}
|
|
129
|
-
case
|
|
127
|
+
case exports.CHAIN_REFERENCE.OsmosisMainnet: {
|
|
130
128
|
return { chain: types_1.ChainTypes.Osmosis, network: types_1.NetworkTypes.OSMOSIS_MAINNET };
|
|
131
129
|
}
|
|
132
|
-
case
|
|
130
|
+
case exports.CHAIN_REFERENCE.OsmosisTestnet: {
|
|
133
131
|
return { chain: types_1.ChainTypes.Osmosis, network: types_1.NetworkTypes.OSMOSIS_TESTNET };
|
|
134
132
|
}
|
|
135
133
|
default: {
|
|
@@ -137,18 +135,18 @@ const fromChainId = (chainId) => {
|
|
|
137
135
|
}
|
|
138
136
|
}
|
|
139
137
|
}
|
|
140
|
-
case
|
|
138
|
+
case exports.CHAIN_NAMESPACE.Ethereum: {
|
|
141
139
|
const chain = types_1.ChainTypes.Ethereum;
|
|
142
140
|
switch (n) {
|
|
143
|
-
case
|
|
141
|
+
case exports.CHAIN_REFERENCE.EthereumMainnet: {
|
|
144
142
|
const network = types_1.NetworkTypes.MAINNET;
|
|
145
143
|
return { chain, network };
|
|
146
144
|
}
|
|
147
|
-
case
|
|
145
|
+
case exports.CHAIN_REFERENCE.EthereumRopsten: {
|
|
148
146
|
const network = types_1.NetworkTypes.ETH_ROPSTEN;
|
|
149
147
|
return { chain, network };
|
|
150
148
|
}
|
|
151
|
-
case
|
|
149
|
+
case exports.CHAIN_REFERENCE.EthereumRinkeby: {
|
|
152
150
|
const network = types_1.NetworkTypes.ETH_RINKEBY;
|
|
153
151
|
return { chain, network };
|
|
154
152
|
}
|
|
@@ -157,14 +155,14 @@ const fromChainId = (chainId) => {
|
|
|
157
155
|
}
|
|
158
156
|
}
|
|
159
157
|
}
|
|
160
|
-
case
|
|
158
|
+
case exports.CHAIN_NAMESPACE.Bitcoin: {
|
|
161
159
|
const chain = types_1.ChainTypes.Bitcoin;
|
|
162
160
|
switch (n) {
|
|
163
|
-
case
|
|
161
|
+
case exports.CHAIN_REFERENCE.BitcoinMainnet: {
|
|
164
162
|
const network = types_1.NetworkTypes.MAINNET;
|
|
165
163
|
return { chain, network };
|
|
166
164
|
}
|
|
167
|
-
case
|
|
165
|
+
case exports.CHAIN_REFERENCE.BitcoinTestnet: {
|
|
168
166
|
const network = types_1.NetworkTypes.TESTNET;
|
|
169
167
|
return { chain, network };
|
|
170
168
|
}
|
|
@@ -183,29 +181,29 @@ const isChainId = (chainId) => {
|
|
|
183
181
|
throw new Error(`isChainId: error parsing chainId, chain: ${c}, network: ${n}`);
|
|
184
182
|
}
|
|
185
183
|
switch (c) {
|
|
186
|
-
case
|
|
184
|
+
case exports.CHAIN_NAMESPACE.Cosmos: {
|
|
187
185
|
switch (n) {
|
|
188
|
-
case
|
|
189
|
-
case
|
|
190
|
-
case
|
|
191
|
-
case
|
|
186
|
+
case exports.CHAIN_REFERENCE.CosmosHubMainnet:
|
|
187
|
+
case exports.CHAIN_REFERENCE.CosmosHubVega:
|
|
188
|
+
case exports.CHAIN_REFERENCE.OsmosisMainnet:
|
|
189
|
+
case exports.CHAIN_REFERENCE.OsmosisTestnet:
|
|
192
190
|
return true;
|
|
193
191
|
}
|
|
194
192
|
break;
|
|
195
193
|
}
|
|
196
|
-
case
|
|
194
|
+
case exports.CHAIN_NAMESPACE.Ethereum: {
|
|
197
195
|
switch (n) {
|
|
198
|
-
case
|
|
199
|
-
case
|
|
200
|
-
case
|
|
196
|
+
case exports.CHAIN_REFERENCE.EthereumMainnet:
|
|
197
|
+
case exports.CHAIN_REFERENCE.EthereumRopsten:
|
|
198
|
+
case exports.CHAIN_REFERENCE.EthereumRinkeby:
|
|
201
199
|
return true;
|
|
202
200
|
}
|
|
203
201
|
break;
|
|
204
202
|
}
|
|
205
|
-
case
|
|
203
|
+
case exports.CHAIN_NAMESPACE.Bitcoin: {
|
|
206
204
|
switch (n) {
|
|
207
|
-
case
|
|
208
|
-
case
|
|
205
|
+
case exports.CHAIN_REFERENCE.BitcoinMainnet:
|
|
206
|
+
case exports.CHAIN_REFERENCE.BitcoinTestnet:
|
|
209
207
|
return true;
|
|
210
208
|
}
|
|
211
209
|
break;
|
|
@@ -215,21 +213,21 @@ const isChainId = (chainId) => {
|
|
|
215
213
|
};
|
|
216
214
|
exports.isChainId = isChainId;
|
|
217
215
|
exports.chainReferenceToNetworkType = Object.freeze({
|
|
218
|
-
[
|
|
219
|
-
[
|
|
220
|
-
[
|
|
221
|
-
[
|
|
222
|
-
[
|
|
223
|
-
[
|
|
224
|
-
[
|
|
225
|
-
[
|
|
226
|
-
[
|
|
216
|
+
[exports.CHAIN_REFERENCE.BitcoinMainnet]: types_1.NetworkTypes.MAINNET,
|
|
217
|
+
[exports.CHAIN_REFERENCE.BitcoinTestnet]: types_1.NetworkTypes.TESTNET,
|
|
218
|
+
[exports.CHAIN_REFERENCE.EthereumMainnet]: types_1.NetworkTypes.MAINNET,
|
|
219
|
+
[exports.CHAIN_REFERENCE.EthereumRopsten]: types_1.NetworkTypes.ETH_ROPSTEN,
|
|
220
|
+
[exports.CHAIN_REFERENCE.EthereumRinkeby]: types_1.NetworkTypes.ETH_RINKEBY,
|
|
221
|
+
[exports.CHAIN_REFERENCE.CosmosHubMainnet]: types_1.NetworkTypes.COSMOSHUB_MAINNET,
|
|
222
|
+
[exports.CHAIN_REFERENCE.CosmosHubVega]: types_1.NetworkTypes.COSMOSHUB_VEGA,
|
|
223
|
+
[exports.CHAIN_REFERENCE.OsmosisMainnet]: types_1.NetworkTypes.OSMOSIS_MAINNET,
|
|
224
|
+
[exports.CHAIN_REFERENCE.OsmosisTestnet]: types_1.NetworkTypes.OSMOSIS_TESTNET
|
|
227
225
|
});
|
|
228
226
|
exports.networkTypeToChainReference = (0, invert_1.default)(exports.chainReferenceToNetworkType);
|
|
229
227
|
exports.chainNamespaceToChainType = Object.freeze({
|
|
230
|
-
[
|
|
231
|
-
[
|
|
232
|
-
[
|
|
228
|
+
[exports.CHAIN_NAMESPACE.Bitcoin]: types_1.ChainTypes.Bitcoin,
|
|
229
|
+
[exports.CHAIN_NAMESPACE.Ethereum]: types_1.ChainTypes.Ethereum,
|
|
230
|
+
[exports.CHAIN_NAMESPACE.Cosmos]: types_1.ChainTypes.Cosmos
|
|
233
231
|
});
|
|
234
232
|
exports.toCAIP2 = exports.toChainId;
|
|
235
233
|
exports.fromCAIP2 = exports.fromChainId;
|