import * as chai from 'chai';
import 'mocha';
import { signTypedDataUtils } from '../src/sign_typed_data_utils';
const expect = chai.expect;
describe('signTypedDataUtils', () => {
describe('signTypedDataHash', () => {
const signTypedDataHashHex = '0x55eaa6ec02f3224d30873577e9ddd069a288c16d6fb407210eecbc501fa76692';
const signTypedData = {
types: {
EIP712Domain: [
{
name: 'name',
type: 'string',
},
{
name: 'version',
type: 'string',
},
{
name: 'verifyingContract',
type: 'address',
},
],
Order: [
{
name: 'makerAddress',
type: 'address',
},
{
name: 'takerAddress',
type: 'address',
},
{
name: 'feeRecipientAddress',
type: 'address',
},
{
name: 'senderAddress',
type: 'address',
},
{
name: 'makerAssetAmount',
type: 'uint256',
},
{
name: 'takerAssetAmount',
type: 'uint256',
},
{
name: 'makerFee',
type: 'uint256',
},
{
name: 'takerFee',
type: 'uint256',
},
{
name: 'expirationTimeSeconds',
type: 'uint256',
},
{
name: 'salt',
type: 'uint256',
},
{
name: 'makerAssetData',
type: 'bytes',
},
{
name: 'takerAssetData',
type: 'bytes',
},
],
},
domain: {
name: '0x Protocol',
version: '2',
verifyingContract: '0x0000000000000000000000000000000000000000',
},
message: {
makerAddress: '0x0000000000000000000000000000000000000000',
takerAddress: '0x0000000000000000000000000000000000000000',
makerAssetAmount: '1000000000000000000',
takerAssetAmount: '1000000000000000000',
expirationTimeSeconds: '12345',
makerFee: '0',
takerFee: '0',
feeRecipientAddress: '0x0000000000000000000000000000000000000000',
senderAddress: '0x0000000000000000000000000000000000000000',
salt: '12345',
makerAssetData: '0x0000000000000000000000000000000000000000',
takerAssetData: '0x0000000000000000000000000000000000000000',
exchangeAddress: '0x0000000000000000000000000000000000000000',
},
primaryType: 'Order',
};
it.only('creates a known hash of the sign typed data', () => {
const hash = signTypedDataUtils.signTypedDataHash(signTypedData).toString('hex');
const hashHex = `0x${hash}`;
expect(hashHex).to.be.eq(signTypedDataHashHex);
console.log(hash);
});
});
});