MANAGER_LAMBDA
The MANAGER_LAMBDA
is an object exported from the @taquito/taquito
package that provides a convenient way to create lambda functions in Michelson to interact with the manager contract, a multisig contract.
The object exposes 4 methods that take different parameters in order to create the corresponding lambda under the hood, so that developers don't have to tinker with Michelson code.
The methods are the following:
removeDelegate
: to remove the current baker to whom the balance of the multisig contract has been delegatedsetDelegate
: to set a new baker as delegatetransferImplicit
: to transfer a given amount of XTZ to a given implicit accounttransferToContract
: to transfer a given amount of XTZ to a given contract
The removeDelegate
method
The method:
MANAGER_LAMBDA.removeDelegate();
The Michelson output:
DROP ;NIL operationNONE key_hash ;SET_DELEGATE ;CONS ;
The method doesn't take any parameter.
It produces a list of operations with a single operation in it created by the SET_DELEGATE
instruction with a value of None
, which removes the current delegate for the contract.
The setDelegate
method
The method:
MANAGER_LAMBDA.setDelegate(key: string)
The Michelson output:
DROP ;NIL operation ;PUSH key_hash <baker-key_hash> ;SOME ;SET_DELEGATE ;CONS ;
The method takes 1 parameter of type string
whose value is the key_hash
of the baker address.
It produces a list of operations with a single operation in it created by the SET_DELEGATE
instruction with a value of Some <baker-key_hash>
where the <baker-key_hash>
is replaced with the provided string.
The transferImplicit
method
The method:
MANAGER_LAMBDA.transferImplicit(key: string, mutez: number)
The Michelson output:
DROP ;NIL operation ;PUSH key_hash <recipient-address> ;IMPLICIT_ACCOUNT ;PUSH mutez <amount-to-transfer> ;UNIT ;TRANSFER_TOKENS ;CONS ;
The method takes 2 parameters: the first one of type string
whose value is the key_hash
of the recipient address, the second one of type number
whose value is the amount of XTZ to be transferred.
It produces a list of operations with a single operation in it created by the TRANSFER_TOKENS
instruction that will transfer the provided amount of XTZ to the provided address.
The transferToContract
method
The method:
MANAGER_LAMBDA.transferToContract(key: string, amount: number)
The Michelson output:
DROP ;NIL operation ;PUSH address <contract-address> ;CONTRACT unit ;IF_NONE{UNIT ;FAILWITH ;}{PUSH mutez <amount-to-transfer> ;UNIT ;TRANSFER_TOKENS ;CONS ;}
The method takes 2 parameters: the first one of type string
whose value is the key_hash
of the recipient address, the second one of type number
whose value is the amount of XTZ to be transferred.
It produces a list of operations with a single operation in it created by the TRANSFER_TOKENS
instruction that will transfer the provided amount of XTZ to the provided contract address. The contract must take a parameter of type unit
(which is the case for the manager contract), this condition is verified by the Michelson code in the lambda.