dash-platform-sdk 1.3.0-dev.1 → 1.3.0-dev.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 (189) hide show
  1. package/bundle.min.js +21 -2
  2. package/index.d.ts +1 -1
  3. package/index.js +2 -5
  4. package/package.json +32 -31
  5. package/proto/generated/google/protobuf/wrappers.d.ts +260 -29
  6. package/proto/generated/google/protobuf/wrappers.js +562 -345
  7. package/proto/generated/platform.client.d.ts +261 -0
  8. package/proto/generated/platform.client.js +182 -0
  9. package/proto/generated/platform.d.ts +3795 -1938
  10. package/proto/generated/platform.js +8338 -18362
  11. package/src/DashPlatformSDK.d.ts +18 -19
  12. package/src/DashPlatformSDK.js +52 -45
  13. package/src/constants.d.ts +2 -0
  14. package/src/constants.js +7 -8
  15. package/src/contestedResources/createStateTransition.d.ts +2 -0
  16. package/src/contestedResources/createStateTransition.js +6 -0
  17. package/src/contestedResources/getContestedResourceVoteState.d.ts +3 -3
  18. package/src/contestedResources/getContestedResourceVoteState.js +67 -118
  19. package/src/contestedResources/index.d.ts +3 -3
  20. package/src/contestedResources/index.js +9 -55
  21. package/src/dataContracts/create.d.ts +1 -1
  22. package/src/dataContracts/create.js +5 -8
  23. package/src/dataContracts/createStateTransition.js +10 -14
  24. package/src/dataContracts/getDataContractByIdentifier.d.ts +2 -2
  25. package/src/dataContracts/getDataContractByIdentifier.js +40 -79
  26. package/src/dataContracts/index.d.ts +2 -2
  27. package/src/dataContracts/index.js +17 -63
  28. package/src/documents/create.d.ts +1 -1
  29. package/src/documents/create.js +3 -6
  30. package/src/documents/createStateTransition.d.ts +1 -1
  31. package/src/documents/createStateTransition.js +19 -31
  32. package/src/documents/index.d.ts +2 -2
  33. package/src/documents/index.js +25 -72
  34. package/src/documents/query.d.ts +2 -2
  35. package/src/documents/query.js +58 -90
  36. package/src/grpcConnectionPool.d.ts +30 -8
  37. package/src/grpcConnectionPool.js +63 -121
  38. package/src/identities/createStateTransition.d.ts +2 -2
  39. package/src/identities/createStateTransition.js +24 -26
  40. package/src/identities/getIdentityBalance.d.ts +2 -2
  41. package/src/identities/getIdentityBalance.js +37 -80
  42. package/src/identities/getIdentityByIdentifier.d.ts +2 -2
  43. package/src/identities/getIdentityByIdentifier.js +37 -80
  44. package/src/identities/getIdentityByNonUniquePublicKeyHash.d.ts +1 -1
  45. package/src/identities/getIdentityByNonUniquePublicKeyHash.js +41 -82
  46. package/src/identities/getIdentityByPublicKeyHash.d.ts +1 -1
  47. package/src/identities/getIdentityByPublicKeyHash.js +37 -80
  48. package/src/identities/getIdentityContractNonce.d.ts +2 -2
  49. package/src/identities/getIdentityContractNonce.js +40 -83
  50. package/src/identities/getIdentityNonce.d.ts +2 -2
  51. package/src/identities/getIdentityNonce.js +38 -81
  52. package/src/identities/getIdentityPublicKeys.d.ts +3 -3
  53. package/src/identities/getIdentityPublicKeys.js +51 -80
  54. package/src/identities/index.d.ts +9 -6
  55. package/src/identities/index.js +72 -155
  56. package/src/keyPair/deriveChild.d.ts +2 -2
  57. package/src/keyPair/deriveChild.js +2 -49
  58. package/src/keyPair/derivePath.d.ts +2 -2
  59. package/src/keyPair/derivePath.js +2 -49
  60. package/src/keyPair/index.d.ts +39 -114
  61. package/src/keyPair/index.js +62 -296
  62. package/src/keyPair/mnemonicToSeed.d.ts +1 -1
  63. package/src/keyPair/mnemonicToSeed.js +3 -46
  64. package/src/names/index.d.ts +44 -3
  65. package/src/names/index.js +81 -69
  66. package/src/names/registerName.d.ts +3 -0
  67. package/src/names/registerName.js +64 -0
  68. package/src/names/searchByIdentity.d.ts +3 -0
  69. package/src/names/searchByIdentity.js +5 -0
  70. package/src/names/searchByName.d.ts +3 -0
  71. package/src/names/searchByName.js +16 -0
  72. package/src/names/testNameContested.d.ts +1 -0
  73. package/src/names/testNameContested.js +3 -0
  74. package/src/names/validateName.d.ts +1 -0
  75. package/src/names/validateName.js +11 -0
  76. package/src/node/epochs.d.ts +1 -1
  77. package/src/node/epochs.js +43 -85
  78. package/src/node/index.d.ts +5 -5
  79. package/src/node/index.js +18 -77
  80. package/src/node/status.d.ts +2 -2
  81. package/src/node/status.js +37 -81
  82. package/src/node/totalCredits.d.ts +3 -2
  83. package/src/node/totalCredits.js +32 -73
  84. package/src/stateTransitions/broadcast.d.ts +1 -1
  85. package/src/stateTransitions/broadcast.js +7 -57
  86. package/src/stateTransitions/index.d.ts +1 -1
  87. package/src/stateTransitions/index.js +13 -66
  88. package/src/stateTransitions/waitForStateTransitionResult.d.ts +1 -1
  89. package/src/stateTransitions/waitForStateTransitionResult.js +48 -61
  90. package/src/tokens/createStateTransition.d.ts +1 -1
  91. package/src/tokens/createStateTransition.js +23 -35
  92. package/src/tokens/getIdentitiesTokenBalances.d.ts +2 -2
  93. package/src/tokens/getIdentitiesTokenBalances.js +40 -83
  94. package/src/tokens/getIdentityTokensBalances.d.ts +2 -2
  95. package/src/tokens/getIdentityTokensBalances.js +40 -83
  96. package/src/tokens/getTokenContractInfo.d.ts +2 -2
  97. package/src/tokens/getTokenContractInfo.js +40 -83
  98. package/src/tokens/getTokenDirectPurchasePrices.d.ts +3 -0
  99. package/src/tokens/getTokenDirectPurchasePrices.js +40 -0
  100. package/src/tokens/getTokenTotalSupply.d.ts +2 -2
  101. package/src/tokens/getTokenTotalSupply.js +38 -81
  102. package/src/tokens/index.d.ts +13 -5
  103. package/src/tokens/index.js +46 -113
  104. package/src/types.d.ts +20 -16
  105. package/src/types.js +6 -16
  106. package/src/utils/base58ToBytes.js +3 -6
  107. package/src/utils/bytesToHex.js +2 -5
  108. package/src/utils/bytesToTypedArray.d.ts +1 -0
  109. package/src/utils/bytesToTypedArray.js +3 -0
  110. package/src/utils/calculateMsgHash.d.ts +1 -1
  111. package/src/utils/calculateMsgHash.js +10 -13
  112. package/src/utils/calculateSignHash.d.ts +2 -2
  113. package/src/utils/calculateSignHash.js +7 -10
  114. package/src/utils/calculateStateIdHash.d.ts +2 -2
  115. package/src/utils/calculateStateIdHash.js +8 -10
  116. package/src/utils/convertToHomographSafeChars.d.ts +0 -4
  117. package/src/utils/convertToHomographSafeChars.js +2 -9
  118. package/src/utils/createMasternodeIdentityId.d.ts +2 -0
  119. package/src/utils/createMasternodeIdentityId.js +4 -0
  120. package/src/utils/createVoterIdentityId.d.ts +2 -0
  121. package/src/utils/createVoterIdentityId.js +13 -0
  122. package/src/utils/getEvonodeList.d.ts +2 -2
  123. package/src/utils/getEvonodeList.js +10 -61
  124. package/src/utils/getQuorumPublicKey.js +15 -66
  125. package/src/utils/getRandomArrayItem.js +1 -4
  126. package/src/utils/getRandomBytes.d.ts +1 -0
  127. package/src/utils/getRandomBytes.js +4 -0
  128. package/src/utils/hexToBytes.js +2 -6
  129. package/src/utils/index.d.ts +19 -3
  130. package/src/utils/index.js +45 -31
  131. package/src/utils/indexBytesToString.js +2 -5
  132. package/src/utils/sha256.d.ts +1 -1
  133. package/src/utils/sha256.js +10 -8
  134. package/src/utils/signHash.d.ts +1 -1
  135. package/src/utils/signHash.js +9 -12
  136. package/src/utils/signRequestId.d.ts +1 -1
  137. package/src/utils/signRequestId.js +9 -12
  138. package/src/utils/sleep.d.ts +1 -0
  139. package/src/utils/sleep.js +3 -0
  140. package/src/utils/stringToIndexValueBytes.js +4 -7
  141. package/src/utils/verifyTenderdashProof.d.ts +2 -2
  142. package/src/utils/verifyTenderdashProof.js +13 -17
  143. package/src/voting/createStateTransition.d.ts +2 -0
  144. package/src/voting/createStateTransition.js +6 -0
  145. package/src/voting/createVote.d.ts +2 -0
  146. package/src/voting/createVote.js +5 -0
  147. package/src/voting/index.d.ts +37 -0
  148. package/src/voting/index.js +55 -0
  149. package/test/unit/ContestedResources.spec.js +91 -90
  150. package/test/unit/DataContract.spec.js +44 -111
  151. package/test/unit/Document.spec.js +93 -183
  152. package/test/unit/Identity.spec.js +254 -357
  153. package/test/unit/KeyPair.spec.js +30 -145
  154. package/test/unit/Names.spec.d.ts +1 -0
  155. package/test/unit/Names.spec.js +35 -0
  156. package/test/unit/Node.spec.js +55 -126
  157. package/test/unit/SDK.spec.js +7 -9
  158. package/test/unit/Tokens.spec.js +112 -262
  159. package/bundle.min.js.LICENSE.txt +0 -1
  160. package/src/keyPair/keyToPublicKey.d.ts +0 -2
  161. package/src/keyPair/keyToPublicKey.js +0 -47
  162. package/src/keyPair/keyToWalletId.d.ts +0 -2
  163. package/src/keyPair/keyToWalletId.js +0 -50
  164. package/src/keyPair/keyToXPrivateKey.d.ts +0 -3
  165. package/src/keyPair/keyToXPrivateKey.js +0 -50
  166. package/src/keyPair/keyToXPublicKey.d.ts +0 -3
  167. package/src/keyPair/keyToXPublicKey.js +0 -50
  168. package/src/keyPair/mnemonicToIdentityKey.d.ts +0 -3
  169. package/src/keyPair/mnemonicToIdentityKey.js +0 -57
  170. package/src/keyPair/mnemonicToWallet.d.ts +0 -2
  171. package/src/keyPair/mnemonicToWallet.js +0 -55
  172. package/src/keyPair/privateKeyToWif.d.ts +0 -2
  173. package/src/keyPair/privateKeyToWif.js +0 -50
  174. package/src/keyPair/publicKeyToAddress.d.ts +0 -2
  175. package/src/keyPair/publicKeyToAddress.js +0 -50
  176. package/src/keyPair/seedToWallet.d.ts +0 -2
  177. package/src/keyPair/seedToWallet.js +0 -50
  178. package/src/keyPair/walletToIdentityKey.d.ts +0 -3
  179. package/src/keyPair/walletToIdentityKey.js +0 -56
  180. package/src/keyPair/xkeyToHDXKey.d.ts +0 -2
  181. package/src/keyPair/xkeyToHDXKey.js +0 -50
  182. package/src/names/search.d.ts +0 -3
  183. package/src/names/search.js +0 -63
  184. package/src/signer/AbstractSigner.d.ts +0 -12
  185. package/src/signer/AbstractSigner.js +0 -2
  186. package/src/signer/PrivateKeySigner.d.ts +0 -0
  187. package/src/signer/PrivateKeySigner.js +0 -64
  188. package/src/signer/setSigner.d.ts +0 -2
  189. package/src/signer/setSigner.js +0 -8
