@shapeshiftoss/caip 1.12.0 → 2.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.
@@ -23,10 +23,10 @@ const parseEthData = (data) => {
23
23
  const ethCoins = data.filter(({ id, platforms }) => Boolean(platforms === null || platforms === void 0 ? void 0 : platforms.ethereum) || id === 'ethereum');
24
24
  const chain = types_1.ChainTypes.Ethereum;
25
25
  const network = types_1.NetworkTypes.MAINNET;
26
- const contractType = types_1.ContractTypes.ERC20;
27
26
  return ethCoins.reduce((acc, { id, platforms }) => {
28
- const tokenId = platforms === null || platforms === void 0 ? void 0 : platforms.ethereum;
29
- const caip19 = (0, caip19_1.toCAIP19)({ chain, network, ...(tokenId ? { contractType, tokenId } : {}) });
27
+ const assetNamespace = id === 'ethereum' ? caip19_1.AssetNamespace.Slip44 : caip19_1.AssetNamespace.ERC20;
28
+ const assetReference = id === 'ethereum' ? caip19_1.AssetReference.Ethereum : platforms === null || platforms === void 0 ? void 0 : platforms.ethereum;
29
+ const caip19 = (0, caip19_1.toCAIP19)({ chain, network, assetNamespace, assetReference });
30
30
  acc[caip19] = id;
31
31
  return acc;
32
32
  }, {});
@@ -35,21 +35,36 @@ exports.parseEthData = parseEthData;
35
35
  const makeBtcData = () => {
36
36
  const chain = types_1.ChainTypes.Bitcoin;
37
37
  const network = types_1.NetworkTypes.MAINNET;
38
- const caip19 = (0, caip19_1.toCAIP19)({ chain, network });
38
+ const caip19 = (0, caip19_1.toCAIP19)({
39
+ chain,
40
+ network,
41
+ assetNamespace: caip19_1.AssetNamespace.Slip44,
42
+ assetReference: caip19_1.AssetReference.Bitcoin
43
+ });
39
44
  return { [caip19]: 'bitcoin' };
40
45
  };
41
46
  exports.makeBtcData = makeBtcData;
42
47
  const makeCosmosHubData = () => {
43
48
  const chain = types_1.ChainTypes.Cosmos;
44
49
  const network = types_1.NetworkTypes.COSMOSHUB_MAINNET;
45
- const caip19 = (0, caip19_1.toCAIP19)({ chain, network });
50
+ const caip19 = (0, caip19_1.toCAIP19)({
51
+ chain,
52
+ network,
53
+ assetNamespace: caip19_1.AssetNamespace.Slip44,
54
+ assetReference: caip19_1.AssetReference.Cosmos
55
+ });
46
56
  return { [caip19]: 'cosmos' };
47
57
  };
48
58
  exports.makeCosmosHubData = makeCosmosHubData;
49
59
  const makeOsmosisData = () => {
50
60
  const chain = types_1.ChainTypes.Osmosis;
51
61
  const network = types_1.NetworkTypes.OSMOSIS_MAINNET;
52
- const caip19 = (0, caip19_1.toCAIP19)({ chain, network });
62
+ const caip19 = (0, caip19_1.toCAIP19)({
63
+ chain,
64
+ network,
65
+ assetNamespace: caip19_1.AssetNamespace.Slip44,
66
+ assetReference: caip19_1.AssetReference.Osmosis
67
+ });
53
68
  return { [caip19]: 'osmosis' };
54
69
  };
55
70
  exports.makeOsmosisData = makeOsmosisData;
@@ -1,3 +1,4 @@
1
1
  export * from './coingecko';
2
2
  export * from './coincap';
3
3
  export * from './yearn';
4
+ export * from './osmosis';
@@ -13,3 +13,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./coingecko"), exports);
14
14
  __exportStar(require("./coincap"), exports);
15
15
  __exportStar(require("./yearn"), exports);
16
+ __exportStar(require("./osmosis"), exports);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("./index");
4
+ const utils_1 = require("./utils");
5
+ const main = async () => {
6
+ const data = await (0, utils_1.fetchData)(index_1.osmosisUrl);
7
+ const output = (0, utils_1.parseData)(data);
8
+ await (0, utils_1.writeFiles)(output);
9
+ };
10
+ main();
@@ -0,0 +1 @@
1
+ { "cosmos:osmosis-1/ibc:0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A": "SCRT", "cosmos:osmosis-1/ibc:0EF15DF2F02480ADE0BB6E85D9EBB5DAEA2836D3860E9F97F9AADE4F57A31AA0": "LUNA", "cosmos:osmosis-1/ibc:1480B8FD20AD5FCAE81EA87584D269547DD4D436843C1D20F15E00EB64743EF4": "AKT", "cosmos:osmosis-1/ibc:1DC495FCEFDA068A3820F903EDBD78B942FBD204D7E93D3BA2B432E9669D1A59": "NGM", "cosmos:osmosis-1/ibc:1DCC8A6CB5689018431323953344A9F6CC4D0BFB261E88C9F7777372C10CD076": "REGEN", "cosmos:osmosis-1/ibc:204A582244FC241613DBB50B04D1D454116C58C4AF7866C186AA0D6EEAD42780": "KRT", "cosmos:osmosis-1/ibc:27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2": "ATOM", "cosmos:osmosis-1/ibc:297C64CC42B5A8D8F82FE2EBE208A6FE8F94B86037FA28C4529A23701C228F7A": "NETA", "cosmos:osmosis-1/ibc:307E5C96C8F60D1CBEE269A9A86C0834E1DB06F2B3788AE4F716EDB97A48B97D": "DIG", "cosmos:osmosis-1/ibc:346786EA82F41FE55FAD14BF69AD8BA9B36985406E43F3CB23E6C45A285A9593": "DARC", "cosmos:osmosis-1/ibc:3BCCC93AD5DF58D11A6F8A05FA8BC801CBA0BA61A981F57E91B8B598BF8061CB": "MED", "cosmos:osmosis-1/ibc:46B44899322F3CD854D2D46DEEF881958467CDD4B3B10086DA49296BBED94BED": "JUNO", "cosmos:osmosis-1/ibc:4E5444C35610CC76FC94E7F7886B93121175C28262DDFDDE6F84E82BF2425452": "BTSG", "cosmos:osmosis-1/ibc:52B1AA623B34EB78FD767CEA69E8D7FA6C9CFE1FBF49C5406268FD325E2CC2AC": "IOV", "cosmos:osmosis-1/ibc:5973C068568365FFF40DEDCF1A1CB7582B6116B731CD31A12231AE25E20B871F": "EEUR", "cosmos:osmosis-1/ibc:655BCEF3CDEBE32863FF281DBBE3B06160339E9897DC9C9C9821932A5F8BA6F8": "TICK", "cosmos:osmosis-1/ibc:67795E528DF67C5606FC20F824EA39A6EF55BA133F4DC79C90A8C47A0901E17C": "UMEE", "cosmos:osmosis-1/ibc:7A08C6F11EF0F59EB841B9F788A87EC9F2361C7D9703157EC13D940DC53031FA": "CHEQ", "cosmos:osmosis-1/ibc:7C4D60AA95E5A7558B0A364860979CA34B7FF8AAF255B87AF9E879374470CEC0": "IRIS", "cosmos:osmosis-1/ibc:8318FD63C42203D16DDCAF49FE10E8590669B3219A3E87676AC9DA50722687FB": "ROWAN", "cosmos:osmosis-1/ibc:8A34AF0C1943FD0DFCDE9ADBF0B2C9959C45E87E6088EA2FC6ADACD59261B8A2": "LUM", "cosmos:osmosis-1/ibc:9712DBB13B9631EDFA9BF61B55F1B2D290B2ADB67E3A4EB3A875F3B6081B3B84": "DVPN", "cosmos:osmosis-1/ibc:987C17B11ABC2B20019178ACE62929FE9840202CE79498E29FE8E5CB02B7C0A4": "STARS", "cosmos:osmosis-1/ibc:9989AD6CCA39D1131523DB0617B50F6442081162294B4795E26746292467B525": "LIKE", "cosmos:osmosis-1/ibc:9BBA9A1C257E971E38C1422780CE6F0B0686F0A3085E2D61118D904BFE0F5F5E": "SOMM", "cosmos:osmosis-1/ibc:9BCB27203424535B6230D594553F1659C77EC173E36D9CF4759E7186EE747E84": "DEC", "cosmos:osmosis-1/ibc:A0CC0CF735BFB30E730C70019D4218A1244FF383503FF7579C9201AB93CA9293": "XPRT", "cosmos:osmosis-1/ibc:B547DC9B897E7C3AA5B824696110B8E3D2C31E3ED3F02FF363DCBAD82457E07E": "XKI", "cosmos:osmosis-1/ibc:B9E0A1A524E98BB407D3CED8720EFEFD186002F90C1B1B7964811DD0CCC12228": "HUAHUA", "cosmos:osmosis-1/ibc:BE1BB42D4BE3C30D50B68D7C41DB4DFCE9678E8EF8C539F6E6A9345048894FCC": "UST", "cosmos:osmosis-1/ibc:D805F1DA50D31B96E4282C1D4181EDDFB1A44A598BFF5666F4B43E4B8BEA95A5": "BCNA", "cosmos:osmosis-1/ibc:E6931F78057F7CC5DA0FD6CEF82FF39373A6E0452BF1FD76910B93292CF356C1": "CRO", "cosmos:osmosis-1/ibc:E7B35499CFBEB0FF5778127ABA4FB2C4B79A6B8D3D831D4379C4048C238796BD": "VDL", "cosmos:osmosis-1/ibc:E97634A40119F1898989C2A23224ED83FDD0A57EA46B3A094E287288D1672B44": "GRAV", "cosmos:osmosis-1/ibc:EA3E1640F9B1532AB129A571203A0B9F789A7F14BB66E350DCBFA18E1A1931F0": "CMDX", "cosmos:osmosis-1/ibc:EA4C0A9F72E2CEDF10D0E7A9A6A22954DB3444910DB5BE980DF59B05A46DAD1C": "DSM", "cosmos:osmosis-1/ibc:F3FF7A84A73B62921538642F9797C423D2B4C4ACB3C7FCFFCE7F12AA69909C4B": "IXO", "cosmos:osmosis-1/ibc:F867AE2112EFE646EC71A25CD2DFABB8927126AC1E19F1BBF0FF693A4ECA05DE": "BAND", "cosmos:osmosis-1/ibc:FE2CD1E6828EC0FAB8AF39BAC45BC25B965BA67CCBC50C13A14BD610B0D1E2C4": "BOOT", "cosmos:osmosis-1/native:uion": "ION", "cosmos:osmosis-1/slip44:118": "OSMO" }
@@ -0,0 +1,2 @@
1
+ import osmosis from './cosmos_osmosis-1/adapter.json';
2
+ export { osmosis };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.osmosis = void 0;
7
+ const adapter_json_1 = __importDefault(require("./cosmos_osmosis-1/adapter.json"));
8
+ exports.osmosis = adapter_json_1.default;
@@ -0,0 +1,3 @@
1
+ export declare const osmosisUrl = "https://api-osmosis.imperator.co/tokens/v2/all";
2
+ export declare const osmosisToCAIP19: (id: string) => string | undefined;
3
+ export declare const CAIP19ToOsmosis: (caip19: string) => string | undefined;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.CAIP19ToOsmosis = exports.osmosisToCAIP19 = exports.osmosisUrl = void 0;
23
+ const adapters = __importStar(require("./generated"));
24
+ exports.osmosisUrl = 'https://api-osmosis.imperator.co/tokens/v2/all';
25
+ const generatedCAIP19ToOsmosisMap = Object.values(adapters).reduce((acc, cur) => ({
26
+ ...acc,
27
+ ...cur
28
+ }));
29
+ const invert = (data) => Object.entries(data).reduce((acc, [k, v]) => ((acc[v] = k), acc), {});
30
+ const generatedOsmosisToCAIP19Map = invert(generatedCAIP19ToOsmosisMap);
31
+ const osmosisToCAIP19 = (id) => generatedOsmosisToCAIP19Map[id];
32
+ exports.osmosisToCAIP19 = osmosisToCAIP19;
33
+ const CAIP19ToOsmosis = (caip19) => generatedCAIP19ToOsmosisMap[caip19];
34
+ exports.CAIP19ToOsmosis = CAIP19ToOsmosis;
@@ -0,0 +1,17 @@
1
+ export declare type OsmosisCoin = {
2
+ price: number;
3
+ denom: string;
4
+ symbol: string;
5
+ liquidity: number;
6
+ liquidity_24h_change: number;
7
+ volume_24h: number;
8
+ volume_24h_change: number;
9
+ name: string;
10
+ price_24h_change: number;
11
+ };
12
+ export declare const writeFiles: (data: Record<string, Record<string, string>>) => Promise<void>;
13
+ export declare const fetchData: (URL: string) => Promise<OsmosisCoin[]>;
14
+ export declare const parseOsmosisData: (data: OsmosisCoin[]) => Record<string, string>;
15
+ export declare const parseData: (d: OsmosisCoin[]) => {
16
+ [x: string]: Record<string, string>;
17
+ };
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseData = exports.parseOsmosisData = exports.fetchData = exports.writeFiles = void 0;
7
+ const types_1 = require("@shapeshiftoss/types");
8
+ const axios_1 = __importDefault(require("axios"));
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const caip2_1 = require("../../caip2/caip2");
11
+ const caip19_1 = require("./../../caip19/caip19");
12
+ const writeFiles = async (data) => {
13
+ const path = './src/adapters/osmosis/generated/';
14
+ const file = '/adapter.json';
15
+ const writeFile = async ([k, v]) => await fs_1.default.promises.writeFile(`${path}${k}${file}`.replace(':', '_'), JSON.stringify(v));
16
+ await Promise.all(Object.entries(data).map(writeFile));
17
+ console.info('Generated Osmosis CAIP19 adapter data.');
18
+ };
19
+ exports.writeFiles = writeFiles;
20
+ const fetchData = async (URL) => (await axios_1.default.get(URL)).data;
21
+ exports.fetchData = fetchData;
22
+ const parseOsmosisData = (data) => {
23
+ const results = data.reduce((acc, { denom, symbol }) => {
24
+ // denoms for non native assets are formatted like so: 'ibc/27394...'
25
+ const isNativeAsset = !denom.split('/')[1];
26
+ const isOsmo = denom === 'uosmo';
27
+ let assetNamespace;
28
+ let assetReference;
29
+ if (isNativeAsset) {
30
+ // TODO(ryankk): remove `toString` when AssetReferences are changed to strings
31
+ assetReference = isOsmo ? caip19_1.AssetReference.Osmosis.toString() : denom;
32
+ assetNamespace = isOsmo ? caip19_1.AssetNamespace.Slip44 : caip19_1.AssetNamespace.NATIVE;
33
+ }
34
+ else {
35
+ assetReference = denom.split('/')[1];
36
+ assetNamespace = caip19_1.AssetNamespace.IBC;
37
+ }
38
+ const chain = types_1.ChainTypes.Osmosis;
39
+ const network = types_1.NetworkTypes.OSMOSIS_MAINNET;
40
+ const caip19 = (0, caip19_1.toCAIP19)({ chain, network, assetNamespace, assetReference });
41
+ acc[caip19] = symbol;
42
+ return acc;
43
+ }, {});
44
+ return results;
45
+ };
46
+ exports.parseOsmosisData = parseOsmosisData;
47
+ const parseData = (d) => {
48
+ const osmosisMainnet = (0, caip2_1.toCAIP2)({
49
+ chain: types_1.ChainTypes.Osmosis,
50
+ network: types_1.NetworkTypes.OSMOSIS_MAINNET
51
+ });
52
+ return {
53
+ [osmosisMainnet]: (0, exports.parseOsmosisData)(d)
54
+ };
55
+ };
56
+ exports.parseData = parseData;