@shapeshiftoss/caip 1.11.4 → 1.13.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.
@@ -12,7 +12,8 @@ export declare enum AssetNamespace {
12
12
  export declare enum AssetReference {
13
13
  Bitcoin = 0,
14
14
  Ethereum = 60,
15
- Cosmos = 118
15
+ Cosmos = 118,
16
+ Osmosis = 118
16
17
  }
17
18
  declare type ToCAIP19Args = {
18
19
  chain: ChainTypes;
@@ -19,7 +19,18 @@ var AssetReference;
19
19
  AssetReference[AssetReference["Bitcoin"] = 0] = "Bitcoin";
20
20
  AssetReference[AssetReference["Ethereum"] = 60] = "Ethereum";
21
21
  AssetReference[AssetReference["Cosmos"] = 118] = "Cosmos";
22
+ AssetReference[AssetReference["Osmosis"] = 118] = "Osmosis";
22
23
  })(AssetReference = exports.AssetReference || (exports.AssetReference = {}));
24
+ /**
25
+ * validate that a value is a string slip44 value
26
+ * @see https://github.com/satoshilabs/slips/blob/master/slip-0044.md
27
+ * @param {string} value - possible slip44 value
28
+ */
29
+ const isValidSlip44 = (value) => {
30
+ const n = Number(value);
31
+ // slip44 has a max value of an unsigned 32-bit integer
32
+ return !isNaN(n) && n >= 0 && n < 4294967296;
33
+ };
23
34
  const toCAIP19 = ({ chain, network, contractType, tokenId, assetNamespace, assetReference }) => {
24
35
  const caip2 = (0, caip2_1.toCAIP2)({ chain, network });
25
36
  switch (chain) {
@@ -36,10 +47,11 @@ const toCAIP19 = ({ chain, network, contractType, tokenId, assetNamespace, asset
36
47
  case AssetNamespace.IBC:
37
48
  case AssetNamespace.NATIVE:
38
49
  return `${caip2}/${assetNamespace}:${assetReference}`;
39
- default: {
40
- throw new Error(`Could not construct CAIP19 chain: ${chain}, network: ${network}, assetNamespace: ${assetNamespace}, assetReference: ${assetReference}`);
41
- }
50
+ case AssetNamespace.Slip44:
51
+ if (isValidSlip44(assetReference))
52
+ return `${caip2}/${assetNamespace}:${assetReference}`;
42
53
  }
54
+ throw new Error(`Could not construct CAIP19 chain: ${chain}, network: ${network}, assetNamespace: ${assetNamespace}, assetReference: ${assetReference}`);
43
55
  }
44
56
  case types_1.ChainTypes.Ethereum: {
45
57
  tokenId = tokenId === null || tokenId === void 0 ? void 0 : tokenId.toLowerCase();
package/dist/index.d.ts CHANGED
@@ -5,4 +5,4 @@ import * as caip19 from './caip19/caip19';
5
5
  export { adapters, caip2, caip19, caip10 };
6
6
  export { CAIP2 } from './caip2/caip2';
7
7
  export { CAIP10 } from './caip10/caip10';
8
- export { CAIP19 } from './caip19/caip19';
8
+ export { AssetNamespace, CAIP19 } from './caip19/caip19';
package/dist/index.js CHANGED
@@ -19,7 +19,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.caip10 = exports.caip19 = exports.caip2 = exports.adapters = void 0;
22
+ exports.AssetNamespace = exports.caip10 = exports.caip19 = exports.caip2 = exports.adapters = void 0;
23
23
  const adapters = __importStar(require("./adapters"));
24
24
  exports.adapters = adapters;
25
25
  const caip2 = __importStar(require("./caip2/caip2"));
@@ -28,3 +28,5 @@ const caip10 = __importStar(require("./caip10/caip10"));
28
28
  exports.caip10 = caip10;
29
29
  const caip19 = __importStar(require("./caip19/caip19"));
30
30
  exports.caip19 = caip19;
31
+ var caip19_1 = require("./caip19/caip19");
32
+ Object.defineProperty(exports, "AssetNamespace", { enumerable: true, get: function () { return caip19_1.AssetNamespace; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapeshiftoss/caip",
3
- "version": "1.11.4",
3
+ "version": "1.13.0",
4
4
  "description": "CAIP Implementation",
5
5
  "homepage": "",
6
6
  "license": "MIT",
@@ -23,7 +23,8 @@
23
23
  "generate-coingecko": "yarn build && node dist/adapters/coingecko/generate.js",
24
24
  "generate-coincap": "yarn build && node dist/adapters/coincap/generate.js",
25
25
  "generate-yearn": "yarn build && node dist/adapters/yearn/generate.js",
26
- "generate": "yarn build && node dist/adapters/coingecko/generate.js && node dist/adapters/coincap/generate.js && node dist/adapters/yearn/generate.js",
26
+ "generate-osmosis": "yarn build && node dist/adapters/osmosis/generate.js",
27
+ "generate": "yarn build && node dist/adapters/coingecko/generate.js && node dist/adapters/coincap/generate.js && node dist/adapters/yearn/generate.js && node dist/adapters/osmosis/generate.js",
27
28
  "test": "jest test",
28
29
  "type-check": "tsc --project ./tsconfig.json --noEmit"
29
30
  },