Configuration layout
Name | Type | Range | Description |
---|---|---|---|
Threshold | uint16 | 1 - 65535 | Required combined total “weight” of signers for a signature to be considered valid. |
Signers | signer[] | unlimited - bounded by gas | List of signers that with their corresponding “weight”s. |
Signer layout
Name | Type | Range | Description |
---|---|---|---|
”weight” | uint8 | 0 - 255 | ”weight” of every signature of the signer. |
”address” | "address" | — | “address” of the signer, it may be an EOA or another smart contract wallet with EIP-1271 support. |
Example
The valid combinations of signers are:
Configuration hash - ImageHash
The configuration is never stored directly on the contract, but instead is hashed and checked against every time a signature is validated. This allows the wallet contracts to reduce the usage of storage and therefore the gas cost. Wallets that never have been updated don’t store theimageHash
directly, instead the imageHash
is used as the salt
during the contract creation, and signatures are validated against the address of the wallet.
Compute image hash
Initial wallet configuration
The initial wallet configuration determines the address of the wallet, subsequent updates don’t change the address. The wallet address can be computed using theimageHash
, the factory
and mainModule
of the wallet.