Add signer constructors (#5757)
Co-authored-by: ernestognw <ernestognw@gmail.com>
This commit is contained in:
@ -69,6 +69,11 @@ abstract contract MultiSignerERC7913 is AbstractSigner {
|
||||
/// @dev The `threshold` is unreachable given the number of `signers`.
|
||||
error MultiSignerERC7913UnreachableThreshold(uint64 signers, uint64 threshold);
|
||||
|
||||
constructor(bytes[] memory signers_, uint64 threshold_) {
|
||||
_addSigners(signers_);
|
||||
_setThreshold(threshold_);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Returns a slice of the set of authorized signers.
|
||||
*
|
||||
|
||||
@ -67,6 +67,11 @@ abstract contract MultiSignerERC7913Weighted is MultiSignerERC7913 {
|
||||
/// @dev Thrown when the arrays lengths don't match. See {_setSignerWeights}.
|
||||
error MultiSignerERC7913WeightedMismatchedLength();
|
||||
|
||||
constructor(bytes[] memory signers_, uint64[] memory weights_, uint64 threshold_) MultiSignerERC7913(signers_, 1) {
|
||||
_setSignerWeights(signers_, weights_);
|
||||
_setThreshold(threshold_);
|
||||
}
|
||||
|
||||
/// @dev Gets the weight of a signer. Returns 0 if the signer is not authorized.
|
||||
function signerWeight(bytes memory signer) public view virtual returns (uint64) {
|
||||
unchecked {
|
||||
|
||||
@ -27,6 +27,10 @@ import {ECDSA} from "../ECDSA.sol";
|
||||
abstract contract SignerECDSA is AbstractSigner {
|
||||
address private _signer;
|
||||
|
||||
constructor(address signerAddr) {
|
||||
_setSigner(signerAddr);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Sets the signer with the address of the native signer. This function should be called during construction
|
||||
* or through an initializer.
|
||||
|
||||
@ -31,6 +31,10 @@ import {SignatureChecker} from "../SignatureChecker.sol";
|
||||
abstract contract SignerERC7913 is AbstractSigner {
|
||||
bytes private _signer;
|
||||
|
||||
constructor(bytes memory signer_) {
|
||||
_setSigner(signer_);
|
||||
}
|
||||
|
||||
/// @dev Return the ERC-7913 signer (i.e. `verifier || key`).
|
||||
function signer() public view virtual returns (bytes memory) {
|
||||
return _signer;
|
||||
|
||||
@ -30,6 +30,10 @@ abstract contract SignerP256 is AbstractSigner {
|
||||
|
||||
error SignerP256InvalidPublicKey(bytes32 qx, bytes32 qy);
|
||||
|
||||
constructor(bytes32 qx, bytes32 qy) {
|
||||
_setSigner(qx, qy);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Sets the signer with a P256 public key. This function should be called during construction
|
||||
* or through an initializer.
|
||||
|
||||
@ -28,6 +28,10 @@ abstract contract SignerRSA is AbstractSigner {
|
||||
bytes private _e;
|
||||
bytes private _n;
|
||||
|
||||
constructor(bytes memory e, bytes memory n) {
|
||||
_setSigner(e, n);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Sets the signer with a RSA public key. This function should be called during construction
|
||||
* or through an initializer.
|
||||
|
||||
Reference in New Issue
Block a user