@cheqd/sdk 1.4.0 → 1.5.0-develop.2

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 (52) hide show
  1. package/.github/workflows/build.yml +3 -2
  2. package/.github/workflows/dispatch.yml +7 -1
  3. package/.github/workflows/test.yml +66 -0
  4. package/CHANGELOG.md +22 -0
  5. package/build/index.d.ts +1 -1
  6. package/build/index.d.ts.map +1 -1
  7. package/build/index.js +1 -3
  8. package/build/index.js.map +1 -1
  9. package/build/modules/did.d.ts +41 -28
  10. package/build/modules/did.d.ts.map +1 -1
  11. package/build/modules/did.js +78 -30
  12. package/build/modules/did.js.map +1 -1
  13. package/build/modules/resource.d.ts +4 -4
  14. package/build/modules/resource.d.ts.map +1 -1
  15. package/build/modules/resource.js +14 -33
  16. package/build/modules/resource.js.map +1 -1
  17. package/build/signer.d.ts +4 -4
  18. package/build/signer.d.ts.map +1 -1
  19. package/build/signer.js +27 -16
  20. package/build/signer.js.map +1 -1
  21. package/build/types.d.ts +239 -1
  22. package/build/types.d.ts.map +1 -1
  23. package/build/types.js +127 -2
  24. package/build/types.js.map +1 -1
  25. package/build/utils.d.ts +5 -17
  26. package/build/utils.d.ts.map +1 -1
  27. package/build/utils.js +52 -60
  28. package/build/utils.js.map +1 -1
  29. package/docker/Dockerfile +55 -0
  30. package/docker/entrypoint.sh +58 -0
  31. package/docker/localnet/build-latest.env +7 -0
  32. package/docker/localnet/container-env/observer-0.env +13 -0
  33. package/docker/localnet/container-env/seed-0.env +17 -0
  34. package/docker/localnet/container-env/validator-0.env +13 -0
  35. package/docker/localnet/container-env/validator-1.env +13 -0
  36. package/docker/localnet/container-env/validator-2.env +13 -0
  37. package/docker/localnet/container-env/validator-3.env +13 -0
  38. package/docker/localnet/docker-compose.yml +281 -0
  39. package/docker/localnet/gen-network-config.sh +259 -0
  40. package/docker/localnet/import-keys.sh +31 -0
  41. package/package.json +2 -2
  42. package/src/index.ts +1 -3
  43. package/src/modules/did.ts +118 -44
  44. package/src/modules/resource.ts +10 -33
  45. package/src/signer.ts +29 -16
  46. package/src/types.ts +160 -2
  47. package/src/utils.ts +67 -70
  48. package/tests/modules/did.test.ts +69 -9
  49. package/tests/modules/resource.test.ts +6 -4
  50. package/tests/signer.test.ts +25 -23
  51. package/tests/testutils.test.ts +43 -25
  52. package/tests/utils.test.ts +22 -2
package/build/utils.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- import { VerificationMethod } from "@cheqd/ts-proto/cheqd/v1/did";
2
- import { IKeyPair, IKeyValuePair, ISignInputs, VerificationMethods, MethodSpecificIdAlgo, TVerificationKey, TVerificationKeyPrefix, CheqdNetwork, IVerificationKeys } from "./types";
1
+ import { IKeyPair, IKeyValuePair, ISignInputs, VerificationMethods, MethodSpecificIdAlgo, TVerificationKey, TVerificationKeyPrefix, CheqdNetwork, IVerificationKeys, MsgCreateDidPayload, VerificationMethodPayload, MsgUpdateDidPayload } from "./types";
3
2
  import { KeyPair } from '@stablelib/ed25519';
