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.
- package/bundle.min.js +21 -2
- package/index.js +2 -5
- package/package.json +30 -31
- package/proto/generated/google/protobuf/wrappers.d.ts +260 -29
- package/proto/generated/google/protobuf/wrappers.js +562 -345
- package/proto/generated/platform.client.d.ts +251 -0
- package/proto/generated/platform.client.js +175 -0
- package/proto/generated/platform.d.ts +3682 -1939
- package/proto/generated/platform.js +8119 -18366
- package/src/DashPlatformSDK.d.ts +5 -4
- package/src/DashPlatformSDK.js +56 -46
- package/src/constants.js +7 -10
- package/src/contestedResources/createStateTransition.d.ts +1 -2
- package/src/contestedResources/createStateTransition.js +4 -7
- package/src/contestedResources/getContestedResourceVoteState.js +67 -118
- package/src/contestedResources/index.js +9 -55
- package/src/dataContracts/create.js +5 -8
- package/src/dataContracts/createStateTransition.js +10 -14
- package/src/dataContracts/getDataContractByIdentifier.js +40 -83
- package/src/dataContracts/index.js +17 -63
- package/src/documents/create.js +3 -6
- package/src/documents/createStateTransition.js +19 -31
- package/src/documents/index.js +25 -72
- package/src/documents/query.js +58 -90
- package/src/grpcConnectionPool.d.ts +30 -8
- package/src/grpcConnectionPool.js +63 -121
- package/src/identities/createStateTransition.js +14 -26
- package/src/identities/getIdentityBalance.js +37 -80
- package/src/identities/getIdentityByIdentifier.js +37 -80
- package/src/identities/getIdentityByNonUniquePublicKeyHash.js +41 -82
- package/src/identities/getIdentityByPublicKeyHash.js +37 -80
- package/src/identities/getIdentityContractNonce.js +40 -83
- package/src/identities/getIdentityNonce.js +38 -81
- package/src/identities/getIdentityPublicKeys.js +43 -81
- package/src/identities/index.js +57 -153
- package/src/keyPair/deriveChild.d.ts +2 -2
- package/src/keyPair/deriveChild.js +2 -49
- package/src/keyPair/derivePath.d.ts +2 -2
- package/src/keyPair/derivePath.js +2 -49
- package/src/keyPair/index.d.ts +39 -114
- package/src/keyPair/index.js +62 -296
- package/src/keyPair/mnemonicToSeed.d.ts +1 -1
- package/src/keyPair/mnemonicToSeed.js +3 -46
- package/src/names/index.js +43 -111
- package/src/names/registerName.js +60 -127
- package/src/names/searchByIdentity.d.ts +1 -1
- package/src/names/searchByIdentity.js +4 -50
- package/src/names/searchByName.js +15 -63
- package/src/names/testNameContested.js +1 -4
- package/src/names/validateName.js +3 -6
- package/src/node/epochs.js +43 -85
- package/src/node/index.d.ts +3 -3
- package/src/node/index.js +18 -77
- package/src/node/status.js +37 -81
- package/src/node/totalCredits.d.ts +2 -1
- package/src/node/totalCredits.js +32 -73
- package/src/signer/AbstractSigner.js +1 -2
- package/src/signer/setSigner.js +1 -4
- package/src/stateTransitions/broadcast.js +7 -57
- package/src/stateTransitions/index.js +13 -66
- package/src/stateTransitions/waitForStateTransitionResult.js +6 -58
- package/src/tokens/createStateTransition.js +23 -35
- package/src/tokens/getIdentitiesTokenBalances.js +40 -83
- package/src/tokens/getIdentityTokensBalances.js +40 -83
- package/src/tokens/getTokenContractInfo.js +40 -83
- package/src/tokens/getTokenDirectPurchasePrices.js +37 -80
- package/src/tokens/getTokenTotalSupply.js +38 -81
- package/src/tokens/index.js +39 -124
- package/src/types.d.ts +6 -12
- package/src/types.js +6 -16
- package/src/utils/base58ToBytes.js +3 -6
- package/src/utils/bytesToHex.js +2 -5
- package/src/utils/bytesToTypedArray.d.ts +1 -0
- package/src/utils/bytesToTypedArray.js +3 -0
- package/src/utils/calculateMsgHash.d.ts +1 -1
- package/src/utils/calculateMsgHash.js +10 -13
- package/src/utils/calculateSignHash.d.ts +1 -1
- package/src/utils/calculateSignHash.js +7 -10
- package/src/utils/calculateStateIdHash.d.ts +1 -1
- package/src/utils/calculateStateIdHash.js +8 -10
- package/src/utils/convertToHomographSafeChars.js +2 -5
- package/src/utils/createVoterIdentityId.d.ts +1 -1
- package/src/utils/createVoterIdentityId.js +12 -11
- package/src/utils/getEvonodeList.d.ts +2 -2
- package/src/utils/getEvonodeList.js +10 -61
- package/src/utils/getQuorumPublicKey.js +15 -66
- package/src/utils/getRandomArrayItem.js +1 -4
- package/src/utils/getRandomBytes.js +2 -5
- package/src/utils/hexToBytes.js +2 -6
- package/src/utils/index.js +21 -28
- package/src/utils/indexBytesToString.js +2 -5
- package/src/utils/sha256.d.ts +1 -1
- package/src/utils/sha256.js +10 -8
- package/src/utils/signHash.d.ts +1 -1
- package/src/utils/signHash.js +9 -12
- package/src/utils/signRequestId.d.ts +1 -1
- package/src/utils/signRequestId.js +9 -12
- package/src/utils/sleep.js +2 -50
- package/src/utils/stringToIndexValueBytes.js +4 -7
- package/src/utils/verifyTenderdashProof.d.ts +1 -1
- package/src/utils/verifyTenderdashProof.js +13 -17
- package/src/voting/createStateTransition.d.ts +1 -2
- package/src/voting/createStateTransition.js +4 -7
- package/src/voting/createVote.js +4 -7
- package/src/voting/index.d.ts +3 -4
- package/src/voting/index.js +19 -26
- package/test/unit/ContestedResources.spec.js +92 -177
- package/test/unit/DataContract.spec.js +44 -111
- package/test/unit/Document.spec.js +93 -183
- package/test/unit/Identity.spec.js +221 -346
- package/test/unit/KeyPair.spec.js +30 -145
- package/test/unit/Names.spec.js +27 -90
- package/test/unit/Node.spec.js +55 -126
- package/test/unit/SDK.spec.js +7 -9
- package/test/unit/Tokens.spec.js +111 -278
- package/bundle.min.js.LICENSE.txt +0 -1
- package/src/keyPair/keyToPublicKey.d.ts +0 -2
- package/src/keyPair/keyToPublicKey.js +0 -47
- package/src/keyPair/keyToWalletId.d.ts +0 -2
- package/src/keyPair/keyToWalletId.js +0 -50
- package/src/keyPair/keyToXPrivateKey.d.ts +0 -3
- package/src/keyPair/keyToXPrivateKey.js +0 -50
- package/src/keyPair/keyToXPublicKey.d.ts +0 -3
- package/src/keyPair/keyToXPublicKey.js +0 -50
- package/src/keyPair/mnemonicToIdentityKey.d.ts +0 -3
- package/src/keyPair/mnemonicToIdentityKey.js +0 -57
- package/src/keyPair/mnemonicToWallet.d.ts +0 -2
- package/src/keyPair/mnemonicToWallet.js +0 -55
- package/src/keyPair/privateKeyToWif.d.ts +0 -2
- package/src/keyPair/privateKeyToWif.js +0 -50
- package/src/keyPair/publicKeyToAddress.d.ts +0 -2
- package/src/keyPair/publicKeyToAddress.js +0 -50
- package/src/keyPair/seedToWallet.d.ts +0 -2
- package/src/keyPair/seedToWallet.js +0 -50
- package/src/keyPair/walletToIdentityKey.d.ts +0 -3
- package/src/keyPair/walletToIdentityKey.js +0 -56
- package/src/keyPair/xkeyToHDXKey.d.ts +0 -2
- package/src/keyPair/xkeyToHDXKey.js +0 -50
|
@@ -1,79 +1,67 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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:
|
|
4
|
+
class: TokenBurnTransitionWASM,
|
|
17
5
|
arguments: ['amount', 'publicNote'],
|
|
18
6
|
optionalArguments: ['publicNote']
|
|
19
7
|
},
|
|
20
8
|
mint: {
|
|
21
|
-
class:
|
|
9
|
+
class: TokenMintTransitionWASM,
|
|
22
10
|
arguments: ['identityId', 'amount', 'publicNote'],
|
|
23
11
|
optionalArguments: ['publicNote']
|
|
24
12
|
},
|
|
25
13
|
transfer: {
|
|
26
|
-
class:
|
|
14
|
+
class: TokenTransferTransitionWASM,
|
|
27
15
|
arguments: ['identityId', 'amount', 'publicNote', 'sharedEncryptedNote', 'privateEncryptedNote'],
|
|
28
16
|
optionalArguments: ['publicNote', 'sharedEncryptedNote', 'privateEncryptedNote']
|
|
29
17
|
},
|
|
30
18
|
freeze: {
|
|
31
|
-
class:
|
|
19
|
+
class: TokenFreezeTransitionWASM,
|
|
32
20
|
arguments: ['identityId', 'publicNote'],
|
|
33
21
|
optionalArguments: ['publicNote']
|
|
34
22
|
},
|
|
35
23
|
unfreeze: {
|
|
36
|
-
class:
|
|
24
|
+
class: TokenUnFreezeTransitionWASM,
|
|
37
25
|
arguments: ['identityId', 'publicNote'],
|
|
38
26
|
optionalArguments: ['publicNote']
|
|
39
27
|
},
|
|
40
28
|
destroyFrozenFunds: {
|
|
41
|
-
class:
|
|
29
|
+
class: TokenDestroyFrozenFundsTransitionWASM,
|
|
42
30
|
arguments: ['identityId', 'publicNote'],
|
|
43
31
|
optionalArguments: ['publicNote']
|
|
44
32
|
},
|
|
45
33
|
emergencyAction: {
|
|
46
|
-
class:
|
|
34
|
+
class: TokenEmergencyActionTransitionWASM,
|
|
47
35
|
arguments: ['emergencyAction', 'publicNote'],
|
|
48
36
|
optionalArguments: ['publicNote']
|
|
49
37
|
},
|
|
50
38
|
directPurchase: {
|
|
51
|
-
class:
|
|
39
|
+
class: TokenDirectPurchaseTransitionWASM,
|
|
52
40
|
arguments: ['amount', 'totalAgreedPrice'],
|
|
53
41
|
optionalArguments: []
|
|
54
42
|
},
|
|
55
43
|
setPriceForDirectPurchase: {
|
|
56
|
-
class:
|
|
44
|
+
class: TokenSetPriceForDirectPurchaseTransitionWASM,
|
|
57
45
|
arguments: ['price', 'publicNote'],
|
|
58
46
|
optionalArguments: ['publicNote']
|
|
59
47
|
}
|
|
60
48
|
};
|
|
61
|
-
function createStateTransition(base, ownerId, type, params) {
|
|
62
|
-
|
|
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(
|
|
52
|
+
throw new Error(`Unimplemented transition type: ${type}`);
|
|
65
53
|
}
|
|
66
54
|
// check if all required params for token transition exists
|
|
67
|
-
|
|
68
|
-
.filter(
|
|
69
|
-
!optionalArguments.includes(classArgument)
|
|
55
|
+
const [missingArgument] = classArguments
|
|
56
|
+
.filter((classArgument) => params[classArgument] == null &&
|
|
57
|
+
!optionalArguments.includes(classArgument));
|
|
70
58
|
if (missingArgument != null) {
|
|
71
|
-
throw new Error(
|
|
59
|
+
throw new Error(`Token transition param "${missingArgument}" is missing`);
|
|
72
60
|
}
|
|
73
|
-
|
|
61
|
+
const transitionParams = classArguments.map((classArgument) => params[classArgument]);
|
|
74
62
|
// @ts-expect-error
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
}
|