dash-platform-sdk 1.3.0-dev.4 → 1.3.0-dev.6

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 (138) hide show
  1. package/bundle.min.js +21 -2
  2. package/index.js +2 -5
  3. package/package.json +30 -31
  4. package/proto/generated/google/protobuf/wrappers.d.ts +260 -29
  5. package/proto/generated/google/protobuf/wrappers.js +562 -345
  6. package/proto/generated/platform.client.d.ts +251 -0
  7. package/proto/generated/platform.client.js +175 -0
  8. package/proto/generated/platform.d.ts +3682 -1939
  9. package/proto/generated/platform.js +8119 -18366
  10. package/src/DashPlatformSDK.d.ts +5 -4
  11. package/src/DashPlatformSDK.js +56 -46
  12. package/src/constants.js +7 -10
  13. package/src/contestedResources/createStateTransition.d.ts +1 -2
  14. package/src/contestedResources/createStateTransition.js +4 -7
  15. package/src/contestedResources/getContestedResourceVoteState.js +67 -118
  16. package/src/contestedResources/index.js +9 -55
  17. package/src/dataContracts/create.js +5 -8
  18. package/src/dataContracts/createStateTransition.js +10 -14
  19. package/src/dataContracts/getDataContractByIdentifier.js +40 -83
  20. package/src/dataContracts/index.js +17 -63
  21. package/src/documents/create.js +3 -6
  22. package/src/documents/createStateTransition.js +19 -31
  23. package/src/documents/index.js +25 -72
  24. package/src/documents/query.js +58 -90
  25. package/src/grpcConnectionPool.d.ts +30 -8
  26. package/src/grpcConnectionPool.js +63 -121
  27. package/src/identities/createStateTransition.js +14 -26
  28. package/src/identities/getIdentityBalance.js +37 -80
  29. package/src/identities/getIdentityByIdentifier.js +37 -80
  30. package/src/identities/getIdentityByNonUniquePublicKeyHash.js +41 -82
  31. package/src/identities/getIdentityByPublicKeyHash.js +37 -80
  32. package/src/identities/getIdentityContractNonce.js +40 -83
  33. package/src/identities/getIdentityNonce.js +38 -81
  34. package/src/identities/getIdentityPublicKeys.js +43 -81
  35. package/src/identities/index.js +57 -153
  36. package/src/keyPair/deriveChild.d.ts +2 -2
  37. package/src/keyPair/deriveChild.js +2 -49
  38. package/src/keyPair/derivePath.d.ts +2 -2
  39. package/src/keyPair/derivePath.js +2 -49
  40. package/src/keyPair/index.d.ts +39 -114
  41. package/src/keyPair/index.js +62 -296
  42. package/src/keyPair/mnemonicToSeed.d.ts +1 -1
  43. package/src/keyPair/mnemonicToSeed.js +3 -46
  44. package/src/names/index.js +43 -111
  45. package/src/names/registerName.js +60 -127
  46. package/src/names/searchByIdentity.d.ts +1 -1
  47. package/src/names/searchByIdentity.js +4 -50
  48. package/src/names/searchByName.js +15 -63
  49. package/src/names/testNameContested.js +1 -4
  50. package/src/names/validateName.js +3 -6
  51. package/src/node/epochs.js +43 -85
  52. package/src/node/index.d.ts +3 -3
  53. package/src/node/index.js +18 -77
  54. package/src/node/status.js +37 -81
  55. package/src/node/totalCredits.d.ts +2 -1
  56. package/src/node/totalCredits.js +32 -73
  57. package/src/signer/AbstractSigner.js +1 -2
  58. package/src/signer/setSigner.js +1 -4
  59. package/src/stateTransitions/broadcast.js +7 -57
  60. package/src/stateTransitions/index.js +13 -66
  61. package/src/stateTransitions/waitForStateTransitionResult.js +6 -58
  62. package/src/tokens/createStateTransition.js +23 -35
  63. package/src/tokens/getIdentitiesTokenBalances.js +40 -83
  64. package/src/tokens/getIdentityTokensBalances.js +40 -83
  65. package/src/tokens/getTokenContractInfo.js +40 -83
  66. package/src/tokens/getTokenDirectPurchasePrices.js +37 -80
  67. package/src/tokens/getTokenTotalSupply.js +38 -81
  68. package/src/tokens/index.js +39 -124
  69. package/src/types.d.ts +6 -12
  70. package/src/types.js +6 -16
  71. package/src/utils/base58ToBytes.js +3 -6
  72. package/src/utils/bytesToHex.js +2 -5
  73. package/src/utils/bytesToTypedArray.d.ts +1 -0
  74. package/src/utils/bytesToTypedArray.js +3 -0
  75. package/src/utils/calculateMsgHash.d.ts +1 -1
  76. package/src/utils/calculateMsgHash.js +10 -13
  77. package/src/utils/calculateSignHash.d.ts +1 -1
  78. package/src/utils/calculateSignHash.js +7 -10
  79. package/src/utils/calculateStateIdHash.d.ts +1 -1
  80. package/src/utils/calculateStateIdHash.js +8 -10
  81. package/src/utils/convertToHomographSafeChars.js +2 -5
  82. package/src/utils/createVoterIdentityId.d.ts +1 -1
  83. package/src/utils/createVoterIdentityId.js +12 -11
  84. package/src/utils/getEvonodeList.d.ts +2 -2
  85. package/src/utils/getEvonodeList.js +10 -61
  86. package/src/utils/getQuorumPublicKey.js +15 -66
  87. package/src/utils/getRandomArrayItem.js +1 -4
  88. package/src/utils/getRandomBytes.js +2 -5
  89. package/src/utils/hexToBytes.js +2 -6
  90. package/src/utils/index.js +21 -28
  91. package/src/utils/indexBytesToString.js +2 -5
  92. package/src/utils/sha256.d.ts +1 -1
  93. package/src/utils/sha256.js +10 -8
  94. package/src/utils/signHash.d.ts +1 -1
  95. package/src/utils/signHash.js +9 -12
  96. package/src/utils/signRequestId.d.ts +1 -1
  97. package/src/utils/signRequestId.js +9 -12
  98. package/src/utils/sleep.js +2 -50
  99. package/src/utils/stringToIndexValueBytes.js +4 -7
  100. package/src/utils/verifyTenderdashProof.d.ts +1 -1
  101. package/src/utils/verifyTenderdashProof.js +13 -17
  102. package/src/voting/createStateTransition.d.ts +1 -2
  103. package/src/voting/createStateTransition.js +4 -7
  104. package/src/voting/createVote.js +4 -7
  105. package/src/voting/index.d.ts +3 -4
  106. package/src/voting/index.js +19 -26
  107. package/test/unit/ContestedResources.spec.js +92 -177
  108. package/test/unit/DataContract.spec.js +44 -111
  109. package/test/unit/Document.spec.js +93 -183
  110. package/test/unit/Identity.spec.js +221 -346
  111. package/test/unit/KeyPair.spec.js +30 -145
  112. package/test/unit/Names.spec.js +27 -90
  113. package/test/unit/Node.spec.js +55 -126
  114. package/test/unit/SDK.spec.js +7 -9
  115. package/test/unit/Tokens.spec.js +111 -278
  116. package/bundle.min.js.LICENSE.txt +0 -1
  117. package/src/keyPair/keyToPublicKey.d.ts +0 -2
  118. package/src/keyPair/keyToPublicKey.js +0 -47
  119. package/src/keyPair/keyToWalletId.d.ts +0 -2
  120. package/src/keyPair/keyToWalletId.js +0 -50
  121. package/src/keyPair/keyToXPrivateKey.d.ts +0 -3
  122. package/src/keyPair/keyToXPrivateKey.js +0 -50
  123. package/src/keyPair/keyToXPublicKey.d.ts +0 -3
  124. package/src/keyPair/keyToXPublicKey.js +0 -50
  125. package/src/keyPair/mnemonicToIdentityKey.d.ts +0 -3
  126. package/src/keyPair/mnemonicToIdentityKey.js +0 -57
  127. package/src/keyPair/mnemonicToWallet.d.ts +0 -2
  128. package/src/keyPair/mnemonicToWallet.js +0 -55
  129. package/src/keyPair/privateKeyToWif.d.ts +0 -2
  130. package/src/keyPair/privateKeyToWif.js +0 -50
  131. package/src/keyPair/publicKeyToAddress.d.ts +0 -2
  132. package/src/keyPair/publicKeyToAddress.js +0 -50
  133. package/src/keyPair/seedToWallet.d.ts +0 -2
  134. package/src/keyPair/seedToWallet.js +0 -50
  135. package/src/keyPair/walletToIdentityKey.d.ts +0 -3
  136. package/src/keyPair/walletToIdentityKey.js +0 -56
  137. package/src/keyPair/xkeyToHDXKey.d.ts +0 -2
  138. package/src/keyPair/xkeyToHDXKey.js +0 -50
