request
. The equivalent of this is a Proposal in a root or governance layer organization equipped with a Proposal Manager.request
function takes an array of CallRequest
structs, provided by IMultiSigOrganization
, each composed as follows: address location
-> this is the address of the contract with the code to be executed; you can pass the address of a contract that is already deployedbytes bytecode
-> this represents the bytecode
of the code to deploy and execute; rather than or as well as passing an already deployed contract in address location
, you can deploy and execute the bytecode
directly.bytes payload
-> this can contains a payload
or data
to be executed on the smart contract code via a call
function, specified in the location and / or bytes bytecode parameters, once those are executed.uint256 value
-> this represents the amount of ETH that will eventually be sent to the contract(s) (specified in the location
or bytecode
parameters) using a call
function at the time of code execution. bool asActiveComponent
-> this parameter represents if the code (i.e that specified the location
or bytecode
) must be executed as an active one-time component. The code will be executed as an active one-time component if asActiveComponent
is true; if so, the code (as a component) is temporarily attached to the Organization as an active one; its code is executed; and then it is detached. setAddresses
and setMinimumSignatures
functions discussed on the previous page, the code must also be executed as a one-time component.asActiveComponent
can be false if code doesn't need to be executed as an active one-time component; i.e, when it doesn't need to write on an Organization.bytes[] requestsSignatures
-> this parameter contains all of the encoded signatures generated off-chain to approve the transaction. To learn more, see the next page.request
function takes an array of CallRequest
structs; if so desired, multiple operations can be performed at once, one per struct.request
Functionrequest
function is freely callable from outside, the msg.sender
can be one of the address signatories registered; or not, as long as the function already has the minimum required signatures. If msg.sender
is one, its signature is valid.request
with an anonymous wallet -> all 5 off-chain signatures need to come from authorized wallets.request
with a wallet authorized to sign -> only 4 off=chain signatures need to come from authorized wallets; the msg.sender
serves as the 5th.