4
- import { MsgCreateDidPayload, MsgUpdateDidPayload } from "@cheqd/ts-proto/cheqd/v1/tx";
5
3
  export type TImportableEd25519Key = {
6
4
  publicKeyHex: string;
7
5
  privateKeyHex: string;
@@ -9,22 +7,12 @@ export type TImportableEd25519Key = {
9
7
  type: "Ed25519";
10
8
  };
11
9
  export type IdentifierPayload = Partial<MsgCreateDidPayload> | Partial<MsgUpdateDidPayload>;
12
- export declare function parseToKeyValuePair(object: {
13
- [key: string]: any;
14
- }): IKeyValuePair[];
15
10
  export declare function isEqualKeyValuePair(kv1: IKeyValuePair[], kv2: IKeyValuePair[]): boolean;
16
- export declare function createSignInputsFromImportableEd25519Key(key: TImportableEd25519Key, verificationMethod: VerificationMethod[]): ISignInputs;
11
+ export declare function createSignInputsFromImportableEd25519Key(key: TImportableEd25519Key, verificationMethod: VerificationMethodPayload[]): ISignInputs;
17
12
  export declare function createKeyPairRaw(seed?: string): KeyPair;
18
13
  export declare function createKeyPairBase64(seed?: string): IKeyPair;
19
14
  export declare function createKeyPairHex(seed?: string): IKeyPair;
20
- export declare function createVerificationKeys(keyPair: IKeyPair, algo: MethodSpecificIdAlgo, key: TVerificationKey<TVerificationKeyPrefix, number>, length?: number, network?: CheqdNetwork): IVerificationKeys;
21
- export declare function createDidVerificationMethod(verificationMethodTypes: VerificationMethods[], verificationKeys: IVerificationKeys[]): VerificationMethod[];
22
- export declare function createDidPayload(verificationMethods: VerificationMethod[], verificationKeys: IVerificationKeys[]): MsgCreateDidPayload;
23
- export declare function createDidPayloadWithSignInputs(seed?: string, keys?: IKeyPair[]): {
24
- didPayload: MsgCreateDidPayload;
25
- keys: IKeyPair[];
26
- signInputs: ISignInputs[];
27
- };
28
- export declare function convertKeyPairtoTImportableEd25519Key(keyPair: IKeyPair): TImportableEd25519Key;
29
- export declare function createSignInputsFromKeyPair(didDocument: IdentifierPayload, keys: IKeyPair[]): ISignInputs[];
15
+ export declare function createVerificationKeys(publicKey: string, algo: MethodSpecificIdAlgo, key: TVerificationKey<TVerificationKeyPrefix, number>, network?: CheqdNetwork): IVerificationKeys;
16
+ export declare function createDidVerificationMethod(verificationMethodTypes: VerificationMethods[], verificationKeys: IVerificationKeys[]): VerificationMethodPayload[];
17
+ export declare function createDidPayload(verificationMethods: VerificationMethodPayload[], verificationKeys: IVerificationKeys[]): MsgCreateDidPayload;
30
18
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EACH,QAAQ,EACR,aAAa,EACb,WAAW,EACX,mBAAmB,EAEnB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACpB,MAAM,SAAS,CAAA;AAIhB,OAAO,EAA4C,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEtF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtF,MAAM,MAAM,qBAAqB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAE3F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,aAAa,EAAE,CAEnF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,OAAO,CAEvF;AAED,wBAAgB,wCAAwC,CAAC,GAAG,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,WAAW,CAgC1I;AAED,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAM3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAMxD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,gBAAgB,CAAC,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAE,MAAW,EAAE,OAAO,GAAE,YAAmC,GAAG,iBAAiB,CAuBjO;AAED,wBAAgB,2BAA2B,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,kBAAkB,EAAE,CA4BvJ;AAED,wBAAgB,gBAAgB,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,mBAAmB,CAetI;AAED,wBAAgB,8BAA8B,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE;;;;EAsB9E;AAED,wBAAgB,qCAAqC,CAAC,OAAO,EAAE,QAAQ,GAAI,qBAAqB,CAO/F;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAI3F"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,aAAa,EACb,WAAW,EACX,mBAAmB,EAEnB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACtB,MAAM,SAAS,CAAA;AAIhB,OAAO,EAA4C,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAItF,MAAM,MAAM,qBAAqB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,SAAS,CAAA;CAClB,CAAA;AAKD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAE3F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,OAAO,CAEvF;AAED,wBAAgB,wCAAwC,CAAC,GAAG,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,GAAG,WAAW,CA2CjJ;AAED,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAM3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAMxD;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,gBAAgB,CAAC,sBAAsB,EAAE,MAAM,CAAC,EAAE,OAAO,GAAE,YAAmC,GAAG,iBAAiB,CAyB5M;AAID,wBAAgB,2BAA2B,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,yBAAyB,EAAE,CAgC9J;AAED,wBAAgB,gBAAgB,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,mBAAmB,CAgB7I"}
package/build/utils.js CHANGED
@@ -1,17 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSignInputsFromKeyPair = exports.convertKeyPairtoTImportableEd25519Key = exports.createDidPayloadWithSignInputs = exports.createDidPayload = exports.createDidVerificationMethod = exports.createVerificationKeys = exports.createKeyPairHex = exports.createKeyPairBase64 = exports.createKeyPairRaw = exports.createSignInputsFromImportableEd25519Key = exports.isEqualKeyValuePair = exports.parseToKeyValuePair = void 0;
3
+ exports.createDidPayload = exports.createDidVerificationMethod = exports.createVerificationKeys = exports.createKeyPairHex = exports.createKeyPairBase64 = exports.createKeyPairRaw = exports.createSignInputsFromImportableEd25519Key = exports.isEqualKeyValuePair = void 0;
4
4
  const types_1 = require("./types");
