Skip to content

Commit

Permalink
Merge pull request #9 from ElrondNetwork/contract-wrapper
Browse files Browse the repository at this point in the history
Contract wrapper
  • Loading branch information
claudiu725 authored Aug 9, 2021
2 parents 0d96935 + 3ed5308 commit 82cd483
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 25 deletions.
18 changes: 9 additions & 9 deletions src-network-wallet/pem.spec.ts
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
import * as errors from "../errors";
import { assert } from "chai";
import { TestWallets } from "../testutils";
import { loadTestWallets, TestWallet } from "../testutils";
import { parse, parseUserKey, parseValidatorKey } from "./pem";
import { BLS } from ".";
import { Buffer } from "buffer";

describe("test PEMs", () => {
let wallets = new TestWallets();
let alice = wallets.alice;
let bob = wallets.bob;
let carol = wallets.carol;
let alice: TestWallet, bob: TestWallet, carol: TestWallet;
before(async function () {
({ alice, bob, carol } = await loadTestWallets());
});

it("should parseUserKey", () => {
let aliceKey = parseUserKey(alice.pemFileText);

assert.equal(aliceKey.hex(), alice.secretKeyHex);
assert.equal(aliceKey.generatePublicKey().toAddress().bech32(), alice.address.bech32());
});

it("should parseValidatorKey", async () => {
await BLS.initIfNecessary();

let pem = `-----BEGIN PRIVATE KEY for e7beaa95b3877f47348df4dd1cb578a4f7cabf7a20bfeefe5cdd263878ff132b765e04fef6f40c93512b666c47ed7719b8902f6c922c04247989b7137e837cc81a62e54712471c97a2ddab75aa9c2f58f813ed4c0fa722bde0ab718bff382208-----
N2NmZjk5YmQ2NzE1MDJkYjdkMTViYzhhYmMwYzlhODA0ZmI5MjU0MDZmYmRkNTBm
MWU0YzE3YTRjZDc3NDI0Nw==
-----END PRIVATE KEY for e7beaa95b3877f47348df4dd1cb578a4f7cabf7a20bfeefe5cdd263878ff132b765e04fef6f40c93512b666c47ed7719b8902f6c922c04247989b7137e837cc81a62e54712471c97a2ddab75aa9c2f58f813ed4c0fa722bde0ab718bff382208-----`;

let validatorKey = parseValidatorKey(pem);

assert.equal(validatorKey.hex(), "7cff99bd671502db7d15bc8abc0c9a804fb925406fbdd50f1e4c17a4cd774247");
assert.equal(validatorKey.generatePublicKey().hex(), "e7beaa95b3877f47348df4dd1cb578a4f7cabf7a20bfeefe5cdd263878ff132b765e04fef6f40c93512b666c47ed7719b8902f6c922c04247989b7137e837cc81a62e54712471c97a2ddab75aa9c2f58f813ed4c0fa722bde0ab718bff382208");
});
Expand Down Expand Up @@ -55,7 +55,7 @@ ${payloadCarol}
-----END PRIVATE KEY for carol
`;

assert.deepEqual(parse(trivialContent, 64), expected);
assert.deepEqual(parse(trivialContent, 64), expected);

let contentWithWhitespaces = `
-----BEGIN PRIVATE KEY for alice
Expand Down
2 changes: 1 addition & 1 deletion src-network-wallet/pem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export function parse(text: string, expectedLength: number): Buffer[] {
let asBytes = Buffer.from(asHex, "hex");

if (asBytes.length != expectedLength) {
throw new errors.ErrBadPEM("incorrect key length");
throw new errors.ErrBadPEM(`incorrect key length: expected ${expectedLength}, found ${asBytes.length}`);
}

buffers.push(asBytes);
Expand Down
27 changes: 14 additions & 13 deletions src-network-wallet/users.spec.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as errors from "../errors";
import { assert } from "chai";
import { TestWallets } from "../testutils";
import { loadMnemonic, loadPassword, loadTestWallets, TestWallet } from "../testutils";
import { UserSecretKey } from "./userKeys";
import { Mnemonic } from "./mnemonic";
import { UserWallet } from "./userWallet";
Expand All @@ -12,32 +12,33 @@ import { Nonce } from "../nonce";
import { Balance } from "../balance";
import { ChainID, GasLimit, GasPrice } from "../networkParams";
import { TransactionPayload } from "../transactionPayload";
import {UserVerifier} from "./userVerifier";
import {SignableMessage} from "../signableMessage";
import { UserVerifier } from "./userVerifier";
import { SignableMessage } from "../signableMessage";

describe("test user wallets", () => {
let wallets = new TestWallets();
let alice = wallets.alice;
let bob = wallets.bob;
let carol = wallets.carol;
let password = wallets.password;
let alice: TestWallet, bob: TestWallet, carol: TestWallet;
let password: string;
before(async function () {
({ alice, bob, carol } = await loadTestWallets());
password = await loadPassword();
});

it("should generate mnemonic", () => {
let mnemonic = Mnemonic.generate();
let words = mnemonic.getWords();
assert.lengthOf(words, 24);
});

it("should derive keys", () => {
let mnemonic = Mnemonic.fromString(wallets.mnemonic);
it("should derive keys", async () => {
let mnemonic = Mnemonic.fromString(await loadMnemonic());

assert.equal(mnemonic.deriveKey(0).hex(), alice.secretKeyHex);
assert.equal(mnemonic.deriveKey(1).hex(), bob.secretKeyHex);
assert.equal(mnemonic.deriveKey(2).hex(), carol.secretKeyHex);
});

it("should create secret key", () => {
let keyHex = wallets.alice.secretKeyHex;
let keyHex = alice.secretKeyHex;
let fromBuffer = new UserSecretKey(Buffer.from(keyHex, "hex"));
let fromHex = UserSecretKey.fromString(keyHex);

Expand Down Expand Up @@ -162,7 +163,7 @@ describe("test user wallets", () => {

it("should sign transactions using PEM files", async () => {
let signer = UserSigner.fromPem(alice.pemFileText);

let transaction = new Transaction({
nonce: new Nonce(0),
value: Balance.Zero(),
Expand All @@ -177,7 +178,7 @@ describe("test user wallets", () => {
assert.equal(transaction.getSignature().hex(), "c0bd2b3b33a07b9cc5ee7435228acb0936b3829c7008aacabceea35163e555e19a34def2c03a895cf36b0bcec30a7e11215c11efc0da29294a11234eb2b3b906");
});

it("signs a general message", function() {
it("signs a general message", function () {
let signer = new UserSigner(UserSecretKey.fromString("1a927e2af5306a9bb2ea777f73e06ecc0ac9aaa72fb4ea3fecf659451394cccf"));
let verifier = new UserVerifier(UserSecretKey.fromString("1a927e2af5306a9bb2ea777f73e06ecc0ac9aaa72fb4ea3fecf659451394cccf").generatePublicKey());
const message = new SignableMessage({
Expand Down
2 changes: 0 additions & 2 deletions src-network-wallet/validators.spec.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import { assert } from "chai";
import { TestWallets } from "../testutils";
import { BLS, ValidatorSecretKey } from "./validatorKeys";

describe("test validator keys", () => {
let wallets = new TestWallets();

it("should create secret key and sign a message", async () => {
await BLS.initIfNecessary();
Expand Down

0 comments on commit 82cd483

Please sign in to comment.