@docknetwork/wallet-sdk-wasm 1.5.9 → 1.5.11

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 (267) hide show
  1. package/lib/core/format-utils.js +0 -28
  2. package/lib/core/format-utils.mjs +1 -24
  3. package/lib/core/validation.js +1 -24
  4. package/lib/core/validation.mjs +2 -21
  5. package/lib/index.js +13 -23
  6. package/lib/index.mjs +13 -23
  7. package/lib/rpc-server.js +13 -23
  8. package/lib/rpc-server.mjs +13 -23
  9. package/lib/rpc-util.js +14 -0
  10. package/lib/rpc-util.mjs +14 -0
  11. package/lib/services/blockchain/index.js +3 -6
  12. package/lib/services/blockchain/index.mjs +3 -6
  13. package/lib/services/blockchain/service.js +5 -9
  14. package/lib/services/blockchain/service.mjs +5 -9
  15. package/lib/services/credential/bbs-revocation.js +4 -7
  16. package/lib/services/credential/bbs-revocation.mjs +3 -6
  17. package/lib/services/credential/bound-check.js +9 -4
  18. package/lib/services/credential/bound-check.mjs +9 -4
  19. package/lib/services/credential/index.js +11 -13
  20. package/lib/services/credential/index.mjs +11 -13
  21. package/lib/services/credential/service.js +18 -18
  22. package/lib/services/credential/service.mjs +15 -15
  23. package/lib/services/credential/utils.js +59 -28
  24. package/lib/services/credential/utils.mjs +62 -32
  25. package/lib/services/dids/index.js +7 -25
  26. package/lib/services/dids/index.mjs +7 -25
  27. package/lib/services/dids/keypair-utils.js +142 -0
  28. package/lib/services/dids/keypair-utils.mjs +113 -0
  29. package/lib/services/dids/service-rpc.js +0 -3
  30. package/lib/services/dids/service-rpc.mjs +0 -3
  31. package/lib/services/dids/service.js +13 -55
  32. package/lib/services/dids/service.mjs +13 -54
  33. package/lib/services/edv/index.js +4 -25
  34. package/lib/services/edv/index.mjs +4 -25
  35. package/lib/services/edv/service.js +6 -33
  36. package/lib/services/edv/service.mjs +6 -33
  37. package/lib/services/index.js +13 -25
  38. package/lib/services/index.mjs +13 -25
  39. package/lib/services/relay-service/configs.js +0 -1
  40. package/lib/services/relay-service/configs.mjs +0 -1
  41. package/lib/services/relay-service/index.android.js +0 -1
  42. package/lib/services/relay-service/index.android.mjs +0 -1
  43. package/lib/services/relay-service/index.ios.js +0 -1
  44. package/lib/services/relay-service/index.ios.mjs +0 -1
  45. package/lib/services/relay-service/index.js +0 -1
  46. package/lib/services/relay-service/index.mjs +0 -1
  47. package/lib/services/relay-service/service-rpc.js +0 -1
  48. package/lib/services/relay-service/service-rpc.mjs +0 -1
  49. package/lib/services/relay-service/service.js +0 -1
  50. package/lib/services/relay-service/service.mjs +0 -1
  51. package/lib/services/test-utils.js +0 -44
  52. package/lib/services/test-utils.mjs +1 -44
  53. package/lib/services/util-crypto/configs.js +0 -12
  54. package/lib/services/util-crypto/configs.mjs +0 -12
  55. package/lib/services/util-crypto/index.android.js +0 -3
  56. package/lib/services/util-crypto/index.android.mjs +0 -3
  57. package/lib/services/util-crypto/index.ios.js +0 -3
  58. package/lib/services/util-crypto/index.ios.mjs +0 -3
  59. package/lib/services/util-crypto/index.js +4 -7
  60. package/lib/services/util-crypto/index.mjs +4 -7
  61. package/lib/services/util-crypto/service-rpc.js +2 -30
  62. package/lib/services/util-crypto/service-rpc.mjs +2 -30
  63. package/lib/services/util-crypto/service.js +68 -61
  64. package/lib/services/util-crypto/service.mjs +50 -59
  65. package/lib/services/wallet/configs.js +0 -63
  66. package/lib/services/wallet/configs.mjs +1 -64
  67. package/lib/services/wallet/index.android.js +0 -1
  68. package/lib/services/wallet/index.android.mjs +0 -1
  69. package/lib/services/wallet/index.ios.js +0 -1
  70. package/lib/services/wallet/index.ios.mjs +0 -1
  71. package/lib/services/wallet/index.js +2 -12
  72. package/lib/services/wallet/index.mjs +2 -12
  73. package/lib/services/wallet/service-rpc.js +0 -77
  74. package/lib/services/wallet/service-rpc.mjs +0 -77
  75. package/lib/services/wallet/service.js +1 -215
  76. package/lib/services/wallet/service.mjs +1 -211
  77. package/lib/setup-nodejs.js +13 -23
  78. package/lib/setup-nodejs.mjs +13 -23
  79. package/lib/setup-tests.js +13 -23
  80. package/lib/setup-tests.mjs +13 -23
  81. package/lib/src/core/format-utils.d.ts +0 -5
  82. package/lib/src/core/format-utils.d.ts.map +1 -1
  83. package/lib/src/core/validation.d.ts +0 -3
  84. package/lib/src/core/validation.d.ts.map +1 -1
  85. package/lib/src/rpc-util.d.ts.map +1 -1
  86. package/lib/src/services/blockchain/service.d.ts.map +1 -1
  87. package/lib/src/services/credential/bbs-revocation.d.ts.map +1 -1
  88. package/lib/src/services/credential/bound-check.d.ts +1 -1
  89. package/lib/src/services/credential/bound-check.d.ts.map +1 -1
  90. package/lib/src/services/credential/service.d.ts.map +1 -1
  91. package/lib/src/services/credential/utils.d.ts +2 -1
  92. package/lib/src/services/credential/utils.d.ts.map +1 -1
  93. package/lib/src/services/dids/keypair-utils.d.ts +15 -0
  94. package/lib/src/services/dids/keypair-utils.d.ts.map +1 -0
  95. package/lib/src/services/dids/service-rpc.d.ts +0 -1
  96. package/lib/src/services/dids/service-rpc.d.ts.map +1 -1
  97. package/lib/src/services/dids/service.d.ts +11 -8
  98. package/lib/src/services/dids/service.d.ts.map +1 -1
  99. package/lib/src/services/edv/service.d.ts.map +1 -1
  100. package/lib/src/services/util-crypto/configs.d.ts +0 -3
  101. package/lib/src/services/util-crypto/configs.d.ts.map +1 -1
  102. package/lib/src/services/util-crypto/service.d.ts +3 -8
  103. package/lib/src/services/util-crypto/service.d.ts.map +1 -1
  104. package/lib/src/services/wallet/configs.d.ts +13 -0
  105. package/lib/src/services/wallet/configs.d.ts.map +1 -0
  106. package/lib/src/services/wallet/service.d.ts +1 -44
  107. package/lib/src/services/wallet/service.d.ts.map +1 -1
  108. package/lib/test-utils.js +0 -4
  109. package/lib/test-utils.mjs +1 -4
  110. package/lib/tsconfig.tsbuildinfo +1 -1
  111. package/package.json +5 -25
  112. package/readme.md +0 -61
  113. package/src/core/format-utils.test.js +1 -28
  114. package/src/core/format-utils.ts +0 -33
  115. package/src/core/validation.test.js +1 -33
  116. package/src/core/validation.ts +1 -25
  117. package/src/rpc-server.test.js +2 -9
  118. package/src/rpc-util.js +14 -0
  119. package/src/services/blockchain/service.ts +2 -3
  120. package/src/services/credential/bbs-revocation.ts +2 -1
  121. package/src/services/credential/bound-check.test.ts +6 -6
  122. package/src/services/credential/bound-check.ts +4 -4
  123. package/src/services/credential/index.test.js +0 -2
  124. package/src/services/credential/service.ts +5 -2
  125. package/src/services/credential/utils.js +65 -23
  126. package/src/services/dids/index.test.js +45 -33
  127. package/src/services/dids/keypair-utils.js +111 -0
  128. package/src/services/dids/service-rpc.ts +0 -3
  129. package/src/services/dids/service.ts +7 -34
  130. package/src/services/edv/service.ts +2 -9
  131. package/src/services/index.js +0 -4
  132. package/src/services/test-utils.js +0 -29
  133. package/src/services/util-crypto/configs.ts +0 -12
  134. package/src/services/util-crypto/index.test.js +6 -83
  135. package/src/services/util-crypto/service-rpc.js +2 -27
  136. package/src/services/util-crypto/service.ts +62 -75
  137. package/src/services/wallet/configs.ts +1 -113
  138. package/src/services/wallet/index.test.js +0 -159
  139. package/src/services/wallet/service-rpc.js +1 -88
  140. package/src/services/wallet/service.ts +0 -258
  141. package/src/test-utils.js +0 -13
  142. package/lib/account-357ab05d.js +0 -742
  143. package/lib/account-399e6053.js +0 -752
  144. package/lib/core/polkadot-utils.js +0 -119
  145. package/lib/core/polkadot-utils.mjs +0 -94
  146. package/lib/core/realm-schemas.js +0 -50
  147. package/lib/core/realm-schemas.mjs +0 -44
  148. package/lib/core/subscan.js +0 -75
  149. package/lib/core/subscan.mjs +0 -64
  150. package/lib/fixtures.js +0 -56
  151. package/lib/fixtures.mjs +0 -52
  152. package/lib/modules/account.js +0 -48
  153. package/lib/modules/account.mjs +0 -40
  154. package/lib/modules/accounts.js +0 -49
  155. package/lib/modules/accounts.mjs +0 -40
  156. package/lib/modules/data-migration.js +0 -72
  157. package/lib/modules/data-migration.mjs +0 -68
  158. package/lib/modules/wallet-backup.js +0 -82
  159. package/lib/modules/wallet-backup.mjs +0 -71
  160. package/lib/modules/wallet.js +0 -49
  161. package/lib/modules/wallet.mjs +0 -40
  162. package/lib/services/example/configs.js +0 -21
  163. package/lib/services/example/configs.mjs +0 -13
  164. package/lib/services/example/index.js +0 -18
  165. package/lib/services/example/index.mjs +0 -14
  166. package/lib/services/example/service-rpc.js +0 -25
  167. package/lib/services/example/service-rpc.mjs +0 -21
  168. package/lib/services/example/service.js +0 -25
  169. package/lib/services/example/service.mjs +0 -20
  170. package/lib/services/keyring/configs.js +0 -70
  171. package/lib/services/keyring/configs.mjs +0 -61
  172. package/lib/services/keyring/index.android.js +0 -22
  173. package/lib/services/keyring/index.android.mjs +0 -18
  174. package/lib/services/keyring/index.ios.js +0 -22
  175. package/lib/services/keyring/index.ios.mjs +0 -18
  176. package/lib/services/keyring/index.js +0 -16
  177. package/lib/services/keyring/index.mjs +0 -8
  178. package/lib/services/keyring/service-rpc.js +0 -65
  179. package/lib/services/keyring/service-rpc.mjs +0 -61
  180. package/lib/services/keyring/service.js +0 -84
  181. package/lib/services/keyring/service.mjs +0 -74
  182. package/lib/services/polkadot/configs.js +0 -17
  183. package/lib/services/polkadot/configs.mjs +0 -13
  184. package/lib/services/polkadot/index.android.js +0 -22
  185. package/lib/services/polkadot/index.android.mjs +0 -18
  186. package/lib/services/polkadot/index.ios.js +0 -22
  187. package/lib/services/polkadot/index.ios.mjs +0 -18
  188. package/lib/services/polkadot/index.js +0 -15
  189. package/lib/services/polkadot/index.mjs +0 -7
  190. package/lib/services/polkadot/service-rpc.js +0 -30
  191. package/lib/services/polkadot/service-rpc.mjs +0 -26
  192. package/lib/services/polkadot/service.js +0 -28
  193. package/lib/services/polkadot/service.mjs +0 -23
  194. package/lib/src/core/polkadot-utils.d.ts +0 -11
  195. package/lib/src/core/polkadot-utils.d.ts.map +0 -1
  196. package/lib/src/modules/account.d.ts +0 -60
  197. package/lib/src/modules/account.d.ts.map +0 -1
  198. package/lib/src/modules/accounts.d.ts +0 -48
  199. package/lib/src/modules/accounts.d.ts.map +0 -1
  200. package/lib/src/modules/data-migration.d.ts +0 -7
  201. package/lib/src/modules/data-migration.d.ts.map +0 -1
  202. package/lib/src/modules/wallet-backup.d.ts +0 -12
  203. package/lib/src/modules/wallet-backup.d.ts.map +0 -1
  204. package/lib/src/modules/wallet.d.ts +0 -134
  205. package/lib/src/modules/wallet.d.ts.map +0 -1
  206. package/lib/src/services/blockchain/index.d.ts +0 -2
  207. package/lib/src/services/blockchain/index.d.ts.map +0 -1
  208. package/lib/src/services/example/configs.d.ts +0 -9
  209. package/lib/src/services/example/configs.d.ts.map +0 -1
  210. package/lib/src/services/example/service.d.ts +0 -8
  211. package/lib/src/services/example/service.d.ts.map +0 -1
  212. package/lib/src/services/keyring/configs.d.ts +0 -39
  213. package/lib/src/services/keyring/configs.d.ts.map +0 -1
  214. package/lib/src/services/keyring/index.d.ts +0 -2
  215. package/lib/src/services/keyring/index.d.ts.map +0 -1
  216. package/lib/src/services/polkadot/configs.d.ts +0 -8
  217. package/lib/src/services/polkadot/configs.d.ts.map +0 -1
  218. package/lib/src/services/polkadot/index.d.ts +0 -2
  219. package/lib/src/services/polkadot/index.d.ts.map +0 -1
  220. package/lib/src/services/polkadot/service.d.ts +0 -8
  221. package/lib/src/services/polkadot/service.d.ts.map +0 -1
  222. package/lib/src/services/wallet/index.d.ts +0 -2
  223. package/lib/src/services/wallet/index.d.ts.map +0 -1
  224. package/lib/test/axiosMocks.js +0 -431
  225. package/lib/test/axiosMocks.mjs +0 -420
  226. package/lib/test/setup-test-state.js +0 -81
  227. package/lib/test/setup-test-state.mjs +0 -73
  228. package/src/core/polkadot-utils.js +0 -99
  229. package/src/core/realm-schemas.js +0 -42
  230. package/src/core/subscan.js +0 -62
  231. package/src/core/subscan.test.js +0 -56
  232. package/src/fixtures.js +0 -43
  233. package/src/modules/account.test.js +0 -56
  234. package/src/modules/account.ts +0 -128
  235. package/src/modules/accounts.test.js +0 -63
  236. package/src/modules/accounts.ts +0 -231
  237. package/src/modules/data-migration.test.js +0 -61
  238. package/src/modules/data-migration.ts +0 -86
  239. package/src/modules/wallet-backup.test.js +0 -24
  240. package/src/modules/wallet-backup.ts +0 -68
  241. package/src/modules/wallet.test.js +0 -216
  242. package/src/modules/wallet.ts +0 -424
  243. package/src/services/example/configs.js +0 -14
  244. package/src/services/example/index.js +0 -3
  245. package/src/services/example/index.test.js +0 -28
  246. package/src/services/example/service-rpc.js +0 -11
  247. package/src/services/example/service.ts +0 -18
  248. package/src/services/keyring/configs.ts +0 -110
  249. package/src/services/keyring/index.android.js +0 -3
  250. package/src/services/keyring/index.ios.js +0 -3
  251. package/src/services/keyring/index.js +0 -1
  252. package/src/services/keyring/index.test.js +0 -48
  253. package/src/services/keyring/service-rpc.js +0 -56
  254. package/src/services/keyring/service.ts +0 -111
  255. package/src/services/polkadot/configs.ts +0 -13
  256. package/src/services/polkadot/index.android.js +0 -3
  257. package/src/services/polkadot/index.ios.js +0 -3
  258. package/src/services/polkadot/index.js +0 -1
  259. package/src/services/polkadot/index.test.js +0 -52
  260. package/src/services/polkadot/service-rpc.js +0 -13
  261. package/src/services/polkadot/service.ts +0 -21
  262. package/src/test/axiosMocks.js +0 -20
  263. package/src/test/fixtures/subscan-failure.json +0 -5
  264. package/src/test/fixtures/subscan-success.json +0 -370
  265. package/src/test/fixtures/subscan-too-many-requests.json +0 -9
  266. package/src/test/setup-test-state.js +0 -35
  267. package/src/test/test-wallet.test.js +0 -15