@@ -1,85 +1,41 @@
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());
1
+ import { GetStatusRequest } from '../../proto/generated/platform.js';
2
+ import bytesToHex from '../utils/bytesToHex.js';
3
+ export default async function status(grpcPool) {
4
+ const getStatusRequest = GetStatusRequest.create({
5
+ version: {
6
+ oneofKind: 'v0',
7
+ v0: {}
8
+ }
9
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 };
10
+ const { response } = await grpcPool.getClient().getStatus(getStatusRequest);
11
+ const { version } = response;
12
+ if (version.oneofKind !== 'v0') {
13
+ throw new Error('Unexpected oneOf type returned from DAPI (must be v0)');
36
14
  }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.default = status;
40
- var platform_1 = require("../../proto/generated/platform");
41
- var bytesToHex_1 = require("../utils/bytesToHex");
42
- function status(grpcPool) {
43
- return __awaiter(this, void 0, void 0, function () {
44
- var getStatusRequest, response, v0;
45
- var _a, _b, _c, _d, _e, _f, _g, _h;
46
- return __generator(this, function (_j) {
47
- switch (_j.label) {
48
- case 0:
49
- getStatusRequest = platform_1.GetStatusRequest.fromPartial({ v0: {} });
50
- return [4 /*yield*/, grpcPool.getClient().getStatus(getStatusRequest)];
51
- case 1:
52
- response = _j.sent();
53
- v0 = response.v0;
54
- if (v0 == null) {
55
- throw new Error('Unable to get node status');
56
- }
57
- return [2 /*return*/, {
58
- node: (v0.node != null)
59
- ? {
60
- id: (0, bytesToHex_1.default)(v0.node.id),
61
- proTxHash: v0.node.proTxHash != null ? (0, bytesToHex_1.default)(v0.node.proTxHash) : undefined
62
- }
63
- : undefined,
64
- chain: (v0.chain != null)
65
- ? {
66
- catchingUp: v0.chain.catchingUp,
67
- latestBlockHeight: v0.chain.latestBlockHeight,
68
- earliestBlockHeight: v0.chain.earliestBlockHeight,
69
- maxPeerBlockHeight: v0.chain.maxPeerBlockHeight,
70
- coreChainLockedHeight: v0.chain.coreChainLockedHeight,
71
- latestBlockHash: ((_a = v0.chain) === null || _a === void 0 ? void 0 : _a.latestBlockHash) != null ? (0, bytesToHex_1.default)((_b = v0.chain) === null || _b === void 0 ? void 0 : _b.latestBlockHash) : '',
72
- latestAppHash: ((_c = v0.chain) === null || _c === void 0 ? void 0 : _c.latestAppHash) != null ? (0, bytesToHex_1.default)((_d = v0.chain) === null || _d === void 0 ? void 0 : _d.latestAppHash) : '',
73
- earliestBlockHash: ((_e = v0.chain) === null || _e === void 0 ? void 0 : _e.earliestBlockHash) != null ? (0, bytesToHex_1.default)((_f = v0.chain) === null || _f === void 0 ? void 0 : _f.earliestBlockHash) : '',
74
- earliestAppHash: ((_g = v0.chain) === null || _g === void 0 ? void 0 : _g.earliestAppHash) != null ? (0, bytesToHex_1.default)((_h = v0.chain) === null || _h === void 0 ? void 0 : _h.earliestAppHash) : ''
75
- }
76
- : undefined,
77
- version: v0.version,
78
- network: v0.network,
79
- stateSync: v0.stateSync,
80
- time: v0.time
81
- }];
15
+ const { v0 } = version;
16
+ return {
17
+ node: (v0.node != null)
18
+ ? {
19
+ id: bytesToHex(v0.node.id),
20
+ proTxHash: v0.node.proTxHash != null ? bytesToHex(v0.node.proTxHash) : undefined
82
21
  }
83
- });
84
- });
22
+ : undefined,
23
+ chain: (v0.chain != null)
24
+ ? {
25
+ catchingUp: v0.chain.catchingUp,
26
+ latestBlockHeight: v0.chain.latestBlockHeight,
27
+ earliestBlockHeight: v0.chain.earliestBlockHeight,
28
+ maxPeerBlockHeight: v0.chain.maxPeerBlockHeight,
29
+ coreChainLockedHeight: v0.chain.coreChainLockedHeight,
30
+ latestBlockHash: v0.chain?.latestBlockHash != null ? bytesToHex(v0.chain?.latestBlockHash) : '',
31
+ latestAppHash: v0.chain?.latestAppHash != null ? bytesToHex(v0.chain?.latestAppHash) : '',
32
+ earliestBlockHash: v0.chain?.earliestBlockHash != null ? bytesToHex(v0.chain?.earliestBlockHash) : '',
33
+ earliestAppHash: v0.chain?.earliestAppHash != null ? bytesToHex(v0.chain?.earliestAppHash) : ''
34
+ }
35
+ : undefined,
36
+ version: v0.version,
37
+ network: v0.network,
38
+ stateSync: v0.stateSync,
39
+ time: v0.time
40
+ };
85
41
  }
@@ -1,2 +1,3 @@
1
- import GRPCConnectionPool from '../grpcConnectionPool';
2
- export default function totalCredits(grpcPool: GRPCConnectionPool, network: 'testnet' | 'mainnet'): Promise<bigint>;
1
+ import GRPCConnectionPool from '../grpcConnectionPool.js';
2
+ import { Network } from '../types.js';
3
+ export default function totalCredits(grpcPool: GRPCConnectionPool, network: Network): Promise<bigint>;
@@ -1,76 +1,35 @@
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());
1
+ import { GetTotalCreditsInPlatformRequest } from '../../proto/generated/platform.js';
2
+ import { HALVING_INTERVAL, MAINNET_ACTIVATION_HEIGHT, TESTNET_ACTIVATION_HEIGHT } from '../constants.js';
3
+ import { PlatformVersionWASM, verifyTotalCreditsProof } from 'pshenmic-dpp';
4
+ import { getQuorumPublicKey } from '../utils/getQuorumPublicKey.js';
5
+ import bytesToHex from '../utils/bytesToHex.js';
6
+ import verifyTenderdashProof from '../utils/verifyTenderdashProof.js';
7
+ export default async function totalCredits(grpcPool, network) {
8
+ const getTotalCreditsInPlatformRequest = GetTotalCreditsInPlatformRequest.create({
9
+ version: {
10
+ oneofKind: 'v0',
11
+ v0: { prove: true }
12
+ }
9
13
  });
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 };
14
+ const { response } = await grpcPool.getClient().getTotalCreditsInPlatform(getTotalCreditsInPlatformRequest);
15
+ const { version } = response;
16
+ if (version.oneofKind !== 'v0') {
17
+ throw new Error('Unexpected oneOf type returned from DAPI (must be v0)');
36
18
  }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.default = totalCredits;
40
- var platform_1 = require("../../proto/generated/platform");
41
- var constants_1 = require("../constants");
42
- var pshenmic_dpp_1 = require("pshenmic-dpp");
43
- var getQuorumPublicKey_1 = require("../utils/getQuorumPublicKey");
44
- var bytesToHex_1 = require("../utils/bytesToHex");
45
- var verifyTenderdashProof_1 = require("../utils/verifyTenderdashProof");
46
- function totalCredits(grpcPool, network) {
47
- return __awaiter(this, void 0, void 0, function () {
48
- var request, v0, _a, proof, metadata, activationHeight, _b, rootHash, totalCredits, quorumPublicKey, verify;
49
- return __generator(this, function (_c) {
50
- switch (_c.label) {
51
- case 0:
52
- request = platform_1.GetTotalCreditsInPlatformRequest.fromPartial({ v0: { prove: true } });
53
- return [4 /*yield*/, grpcPool.getClient().getTotalCreditsInPlatform(request)];
54
- case 1:
55
- v0 = (_c.sent()).v0;
56
- _a = v0, proof = _a.proof, metadata = _a.metadata;
57
- if (proof == null) {
58
- throw new Error('Proof not found');
59
- }
60
- if (metadata == null) {
61
- throw new Error('Metadata not found');
62
- }
63
- activationHeight = network === 'testnet' ? constants_1.TESTNET_ACTIVATION_HEIGHT : constants_1.MAINNET_ACTIVATION_HEIGHT;
64
- _b = (0, pshenmic_dpp_1.verifyTotalCreditsProof)(proof.grovedbProof, constants_1.HALVING_INTERVAL, activationHeight, Number(metadata.height), pshenmic_dpp_1.PlatformVersionWASM.PLATFORM_V9), rootHash = _b.rootHash, totalCredits = _b.totalCredits;
65
- return [4 /*yield*/, (0, getQuorumPublicKey_1.getQuorumPublicKey)(grpcPool.network, proof.quorumType, (0, bytesToHex_1.default)(proof.quorumHash))];
66
- case 2:
67
- quorumPublicKey = _c.sent();
68
- verify = (0, verifyTenderdashProof_1.default)(proof, metadata, rootHash, quorumPublicKey);
69
- if (!verify) {
70
- throw new Error('Failed to verify query');
71
- }
72
- return [2 /*return*/, totalCredits];
73
- }
74
- });
75
- });
19
+ const { v0 } = version;
20
+ if (v0.result.oneofKind !== 'proof') {
21
+ throw new Error('Unexpected oneOf type returned from DAPI (must be proof)');
22
+ }
23
+ const { result: { proof }, metadata } = v0;
24
+ if (metadata == null) {
25
+ throw new Error('Metadata not found');
26
+ }
27
+ const activationHeight = network === 'testnet' ? TESTNET_ACTIVATION_HEIGHT : MAINNET_ACTIVATION_HEIGHT;
28
+ const { rootHash, totalCredits } = verifyTotalCreditsProof(proof.grovedbProof, HALVING_INTERVAL, activationHeight, Number(metadata.height), PlatformVersionWASM.PLATFORM_V9);
29
+ const quorumPublicKey = await getQuorumPublicKey(grpcPool.network, proof.quorumType, bytesToHex(proof.quorumHash));
30
+ const verify = await verifyTenderdashProof(proof, metadata, rootHash, quorumPublicKey);
31
+ if (!verify) {
32
+ throw new Error('Failed to verify query');
33
+ }
34
+ return totalCredits;
76
35
  }
@@ -1,3 +1,3 @@
1
1
  import { StateTransitionWASM } from 'pshenmic-dpp';
2
- import GRPCConnectionPool from '../grpcConnectionPool';
2
+ import GRPCConnectionPool from '../grpcConnectionPool.js';
3
3
  export default function broadcast(grpcPool: GRPCConnectionPool, stateTransition: StateTransitionWASM): Promise<void>;
@@ -1,60 +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 };
1
+ import { BroadcastStateTransitionRequest } from '../../proto/generated/platform.js';
2
+ export default async function broadcast(grpcPool, stateTransition) {
3
+ if (stateTransition.signature.length === 0) {
4
+ throw new Error('State Transition is not signed');
36
5
  }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.default = broadcast;
40
- var platform_1 = require("../../proto/generated/platform");
41
- function broadcast(grpcPool, stateTransition) {
42
- return __awaiter(this, void 0, void 0, function () {
43
- var broadcastStateTransitionRequest;
44
- return __generator(this, function (_a) {
45
- switch (_a.label) {
46
- case 0:
47
- if (stateTransition.signature.length === 0) {
48
- throw new Error('State Transition is not signed');
49
- }
50
- broadcastStateTransitionRequest = platform_1.BroadcastStateTransitionRequest.fromPartial({
51
- stateTransition: stateTransition.bytes()
52
- });
53
- return [4 /*yield*/, grpcPool.getClient().broadcastStateTransition(broadcastStateTransitionRequest)];
54
- case 1:
55
- _a.sent();
56
- return [2 /*return*/];
57
- }
58
- });
6
+ const broadcastStateTransitionRequest = BroadcastStateTransitionRequest.create({
7
+ stateTransition: stateTransition.bytes()
59
8
  });
9
+ await grpcPool.getClient().broadcastStateTransition(broadcastStateTransitionRequest);
60
10
  }
@@ -1,5 +1,5 @@
1
1
  import { StateTransitionWASM } from 'pshenmic-dpp';
2
- import GRPCConnectionPool from '../grpcConnectionPool';
2
+ import GRPCConnectionPool from '../grpcConnectionPool.js';
3
3
  /**
4
4
  * Collection of methods to perform state transitions (transactions) such like broadcast, wait for state transition result
5
5
  *
@@ -1,51 +1,14 @@
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.StateTransitionsController = void 0;
40
- var waitForStateTransitionResult_1 = require("./waitForStateTransitionResult");
41
- var broadcast_1 = require("./broadcast");
1
+ import waitForStateTransitionResult from './waitForStateTransitionResult.js';
2
+ import broadcast from './broadcast.js';
42
3
  /**
43
4
  * Collection of methods to perform state transitions (transactions) such like broadcast, wait for state transition result
44
5
  *
45
6
  * @hideconstructor
46
7
  */
47
- var StateTransitionsController = /** @class */ (function () {
48
- function StateTransitionsController(grpcPool) {
8
+ export class StateTransitionsController {
9
+ /** @ignore **/
10
+ grpcPool;
11
+ constructor(grpcPool) {
49
12
  this.grpcPool = grpcPool;
50
13
  }
51
14
  /**
@@ -55,16 +18,9 @@ var StateTransitionsController = /** @class */ (function () {
55
18
  *
56
19
  * @return {Promise<void>}
57
20
  */
58
- StateTransitionsController.prototype.broadcast = function (stateTransition) {
59
- return __awaiter(this, void 0, void 0, function () {
60
- return __generator(this, function (_a) {
61
- switch (_a.label) {
62
- case 0: return [4 /*yield*/, (0, broadcast_1.default)(this.grpcPool, stateTransition)];
63
- case 1: return [2 /*return*/, _a.sent()];
64
- }
65
- });
66
- });
67
- };
21
+ async broadcast(stateTransition) {
22
+ return await broadcast(this.grpcPool, stateTransition);
23
+ }
68
24
  /**
69
25
  * Waits for a given state transition to finalize in the network (usually 1-3 sec)
70
26
  *
@@ -72,16 +28,7 @@ var StateTransitionsController = /** @class */ (function () {
72
28
  *
73
29
  * @return {Promise<void>}
74
30
  */
75
- StateTransitionsController.prototype.waitForStateTransitionResult = function (stateTransition) {
76
- return __awaiter(this, void 0, void 0, function () {
77
- return __generator(this, function (_a) {
78
- switch (_a.label) {
79
- case 0: return [4 /*yield*/, (0, waitForStateTransitionResult_1.default)(this.grpcPool, stateTransition)];
80
- case 1: return [2 /*return*/, _a.sent()];
81
- }
82
- });
83
- });
84
- };
85
- return StateTransitionsController;
86
- }());
87
- exports.StateTransitionsController = StateTransitionsController;
31
+ async waitForStateTransitionResult(stateTransition) {
32
+ return await waitForStateTransitionResult(this.grpcPool, stateTransition);
33
+ }
34
+ }
@@ -1,3 +1,3 @@
1
1
  import { StateTransitionWASM } from 'pshenmic-dpp';
2
- import GRPCConnectionPool from '../grpcConnectionPool';
2
+ import GRPCConnectionPool from '../grpcConnectionPool.js';
3
3
  export default function waitForStateTransitionResult(grpcPool: GRPCConnectionPool, stateTransition: StateTransitionWASM): Promise<void>;
@@ -1,64 +1,51 @@
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 = waitForStateTransitionResult;
40
- var platform_1 = require("../../proto/generated/platform");
41
- function waitForStateTransitionResult(grpcPool, stateTransition) {
42
- return __awaiter(this, void 0, void 0, function () {
43
- var waitForStateTransitionResultRequest, v0, error;
44
- return __generator(this, function (_a) {
45
- switch (_a.label) {
46
- case 0:
47
- waitForStateTransitionResultRequest = platform_1.WaitForStateTransitionResultRequest.fromPartial({
48
- v0: {
49
- stateTransitionHash: stateTransition.bytes()
50
- }
51
- });
52
- return [4 /*yield*/, grpcPool.getClient().waitForStateTransitionResult(waitForStateTransitionResultRequest)];
53
- case 1:
54
- v0 = (_a.sent()).v0;
55
- error = v0.error;
56
- if (error != null) {
57
- // todo return error structure
58
- throw new Error(error.message);
59
- }
60
- return [2 /*return*/];
1
+ import { BlockInfoWASM, PlatformVersionWASM, verifyStateTransitionResult } from 'pshenmic-dpp';
2
+ import hexToBytes from '../utils/hexToBytes.js';
3
+ import { WaitForStateTransitionResultRequest } from '../../proto/generated/platform.js';
4
+ import { getQuorumPublicKey } from '../utils/getQuorumPublicKey.js';
5
+ import bytesToHex from '../utils/bytesToHex.js';
6
+ import verifyTenderdashProof from '../utils/verifyTenderdashProof.js';
7
+ import { base64 } from '@scure/base';
8
+ export default async function waitForStateTransitionResult(grpcPool, stateTransition) {
9
+ const txHash = stateTransition.hash(false);
10
+ const waitForStateTransitionResultRequest = WaitForStateTransitionResultRequest.create({
11
+ version: {
12
+ oneofKind: 'v0',
13
+ v0: {
14
+ stateTransitionHash: hexToBytes(txHash),
15
+ prove: true
61
16
  }
62
- });
17
+ }
63
18
  });
19
+ const { response } = await grpcPool.getClient().waitForStateTransitionResult(waitForStateTransitionResultRequest);
20
+ const { version } = response;
21
+ if (version.oneofKind !== 'v0') {
22
+ throw new Error('Unexpected oneOf type returned from DAPI (must be v0)');
23
+ }
24
+ const { v0 } = version;
25
+ if (v0.result.oneofKind !== 'proof' && v0.result.oneofKind !== 'error') {
26
+ throw new Error('Unexpected oneOf type returned from DAPI (must be proof)');
27
+ }
28
+ if (v0.result.oneofKind === 'proof') {
29
+ const { result: { proof }, metadata } = v0;
30
+ if (metadata == null) {
31
+ throw new Error('Metadata not found');
32
+ }
33
+ const { timeMs, height, coreChainLockedHeight, epoch } = metadata;
34
+ const { rootHash, result } = verifyStateTransitionResult(proof.grovedbProof, stateTransition, new BlockInfoWASM(BigInt(timeMs), BigInt(height), coreChainLockedHeight, epoch), true, PlatformVersionWASM.PLATFORM_V9);
35
+ if (result == null) {
36
+ throw new Error('State transition result was null');
37
+ }
38
+ const quorumPublicKey = await getQuorumPublicKey(grpcPool.network, proof.quorumType, bytesToHex(proof.quorumHash));
39
+ const verify = await verifyTenderdashProof(proof, metadata, rootHash, quorumPublicKey);
40
+ if (!verify) {
41
+ throw new Error('Failed to verify wait for state transition result query');
42
+ }
43
+ }
44
+ else if (v0.result.oneofKind === 'error') {
45
+ const { code, message, data } = v0.result.error;
46
+ throw new Error(`State transition ${txHash} failed to execute with code ${code}, message: ${message}, data: ${base64.encode(data)}`);
47
+ }
48
+ else {
49
+ throw new Error('Unexpected oneOfKind returned for waitForStateTransitionResult');
50
+ }
64
51
  }
@@ -1,3 +1,3 @@
1
1
  import { IdentifierWASM, StateTransitionWASM, TokenBaseTransitionWASM } from 'pshenmic-dpp';
2
- import { TokenTransitionParams, TokenTransitionType } from '../types';
2
+ import { TokenTransitionParams, TokenTransitionType } from '../types.js';
3
3
  export default function createStateTransition(base: TokenBaseTransitionWASM, ownerId: IdentifierWASM, type: TokenTransitionType, params: TokenTransitionParams): StateTransitionWASM;