ERC7739.test.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const { ethers } = require('hardhat');
  2. const { shouldBehaveLikeERC1271 } = require('./ERC1271.behavior');
  3. const { NonNativeSigner, P256SigningKey, RSASHA256SigningKey } = require('../../helpers/signers');
  4. describe('ERC7739', function () {
  5. describe('for an ECDSA signer', function () {
  6. before(async function () {
  7. this.signer = ethers.Wallet.createRandom();
  8. this.mock = await ethers.deployContract('ERC7739ECDSAMock', [this.signer.address]);
  9. });
  10. shouldBehaveLikeERC1271({ erc7739: true });
  11. });
  12. describe('for a P256 signer', function () {
  13. before(async function () {
  14. this.signer = new NonNativeSigner(P256SigningKey.random());
  15. this.mock = await ethers.deployContract('ERC7739P256Mock', [
  16. this.signer.signingKey.publicKey.qx,
  17. this.signer.signingKey.publicKey.qy,
  18. ]);
  19. });
  20. shouldBehaveLikeERC1271({ erc7739: true });
  21. });
  22. describe('for an RSA signer', function () {
  23. before(async function () {
  24. this.signer = new NonNativeSigner(RSASHA256SigningKey.random());
  25. this.mock = await ethers.deployContract('ERC7739RSAMock', [
  26. this.signer.signingKey.publicKey.e,
  27. this.signer.signingKey.publicKey.n,
  28. ]);
  29. });
  30. shouldBehaveLikeERC1271({ erc7739: true });
  31. });
  32. });