@@ -1,10 +1,32 @@
1
- import { Channel, Client } from 'nice-grpc-web';
2
- import { PlatformDefinition } from '../proto/generated/platform';
3
- import { GRPCOptions } from './DashPlatformSDK';
1
+ import { PlatformClient } from '../proto/generated/platform.client';
2
+ import { Network } from './types';
3
+ export type MasternodeList = Record<string, MasternodeInfo>;
4
+ export interface GRPCOptions {
5
+ poolLimit: 5;
6
+ dapiUrl?: string | string[];
7
+ }
8
+ export interface MasternodeInfo {
9
+ proTxHash: string;
10
+ address: string;
11
+ payee: string;
12
+ status: string;
13
+ type: string;
14
+ platformNodeID: string;
15
+ platformP2PPort: number;
16
+ platformHTTPPort: number;
17
+ pospenaltyscore: number;
18
+ consecutivePayments: number;
19
+ lastpaidtime: number;
20
+ lastpaidblock: number;
21
+ owneraddress: string;
22
+ votingaddress: string;
23
+ collateraladdress: string;
24
+ pubkeyoperator: string;
25
+ }
4
26
  export default class GRPCConnectionPool {
5
- channels: Channel[];
6
- network: string;
7
- constructor(network: 'testnet' | 'mainnet', grpcOptions?: GRPCOptions);
8
- _initialize(network: 'testnet' | 'mainnet', poolLimit: number, dapiUrl?: string | string[]): Promise<void>;
9
- getClient(): Client<PlatformDefinition>;
27
+ dapiUrls: string[];
28
+ network: Network;
29
+ constructor(network: Network, grpcOptions?: GRPCOptions);
30
+ _initialize(network: Network, poolLimit: number, dapiUrl?: string | string[]): Promise<void>;
31
+ getClient(abortController?: AbortController): PlatformClient;
10
32
  }
