MultiSigOrganization
contract, users can collect all required signatures for a new multisig transaction off-chain; once the minimum defined number of signatures is reached, they can use them to execute the transaction.EIP712Domain
and the data. Combined, these are signed and sent over to the smart contract for verification:EIP712Domain
is a value with parameters that specify which contract on which network will be used to verify the signature. Any other contract with the same code will be unable to verify the signature.eth_signTypedData_v4
method, the signature is obtained and split into its r
, s
and v
components. We then send it over to to the smart contract that will then use the ercrecover
method on these parameters, and the data
hash
method to recover the public key of the signer.MultiSigOrganization
contract.
In the callRequest
struct, the requestsSignatures
parameter in bytes
format must contain the encoded off-chain signature data previously generated for each signer address:requestsSignatures
is equal to or greater than the minimum number of signatures defined in the contract, the transaction can be approved, and the code thus executed.