eip712.js 542 B

123456789101112131415161718192021
  1. const ethSigUtil = require('eth-sig-util');
  2. const EIP712Domain = [
  3. { name: 'name', type: 'string' },
  4. { name: 'version', type: 'string' },
  5. { name: 'chainId', type: 'uint256' },
  6. { name: 'verifyingContract', type: 'address' },
  7. ];
  8. async function domainSeparator (name, version, chainId, verifyingContract) {
  9. return '0x' + ethSigUtil.TypedDataUtils.hashStruct(
  10. 'EIP712Domain',
  11. { name, version, chainId, verifyingContract },
  12. { EIP712Domain },
  13. ).toString('hex');
  14. }
  15. module.exports = {
  16. EIP712Domain,
  17. domainSeparator,
  18. };