@@ -2,35 +2,17 @@ import { didService } from './service.mjs';
2
2
  import '@docknetwork/wallet-sdk-dids/lib';
3
3
  import './config.mjs';
4
4
  import 'assert';
5
- import '../keyring/service.mjs';
6
- import '@polkadot/keyring';
7
- import '@polkadot/util-crypto';
8
- import '../keyring/configs.mjs';
9
- import '../../core/validation.mjs';
10
- import 'bignumber.js';
11
- import '../../types.mjs';
12
- import '../util-crypto/service.mjs';
13
- import '@polkadot/util';
14
- import '../util-crypto/configs.mjs';
15
- import '../blockchain/service.mjs';
16
- import '@cosmjs/proto-signing';
17
- import '@docknetwork/cheqd-blockchain-api';
18
- import '@docknetwork/cheqd-blockchain-modules';
19
- import '@docknetwork/credential-sdk/modules';
20
- import '@docknetwork/credential-sdk/resolver';
21
- import '@docknetwork/crypto-wasm-ts/lib/index';
22
- import 'events';
23
- import '../../core/logger.mjs';
24
- import '../../modules/event-manager.mjs';
25
- import '@docknetwork/credential-sdk/types';
26
- import '../../core/polkadot-utils.mjs';
27
5
  import '@docknetwork/credential-sdk/keypairs';
