@shapeshiftoss/caip 8.16.4-alpha.1 → 8.16.4

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.
Files changed (192) hide show
  1. package/package.json +1 -1
  2. package/dist/cjs/.tsbuildinfo +0 -1
  3. package/dist/cjs/accountId/accountId.d.ts +0 -29
  4. package/dist/cjs/accountId/accountId.js +0 -44
  5. package/dist/cjs/accountId/accountId.test.d.ts +0 -1
  6. package/dist/cjs/accountId/accountId.test.js +0 -109
  7. package/dist/cjs/adapters/banxa/index.d.ts +0 -15
  8. package/dist/cjs/adapters/banxa/index.js +0 -153
  9. package/dist/cjs/adapters/coinbase/generate.d.ts +0 -1
  10. package/dist/cjs/adapters/coinbase/generate.js +0 -9
  11. package/dist/cjs/adapters/coinbase/generated/adapter.json +0 -153
  12. package/dist/cjs/adapters/coinbase/generated/index.d.ts +0 -2
  13. package/dist/cjs/adapters/coinbase/generated/index.js +0 -8
  14. package/dist/cjs/adapters/coinbase/index.d.ts +0 -3
  15. package/dist/cjs/adapters/coinbase/index.js +0 -16
  16. package/dist/cjs/adapters/coinbase/utils.d.ts +0 -12
  17. package/dist/cjs/adapters/coinbase/utils.js +0 -55
  18. package/dist/cjs/adapters/coincap/generate.d.ts +0 -1
  19. package/dist/cjs/adapters/coincap/generate.js +0 -10
  20. package/dist/cjs/adapters/coincap/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +0 -1
  21. package/dist/cjs/adapters/coincap/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +0 -1
  22. package/dist/cjs/adapters/coincap/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +0 -1
  23. package/dist/cjs/adapters/coincap/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +0 -1
  24. package/dist/cjs/adapters/coincap/generated/cosmos_cosmoshub-4/adapter.json +0 -1
  25. package/dist/cjs/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +0 -1
  26. package/dist/cjs/adapters/coincap/generated/eip155_1/adapter.json +0 -1
  27. package/dist/cjs/adapters/coincap/generated/eip155_10/adapter.json +0 -1
  28. package/dist/cjs/adapters/coincap/generated/eip155_137/adapter.json +0 -1
  29. package/dist/cjs/adapters/coincap/generated/eip155_42161/adapter.json +0 -1
  30. package/dist/cjs/adapters/coincap/generated/eip155_43114/adapter.json +0 -1
  31. package/dist/cjs/adapters/coincap/generated/eip155_56/adapter.json +0 -1
  32. package/dist/cjs/adapters/coincap/generated/eip155_8453/adapter.json +0 -1
  33. package/dist/cjs/adapters/coincap/generated/index.d.ts +0 -15
  34. package/dist/cjs/adapters/coincap/generated/index.js +0 -34
  35. package/dist/cjs/adapters/coincap/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +0 -1
  36. package/dist/cjs/adapters/coincap/index.d.ts +0 -4
  37. package/dist/cjs/adapters/coincap/index.js +0 -44
  38. package/dist/cjs/adapters/coincap/index.test.d.ts +0 -1
  39. package/dist/cjs/adapters/coincap/index.test.js +0 -90
  40. package/dist/cjs/adapters/coincap/utils.d.ts +0 -24
  41. package/dist/cjs/adapters/coincap/utils.js +0 -146
  42. package/dist/cjs/adapters/coincap/utils.test.d.ts +0 -4
  43. package/dist/cjs/adapters/coincap/utils.test.js +0 -173
  44. package/dist/cjs/adapters/coingecko/generate.d.ts +0 -1
  45. package/dist/cjs/adapters/coingecko/generate.js +0 -10
  46. package/dist/cjs/adapters/coingecko/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +0 -1
  47. package/dist/cjs/adapters/coingecko/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +0 -1
  48. package/dist/cjs/adapters/coingecko/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +0 -1
  49. package/dist/cjs/adapters/coingecko/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +0 -1
  50. package/dist/cjs/adapters/coingecko/generated/cosmos_cosmoshub-4/adapter.json +0 -1
  51. package/dist/cjs/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +0 -1
  52. package/dist/cjs/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +0 -1
  53. package/dist/cjs/adapters/coingecko/generated/eip155_1/adapter.json +0 -1
  54. package/dist/cjs/adapters/coingecko/generated/eip155_10/adapter.json +0 -1
  55. package/dist/cjs/adapters/coingecko/generated/eip155_100/adapter.json +0 -1
  56. package/dist/cjs/adapters/coingecko/generated/eip155_137/adapter.json +0 -1
  57. package/dist/cjs/adapters/coingecko/generated/eip155_42161/adapter.json +0 -1
  58. package/dist/cjs/adapters/coingecko/generated/eip155_42170/adapter.json +0 -1
  59. package/dist/cjs/adapters/coingecko/generated/eip155_43114/adapter.json +0 -1
  60. package/dist/cjs/adapters/coingecko/generated/eip155_56/adapter.json +0 -1
  61. package/dist/cjs/adapters/coingecko/generated/eip155_8453/adapter.json +0 -1
  62. package/dist/cjs/adapters/coingecko/generated/index.d.ts +0 -18
  63. package/dist/cjs/adapters/coingecko/generated/index.js +0 -40
  64. package/dist/cjs/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +0 -1
  65. package/dist/cjs/adapters/coingecko/index.d.ts +0 -26
  66. package/dist/cjs/adapters/coingecko/index.js +0 -163
  67. package/dist/cjs/adapters/coingecko/index.test.d.ts +0 -1
  68. package/dist/cjs/adapters/coingecko/index.test.js +0 -276
  69. package/dist/cjs/adapters/coingecko/utils.d.ts +0 -11
  70. package/dist/cjs/adapters/coingecko/utils.js +0 -190
  71. package/dist/cjs/adapters/coingecko/utils.test.d.ts +0 -1
  72. package/dist/cjs/adapters/coingecko/utils.test.js +0 -193
  73. package/dist/cjs/adapters/index.d.ts +0 -6
  74. package/dist/cjs/adapters/index.js +0 -22
  75. package/dist/cjs/adapters/mtpelerin/index.d.ts +0 -10
  76. package/dist/cjs/adapters/mtpelerin/index.js +0 -127
  77. package/dist/cjs/adapters/onramper/index.d.ts +0 -6
  78. package/dist/cjs/adapters/onramper/index.js +0 -39
  79. package/dist/cjs/assetId/assetId.d.ts +0 -36
  80. package/dist/cjs/assetId/assetId.js +0 -120
  81. package/dist/cjs/assetId/assetId.test.d.ts +0 -1
  82. package/dist/cjs/assetId/assetId.test.js +0 -324
  83. package/dist/cjs/chainId/chainId.d.ts +0 -20
  84. package/dist/cjs/chainId/chainId.js +0 -25
  85. package/dist/cjs/chainId/chainId.test.d.ts +0 -1
  86. package/dist/cjs/chainId/chainId.test.js +0 -90
  87. package/dist/cjs/constants.d.ts +0 -118
  88. package/dist/cjs/constants.js +0 -167
  89. package/dist/cjs/index.d.ts +0 -7
  90. package/dist/cjs/index.js +0 -36
  91. package/dist/cjs/package.json +0 -1
  92. package/dist/cjs/typeGuards.d.ts +0 -16
  93. package/dist/cjs/typeGuards.js +0 -56
  94. package/dist/cjs/utils.d.ts +0 -33
  95. package/dist/cjs/utils.js +0 -56
  96. package/dist/cjs/utils.test.d.ts +0 -1
  97. package/dist/cjs/utils.test.js +0 -160
  98. package/dist/esm/.tsbuildinfo +0 -1
  99. package/dist/esm/accountId/accountId.d.ts +0 -29
  100. package/dist/esm/accountId/accountId.js +0 -39
  101. package/dist/esm/accountId/accountId.test.d.ts +0 -1
  102. package/dist/esm/accountId/accountId.test.js +0 -107
  103. package/dist/esm/adapters/banxa/index.d.ts +0 -15
  104. package/dist/esm/adapters/banxa/index.js +0 -143
  105. package/dist/esm/adapters/coinbase/generate.d.ts +0 -1
  106. package/dist/esm/adapters/coinbase/generate.js +0 -7
  107. package/dist/esm/adapters/coinbase/generated/adapter.json +0 -153
  108. package/dist/esm/adapters/coinbase/generated/index.d.ts +0 -2
  109. package/dist/esm/adapters/coinbase/generated/index.js +0 -2
  110. package/dist/esm/adapters/coinbase/index.d.ts +0 -3
  111. package/dist/esm/adapters/coinbase/index.js +0 -8
  112. package/dist/esm/adapters/coinbase/utils.d.ts +0 -12
  113. package/dist/esm/adapters/coinbase/utils.js +0 -46
  114. package/dist/esm/adapters/coincap/generate.d.ts +0 -1
  115. package/dist/esm/adapters/coincap/generate.js +0 -8
  116. package/dist/esm/adapters/coincap/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +0 -1
  117. package/dist/esm/adapters/coincap/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +0 -1
  118. package/dist/esm/adapters/coincap/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +0 -1
  119. package/dist/esm/adapters/coincap/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +0 -1
  120. package/dist/esm/adapters/coincap/generated/cosmos_cosmoshub-4/adapter.json +0 -1
  121. package/dist/esm/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +0 -1
  122. package/dist/esm/adapters/coincap/generated/eip155_1/adapter.json +0 -1
  123. package/dist/esm/adapters/coincap/generated/eip155_10/adapter.json +0 -1
  124. package/dist/esm/adapters/coincap/generated/eip155_137/adapter.json +0 -1
  125. package/dist/esm/adapters/coincap/generated/eip155_42161/adapter.json +0 -1
  126. package/dist/esm/adapters/coincap/generated/eip155_43114/adapter.json +0 -1
  127. package/dist/esm/adapters/coincap/generated/eip155_56/adapter.json +0 -1
  128. package/dist/esm/adapters/coincap/generated/eip155_8453/adapter.json +0 -1
  129. package/dist/esm/adapters/coincap/generated/index.d.ts +0 -15
  130. package/dist/esm/adapters/coincap/generated/index.js +0 -15
  131. package/dist/esm/adapters/coincap/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +0 -1
  132. package/dist/esm/adapters/coincap/index.d.ts +0 -4
  133. package/dist/esm/adapters/coincap/index.js +0 -13
  134. package/dist/esm/adapters/coincap/index.test.d.ts +0 -1
  135. package/dist/esm/adapters/coincap/index.test.js +0 -88
  136. package/dist/esm/adapters/coincap/utils.d.ts +0 -24
  137. package/dist/esm/adapters/coincap/utils.js +0 -135
  138. package/dist/esm/adapters/coincap/utils.test.d.ts +0 -4
  139. package/dist/esm/adapters/coincap/utils.test.js +0 -168
  140. package/dist/esm/adapters/coingecko/generate.d.ts +0 -1
  141. package/dist/esm/adapters/coingecko/generate.js +0 -8
  142. package/dist/esm/adapters/coingecko/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +0 -1
  143. package/dist/esm/adapters/coingecko/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +0 -1
  144. package/dist/esm/adapters/coingecko/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +0 -1
  145. package/dist/esm/adapters/coingecko/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +0 -1
  146. package/dist/esm/adapters/coingecko/generated/cosmos_cosmoshub-4/adapter.json +0 -1
  147. package/dist/esm/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +0 -1
  148. package/dist/esm/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +0 -1
  149. package/dist/esm/adapters/coingecko/generated/eip155_1/adapter.json +0 -1
  150. package/dist/esm/adapters/coingecko/generated/eip155_10/adapter.json +0 -1
  151. package/dist/esm/adapters/coingecko/generated/eip155_100/adapter.json +0 -1
  152. package/dist/esm/adapters/coingecko/generated/eip155_137/adapter.json +0 -1
  153. package/dist/esm/adapters/coingecko/generated/eip155_42161/adapter.json +0 -1
  154. package/dist/esm/adapters/coingecko/generated/eip155_42170/adapter.json +0 -1
  155. package/dist/esm/adapters/coingecko/generated/eip155_43114/adapter.json +0 -1
  156. package/dist/esm/adapters/coingecko/generated/eip155_56/adapter.json +0 -1
  157. package/dist/esm/adapters/coingecko/generated/eip155_8453/adapter.json +0 -1
  158. package/dist/esm/adapters/coingecko/generated/index.d.ts +0 -18
  159. package/dist/esm/adapters/coingecko/generated/index.js +0 -18
  160. package/dist/esm/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +0 -1
  161. package/dist/esm/adapters/coingecko/index.d.ts +0 -26
  162. package/dist/esm/adapters/coingecko/index.js +0 -127
  163. package/dist/esm/adapters/coingecko/index.test.d.ts +0 -1
  164. package/dist/esm/adapters/coingecko/index.test.js +0 -274
  165. package/dist/esm/adapters/coingecko/utils.d.ts +0 -11
  166. package/dist/esm/adapters/coingecko/utils.js +0 -181
  167. package/dist/esm/adapters/coingecko/utils.test.d.ts +0 -1
  168. package/dist/esm/adapters/coingecko/utils.test.js +0 -188
  169. package/dist/esm/adapters/index.d.ts +0 -6
  170. package/dist/esm/adapters/index.js +0 -6
  171. package/dist/esm/adapters/mtpelerin/index.d.ts +0 -10
  172. package/dist/esm/adapters/mtpelerin/index.js +0 -121
  173. package/dist/esm/adapters/onramper/index.d.ts +0 -6
  174. package/dist/esm/adapters/onramper/index.js +0 -31
  175. package/dist/esm/assetId/assetId.d.ts +0 -36
  176. package/dist/esm/assetId/assetId.js +0 -114
  177. package/dist/esm/assetId/assetId.test.d.ts +0 -1
  178. package/dist/esm/assetId/assetId.test.js +0 -322
  179. package/dist/esm/chainId/chainId.d.ts +0 -20
  180. package/dist/esm/chainId/chainId.js +0 -20
  181. package/dist/esm/chainId/chainId.test.d.ts +0 -1
  182. package/dist/esm/chainId/chainId.test.js +0 -88
  183. package/dist/esm/constants.d.ts +0 -118
  184. package/dist/esm/constants.js +0 -163
  185. package/dist/esm/index.d.ts +0 -7
  186. package/dist/esm/index.js +0 -7
  187. package/dist/esm/typeGuards.d.ts +0 -16
  188. package/dist/esm/typeGuards.js +0 -44
  189. package/dist/esm/utils.d.ts +0 -33
  190. package/dist/esm/utils.js +0 -26
  191. package/dist/esm/utils.test.d.ts +0 -1
  192. package/dist/esm/utils.test.js +0 -158
