Skip to content

AvoSignersList ​

AvoSignersList_V1 ​

Tracks allowed signers for Avocados, making available a list of all signers linked to an Avocado or all Avocados for a certain signer address.

If trackInStorage flag is set to false, then only an event will be emitted for off-chain tracking. The contract itself will not track avocados per signer!

Upgradeable through AvoSignersListProxy

@dev Notes: In off-chain tracking, make sure to check for duplicates (i.e. mapping already exists). This should not happen but when not tracking the data on-chain there is no way to be sure.

AvoSignersListErrors ​

AvoSignersList__InvalidParams ​

solidity
error AvoSignersList__InvalidParams()

thrown when a method is called with invalid params (e.g. zero address)

AvoSignersList__NotTracked ​

solidity
error AvoSignersList__NotTracked()

thrown when a view method is called that would require storage mapping data, but the flag trackInStorage is set to false and thus data is not available.

AvoSignersListConstants ​

avoFactory ​

solidity
contract IAvoFactory avoFactory

AvoFactory used to confirm that an address is an Avocado smart wallet

trackInStorage ​

solidity
bool trackInStorage

flag to signal if tracking should happen in storage or only events should be emitted (for off-chain). This can be set to false to reduce gas cost on expensive chains

AvoSignersListVariables ​

AvoSignersListEvents ​

SignerMappingAdded ​

solidity
event SignerMappingAdded(address signer, address avocado)

emitted when a new signer <> Avocado mapping is added

SignerMappingRemoved ​

solidity
event SignerMappingRemoved(address signer, address avocado)

emitted when a signer <> Avocado mapping is removed

AvoSignersListViews ​

isSignerOf ​

solidity
function isSignerOf(address avocado_, address signer_) public view returns (bool)

returns true if signer_ is an allowed signer of avocado_

signers ​

solidity
function signers(address avocado_) public view returns (address[])

returns all signers for a certain avocado_

avocados ​

solidity
function avocados(address signer_) public view returns (address[])

returns all Avocados for a certain signer_'. reverts with AvoSignersList__NotTracked()iftrackInStorage` is set to false (data not available)

signersCount ​

solidity
function signersCount(address avocado_) public view returns (uint256)

returns the number of mapped signers for a certain `avocado_'

avocadosCount ​

solidity
function avocadosCount(address signer_) public view returns (uint256)

returns the number of mapped avocados for a certain signer_' reverts with AvoSignersList__NotTracked()iftrackInStorage` is set to false (data not available)

AvoSignersList ​

constructor ​

solidity
constructor(contract IAvoFactory avoFactory_, contract IAvoConfigV1 avoConfigV1_) public

constructor sets the immutable avoFactory (proxy) address and the trackInStorage flag

syncAddAvoSignerMappings ​

solidity
function syncAddAvoSignerMappings(address avocado_, address[] addSigners_) external

adds mappings of addSigners_ to an Avocado avocado_. checks the data present at the Avocado to validate input data.

If trackInStorage flag is set to false, then only an event will be emitted for off-chain tracking. The contract itself will not track avocados per signer on-chain!

Silently ignores addSigners_ that are already added

There is expectedly no need for this method to be called by anyone other than the Avocado itself.

syncRemoveAvoSignerMappings ​

solidity
function syncRemoveAvoSignerMappings(address avocado_, address[] removeSigners_) external

removes mappings of removeSigners_ from an Avocado avocado_. checks the data present at the Avocado to validate input data.

If trackInStorage flag is set to false, then only an event will be emitted for off-chain tracking. The contract itself will not track avocados per signer on-chain!

Silently ignores removeSigners_ that are already removed

There is expectedly no need for this method to be called by anyone other than the Avocado itself.