postchain-client
Version:
Client library for accessing a Postchain node through REST.
134 lines • 6.54 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { randomInt } from "crypto";
import { ChainConfirmationLevel } from "../../src/blockchainClient/enums";
import { mockSignatureProvider, mockSignerPubKey } from "../common/mocks";
import { createClientToChromiaNetwork } from "../common/setups";
let client;
describe("merkleHash", () => {
beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
client = yield createClientToChromiaNetwork();
}));
it("tx rid differs if order of arguments differs", () => __awaiter(void 0, void 0, void 0, function* () {
const transaction1 = yield client.sendTransaction({
name: "setMultivalue",
args: [1, "test1", "test2"],
});
const transaction2 = yield client.sendTransaction({
name: "setMultivalue",
args: [1, "test2", "test1"],
});
expect(Buffer.compare(transaction1.transactionRid, transaction2.transactionRid)).not.toEqual(0);
}));
it("calculates same merkle as postchain of transaction with one operation with one argument", () => __awaiter(void 0, void 0, void 0, function* () {
const transaction = yield client.sendTransaction({
name: "setInteger",
args: [randomInt(1000000)],
}, true, undefined, ChainConfirmationLevel.Dapp);
expect(transaction).not.toEqual(new Error());
}));
it("calculates same merkle as postchain of transaction with one argument", () => __awaiter(void 0, void 0, void 0, function* () {
const transaction = yield client.signAndSendUniqueTransaction({
name: "setInteger",
args: [randomInt(1000000)],
}, mockSignatureProvider, true, undefined, ChainConfirmationLevel.Dapp);
expect(transaction).not.toEqual(new Error());
}));
it("gets status unknown if client has calculated the wrong txRID", () => __awaiter(void 0, void 0, void 0, function* () {
const invalidTxRID = Buffer.alloc(32, 1);
const result = yield client.getTransactionStatus(invalidTxRID);
expect(result.status).toEqual("unknown");
}));
it("calculates same merkle as postchain of transaction with multiple arguments", () => __awaiter(void 0, void 0, void 0, function* () {
const transaction = yield client.signAndSendUniqueTransaction({
operations: [
{
name: "setMultivalue",
args: [1, "test1", "test2"],
},
{
name: "setInteger",
args: [randomInt(1000000)],
},
],
signers: [mockSignerPubKey],
}, mockSignatureProvider, true, undefined, ChainConfirmationLevel.Dapp);
expect(transaction).not.toEqual(new Error());
}));
it("calculates same merkle as postchain of transaction with multiple operations", () => __awaiter(void 0, void 0, void 0, function* () {
const transaction = yield client.signAndSendUniqueTransaction({
operations: [
{
name: "setBoolean",
args: [true],
},
{
name: "setInteger",
args: [2],
},
{
name: "nop",
args: [],
},
{
name: "setInteger",
args: [randomInt(1000000)],
},
],
signers: [mockSignerPubKey],
}, mockSignatureProvider, true, undefined, ChainConfirmationLevel.Dapp);
expect(transaction).not.toEqual(new Error());
}));
it("calculates same merkle as postchain of transaction with array argument", () => __awaiter(void 0, void 0, void 0, function* () {
const transaction = yield client.signAndSendUniqueTransaction({
name: "setArray",
args: [["test", "test2"]],
}, mockSignatureProvider, true, undefined, ChainConfirmationLevel.Dapp);
expect(transaction).not.toEqual(new Error());
}));
it("calculates same merkle as postchain of transaction with dict argument", () => __awaiter(void 0, void 0, void 0, function* () {
const transaction = yield client.signAndSendUniqueTransaction({
name: "setMap",
args: [{ test: "test2", test3: "test4" }],
}, mockSignatureProvider, true, undefined, ChainConfirmationLevel.Dapp);
expect(transaction).not.toEqual(new Error());
}));
it("calculates same merkle as postchain of transaction with nested arguments", () => __awaiter(void 0, void 0, void 0, function* () {
const transaction = yield client.signAndSendUniqueTransaction({
name: "nestedArguments",
args: [
[
[1, "foo", "bar"],
["test", "test2"],
],
],
}, mockSignatureProvider, true, undefined, ChainConfirmationLevel.Dapp);
expect(transaction).not.toEqual(new Error());
}));
it("calculates same merkle as postchain of transaction with super nested argument", () => __awaiter(void 0, void 0, void 0, function* () {
const transaction = yield client.signAndSendUniqueTransaction({
name: "superNestedArguments",
args: [
[
[
[
[1, "foo", "bar"],
["test", "test2"],
],
],
[1],
[{ test: "test2", test3: "test4" }],
],
],
}, mockSignatureProvider, true, undefined, ChainConfirmationLevel.Dapp);
expect(transaction).not.toEqual(new Error());
}));
});
//# sourceMappingURL=merkleHashIntegration.test.js.map