o1js
Version:
TypeScript framework for zk-SNARKs and zkApps
93 lines (78 loc) • 3.48 kB
text/typescript
import Client from '../dist/node/mina-signer/mina-signer.js';
import type { PrivateKey } from '../dist/node/mina-signer/src/types.js';
describe('Message', () => {
describe('Mainnet network', () => {
let client: Client;
let privateKey: PrivateKey;
beforeAll(async () => {
client = new Client({ network: 'mainnet' });
({ privateKey } = client.genKeys());
});
it('generates a signed message', () => {
const message = client.signMessage('hello', privateKey);
expect(message.data).toBeDefined();
expect(message.signature).toBeDefined();
});
it('generates a signed message by using signTransaction', () => {
const message = client.signTransaction('hello', privateKey);
expect(message.data).toBeDefined();
expect(message.signature).toBeDefined();
});
it('verifies a signed message', () => {
const message = client.signMessage('hello', privateKey);
const verifiedMessage = client.verifyMessage(message);
expect(verifiedMessage).toBeTruthy();
expect(client.verifyTransaction(message)).toEqual(true);
});
it('verifies a signed message generated by signTransaction', () => {
const message = client.signTransaction('hello', privateKey);
const verifiedMessage = client.verifyMessage(message);
expect(verifiedMessage).toBeTruthy();
expect(client.verifyTransaction(message)).toEqual(true);
});
it('does not verify a signed message from `testnet`', () => {
const message = client.signMessage('hello', privateKey);
const testnetClient = new Client({ network: 'testnet' });
const invalidMessage = testnetClient.verifyMessage(message);
expect(invalidMessage).toBeFalsy();
expect(testnetClient.verifyTransaction(message)).toEqual(false);
});
});
describe('Testnet network', () => {
let client: Client;
let privateKey: PrivateKey;
beforeAll(async () => {
client = new Client({ network: 'testnet' });
({ privateKey } = client.genKeys());
});
it('generates a signed message', () => {
const message = client.signMessage('hello', privateKey);
expect(message.data).toBeDefined();
expect(message.signature).toBeDefined();
});
it('generates a signed message by using signTransaction', () => {
const message = client.signTransaction('hello', privateKey);
expect(message.data).toBeDefined();
expect(message.signature).toBeDefined();
});
it('verifies a signed message', () => {
const message = client.signMessage('hello', privateKey);
const verifiedMessage = client.verifyMessage(message);
expect(verifiedMessage).toBeTruthy();
expect(client.verifyTransaction(message)).toEqual(true);
});
it('verifies a signed message generated by signTransaction', () => {
const message = client.signTransaction('hello', privateKey);
const verifiedMessage = client.verifyMessage(message);
expect(verifiedMessage).toBeTruthy();
expect(client.verifyTransaction(message)).toEqual(true);
});
it('does not verify a signed message from `mainnet`', () => {
const message = client.signMessage('hello', privateKey);
const mainnetClient = new Client({ network: 'mainnet' });
const invalidMessage = mainnetClient.verifyMessage(message);
expect(invalidMessage).toBeFalsy();
expect(mainnetClient.verifyTransaction(message)).toEqual(false);
});
});
});