The Vault contract is a straightforward smart contract designed to enable the DAO to manage chain-native assets and ERC-20 tokens across blockchains other than Ethereum.
This contract is directly controlled by the owner, which is the ownership agent (more here) of the respective chain.
GitHub
The source code of the Vault.vy contract can be found on GitHub .
This function can only be called by the owner of the contract, which is the L2 Ownership Agent.
Function to transfer a specific amount of tokens from the vault to another address.
Input
Type
Description
_token
address
Token to transfer
_to
address
Destination of the asset
_value
uint256
Amount of assets to transfer
Source code
NATIVE:constant(address)=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeEowner:public(address)@externaldeftransfer(_token:address,_to:address,_value:uint256):""" @notice Transfer an asset @param _token The token to transfer, or NATIVE if transferring the chain native asset @param _to The destination of the asset @param _value The amount of the asset to transfer """assertmsg.sender==self.ownerif_token==NATIVE:send(_to,_value)else:assertERC20(_token).transfer(_to,_value,default_return_value=True)
Ownership of the Vault contract follows the classic model of contract ownership. It includes an owner address, which can be updated by first committing a future owner and then applying the changes.