@@ -1,322 +0,0 @@
1
- import { omit } from 'lodash';
2
- import { describe, expect, it } from 'vitest';
3
- import { toChainId } from '../chainId/chainId.js';
4
- import { ASSET_REFERENCE, CHAIN_NAMESPACE, CHAIN_REFERENCE } from '../constants.js';
5
- import { fromAssetId, fromCAIP19, toAssetId, toCAIP19 } from './assetId.js';
6
- describe('assetId', () => {
7
- it('should have matching CAIP19 aliases', () => {
8
- expect(toAssetId).toEqual(toCAIP19);
9
- expect(fromAssetId).toEqual(fromCAIP19);
10
- });
11
- describe('toAssetId', () => {
12
- describe('toAssetId(fromAssetId())', () => {
13
- it.each([
14
- ['eip155:1/slip44:60'],
15
- ['eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d'],
16
- ['bip122:000000000019d6689c085ae165831e93/slip44:0'],
17
- ['cosmos:cosmoshub-4/slip44:118'],
18
- ['cosmos:thorchain-1/slip44:tcy'],
19
- ])('returns an AssetId from the result of fromAssetId for %s', assetId => {
20
- const result = fromAssetId(assetId);
21
- expect(toAssetId(omit(result, 'chainId'))).toBe(assetId);
22
- expect(toAssetId(omit(result, ['chainNamespace', 'chainReference']))).toBe(assetId);
23
- });
24
- });
25
- it('can make eth AssetId on mainnet', () => {
26
- const chainNamespace = CHAIN_NAMESPACE.Evm;
27
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
28
- const assetIdArgSuperset = {
29
- chainNamespace,
30
- chainReference,
31
- assetNamespace: 'slip44',
32
- assetReference: ASSET_REFERENCE.Ethereum,
33
- chainId: toChainId({ chainNamespace, chainReference }),
34
- };
35
- const expected = 'eip155:1/slip44:60';
36
- expect(toAssetId(omit(assetIdArgSuperset, 'chainId'))).toEqual(expected);
37
- expect(toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toEqual(expected);
38
- });
39
- it('throws with invalid eth network', () => {
40
- const chainNamespace = CHAIN_NAMESPACE.Evm;
41
- const chainReference = CHAIN_REFERENCE.CosmosHubMainnet;
42
- const assetIdArgSuperset = {
43
- chainNamespace,
44
- chainReference,
45
- assetNamespace: 'slip44',
46
- assetReference: ASSET_REFERENCE.Ethereum,
47
- chainId: `${chainNamespace}:${chainReference}`,
48
- };
49
- expect(() => toAssetId(omit(assetIdArgSuperset, 'chainId'))).toThrow();
50
- expect(() => toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toThrow();
51
- });
52
- it('throws with invalid namespace', () => {
53
- const chainNamespace = CHAIN_NAMESPACE.Evm;
54
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
55
- const assetIdArgSuperset = {
56
- chainNamespace,
57
- chainReference,
58
- assetNamespace: 'bad',
59
- assetReference: ASSET_REFERENCE.Ethereum,
60
- chainId: `${chainNamespace}:${chainReference}`,
61
- };
62
- expect(() => toAssetId(omit(assetIdArgSuperset, 'chainId'))).toThrow();
63
- expect(() => toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toThrow();
64
- });
65
- it('can make Cosmos AssetId on CosmosHub mainnet', () => {
66
- const chainNamespace = CHAIN_NAMESPACE.CosmosSdk;
67
- const chainReference = CHAIN_REFERENCE.CosmosHubMainnet;
68
- const assetIdArgSuperset = {
69
- chainNamespace,
70
- chainReference,
71
- assetNamespace: 'slip44',
72
- assetReference: ASSET_REFERENCE.Cosmos,
73
- chainId: toChainId({ chainNamespace, chainReference }),
74
- };
75
- const expected = 'cosmos:cosmoshub-4/slip44:118';
76
- expect(toAssetId(omit(assetIdArgSuperset, 'chainId'))).toEqual(expected);
77
- expect(toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toEqual(expected);
78
- });
79
- it('throws with invalid Cosmos network', () => {
80
- const chainNamespace = CHAIN_NAMESPACE.CosmosSdk;
81
- const chainReference = CHAIN_REFERENCE.BitcoinMainnet;
82
- const assetIdArgSuperset = {
83
- chainNamespace,
84
- chainReference,
85
- assetNamespace: 'slip44',
86
- assetReference: ASSET_REFERENCE.Cosmos,
87
- chainId: `${chainNamespace}:${chainReference}`,
88
- };
89
- expect(() => toAssetId(omit(assetIdArgSuperset, 'chainId'))).toThrow();
90
- expect(() => toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toThrow();
91
- });
92
- it('throws with invalid Cosmos slip44 reference', () => {
93
- const chainNamespace = CHAIN_NAMESPACE.CosmosSdk;
94
- const chainReference = CHAIN_REFERENCE.CosmosHubMainnet;
95
- const assetIdArgSuperset = {
96
- chainNamespace,
97
- chainReference,
98
- assetNamespace: 'slip44',
99
- assetReference: 'bad',
100
- chainId: `${chainNamespace}:${chainReference}`,
101
- };
102
- expect(() => toAssetId(omit(assetIdArgSuperset, 'chainId'))).toThrow();
103
- expect(() => toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toThrow();
104
- });
105
- it('throws with invalid btc network', () => {
106
- const chainNamespace = CHAIN_NAMESPACE.Utxo;
107
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
108
- const assetIdArgSuperset = {
109
- chainNamespace,
110
- chainReference,
111
- assetNamespace: 'slip44',
112
- assetReference: ASSET_REFERENCE.Bitcoin,
113
- chainId: `${chainNamespace}:${chainReference}`,
114
- };
115
- expect(() => toAssetId(omit(assetIdArgSuperset, 'chainId'))).toThrow();
116
- expect(() => toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toThrow();
117
- });
118
- it('can make FOX AssetId on mainnet', () => {
119
- const chainNamespace = CHAIN_NAMESPACE.Evm;
120
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
121
- const assetIdArgSuperset = {
122
- chainNamespace,
123
- chainReference,
124
- assetNamespace: 'erc20',
125
- assetReference: '0xc770eefad204b5180df6a14ee197d99d808ee52d',
126
- chainId: `${chainNamespace}:${chainReference}`,
127
- };
128
- const expected = 'eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d';
129
- expect(toAssetId(omit(assetIdArgSuperset, 'chainId'))).toEqual(expected);
130
- expect(toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toEqual(expected);
131
- });
132
- it('should lower case ERC20 asset references', () => {
133
- const chainNamespace = CHAIN_NAMESPACE.Evm;
134
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
135
- const assetIdArgSuperset = {
136
- chainNamespace,
137
- chainReference,
138
- assetNamespace: 'erc20',
139
- assetReference: '0xc770EEfAd204B5180dF6a14Ee197D99d808ee52d',
140
- chainId: `${chainNamespace}:${chainReference}`,
141
- };
142
- const expected = 'eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d';
143
- expect(toAssetId(omit(assetIdArgSuperset, 'chainId'))).toEqual(expected);
144
- expect(toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toEqual(expected);
145
- });
146
- it('should lower case ERC721 asset references', () => {
147
- const chainNamespace = CHAIN_NAMESPACE.Evm;
148
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
149
- const assetIdArgSuperset = {
150
- chainNamespace,
151
- chainReference,
152
- assetNamespace: 'erc721',
153
- assetReference: '0xc770EEfAd204B5180dF6a14Ee197D99d808ee52d/12345',
154
- chainId: `${chainNamespace}:${chainReference}`,
155
- };
156
- const expected = 'eip155:1/erc721:0xc770eefad204b5180df6a14ee197d99d808ee52d/12345';
157
- expect(toAssetId(omit(assetIdArgSuperset, 'chainId'))).toEqual(expected);
158
- expect(toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toEqual(expected);
159
- });
160
- it('throws with invalid assetReference length', () => {
161
- const chainNamespace = CHAIN_NAMESPACE.Evm;
162
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
163
- const assetIdArgSuperset = {
164
- chainNamespace,
165
- chainReference,
166
- assetNamespace: 'erc20',
167
- assetReference: '0xfoo',
168
- chainId: `${chainNamespace}:${chainReference}`,
169
- };
170
- expect(() => toAssetId(omit(assetIdArgSuperset, 'chainId'))).toThrow();
171
- expect(() => toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toThrow();
172
- });
173
- it('throws with no assetReference string', () => {
174
- const chainNamespace = CHAIN_NAMESPACE.Evm;
175
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
176
- const assetIdArgSuperset = {
177
- chainNamespace,
178
- chainReference,
179
- assetNamespace: 'erc20',
180
- assetReference: '',
181
- chainId: `${chainNamespace}:${chainReference}`,
182
- };
183
- expect(() => toAssetId(omit(assetIdArgSuperset, 'chainId'))).toThrow();
184
- expect(() => toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toThrow();
185
- });
186
- it('throws with invalid assetReference string', () => {
187
- const chainNamespace = CHAIN_NAMESPACE.Evm;
188
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
189
- const assetIdArgSuperset = {
190
- chainNamespace,
191
- chainReference,
192
- assetNamespace: 'erc20',
193
- assetReference: 'gm',
194
- chainId: `${chainNamespace}:${chainReference}`,
195
- };
196
- expect(() => toAssetId(omit(assetIdArgSuperset, 'chainId'))).toThrow();
197
- expect(() => toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toThrow();
198
- });
199
- it('throws if no asset namespace provided', () => {
200
- const chainNamespace = CHAIN_NAMESPACE.Evm;
201
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
202
- const assetIdArgSuperset = {
203
- chainNamespace,
204
- chainReference,
205
- assetNamespace: '',
206
- assetReference: '0xdef1cafe',
207
- chainId: `${chainNamespace}:${chainReference}`,
208
- };
209
- expect(() => toAssetId(omit(assetIdArgSuperset, 'chainId'))).toThrow();
210
- expect(() => toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toThrow();
211
- });
212
- it('can make bitcoin AssetId on mainnet', () => {
213
- const chainNamespace = CHAIN_NAMESPACE.Utxo;
214
- const chainReference = CHAIN_REFERENCE.BitcoinMainnet;
215
- const assetIdArgSuperset = {
216
- chainNamespace,
217
- chainReference,
218
- assetNamespace: 'slip44',
219
- assetReference: ASSET_REFERENCE.Bitcoin,
220
- chainId: `${chainNamespace}:${chainReference}`,
221
- };
222
- const expected = 'bip122:000000000019d6689c085ae165831e93/slip44:0';
223
- expect(toAssetId(omit(assetIdArgSuperset, 'chainId'))).toEqual(expected);
224
- expect(toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toEqual(expected);
225
- });
226
- });
227
- describe('fromAssetId', () => {
228
- describe('fromAssetId(toAssetId())', () => {
229
- const slip44 = 'slip44';
230
- const erc20 = 'erc20';
231
- it.each([
232
- [CHAIN_NAMESPACE.Utxo, CHAIN_REFERENCE.BitcoinMainnet, slip44, ASSET_REFERENCE.Bitcoin],
233
- [CHAIN_NAMESPACE.Evm, CHAIN_REFERENCE.EthereumMainnet, slip44, ASSET_REFERENCE.Ethereum],
234
- [
235
- CHAIN_NAMESPACE.Evm,
236
- CHAIN_REFERENCE.EthereumMainnet,
237
- erc20,
238
- '0xc770eefad204b5180df6a14ee197d99d808ee52d',
239
- ],
240
- [
241
- CHAIN_NAMESPACE.CosmosSdk,
242
- CHAIN_REFERENCE.CosmosHubMainnet,
243
- slip44,
244
- ASSET_REFERENCE.Cosmos,
245
- ],
246
- ])('returns a AssetId from the result of fromAssetId for %s', (chainNamespace, chainReference, assetNamespace, assetReference) => {
247
- expect(fromAssetId(toAssetId({ chainNamespace, chainReference, assetNamespace, assetReference }))).toStrictEqual({
248
- chainNamespace,
249
- chainReference,
250
- assetReference,
251
- assetNamespace,
252
- chainId: toChainId({ chainNamespace, chainReference }),
253
- });
254
- });
255
- });
256
- it('can return chain, network from eth AssetId on mainnet', () => {
257
- const AssetId = 'eip155:1/slip44:60';
258
- const { chainId, chainReference, chainNamespace, assetNamespace, assetReference } = fromAssetId(AssetId);
259
- expect(chainNamespace).toEqual(CHAIN_NAMESPACE.Evm);
260
- expect(chainReference).toEqual(CHAIN_REFERENCE.EthereumMainnet);
261
- expect(chainId).toEqual(toChainId({ chainNamespace, chainReference }));
262
- expect(assetNamespace).toEqual('slip44');
263
- expect(assetReference).toEqual(ASSET_REFERENCE.Ethereum);
264
- });
265
- it('can return chain, network from bitcoin AssetId on mainnet', () => {
266
- const AssetId = 'bip122:000000000019d6689c085ae165831e93/slip44:0';
267
- const { chainId, chainReference, chainNamespace, assetNamespace, assetReference } = fromAssetId(AssetId);
268
- expect(chainNamespace).toEqual(CHAIN_NAMESPACE.Utxo);
269
- expect(chainReference).toEqual(CHAIN_REFERENCE.BitcoinMainnet);
270
- expect(chainId).toEqual(toChainId({ chainNamespace, chainReference }));
271
- expect(assetNamespace).toEqual('slip44');
272
- expect(assetReference).toEqual(ASSET_REFERENCE.Bitcoin);
273
- });
274
- it('can return chainId, chainReference, chainNamespace, assetNamespace, assetReference from FOX AssetId on mainnet', () => {
275
- const AssetId = 'eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d';
276
- const { chainId, chainReference, chainNamespace, assetNamespace, assetReference } = fromAssetId(AssetId);
277
- expect(chainNamespace).toEqual(CHAIN_NAMESPACE.Evm);
278
- expect(chainReference).toEqual(CHAIN_REFERENCE.EthereumMainnet);
279
- expect(chainId).toEqual(toChainId({ chainNamespace, chainReference }));
280
- expect(assetNamespace).toEqual('erc20');
281
- expect(assetReference).toEqual('0xc770eefad204b5180df6a14ee197d99d808ee52d');
282
- });
283
- it('should lower case assetReference for assetNamespace ERC20', () => {
284
- const AssetId = 'eip155:1/erc20:0xc770EEfAd204B5180dF6a14Ee197D99d808ee52d';
285
- const { chainId, chainReference, chainNamespace, assetNamespace, assetReference } = fromAssetId(AssetId);
286
- expect(chainNamespace).toEqual(CHAIN_NAMESPACE.Evm);
287
- expect(chainReference).toEqual(CHAIN_REFERENCE.EthereumMainnet);
288
- expect(chainId).toEqual(toChainId({ chainNamespace, chainReference }));
289
- expect(assetNamespace).toEqual('erc20');
290
- expect(assetReference).toEqual('0xc770eefad204b5180df6a14ee197d99d808ee52d');
291
- });
292
- it('should lower case assetReference for assetNamespace ERC721', () => {
293
- const AssetId = 'eip155:1/erc721:0xc770EEfAd204B5180dF6a14Ee197D99d808ee52d/12345';
294
- const { chainId, chainReference, chainNamespace, assetNamespace, assetReference } = fromAssetId(AssetId);
295
- expect(chainNamespace).toEqual(CHAIN_NAMESPACE.Evm);
296
- expect(chainReference).toEqual(CHAIN_REFERENCE.EthereumMainnet);
297
- expect(chainId).toEqual(toChainId({ chainNamespace, chainReference }));
298
- expect(assetNamespace).toEqual('erc721');
299
- const [address, id] = assetReference.split('/');
300
- expect(address).toEqual('0xc770eefad204b5180df6a14ee197d99d808ee52d');
301
- expect(id).toEqual('12345');
302
- });
303
- it('can parse a cosmoshub native token', () => {
304
- const AssetId = 'cosmos:cosmoshub-4/slip44:118';
305
- const { chainId, chainReference, chainNamespace, assetNamespace, assetReference } = fromAssetId(AssetId);
306
- expect(chainNamespace).toEqual(CHAIN_NAMESPACE.CosmosSdk);
307
- expect(chainReference).toEqual(CHAIN_REFERENCE.CosmosHubMainnet);
308
- expect(chainId).toEqual(toChainId({ chainNamespace, chainReference }));
309
- expect(assetNamespace).toEqual('slip44');
310
- expect(assetReference).toEqual(ASSET_REFERENCE.Cosmos);
311
- });
312
- it('errors for an invalid AssetId format', () => {
313
- expect(() => fromAssetId('invalid')).toThrow();
314
- });
315
- it('errors for invalid ChainNamespace', () => {
316
- expect(() => fromAssetId('invalid:cosmoshub-4/slip44:118')).toThrow();
317
- });
318
- it('errors for invalid ChainReference type', () => {
319
- expect(() => fromAssetId('cosmos:invalid/slip44:118')).toThrow();
320
- });
321
- });
322
- });
@@ -1,20 +0,0 @@
1
- import type { CHAIN_NAMESPACE, CHAIN_REFERENCE } from '../constants.js';
2
- import type { Nominal } from '../utils.js';
3
- export type ChainId = Nominal<string, 'ChainId'>;
4
- export type ChainNamespace = (typeof CHAIN_NAMESPACE)[keyof typeof CHAIN_NAMESPACE];
5
- export type ChainReference = (typeof CHAIN_REFERENCE)[keyof typeof CHAIN_REFERENCE];
6
- type ToChainIdArgs = {
7
- chainNamespace: ChainNamespace;
8
- chainReference: ChainReference;
9
- };
10
- export declare const toChainId: (args: ToChainIdArgs) => ChainId;
11
- export declare const fromChainId: (chainId: ChainId) => {
12
- chainNamespace: ChainNamespace;
13
- chainReference: ChainReference;
14
- };
15
- export declare const toCAIP2: (args: ToChainIdArgs) => ChainId;
16
- export declare const fromCAIP2: (chainId: ChainId) => {
17
- chainNamespace: ChainNamespace;
18
- chainReference: ChainReference;
19
- };
20
- export {};
@@ -1,20 +0,0 @@
1
- // https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md
2
- import { assertIsChainId } from '../typeGuards.js';
3
- export const toChainId = (args) => {
4
- const { chainNamespace, chainReference } = args;
5
- const maybeChainId = `${chainNamespace}:${chainReference}`;
6
- assertIsChainId(maybeChainId);
7
- return maybeChainId;
8
- };
9
- // NOTE: perf critical - benchmark any changes
10
- export const fromChainId = (chainId) => {
11
- const idx = chainId.indexOf(':');
12
- const chainNamespace = chainId.substring(0, idx);
13
- const chainReference = chainId.substring(idx + 1);
14
- return {
15
- chainNamespace: chainNamespace,
16
- chainReference: chainReference,
17
- };
18
- };
19
- export const toCAIP2 = toChainId;
20
- export const fromCAIP2 = fromChainId;
@@ -1 +0,0 @@
1
- export {};
@@ -1,88 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { CHAIN_NAMESPACE, CHAIN_REFERENCE } from '../constants.js';
3
- import { assertIsChainId, isChainId } from '../typeGuards.js';
4
- import { fromCAIP2, fromChainId, toCAIP2, toChainId } from './chainId.js';
5
- describe('chainId', () => {
6
- it('should have matching CAIP2 aliases', () => {
7
- expect(toChainId).toEqual(toCAIP2);
8
- expect(fromChainId).toEqual(fromCAIP2);
9
- });
10
- describe('toChainId', () => {
11
- it('can turn CosmosHub mainnet to ChainId', () => {
12
- const chainNamespace = CHAIN_NAMESPACE.CosmosSdk;
13
- const chainReference = CHAIN_REFERENCE.CosmosHubMainnet;
14
- const result = toChainId({ chainNamespace, chainReference });
15
- expect(result).toEqual('cosmos:cosmoshub-4');
16
- });
17
- it('can turn Ethereum mainnet to ChainId', () => {
18
- const chainNamespace = CHAIN_NAMESPACE.Evm;
19
- const chainReference = CHAIN_REFERENCE.EthereumMainnet;
20
- const result = toChainId({ chainNamespace, chainReference });
21
- expect(result).toEqual('eip155:1');
22
- });
23
- it('can turn Bitcoin mainnet to ChainId', () => {
24
- const chainNamespace = CHAIN_NAMESPACE.Utxo;
25
- const chainReference = CHAIN_REFERENCE.BitcoinMainnet;
26
- const result = toChainId({ chainNamespace, chainReference });
27
- expect(result).toEqual('bip122:000000000019d6689c085ae165831e93');
28
- });
29
- it('should throw an error for an invalid chain', () => {
30
- // @ts-ignore
31
- expect(() => toChainId({
32
- chainNamespace: CHAIN_NAMESPACE.Utxo,
33
- chainReference: CHAIN_REFERENCE.CosmosHubMainnet,
34
- })).toThrow('assertIsChainId: unsupported ChainId: bip122:cosmoshub-4');
35
- });
36
- });
37
- describe('fromChainId', () => {
38
- it('can turn Bitcoin mainnet to chain and network', () => {
39
- const bitcoinChainId = 'bip122:000000000019d6689c085ae165831e93';
40
- const { chainNamespace, chainReference } = fromChainId(bitcoinChainId);
41
- expect(chainNamespace).toEqual(CHAIN_NAMESPACE.Utxo);
42
- expect(chainReference).toEqual(CHAIN_REFERENCE.BitcoinMainnet);
43
- });
44
- it('can turn CosmosHub mainnet to chain and network', () => {
45
- const cosmosHubChainId = 'cosmos:cosmoshub-4';
46
- const { chainNamespace, chainReference } = fromChainId(cosmosHubChainId);
47
- expect(chainNamespace).toEqual(CHAIN_NAMESPACE.CosmosSdk);
48
- expect(chainReference).toEqual(CHAIN_REFERENCE.CosmosHubMainnet);
49
- });
50
- it('can turn Ethereum mainnet to chain and network', () => {
51
- const ethereumChainId = 'eip155:1';
52
- const { chainNamespace, chainReference } = fromChainId(ethereumChainId);
53
- expect(chainNamespace).toEqual(CHAIN_NAMESPACE.Evm);
54
- expect(chainReference).toEqual(CHAIN_REFERENCE.EthereumMainnet);
55
- });
56
- });
57
- });
58
- describe('isChainId', () => {
59
- it('throws on eip155 without a network reference', () => {
60
- expect(() => assertIsChainId('eip155')).toThrow();
61
- });
62
- it('validates eip155:1 mainnet as true', () => {
63
- expect(isChainId('eip155:1')).toBe(true);
64
- });
65
- it('throws on eip155:2 unsupported network reference', () => {
66
- expect(() => assertIsChainId('eip155:2')).toThrow();
67
- });
68
- it('validates bip122:000000000019d6689c085ae165831e93 mainnet as true', () => {
69
- expect(isChainId('bip122:000000000019d6689c085ae165831e93')).toBe(true);
70
- });
71
- it('throws on bip122 with the wrong network reference', () => {
72
- expect(() => assertIsChainId('bip122:1')).toThrow();
73
- });
74
- it('throws on bip122', () => {
75
- // missing network
76
- expect(() => assertIsChainId('bip122')).toThrow();
77
- });
78
- it('throws on empty string', () => {
79
- // missing network
80
- expect(() => assertIsChainId('')).toThrow();
81
- });
82
- it('should return true for cosmos', () => {
83
- expect(isChainId('cosmos:cosmoshub-4')).toBe(true);
84
- });
85
- it('should throw for an unknown cosmos chain', () => {
86
- expect(() => assertIsChainId('cosmos:fakechain-1')).toThrow('assertIsChainId: unsupported ChainId: cosmos:fakechain-1');
87
- });
88
- });
@@ -1,118 +0,0 @@
1
- import type { AssetId, AssetNamespace } from './assetId/assetId.js';
2
- import type { ChainId, ChainNamespace, ChainReference } from './chainId/chainId.js';
3
- export declare const btcAssetId: AssetId;
4
- export declare const bchAssetId: AssetId;
5
- export declare const dogeAssetId: AssetId;
6
- export declare const ltcAssetId: AssetId;
7
- export declare const ethAssetId: AssetId;
8
- export declare const avalancheAssetId: AssetId;
9
- export declare const optimismAssetId: AssetId;
10
- export declare const bscAssetId: AssetId;
11
- export declare const polygonAssetId: AssetId;
12
- export declare const gnosisAssetId: AssetId;
13
- export declare const arbitrumAssetId: AssetId;
14
- export declare const arbitrumNovaAssetId: AssetId;
15
- export declare const baseAssetId: AssetId;
16
- export declare const solAssetId: AssetId;
17
- export declare const wrappedSolAssetId: AssetId;
18
- export declare const uniV2EthFoxArbitrumAssetId: AssetId;
19
- export declare const foxatarAssetId: AssetId;
20
- export declare const foxyAssetId: AssetId;
21
- export declare const foxOnGnosisAssetId: AssetId;
22
- export declare const foxOnArbitrumOneAssetId: AssetId;
23
- export declare const foxAssetId: AssetId;
24
- export declare const foxOnOptimismAssetId: AssetId;
25
- export declare const foxOnPolygonAssetId: AssetId;
26
- export declare const usdtAssetId: AssetId;
27
- export declare const usdcAssetId: AssetId;
28
- export declare const usdcOnArbitrumOneAssetId: AssetId;
29
- export declare const usdcOnSolanaAssetId: AssetId;
30
- export declare const flipAssetId: AssetId;
31
- export declare const foxWifHatAssetId: AssetId;
32
- export declare const cosmosAssetId: AssetId;
33
- export declare const thorchainAssetId: AssetId;
34
- export declare const tcyAssetId: AssetId;
35
- export declare const rujiAssetId: AssetId;
36
- export declare const mayachainAssetId: AssetId;
37
- export declare const binanceAssetId: AssetId;
38
- export declare const btcChainId: ChainId;
39
- export declare const bchChainId: ChainId;
40
- export declare const dogeChainId: ChainId;
41
- export declare const ltcChainId: ChainId;
42
- export declare const ethChainId: ChainId;
43
- export declare const avalancheChainId: ChainId;
44
- export declare const optimismChainId: ChainId;
45
- export declare const bscChainId: ChainId;
46
- export declare const polygonChainId: ChainId;
47
- export declare const gnosisChainId: ChainId;
48
- export declare const arbitrumChainId: ChainId;
49
- export declare const arbitrumNovaChainId: ChainId;
50
- export declare const baseChainId: ChainId;
51
- export declare const cosmosChainId: ChainId;
52
- export declare const thorchainChainId: ChainId;
53
- export declare const mayachainChainId: ChainId;
54
- export declare const binanceChainId: ChainId;
55
- export declare const solanaChainId: ChainId;
56
- export declare const CHAIN_NAMESPACE: {
57
- readonly Evm: "eip155";
58
- readonly Utxo: "bip122";
59
- readonly CosmosSdk: "cosmos";
60
- readonly Solana: "solana";
61
- };
62
- type ValidChainMap = {
63
- [k in ChainNamespace]: ChainReference[];
64
- };
65
- export declare const CHAIN_REFERENCE: {
66
- readonly EthereumMainnet: "1";
67
- readonly BitcoinMainnet: "000000000019d6689c085ae165831e93";
68
- readonly BitcoinCashMainnet: "000000000000000000651ef99cb9fcbe";
69
- readonly DogecoinMainnet: "00000000001a91e3dace36e2be3bf030";
70
- readonly LitecoinMainnet: "12a765e31ffd4059bada1e25190f6e98";
71
- readonly CosmosHubMainnet: "cosmoshub-4";
72
- readonly ThorchainMainnet: "thorchain-1";
73
- readonly MayachainMainnet: "mayachain-mainnet-v1";
74
- readonly BinanceMainnet: "binance-chain-tigris";
75
- readonly AvalancheCChain: "43114";
76
- readonly OptimismMainnet: "10";
77
- readonly BnbSmartChainMainnet: "56";
78
- readonly PolygonMainnet: "137";
79
- readonly GnosisMainnet: "100";
80
- readonly ArbitrumMainnet: "42161";
81
- readonly ArbitrumNovaMainnet: "42170";
82
- readonly BaseMainnet: "8453";
83
- readonly SolanaMainnet: "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp";
84
- };
85
- export declare const ASSET_NAMESPACE: {
86
- readonly erc20: "erc20";
87
- readonly erc721: "erc721";
88
- readonly erc1155: "erc1155";
89
- readonly slip44: "slip44";
90
- readonly splToken: "token";
91
- };
92
- export declare const ASSET_REFERENCE: {
93
- readonly Bitcoin: "0";
94
- readonly BitcoinCash: "145";
95
- readonly Litecoin: "2";
96
- readonly Dogecoin: "3";
97
- readonly Cosmos: "118";
98
- readonly Thorchain: "931";
99
- readonly Mayachain: "931";
100
- readonly Binance: "714";
101
- readonly Ethereum: "60";
102
- readonly AvalancheC: "60";
103
- readonly Optimism: "60";
104
- readonly BnbSmartChain: "60";
105
- readonly Polygon: "60";
106
- readonly Gnosis: "60";
107
- readonly Arbitrum: "60";
108
- readonly ArbitrumNova: "60";
109
- readonly Base: "60";
110
- readonly Solana: "501";
111
- };
112
- export declare const VALID_CHAIN_IDS: ValidChainMap;
113
- type ValidAssetNamespace = {
114
- [k in ChainNamespace]: AssetNamespace[];
115
- };
116
- export declare const VALID_ASSET_NAMESPACE: ValidAssetNamespace;
117
- export declare const FEE_ASSET_IDS: AssetId[];
118
- export {};