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,79 +1,67 @@
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 tokenTransitionsMap = {
1
+ import { BatchedTransitionWASM, BatchTransitionWASM, TokenBurnTransitionWASM, TokenDestroyFrozenFundsTransitionWASM, TokenDirectPurchaseTransitionWASM, TokenEmergencyActionTransitionWASM, TokenFreezeTransitionWASM, TokenMintTransitionWASM, TokenSetPriceForDirectPurchaseTransitionWASM, TokenTransferTransitionWASM, TokenTransitionWASM, TokenUnFreezeTransitionWASM } from 'pshenmic-dpp';
2
+ const tokenTransitionsMap = {
15
3
  burn: {
16
- class: pshenmic_dpp_1.TokenBurnTransitionWASM,
4
+ class: TokenBurnTransitionWASM,
17
5
  arguments: ['amount', 'publicNote'],
18
6
  optionalArguments: ['publicNote']
19
7
  },
20
8
  mint: {
21
- class: pshenmic_dpp_1.TokenMintTransitionWASM,
9
+ class: TokenMintTransitionWASM,
22
10
  arguments: ['identityId', 'amount', 'publicNote'],
23
11
  optionalArguments: ['publicNote']
24
12
  },
25
13
  transfer: {
26
- class: pshenmic_dpp_1.TokenTransferTransitionWASM,
14
+ class: TokenTransferTransitionWASM,
27
15
  arguments: ['identityId', 'amount', 'publicNote', 'sharedEncryptedNote', 'privateEncryptedNote'],
28
16
  optionalArguments: ['publicNote', 'sharedEncryptedNote', 'privateEncryptedNote']
29
17
  },
30
18
  freeze: {
31
- class: pshenmic_dpp_1.TokenFreezeTransitionWASM,
19
+ class: TokenFreezeTransitionWASM,
32
20
  arguments: ['identityId', 'publicNote'],
33
21
  optionalArguments: ['publicNote']
34
22
  },
35
23
  unfreeze: {
36
- class: pshenmic_dpp_1.TokenUnFreezeTransitionWASM,
24
+ class: TokenUnFreezeTransitionWASM,
37
25
  arguments: ['identityId', 'publicNote'],
38
26
  optionalArguments: ['publicNote']
39
27
  },
40
28
  destroyFrozenFunds: {
41
- class: pshenmic_dpp_1.TokenDestroyFrozenFundsTransitionWASM,
29
+ class: TokenDestroyFrozenFundsTransitionWASM,
42
30
  arguments: ['identityId', 'publicNote'],
43
31
  optionalArguments: ['publicNote']
44
32
  },
45
33
  emergencyAction: {
46
- class: pshenmic_dpp_1.TokenEmergencyActionTransitionWASM,
34
+ class: TokenEmergencyActionTransitionWASM,
47
35
  arguments: ['emergencyAction', 'publicNote'],
48
36
  optionalArguments: ['publicNote']
49
37
  },
50
38
  directPurchase: {
51
- class: pshenmic_dpp_1.TokenDirectPurchaseTransitionWASM,
39
+ class: TokenDirectPurchaseTransitionWASM,
52
40
  arguments: ['amount', 'totalAgreedPrice'],
53
41
  optionalArguments: []
54
42
  },
55
43
  setPriceForDirectPurchase: {
56
- class: pshenmic_dpp_1.TokenSetPriceForDirectPurchaseTransitionWASM,
44
+ class: TokenSetPriceForDirectPurchaseTransitionWASM,
57
45
  arguments: ['price', 'publicNote'],
58
46
  optionalArguments: ['publicNote']
59
47
  }
60
48
  };
61
- function createStateTransition(base, ownerId, type, params) {
62
- var _a = tokenTransitionsMap[type], TransitionClass = _a.class, classArguments = _a.arguments, optionalArguments = _a.optionalArguments;
49
+ export default function createStateTransition(base, ownerId, type, params) {
50
+ const { class: TransitionClass, arguments: classArguments, optionalArguments } = tokenTransitionsMap[type];
63
51
  if (TransitionClass == null) {
64
- throw new Error("Unimplemented transition type: ".concat(type));
52
+ throw new Error(`Unimplemented transition type: ${type}`);
65
53
  }
66
54
  // check if all required params for token transition exists
67
- var missingArgument = classArguments
68
- .filter(function (classArgument) { return params[classArgument] == null &&
69
- !optionalArguments.includes(classArgument); })[0];
55
+ const [missingArgument] = classArguments
56
+ .filter((classArgument) => params[classArgument] == null &&
57
+ !optionalArguments.includes(classArgument));
70
58
  if (missingArgument != null) {
71
- throw new Error("Token transition param \"".concat(missingArgument, "\" is missing"));
59
+ throw new Error(`Token transition param "${missingArgument}" is missing`);
72
60
  }
73
- var transitionParams = classArguments.map(function (classArgument) { return params[classArgument]; });
61
+ const transitionParams = classArguments.map((classArgument) => params[classArgument]);
74
62
  // @ts-expect-error
75
- var tokenTransition = new (TransitionClass.bind.apply(TransitionClass, __spreadArray([void 0, base], transitionParams, false)))();
76
- var tokenTransitionWASM = new pshenmic_dpp_1.TokenTransitionWASM(tokenTransition);
77
- var batchedTransition = new pshenmic_dpp_1.BatchedTransitionWASM(tokenTransitionWASM);
78
- return pshenmic_dpp_1.BatchTransitionWASM.fromV1BatchedTransitions([batchedTransition], ownerId, 1).toStateTransition();
63
+ const tokenTransition = new TransitionClass(base, ...transitionParams);
64
+ const tokenTransitionWASM = new TokenTransitionWASM(tokenTransition);
65
+ const batchedTransition = new BatchedTransitionWASM(tokenTransitionWASM);
66
+ return BatchTransitionWASM.fromV1BatchedTransitions([batchedTransition], ownerId, 1).toStateTransition();
79
67
  }
@@ -1,86 +1,43 @@
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 = getIdentitiesTokenBalances;
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 getIdentitiesTokenBalances(grpcPool, identifiers, tokenIdentifier) {
46
- return __awaiter(this, void 0, void 0, function () {
47
- var ids, tokenId, request, v0, _a, proof, metadata, _b, rootHash, balances, quorumPublicKey, verify;
48
- return __generator(this, function (_c) {
49
- switch (_c.label) {
50
- case 0:
51
- ids = identifiers.map(function (identifier) { return new pshenmic_dpp_1.IdentifierWASM(identifier); });
52
- tokenId = new pshenmic_dpp_1.IdentifierWASM(tokenIdentifier);
53
- request = platform_1.GetIdentitiesTokenBalancesRequest.fromPartial({
54
- v0: {
55
- tokenId: tokenId.bytes(),
56
- identityIds: ids.map(function (id) { return id.bytes(); }),
57
- prove: true
58
- }
59
- });
60
- return [4 /*yield*/, grpcPool.getClient().getIdentitiesTokenBalances(request)];
61
- case 1:
62
- v0 = (_c.sent()).v0;
63
- _a = v0, proof = _a.proof, metadata = _a.metadata;
64
- if (proof == null) {
65
- throw new Error('Proof not found');
66
- }
67
- if (metadata == null) {
68
- throw new Error('Metadata not found');
69
- }
70
- _b = (0, pshenmic_dpp_1.verifyTokenBalancesForIdentitiesProof)(proof.grovedbProof, tokenId, true, ids, pshenmic_dpp_1.PlatformVersionWASM.PLATFORM_V9), rootHash = _b.rootHash, balances = _b.balances;
71
- return [4 /*yield*/, (0, getQuorumPublicKey_1.getQuorumPublicKey)(grpcPool.network, proof.quorumType, (0, bytesToHex_1.default)(proof.quorumHash))];
72
- case 2:
73
- quorumPublicKey = _c.sent();
74
- verify = (0, verifyTenderdashProof_1.default)(proof, metadata, rootHash, quorumPublicKey);
75
- if (!verify) {
76
- throw new Error('Failed to verify query');
77
- }
78
- return [2 /*return*/, balances
79
- .map(function (identityTokenBalance) { return ({
80
- identityId: new pshenmic_dpp_1.IdentifierWASM(identityTokenBalance.identityId),
81
- balance: identityTokenBalance.balance
82
- }); })];
1
+ import { GetIdentitiesTokenBalancesRequest } from '../../proto/generated/platform';
2
+ import { IdentifierWASM, PlatformVersionWASM, verifyTokenBalancesForIdentitiesProof } 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 getIdentitiesTokenBalances(grpcPool, identifiers, tokenIdentifier) {
7
+ const ids = identifiers.map(identifier => new IdentifierWASM(identifier));
8
+ const tokenId = new IdentifierWASM(tokenIdentifier);
9
+ const getIdentitiesTokenBalancesRequest = GetIdentitiesTokenBalancesRequest.create({
10
+ version: {
11
+ oneofKind: 'v0',
12
+ v0: {
13
+ tokenId: tokenId.bytes(),
14
+ identityIds: ids.map(id => id.bytes()),
15
+ prove: true
83
16
  }
84
- });
17
+ }
85
18
  });
19
+ const { response } = await grpcPool.getClient().getIdentitiesTokenBalances(getIdentitiesTokenBalancesRequest);
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') {
26
+ throw new Error('Unexpected oneOf type returned from DAPI (must be proof)');
27
+ }
28
+ const { result: { proof }, metadata } = v0;
29
+ if (metadata == null) {
30
+ throw new Error('Metadata not found');
31
+ }
32
+ const { rootHash, balances } = verifyTokenBalancesForIdentitiesProof(proof.grovedbProof, tokenId, true, ids, PlatformVersionWASM.PLATFORM_V9);
33
+ const quorumPublicKey = await getQuorumPublicKey(grpcPool.network, proof.quorumType, bytesToHex(proof.quorumHash));
34
+ const verify = await verifyTenderdashProof(proof, metadata, rootHash, quorumPublicKey);
35
+ if (!verify) {
36
+ throw new Error('Failed to verify query');
37
+ }
38
+ return balances
39
+ .map((identityTokenBalance) => ({
40
+ identityId: new IdentifierWASM(identityTokenBalance.identityId),
41
+ balance: identityTokenBalance.balance
42
+ }));
86
43
  }
@@ -1,86 +1,43 @@
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 = getIdentityTokensBalances;
40
- var pshenmic_dpp_1 = require("pshenmic-dpp");
41
- var platform_1 = require("../../proto/generated/platform");
42
- var getQuorumPublicKey_1 = require("../utils/getQuorumPublicKey");
43
- var bytesToHex_1 = require("../utils/bytesToHex");
44
- var verifyTenderdashProof_1 = require("../utils/verifyTenderdashProof");
45
- function getIdentityTokensBalances(grpcPool, identifier, tokenIdentifiers) {
46
- return __awaiter(this, void 0, void 0, function () {
47
- var id, tokenIds, request, v0, _a, proof, metadata, _b, rootHash, balances, quorumPublicKey, verify;
48
- return __generator(this, function (_c) {
49
- switch (_c.label) {
50
- case 0:
51
- id = new pshenmic_dpp_1.IdentifierWASM(identifier);
52
- tokenIds = tokenIdentifiers.map(function (tokenIdentifier) { return new pshenmic_dpp_1.IdentifierWASM(tokenIdentifier); });
53
- request = platform_1.GetIdentityTokenBalancesRequest.fromPartial({
54
- v0: {
55
- tokenIds: tokenIds.map(function (identifier) { return identifier.bytes(); }),
56
- identityId: id.bytes(),
57
- prove: true
58
- }
59
- });
60
- return [4 /*yield*/, grpcPool.getClient().getIdentityTokenBalances(request)];
61
- case 1:
62
- v0 = (_c.sent()).v0;
63
- _a = v0, proof = _a.proof, metadata = _a.metadata;
64
- if (proof == null) {
65
- throw new Error('Proof not found');
66
- }
67
- if (metadata == null) {
68
- throw new Error('Metadata not found');
69
- }
70
- _b = (0, pshenmic_dpp_1.verifyTokensBalancesForIdentityProof)(proof.grovedbProof, tokenIds, id, true, pshenmic_dpp_1.PlatformVersionWASM.PLATFORM_V9), rootHash = _b.rootHash, balances = _b.balances;
71
- return [4 /*yield*/, (0, getQuorumPublicKey_1.getQuorumPublicKey)(grpcPool.network, proof.quorumType, (0, bytesToHex_1.default)(proof.quorumHash))];
72
- case 2:
73
- quorumPublicKey = _c.sent();
74
- verify = (0, verifyTenderdashProof_1.default)(proof, metadata, rootHash, quorumPublicKey);
75
- if (!verify) {
76
- throw new Error('Failed to verify query');
77
- }
78
- return [2 /*return*/, balances
79
- .map(function (tokenBalance) { return ({
80
- tokenId: new pshenmic_dpp_1.IdentifierWASM(tokenBalance.tokenId),
81
- balance: tokenBalance.balance
82
- }); })];
1
+ import { IdentifierWASM, PlatformVersionWASM, verifyTokensBalancesForIdentityProof } from 'pshenmic-dpp';
2
+ import { GetIdentityTokenBalancesRequest } from '../../proto/generated/platform';
3
+ import { getQuorumPublicKey } from '../utils/getQuorumPublicKey';
4
+ import bytesToHex from '../utils/bytesToHex';
5
+ import verifyTenderdashProof from '../utils/verifyTenderdashProof';
6
+ export default async function getIdentityTokensBalances(grpcPool, identifier, tokenIdentifiers) {
7
+ const id = new IdentifierWASM(identifier);
8
+ const tokenIds = tokenIdentifiers.map(tokenIdentifier => new IdentifierWASM(tokenIdentifier));
9
+ const getIdentityTokenBalancesRequest = GetIdentityTokenBalancesRequest.create({
10
+ version: {
11
+ oneofKind: 'v0',
12
+ v0: {
13
+ tokenIds: tokenIds.map((identifier) => identifier.bytes()),
14
+ identityId: id.bytes(),
15
+ prove: true
83
16
  }
84
- });
17
+ }
85
18
  });
19
+ const { response } = await grpcPool.getClient().getIdentityTokenBalances(getIdentityTokenBalancesRequest);
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') {
26
+ throw new Error('Unexpected oneOf type returned from DAPI (must be proof)');
27
+ }
28
+ const { result: { proof }, metadata } = v0;
29
+ if (metadata == null) {
30
+ throw new Error('Metadata not found');
31
+ }
32
+ const { rootHash, balances } = verifyTokensBalancesForIdentityProof(proof.grovedbProof, tokenIds, id, true, PlatformVersionWASM.PLATFORM_V9);
33
+ const quorumPublicKey = await getQuorumPublicKey(grpcPool.network, proof.quorumType, bytesToHex(proof.quorumHash));
34
+ const verify = await verifyTenderdashProof(proof, metadata, rootHash, quorumPublicKey);
35
+ if (!verify) {
36
+ throw new Error('Failed to verify query');
37
+ }
38
+ return balances
39
+ .map((tokenBalance) => ({
40
+ tokenId: new IdentifierWASM(tokenBalance.tokenId),
41
+ balance: tokenBalance.balance
42
+ }));
86
43
  }
@@ -1,86 +1,43 @@
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 = getTokenContractInfo;
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 getTokenContractInfo(grpcPool, tokenIdentifier) {
46
- return __awaiter(this, void 0, void 0, function () {
47
- var tokenId, request, v0, _a, proof, metadata, _b, rootHash, contractInfo, 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.GetTokenContractInfoRequest.fromPartial({
53
- v0: {
54
- tokenId: (tokenId).bytes(),
55
- prove: true
56
- }
57
- });
58
- return [4 /*yield*/, grpcPool.getClient().getTokenContractInfo(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.verifyTokenContractInfoProof)(proof.grovedbProof, tokenId, true, pshenmic_dpp_1.PlatformVersionWASM.PLATFORM_V9), rootHash = _b.rootHash, contractInfo = _b.contractInfo;
69
- if (contractInfo == null) {
70
- throw new Error('ContractInfo 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*/, {
80
- dataContractId: contractInfo.contractId,
81
- tokenContractPosition: contractInfo.tokenContractPosition
82
- }];
1
+ import { GetTokenContractInfoRequest } from '../../proto/generated/platform';
2
+ import { IdentifierWASM, PlatformVersionWASM, verifyTokenContractInfoProof } 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 getTokenContractInfo(grpcPool, tokenIdentifier) {
7
+ const tokenId = new IdentifierWASM(tokenIdentifier);
8
+ const getTokenContractInfoRequest = GetTokenContractInfoRequest.create({
9
+ version: {
10
+ oneofKind: 'v0',
11
+ v0: {
12
+ tokenId: (tokenId).bytes(),
13
+ prove: true
83
14
  }
84
- });
15
+ }
85
16
  });
17
+ const { response } = await grpcPool.getClient().getTokenContractInfo(getTokenContractInfoRequest);
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, contractInfo } = verifyTokenContractInfoProof(proof.grovedbProof, tokenId, true, PlatformVersionWASM.PLATFORM_V9);
31
+ if (contractInfo == null) {
32
+ throw new Error('ContractInfo 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 {
40
+ dataContractId: contractInfo.contractId,
41
+ tokenContractPosition: contractInfo.tokenContractPosition
42
+ };
86
43
  }
@@ -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 = getTokenDirectPurchasePrices;
40
- var pshenmic_dpp_1 = require("pshenmic-dpp");
41
- var platform_1 = require("../../proto/generated/platform");
42
- var getQuorumPublicKey_1 = require("../utils/getQuorumPublicKey");
43
- var verifyTenderdashProof_1 = require("../utils/verifyTenderdashProof");
44
- var bytesToHex_1 = require("../utils/bytesToHex");
45
- function getTokenDirectPurchasePrices(grpcPool, tokenIdentifiers) {
46
- return __awaiter(this, void 0, void 0, function () {
47
- var tokenIds, request, v0, _a, proof, metadata, _b, rootHash, prices, quorumPublicKey, verify;
48
- return __generator(this, function (_c) {
49
- switch (_c.label) {
50
- case 0:
51
- tokenIds = tokenIdentifiers.map(function (tokenId) { return new pshenmic_dpp_1.IdentifierWASM(tokenId).bytes(); });
52
- request = platform_1.GetTokenDirectPurchasePricesRequest.fromPartial({
53
- v0: {
54
- tokenIds: tokenIds,
55
- prove: true
56
- }
57
- });
58
- return [4 /*yield*/, grpcPool.getClient().getTokenDirectPurchasePrices(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.verifyTokenDirectPurchasePrices)(proof.grovedbProof, tokenIds, true, pshenmic_dpp_1.PlatformVersionWASM.PLATFORM_V9), rootHash = _b.rootHash, prices = _b.prices;
69
- if (prices == null) {
70
- throw new Error('Prices 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*/, prices];
1
+ import { IdentifierWASM, PlatformVersionWASM, verifyTokenDirectPurchasePrices } from 'pshenmic-dpp';
2
+ import { getQuorumPublicKey } from '../utils/getQuorumPublicKey';
3
+ import verifyTenderdashProof from '../utils/verifyTenderdashProof';
4
+ import bytesToHex from '../utils/bytesToHex';
5
+ import { GetTokenDirectPurchasePricesRequest } from '../../proto/generated/platform';
6
+ export default async function getTokenDirectPurchasePrices(grpcPool, tokenIdentifiers) {
7
+ const tokenIds = tokenIdentifiers.map(tokenId => new IdentifierWASM(tokenId).bytes());
8
+ const request = GetTokenDirectPurchasePricesRequest.create({
9
+ version: {
10
+ oneofKind: 'v0',
11
+ v0: {
12
+ tokenIds,
13
+ prove: true
80
14
  }
81
- });
15
+ }
82
16
  });
17
+ const { response } = await grpcPool.getClient().getTokenDirectPurchasePrices(request);
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, prices } = verifyTokenDirectPurchasePrices(proof.grovedbProof, tokenIds, true, PlatformVersionWASM.PLATFORM_V9);
31
+ if (prices == null) {
32
+ throw new Error('Prices 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 prices;
83
40
  }