5
5
  const uint8arrays_1 = require("uint8arrays");
6
6
  const basics_1 = require("multiformats/basics");
7
7
  const did_jwt_1 = require("did-jwt");
8
8
  const ed25519_1 = require("@stablelib/ed25519");
9
9
  const uuid_1 = require("uuid");
10
- const tx_1 = require("@cheqd/ts-proto/cheqd/v1/tx");
11
- function parseToKeyValuePair(object) {
12
- return Object.entries(object).map(([key, value]) => ({ key, value }));
13
- }
14
- exports.parseToKeyValuePair = parseToKeyValuePair;
10
+ const crypto_1 = require("crypto");
11
+ // multicodec ed25519-pub header as varint
12
+ const MULTICODEC_ED25519_PUB_HEADER = new Uint8Array([0xed, 0x01]);
15
13
  function isEqualKeyValuePair(kv1, kv2) {
16
14
  return kv1.every((item, index) => item.key === kv2[index].key && item.value === kv2[index].value);
17
15
  }
@@ -22,26 +20,37 @@ function createSignInputsFromImportableEd25519Key(key, verificationMethod) {
22
20
  const publicKey = (0, uint8arrays_1.fromString)(key.publicKeyHex, 'hex');
23
21
  for (const method of verificationMethod) {
24
22
  switch (method === null || method === void 0 ? void 0 : method.type) {
25
- case types_1.VerificationMethods.Base58:
26
- const publicKeyMultibase = basics_1.bases['base58btc'].encode(publicKey);
23
+ case types_1.VerificationMethods.Ed255192020:
24
+ const publicKeyMultibase = _encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey);
27
25
  if (method.publicKeyMultibase === publicKeyMultibase) {
28
26
  return {
29
27
  verificationMethodId: method.id,
30
28
  privateKeyHex: key.privateKeyHex
31
29
  };
32
30
  }
31
+ case types_1.VerificationMethods.Ed255192018:
32
+ const publicKeyBase58 = basics_1.bases['base58btc'].encode(publicKey).slice(1);
33
+ if (method.publicKeyBase58 === publicKeyBase58) {
34
+ return {
35
+ verificationMethodId: method.id,
36
+ privateKeyHex: key.privateKeyHex
37
+ };
38
+ }
33
39
  case types_1.VerificationMethods.JWK:
34
- const publicKeyJWK = parseToKeyValuePair({
40
+ const publicKeyJWK = {
35
41
  crv: 'Ed25519',
36
42
  kty: 'OKP',
37
43
  x: (0, uint8arrays_1.toString)(publicKey, 'base64url')
38
- });
39
- if (isEqualKeyValuePair(method.publicKeyJwk, publicKeyJWK)) {
44
+ };
45
+ if (JSON.stringify(method.publicKeyJWK) === JSON.stringify(publicKeyJWK)) {
40
46
  return {
41
47
  verificationMethodId: method.id,
42
48
  privateKeyHex: key.privateKeyHex
43
49
  };
44
50
  }
51
+ else {
52
+ throw new Error(`JWK not matching ${method.publicKeyJWK}, ${publicKeyJWK}`);
53
+ }
45
54
  }
46
55
  }
47
56
  throw new Error('No verification method type provided');
@@ -67,54 +76,61 @@ function createKeyPairHex(seed) {
67
76
  };
68
77
  }
69
78
  exports.createKeyPairHex = createKeyPairHex;