28
- import '@polkadot/keyring/pair/decode';
29
- import 'base58-universal';
30
- import '@docknetwork/universal-wallet/methods/keypairs';
31
6
  import 'base64url';
32
7
  import '../credential/utils.mjs';
8
+ import 'base58-universal';
33
9
  import '@docknetwork/credential-sdk/vc/crypto';
10
+ import '@docknetwork/credential-sdk/utils';
11
+ import '@digitalbazaar/x25519-key-agreement-key-2020';
12
+ import '@digitalbazaar/x25519-key-agreement-key-2019';
13
+ import '@digitalbazaar/ed25519-verification-key-2018';
14
+ import '@digitalbazaar/ed25519-verification-key-2020';
15
+ import './keypair-utils.mjs';
34
16
 
35
17
  const didServiceRPC = didService;
36
18
 
@@ -0,0 +1,142 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var keypairs = require('@docknetwork/credential-sdk/keypairs');
6
+ var utils = require('@docknetwork/credential-sdk/utils');
7
+ var bs58 = require('base58-universal');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n["default"] = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var bs58__namespace = /*#__PURE__*/_interopNamespace(bs58);
28
+
29
+ /**
30
+ * This code is based on the implementation from truvera api
31
+ * https://github.com/docknetwork/web/blob/3c706c5dc5de4ae63f548c76ec6edeb17533a0c9/apps/api/src/utils/key-manager.js
32
+ */
33
+
34
+ function getKeyPairType(key) {
35
+ const keyType = key.type || key.constructor.VerKeyType;
36
+ if (keyType) {
37
+ return keyType;
38
+ }
39
+
40
+ if (key instanceof keypairs.Ed25519Keypair) {
41
+ return 'Ed25519VerificationKey2018';
42
+ }
43
+
44
+ throw new Error(`Unknown key type for ${key.constructor.name}`);
45
+ }
46
+
47
+ const MULTIBASE_BASE58BTC_HEADER = 'z';
48
+ const MULTICODEC_ED25519_PUB_HEADER = new Uint8Array([0xed, 0x01]);
49
+ const MULTICODEC_ED25519_PRIV_HEADER = new Uint8Array([0x80, 0x26]);
50
+
51
+ function encodeMbKey(header, key) {
52
+ const mbKey = new Uint8Array(header.length + key.length);
53
+ mbKey.set(header);
54
+ mbKey.set(key, header.length);
55
+ return MULTIBASE_BASE58BTC_HEADER + bs58__namespace.encode(mbKey);
56
+ }
57
+
58
+ function getKeyFingerprint(keyType, publicKey) {
59
+ if (keyType.startsWith('Ed25519')) {
60
+ return encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey);
61
+ } else {
62
+ throw new Error(`Cannot detect key type for fingerprint: ${keyType}`);
63
+ }
64
+ }
65
+
66
+ const keyTypeToDocType = {
67
+ bjj: 'BJJVerificationKey2021',
68
+ secp256k1: 'EcdsaSecp256k1VerificationKey2019',
69
+ };
70
+
71
+ function keypairToKeydoc(key, controller, id = undefined) {
72
+ const keyType = getKeyPairType(key);
73
+ let keyDoc;
74
+ if (
75
+ keyType === 'Ed25519VerificationKey2020' ||
76
+ keyType === 'Ed25519VerificationKey2018'
77
+ ) {
78
+ const publicKey = utils.u8aToU8a(
79
+ (key.keyPair &&
80
+ key.keyPair.publicKey &&
81
+ utils.u8aToU8a(key.keyPair.publicKey)) ||
82
+ key.publicKeyBuffer ||
83
+ (key.pk && key.pk.value),
84
+ );
85
+
86
+ if (!publicKey) {
87
+ throw new Error('Cannot find public key');
88
+ }
89
+
90
+ const pk = utils.u8aToU8a(
91
+ (key.keyPair && key.keyPair.secretKey) ||
92
+ key.privateKeyBuffer ||
93
+ (key.sk &&
94
+ (typeof key.sk === 'string'
95
+ ? utils.hexToU8a(key.sk)
96
+ : key.sk.value || key.sk)) ||
97
+ utils.hexToU8a(key.pk),
98
+ );
99
+
100
+ const publicKeyBase58 = bs58__namespace.encode(publicKey);
101
+ const privateKeyBase58 = bs58__namespace.encode(pk);
102
+
103
+ const fingerprint =
104
+ (key.fingerprint && key.fingerprint()) ||
105
+ getKeyFingerprint(keyType, publicKey);
106
+
107
+ // auto create controller
108
+ if (!controller) {
109
+ controller = `did:key:${fingerprint}`;
110
+ id = id || key.id || `${controller}#${fingerprint}`;
111
+ }
112
+
113
+ const keyId = id || key.id || `${controller}#${fingerprint}`;
114
+ const type = keyTypeToDocType[keyType] || keyType;
115
+ keyDoc = {
116
+ controller,
117
+ type,
118
+ id: keyId,
119
+ publicKeyMultibase: encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey),
120
+ privateKeyMultibase: encodeMbKey(MULTICODEC_ED25519_PRIV_HEADER, pk),
121
+ privateKeyBase58,
122
+ publicKeyBase58,
123
+ };
124
+
125
+ if (key.seed) {
126
+ keyDoc.seed = utils.u8aToHex(key.seed);
127
+ }
128
+ } else {
129
+ throw new Error(`Unknown keypairToKeydoc type: ${keyType}`);
130
+ }
131
+
132
+ keyDoc['@context'] = ['https://w3id.org/wallet/v1'];
133
+
134
+ return keyDoc;
135
+ }
136
+
137
+ exports.MULTIBASE_BASE58BTC_HEADER = MULTIBASE_BASE58BTC_HEADER;
138
+ exports.MULTICODEC_ED25519_PRIV_HEADER = MULTICODEC_ED25519_PRIV_HEADER;
139
+ exports.MULTICODEC_ED25519_PUB_HEADER = MULTICODEC_ED25519_PUB_HEADER;
140
+ exports.encodeMbKey = encodeMbKey;
141
+ exports.getKeyPairType = getKeyPairType;
142
+ exports.keypairToKeydoc = keypairToKeydoc;
@@ -0,0 +1,113 @@
1
+ import { Ed25519Keypair } from '@docknetwork/credential-sdk/keypairs';
2
+ import { u8aToU8a, hexToU8a, u8aToHex } from '@docknetwork/credential-sdk/utils';
3
+ import * as bs58 from 'base58-universal';
4
+
5
+ /**
6
+ * This code is based on the implementation from truvera api
7
+ * https://github.com/docknetwork/web/blob/3c706c5dc5de4ae63f548c76ec6edeb17533a0c9/apps/api/src/utils/key-manager.js
8
+ */
9
+
10
+ function getKeyPairType(key) {
11
+ const keyType = key.type || key.constructor.VerKeyType;
12
+ if (keyType) {
13
+ return keyType;
14
+ }
15
+
16
+ if (key instanceof Ed25519Keypair) {
17
+ return 'Ed25519VerificationKey2018';
18
+ }
19
+
20
+ throw new Error(`Unknown key type for ${key.constructor.name}`);
21
+ }
22
+
23
+ const MULTIBASE_BASE58BTC_HEADER = 'z';
24
+ const MULTICODEC_ED25519_PUB_HEADER = new Uint8Array([0xed, 0x01]);
25
+ const MULTICODEC_ED25519_PRIV_HEADER = new Uint8Array([0x80, 0x26]);
26
+
27
+ function encodeMbKey(header, key) {
28
+ const mbKey = new Uint8Array(header.length + key.length);
29
+ mbKey.set(header);
30
+ mbKey.set(key, header.length);
31
+ return MULTIBASE_BASE58BTC_HEADER + bs58.encode(mbKey);
32
+ }
33
+
34
+ function getKeyFingerprint(keyType, publicKey) {
35
+ if (keyType.startsWith('Ed25519')) {
36
+ return encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey);
37
+ } else {
38
+ throw new Error(`Cannot detect key type for fingerprint: ${keyType}`);
39
+ }
40
+ }
41
+
42
+ const keyTypeToDocType = {
43
+ bjj: 'BJJVerificationKey2021',
44
+ secp256k1: 'EcdsaSecp256k1VerificationKey2019',
45
+ };
46
+
47
+ function keypairToKeydoc(key, controller, id = undefined) {
48
+ const keyType = getKeyPairType(key);
49
+ let keyDoc;
50
+ if (
51
+ keyType === 'Ed25519VerificationKey2020' ||
52
+ keyType === 'Ed25519VerificationKey2018'
53
+ ) {
54
+ const publicKey = u8aToU8a(
55
+ (key.keyPair &&
56
+ key.keyPair.publicKey &&
57
+ u8aToU8a(key.keyPair.publicKey)) ||
58
+ key.publicKeyBuffer ||
59
+ (key.pk && key.pk.value),
60
+ );
61
+
62
+ if (!publicKey) {
63
+ throw new Error('Cannot find public key');
64
+ }
65
+
66
+ const pk = u8aToU8a(
67
+ (key.keyPair && key.keyPair.secretKey) ||
68
+ key.privateKeyBuffer ||
69
+ (key.sk &&
70
+ (typeof key.sk === 'string'
71
+ ? hexToU8a(key.sk)
72
+ : key.sk.value || key.sk)) ||
73
+ hexToU8a(key.pk),
74
+ );
75
+
76
+ const publicKeyBase58 = bs58.encode(publicKey);
77
+ const privateKeyBase58 = bs58.encode(pk);
78
+
79
+ const fingerprint =
80
+ (key.fingerprint && key.fingerprint()) ||
81
+ getKeyFingerprint(keyType, publicKey);
82
+
83
+ // auto create controller
84
+ if (!controller) {
85
+ controller = `did:key:${fingerprint}`;
86
+ id = id || key.id || `${controller}#${fingerprint}`;
87
+ }
88
+
89
+ const keyId = id || key.id || `${controller}#${fingerprint}`;
90
+ const type = keyTypeToDocType[keyType] || keyType;
91
+ keyDoc = {
92
+ controller,
93
+ type,
94
+ id: keyId,
95
+ publicKeyMultibase: encodeMbKey(MULTICODEC_ED25519_PUB_HEADER, publicKey),
96
+ privateKeyMultibase: encodeMbKey(MULTICODEC_ED25519_PRIV_HEADER, pk),
97
+ privateKeyBase58,
98
+ publicKeyBase58,
99
+ };
100
+
101
+ if (key.seed) {
102
+ keyDoc.seed = u8aToHex(key.seed);
103
+ }
104
+ } else {
105
+ throw new Error(`Unknown keypairToKeydoc type: ${keyType}`);
106
+ }
107
+
108
+ keyDoc['@context'] = ['https://w3id.org/wallet/v1'];
109
+
110
+ return keyDoc;
111
+ }
112
+
113
+ export { MULTIBASE_BASE58BTC_HEADER, MULTICODEC_ED25519_PRIV_HEADER, MULTICODEC_ED25519_PUB_HEADER, encodeMbKey, getKeyPairType, keypairToKeydoc };
@@ -29,9 +29,6 @@ class DIDServiceRPC extends services_rpcServiceClient.RpcService {
29
29
  deriveKeyDoc(params) {
30
30
  return this.call('deriveKeyDoc', params);
31
31
  }
32
- getDidDockDocument(did) {
33
- return this.call('getDidDockDocument', did);
34
- }
35
32
  createSignedJWT(params) {
36
33
  return this.call('createSignedJWT', params);
37
34
  }
@@ -25,9 +25,6 @@ class DIDServiceRPC extends RpcService {
25
25
  deriveKeyDoc(params) {
26
26
  return this.call('deriveKeyDoc', params);
27
27
  }
28
- getDidDockDocument(did) {
29
- return this.call('getDidDockDocument', did);
30
- }
31
28
  createSignedJWT(params) {
32
29
  return this.call('createSignedJWT', params);
33
30
  }
@@ -4,45 +4,26 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var src = require('@docknetwork/wallet-sdk-dids/lib');
6
6
  var services_dids_config = require('./config.js');
7
- var services_keyring_service = require('../keyring/service.js');
8
- var services_utilCrypto_service = require('../util-crypto/service.js');
9
- var assert = require('assert');
10
- var services_blockchain_service = require('../blockchain/service.js');
11
- var core_polkadotUtils = require('../../core/polkadot-utils.js');
7
+ var keypairs = require('@docknetwork/credential-sdk/keypairs');
12
8
  var base64url = require('base64url');
13
9
  var services_credential_utils = require('../credential/utils.js');
14
10
  var crypto = require('@docknetwork/credential-sdk/vc/crypto');
15
- require('@polkadot/keyring');
16
- require('@polkadot/util-crypto');
17
- require('../keyring/configs.js');
18
- require('../../core/validation.js');
19
- require('bignumber.js');
20
- require('../../types.js');
21
- require('@polkadot/util');
22
- require('../util-crypto/configs.js');
23
- require('@cosmjs/proto-signing');
24
- require('@docknetwork/cheqd-blockchain-api');
25
- require('@docknetwork/cheqd-blockchain-modules');
26
- require('@docknetwork/credential-sdk/modules');
27
- require('@docknetwork/credential-sdk/resolver');
28
- require('@docknetwork/crypto-wasm-ts/lib/index');
29
- require('events');
30
- require('../../core/logger.js');
31
- require('../../modules/event-manager.js');
32
- require('@docknetwork/credential-sdk/types');
33
- require('@docknetwork/credential-sdk/keypairs');
34
- require('@polkadot/keyring/pair/decode');
11
+ var services_dids_keypairUtils = require('./keypair-utils.js');
12
+ require('assert');
35
13
  require('base58-universal');
36
- require('@docknetwork/universal-wallet/methods/keypairs');
14
+ require('@docknetwork/credential-sdk/utils');
15
+ require('@digitalbazaar/x25519-key-agreement-key-2020');
16
+ require('@digitalbazaar/x25519-key-agreement-key-2019');
17
+ require('@digitalbazaar/ed25519-verification-key-2018');
18
+ require('@digitalbazaar/ed25519-verification-key-2020');
37
19
 
38
20
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
39
21
 
40
- var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
41
22
  var base64url__default = /*#__PURE__*/_interopDefaultLegacy(base64url);
42
23
 
43
24
  // @ts-nocheck
44
25
  async function getSignerKeypair(privateKeyDoc) {
45
- const privateKey = privateKeyDoc.keypair || services_credential_utils.keyDocToKeypair(privateKeyDoc, services_blockchain_service.blockchainService.dock);
26
+ const privateKey = privateKeyDoc.keypair || await services_credential_utils.keyDocToKeypair(privateKeyDoc);
46
27
  if (!privateKey.signer && privateKey.sign) {
47
28
  privateKey.signer = () => ({ sign: ({ data }) => privateKey.sign(data) });
48
29
  }
@@ -73,7 +54,6 @@ class DIDService {
73
54
  DIDService.prototype.getDIDResolution,
74
55
  DIDService.prototype.generateKeyDoc,
75
56
  DIDService.prototype.deriveKeyDoc,
76
- DIDService.prototype.getDidDockDocument,
77
57
  DIDService.prototype.createSignedJWT,
78
58
  ];
79
59
  keypairToDIDKeyDocument(params) {
@@ -88,30 +68,14 @@ class DIDService {
88
68
  }
89
69
  async generateKeyDoc(params) {
90
70
  services_dids_config.validation.generateKeyDoc(params);
91
- const { derivePath = '', type = 'ed25519', keyPairJSON } = params;
92
- let keyring;
93
- if (keyPairJSON) {
94
- keyring = services_keyring_service.keyringService.keyring.addFromJson(keyPairJSON);
95
- keyring.unlock('');
96
- }
97
- else {
98
- const mnemonic = await services_utilCrypto_service.utilCryptoService.mnemonicGenerate(12);
99
- keyring = services_keyring_service.keyringService.getKeyringPair({
100
- mnemonic,
101
- derivePath,
102
- type,
103
- });
104
- }
105
- return core_polkadotUtils.polkadotToKeydoc(keyring, params.controller);
71
+ const keyPair = keypairs.Ed25519Keypair.random();
72
+ return services_dids_keypairUtils.keypairToKeydoc(keyPair, params.controller);
106
73
  }
107
74
  async deriveKeyDoc(params) {
108
75
  services_dids_config.validation.deriveKeyDoc(params);
109
76
  const { pair, type = 'ed25519' } = params;
110
- const keyring = services_keyring_service.keyringService.createFromPair({
111
- pair,
112
- type,
113
- });
114
- return core_polkadotUtils.polkadotToKeydoc(keyring, params.controller);
77
+ const keyPair = new keypairs.Ed25519Keypair(pair.secretKey, 'private');
78
+ return services_dids_keypairUtils.keypairToKeydoc(keyPair, params.controller);
115
79
  }
116
80
  async createSignedJWT({ payload, privateKeyDoc, headerInput }) {
117
81
  const privateKey = await getSignerKeypair(privateKeyDoc);
@@ -130,12 +94,6 @@ class DIDService {
130
94
  const signature = await sign({ data: signPayload });
131
95
  return `${headerAndPayloadBase64URL}.${base64url__default["default"].encode(signature)}`;
132
96
  }
133
- async getDidDockDocument(did) {
134
- assert__default["default"](!!did, 'DID is required');
135
- services_blockchain_service.blockchainService.dock;
136
- const result = await services_blockchain_service.blockchainService.modules.did.getDocument(did);
137
- return result;
138
- }
139
97
  }
140
98
  const didService = new DIDService();
141
99
 
@@ -1,39 +1,21 @@
1
1
  import { DIDKeyManager } from '@docknetwork/wallet-sdk-dids/lib';
2
2
  import { serviceName, validation } from './config.mjs';
3
- import { keyringService } from '../keyring/service.mjs';
4
- import { utilCryptoService } from '../util-crypto/service.mjs';
5
- import assert from 'assert';
6
- import { blockchainService } from '../blockchain/service.mjs';
7
- import { polkadotToKeydoc } from '../../core/polkadot-utils.mjs';
3
+ import { Ed25519Keypair } from '@docknetwork/credential-sdk/keypairs';
8
4
  import base64url from 'base64url';
9
5
  import { keyDocToKeypair } from '../credential/utils.mjs';
10
6
  import { Ed25519Signature2020, EcdsaSecp256k1Signature2019 } from '@docknetwork/credential-sdk/vc/crypto';
11
- import '@polkadot/keyring';
12
- import '@polkadot/util-crypto';
13
- import '../keyring/configs.mjs';
14
- import '../../core/validation.mjs';
15
- import 'bignumber.js';
16
- import '../../types.mjs';
17
- import '@polkadot/util';
18
- import '../util-crypto/configs.mjs';
19
- import '@cosmjs/proto-signing';
20
- import '@docknetwork/cheqd-blockchain-api';
21
- import '@docknetwork/cheqd-blockchain-modules';
22
- import '@docknetwork/credential-sdk/modules';
23
- import '@docknetwork/credential-sdk/resolver';
24
- import '@docknetwork/crypto-wasm-ts/lib/index';
25
- import 'events';
26
- import '../../core/logger.mjs';
27
- import '../../modules/event-manager.mjs';
28
- import '@docknetwork/credential-sdk/types';
29
- import '@docknetwork/credential-sdk/keypairs';
30
- import '@polkadot/keyring/pair/decode';
7
+ import { keypairToKeydoc } from './keypair-utils.mjs';
8
+ import 'assert';
31
9
  import 'base58-universal';
32
- import '@docknetwork/universal-wallet/methods/keypairs';
10
+ import '@docknetwork/credential-sdk/utils';
11
+ import '@digitalbazaar/x25519-key-agreement-key-2020';
12
+ import '@digitalbazaar/x25519-key-agreement-key-2019';
13
+ import '@digitalbazaar/ed25519-verification-key-2018';
14
+ import '@digitalbazaar/ed25519-verification-key-2020';
33
15
 
34
16
  // @ts-nocheck
35
17
  async function getSignerKeypair(privateKeyDoc) {
36
- const privateKey = privateKeyDoc.keypair || keyDocToKeypair(privateKeyDoc, blockchainService.dock);
18
+ const privateKey = privateKeyDoc.keypair || await keyDocToKeypair(privateKeyDoc);
37
19
  if (!privateKey.signer && privateKey.sign) {
38
20
  privateKey.signer = () => ({ sign: ({ data }) => privateKey.sign(data) });
39
21
  }
@@ -64,7 +46,6 @@ class DIDService {
64
46
  DIDService.prototype.getDIDResolution,
65
47
  DIDService.prototype.generateKeyDoc,
66
48
  DIDService.prototype.deriveKeyDoc,
67
- DIDService.prototype.getDidDockDocument,
68
49
  DIDService.prototype.createSignedJWT,
69
50
  ];
70
51
  keypairToDIDKeyDocument(params) {
@@ -79,30 +60,14 @@ class DIDService {
79
60
  }
80
61
  async generateKeyDoc(params) {
81
62
  validation.generateKeyDoc(params);
82
- const { derivePath = '', type = 'ed25519', keyPairJSON } = params;
83
- let keyring;
84
- if (keyPairJSON) {
85
- keyring = keyringService.keyring.addFromJson(keyPairJSON);
86
- keyring.unlock('');
87
- }
88
- else {
89
- const mnemonic = await utilCryptoService.mnemonicGenerate(12);
90
- keyring = keyringService.getKeyringPair({
91
- mnemonic,
92
- derivePath,
93
- type,
94
- });
95
- }
96
- return polkadotToKeydoc(keyring, params.controller);
63
+ const keyPair = Ed25519Keypair.random();
64
+ return keypairToKeydoc(keyPair, params.controller);
97
65
  }
98
66
  async deriveKeyDoc(params) {
99
67
  validation.deriveKeyDoc(params);
100
68
  const { pair, type = 'ed25519' } = params;
101
- const keyring = keyringService.createFromPair({
102
- pair,
103
- type,
104
- });
105
- return polkadotToKeydoc(keyring, params.controller);
69
+ const keyPair = new Ed25519Keypair(pair.secretKey, 'private');
70
+ return keypairToKeydoc(keyPair, params.controller);
106
71
  }
107
72
  async createSignedJWT({ payload, privateKeyDoc, headerInput }) {
108
73
  const privateKey = await getSignerKeypair(privateKeyDoc);
@@ -121,12 +86,6 @@ class DIDService {
121
86
  const signature = await sign({ data: signPayload });
122
87
  return `${headerAndPayloadBase64URL}.${base64url.encode(signature)}`;
123
88
  }
124
- async getDidDockDocument(did) {
125
- assert(!!did, 'DID is required');
126
- blockchainService.dock;
127
- const result = await blockchainService.modules.did.getDocument(did);
128
- return result;
129
- }
130
89
  }
131
90
  const didService = new DIDService();
132
91
 
@@ -17,35 +17,14 @@ require('@docknetwork/wallet-sdk-data-store/lib/logger');
17
17
  require('../dids/service.js');
18
18
  require('@docknetwork/wallet-sdk-dids/lib');
19
19
  require('../dids/config.js');
20
- require('../keyring/service.js');
21
- require('@polkadot/keyring');
22
- require('@polkadot/util-crypto');
23
- require('../keyring/configs.js');
24
- require('../../core/validation.js');
25
- require('bignumber.js');
26
- require('../../types.js');
27
- require('../util-crypto/service.js');
28
- require('@polkadot/util');
29
- require('../util-crypto/configs.js');
30
- require('../blockchain/service.js');
31
- require('@cosmjs/proto-signing');
32
- require('@docknetwork/cheqd-blockchain-api');
33
- require('@docknetwork/cheqd-blockchain-modules');
34
- require('@docknetwork/credential-sdk/modules');
35
- require('@docknetwork/credential-sdk/resolver');
36
- require('@docknetwork/crypto-wasm-ts/lib/index');
37
- require('events');
38
- require('../../core/logger.js');
39
- require('../../modules/event-manager.js');
40
- require('@docknetwork/credential-sdk/types');
41
- require('../../core/polkadot-utils.js');
42
20
  require('@docknetwork/credential-sdk/keypairs');
43
- require('@polkadot/keyring/pair/decode');
44
- require('base58-universal');
45
21
  require('base64url');
46
22
  require('../credential/utils.js');
23
+ require('base58-universal');
47
24
  require('@docknetwork/credential-sdk/vc/crypto');
48
- require('@docknetwork/wallet-sdk-wasm/lib/services/keyring');
25
+ require('@docknetwork/credential-sdk/utils');
26
+ require('@digitalbazaar/x25519-key-agreement-key-2019');
27
+ require('../dids/keypair-utils.js');
49
28
 
50
29
 
51
30
 
@@ -13,32 +13,11 @@ import '@docknetwork/wallet-sdk-data-store/lib/logger';
13
13
  import '../dids/service.mjs';
14
14
  import '@docknetwork/wallet-sdk-dids/lib';
15
15
  import '../dids/config.mjs';
16
- import '../keyring/service.mjs';
17
- import '@polkadot/keyring';
18
- import '@polkadot/util-crypto';
19
- import '../keyring/configs.mjs';
20
- import '../../core/validation.mjs';
21
- import 'bignumber.js';
22
- import '../../types.mjs';
23
- import '../util-crypto/service.mjs';
24
- import '@polkadot/util';
25
- import '../util-crypto/configs.mjs';
26
- import '../blockchain/service.mjs';
27
- import '@cosmjs/proto-signing';
28
- import '@docknetwork/cheqd-blockchain-api';
29
- import '@docknetwork/cheqd-blockchain-modules';
30
- import '@docknetwork/credential-sdk/modules';
31
- import '@docknetwork/credential-sdk/resolver';
32
- import '@docknetwork/crypto-wasm-ts/lib/index';
33
- import 'events';
34
- import '../../core/logger.mjs';
35
- import '../../modules/event-manager.mjs';
36
- import '@docknetwork/credential-sdk/types';
37
- import '../../core/polkadot-utils.mjs';
38
16
  import '@docknetwork/credential-sdk/keypairs';
39
- import '@polkadot/keyring/pair/decode';
40
- import 'base58-universal';
41
17
  import 'base64url';
42
18
  import '../credential/utils.mjs';
19
+ import 'base58-universal';
43
20
  import '@docknetwork/credential-sdk/vc/crypto';
44
- import '@docknetwork/wallet-sdk-wasm/lib/services/keyring';
21
+ import '@docknetwork/credential-sdk/utils';
22
+ import '@digitalbazaar/x25519-key-agreement-key-2019';
23
+ import '../dids/keypair-utils.mjs';