@shapeshiftoss/caip 1.6.0 → 1.9.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.
@@ -0,0 +1,2 @@
1
+ import eip155 from './eip155:1/adapter.json';
2
+ export { eip155 };
@@ -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.eip155 = void 0;
7
+ const adapter_json_1 = __importDefault(require("./eip155:1/adapter.json"));
8
+ exports.eip155 = adapter_json_1.default;
@@ -0,0 +1,2 @@
1
+ export declare const yearnToCAIP19: (id: string) => string;
2
+ export declare const CAIP19ToYearn: (caip19: string) => string | undefined;
@@ -0,0 +1,37 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.CAIP19ToYearn = exports.yearnToCAIP19 = void 0;
26
+ const toLower_1 = __importDefault(require("lodash/toLower"));
27
+ const adapters = __importStar(require("./generated"));
28
+ const generatedCAIP19ToCoinCapMap = Object.values(adapters).reduce((acc, cur) => ({
29
+ ...acc,
30
+ ...cur
31
+ }));
32
+ const invert = (data) => Object.entries(data).reduce((acc, [k, v]) => ((acc[v] = k), acc), {});
33
+ const generatedCoinCapToCAIP19Map = invert(generatedCAIP19ToCoinCapMap);
34
+ const yearnToCAIP19 = (id) => generatedCoinCapToCAIP19Map[id];
35
+ exports.yearnToCAIP19 = yearnToCAIP19;
36
+ const CAIP19ToYearn = (caip19) => generatedCAIP19ToCoinCapMap[(0, toLower_1.default)(caip19)];
37
+ exports.CAIP19ToYearn = CAIP19ToYearn;
@@ -0,0 +1,7 @@
1
+ import { Token, Vault } from '@yfi/sdk';
2
+ export declare const writeFiles: (data: Record<string, Record<string, string>>) => Promise<void>;
3
+ export declare const fetchData: () => Promise<(Token | Vault)[]>;
4
+ export declare const parseEthData: (data: (Token | Vault)[]) => Record<string, string>;
5
+ export declare const parseData: (d: (Token | Vault)[]) => {
6
+ [x: string]: Record<string, string>;
7
+ };
@@ -0,0 +1,57 @@
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.parseEthData = exports.fetchData = exports.writeFiles = void 0;
7
+ const providers_1 = require("@ethersproject/providers");
8
+ const types_1 = require("@shapeshiftoss/types");
9
+ const sdk_1 = require("@yfi/sdk");
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const toLower_1 = __importDefault(require("lodash/toLower"));
12
+ const uniqBy_1 = __importDefault(require("lodash/uniqBy"));
13
+ const caip2_1 = require("../../caip2/caip2");
14
+ const caip19_1 = require("./../../caip19/caip19");
15
+ // YearnVaultMarketCapService deps
16
+ const provider = new providers_1.JsonRpcProvider(process.env.REACT_APP_UNCHAINED_ETHEREUM_HTTP_URL);
17
+ const yearnSdk = new sdk_1.Yearn(1, { provider });
18
+ const writeFiles = async (data) => {
19
+ const path = './src/adapters/yearn/generated/';
20
+ const file = '/adapter.json';
21
+ const writeFile = async ([k, v]) => await fs_1.default.promises.writeFile(`${path}${k}${file}`, JSON.stringify(v));
22
+ await Promise.all(Object.entries(data).map(writeFile));
23
+ console.info('Generated Yearn CAIP19 adapter data.');
24
+ };
25
+ exports.writeFiles = writeFiles;
26
+ const fetchData = async () => {
27
+ const [vaults, ironBankTokens, zapperTokens, underlyingVaultTokens] = await Promise.all([
28
+ yearnSdk.vaults.get(),
29
+ yearnSdk.ironBank.tokens(),
30
+ yearnSdk.tokens.supported(),
31
+ yearnSdk.vaults.tokens()
32
+ ]);
33
+ const tokens = [...vaults, ...ironBankTokens, ...zapperTokens, ...underlyingVaultTokens];
34
+ const uniqueTokens = (0, uniqBy_1.default)(tokens, 'address');
35
+ return uniqueTokens;
36
+ };
37
+ exports.fetchData = fetchData;
38
+ const parseEthData = (data) => {
39
+ const chain = types_1.ChainTypes.Ethereum;
40
+ const network = types_1.NetworkTypes.MAINNET;
41
+ const contractType = types_1.ContractTypes.ERC20;
42
+ const result = data.reduce((acc, datum) => {
43
+ const { address } = datum;
44
+ const id = address;
45
+ const tokenId = (0, toLower_1.default)(address);
46
+ const caip19 = (0, caip19_1.toCAIP19)({ chain, network, contractType, tokenId });
47
+ acc[caip19] = id;
48
+ return acc;
49
+ }, {});
50
+ return result;
51
+ };
52
+ exports.parseEthData = parseEthData;
53
+ const parseData = (d) => {
54
+ const ethMainnet = (0, caip2_1.toCAIP2)({ chain: types_1.ChainTypes.Ethereum, network: types_1.NetworkTypes.MAINNET });
55
+ return { [ethMainnet]: (0, exports.parseEthData)(d) };
56
+ };
57
+ exports.parseData = parseData;
@@ -19,6 +19,7 @@ const toCAIP19 = ({ chain, network, contractType, tokenId }) => {
19
19
  const caip2 = (0, caip2_1.toCAIP2)({ chain, network });
20
20
  switch (chain) {
21
21
  case types_1.ChainTypes.Ethereum: {
22
+ tokenId = tokenId === null || tokenId === void 0 ? void 0 : tokenId.toLowerCase();
22
23
  if (contractType) {
23
24
  if (!tokenId) {
24
25
  throw new Error(`toCAIP19: no tokenId provided with contract type ${contractType}`);
@@ -106,12 +107,12 @@ const fromCAIP19 = (caip19) => {
106
107
  }
107
108
  case AssetNamespace.ERC20: {
108
109
  const contractType = types_1.ContractTypes.ERC20;
109
- const tokenId = referenceString;
110
+ const tokenId = referenceString.toLowerCase();
110
111
  return { chain, network, contractType, tokenId };
111
112
  }
112
113
  case AssetNamespace.ERC721: {
113
114
  const contractType = types_1.ContractTypes.ERC721;
114
- const tokenId = referenceString;
115
+ const tokenId = referenceString.toLowerCase();
115
116
  return { chain, network, contractType, tokenId };
116
117
  }
117
118
  }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as adapters from './adapters/coingecko';
1
+ import * as adapters from './adapters';
2
2
  import * as caip2 from './caip2/caip2';
3
3
  import * as caip10 from './caip10/caip10';
4
4
  import * as caip19 from './caip19/caip19';
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.caip10 = exports.caip19 = exports.caip2 = exports.adapters = void 0;
23
- const adapters = __importStar(require("./adapters/coingecko"));
23
+ const adapters = __importStar(require("./adapters"));
24
24
  exports.adapters = adapters;
25
25
  const caip2 = __importStar(require("./caip2/caip2"));
26
26
  exports.caip2 = caip2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapeshiftoss/caip",
3
- "version": "1.6.0",
3
+ "version": "1.9.0",
4
4
  "description": "CAIP Implementation",
5
5
  "homepage": "",
6
6
  "license": "MIT",
@@ -20,7 +20,10 @@
20
20
  "build": "yarn clean && tsc --project tsconfig.build.json",
21
21
  "clean": "rm -rf dist",
22
22
  "dev": "tsc --watch",
23
- "generate": "yarn build && node dist/adapters/coingecko/generate.js",
23
+ "generate-coingecko": "yarn build && node dist/adapters/coingecko/generate.js",
24
+ "generate-coincap": "yarn build && node dist/adapters/coincap/generate.js",
25
+ "generate-yearn": "yarn build && node dist/adapters/yearn/generate.js",
26
+ "generate": "yarn build && node dist/adapters/coingecko/generate.js && node dist/adatpters/coincap/generate.js && node dist/adapters/yearn/generate.js",
24
27
  "test": "jest test",
25
28
  "type-check": "tsc --project ./tsconfig.json --noEmit"
26
29
  },
@@ -30,6 +33,7 @@
30
33
  },
31
34
  "devDependencies": {
32
35
  "@shapeshiftoss/types": "^1.13.1",
36
+ "@yfi/sdk": "^1.0.12",
33
37
  "axios": "^0.24.0"
34
38
  }
35
39
  }