ProtocolOwner
The ProtocolOwner contract handles protocol-level functions and permissions within the Unlockd Wallet. It allows authorized protocol owners to execute specific actions and interacts with the TransactionGuard and DelegationOwner contracts.
Key Functions:
function initialize(
address _guard,
address _safe,
address _owner,
address _delegationOwner
) public
Initializes the ProtocolOwner contract with the necessary parameters.
Parameters:
_guard
(address): The address of the TransactionGuard contract.
_safe
(address): The address of the GnosisSafe contract.
_owner
(address): The address of the wallet owner.
_delegationOwner
(address): The address of the DelegationOwner contract.
function approveSale(
address _collection,
uint256 _tokenId,
address _underlyingAsset,
uint256 _amount,
address _marketApproval,
bytes32 _loanId
) external;
Approves the sale of an asset and transfers the necessary approvals and permissions.
Parameters:
_collection
(address): The address of the asset collection.
_tokenId
(uint256): The ID of the asset being sold.
_underlyingAsset
(address): The address of the underlying asset.
_amount
(uint256): The amount to be approved.
_marketApproval
(address): The address of the market approval contract.
_loanId
(bytes32): The ID of the loan associated with the sale.
function execTransaction(
address _to,
uint256 _value,
bytes calldata _data,
uint256 _safeTxGas,
uint256 _baseGas,
uint256 _gasPrice,
address _gasToken,
address payable _refundReceiver
) external returns (bool success)
Executes a transaction through the GnosisSafe wallet with protocol-level permissions.
Parameters:
_to
(address): The destination address of the transaction.
_value
(uint256): The amount of ETH to be sent with the transaction.
_data
(bytes): The data payload of the transaction.
_safeTxGas
(uint256): The gas limit for the transaction.
_baseGas
(uint256): The base gas cost.
_gasPrice
(uint256): The gas price used for the transaction.
_gasToken
(address): The address of the token used for gas payment (0 for ETH).
_refundReceiver
(address payable): The address that receives the gas payment refund.
Returns:
A boolean indicating the success of the transaction execution.
function delegateOneExecution(
address to,
bool value
) external;
Delegates the execution permission to a specified address for a single transaction.
Parameters:
to
(address): The address to delegate the execution permission to.
value
(bool): Indicates whether to grant or revoke the execution permission.
function isDelegatedExecution(
address to
) external view returns (bool);
Checks if an address has delegated execution permission.
Parameters:
to
(address): The address to check for delegated execution permission.
Returns:
(bool): Indicates whether the address has delegated execution permission or not.
function isAssetLocked(
bytes32 _id
) external view returns (bool);
Checks if an asset is locked.
Parameters:
_id
(bytes32): The ID of the asset.
Returns:
(bool): Indicates whether the asset is locked or not.
function getLoanId(
bytes32 index
) external view returns (bytes32);
Returns the loan ID assigned to a specific asset.
Parameters:
index
(bytes32): The index of the asset.
Returns:
(bytes32): The loan ID assigned to the asset.
function setLoanId(
bytes32 _index,
bytes32 _loanId
) external;
Sets the loan ID assigned to a specific asset.
Parameters:
_index
(bytes32): The index of the asset.
_loanId
(bytes32): The loan ID to be assigned.
function safeSetLoanId(
address _asset,
uint256 _id,
bytes32 _loanId
) external;
Safely sets the loan ID assigned to a specific asset and resets approvals.
Parameters:
_asset
(address): The address of the asset.
_id
(uint256): The ID of the asset.
_loanId
(bytes32): The loan ID to be assigned.
function changeOwner(
address _asset,
uint256 _id,
address _newOwner
) external;
Changes the current ownership of an asset.
Parameters:
_asset
(address): The address of the asset.
_id
(uint256): The ID of the asset.
_newOwner
(address): The address of the new owner.
function batchSetToZeroLoanId(
bytes32[] calldata _assets
) external;
Batch function to set loan IDs to zero for a group of assets.
Parameters:
_assets
(bytes32[]): An array of asset IDs.
function batchSetLoanId(
bytes32[] calldata _assets,
bytes32 _loanId
) external;
Batch function to set loan IDs to a specific value for a group of assets.
Parameters:
_assets
(bytes32[]): An array of asset IDs.
_loanId
(bytes32): The loan ID to be assigned.
Interactions:
Interacts with the TransactionGuard contract to enforce protocol-level rules and permissions.
Interacts with the DelegationOwner contract to perform protocol-specific actions.
Last updated