Files
zkopru/packages/utils/tests/unit/index.test.ts
2021-09-07 23:00:37 -05:00

40 lines
1.3 KiB
TypeScript

import assert from 'assert'
import { soliditySha3Raw } from 'web3-utils'
import BN from 'bn.js'
import {
PREPAY_DOMAIN_TYPEHASH,
EIP712_DOMAIN_TYPEHASH,
prepayHash,
} from '../../src/eip712'
describe('eip712', () => {
it('should have same prepay domain typehash', () => {
const expectedTypehash =
'0x2642c0f753eb8fa96c4c3903fdfe8e8df56aa45fc46995b5ad94ce6889db09a3'
assert.equal(expectedTypehash, PREPAY_DOMAIN_TYPEHASH)
})
it('should have same eip712 domain typehash', () => {
const expectedTypehash =
'0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f'
assert.equal(expectedTypehash, EIP712_DOMAIN_TYPEHASH)
})
it('should have same prepay hash', () => {
// Hard coded values calculated using remix IDE
const expectedHash =
'0x1496f59662b7ce256334938c1c9959547c1fd7163ecbfb0bf5d3196c64a968df'
const withdrawalHash = soliditySha3Raw('test hash')
const hash = prepayHash({
prepayer: '0x0000000000000000000000000000000000000000',
withdrawalHash,
prepayFeeInEth: new BN('100'),
prepayFeeInToken: new BN('200'),
expiration: 500,
chainId: '100',
verifyingContract: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',
})
assert.equal(hash, expectedHash)
})
})