Overview
AVAX Balance
AVAX Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set_receiver | 8366111 | 1222 days ago | IN | 0 AVAX | 0.00071945 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.3.0
Contract Source Code (Vyper language format)
# @version 0.3.0 """ @title avToken Burner @notice Converts avToken lending coins to USDC """ from vyper.interfaces import ERC20 interface LendingPool: def withdraw(_underlying_asset: address, _amount: uint256, _receiver: address): nonpayable interface RegistrySwap: def exchange_with_best_rate( _from: address, _to: address, _amount: uint256, _expected: uint256, _receiver: address, ) -> uint256: payable interface AddressProvider: def get_address(_id: uint256) -> address: view receiver: public(address) is_killed: public(bool) owner: public(address) future_owner: public(address) is_approved: HashMap[address, HashMap[address, bool]] ADDRESS_PROVIDER: constant(address) = 0x0000000022D53366457F9d5E68Ec105046FC4383 AAVE_LENDING_POOL: constant(address) = 0x4F01AeD16D97E3aB5ab2B501154DC9bb0F1A5A2C AVUSDC: constant(address) = 0x46A51127C3ce23fb7AB1DE06226147F446e4a857 USDC: constant(address) = 0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664 @external def __init__(_receiver: address, _owner: address): """ @notice Contract constructor @param _receiver Address that converted tokens are transferred to. Should be set to the `ChildBurner` deployment. @param _owner Owner address. Can kill the contract and recover tokens. """ self.receiver = _receiver self.owner = _owner @external def burn(_coin: address) -> bool: """ @notice Unwrap `_coin` and transfer to the receiver @param _coin Address of the coin being unwrapped @return bool success """ assert not self.is_killed # dev: is killed # transfer coins from caller amount: uint256 = ERC20(_coin).balanceOf(msg.sender) ERC20(_coin).transferFrom(msg.sender, self, amount) # get actual balance in case of transfer fee or pre-existing balance amount = ERC20(_coin).balanceOf(self) if _coin != AVUSDC: registry_swap: address = AddressProvider(ADDRESS_PROVIDER).get_address(2) if not self.is_approved[registry_swap][_coin]: ERC20(_coin).approve(registry_swap, MAX_UINT256) self.is_approved[registry_swap][_coin] = True RegistrySwap(registry_swap).exchange_with_best_rate(_coin, AVUSDC, amount, 0, self) amount = ERC20(AVUSDC).balanceOf(self) LendingPool(AAVE_LENDING_POOL).withdraw(USDC, amount, self.receiver) return True @external def recover_balance(_coin: address) -> bool: """ @notice Recover ERC20 tokens from this contract @param _coin Token address @return bool success """ assert msg.sender == self.owner # dev: only owner amount: uint256 = ERC20(_coin).balanceOf(self) response: Bytes[32] = raw_call( _coin, _abi_encode(msg.sender, amount, method_id=method_id("transfer(address,uint256)")), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) return True @external def set_receiver(_receiver: address): assert msg.sender == self.owner self.receiver = _receiver @external def set_killed(_is_killed: bool) -> bool: """ @notice Set killed status for this contract @dev When killed, the `burn` function cannot be called @param _is_killed Killed status @return bool success """ assert msg.sender == self.owner # dev: only owner self.is_killed = _is_killed return True @external def commit_transfer_ownership(_future_owner: address) -> bool: """ @notice Commit a transfer of ownership @dev Must be accepted by the new owner via `accept_transfer_ownership` @param _future_owner New owner address @return bool success """ assert msg.sender == self.owner # dev: only owner self.future_owner = _future_owner return True @external def accept_transfer_ownership() -> bool: """ @notice Accept a transfer of ownership @return bool success """ assert msg.sender == self.future_owner # dev: only owner self.owner = msg.sender return True
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_receiver","type":"address"},{"name":"_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":64718},{"stateMutability":"nonpayable","type":"function","name":"recover_balance","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":12531},{"stateMutability":"nonpayable","type":"function","name":"set_receiver","inputs":[{"name":"_receiver","type":"address"}],"outputs":[],"gas":37702},{"stateMutability":"nonpayable","type":"function","name":"set_killed","inputs":[{"name":"_is_killed","type":"bool"}],"outputs":[{"name":"","type":"bool"}],"gas":37875},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":37905},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}],"gas":37774},{"stateMutability":"view","type":"function","name":"receiver","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2706},{"stateMutability":"view","type":"function","name":"is_killed","inputs":[],"outputs":[{"name":"","type":"bool"}],"gas":2736},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2766},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2796}]
Contract Creation Code
60206105fa60c03960c0518060a01c6105f55780905061014052602060206105fa0160c03960c0518060a01c6105f5578090506101605261014051600055610160516002556105dd56600436101561000d57610589565b60046000601c376000513461058f576389afcb4481141561031e576004358060a01c61058f578090506101405260015461058f576370a0823161018052336101a0526020610180602461019c610140515afa1561058f57601f3d111561058f5761018051610160526323b872dd61018052336101a052306101c052610160516101e0526020610180606461019c6000610140515af11561058f57601f3d111561058f57610180506370a0823161018052306101a0526020610180602461019c610140515afa1561058f57601f3d111561058f5761018051610160527346a51127c3ce23fb7ab1de06226147f446e4a85761014051181561029e5763493f4f746101a05260026101c05260206101a060246101bc6f22d53366457f9d5e68ec105046fc43835afa1561058f57601f3d111561058f576101a0518060a01c61058f578090506101805260046101805160e05260c052604060c0206101405160e05260c052604060c020546101f75763095ea7b36101a052610180516101c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101e05260206101a060446101bc6000610140515af11561058f57601f3d111561058f576101a050600160046101805160e05260c052604060c0206101405160e05260c052604060c020555b639f69a6a66101a052610140516101c0527346a51127c3ce23fb7ab1de06226147f446e4a8576101e0526101605161020052600061022052306102405260206101a060a46101bc6000610180515af11561058f57601f3d111561058f576101a0506370a082316101a052306101c05260206101a060246101bc7346a51127c3ce23fb7ab1de06226147f446e4a8575afa1561058f57601f3d111561058f576101a051610160525b6369328dec6101805273a7d7079b0fead91f3e65f86e8915cb59c1a4c6646101a052610160516101c0526000546101e052734f01aed16d97e3ab5ab2b501154dc9bb0f1a5a2c3b1561058f5760006000606461019c6000734f01aed16d97e3ab5ab2b501154dc9bb0f1a5a2c5af11561058f576001610180526020610180f35b63db2f5f7981141561044f576004358060a01c61058f578090506101405260025433141561058f576370a0823161018052306101a0526020610180602461019c610140515afa1561058f57601f3d111561058f57610180516101605263a9059cbb6101c4526004336101e45261016051610204526040016101c0526101c08051602001806102408284600060045af11561058f57505060206102e0610240516102606000610140515af11561058f5760203d808211156103de57806103e0565b815b905090506102c0526102c08051602001806101808284600060045af11561058f575050600061018051181561044257610180806020015160008251806020901361058f578091901261058f57806020036101000a82049050905090501561058f575b60016101c05260206101c0f35b63d1dd6f56811415610480576004358060a01c61058f578090506101405260025433141561058f5761014051600055005b6390b229978114156104bc576004358060011c61058f578090506101405260025433141561058f57610140516001556001610160526020610160f35b636b441a408114156104f8576004358060a01c61058f578090506101405260025433141561058f57610140516003556001610160526020610160f35b63e5ea47b881141561051f5760035433141561058f57336002556001610140526020610140f35b63f7260d3e81141561053957600054610140526020610140f35b639c868ac081141561055357600154610140526020610140f35b638da5cb5b81141561056d57600254610140526020610140f35b631ec0cdc181141561058757600354610140526020610140f35b505b60006000fd5b600080fd5b6100496105dd036100496000396100496105dd036000f35b600080fd000000000000000000000000b324dc1780c0a2e8d84ed40b95aadf4693bc6c750000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a
Deployed Bytecode
0x600436101561000d57610589565b60046000601c376000513461058f576389afcb4481141561031e576004358060a01c61058f578090506101405260015461058f576370a0823161018052336101a0526020610180602461019c610140515afa1561058f57601f3d111561058f5761018051610160526323b872dd61018052336101a052306101c052610160516101e0526020610180606461019c6000610140515af11561058f57601f3d111561058f57610180506370a0823161018052306101a0526020610180602461019c610140515afa1561058f57601f3d111561058f5761018051610160527346a51127c3ce23fb7ab1de06226147f446e4a85761014051181561029e5763493f4f746101a05260026101c05260206101a060246101bc6f22d53366457f9d5e68ec105046fc43835afa1561058f57601f3d111561058f576101a0518060a01c61058f578090506101805260046101805160e05260c052604060c0206101405160e05260c052604060c020546101f75763095ea7b36101a052610180516101c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101e05260206101a060446101bc6000610140515af11561058f57601f3d111561058f576101a050600160046101805160e05260c052604060c0206101405160e05260c052604060c020555b639f69a6a66101a052610140516101c0527346a51127c3ce23fb7ab1de06226147f446e4a8576101e0526101605161020052600061022052306102405260206101a060a46101bc6000610180515af11561058f57601f3d111561058f576101a0506370a082316101a052306101c05260206101a060246101bc7346a51127c3ce23fb7ab1de06226147f446e4a8575afa1561058f57601f3d111561058f576101a051610160525b6369328dec6101805273a7d7079b0fead91f3e65f86e8915cb59c1a4c6646101a052610160516101c0526000546101e052734f01aed16d97e3ab5ab2b501154dc9bb0f1a5a2c3b1561058f5760006000606461019c6000734f01aed16d97e3ab5ab2b501154dc9bb0f1a5a2c5af11561058f576001610180526020610180f35b63db2f5f7981141561044f576004358060a01c61058f578090506101405260025433141561058f576370a0823161018052306101a0526020610180602461019c610140515afa1561058f57601f3d111561058f57610180516101605263a9059cbb6101c4526004336101e45261016051610204526040016101c0526101c08051602001806102408284600060045af11561058f57505060206102e0610240516102606000610140515af11561058f5760203d808211156103de57806103e0565b815b905090506102c0526102c08051602001806101808284600060045af11561058f575050600061018051181561044257610180806020015160008251806020901361058f578091901261058f57806020036101000a82049050905090501561058f575b60016101c05260206101c0f35b63d1dd6f56811415610480576004358060a01c61058f578090506101405260025433141561058f5761014051600055005b6390b229978114156104bc576004358060011c61058f578090506101405260025433141561058f57610140516001556001610160526020610160f35b636b441a408114156104f8576004358060a01c61058f578090506101405260025433141561058f57610140516003556001610160526020610160f35b63e5ea47b881141561051f5760035433141561058f57336002556001610140526020610140f35b63f7260d3e81141561053957600054610140526020610140f35b639c868ac081141561055357600154610140526020610140f35b638da5cb5b81141561056d57600254610140526020610140f35b631ec0cdc181141561058757600354610140526020610140f35b505b60006000fd5b600080fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b324dc1780c0a2e8d84ed40b95aadf4693bc6c750000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a
-----Decoded View---------------
Arg [0] : _receiver (address): 0xB324dc1780c0A2e8D84eD40B95aAdf4693bc6C75
Arg [1] : _owner (address): 0x7EeAC6CDdbd1D0B8aF061742D41877D7F707289a
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b324dc1780c0a2e8d84ed40b95aadf4693bc6c75
Arg [1] : 0000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.