70
- function createVerificationKeys(keyPair, algo, key, length = 32, network = types_1.CheqdNetwork.Testnet) {
79
+ function createVerificationKeys(publicKey, algo, key, network = types_1.CheqdNetwork.Testnet) {
71
80
  let methodSpecificId;
72
81
  let didUrl;
82
+ publicKey = isBase64(publicKey) ? publicKey : (0, uint8arrays_1.toString)((0, uint8arrays_1.fromString)(publicKey, 'hex'), 'base64');
73
83
  switch (algo) {
74
84
  case types_1.MethodSpecificIdAlgo.Base58:
75
- methodSpecificId = basics_1.bases['base58btc'].encode((0, did_jwt_1.base64ToBytes)(keyPair.publicKey));
76
- didUrl = `did:cheqd:${network}:${methodSpecificId.substring(0, length)}`;
85
+ methodSpecificId = basics_1.bases['base58btc'].encode((0, did_jwt_1.base64ToBytes)(publicKey));
86
+ didUrl = `did:cheqd:${network}:${(basics_1.bases['base58btc'].encode(((0, uint8arrays_1.fromString)(sha256(publicKey))).slice(0, 16))).slice(1)}`;
77
87
  return {
78
88
  methodSpecificId,
79
89
  didUrl,
80
90
  keyId: `${didUrl}#${key}`,
81
- publicKey: keyPair.publicKey,
91
+ publicKey,
82
92
  };
83
93
  case types_1.MethodSpecificIdAlgo.Uuid:
84
- methodSpecificId = basics_1.bases['base58btc'].encode((0, did_jwt_1.base64ToBytes)(keyPair.publicKey));
94
+ methodSpecificId = basics_1.bases['base58btc'].encode((0, did_jwt_1.base64ToBytes)(publicKey));
85
95
  didUrl = `did:cheqd:${network}:${(0, uuid_1.v4)()}`;
86
96
  return {
87
97
  methodSpecificId,
88
98
  didUrl,
89
99
  keyId: `${didUrl}#${key}`,
90
- publicKey: keyPair.publicKey,
100
+ publicKey,
91
101
  };
92
102
  }
93
103
  }
94
104
  exports.createVerificationKeys = createVerificationKeys;
105
+ const isBase64 = (value) => /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/.test(value);
95
106
  function createDidVerificationMethod(verificationMethodTypes, verificationKeys) {
96
107
  var _a;
97
108
  return (_a = verificationMethodTypes.map((type, _) => {
98
109
  switch (type) {
99
- case types_1.VerificationMethods.Base58:
110
+ case types_1.VerificationMethods.Ed255192020:
111
+ return {
112
+ id: verificationKeys[_].keyId,
113
+ type,
114
+ controller: verificationKeys[_].didUrl,
115
+ publicKeyMultibase: _encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, (0, did_jwt_1.base64ToBytes)(verificationKeys[_].publicKey))
116
+ };
117
+ case types_1.VerificationMethods.Ed255192018:
100
118
  return {
101
119
  id: verificationKeys[_].keyId,
102
- type: type,
120
+ type,
103
121
  controller: verificationKeys[_].didUrl,
104
- publicKeyMultibase: verificationKeys[_].methodSpecificId,
105
- publicKeyJwk: []
122
+ publicKeyBase58: verificationKeys[_].methodSpecificId.slice(1)
106
123
  };
107
124
  case types_1.VerificationMethods.JWK:
108
125
  return {
109
126
  id: verificationKeys[_].keyId,
110
- type: type,
127
+ type,
111
128
  controller: verificationKeys[_].didUrl,
112
- publicKeyJwk: parseToKeyValuePair({
129
+ publicKeyJWK: {
113
130
  crv: 'Ed25519',
114
131
  kty: 'OKP',
115
132
  x: (0, uint8arrays_1.toString)((0, uint8arrays_1.fromString)(verificationKeys[_].publicKey, 'base64pad'), 'base64url')
116
- }),
117
- publicKeyMultibase: ''
133
+ }
118
134
  };
119
135
  }
120
136
  })) !== null && _a !== void 0 ? _a : [];
@@ -126,47 +142,23 @@ function createDidPayload(verificationMethods, verificationKeys) {
126
142
  if (!verificationKeys || verificationKeys.length === 0)
127
143
  throw new Error('No verification keys provided');
128
144
  const did = verificationKeys[0].didUrl;
129
- return tx_1.MsgCreateDidPayload.fromPartial({
145
+ return types_1.MsgCreateDidPayload.fromPartial({
130
146
  id: did,
131
147
  controller: verificationKeys.map(key => key.didUrl),
132
148
  verificationMethod: verificationMethods,
133
- authentication: verificationKeys.map(key => key.keyId)
149
+ authentication: verificationKeys.map(key => key.keyId),
150
+ versionId: (0, uuid_1.v4)()
134
151
  });
135
152
  }
136
153
  exports.createDidPayload = createDidPayload;
137
- function createDidPayloadWithSignInputs(seed, keys) {
138
- if (seed && keys)
139
- throw new Error('Only one of seed or keys should be passed as an argument');
140
- if (!keys) {
141
- keys = [seed ? createKeyPairBase64(seed) : createKeyPairBase64()];
142
- }
143
- const verificationMethodTypes = keys.map((key) => !key.algo || key.algo == types_1.MethodSpecificIdAlgo.Base58 ? types_1.VerificationMethods.Base58 : types_1.VerificationMethods.JWK);
144
- const verificationKeys = keys.map((key, i) => createVerificationKeys(key, key.algo || types_1.MethodSpecificIdAlgo.Base58, `key-${i}`));
145
- const verificationMethod = createDidVerificationMethod(verificationMethodTypes, verificationKeys);
146
- let payload = {
147
- id: verificationKeys[0].didUrl,
148
- controller: verificationKeys.map(key => key.didUrl),
149
- verificationMethod: verificationMethod,
150
- authentication: verificationKeys.map(key => key.keyId),
151
- };
152
- const keyHexs = keys.map((key) => convertKeyPairtoTImportableEd25519Key(key));
153
- const signInputs = keyHexs.map((key) => createSignInputsFromImportableEd25519Key(key, verificationMethod));
154
- return { didPayload: tx_1.MsgCreateDidPayload.fromPartial(payload), keys, signInputs };
155
- }
156
- exports.createDidPayloadWithSignInputs = createDidPayloadWithSignInputs;
157
- function convertKeyPairtoTImportableEd25519Key(keyPair) {
158
- return {
159
- type: 'Ed25519',
160
- privateKeyHex: (0, uint8arrays_1.toString)((0, uint8arrays_1.fromString)(keyPair.privateKey, 'base64'), 'hex'),
161
- kid: 'kid',
162
- publicKeyHex: (0, uint8arrays_1.toString)((0, uint8arrays_1.fromString)(keyPair.publicKey, 'base64'), 'hex')
163
- };
154
+ function sha256(message) {
155
+ return (0, crypto_1.createHash)('sha256').update(message).digest('hex');
164
156
  }
165
- exports.convertKeyPairtoTImportableEd25519Key = convertKeyPairtoTImportableEd25519Key;
166
- function createSignInputsFromKeyPair(didDocument, keys) {
167
- const keyHexs = keys.map((key) => convertKeyPairtoTImportableEd25519Key(key));
168
- const signInputs = keyHexs.map((key) => createSignInputsFromImportableEd25519Key(key, didDocument.verificationMethod));
169
- return signInputs;
157
+ // encode a multibase base58-btc multicodec key
158
+ function _encodeMbKey(header, key) {
159
+ const mbKey = new Uint8Array(header.length + key.length);
160
+ mbKey.set(header);
161
+ mbKey.set(key, header.length);
162
+ return basics_1.bases['base58btc'].encode(mbKey);
170
163
  }
171
- exports.createSignInputsFromKeyPair = createSignInputsFromKeyPair;
172
164
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ ###############################################################
2
+ ### STAGE 1: Build node binary pre-requisites ###
3
+ ###############################################################
4
+
5
+ FROM golang:1.18-alpine AS builder
6
+
7
+ # Install minimum necessary dependencies
8
+ ENV PACKAGES curl make git libc-dev bash gcc linux-headers
9
+ RUN apk update && apk add --no-cache $PACKAGES
10
+
11
+ # Set working directory for the build
12
+ WORKDIR /go/src/github.com/cheqd/cheqd-node
13
+
14
+ # Add source files
15
+ COPY . .
16
+
17
+ # Make node binary
18
+ RUN make build
19
+
20
+ ###############################################################
21
+ ### STAGE 2: Build cheqd-node image ###
22
+ ###############################################################
23
+
24
+ FROM alpine:3.17 AS runner
25
+
26
+ # Install pre-requisites
27
+ RUN apk update && apk add --no-cache bash ca-certificates
28
+
29
+ # Copy over binaries from the build-env
30
+ COPY --from=builder /go/src/github.com/cheqd/cheqd-node/build/cheqd-noded /bin/cheqd-noded
31
+
32
+ # Set user directory and details
33
+ ARG HOME_DIR="/home/cheqd"
34
+ ARG USER="cheqd"
35
+ ARG GROUP=${USER}
36
+ ARG UID=1000
37
+ ARG GID=${UID}
38
+
39
+ # Add cheqd user to use in the container
40
+ RUN addgroup --system ${GROUP} --gid ${GID} \
41
+ && adduser ${USER} --uid ${UID} -G ${GROUP} --system --home ${HOME_DIR} --shell /bin/bash
42
+
43
+ # Set entrypoint script
44
+ COPY --chown=${USER}:${GROUP} docker/entrypoint.sh /bin/node-start
45
+ RUN chmod +rx /bin/node-start
46
+
47
+ # Set working directory & bash defaults
48
+ WORKDIR ${HOME_DIR}
49
+ USER ${USER}
50
+ SHELL ["/bin/bash", "-euo", "pipefail", "-c"]
51
+
52
+ EXPOSE 26656 26657 26660 1317 9090 9091
53
+
54
+ # Set plain vanilla default entrypoint/command
55
+ CMD [ "cheqd-noded" ]
@@ -0,0 +1,58 @@
1
+ #!/bin/bash
2
+
3
+ # Inits node configuration and runs the node.
4
+ # e -> exit immediately, u -> treat unset variables as errors and immediately, o -> sets the exit code to the rightmost command
5
+ set -euo pipefail
6
+
7
+ # within the container, $HOME=/home/cheqd
8
+ CHEQD_ROOT_DIR="$HOME/.cheqdnode"
9
+
10
+ # Init node config directory
11
+ if [ ! -d "${CHEQD_ROOT_DIR}/config" ]
12
+ then
13
+ echo "Node config not found. Initializing."
14
+ cheqd-noded init "moniker-placeholder"
15
+ else
16
+ echo "Node config exists. Skipping initialization."
17
+ fi
18
+
19
+ # Check if a genesis file has been passed in config
20
+ if [ -f "/genesis" ]
21
+ then
22
+ echo "Genesis file passed. Adding/replacing current genesis file."
23
+ cp /genesis "${CHEQD_ROOT_DIR}/config/genesis.json"
24
+ else
25
+ echo "No genesis file passed. Skipping and retaining existing genesis."
26
+ fi
27
+
28
+ # Check if a seeds file has been passed in config
29
+ if [ -f "/seeds" ]
30
+ then
31
+ echo "Seeds file passed. Overriding current seeds."
32
+ cp /seeds "${CHEQD_ROOT_DIR}/config/seeds.txt"
33
+ CHEQD_NODED_P2P_SEEDS="$(cat "${CHEQD_ROOT_DIR}/config/seeds.txt")"
34
+ export CHEQD_NODED_P2P_SEEDS
35
+ else
36
+ echo "No seeds file passed. Skipping and retaining existing seeds."
37
+ fi
38
+
39
+ # Check if a node_key file has been passed in config
40
+ if [ -f "/node_key" ]
41
+ then
42
+ echo "Node key file passed. Overriding current key."
43
+ cp /node_key "${CHEQD_ROOT_DIR}/config/node_key.json"
44
+ else
45
+ echo "No node key file passed. Skipping and retaining existing node key."
46
+ fi
47
+
48
+ # Check if a priv_validator_key file has been passed in config
49
+ if [ -f "/priv_validator_key" ]
50
+ then
51
+ echo "Private validator key file passed. Replacing current key."
52
+ cp /priv_validator_key "${CHEQD_ROOT_DIR}/config/priv_validator_key.json"
53
+ else
54
+ echo "No private validator key file passed. Skipping and retaining existing key."
55
+ fi
56
+
57
+ # Run node
58
+ cheqd-noded start
@@ -0,0 +1,7 @@
1
+ # Environment variables used by Docker Compose
2
+
3
+ ###############################################################
4
+ ### REQUIRED: Node/network selection ###
5
+ ###############################################################
6
+ # Define cheqd-noded image source. Change if using your own build.
7
+ BUILD_IMAGE="ghcr.io/cheqd/cheqd-node:1.0.4-develop.1"
@@ -0,0 +1,13 @@
1
+ # Environment variables used by the container
2
+
3
+ # General
4
+ CHEQD_NODED_MONIKER="observer-0"
5
+ CHEQD_NODED_RPC_LADDR="tcp://0.0.0.0:26657"
6
+ CHEQD_NODED_API_ENABLE="true"
7
+ CHEQD_NODED_MINIMUM_GAS_PRICES="25ncheq"
8
+ # Consensus
9
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PROPOSE="500ms"
10
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PREVOTE="500ms"
11
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PRECOMMIT="500ms"
12
+ CHEQD_NODED_CONSENSUS_TIMEOUT_COMMIT="500ms"
13
+ CHEQD_NODED_CREATE_EMPTY_BLOCKS="false"
@@ -0,0 +1,17 @@
1
+ # Environment variables used by the container
2
+
3
+ # General
4
+ CHEQD_NODED_MONIKER="seed-0"
5
+ CHEQD_NODED_RPC_LADDR="tcp://0.0.0.0:26657"
6
+ CHEQD_NODED_API_ENABLE="true"
7
+ CHEQD_NODED_MINIMUM_GAS_PRICES="25ncheq"
8
+
9
+ # Seed specific
10
+ CHEQD_NODED_P2P_SEED_MODE
11
+
12
+ # Consensus
13
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PROPOSE="500ms"
14
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PREVOTE="500ms"
15
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PRECOMMIT="500ms"
16
+ CHEQD_NODED_CONSENSUS_TIMEOUT_COMMIT="500ms"
17
+ CHEQD_NODED_CREATE_EMPTY_BLOCKS="false"
@@ -0,0 +1,13 @@
1
+ # Environment variables used by the container
2
+
3
+ # General
4
+ CHEQD_NODED_MONIKER="validator-0"
5
+ CHEQD_NODED_RPC_LADDR="tcp://0.0.0.0:26657"
6
+ CHEQD_NODED_API_ENABLE="true"
7
+ CHEQD_NODED_MINIMUM_GAS_PRICES="25ncheq"
8
+ # Consensus
9
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PROPOSE="500ms"
10
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PREVOTE="500ms"
11
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PRECOMMIT="500ms"
12
+ CHEQD_NODED_CONSENSUS_TIMEOUT_COMMIT="500ms"
13
+ CHEQD_NODED_CREATE_EMPTY_BLOCKS="false"
@@ -0,0 +1,13 @@
1
+ # Environment variables used by the container
2
+
3
+ # General
4
+ CHEQD_NODED_MONIKER="validator-1"
5
+ CHEQD_NODED_RPC_LADDR="tcp://0.0.0.0:26657"
6
+ CHEQD_NODED_API_ENABLE="true"
7
+ CHEQD_NODED_MINIMUM_GAS_PRICES="25ncheq"
8
+ # Consensus
9
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PROPOSE="500ms"
10
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PREVOTE="500ms"
11
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PRECOMMIT="500ms"
12
+ CHEQD_NODED_CONSENSUS_TIMEOUT_COMMIT="500ms"
13
+ CHEQD_NODED_CREATE_EMPTY_BLOCKS="false"
@@ -0,0 +1,13 @@
1
+ # Environment variables used by the container
2
+
3
+ # General
4
+ CHEQD_NODED_MONIKER="validator-2"
5
+ CHEQD_NODED_RPC_LADDR="tcp://0.0.0.0:26657"
6
+ CHEQD_NODED_API_ENABLE="true"
7
+ CHEQD_NODED_MINIMUM_GAS_PRICES="25ncheq"
8
+ # Consensus
9
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PROPOSE="500ms"
10
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PREVOTE="500ms"
11
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PRECOMMIT="500ms"
12
+ CHEQD_NODED_CONSENSUS_TIMEOUT_COMMIT="500ms"
13
+ CHEQD_NODED_CREATE_EMPTY_BLOCKS="false"
@@ -0,0 +1,13 @@
1
+ # Environment variables used by the container
2
+
3
+ # General
4
+ CHEQD_NODED_MONIKER="validator-3"
5
+ CHEQD_NODED_RPC_LADDR="tcp://0.0.0.0:26657"
6
+ CHEQD_NODED_API_ENABLE="true"
7
+ CHEQD_NODED_MINIMUM_GAS_PRICES="25ncheq"
8
+ # Consensus
9
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PROPOSE="500ms"
10
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PREVOTE="500ms"
11
+ CHEQD_NODED_CONSENSUS_TIMEOUT_PRECOMMIT="500ms"
12
+ CHEQD_NODED_CONSENSUS_TIMEOUT_COMMIT="500ms"
13
+ CHEQD_NODED_CREATE_EMPTY_BLOCKS="false"