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,84 +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());
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 = getTokenTotalSupply;
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 getTokenTotalSupply(grpcPool, tokenIdentifier) {
46
- return __awaiter(this, void 0, void 0, function () {
47
- var tokenId, request, v0, _a, proof, metadata, _b, rootHash, totalBalance, quorumPublicKey, verify;
48
- return __generator(this, function (_c) {
49
- switch (_c.label) {
50
- case 0:
51
- tokenId = new pshenmic_dpp_1.IdentifierWASM(tokenIdentifier);
52
- request = platform_1.GetTokenTotalSupplyRequest.fromPartial({
53
- v0: {
54
- tokenId: (tokenId).bytes(),
55
- prove: true
56
- }
57
- });
58
- return [4 /*yield*/, grpcPool.getClient().getTokenTotalSupply(request)];
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.verifyTokenTotalSupplyProof)(proof.grovedbProof, tokenId, true, pshenmic_dpp_1.PlatformVersionWASM.PLATFORM_V9), rootHash = _b.rootHash, totalBalance = _b.totalBalance;
69
- return [4 /*yield*/, (0, getQuorumPublicKey_1.getQuorumPublicKey)(grpcPool.network, proof.quorumType, (0, bytesToHex_1.default)(proof.quorumHash))];
70
- case 2:
71
- quorumPublicKey = _c.sent();
72
- verify = (0, verifyTenderdashProof_1.default)(proof, metadata, rootHash, quorumPublicKey);
73
- if (!verify) {
74
- throw new Error('Failed to verify query');
75
- }
76
- return [2 /*return*/, {
77
- tokenId: tokenId,
78
- totalSystemAmount: totalBalance.tokenSupply,
79
- totalAggregatedAmountInUserAccounts: totalBalance.aggregatedTokenAccountBalances
80
- }];
1
+ import { GetTokenTotalSupplyRequest } from '../../proto/generated/platform';
2
+ import { IdentifierWASM, PlatformVersionWASM, verifyTokenTotalSupplyProof } 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 getTokenTotalSupply(grpcPool, tokenIdentifier) {
7
+ const tokenId = new IdentifierWASM(tokenIdentifier);
8
+ const getTokenTotalSupplyRequest = GetTokenTotalSupplyRequest.create({
9
+ version: {
10
+ oneofKind: 'v0',
11
+ v0: {
12
+ tokenId: (tokenId).bytes(),
13
+ prove: true
81
14
  }
82
- });
15
+ }
83
16
  });
17
+ const { response } = await grpcPool.getClient().getTokenTotalSupply(getTokenTotalSupplyRequest);
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, totalBalance } = verifyTokenTotalSupplyProof(proof.grovedbProof, tokenId, true, PlatformVersionWASM.PLATFORM_V9);
31
+ const quorumPublicKey = await getQuorumPublicKey(grpcPool.network, proof.quorumType, bytesToHex(proof.quorumHash));
32
+ const verify = await verifyTenderdashProof(proof, metadata, rootHash, quorumPublicKey);
33
+ if (!verify) {
34
+ throw new Error('Failed to verify query');
35
+ }
36
+ return {
37
+ tokenId,
38
+ totalSystemAmount: totalBalance.tokenSupply,
39
+ totalAggregatedAmountInUserAccounts: totalBalance.aggregatedTokenAccountBalances
40
+ };
84
41
  }
@@ -1,57 +1,20 @@
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.TokensController = void 0;
40
- var getIdentitiesTokenBalances_1 = require("./getIdentitiesTokenBalances");
41
- var getIdentityTokensBalances_1 = require("./getIdentityTokensBalances");
42
- var getTokenContractInfo_1 = require("./getTokenContractInfo");
43
- var getTokenTotalSupply_1 = require("./getTokenTotalSupply");
44
- var createStateTransition_1 = require("./createStateTransition");
45
- var pshenmic_dpp_1 = require("pshenmic-dpp");
46
- var getIdentityContractNonce_1 = require("../identities/getIdentityContractNonce");
47
- var getTokenDirectPurchasePrices_1 = require("./getTokenDirectPurchasePrices");
1
+ import getIdentitiesTokenBalances from './getIdentitiesTokenBalances';
2
+ import getIdentityTokensBalances from './getIdentityTokensBalances';
3
+ import getTokenContractInfo from './getTokenContractInfo';
4
+ import getTokenTotalSupply from './getTokenTotalSupply';
5
+ import createStateTransition from './createStateTransition';
6
+ import { IdentifierWASM, TokenBaseTransitionWASM, TokenPricingScheduleWASM } from 'pshenmic-dpp';
7
+ import getIdentityContractNonce from '../identities/getIdentityContractNonce';
8
+ import getTokenDirectPurchasePrices from './getTokenDirectPurchasePrices';
48
9
  /**
49
10
  * Tokens controller for requesting information about tokens and tokens holders
50
11
  *
51
12
  * @hideconstructor
52
13
  */
53
- var TokensController = /** @class */ (function () {
54
- function TokensController(grpcPool) {
14
+ export class TokensController {
15
+ /** @ignore **/
16
+ grpcPool;
17
+ constructor(grpcPool) {
55
18
  this.grpcPool = grpcPool;
56
19
  }
57
20
  /**
@@ -62,16 +25,9 @@ var TokensController = /** @class */ (function () {
62
25
  *
63
26
  * @return {Promise<IdentitiesTokenBalances>}
64
27
  */
65
- TokensController.prototype.getIdentitiesTokenBalances = function (identifiers, tokenIdentifier) {
66
- return __awaiter(this, void 0, void 0, function () {
67
- return __generator(this, function (_a) {
68
- switch (_a.label) {
69
- case 0: return [4 /*yield*/, (0, getIdentitiesTokenBalances_1.default)(this.grpcPool, identifiers, tokenIdentifier)];
70
- case 1: return [2 /*return*/, _a.sent()];
71
- }
72
- });
73
- });
74
- };
28
+ async getIdentitiesTokenBalances(identifiers, tokenIdentifier) {
29
+ return await getIdentitiesTokenBalances(this.grpcPool, identifiers, tokenIdentifier);
30
+ }
75
31
  /**
76
32
  * Retrieves a tokens balances for identity
77
33
  *
@@ -80,16 +36,9 @@ var TokensController = /** @class */ (function () {
80
36
  *
81
37
  * @return {Promise<IdentityTokenBalances>}
82
38
  */
83
- TokensController.prototype.getIdentityTokensBalances = function (identifier, tokenIdentifiers) {
84
- return __awaiter(this, void 0, void 0, function () {
85
- return __generator(this, function (_a) {
86
- switch (_a.label) {
87
- case 0: return [4 /*yield*/, (0, getIdentityTokensBalances_1.default)(this.grpcPool, identifier, tokenIdentifiers)];
88
- case 1: return [2 /*return*/, _a.sent()];
89
- }
90
- });
91
- });
92
- };
39
+ async getIdentityTokensBalances(identifier, tokenIdentifiers) {
40
+ return await getIdentityTokensBalances(this.grpcPool, identifier, tokenIdentifiers);
41
+ }
93
42
  /**
94
43
  * Retrieves a tokens contract info by id
95
44
  *
@@ -97,16 +46,9 @@ var TokensController = /** @class */ (function () {
97
46
  *
98
47
  * @return {Promise<TokenContractInfo>}
99
48
  */
100
- TokensController.prototype.getTokenContractInfo = function (tokenIdentifier) {
101
- return __awaiter(this, void 0, void 0, function () {
102
- return __generator(this, function (_a) {
103
- switch (_a.label) {
104
- case 0: return [4 /*yield*/, (0, getTokenContractInfo_1.default)(this.grpcPool, tokenIdentifier)];
105
- case 1: return [2 /*return*/, _a.sent()];
106
- }
107
- });
108
- });
109
- };
49
+ async getTokenContractInfo(tokenIdentifier) {
50
+ return await getTokenContractInfo(this.grpcPool, tokenIdentifier);
51
+ }
110
52
  /**
111
53
  * Retrieves a token total supply
112
54
  *
@@ -114,16 +56,9 @@ var TokensController = /** @class */ (function () {
114
56
  *
115
57
  * @return {Promise<TokenTotalSupply>}
116
58
  */
117
- TokensController.prototype.getTokenTotalSupply = function (tokenIdentifier) {
118
- return __awaiter(this, void 0, void 0, function () {
119
- return __generator(this, function (_a) {
120
- switch (_a.label) {
121
- case 0: return [4 /*yield*/, (0, getTokenTotalSupply_1.default)(this.grpcPool, tokenIdentifier)];
122
- case 1: return [2 /*return*/, _a.sent()];
123
- }
124
- });
125
- });
126
- };
59
+ async getTokenTotalSupply(tokenIdentifier) {
60
+ return await getTokenTotalSupply(this.grpcPool, tokenIdentifier);
61
+ }
127
62
  /**
128
63
  * Retrieves a tokens prices
129
64
  *
@@ -131,16 +66,9 @@ var TokensController = /** @class */ (function () {
131
66
  *
132
67
  * @return {Promise<TokenDirectPurchasePrices[]>}
133
68
  */
134
- TokensController.prototype.getTokensDirectPurchasePrice = function (tokenIdentifiers) {
135
- return __awaiter(this, void 0, void 0, function () {
136
- return __generator(this, function (_a) {
137
- switch (_a.label) {
138
- case 0: return [4 /*yield*/, (0, getTokenDirectPurchasePrices_1.default)(this.grpcPool, tokenIdentifiers)];
139
- case 1: return [2 /*return*/, _a.sent()];
140
- }
141
- });
142
- });
143
- };
69
+ async getTokensDirectPurchasePrice(tokenIdentifiers) {
70
+ return await getTokenDirectPurchasePrices(this.grpcPool, tokenIdentifiers);
71
+ }
144
72
  /**
145
73
  * Creates a Token Base Transition that contains base information about token transition
146
74
  *
@@ -149,22 +77,11 @@ var TokensController = /** @class */ (function () {
149
77
  *
150
78
  * @return {TokenBaseTransitionWASM}
151
79
  */
152
- TokensController.prototype.createBaseTransition = function (tokenId, ownerId) {
153
- return __awaiter(this, void 0, void 0, function () {
154
- var _a, dataContractId, tokenContractPosition, identityContractNonce;
155
- return __generator(this, function (_b) {
156
- switch (_b.label) {
157
- case 0: return [4 /*yield*/, (0, getTokenContractInfo_1.default)(this.grpcPool, tokenId)];
158
- case 1:
159
- _a = _b.sent(), dataContractId = _a.dataContractId, tokenContractPosition = _a.tokenContractPosition;
160
- return [4 /*yield*/, (0, getIdentityContractNonce_1.default)(this.grpcPool, ownerId, dataContractId)];
161
- case 2:
162
- identityContractNonce = _b.sent();
163
- return [2 /*return*/, new pshenmic_dpp_1.TokenBaseTransitionWASM(identityContractNonce + BigInt(1), tokenContractPosition, dataContractId, tokenId, undefined)];
164
- }
165
- });
166
- });
167
- };
80
+ async createBaseTransition(tokenId, ownerId) {
81
+ const { dataContractId, tokenContractPosition } = await getTokenContractInfo(this.grpcPool, tokenId);
82
+ const identityContractNonce = await getIdentityContractNonce(this.grpcPool, ownerId, dataContractId);
83
+ return new TokenBaseTransitionWASM(identityContractNonce + BigInt(1), tokenContractPosition, dataContractId, tokenId, undefined);
84
+ }
168
85
  /**
169
86
  * Helper function for creation of a token state transition to be broadcasted in the network
170
87
  *
@@ -178,16 +95,14 @@ var TokensController = /** @class */ (function () {
178
95
  *
179
96
  * @return {StateTransitionWASM}
180
97
  */
181
- TokensController.prototype.createStateTransition = function (base, ownerId, type, params) {
182
- var owner = new pshenmic_dpp_1.IdentifierWASM(ownerId);
98
+ createStateTransition(base, ownerId, type, params) {
99
+ const owner = new IdentifierWASM(ownerId);
183
100
  if (params.identityId != null) {
184
- params.identityId = new pshenmic_dpp_1.IdentifierWASM(params.identityId);
101
+ params.identityId = new IdentifierWASM(params.identityId);
185
102
  }
186
103
  if (params.price != null && typeof params.price === 'bigint') {
187
- params.price = pshenmic_dpp_1.TokenPricingScheduleWASM.SinglePrice(params.price);
104
+ params.price = TokenPricingScheduleWASM.SinglePrice(params.price);
188
105
  }
189
- return (0, createStateTransition_1.default)(base, owner, type, params);
190
- };
191
- return TokensController;
192
- }());
193
- exports.TokensController = TokensController;
106
+ return createStateTransition(base, owner, type, params);
107
+ }
108
+ }
package/src/types.d.ts CHANGED
@@ -1,16 +1,10 @@
1
1
  import { DocumentWASM, GasFeesPaidByWASM, IdentifierWASM, KeyType, Purpose, SecurityLevel, TokenEmergencyActionWASM, TokenPricingScheduleWASM } from 'pshenmic-dpp';
2
- import { Versions } from 'dashhd';
3
2
  export { IdentifierWASM, IdentityWASM, DocumentWASM, DataContractWASM, StateTransitionWASM, IdentityPublicKeyWASM } from 'pshenmic-dpp';
4
3
  export type IdentifierLike = IdentifierWASM | string | Uint8Array;
4
+ export type Network = 'mainnet' | 'testnet';
5
5
  export { DashPlatformSDK } from './DashPlatformSDK';
6
6
  export type MasternodeList = Record<string, MasternodeInfo>;
7
7
  export { AbstractSigner } from './signer/AbstractSigner';
8
- export interface WalletToIdentityKeyOpts {
9
- network?: 'mainnet' | 'testnet';
10
- }
11
- export interface NetworkVersion {
12
- version: Versions;
13
- }
14
8
  export interface DocumentTransitionParams {
15
9
  identityContractNonce: bigint;
16
10
  amount?: bigint;
@@ -48,17 +42,17 @@ export interface MasternodeInfo {
48
42
  }
49
43
  export interface NodeStatus {
50
44
  version: {
51
- software: {
45
+ software?: {
52
46
  dapi: string;
53
47
  drive?: string | undefined;
54
48
  tenderdash?: string | undefined;
55
49
  } | undefined;
56
- protocol: {
57
- tenderdash: {
58
- p2p: number;
50
+ protocol?: {
51
+ tenderdash?: {
52
+ p2P: number;
59
53
  block: number;
60
54
  } | undefined;
61
- drive: {
55
+ drive?: {
62
56
  latest: number;
63
57
  current: number;
64
58
  } | undefined;
package/src/types.js CHANGED
@@ -1,25 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FinishedVoteOutcome = exports.ContestedStateResultType = exports.DashPlatformSDK = exports.IdentityPublicKeyWASM = exports.StateTransitionWASM = exports.DataContractWASM = exports.DocumentWASM = exports.IdentityWASM = exports.IdentifierWASM = void 0;
4
- var pshenmic_dpp_1 = require("pshenmic-dpp");
5
- Object.defineProperty(exports, "IdentifierWASM", { enumerable: true, get: function () { return pshenmic_dpp_1.IdentifierWASM; } });
6
- Object.defineProperty(exports, "IdentityWASM", { enumerable: true, get: function () { return pshenmic_dpp_1.IdentityWASM; } });
7
- Object.defineProperty(exports, "DocumentWASM", { enumerable: true, get: function () { return pshenmic_dpp_1.DocumentWASM; } });
8
- Object.defineProperty(exports, "DataContractWASM", { enumerable: true, get: function () { return pshenmic_dpp_1.DataContractWASM; } });
9
- Object.defineProperty(exports, "StateTransitionWASM", { enumerable: true, get: function () { return pshenmic_dpp_1.StateTransitionWASM; } });
10
- Object.defineProperty(exports, "IdentityPublicKeyWASM", { enumerable: true, get: function () { return pshenmic_dpp_1.IdentityPublicKeyWASM; } });
11
- var DashPlatformSDK_1 = require("./DashPlatformSDK");
12
- Object.defineProperty(exports, "DashPlatformSDK", { enumerable: true, get: function () { return DashPlatformSDK_1.DashPlatformSDK; } });
13
- var ContestedStateResultType;
1
+ export { IdentifierWASM, IdentityWASM, DocumentWASM, DataContractWASM, StateTransitionWASM, IdentityPublicKeyWASM } from 'pshenmic-dpp';
2
+ export { DashPlatformSDK } from './DashPlatformSDK';
3
+ export var ContestedStateResultType;
14
4
  (function (ContestedStateResultType) {
15
5
  ContestedStateResultType[ContestedStateResultType["DOCUMENTS"] = 0] = "DOCUMENTS";
16
6
  ContestedStateResultType[ContestedStateResultType["VOTE_TALLY"] = 1] = "VOTE_TALLY";
17
7
  ContestedStateResultType[ContestedStateResultType["DOCUMENTS_AND_VOTE_TALLY"] = 2] = "DOCUMENTS_AND_VOTE_TALLY";
18
- })(ContestedStateResultType || (exports.ContestedStateResultType = ContestedStateResultType = {}));
19
- var FinishedVoteOutcome;
8
+ })(ContestedStateResultType || (ContestedStateResultType = {}));
9
+ export var FinishedVoteOutcome;
20
10
  (function (FinishedVoteOutcome) {
21
11
  FinishedVoteOutcome[FinishedVoteOutcome["TOWARDS_IDENTITY"] = 0] = "TOWARDS_IDENTITY";
22
12
  FinishedVoteOutcome[FinishedVoteOutcome["LOCKED"] = 1] = "LOCKED";
23
13
  FinishedVoteOutcome[FinishedVoteOutcome["NO_PREVIOUS_WINNER"] = 2] = "NO_PREVIOUS_WINNER";
24
14
  FinishedVoteOutcome[FinishedVoteOutcome["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
25
- })(FinishedVoteOutcome || (exports.FinishedVoteOutcome = FinishedVoteOutcome = {}));
15
+ })(FinishedVoteOutcome || (FinishedVoteOutcome = {}));
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = base58ToBytes;
4
- var base_1 = require("@scure/base");
5
- function base58ToBytes(str) {
6
- return base_1.base58.decode(str);
1
+ import { base58 } from '@scure/base';
2
+ export default function base58ToBytes(str) {
3
+ return base58.decode(str);
7
4
  }
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = bytesToHex;
4
- function bytesToHex(bytes) {
5
- return Array.prototype.map.call(bytes, function (x) { return ('00' + x.toString(16)).slice(-2); }).join('');
1
+ export default function bytesToHex(bytes) {
2
+ return Array.prototype.map.call(bytes, (x) => ('00' + x.toString(16)).slice(-2)).join('');
6
3
  }
@@ -0,0 +1 @@
1
+ export declare function typedArrayToBuffer(bytes: Uint8Array): ArrayBuffer;
@@ -0,0 +1,3 @@
1
+ export function typedArrayToBuffer(bytes) {
2
+ return bytes.buffer.slice(bytes.byteOffset, bytes.byteLength + bytes.byteOffset);
3
+ }
@@ -1 +1 @@
1
- export declare function calculateMsgHash(chainId: string, height: bigint, round: number, type: number, blockId: Uint8Array, stateId: Uint8Array): Uint8Array;
1
+ export declare function calculateMsgHash(chainId: string, height: bigint, round: number, type: number, blockId: Uint8Array, stateId: Uint8Array): Promise<Uint8Array>;
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateMsgHash = calculateMsgHash;
4
- var sha256_1 = require("./sha256");
5
- function calculateMsgHash(chainId, height, round, type, blockId, stateId) {
6
- var fixedSize = 4 + 8 + 8 + 32 + 32;
7
- var chainIdBytes = new TextEncoder().encode(chainId);
8
- var totalSize = fixedSize + chainIdBytes.length;
9
- var buffer = new ArrayBuffer(totalSize);
10
- var view = new DataView(buffer);
11
- var uint8View = new Uint8Array(buffer);
12
- var offset = 0;
1
+ import sha256 from './sha256';
2
+ export async function calculateMsgHash(chainId, height, round, type, blockId, stateId) {
3
+ const fixedSize = 4 + 8 + 8 + 32 + 32;
4
+ const chainIdBytes = new TextEncoder().encode(chainId);
5
+ const totalSize = fixedSize + chainIdBytes.length;
6
+ const buffer = new ArrayBuffer(totalSize);
7
+ const view = new DataView(buffer);
8
+ const uint8View = new Uint8Array(buffer);
9
+ let offset = 0;
13
10
  // Write type as 32-bit little-endian integer
14
11
  view.setInt32(offset, type, true);
15
12
  offset += 4;
@@ -30,5 +27,5 @@ function calculateMsgHash(chainId, height, round, type, blockId, stateId) {
30
27
  }
31
28
  // Copy chainId bytes
32
29
  uint8View.set(chainIdBytes, offset);
33
- return (0, sha256_1.default)(uint8View);
30
+ return await sha256(uint8View);
34
31
  }
@@ -1,2 +1,2 @@
1
1
  import { CanonicalVote } from '../../proto/generated/platform';
2
- export declare function calculateSignHash(commit: CanonicalVote, chainId: string, quorumType: number, quorumHash: Uint8Array, height: bigint, round: number): Uint8Array;
2
+ export declare function calculateSignHash(commit: CanonicalVote, chainId: string, quorumType: number, quorumHash: Uint8Array, height: bigint, round: number): Promise<Uint8Array>;
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateSignHash = calculateSignHash;
4
- var calculateMsgHash_1 = require("./calculateMsgHash");
5
- var signRequestId_1 = require("./signRequestId");
6
- var signHash_1 = require("./signHash");
7
- function calculateSignHash(commit, chainId, quorumType, quorumHash, height, round) {
8
- var requestId = (0, signRequestId_1.default)('dpbvote', height, round);
9
- var signBytesHash = (0, calculateMsgHash_1.calculateMsgHash)(chainId, height, round, commit.type, commit.blockId, commit.stateId);
10
- return (0, signHash_1.default)(quorumType, quorumHash, requestId, signBytesHash);
1
+ import { calculateMsgHash } from './calculateMsgHash';
2
+ import signRequestId from './signRequestId';
3
+ import signHash from './signHash';
4
+ export async function calculateSignHash(commit, chainId, quorumType, quorumHash, height, round) {
5
+ const requestId = await signRequestId('dpbvote', height, round);
6
+ const signBytesHash = await calculateMsgHash(chainId, height, round, commit.type, commit.blockId, commit.stateId);
7
+ return await signHash(quorumType, quorumHash, requestId, signBytesHash);
11
8
  }
@@ -1,2 +1,2 @@
1
1
  import { StateId } from '../../proto/generated/platform';
2
- export declare function calculateStateIdHash(stateId: StateId): Uint8Array;
2
+ export declare function calculateStateIdHash(stateId: StateId): Promise<Uint8Array>;
@@ -1,12 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateStateIdHash = calculateStateIdHash;
4
- var platform_1 = require("../../proto/generated/platform");
5
- var wire_1 = require("@bufbuild/protobuf/wire");
6
- var sha256_1 = require("./sha256");
7
- function calculateStateIdHash(stateId) {
8
- var encoded = platform_1.StateId.encode(stateId).finish();
9
- var writer = new wire_1.BinaryWriter();
1
+ import { StateId } from '../../proto/generated/platform';
2
+ import sha256 from './sha256';
3
+ import { BinaryWriter } from '@bufbuild/protobuf/wire';
4
+ export async function calculateStateIdHash(stateId) {
5
+ const writer = new BinaryWriter();
6
+ // @ts-expect-error
7
+ const encoded = StateId.internalBinaryWrite(stateId, writer, { writeUnknownFields: false }).finish();
10
8
  writer.bytes(encoded);
11
- return (0, sha256_1.default)(writer.finish());
9
+ return await sha256(writer.finish());
12
10
  }
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = convertToHomographSafeChars;
4
- function convertToHomographSafeChars(input) {
5
- return input.toLowerCase().replace(/[oli]/g, function (match) {
1
+ export default function convertToHomographSafeChars(input) {
2
+ return input.toLowerCase().replace(/[oli]/g, (match) => {
6
3
  if (match === 'o') {
7
4
  return '0';
8
5
  }
@@ -1,2 +1,2 @@
1
1
  import { IdentifierWASM } from 'pshenmic-dpp';
2
- export declare function createVoterIdentityId(proTxHash: string, publicKeyHash: string): IdentifierWASM;
2
+ export declare function createVoterIdentityId(proTxHash: string, publicKeyHash: string): Promise<IdentifierWASM>;
@@ -1,12 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createVoterIdentityId = createVoterIdentityId;
4
- var hash_js_1 = require("hash.js");
5
- var hexToBytes_1 = require("./hexToBytes");
6
- var pshenmic_dpp_1 = require("pshenmic-dpp");
7
- function createVoterIdentityId(proTxHash, publicKeyHash) {
8
- var hash = (0, hash_js_1.sha256)().update((0, hexToBytes_1.default)(proTxHash));
9
- hash.update((0, hexToBytes_1.default)(publicKeyHash));
10
- var voterHex = hash.digest('hex');
11
- return pshenmic_dpp_1.IdentifierWASM.fromHex(voterHex);
1
+ import { IdentifierWASM } from 'pshenmic-dpp';
2
+ import sha256 from './sha256';
3
+ import bytesToHex from './bytesToHex';
4
+ import hexToBytes from './hexToBytes';
5
+ export async function createVoterIdentityId(proTxHash, publicKeyHash) {
6
+ const proTxHashBytes = hexToBytes(proTxHash);
7
+ const publicKeyHashBytes = hexToBytes(publicKeyHash);
8
+ const mergedArray = new Uint8Array(proTxHashBytes.length + publicKeyHashBytes.length);
9
+ mergedArray.set(proTxHashBytes);
10
+ mergedArray.set(publicKeyHashBytes, proTxHashBytes.length);
11
+ const voterIdentifierBytes = await sha256(mergedArray);
12
+ return IdentifierWASM.fromHex(bytesToHex(voterIdentifierBytes));
12
13
  }
@@ -1,2 +1,2 @@
1
- import { MasternodeList } from '../types';
2
- export default function getDAPINodeList(network: 'testnet' | 'mainnet'): Promise<MasternodeList>;
1
+ import { MasternodeList, Network } from '../types';
2
+ export default function getDAPINodeList(network: Network): Promise<MasternodeList>;