Files
openzeppelin-contracts/test/utils/cryptography/ERC7739.test.js
Hadrien Croubois 6079eb3f01 Add signer constructors (#5757)
Co-authored-by: ernestognw <ernestognw@gmail.com>
2025-06-20 13:09:28 +02:00

43 lines
1.3 KiB
JavaScript

const { ethers } = require('hardhat');
const { shouldBehaveLikeERC1271 } = require('./ERC1271.behavior');
const { NonNativeSigner, P256SigningKey, RSASHA256SigningKey } = require('../../helpers/signers');
describe('ERC7739', function () {
describe('for an ECDSA signer', function () {
before(async function () {
this.signer = ethers.Wallet.createRandom();
this.mock = await ethers.deployContract('$ERC7739ECDSAMock', ['ERC7739ECDSA', '1', this.signer.address]);
});
shouldBehaveLikeERC1271({ erc7739: true });
});
describe('for a P256 signer', function () {
before(async function () {
this.signer = new NonNativeSigner(P256SigningKey.random());
this.mock = await ethers.deployContract('$ERC7739P256Mock', [
'ERC7739P256',
'1',
this.signer.signingKey.publicKey.qx,
this.signer.signingKey.publicKey.qy,
]);
});
shouldBehaveLikeERC1271({ erc7739: true });
});
describe('for an RSA signer', function () {
before(async function () {
this.signer = new NonNativeSigner(RSASHA256SigningKey.random());
this.mock = await ethers.deployContract('$ERC7739RSAMock', [
'ERC7739RSA',
'1',
this.signer.signingKey.publicKey.e,
this.signer.signingKey.publicKey.n,
]);
});
shouldBehaveLikeERC1271({ erc7739: true });
});
});