@ceramicnetwork/blockchain-utils-validation 2.0.0-alpha.0 → 2.0.0-alpha.3

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 (41) hide show
  1. package/README.md +9 -1
  2. package/lib/blockchain-handler.js +1 -2
  3. package/lib/blockchains/__tests__/fixtures.js +1 -4
  4. package/lib/blockchains/__tests__/fixtures.js.map +1 -1
  5. package/lib/blockchains/cosmos.d.ts +2 -3
  6. package/lib/blockchains/cosmos.d.ts.map +1 -1
  7. package/lib/blockchains/cosmos.js +10 -34
  8. package/lib/blockchains/cosmos.js.map +1 -1
  9. package/lib/blockchains/eosio.d.ts +2 -3
  10. package/lib/blockchains/eosio.d.ts.map +1 -1
  11. package/lib/blockchains/eosio.js +7 -31
  12. package/lib/blockchains/eosio.js.map +1 -1
  13. package/lib/blockchains/ethereum.d.ts +2 -3
  14. package/lib/blockchains/ethereum.d.ts.map +1 -1
  15. package/lib/blockchains/ethereum.js +18 -42
  16. package/lib/blockchains/ethereum.js.map +1 -1
  17. package/lib/blockchains/filecoin.d.ts +2 -3
  18. package/lib/blockchains/filecoin.d.ts.map +1 -1
  19. package/lib/blockchains/filecoin.js +6 -30
  20. package/lib/blockchains/filecoin.js.map +1 -1
  21. package/lib/blockchains/near.d.ts +2 -3
  22. package/lib/blockchains/near.d.ts.map +1 -1
  23. package/lib/blockchains/near.js +9 -36
  24. package/lib/blockchains/near.js.map +1 -1
  25. package/lib/blockchains/polkadot.d.ts +2 -3
  26. package/lib/blockchains/polkadot.d.ts.map +1 -1
  27. package/lib/blockchains/polkadot.js +6 -28
  28. package/lib/blockchains/polkadot.js.map +1 -1
  29. package/lib/blockchains/solana.d.ts +2 -3
  30. package/lib/blockchains/solana.d.ts.map +1 -1
  31. package/lib/blockchains/solana.js +8 -31
  32. package/lib/blockchains/solana.js.map +1 -1
  33. package/lib/blockchains/tezos.d.ts +2 -3
  34. package/lib/blockchains/tezos.d.ts.map +1 -1
  35. package/lib/blockchains/tezos.js +26 -57
  36. package/lib/blockchains/tezos.js.map +1 -1
  37. package/lib/index.d.ts.map +1 -1
  38. package/lib/index.js +23 -28
  39. package/lib/index.js.map +1 -1
  40. package/package.json +23 -18
  41. package/CHANGELOG.md +0 -642
@@ -1,44 +1,21 @@
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.validateLink = void 0;
23
- const caip_1 = require("caip");
24
- const uint8arrays = __importStar(require("uint8arrays"));
25
- const ed25519_1 = require("@stablelib/ed25519");
1
+ import * as uint8arrays from 'uint8arrays';
2
+ import { verify } from '@stablelib/ed25519';
3
+ import { normalizeAccountId } from '@ceramicnetwork/common';
26
4
  const verifySignature = async (pubKey, message, signature) => {
27
- const verified = ed25519_1.verify(pubKey, uint8arrays.fromString(message), signature);
5
+ const verified = verify(pubKey, uint8arrays.fromString(message), signature);
28
6
  return verified;
29
7
  };
30
8
  const namespace = 'solana';