@@ -1,47 +1,10 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var getRandomArrayItem_1 = require("./utils/getRandomArrayItem");
40
- var nice_grpc_web_1 = require("nice-grpc-web");
41
- var platform_1 = require("../proto/generated/platform");
42
- var getEvonodeList_1 = require("./utils/getEvonodeList");
43
- var constants_1 = require("./constants");
44
- var seedNodes = {
1
+ import { GrpcWebFetchTransport } from '@protobuf-ts/grpcweb-transport';
2
+ import { PlatformClient } from '../proto/generated/platform.client';
3
+ import getEvonodeList from './utils/getEvonodeList';
4
+ import { GetStatusRequest } from '../proto/generated/platform';
5
+ import getRandomArrayItem from './utils/getRandomArrayItem';
6
+ const GRPC_DEFAULT_POOL_LIMIT = 5;
7
+ const seedNodes = {
45
8
  testnet: [
46
9
  // seed-1.pshenmic.dev
47
10
  'https://158.160.14.115:1443'
@@ -55,83 +18,62 @@ var seedNodes = {
55
18
  // 'https://34.211.174.194'
56
19
  ]
57
20
  };
58
- var GRPCConnectionPool = /** @class */ (function () {
59
- function GRPCConnectionPool(network, grpcOptions) {
60
- var _a;
61
- var grpcPoolLimit = (_a = grpcOptions === null || grpcOptions === void 0 ? void 0 : grpcOptions.poolLimit) !== null && _a !== void 0 ? _a : constants_1.GRPC_DEFAULT_POOL_LIMIT;
21
+ const createClient = (url, abortController) => {
22
+ return new PlatformClient(new GrpcWebFetchTransport({
23
+ baseUrl: url,
24
+ abort: abortController?.signal
25
+ }));
26
+ };
27
+ export default class GRPCConnectionPool {
28
+ dapiUrls;
29
+ network;
30
+ constructor(network, grpcOptions) {
31
+ const grpcPoolLimit = grpcOptions?.poolLimit ?? GRPC_DEFAULT_POOL_LIMIT;
62
32
  this.network = network;
63
- this._initialize(network, grpcPoolLimit, grpcOptions === null || grpcOptions === void 0 ? void 0 : grpcOptions.dapiUrl).catch(console.error);
33
+ this._initialize(network, grpcPoolLimit, grpcOptions?.dapiUrl).catch(console.error);
64
34
  }
65
- GRPCConnectionPool.prototype._initialize = function (network, poolLimit, dapiUrl) {
66
- return __awaiter(this, void 0, void 0, function () {
67
- var evonodeList, networkDAPIUrls, _i, networkDAPIUrls_1, url, channel, client, response, v0, e_1;
68
- return __generator(this, function (_a) {
69
- switch (_a.label) {
70
- case 0:
71
- if (typeof dapiUrl === 'string') {
72
- this.channels = [(0, nice_grpc_web_1.createChannel)(dapiUrl)];
73
- return [2 /*return*/];
74
- }
75
- if (Array.isArray(dapiUrl)) {
76
- this.channels = dapiUrl.map(function (dapiUrl) { return (0, nice_grpc_web_1.createChannel)(dapiUrl); });
77
- return [2 /*return*/];
78
- }
79
- if (dapiUrl != null) {
80
- throw new Error('Unrecognized DAPI URL');
81
- }
82
- // Add default seed nodes
83
- this.channels = (seedNodes[network].map(function (dapiUrl) { return (0, nice_grpc_web_1.createChannel)(dapiUrl); }));
84
- return [4 /*yield*/, (0, getEvonodeList_1.default)(network)
85
- // map it to array of dapiUrls
86
- ];
87
- case 1:
88
- evonodeList = _a.sent();
89
- networkDAPIUrls = Object.entries(evonodeList)
90
- .map(function (_a) {
91
- var info = _a[1];
92
- return info;
93
- })
94
- .filter(function (info) { return info.status === 'ENABLED'; })
95
- .map(function (info) {
96
- var host = info.address.split(':')[0];
97
- return "https://".concat(host, ":").concat(info.platformHTTPPort);
98
- });
99
- _i = 0, networkDAPIUrls_1 = networkDAPIUrls;
100
- _a.label = 2;
101
- case 2:
102
- if (!(_i < networkDAPIUrls_1.length)) return [3 /*break*/, 7];
103
- url = networkDAPIUrls_1[_i];
104
- if (this.channels.length > poolLimit) {
105
- return [3 /*break*/, 7];
106
- }
107
- _a.label = 3;
108
- case 3:
109
- _a.trys.push([3, 5, , 6]);
110
- channel = (0, nice_grpc_web_1.createChannel)(url);
111
- client = (0, nice_grpc_web_1.createClient)(platform_1.PlatformDefinition, channel);
112
- return [4 /*yield*/, client.getStatus(platform_1.GetStatusRequest.fromPartial({ v0: {} }))];
113
- case 4:
114
- response = _a.sent();
115
- v0 = response.v0;
116
- if ((v0 === null || v0 === void 0 ? void 0 : v0.chain) != null) {
117
- this.channels.push((0, nice_grpc_web_1.createChannel)(url));
118
- }
119
- return [3 /*break*/, 6];
120
- case 5:
121
- e_1 = _a.sent();
122
- return [3 /*break*/, 6];
123
- case 6:
124
- _i++;
125
- return [3 /*break*/, 2];
126
- case 7: return [2 /*return*/];
127
- }
128
- });
35
+ async _initialize(network, poolLimit, dapiUrl) {
36
+ if (typeof dapiUrl === 'string') {
37
+ this.dapiUrls = [dapiUrl];
38
+ return;
39
+ }
40
+ if (Array.isArray(dapiUrl)) {
41
+ this.dapiUrls = dapiUrl;
42
+ return;
43
+ }
44
+ if (dapiUrl != null) {
45
+ throw new Error('Unrecognized DAPI URL');
46
+ }
47
+ // Add default seed nodes
48
+ this.dapiUrls = seedNodes[network];
49
+ // retrieve last evonodes list
50
+ const evonodeList = await getEvonodeList(network);
51
+ // map it to array of dapiUrls
52
+ const networkDAPIUrls = Object.entries(evonodeList)
53
+ .map(([, info]) => info)
54
+ .filter((info) => info.status === 'ENABLED')
55
+ .map((info) => {
56
+ const [host] = info.address.split(':');
57
+ return `https://${host}:${info.platformHTTPPort}`;
129
58
  });
130
- };
131
- GRPCConnectionPool.prototype.getClient = function () {
132
- var channel = (0, getRandomArrayItem_1.default)(this.channels);
133
- return (0, nice_grpc_web_1.createClient)(platform_1.PlatformDefinition, channel);
134
- };
135
- return GRPCConnectionPool;
136
- }());
137
- exports.default = GRPCConnectionPool;
59
+ // healthcheck nodes
60
+ for (const url of networkDAPIUrls) {
61
+ if (this.dapiUrls.length > poolLimit) {
62
+ break;
63
+ }
64
+ try {
65
+ const client = createClient(url);
66
+ const { response } = await client.getStatus(GetStatusRequest.create({}));
67
+ if (response.version.oneofKind === 'v0' && response.version.v0.chain != null) {
68
+ this.dapiUrls.push(url);
69
+ }
70
+ }
71
+ catch (e) {
72
+ }
73
+ }
74
+ }
75
+ getClient(abortController) {
76
+ const dapiUrl = getRandomArrayItem(this.dapiUrls);
77
+ return createClient(dapiUrl, abortController);
78
+ }
79
+ }
@@ -1,46 +1,34 @@
1
- "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.default = createStateTransition;
13
- var pshenmic_dpp_1 = require("pshenmic-dpp");
14
- var identityTransitionsMap = {
1
+ import { IdentityCreateTransitionWASM, IdentityTopUpTransitionWASM, IdentityUpdateTransitionWASM } from 'pshenmic-dpp';
2
+ const identityTransitionsMap = {
15
3
  create: {
16
- class: pshenmic_dpp_1.IdentityCreateTransitionWASM,
4
+ class: IdentityCreateTransitionWASM,
17
5
  arguments: ['publicKeys', 'assetLockProof'],
18
6
  optionalArguments: ['signature', 'userFeeIncrease']
19
7
  },
20
8
  topUp: {
21
- class: pshenmic_dpp_1.IdentityTopUpTransitionWASM,
9
+ class: IdentityTopUpTransitionWASM,
22
10
  arguments: ['assetLockProof', 'identityId'],
23
11
  optionalArguments: ['userFeeIncrease']
24
12
  },
25
13
  update: {
26
- class: pshenmic_dpp_1.IdentityUpdateTransitionWASM,
14
+ class: IdentityUpdateTransitionWASM,
27
15
  arguments: ['identityId', 'revision', 'identityNonce', 'addPublicKeys', 'disablePublicKeyIds'],
28
16
  optionalArguments: ['userFeeIncrease']
29
17
  }
30
18
  };
31
- function createStateTransition(type, params) {
32
- var _a = identityTransitionsMap[type], TransitionClass = _a.class, classArguments = _a.arguments, optionalArguments = _a.optionalArguments;
19
+ export default function createStateTransition(type, params) {
20
+ const { class: TransitionClass, arguments: classArguments, optionalArguments } = identityTransitionsMap[type];
33
21
  if (TransitionClass == null) {
34
- throw new Error("Unimplemented transition type: ".concat(type));
22
+ throw new Error(`Unimplemented transition type: ${type}`);
35
23
  }
36
- var missingArgument = classArguments
37
- .filter(function (classArgument) { return params[classArgument] == null &&
38
- !(optionalArguments).includes(classArgument); })[0];
24
+ const [missingArgument] = classArguments
25
+ .filter((classArgument) => params[classArgument] == null &&
26
+ !(optionalArguments).includes(classArgument));
39
27
  if (missingArgument != null) {
40
- throw new Error("Token transition param \"".concat(missingArgument, "\" is missing"));
28
+ throw new Error(`Token transition param "${missingArgument}" is missing`);
41
29
  }
42
- var transitionParams = classArguments.map(function (classArgument) { return params[classArgument]; });
30
+ const transitionParams = classArguments.map((classArgument) => params[classArgument]);
43
31
  // @ts-expect-error
44
- var identityTransition = new (TransitionClass.bind.apply(TransitionClass, __spreadArray([void 0], transitionParams, false)))();
32
+ const identityTransition = new TransitionClass(...transitionParams);
45
33
  return identityTransition.toStateTransition();
46
34
  }
@@ -1,83 +1,40 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.default = getIdentityBalance;
40
- var platform_1 = require("../../proto/generated/platform");
41
- var pshenmic_dpp_1 = require("pshenmic-dpp");
42
- var verifyTenderdashProof_1 = require("../utils/verifyTenderdashProof");
43
- var getQuorumPublicKey_1 = require("../utils/getQuorumPublicKey");
44
- var bytesToHex_1 = require("../utils/bytesToHex");
45
- function getIdentityBalance(grpcPool, identifier) {
46
- return __awaiter(this, void 0, void 0, function () {
47
- var id, getIdentityBalanceRequest, v0, _a, proof, metadata, _b, rootHash, balance, quorumPublicKey, verify;
48
- return __generator(this, function (_c) {
49
- switch (_c.label) {
50
- case 0:
51
- id = new pshenmic_dpp_1.IdentifierWASM(identifier);
52
- getIdentityBalanceRequest = platform_1.GetIdentityBalanceRequest.fromPartial({
53
- v0: {
54
- id: id.bytes(),
55
- prove: true
56
- }
57
- });
58
- return [4 /*yield*/, grpcPool.getClient().getIdentityBalance(getIdentityBalanceRequest)];
59
- case 1:
60
- v0 = (_c.sent()).v0;
61
- _a = v0, proof = _a.proof, metadata = _a.metadata;
62
- if (proof == null) {
63
- throw new Error('Proof not found');
64
- }
65
- if (metadata == null) {
66
- throw new Error('Metadata not found');
67
- }
68
- _b = (0, pshenmic_dpp_1.verifyIdentityBalanceProof)(proof.grovedbProof, id.bytes(), true, pshenmic_dpp_1.PlatformVersionWASM.PLATFORM_V9), rootHash = _b.rootHash, balance = _b.balance;
69
- if (balance == null) {
70
- throw new Error("Failed to fetch balance for identifier ".concat(id.base58()));
71
- }
72
- return [4 /*yield*/, (0, getQuorumPublicKey_1.getQuorumPublicKey)(grpcPool.network, proof.quorumType, (0, bytesToHex_1.default)(proof.quorumHash))];
73
- case 2:
74
- quorumPublicKey = _c.sent();
75
- verify = (0, verifyTenderdashProof_1.default)(proof, metadata, rootHash, quorumPublicKey);
76
- if (!verify) {
77
- throw new Error('Failed to verify query');
78
- }
79
- return [2 /*return*/, BigInt(balance)];
1
+ import { GetIdentityBalanceRequest } from '../../proto/generated/platform';
2
+ import { IdentifierWASM, PlatformVersionWASM, verifyIdentityBalanceProof } from 'pshenmic-dpp';
3
+ import verifyTenderdashProof from '../utils/verifyTenderdashProof';
4
+ import { getQuorumPublicKey } from '../utils/getQuorumPublicKey';
5
+ import bytesToHex from '../utils/bytesToHex';
6
+ export default async function getIdentityBalance(grpcPool, identifier) {
7
+ const id = new IdentifierWASM(identifier);
8
+ const getIdentityBalanceRequest = GetIdentityBalanceRequest.create({
9
+ version: {
10
+ oneofKind: 'v0',
11
+ v0: {
12
+ id: id.bytes(),
13
+ prove: true
80
14
  }
81
- });
15
+ }
82
16
  });
17
+ const { response } = await grpcPool.getClient().getIdentityBalance(getIdentityBalanceRequest);
18
+ const { version } = response;
19
+ if (version.oneofKind !== 'v0') {
20
+ throw new Error('Unexpected oneOf type returned from DAPI (must be v0)');
21
+ }
22
+ const { v0 } = version;
23
+ if (v0.result.oneofKind !== 'proof') {
24
+ throw new Error('Unexpected oneOf type returned from DAPI (must be proof)');
25
+ }
26
+ const { result: { proof }, metadata } = v0;
27
+ if (metadata == null) {
28
+ throw new Error('Metadata not found');
29
+ }
30
+ const { rootHash, balance } = verifyIdentityBalanceProof(proof.grovedbProof, id.bytes(), true, PlatformVersionWASM.PLATFORM_V9);
31
+ if (balance == null) {
32
+ throw new Error(`Failed to fetch balance for identifier ${id.base58()}`);
33
+ }
34
+ const quorumPublicKey = await getQuorumPublicKey(grpcPool.network, proof.quorumType, bytesToHex(proof.quorumHash));
35
+ const verify = await verifyTenderdashProof(proof, metadata, rootHash, quorumPublicKey);
36
+ if (!verify) {
37
+ throw new Error('Failed to verify query');
38
+ }
39
+ return BigInt(balance);
83
40
  }
@@ -1,83 +1,40 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.default = getIdentityByIdentifier;
40
- var platform_1 = require("../../proto/generated/platform");
41
- var pshenmic_dpp_1 = require("pshenmic-dpp");
42
- var getQuorumPublicKey_1 = require("../utils/getQuorumPublicKey");
43
- var bytesToHex_1 = require("../utils/bytesToHex");
44
- var verifyTenderdashProof_1 = require("../utils/verifyTenderdashProof");
45
- function getIdentityByIdentifier(grpcPool, identifier) {
46
- return __awaiter(this, void 0, void 0, function () {
47
- var id, getIdentityRequest, v0, _a, proof, metadata, _b, rootHash, identity, quorumPublicKey, verify;
48
- return __generator(this, function (_c) {
49
- switch (_c.label) {
50
- case 0:
51
- id = new pshenmic_dpp_1.IdentifierWASM(identifier);
52
- getIdentityRequest = platform_1.GetIdentityRequest.fromPartial({
53
- v0: {
54
- id: id.bytes(),
55
- prove: true
56
- }
57
- });
58
- return [4 /*yield*/, grpcPool.getClient().getIdentity(getIdentityRequest)];
59
- case 1:
60
- v0 = (_c.sent()).v0;
61
- _a = v0, proof = _a.proof, metadata = _a.metadata;
62
- if (proof == null) {
63
- throw new Error('Proof not found');
64
- }
65
- if (metadata == null) {
66
- throw new Error('Metadata not found');
67
- }
68
- _b = (0, pshenmic_dpp_1.verifyIdentityByIdentifierProof)(proof.grovedbProof, id, true, pshenmic_dpp_1.PlatformVersionWASM.PLATFORM_V9), rootHash = _b.rootHash, identity = _b.identity;
69
- if (identity == null) {
70
- throw new Error("Identity with identifier ".concat(id.base58(), " not found"));
71
- }
72
- return [4 /*yield*/, (0, getQuorumPublicKey_1.getQuorumPublicKey)(grpcPool.network, proof.quorumType, (0, bytesToHex_1.default)(proof.quorumHash))];
73
- case 2:
74
- quorumPublicKey = _c.sent();
75
- verify = (0, verifyTenderdashProof_1.default)(proof, metadata, rootHash, quorumPublicKey);
76
- if (!verify) {
77
- throw new Error('Failed to verify query');
78
- }
79
- return [2 /*return*/, identity];
1
+ import { GetIdentityRequest } from '../../proto/generated/platform';
2
+ import { IdentifierWASM, PlatformVersionWASM, verifyIdentityByIdentifierProof } from 'pshenmic-dpp';
3
+ import { getQuorumPublicKey } from '../utils/getQuorumPublicKey';
4
+ import bytesToHex from '../utils/bytesToHex';
5
+ import verifyTenderdashProof from '../utils/verifyTenderdashProof';
6
+ export default async function getIdentityByIdentifier(grpcPool, identifier) {
7
+ const id = new IdentifierWASM(identifier);
8
+ const getIdentityRequest = GetIdentityRequest.create({
9
+ version: {
10
+ oneofKind: 'v0',
11
+ v0: {
12
+ id: id.bytes(),
13
+ prove: true
80
14
  }
81
- });
15
+ }
82
16
  });
17
+ const { response } = await grpcPool.getClient().getIdentity(getIdentityRequest);
18
+ const { version } = response;
19
+ if (version.oneofKind !== 'v0') {
20
+ throw new Error('Unexpected oneOf type returned from DAPI (must be v0)');
21
+ }
22
+ const { v0 } = version;
23
+ if (v0.result.oneofKind !== 'proof') {
24
+ throw new Error('Unexpected oneOf type returned from DAPI (must be proof)');
25
+ }
26
+ const { result: { proof }, metadata } = v0;
27
+ if (metadata == null) {
28
+ throw new Error('Metadata not found');
29
+ }
30
+ const { rootHash, identity } = verifyIdentityByIdentifierProof(proof.grovedbProof, id, true, PlatformVersionWASM.PLATFORM_V9);
31
+ if (identity == null) {
32
+ throw new Error(`Identity with identifier ${id.base58()} not found`);
33
+ }
34
+ const quorumPublicKey = await getQuorumPublicKey(grpcPool.network, proof.quorumType, bytesToHex(proof.quorumHash));
35
+ const verify = await verifyTenderdashProof(proof, metadata, rootHash, quorumPublicKey);
36
+ if (!verify) {
37
+ throw new Error('Failed to verify query');
38
+ }
39
+ return identity;
83
40
  }