eth-typed-data
Version:
A library to simplifiy interacting with and signing EIP712 typed data
57 lines (50 loc) • 2.08 kB
JavaScript
;
var util = require('ethereumjs-util'); // Example tests
var _require = require('..'),
EIP712Domain = _require.EIP712Domain;
describe('MailExample', function () {
// The provided example from the EIP712 PR
var MailExample = require('./data/Mail.json');
var _MailExample$request$ = MailExample.request.types,
personDef = _MailExample$request$.Person,
mailDef = _MailExample$request$.Mail;
var _MailExample$results$ = MailExample.results.Mail,
encodeType = _MailExample$results$.encodeType,
typeHash = _MailExample$results$.typeHash,
encodeData = _MailExample$results$.encodeData,
hashStruct = _MailExample$results$.hashStruct,
signHash = _MailExample$results$.signHash;
var Domain, Person, Mail, message;
beforeAll(function () {
// Build domain
Domain = new EIP712Domain(MailExample.request.domain); // Build type constructors
Person = Domain.createType('Person', personDef);
Mail = Domain.createType('Mail', mailDef); // Build an instance of mail to test
message = new Mail(MailExample.request.message);
});
test('domainSeparator', function () {
expect(util.bufferToHex(Domain.domainSeparator)).toEqual(MailExample.results.domainSeparator);
});
test('toSignatureRequest', function () {
expect(message.toSignatureRequest()).toEqual(MailExample.request);
});
test('toObject', function () {
expect(message.toObject()).toEqual(MailExample.request.message);
});
test('encodeType', function () {
expect(Mail.encodeType()).toEqual(encodeType);
});
test('typeHash', function () {
expect(util.bufferToHex(Mail.typeHash())).toEqual(typeHash);
});
test('encodeData', function () {
expect(util.bufferToHex(message.encodeData())).toEqual(encodeData);
});
test('hashStruct', function () {
expect(util.bufferToHex(message.hashStruct())).toEqual(hashStruct);
});
test('signHash', function () {
expect(util.bufferToHex(message.signHash())).toEqual(signHash);
});
}); // Add more examples with different data structures here:
// TODO