31
- async function validateLink(proof) {
32
- const pubKey = uint8arrays.fromString(new caip_1.AccountId(proof.account).address, "base58btc");
9
+ export async function validateLink(proof) {
10
+ const account = normalizeAccountId(proof.account);
11
+ const pubKey = uint8arrays.fromString(account.address, 'base58btc');
33
12
  const msg = proof.message;
34
13
  const sig = uint8arrays.fromString(proof.signature, 'base64');
35
14
  const is_sig_valid = await verifySignature(pubKey, msg, sig);
36
15
  return is_sig_valid ? proof : null;
37
16
  }
38
- exports.validateLink = validateLink;
39
- const Handler = {
17
+ export const handler = {
40
18
  namespace,
41
19
  validateLink,
42
20
  };
43
- exports.default = Handler;
44
21
  //# sourceMappingURL=solana.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/blockchains/solana.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,+BAAgC;AAChC,yDAA0C;AAC1C,gDAA2C;AAE3C,MAAM,eAAe,GAAG,KAAK,EAC3B,MAAkB,EAClB,OAAe,EACf,SAAqB,EACH,EAAE;IACpB,MAAM,QAAQ,GAAG,gBAAM,CACrB,MAAM,EACN,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAC/B,SAAS,CACV,CAAA;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,QAAQ,CAAA;AAEnB,KAAK,UAAU,YAAY,CAAC,KAAgB;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,gBAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACxF,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAA;IACzB,MAAM,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC7D,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC5D,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AACpC,CAAC;AAND,oCAMC;AAED,MAAM,OAAO,GAAsB;IACjC,SAAS;IACT,YAAY;CACb,CAAA;AAED,kBAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/blockchains/solana.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,WAAW,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,MAAM,eAAe,GAAG,KAAK,EAC3B,MAAkB,EAClB,OAAe,EACf,SAAqB,EACH,EAAE;IACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAA;IAC3E,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,QAAQ,CAAA;AAE1B,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAgB;IACjD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACnE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAA;IACzB,MAAM,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC7D,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC5D,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAsB;IACxC,SAAS;IACT,YAAY;CACb,CAAA"}
@@ -1,8 +1,7 @@
1
- import { BlockchainHandler } from '../blockchain-handler';
1
+ import { BlockchainHandler } from '../blockchain-handler.js';
2
2
  import { LinkProof } from '@ceramicnetwork/blockchain-utils-linking';
3
3
  export declare const ADDRESS_NOT_FOUND_ERROR: Error;
4
4
  export declare const PUBLIC_KEY_NOT_PUBLISHED_ERROR: Error;
5
5
  export declare function validateLink(proof: LinkProof): Promise<LinkProof | null>;
6
- declare const Handler: BlockchainHandler;
7
- export default Handler;
6
+ export declare const handler: BlockchainHandler;
8
7
  //# sourceMappingURL=tezos.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/blockchains/tezos.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAS,MAAM,0CAA0C,CAAA;AAK3E,eAAO,MAAM,uBAAuB,OAAyD,CAAA;AAC7F,eAAO,MAAM,8BAA8B,OAE1C,CAAA;AAuDD,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAoB9E;AAED,QAAA,MAAM,OAAO,EAAE,iBAGd,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/blockchains/tezos.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAS,MAAM,0CAA0C,CAAA;AAK3E,eAAO,MAAM,uBAAuB,OAAyD,CAAA;AAC7F,eAAO,MAAM,8BAA8B,OAE1C,CAAA;AAqDD,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAkB9E;AAED,eAAO,MAAM,OAAO,EAAE,iBAGrB,CAAA"}
@@ -1,37 +1,12 @@
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.validateLink = exports.PUBLIC_KEY_NOT_PUBLISHED_ERROR = exports.ADDRESS_NOT_FOUND_ERROR = void 0;
26
- const caip_1 = require("caip");
27
- const remote_signer_1 = require("@taquito/remote-signer");
28
- const blockchain_utils_linking_1 = require("@ceramicnetwork/blockchain-utils-linking");
29
- const cross_fetch_1 = __importDefault(require("cross-fetch"));
30
- const uint8arrays = __importStar(require("uint8arrays"));
31
- const common_1 = require("@ceramicnetwork/common");
32
- exports.ADDRESS_NOT_FOUND_ERROR = new Error(`Address not found on the Tezos blockchain`);
33
- exports.PUBLIC_KEY_NOT_PUBLISHED_ERROR = new Error(`Public key not published to the Tezos blockchain`);
34
- const { TEZOS_NAMESPACE, TEZOS_CHAIN_REF } = blockchain_utils_linking_1.tezos;
1
+ import { ChainId } from 'caip';
2
+ import { verifySignature } from '@taquito/utils';
3
+ import { tezos } from '@ceramicnetwork/blockchain-utils-linking';
4
+ import fetch from 'cross-fetch';
5
+ import * as uint8arrays from 'uint8arrays';
6
+ import { normalizeAccountId } from '@ceramicnetwork/common';
7
+ export const ADDRESS_NOT_FOUND_ERROR = new Error(`Address not found on the Tezos blockchain`);
8
+ export const PUBLIC_KEY_NOT_PUBLISHED_ERROR = new Error(`Public key not published to the Tezos blockchain`);
9
+ const { TEZOS_NAMESPACE, TEZOS_CHAIN_REF } = tezos;
35
10
  const FAKE_API_ENDPOINT = 'https://fake-api.example.com';
36
11
  function encodeMessage(text) {
37
12
  const michelinePrefix = '05';
@@ -40,43 +15,37 @@ function encodeMessage(text) {
40
15
  text = uint8arrays.toString(uint8arrays.fromString(text, 'utf-8'), 'hex');
41
16
  return michelinePrefix + stringPrefix + len + text;
42
17
  }
43
- function publicKeyFinder(address) {
44
- const request = cross_fetch_1.default(`https://api.tzstats.com/explorer/account/${address}`).catch(() => {
45
- throw exports.ADDRESS_NOT_FOUND_ERROR;
18
+ async function findPublicKey(address) {
19
+ const response = await fetch(`https://api.tzstats.com/explorer/account/${address}`).catch(() => {
20
+ throw ADDRESS_NOT_FOUND_ERROR;
46
21
  });
47
- return async () => {
48
- const response = await request;
49
- const json = await response.json();
50
- const result = json === null || json === void 0 ? void 0 : json.pubkey;
51
- if (result) {
52
- return result;
53
- }
54
- else {
55
- throw exports.PUBLIC_KEY_NOT_PUBLISHED_ERROR;
56
- }
57
- };
22
+ const json = await response.json();
23
+ const result = json?.pubkey;
24
+ if (result) {
25
+ return result;
26
+ }
27
+ else {
28
+ throw PUBLIC_KEY_NOT_PUBLISHED_ERROR;
29
+ }
58
30
  }
59
- async function validateLink(proof) {
60
- const account = common_1.normalizeAccountId(proof.account);
61
- const chainId = new caip_1.ChainId(account.chainId);
31
+ export async function validateLink(proof) {
32
+ const account = normalizeAccountId(proof.account);
33
+ const chainId = new ChainId(account.chainId);
62
34
  if (chainId.reference !== TEZOS_CHAIN_REF) {
63
35
  return null;
64
36
  }
65
37
  const msg = encodeMessage(proof.message);
66
- const verifier = new remote_signer_1.RemoteSigner(account.address, FAKE_API_ENDPOINT);
67
- verifier.publicKey = publicKeyFinder(account.address);
68
38
  try {
69
- const is_sig_valid = await verifier.verify(msg, proof.signature);
39
+ const pk = await findPublicKey(account.address);
40
+ const is_sig_valid = await verifySignature(msg, pk, proof.signature);
70
41
  return is_sig_valid ? proof : null;
71
42
  }
72
43
  catch (ignored) {
73
44
  return null;
74
45
  }
75
46
  }
76
- exports.validateLink = validateLink;
77
- const Handler = {
47
+ export const handler = {
78
48
  namespace: TEZOS_NAMESPACE,
79
49
  validateLink,
80
50
  };
81
- exports.default = Handler;
82
51
  //# sourceMappingURL=tezos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tezos.js","sourceRoot":"","sources":["../../src/blockchains/tezos.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8B;AAC9B,0DAAqD;AAErD,uFAA2E;AAC3E,8DAA+B;AAC/B,yDAA0C;AAC1C,mDAA2D;AAE9C,QAAA,uBAAuB,GAAG,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;AAChF,QAAA,8BAA8B,GAAG,IAAI,KAAK,CACrD,kDAAkD,CACnD,CAAA;AAID,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,gCAAK,CAAA;AAElD,MAAM,iBAAiB,GAAG,8BAA8B,CAAA;AAYxD,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,eAAe,GAAG,IAAI,CAAA;IAC5B,MAAM,YAAY,GAAG,IAAI,CAAA;IACzB,MAAM,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE5D,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA;IACzE,OAAO,eAAe,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,CAAA;AACpD,CAAC;AAUD,SAAS,eAAe,CAAC,OAAe;IAEtC,MAAM,OAAO,GAAG,qBAAK,CAAC,4CAA4C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACtF,MAAM,+BAAuB,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,IAAqB,EAAE;QACjC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAA;QAC9B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA;QAC3B,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAA;SACd;aAAM;YACL,MAAM,sCAA8B,CAAA;SACrC;IACH,CAAC,CAAA;AACH,CAAC;AAKM,KAAK,UAAU,YAAY,CAAC,KAAgB;IACjD,MAAM,OAAO,GAAG,2BAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAG5C,IAAI,OAAO,CAAC,SAAS,KAAK,eAAe,EAAE;QACzC,OAAO,IAAI,CAAA;KACZ;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAExC,MAAM,QAAQ,GAAG,IAAI,4BAAY,CAAC,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;IACrE,QAAQ,CAAC,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAErD,IAAI;QACF,MAAM,YAAY,GAAY,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QAEzE,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;KACnC;IAAC,OAAO,OAAO,EAAE;QAChB,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AApBD,oCAoBC;AAED,MAAM,OAAO,GAAsB;IACjC,SAAS,EAAE,eAAe;IAC1B,YAAY;CACb,CAAA;AAED,kBAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"tezos.js","sourceRoot":"","sources":["../../src/blockchains/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,EAAa,KAAK,EAAE,MAAM,0CAA0C,CAAA;AAC3E,OAAO,KAAK,MAAM,aAAa,CAAA;AAC/B,OAAO,KAAK,WAAW,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;AAC7F,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,KAAK,CACrD,kDAAkD,CACnD,CAAA;AAID,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,KAAK,CAAA;AAElD,MAAM,iBAAiB,GAAG,8BAA8B,CAAA;AAYxD,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,eAAe,GAAG,IAAI,CAAA;IAC5B,MAAM,YAAY,GAAG,IAAI,CAAA;IACzB,MAAM,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE5D,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA;IACzE,OAAO,eAAe,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,CAAA;AACpD,CAAC;AAUD,KAAK,UAAU,aAAa,CAAC,OAAe;IAE1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,4CAA4C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC7F,MAAM,uBAAuB,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAA;IAC3B,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAA;KACd;SAAM;QACL,MAAM,8BAA8B,CAAA;KACrC;AACH,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAgB;IACjD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAG5C,IAAI,OAAO,CAAC,SAAS,KAAK,eAAe,EAAE;QACzC,OAAO,IAAI,CAAA;KACZ;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAExC,IAAI;QACF,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/C,MAAM,YAAY,GAAY,MAAM,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QAE7E,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;KACnC;IAAC,OAAO,OAAO,EAAE;QAChB,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAsB;IACxC,SAAS,EAAE,eAAe;IAC1B,YAAY;CACb,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAA;AAuBpE,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAsB9E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAA;AAyBpE,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAsB9E"}
package/lib/index.js CHANGED
@@ -1,34 +1,30 @@
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.validateLink = void 0;
7
- const ethereum_1 = __importDefault(require("./blockchains/ethereum"));
8
- const filecoin_1 = __importDefault(require("./blockchains/filecoin"));
9
- const polkadot_1 = __importDefault(require("./blockchains/polkadot"));
10
- const eosio_1 = __importDefault(require("./blockchains/eosio"));
11
- const cosmos_1 = __importDefault(require("./blockchains/cosmos"));
12
- const near_1 = __importDefault(require("./blockchains/near"));
13
- const tezos_1 = __importDefault(require("./blockchains/tezos"));
14
- const caip_1 = require("caip");
15
- const common_1 = require("@ceramicnetwork/common");
1
+ import { handler as ethereum } from './blockchains/ethereum.js';
2
+ import { handler as filecoin } from './blockchains/filecoin.js';
3
+ import { handler as polkadot } from './blockchains/polkadot.js';
4
+ import { handler as eosio } from './blockchains/eosio.js';
5
+ import { handler as cosmos } from './blockchains/cosmos.js';
6
+ import { handler as near } from './blockchains/near.js';
7
+ import { handler as tezos } from './blockchains/tezos.js';
8
+ import { handler as solana } from './blockchains/solana.js';
9
+ import { AccountId } from 'caip';
10
+ import { normalizeAccountId } from '@ceramicnetwork/common';
16
11
  const handlers = {
17
- [ethereum_1.default.namespace]: ethereum_1.default,
18
- [filecoin_1.default.namespace]: filecoin_1.default,
19
- [polkadot_1.default.namespace]: polkadot_1.default,
20
- [eosio_1.default.namespace]: eosio_1.default,
21
- [cosmos_1.default.namespace]: cosmos_1.default,
22
- [near_1.default.namespace]: near_1.default,
23
- [tezos_1.default.namespace]: tezos_1.default,
12
+ [ethereum.namespace]: ethereum,
13
+ [filecoin.namespace]: filecoin,
14
+ [polkadot.namespace]: polkadot,
15
+ [eosio.namespace]: eosio,
16
+ [cosmos.namespace]: cosmos,
17
+ [near.namespace]: near,
18
+ [tezos.namespace]: tezos,
19
+ [solana.namespace]: solana,
24
20
  };
25
- const findDID = (did) => { var _a; return (_a = did.match(/(did:\S+:\S+)/)) === null || _a === void 0 ? void 0 : _a[0]; };
26
- async function validateLink(proof) {
27
- let namespace = ethereum_1.default.namespace;
21
+ const findDID = (did) => did.match(/(did:\S+:\S+)/)?.[0];
22
+ export async function validateLink(proof) {
23
+ let namespace = ethereum.namespace;
28
24
  const proofCopy = { ...proof };
29
- proofCopy.account = common_1.normalizeAccountId(proofCopy.account).toString();
25
+ proofCopy.account = normalizeAccountId(proofCopy.account).toString();
30
26
  if (proofCopy.version >= 2) {
31
- namespace = new caip_1.AccountId(proofCopy.account).chainId.namespace;
27
+ namespace = new AccountId(proofCopy.account).chainId.namespace;
32
28
  }
33
29
  const handler = handlers[namespace];
34
30
  if (!handler)
@@ -42,5 +38,4 @@ async function validateLink(proof) {
42
38
  return null;
43
39
  }
44
40
  }
45
- exports.validateLink = validateLink;
46
41
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,sEAA6C;AAC7C,sEAA6C;AAC7C,sEAA6C;AAC7C,gEAAuC;AACvC,kEAAyC;AACzC,8DAAqC;AACrC,gEAAuC;AACvC,+BAAgC;AAChC,mDAA2D;AAE3D,MAAM,QAAQ,GAAG;IACf,CAAC,kBAAQ,CAAC,SAAS,CAAC,EAAE,kBAAQ;IAC9B,CAAC,kBAAQ,CAAC,SAAS,CAAC,EAAE,kBAAQ;IAC9B,CAAC,kBAAQ,CAAC,SAAS,CAAC,EAAE,kBAAQ;IAC9B,CAAC,eAAK,CAAC,SAAS,CAAC,EAAE,eAAK;IACxB,CAAC,gBAAM,CAAC,SAAS,CAAC,EAAE,gBAAM;IAC1B,CAAC,cAAI,CAAC,SAAS,CAAC,EAAE,cAAI;IACtB,CAAC,eAAK,CAAC,SAAS,CAAC,EAAE,eAAK;CACzB,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,GAAW,EAAsB,EAAE,WAAC,OAAA,MAAA,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,0CAAG,CAAC,CAAC,CAAA,EAAA,CAAA;AAE7E,KAAK,UAAU,YAAY,CAAC,KAAgB;IAEjD,IAAI,SAAS,GAAG,kBAAQ,CAAC,SAAS,CAAA;IAElC,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAAA;IAG9B,SAAS,CAAC,OAAO,GAAG,2BAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;IAEpE,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC,EAAE;QAC1B,SAAS,GAAG,IAAI,gBAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAA;KAC/D;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,iBAAiB,CAAC,CAAA;IAClF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IACxD,IAAI,UAAU,EAAE;QACd,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAC5C,OAAO,UAAU,CAAA;KAClB;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AAtBD,oCAsBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,MAAM,QAAQ,GAAG;IACf,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ;IAC9B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ;IAC9B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ;IAC9B,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK;IACxB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM;IAC1B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI;IACtB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK;IACxB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM;CAC3B,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,GAAW,EAAsB,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAEpF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAgB;IAEjD,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;IAElC,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAAA;IAG9B,SAAS,CAAC,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;IAEpE,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC,EAAE;QAC1B,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAA;KAC/D;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,iBAAiB,CAAC,CAAA;IAClF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IACxD,IAAI,UAAU,EAAE;QACd,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAC5C,OAAO,UAAU,CAAA;KAClB;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ceramicnetwork/blockchain-utils-validation",
3
- "version": "2.0.0-alpha.0",
3
+ "version": "2.0.0-alpha.3",
4
4
  "description": "Blockchain utils for validation of linked blockchain accounts",
5
5
  "keywords": [
6
6
  "ceramic",
@@ -9,32 +9,38 @@
9
9
  "homepage": "https://ceramic.network",
10
10
  "license": "(Apache-2.0 OR MIT)",
11
11
  "directories": {
12
- "lib": "lib"
12
+ "lib": "./lib"
13
13
  },
14
- "main": "lib/index.js",
14
+ "main": "./lib/index.js",
15
+ "types": "./lib/index.d.ts",
16
+ "type": "module",
15
17
  "files": [
16
18
  "lib"
17
19
  ],
20
+ "sideEffects": false,
21
+ "exports": {
22
+ ".": "./lib/index.js"
23
+ },
18
24
  "scripts": {
19
- "test": "../../node_modules/.bin/jest --silent --env=node",
20
- "build": "../../node_modules/.bin/tsc -p tsconfig.json",
25
+ "test": "NODE_OPTIONS=--experimental-vm-modules npx jest --silent --coverage --runInBand --forceExit",
26
+ "build": "npx tsc --project tsconfig.json",
21
27
  "prepublishOnly": "npm run build",
22
28
  "prebuild": "npm run clean",
23
- "lint": "../../node_modules/.bin/eslint ./src --ext .js,.jsx,.ts,.tsx",
24
- "clean": "rm -rf ./lib"
29
+ "lint": "npx eslint ./src --ext .js,.jsx,.ts,.tsx",
30
+ "clean": "npx rimraf ./lib"
25
31
  },
26
32
  "dependencies": {
27
- "@ceramicnetwork/blockchain-utils-linking": "^2.0.0-alpha.0",
28
- "@ceramicnetwork/common": "^2.0.0-alpha.0",
33
+ "@ceramicnetwork/blockchain-utils-linking": "^2.0.0-alpha.3",
34
+ "@ceramicnetwork/common": "^2.0.0-alpha.3",
29
35
  "@ethersproject/contracts": "^5.5.0",
30
- "@ethersproject/providers": "^5.5.0",
36
+ "@ethersproject/providers": "^5.5.1",
31
37
  "@ethersproject/wallet": "^5.5.0",
32
38
  "@polkadot/util-crypto": "^7.0.2",
33
39
  "@smontero/eosio-signing-tools": "^0.0.6",
34
40
  "@stablelib/ed25519": "^1.0.2",
35
- "@taquito/remote-signer": "^9.2.0-stablelib.0",
41
+ "@taquito/utils": "^11.2.0",
36
42
  "@tendermint/sig": "^0.6.0",
37
- "@zondax/filecoin-signing-tools": "^0.18.1",
43
+ "@zondax/filecoin-signing-tools": "^0.18.2",
38
44
  "caip": "~1.0.0",
39
45
  "cross-fetch": "^3.1.4",
40
46
  "uint8arrays": "^3.0.0"
@@ -46,13 +52,12 @@
46
52
  "@polkadot/keyring": "^6.2.1",
47
53
  "@polkadot/types": "^4.6.2",
48
54
  "@polkadot/util": "^7.1.1",
49
- "@polkadot/util-crypto": "^7.0.2",
50
55
  "@smontero/eosio-local-provider": "^0.0.3",
51
- "@solana/wallet-adapter-base": "^0.6.0",
52
- "@taquito/signer": "^11.0.1",
56
+ "@solana/wallet-adapter-base": "^0.7.1",
57
+ "@taquito/signer": "^11.2.0",
53
58
  "eth-sig-util": "^3.0.1",
54
- "ganache-core": "^2.13.1",
55
- "near-api-js": "^0.43.1"
59
+ "ganache-core": "^2.13.2",
60
+ "near-api-js": "^0.44.2"
56
61
  },
57
- "gitHead": "f432b554a4b134db45f24b2555bfda176feac505"
62
+ "gitHead": "d4ad7b5937a90588649f92de0190fe43bbf3a7d8"
58
63
  }