Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.3.7
Contract Source Code (Vyper language format)
# @version 0.3.7 """ @title Stable Burner @notice Deposits coins into 3pool """ from vyper.interfaces import ERC20 interface StableSwap: def add_liquidity(_amounts: uint256[N_COINS], _min_mint_amount: uint256, _receiver: address): nonpayable def coins(_i: uint256) -> address: view receiver: address is_killed: public(bool) owner: public(address) future_owner: public(address) N_COINS: constant(uint256) = 3 POOL: immutable(address) COINS: immutable(address[N_COINS]) @external def __init__(_pool: address, _receiver: address, _owner: address): """ @notice Contract constructor @param _pool Address of the pool to deposit into @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 POOL = _pool coins: address[N_COINS] = empty(address[N_COINS]) for i in range(N_COINS): coins[i] = StableSwap(_pool).coins(i) COINS = coins for coin in coins: ERC20(coin).approve(_pool, max_value(uint256)) @external def burn(_coin: address) -> bool: """ @notice Convert `_coin` by depositing it in the pool @param _coin Address of the coin being converted @return bool success """ assert not self.is_killed # dev: is killed assert _coin in COINS # transfer coins from caller amount: uint256 = ERC20(_coin).balanceOf(msg.sender) if amount != 0: ERC20(_coin).transferFrom(msg.sender, self, amount) # deposit only once if _coin != COINS[N_COINS - 1]: return True amounts: uint256[N_COINS] = empty(uint256[N_COINS]) for i in range(N_COINS): amounts[i] = ERC20(COINS[i]).balanceOf(self) StableSwap(POOL).add_liquidity(amounts, 0, 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
[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_pool","type":"address"},{"name":"_receiver","type":"address"},{"name":"_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"recover_balance","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"set_receiver","inputs":[{"name":"_receiver","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_killed","inputs":[{"name":"_is_killed","type":"bool"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"is_killed","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}]}]
Contract Creation Code
60206105ee6000396000518060a01c6105e957604052602061060e6000396000518060a01c6105e957606052602061062e6000396000518060a01c6105e957608052346105e9576060516000556080516002556040516104585260603660a03760006003905b806101005260405163c66106576101205261010051610140526020610120602461013c845afa61009a573d600060003e3d6000fd5b60203d106105e957610120518060a01c6105e9576101605261016090505161010051600281116105e95760051b60a0015260010181811861006557505060a0516104785260c0516104985260e0516104b85260006003905b8060051b60a00151610100526101005163095ea7b361012052604051610140527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610160526020610120604461013c6000855af1610155573d600060003e3d6000fd5b60203d106105e957610120518060011c6105e9576101805261018050506001018181186100f2575050610458610190610000396104d8610000f36003361161000c57610440565b60003560e01c34610446576389afcb4481186102235760243610610446576004358060a01c6104465760405260015461044657604051600060605260006003905b60208160051b60200161045801600039600051831861007057600160605261007b565b60010181811861004d575b5050606051905015610446576040516370a082316080523360a052602060806024609c845afa6100b0573d600060003e3d6000fd5b60203d106104465760809050516060526060511561011a576040516323b872dd6080523360a0523060c05260605160e052602060806064609c6000855af16100fd573d600060003e3d6000fd5b60203d10610446576080518060011c610446576101005261010050505b60206104b86000396000516040511461013b57600160805260206080610221565b60603660803760006003905b8060e052602060e051600281116104465760051b602001610458016000396000516370a082316101005230610120526020610100602461011c845afa610192573d600060003e3d6000fd5b60203d106104465761010090505160e051600281116104465760051b6080015260010181811861014757505060206104586000396000516375b96abc60e0526080516101005260a0516101205260c0516101405260006101605260005461018052803b1561044657600060e060a460fc6000855af1610216573d600060003e3d6000fd5b50600160e052602060e05bf35b63db2f5f79811861030e5760243610610446576004358060a01c610446576040526002543318610446576040516370a082316080523060a052602060806024609c845afa610276573d600060003e3d6000fd5b60203d1061044657608090505160605263a9059cbb60c45260043360e4526060516101045260400160c05260c050602061016060c05160e060006040515af16102c4573d600060003e3d6000fd5b3d602081183d60201002186101405261014080518060805260208201805160a052505050608051156103035760a05160805160200360031b1c15610446575b600160c052602060c0f35b63d1dd6f5681186103405760243610610446576004358060a01c61044657604052600254331861044657604051600055005b6390b22997811861037b5760243610610446576004358060011c61044657604052600254331861044657604051600155600160605260206060f35b636b441a4081186103b65760243610610446576004358060a01c61044657604052600254331861044657604051600355600160605260206060f35b63e5ea47b881186103e157600436106104465760035433186104465733600255600160405260206040f35b639c868ac0811861040057600436106104465760015460405260206040f35b638da5cb5b811861041f57600436106104465760025460405260206040f35b631ec0cdc1811861043e57600436106104465760035460405260206040f35b505b60006000fd5b600080fda165767970657283000307000b005b600080fd0000000000000000000000001337bedc9d22ecbe766df105c9623922a27963ec000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b
Deployed Bytecode
0x6003361161000c57610440565b60003560e01c34610446576389afcb4481186102235760243610610446576004358060a01c6104465760405260015461044657604051600060605260006003905b60208160051b60200161045801600039600051831861007057600160605261007b565b60010181811861004d575b5050606051905015610446576040516370a082316080523360a052602060806024609c845afa6100b0573d600060003e3d6000fd5b60203d106104465760809050516060526060511561011a576040516323b872dd6080523360a0523060c05260605160e052602060806064609c6000855af16100fd573d600060003e3d6000fd5b60203d10610446576080518060011c610446576101005261010050505b60206104b86000396000516040511461013b57600160805260206080610221565b60603660803760006003905b8060e052602060e051600281116104465760051b602001610458016000396000516370a082316101005230610120526020610100602461011c845afa610192573d600060003e3d6000fd5b60203d106104465761010090505160e051600281116104465760051b6080015260010181811861014757505060206104586000396000516375b96abc60e0526080516101005260a0516101205260c0516101405260006101605260005461018052803b1561044657600060e060a460fc6000855af1610216573d600060003e3d6000fd5b50600160e052602060e05bf35b63db2f5f79811861030e5760243610610446576004358060a01c610446576040526002543318610446576040516370a082316080523060a052602060806024609c845afa610276573d600060003e3d6000fd5b60203d1061044657608090505160605263a9059cbb60c45260043360e4526060516101045260400160c05260c050602061016060c05160e060006040515af16102c4573d600060003e3d6000fd5b3d602081183d60201002186101405261014080518060805260208201805160a052505050608051156103035760a05160805160200360031b1c15610446575b600160c052602060c0f35b63d1dd6f5681186103405760243610610446576004358060a01c61044657604052600254331861044657604051600055005b6390b22997811861037b5760243610610446576004358060011c61044657604052600254331861044657604051600155600160605260206060f35b636b441a4081186103b65760243610610446576004358060a01c61044657604052600254331861044657604051600355600160605260206060f35b63e5ea47b881186103e157600436106104465760035433186104465733600255600160405260206040f35b639c868ac0811861040057600436106104465760015460405260206040f35b638da5cb5b811861041f57600436106104465760025460405260206040f35b631ec0cdc1811861043e57600436106104465760035460405260206040f35b505b60006000fd5b600080fda165767970657283000307000b0000000000000000000000001337bedc9d22ecbe766df105c9623922a27963ec000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da10000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c3160700000000000000000000000094b008aa00579c1307b0ef2c499ad98a8ce58e58
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001337bedc9d22ecbe766df105c9623922a27963ec000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b
-----Decoded View---------------
Arg [0] : _pool (address): 0x1337BedC9D22ecbe766dF105c9623922A27963EC
Arg [1] : _receiver (address): 0xbF7E49483881C76487b0989CD7d9A8239B20CA41
Arg [2] : _owner (address): 0xB055EbbAcc8Eefc166c169e9Ce2886D0406aB49b
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000001337bedc9d22ecbe766df105c9623922a27963ec
Arg [1] : 000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41
Arg [2] : 000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
GNO | 100.00% | $0.999697 | 36.6276 | $36.62 |
[ 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.