More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 28 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Repay_bot | 19848777 | 130 days ago | IN | 0 ETH | 0.00466018 | ||||
Repay_bot | 19834459 | 132 days ago | IN | 0 ETH | 0.00569087 | ||||
Repay_bot | 19834269 | 132 days ago | IN | 0 ETH | 0.00568369 | ||||
Repay_bot | 19828621 | 133 days ago | IN | 0 ETH | 0.00592563 | ||||
Repay_bot | 19827952 | 133 days ago | IN | 0 ETH | 0.00009483 | ||||
Repay_bot | 19827071 | 133 days ago | IN | 0 ETH | 0.00010726 | ||||
Repay_bot | 19648767 | 158 days ago | IN | 0 ETH | 0.09448718 | ||||
Repay_bot | 19610354 | 163 days ago | IN | 0 ETH | 0.02391526 | ||||
Create_bot | 19507336 | 178 days ago | IN | 15.5 ETH | 0.04747546 | ||||
Repay_bot | 19506981 | 178 days ago | IN | 0 ETH | 0.02958519 | ||||
Create_bot | 19472753 | 182 days ago | IN | 0.1 ETH | 0.0639268 | ||||
Repay_bot | 19468863 | 183 days ago | IN | 0 ETH | 0.07868079 | ||||
Repay_bot | 19466809 | 183 days ago | IN | 0 ETH | 0.03241558 | ||||
Create_bot | 19459860 | 184 days ago | IN | 0.35 ETH | 0.04092861 | ||||
Create_bot | 19455894 | 185 days ago | IN | 0.29 ETH | 0.06806955 | ||||
Create_bot | 19440927 | 187 days ago | IN | 0.3 ETH | 0.06570655 | ||||
Create_bot | 19440512 | 187 days ago | IN | 0.1 ETH | 0.09564746 | ||||
Create_bot | 19414904 | 191 days ago | IN | 3.1 ETH | 0.11979765 | ||||
Repay_bot | 19414893 | 191 days ago | IN | 0 ETH | 0.07854548 | ||||
Create_bot | 19386664 | 195 days ago | IN | 0.1 ETH | 0.12503862 | ||||
Repay_bot | 19384166 | 195 days ago | IN | 0 ETH | 0.11780223 | ||||
Cancel | 19380819 | 195 days ago | IN | 0 ETH | 0.00115451 | ||||
Cancel | 19380547 | 195 days ago | IN | 0 ETH | 0.00141303 | ||||
Create_bot | 19325777 | 203 days ago | IN | 0.1 ETH | 0.12212511 | ||||
Create_bot | 19315889 | 204 days ago | IN | 3.6 ETH | 0.10988712 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19813039 | 135 days ago | Contract Creation | 2.994 ETH | |||
19813038 | 135 days ago | Contract Creation | 2.994 ETH | |||
19813034 | 135 days ago | Contract Creation | 2.994 ETH | |||
19812747 | 135 days ago | Contract Creation | 2.994 ETH | |||
19507336 | 178 days ago | Contract Creation | 2.994 ETH | |||
19507336 | 178 days ago | 0.03 ETH | ||||
19507336 | 178 days ago | 0.5 ETH | ||||
19472753 | 182 days ago | Contract Creation | 0 ETH | |||
19472753 | 182 days ago | 0.1 ETH | ||||
19459860 | 184 days ago | Contract Creation | 0 ETH | |||
19459860 | 184 days ago | 0.1 ETH | ||||
19459860 | 184 days ago | 0.25 ETH | ||||
19455894 | 185 days ago | Contract Creation | 0 ETH | |||
19455894 | 185 days ago | 0.1 ETH | ||||
19455894 | 185 days ago | 0.19 ETH | ||||
19440927 | 187 days ago | Contract Creation | 0 ETH | |||
19440927 | 187 days ago | 0.1 ETH | ||||
19440927 | 187 days ago | 0.2 ETH | ||||
19440512 | 187 days ago | Contract Creation | 0 ETH | |||
19440512 | 187 days ago | 0.1 ETH | ||||
19414904 | 191 days ago | Contract Creation | 0 ETH | |||
19414904 | 191 days ago | 0.1 ETH | ||||
19414904 | 191 days ago | 3 ETH | ||||
19386664 | 195 days ago | Contract Creation | 2.58004411 ETH | |||
19386664 | 195 days ago | 0.00517042 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Curve Degen Leverage Bot Factory
Compiler Version
vyper:0.3.10
Contract Source Code (Vyper language format)
#pragma version 0.3.10 #pragma optimize gas #pragma evm-version shanghai """ @title Curve Degen Leverage Bot Factory @license Apache 2.0 @author Volume.finance """ struct SwapInfo: route: address[11] swap_params: uint256[5][5] amount: uint256 expected: uint256 pools: address[5] struct BotInfo: depositor: address collateral: address amount: uint256 debt: uint256 N: uint256 leverage: uint256 deleverage_percentage: uint256 health_threshold: uint256 expire: uint256 remaining_count: uint256 interval: uint256 interface ControllerFactory: def get_controller(collateral: address) -> address: view def stablecoin() -> address: view def WETH() -> address: view interface ERC20: def approve(_spender: address, _value: uint256) -> bool: nonpayable def transfer(_to: address, _value: uint256) -> bool: nonpayable def transferFrom(_from: address, _to: address, _value: uint256) -> bool: nonpayable interface WrappedEth: def withdraw(amount: uint256): nonpayable interface Bot: def create_loan_extended(collateral_amount: uint256, debt: uint256, N: uint256, callbacker: address, callback_args: DynArray[uint256,5]): nonpayable def repay_extended(callbacker: address, callback_args: DynArray[uint256,5]) -> uint256: nonpayable def state() -> uint256[4]: view def health() -> int256: view interface CurveSwapRouter: def exchange( _route: address[11], _swap_params: uint256[5][5], _amount: uint256, _expected: uint256, _pools: address[5]=empty(address[5]), _receiver: address=msg.sender ) -> uint256: payable event BotStarted: deposit_id: uint256 owner: address bot: address collateral: address collateral_amount: uint256 debt: uint256 N: uint256 leverage: uint256 deleverage_percentage: uint256 health_threshold: uint256 expire: uint256 callbacker: address callback_args: DynArray[uint256, 5] remaining_count: uint256 interval: uint256 event BotRepayed: owner: address bot: address return_amount: uint256 event UpdateBlueprint: old_blueprint: address new_blueprint: address event UpdateCompass: old_compass: address new_compass: address event UpdateRefundWallet: old_refund_wallet: address new_refund_wallet: address event SetPaloma: paloma: bytes32 event UpdateGasFee: old_gas_fee: uint256 new_gas_fee: uint256 event UpdateServiceFeeCollector: old_service_fee_collector: address new_service_fee_collector: address event UpdateServiceFee: old_service_fee: uint256 new_service_fee: uint256 MAX_SIZE: constant(uint256) = 8 DENOMINATOR: constant(uint256) = 10**18 VETH: constant(address) = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE WETH: immutable(address) CONTROLLER_FACTORY: immutable(address) ROUTER: immutable(address) STABLECOIN: immutable(address) blueprint: public(address) compass: public(address) bot_to_owner: public(HashMap[address, address]) refund_wallet: public(address) gas_fee: public(uint256) service_fee_collector: public(address) service_fee: public(uint256) paloma: public(bytes32) bot_info: public(HashMap[uint256, BotInfo]) last_deposit_id: public(uint256) @external def __init__(_blueprint: address, _compass: address, controller_factory: address, router: address, _refund_wallet: address, _gas_fee: uint256, _service_fee_collector: address, _service_fee: uint256): self.blueprint = _blueprint self.compass = _compass self.refund_wallet = _refund_wallet self.gas_fee = _gas_fee self.service_fee_collector = _service_fee_collector self.service_fee = _service_fee CONTROLLER_FACTORY = controller_factory ROUTER = router WETH = ControllerFactory(controller_factory).WETH() STABLECOIN = ControllerFactory(CONTROLLER_FACTORY).stablecoin() log UpdateCompass(empty(address), _compass) log UpdateBlueprint(empty(address), _blueprint) log UpdateRefundWallet(empty(address), _refund_wallet) log UpdateGasFee(empty(uint256), _gas_fee) log UpdateServiceFeeCollector(empty(address), _service_fee_collector) log UpdateServiceFee(empty(uint256), _service_fee) @internal def _safe_approve(_token: address, _spender: address, _value: uint256): assert ERC20(_token).approve(_spender, _value, default_return_value=True), "Failed approve" @internal def _safe_transfer(_token: address, _to: address, _value: uint256): assert ERC20(_token).transfer(_to, _value, default_return_value=True), "Failed transfer" @internal def _safe_transfer_from(_token: address, _from: address, _to: address, _value: uint256): assert ERC20(_token).transferFrom(_from, _to, _value, default_return_value=True), "Failed transferFrom" @external @payable @nonreentrant('lock') def create_bot(swap_infos: DynArray[SwapInfo, MAX_SIZE], collateral: address, debt: uint256, N: uint256, callbacker: address, callback_args: DynArray[uint256,5], leverage: uint256, deleverage_percentage: uint256, health_threshold: uint256, expire: uint256, number_trades: uint256, interval: uint256): _gas_fee: uint256 = self.gas_fee * number_trades _service_fee: uint256 = self.service_fee controller: address = ControllerFactory(CONTROLLER_FACTORY).get_controller(collateral) collateral_amount: uint256 = 0 _value: uint256 = msg.value for swap_info in swap_infos: last_index: uint256 = 0 for i in range(6): # to the first last_index = unsafe_sub(10, unsafe_add(i, i)) if swap_info.route[last_index] != empty(address): break assert swap_info.route[last_index] == collateral or (swap_info.route[last_index] == VETH and collateral == WETH), "Wrong path" amount: uint256 = swap_info.amount assert amount > 0, "Insuf deposit" if collateral == WETH: if swap_info.route[0] == VETH: assert _value >= amount, "Insuf deposit" _value = unsafe_sub(_value, amount) else: self._safe_transfer_from(swap_info.route[0], msg.sender, self, amount) if swap_info.route[0] == WETH: WrappedEth(WETH).withdraw(amount) else: self._safe_approve(swap_info.route[0], ROUTER, amount) amount = CurveSwapRouter(ROUTER).exchange(swap_info.route, swap_info.swap_params, amount, swap_info.expected, swap_info.pools, self) else: if swap_info.route[0] == VETH: assert _value >= amount, "Insuf deposit" _value = unsafe_sub(_value, amount) amount = CurveSwapRouter(ROUTER).exchange(swap_info.route, swap_info.swap_params, amount, swap_info.expected, swap_info.pools, self, value=amount) else: self._safe_transfer_from(swap_info.route[0], msg.sender, self, amount) if swap_info.route[0] != collateral: self._safe_approve(swap_info.route[0], ROUTER, amount) amount = CurveSwapRouter(ROUTER).exchange(swap_info.route, swap_info.swap_params, amount, swap_info.expected, swap_info.pools, self) collateral_amount += amount if _value > _gas_fee: send(msg.sender, unsafe_sub(_value, _gas_fee)) else: assert _value == _gas_fee, "Insuf deposit" send(self.refund_wallet, _gas_fee) _service_fee_amount: uint256 = 0 if _service_fee > 0: _service_fee_amount = unsafe_div(collateral_amount * _service_fee, DENOMINATOR) collateral_amount = unsafe_sub(collateral_amount, _service_fee_amount) assert collateral_amount > 0, "Insuf deposit" if _service_fee_amount > 0: if collateral == WETH: send(self.service_fee_collector, _service_fee_amount) else: self._safe_transfer(collateral, self.service_fee_collector, _service_fee_amount) _deposit_id: uint256 = self.last_deposit_id self.last_deposit_id = unsafe_add(_deposit_id, 1) if number_trades > 1: self.bot_info[_deposit_id] = BotInfo({ depositor: msg.sender, collateral: collateral, amount: unsafe_div(collateral_amount, number_trades), debt: debt, N: N, leverage: leverage, deleverage_percentage: deleverage_percentage, health_threshold: health_threshold, expire: expire, remaining_count: unsafe_sub(number_trades, 1), interval: interval }) else: assert number_trades == 1, "Wrong number trades" self._create_bot(_deposit_id, msg.sender, collateral, unsafe_div(collateral_amount, number_trades), debt, N, callbacker, callback_args, leverage, deleverage_percentage, health_threshold, expire, number_trades, interval) @internal def _create_bot(deposit_id: uint256, depositor: address, collateral: address, amount: uint256, debt: uint256, N: uint256, callbacker: address, callback_args: DynArray[uint256,5], leverage: uint256, deleverage_percentage: uint256, health_threshold: uint256, expire: uint256, remaining_count: uint256, interval: uint256): _service_fee: uint256 = self.service_fee controller: address = ControllerFactory(CONTROLLER_FACTORY).get_controller(collateral) bot: address = empty(address) if amount > 0: if collateral == WETH: bot = create_from_blueprint(self.blueprint, controller, WETH, depositor, collateral, STABLECOIN, value=amount, code_offset=3) else: bot = create_from_blueprint(self.blueprint, controller, WETH, depositor, collateral, STABLECOIN, code_offset=3) self._safe_transfer(collateral, bot, amount) Bot(bot).create_loan_extended(amount, debt, N, callbacker, callback_args) self.bot_to_owner[bot] = depositor log BotStarted(deposit_id, depositor, bot, collateral, amount, debt, N, leverage, deleverage_percentage, health_threshold, expire, callbacker, callback_args, remaining_count, interval) @internal def _paloma_check(): assert msg.sender == self.compass, "Not compass" assert self.paloma == convert(slice(msg.data, unsafe_sub(len(msg.data), 32), 32), bytes32), "Invalid paloma" @external def create_next_bot(deposit_id: uint256, callbacker: address, callback_args: DynArray[uint256,5], remaining_count: uint256): self._paloma_check() _bot_info: BotInfo = self.bot_info[deposit_id] assert _bot_info.remaining_count == remaining_count and remaining_count > 0, "Wrong count" self._create_bot(deposit_id, _bot_info.depositor, _bot_info.collateral, _bot_info.amount, _bot_info.debt, _bot_info.N, callbacker, callback_args, _bot_info.leverage, _bot_info.deleverage_percentage, _bot_info.health_threshold, _bot_info.expire, remaining_count, _bot_info.interval) self.bot_info[deposit_id].remaining_count = unsafe_sub(remaining_count, 1) @external @nonreentrant('lock') def repay_bot_expected_view(bots: DynArray[address, MAX_SIZE], callbackers: DynArray[address, MAX_SIZE], callback_args: DynArray[DynArray[uint256,5], MAX_SIZE], swap_infos: DynArray[SwapInfo, MAX_SIZE]) -> DynArray[uint256, MAX_SIZE]: assert msg.sender == empty(address), "only view" bals: DynArray[uint256, MAX_SIZE] = [] for i in range(MAX_SIZE): if i >= len(bots): break bal: uint256 = Bot(bots[i]).repay_extended(callbackers[i], callback_args[i]) ERC20(STABLECOIN).approve(ROUTER, bal) owner: address = self.bot_to_owner[bots[i]] bals.append(CurveSwapRouter(ROUTER).exchange(swap_infos[i].route, swap_infos[i].swap_params, bal, swap_infos[i].expected, swap_infos[i].pools, owner)) return bals @external @nonreentrant('lock') def repay_bot(bots: DynArray[address, MAX_SIZE], callbackers: DynArray[address, MAX_SIZE], callback_args: DynArray[DynArray[uint256,5], MAX_SIZE], swap_infos: DynArray[SwapInfo, MAX_SIZE]): assert len(bots) == len(callbackers) and len(bots) == len(callback_args) and len(bots) == len(swap_infos), "invalidate" if msg.sender == self.compass: assert convert(slice(msg.data, unsafe_sub(len(msg.data), 32), 32), bytes32) == self.paloma, "Unauthorized" for i in range(MAX_SIZE): if i >= len(bots): break bal: uint256 = Bot(bots[i]).repay_extended(callbackers[i], callback_args[i]) ERC20(STABLECOIN).approve(ROUTER, bal) owner: address = self.bot_to_owner[bots[i]] bal = CurveSwapRouter(ROUTER).exchange(swap_infos[i].route, swap_infos[i].swap_params, bal, swap_infos[i].expected, swap_infos[i].pools, owner) log BotRepayed(owner, bots[i], bal) else: for i in range(MAX_SIZE): if i >= len(bots): break owner: address = self.bot_to_owner[bots[i]] assert owner == msg.sender, "Unauthorized" bal: uint256 = Bot(bots[i]).repay_extended(callbackers[i], callback_args[i]) ERC20(STABLECOIN).approve(ROUTER, bal) bal = CurveSwapRouter(ROUTER).exchange(swap_infos[i].route, swap_infos[i].swap_params, bal, swap_infos[i].expected, swap_infos[i].pools, owner) log BotRepayed(owner, bots[i], bal) @external @view def state(bot: address) -> uint256[4]: return Bot(bot).state() @external @view def health(bot: address) -> int256: return Bot(bot).health() @external def update_compass(new_compass: address): self._paloma_check() self.compass = new_compass log UpdateCompass(msg.sender, new_compass) @external def update_blueprint(new_blueprint: address): self._paloma_check() old_blueprint:address = self.blueprint self.blueprint = new_blueprint log UpdateCompass(old_blueprint, new_blueprint) @external def set_paloma(): assert msg.sender == self.compass and self.paloma == empty(bytes32) and len(msg.data) == 36, "Invalid" _paloma: bytes32 = convert(slice(msg.data, 4, 32), bytes32) self.paloma = _paloma log SetPaloma(_paloma) @external def update_refund_wallet(new_refund_wallet: address): self._paloma_check() old_refund_wallet: address = self.refund_wallet self.refund_wallet = new_refund_wallet log UpdateRefundWallet(old_refund_wallet, new_refund_wallet) @external def update_gas_fee(new_gas_fee: uint256): self._paloma_check() old_gas_fee: uint256 = self.gas_fee self.gas_fee = new_gas_fee log UpdateGasFee(old_gas_fee, new_gas_fee) @external def update_service_fee_collector(new_service_fee_collector: address): self._paloma_check() old_service_fee_collector: address = self.service_fee_collector self.service_fee_collector = new_service_fee_collector log UpdateServiceFeeCollector(old_service_fee_collector, new_service_fee_collector) @external def update_service_fee(new_service_fee: uint256): self._paloma_check() old_service_fee: uint256 = self.service_fee self.service_fee = new_service_fee log UpdateServiceFee(old_service_fee, new_service_fee) @external @payable def __default__(): pass
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"BotStarted","inputs":[{"name":"deposit_id","type":"uint256","indexed":false},{"name":"owner","type":"address","indexed":false},{"name":"bot","type":"address","indexed":false},{"name":"collateral","type":"address","indexed":false},{"name":"collateral_amount","type":"uint256","indexed":false},{"name":"debt","type":"uint256","indexed":false},{"name":"N","type":"uint256","indexed":false},{"name":"leverage","type":"uint256","indexed":false},{"name":"deleverage_percentage","type":"uint256","indexed":false},{"name":"health_threshold","type":"uint256","indexed":false},{"name":"expire","type":"uint256","indexed":false},{"name":"callbacker","type":"address","indexed":false},{"name":"callback_args","type":"uint256[]","indexed":false},{"name":"remaining_count","type":"uint256","indexed":false},{"name":"interval","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"BotRepayed","inputs":[{"name":"owner","type":"address","indexed":false},{"name":"bot","type":"address","indexed":false},{"name":"return_amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateBlueprint","inputs":[{"name":"old_blueprint","type":"address","indexed":false},{"name":"new_blueprint","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateCompass","inputs":[{"name":"old_compass","type":"address","indexed":false},{"name":"new_compass","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateRefundWallet","inputs":[{"name":"old_refund_wallet","type":"address","indexed":false},{"name":"new_refund_wallet","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetPaloma","inputs":[{"name":"paloma","type":"bytes32","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateGasFee","inputs":[{"name":"old_gas_fee","type":"uint256","indexed":false},{"name":"new_gas_fee","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateServiceFeeCollector","inputs":[{"name":"old_service_fee_collector","type":"address","indexed":false},{"name":"new_service_fee_collector","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateServiceFee","inputs":[{"name":"old_service_fee","type":"uint256","indexed":false},{"name":"new_service_fee","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_blueprint","type":"address"},{"name":"_compass","type":"address"},{"name":"controller_factory","type":"address"},{"name":"router","type":"address"},{"name":"_refund_wallet","type":"address"},{"name":"_gas_fee","type":"uint256"},{"name":"_service_fee_collector","type":"address"},{"name":"_service_fee","type":"uint256"}],"outputs":[]},{"stateMutability":"payable","type":"function","name":"create_bot","inputs":[{"name":"swap_infos","type":"tuple[]","components":[{"name":"route","type":"address[11]"},{"name":"swap_params","type":"uint256[5][5]"},{"name":"amount","type":"uint256"},{"name":"expected","type":"uint256"},{"name":"pools","type":"address[5]"}]},{"name":"collateral","type":"address"},{"name":"debt","type":"uint256"},{"name":"N","type":"uint256"},{"name":"callbacker","type":"address"},{"name":"callback_args","type":"uint256[]"},{"name":"leverage","type":"uint256"},{"name":"deleverage_percentage","type":"uint256"},{"name":"health_threshold","type":"uint256"},{"name":"expire","type":"uint256"},{"name":"number_trades","type":"uint256"},{"name":"interval","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"create_next_bot","inputs":[{"name":"deposit_id","type":"uint256"},{"name":"callbacker","type":"address"},{"name":"callback_args","type":"uint256[]"},{"name":"remaining_count","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"repay_bot_expected_view","inputs":[{"name":"bots","type":"address[]"},{"name":"callbackers","type":"address[]"},{"name":"callback_args","type":"uint256[][]"},{"name":"swap_infos","type":"tuple[]","components":[{"name":"route","type":"address[11]"},{"name":"swap_params","type":"uint256[5][5]"},{"name":"amount","type":"uint256"},{"name":"expected","type":"uint256"},{"name":"pools","type":"address[5]"}]}],"outputs":[{"name":"","type":"uint256[]"}]},{"stateMutability":"nonpayable","type":"function","name":"repay_bot","inputs":[{"name":"bots","type":"address[]"},{"name":"callbackers","type":"address[]"},{"name":"callback_args","type":"uint256[][]"},{"name":"swap_infos","type":"tuple[]","components":[{"name":"route","type":"address[11]"},{"name":"swap_params","type":"uint256[5][5]"},{"name":"amount","type":"uint256"},{"name":"expected","type":"uint256"},{"name":"pools","type":"address[5]"}]}],"outputs":[]},{"stateMutability":"view","type":"function","name":"state","inputs":[{"name":"bot","type":"address"}],"outputs":[{"name":"","type":"uint256[4]"}]},{"stateMutability":"view","type":"function","name":"health","inputs":[{"name":"bot","type":"address"}],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"nonpayable","type":"function","name":"update_compass","inputs":[{"name":"new_compass","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"update_blueprint","inputs":[{"name":"new_blueprint","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_paloma","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"update_refund_wallet","inputs":[{"name":"new_refund_wallet","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"update_gas_fee","inputs":[{"name":"new_gas_fee","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"update_service_fee_collector","inputs":[{"name":"new_service_fee_collector","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"update_service_fee","inputs":[{"name":"new_service_fee","type":"uint256"}],"outputs":[]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"view","type":"function","name":"blueprint","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"compass","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"bot_to_owner","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"refund_wallet","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"gas_fee","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"service_fee_collector","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"service_fee","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"paloma","inputs":[],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"view","type":"function","name":"bot_info","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"depositor","type":"address"},{"name":"collateral","type":"address"},{"name":"amount","type":"uint256"},{"name":"debt","type":"uint256"},{"name":"N","type":"uint256"},{"name":"leverage","type":"uint256"},{"name":"deleverage_percentage","type":"uint256"},{"name":"health_threshold","type":"uint256"},{"name":"expire","type":"uint256"},{"name":"remaining_count","type":"uint256"},{"name":"interval","type":"uint256"}]}]},{"stateMutability":"view","type":"function","name":"last_deposit_id","inputs":[],"outputs":[{"name":"","type":"uint256"}]}]
Contract Creation Code
612dde51503461029657602061302e5f395f518060a01c61029657604052602061304e5f395f518060a01c61029657606052602061306e5f395f518060a01c61029657608052602061308e5f395f518060a01c6102965760a05260206130ae5f395f518060a01c6102965760c05260206130ee5f395f518060a01c6102965760e05260405160015560605160025560c05160045560206130ce5f395f5160055560e051600655602061310e5f395f51600755608051612d9e5260a051612dbe5260805163ad5c4648610100526020610100600461011c845afa6100e4573d5f5f3e3d5ffd5b60203d1061029657610100518060a01c6102965761014052610140905051612d7e52612d9e5163e9cbd822610100526020610100600461011c845afa61012c573d5f5f3e3d5ffd5b60203d1061029657610100518060a01c6102965761014052610140905051612dde527fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a5f61010052606051610120526040610100a17ffce2b9f8e233d34497a88fcfc9585a21518234ea380367c12f513105ec17751b5f61010052604051610120526040610100a17f766266fd21d17d465fb39cab9d9ff8020a212598404ab12bfd59aa2de4dea6a25f6101005260c051610120526040610100a17fddffc4d0c877393a9c5aa1caa6d000dd85fcd4f5b32ff2c8491d1737ab363e045f6101005260206130ce610120396040610100a17f62415a60755d7d2d84ea1baece7480e6a431cf87cbbdfa07d5984b243bf61f315f6101005260e051610120526040610100a17f4f0eeeb973d948a2b83d5d751d3373650b926bfc6b9f9ed579e3dbd4813663545f61010052602061310e610120396040610100a1612d7e61029a61000039612dfe610000f35b5f80fd5f3560e01c60026013820660011b612d5801601e395f51565b63c05efa1581186100345734612d545760015460405260206040f35b63d9fad13e811861266f57602436103417612d54576004358060a01c612d545760405260036040516020525f5260405f205460605260206060f361266f565b63eb8acce6811861008f5734612d545760025460405260206040f35b636974af6981186100f357602436103417612d54576004358060a01c612d545760c0526100ba612c56565b60c0516002557fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a3360e05260c05161010052604060e0a1005b636e9bc3f6811861266f57602436103417612d5457610110612c56565b60055460c0526004356005557fddffc4d0c877393a9c5aa1caa6d000dd85fcd4f5b32ff2c8491d1737ab363e0460c05160e05260043561010052604060e0a10061266f565b6322221b0c81186101715734612d545760045460405260206040f35b63c09f3291811861266f5734612d545760085460405260206040f361266f565b6376369b6d811861266f5734612d545760055460405260206040f361266f565b63d8fe764d811861266f5734612d545760065460405260206040f361266f565b6310d418c281186101ed5734612d545760075460405260206040f35b6323fde8e281186102e05734612d5457600254331861021d5760085461021757602436181561021f565b5f61021f565b5f5b61027e5760076040527f496e76616c69640000000000000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b36602411612d54576020606052602060046080376060805160200360031b6020820151811c811b905090506040526040516008557f2700ed1ef9147da3f7fdcaae08cbe6d1c92ec7fa6bace169d9c49e398e3cb1ca60405160605260206060a1005b63c4ec2ff1811861266f57602436103417612d54576102fd612c56565b60075460c0526004356007557f4f0eeeb973d948a2b83d5d751d3373650b926bfc6b9f9ed579e3dbd48136635460c05160e05260043561010052604060e0a10061266f565b63fab4db8e811861266f57602436103417612d545760096004356020525f5260405f205f600b905b808301548160051b6040015260010181811861036a575050506101606040f361266f565b63795a0f2a811861266f5734612d5457600a5460405260206040f361266f565b63707c96ae811861266f576101c3361115612d54576004356004016008813511612d545780355f8160088111612d5457801561065a57905b61056081026106e0016105608202602086010180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d5457608083015260a08101358060a01c612d545760a083015260c08101358060a01c612d545760c083015260e08101358060a01c612d545760e08301526101008101358060a01c612d54576101008301526101208101358060a01c612d54576101208301526101408101358060a01c612d545761014083015261016082016101608201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0820160a082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505061014082016101408201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015250506101e082016101e0820180358252602081013560208301526040810135604083015260608101356060830152608081013560808301525050610280820161028082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505050506104808101356104808301526104a08101356104a08301526104c082016104c0820180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d54576080830152505050506001018181186103e6575b5050806106c05250506024358060a01c612d54576131e0526084358060a01c612d54576132005260a4356004016005813511612d5457803560208160051b018083613220375050505f54600214612d545760025f5560055461014435808202811583838304141715612d5457905090506132e052600754613300526020612d9e5f395f5163f4410236613340526131e051613360526020613340602461335c845afa610708573d5f5f3e3d5ffd5b60203d10612d5457613340518060a01c612d545761338052613380905051613320525f6133405234613360525f6106c05160088111612d54578015610d2957905b61056081026106e0016105606133806105608360045afa50505f6138e0525f6006905b8061390052613900516139005101600a036138e0526138e051600a8111612d545760051b61338001511561079f576107aa565b60010181811861076c575b50506131e0516138e051600a8111612d545760051b6133800151186107d0576001610814565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6138e051600a8111612d545760051b613380015118610812576020612d7e5f395f516131e0511815610814565b5f5b61087d57600a613900527f57726f6e672070617468000000000000000000000000000000000000000000006139205261390050613900518061392001601f825f031636823750506308c379a06138c05260206138e052601f19601f6139005101166044016138dcfd5b6138005161390052613900516108f257600d613920527f496e737566206465706f736974000000000000000000000000000000000000006139405261392050613920518061394001601f825f031636823750506308c379a06138e052602061390052601f19601f6139205101166044016138fcfd5b6020612d7e5f395f516131e05118610ad85773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61338051186109a7576139005161336051101561099557600d613920527f496e737566206465706f736974000000000000000000000000000000000000006139405261392050613920518061394001601f825f031636823750506308c379a06138e052602061390052601f19601f6139205101166044016138fcfd5b61390051613360510361336052610d04565b6133805160405233606052306080526139005160a0526109c561280b565b6020612d7e5f395f516133805118610a17576020612d7e5f395f51632e1a7d4d613920526139005161394052803b15612d54575f613920602461393c5f855af1610a11573d5f5f3e3d5ffd5b50610d04565b613380516040526020612dbe60603961390051608052610a35612671565b6020612dbe5f395f5163c872a3c56139205261016061394061016061338060045afa50610320613aa06103206134e060045afa5061390051613dc05261382051613de05261384051613e005261386051613e205261388051613e40526138a051613e60526138c051613e805230613ea052602061392061058461393c5f855af1610ac1573d5f5f3e3d5ffd5b60203d10612d545761392090505161390052610d04565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6133805118610c1c5761390051613360511015610b6957600d613920527f496e737566206465706f736974000000000000000000000000000000000000006139405261392050613920518061394001601f825f031636823750506308c379a06138e052602061390052601f19601f6139205101166044016138fcfd5b613900516133605103613360526020612dbe5f395f5163c872a3c56139205261016061394061016061338060045afa50610320613aa06103206134e060045afa5061390051613dc05261382051613de05261384051613e005261386051613e205261388051613e40526138a051613e60526138c051613e805230613ea052602061392061058461393c61390051855af1610c05573d5f5f3e3d5ffd5b60203d10612d545761392090505161390052610d04565b6133805160405233606052306080526139005160a052610c3a61280b565b6131e0516133805114610d0457613380516040526020612dbe60603961390051608052610c65612671565b6020612dbe5f395f5163c872a3c56139205261016061394061016061338060045afa50610320613aa06103206134e060045afa5061390051613dc05261382051613de05261384051613e005261386051613e205261388051613e40526138a051613e60526138c051613e805230613ea052602061392061058461393c5f855af1610cf1573d5f5f3e3d5ffd5b60203d10612d5457613920905051613900525b6133405161390051808201828110612d54579050905061334052600101818118610749575b50506132e0516133605111610daf576132e051613360511815610dc557600d613380527f496e737566206465706f736974000000000000000000000000000000000000006133a0526133805061338051806133a001601f825f031636823750506308c379a061334052602061336052601f19601f61338051011660440161335cfd610dc5565b5f5f5f5f6132e0516133605103335ff115612d54575b5f5f5f5f6132e0516004545ff115612d54575f613380526133005115610e1d57670de0b6b3a76400006133405161330051808202811583838304141715612d5457905090500461338052613380516133405103613340525b61334051610e8a57600d6133a0527f496e737566206465706f736974000000000000000000000000000000000000006133c0526133a0506133a051806133c001601f825f031636823750506308c379a061336052602061338052601f19601f6133a051011660440161337cfd5b6133805115610ed8576020612d7e5f395f516131e05118610ebc575f5f5f5f613380516006545ff115612d5457610ed8565b6131e05160405260065460605261338051608052610ed861273e565b600a546133a05260016133a05101600a556002610144351015610f6a576001610144351815610fdc5760136133c0527f57726f6e67206e756d62657220747261646573000000000000000000000000006133e0526133c0506133c051806133e001601f825f031636823750506308c379a06133805260206133a052601f19601f6133c051011660440161339cfd610fdc565b60096133a0516020525f5260405f203381556131e051600182015561014435613340510460028201556044356003820155606435600482015560c435600582015560e435600682015561010435600782015561012435600882015560016101443503600982015561016435600a820155505b6133a0516101605233610180526131e0516101a0526101443561334051046101c052604060446101e03761320051610220526132205160208160051b01806102408261322060045afa50505060c060c4610300376110386128e2565b60035f550061266f565b63fdca5e1f81186111e25760a436103417612d54576024358060a01c612d54576106c0526044356004016005813511612d5457803560208160051b0180836106e03750505061108f612c56565b60096004356020525f5260405f205f600b905b808301548160051b6107a001526001018181186110a2575050506064356108c051186110d25760643515156110d4565b5f5b61113d57600b610900527f57726f6e6720636f756e740000000000000000000000000000000000000000006109205261090050610900518061092001601f825f031636823750506308c379a06108c05260206108e052601f19601f6109005101166044016108dcfd5b600435610160526107a051610180526107c0516101a0526107e0516101c052610800516101e05261082051610200526106c051610220526106e05160208160051b0180610240826106e060045afa5050506108405161030052610860516103205261088051610340526108a05161036052606435610380526108e0516103a0526111c56128e2565b60016064350360096004356020525f5260405f2060098101905055005b637361564a811861125057602436103417612d54576004358060a01c612d545760c05261120d612c56565b60015460e05260c0516001557fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a60e0516101005260c051610120526040610100a1005b63c98856aa811861266f57602436103417612d54576004358060a01c612d545760c05261127b612c56565b60045460e05260c0516004557f766266fd21d17d465fb39cab9d9ff8020a212598404ab12bfd59aa2de4dea6a260e0516101005260c051610120526040610100a10061266f565b634f884bc48118611a065761010436103417612d54576004356004016008813511612d545780355f8160088111612d5457801561132057905b8060051b6020850101358060a01c612d54578160051b606001526001018181186112fb575b50508060405250506024356004016008813511612d545780355f8160088111612d5457801561137157905b8060051b6020850101358060a01c612d54578160051b610180015260010181811861134b575b5050806101605250506044356004016008813511612d545780355f8160088111612d545780156113d957905b8060051b60208501013560208501016005813511612d5457803560208160051b0160c084026102a001818482375050505060010181811861139d575b5050806102805250506064356004016008813511612d545780355f8160088111612d5457801561167957905b61056081026108c0016105608202602086010180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d5457608083015260a08101358060a01c612d545760a083015260c08101358060a01c612d545760c083015260e08101358060a01c612d545760e08301526101008101358060a01c612d54576101008301526101208101358060a01c612d54576101208301526101408101358060a01c612d545761014083015261016082016101608201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0820160a082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505061014082016101408201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015250506101e082016101e0820180358252602081013560208301526040810135604083015260608101356060830152608081013560808301525050610280820161028082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505050506104808101356104808301526104a08101356104a08301526104c082016104c0820180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d5457608083015250505050600101818118611405575b5050806108a05250505f54600214612d545760025f5533156116fa5760096133c0527f6f6e6c79207669657700000000000000000000000000000000000000000000006133e0526133c0506133c051806133e001601f825f031636823750506308c379a06133805260206133a052601f19601f6133c051011660440161339cfd5b5f6133c0525f6008905b806134e0526040516134e0511061171a576119a3565b6134e051604051811015612d545760051b6060015163152f65cb6135205260406134e05161016051811015612d545760051b610180015161354052806135605260c06134e05161028051811015612d5457026102a00181613540015f82518083528060051b5f8260058111612d545780156117b057905b8060051b6020880101518160051b602088010152600101818118611791575b505082016020019150509050905081015050602061352061010461353c5f855af16117dd573d5f5f3e3d5ffd5b60203d10612d5457613520905051613500526020612dde5f395f5163095ea7b3613520526020612dbe6135403961350051613560526020613520604461353c5f855af161182c573d5f5f3e3d5ffd5b60203d10612d5457613520518060011c612d545761358052613580505060036134e051604051811015612d545760051b606001516020525f5260405f2054613520526133c05160078111612d54576020612dbe5f395f5163c872a3c5613540526105606134e0516108a051811015612d5457026108c0016101606135606101608360045afa50506105606134e0516108a051811015612d5457026108c001610160810190506103206136c06103208360045afa5050613500516139e0526105606134e0516108a051811015612d5457026108c0016104a08101905051613a00526105606134e0516108a051811015612d5457026108c0016104c0810190508051613a20526020810151613a40526040810151613a60526060810151613a80526080810151613aa0525061352051613ac052602061354061058461355c5f855af1611978573d5f5f3e3d5ffd5b60203d10612d54576135409050518160051b6133e00152600181016133c05250600101818118611704575b50506020806134e052806134e0015f6133c0518083528060051b5f8260088111612d545780156119ed57905b8060051b6133e001518160051b6020880101526001018181186119cf575b505082016020019150509050810190506134e060035f55f35b6330e59cbc811861266f57602436103417612d54576004358060a01c612d545760c052611a31612c56565b60065460e05260c0516006557f62415a60755d7d2d84ea1baece7480e6a431cf87cbbdfa07d5984b243bf61f3160e0516101005260c051610120526040610100a10061266f565b635a3aa92f81186125bc5761010436103417612d54576004356004016008813511612d545780355f8160088111612d54578015611ad657905b8060051b6020850101358060a01c612d54578160051b60600152600101818118611ab1575b50508060405250506024356004016008813511612d545780355f8160088111612d54578015611b2757905b8060051b6020850101358060a01c612d54578160051b6101800152600101818118611b01575b5050806101605250506044356004016008813511612d545780355f8160088111612d54578015611b8f57905b8060051b60208501013560208501016005813511612d5457803560208160051b0160c084026102a0018184823750505050600101818118611b53575b5050806102805250506064356004016008813511612d545780355f8160088111612d54578015611e2f57905b61056081026108c0016105608202602086010180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d5457608083015260a08101358060a01c612d545760a083015260c08101358060a01c612d545760c083015260e08101358060a01c612d545760e08301526101008101358060a01c612d54576101008301526101208101358060a01c612d54576101208301526101408101358060a01c612d545761014083015261016082016101608201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0820160a082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505061014082016101408201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015250506101e082016101e0820180358252602081013560208301526040810135604083015260608101356060830152608081013560808301525050610280820161028082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505050506104808101356104808301526104a08101356104a08301526104c082016104c0820180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d5457608083015250505050600101818118611bbb575b5050806108a05250505f54600214612d545760025f556101605160405118611e71576102805160405118611e6b576108a0516040511815611e73565b5f611e73565b5f5b611edc57600a6133c0527f696e76616c6964617465000000000000000000000000000000000000000000006133e0526133c0506133c051806133e001601f825f031636823750506308c379a06133805260206133a052601f19601f6133c051011660440161339cfd5b600254331861226957600854366020602036030111612d545760206133c0526020602036036133e0376133c0805160200360031b6020820151811c811b905090501815611f8857600c613400527f556e617574686f72697a656400000000000000000000000000000000000000006134205261340050613400518061342001601f825f031636823750506308c379a06133c05260206133e052601f19601f6134005101166044016133dcfd5b5f6008905b806133c0526040516133c05110611fa357612262565b6133c051604051811015612d545760051b6060015163152f65cb6134005260406133c05161016051811015612d545760051b610180015161342052806134405260c06133c05161028051811015612d5457026102a00181613420015f82518083528060051b5f8260058111612d5457801561203957905b8060051b6020880101518160051b60208801015260010181811861201a575b505082016020019150509050905081015050602061340061010461341c5f855af1612066573d5f5f3e3d5ffd5b60203d10612d54576134009050516133e0526020612dde5f395f5163095ea7b3613400526020612dbe613420396133e051613440526020613400604461341c5f855af16120b5573d5f5f3e3d5ffd5b60203d10612d5457613400518060011c612d545761346052613460505060036133c051604051811015612d545760051b606001516020525f5260405f2054613400526020612dbe5f395f5163c872a3c5613420526105606133c0516108a051811015612d5457026108c0016101606134406101608360045afa50506105606133c0516108a051811015612d5457026108c001610160810190506103206135a06103208360045afa50506133e0516138c0526105606133c0516108a051811015612d5457026108c0016104a081019050516138e0526105606133c0516108a051811015612d5457026108c0016104c08101905080516139005260208101516139205260408101516139405260608101516139605260808101516139805250613400516139a052602061342061058461343c5f855af16121f5573d5f5f3e3d5ffd5b60203d10612d54576134209050516133e0527f4350b8e0a39c7d213449ee0370b6c829c017798307ae7aebc096e039fe5a96c761340051613420526133c051604051811015612d545760051b60600151613440526133e051613460526060613420a1600101818118611f8d575b50506125b6565b5f6008905b806133c0526040516133c05110612284576125b3565b60036133c051604051811015612d545760051b606001516020525f5260405f20546133e052336133e051181561231957600c613400527f556e617574686f72697a656400000000000000000000000000000000000000006134205261340050613400518061342001601f825f031636823750506308c379a06133c05260206133e052601f19601f6134005101166044016133dcfd5b6133c051604051811015612d545760051b6060015163152f65cb6134205260406133c05161016051811015612d545760051b610180015161344052806134605260c06133c05161028051811015612d5457026102a00181613440015f82518083528060051b5f8260058111612d545780156123af57905b8060051b6020880101518160051b602088010152600101818118612390575b505082016020019150509050905081015050602061342061010461343c5f855af16123dc573d5f5f3e3d5ffd5b60203d10612d5457613420905051613400526020612dde5f395f5163095ea7b3613420526020612dbe6134403961340051613460526020613420604461343c5f855af161242b573d5f5f3e3d5ffd5b60203d10612d5457613420518060011c612d54576134805261348050506020612dbe5f395f5163c872a3c5613420526105606133c0516108a051811015612d5457026108c0016101606134406101608360045afa50506105606133c0516108a051811015612d5457026108c001610160810190506103206135a06103208360045afa5050613400516138c0526105606133c0516108a051811015612d5457026108c0016104a081019050516138e0526105606133c0516108a051811015612d5457026108c0016104c081019050805161390052602081015161392052604081015161394052606081015161396052608081015161398052506133e0516139a052602061342061058461343c5f855af1612546573d5f5f3e3d5ffd5b60203d10612d5457613420905051613400527f4350b8e0a39c7d213449ee0370b6c829c017798307ae7aebc096e039fe5a96c76133e051613420526133c051604051811015612d545760051b606001516134405261340051613460526060613420a160010181811861226e575b50505b60035f55005b6331e658a5811861261157602436103417612d54576004358060a01c612d5457604052608060405163c19d93fb606052608060606004607c845afa612603573d5f5f3e3d5ffd5b60803d10612d545760609050f35b63e2d8ebee811861266f57602436103417612d54576004358060a01c612d54576040526020604051637633a22c606052602060606004607c845afa612658573d5f5f3e3d5ffd5b60203d10612d545760609050f361266f5661266f565b5b005b60405163095ea7b360a05260605160c05260805160e052602060a0604460bc5f855af16126a0573d5f5f3e3d5ffd5b3d6126b757803b15612d54576001610100526126cf565b60203d10612d545760a0518060011c612d5457610100525b61010090505161273c57600e610120527f4661696c656420617070726f76650000000000000000000000000000000000006101405261012050610120518061014001601f825f031636823750506308c379a060e052602061010052601f19601f61012051011660440160fcfd5b565b60405163a9059cbb60a05260605160c05260805160e052602060a0604460bc5f855af161276d573d5f5f3e3d5ffd5b3d61278457803b15612d545760016101005261279c565b60203d10612d545760a0518060011c612d5457610100525b61010090505161280957600f610120527f4661696c6564207472616e7366657200000000000000000000000000000000006101405261012050610120518061014001601f825f031636823750506308c379a060e052602061010052601f19601f61012051011660440160fcfd5b565b6040516323b872dd60c05260605160e0526080516101005260a05161012052602060c0606460dc5f855af1612842573d5f5f3e3d5ffd5b3d61285957803b15612d5457600161014052612871565b60203d10612d545760c0518060011c612d5457610140525b6101409050516128e0576013610160527f4661696c6564207472616e7366657246726f6d000000000000000000000000006101805261016050610160518061018001601f825f031636823750506308c379a061012052602061014052601f19601f61016051011660440161013cfd5b565b6007546103c0526020612d9e5f395f5163f4410236610400526101a051610420526020610400602461041c845afa61291c573d5f5f3e3d5ffd5b60203d10612d5457610400518060a01c612d5457610440526104409050516103e0525f610400526101c05115612c54576020612d7e5f395f516101a051186129fb576001546101c0516103e05161042052610420516104c0526020612d7e61044039610440516104e052610180516104605261046051610500526101a0516104805261048051610520526020612dde6104a0396104a0516105405260a06003833b035960018212612d545781600382873c8181018381856104c060045afa50508282018185f08015612d54579050905090509050905061040052612aaa565b6001546103e05161042052610420516104c0526020612d7e61044039610440516104e052610180516104605261046051610500526101a0516104805261048051610520526020612dde6104a0396104a0516105405260a06003823b035960018212612d545781600382863c8181018381856104c060045afa5050828201815ff08015612d54579050905090509050610400526101a051604052610400516060526101c051608052612aaa61273e565b6104005163bc61ea236104205260a06101c051610440526101e051610460526102005161048052610220516104a052806104c05280610440015f610240518083528060051b5f8260058111612d54578015612b1f57905b8060051b61026001518160051b602088010152600101818118612b01575b50508201602001915050905081015050803b15612d54575f61042061016461043c5f855af1612b50573d5f5f3e3d5ffd5b50610180516003610400516020525f5260405f20557fce57f2d99d307d406be6eb4085db6c3365221379b5e795cbc92fbd62e6206d2e6101e06101605161042052610180516104405261040051610460526101a051610480526101c0516104a0526101e0516104c052610200516104e05261030051610500526103205161052052610340516105405261036051610560526102205161058052806105a05280610420015f610240518083528060051b5f8260058111612d54578015612c2f57905b8060051b61026001518160051b602088010152600101818118612c11575b50508201602001915050905081019050610380516105c0526103a0516105e052610420a15b565b600254331815612cbb57600b6040527f4e6f7420636f6d7061737300000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b366020602036030111612d545760206040526020602036036060376040805160200360031b6020820151811c811b905090506008541815612d5257600e6080527f496e76616c69642070616c6f6d6100000000000000000000000000000000000060a0526080506080518060a001601f825f031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b565b5f80fd0018266e03ae266e266e01d1266e01b1266e266e1042038e0073034212c2266e019101551a7884192d7e8118261880a16576797065728300030a00160000000000000000000000003047241b13d086de20f8c8675fa454f6120063c6000000000000000000000000b01cc20fe02723d43822819ec57fcbadf31f1537000000000000000000000000c9332fdcb1c491dcc683bae86fe3cb70360738bc000000000000000000000000f0d4c12a5768d806021f80a262b4d39d26c58b8d0000000000000000000000006dc0a87638cd75cc700ccdb226c7ab6c054bc70b000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000e693603c9441f0e645af6a5898b76a60dbf757f400000000000000000000000000000000000000000000000000071afd498d0000
Deployed Bytecode
0x5f3560e01c60026013820660011b612d5801601e395f51565b63c05efa1581186100345734612d545760015460405260206040f35b63d9fad13e811861266f57602436103417612d54576004358060a01c612d545760405260036040516020525f5260405f205460605260206060f361266f565b63eb8acce6811861008f5734612d545760025460405260206040f35b636974af6981186100f357602436103417612d54576004358060a01c612d545760c0526100ba612c56565b60c0516002557fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a3360e05260c05161010052604060e0a1005b636e9bc3f6811861266f57602436103417612d5457610110612c56565b60055460c0526004356005557fddffc4d0c877393a9c5aa1caa6d000dd85fcd4f5b32ff2c8491d1737ab363e0460c05160e05260043561010052604060e0a10061266f565b6322221b0c81186101715734612d545760045460405260206040f35b63c09f3291811861266f5734612d545760085460405260206040f361266f565b6376369b6d811861266f5734612d545760055460405260206040f361266f565b63d8fe764d811861266f5734612d545760065460405260206040f361266f565b6310d418c281186101ed5734612d545760075460405260206040f35b6323fde8e281186102e05734612d5457600254331861021d5760085461021757602436181561021f565b5f61021f565b5f5b61027e5760076040527f496e76616c69640000000000000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b36602411612d54576020606052602060046080376060805160200360031b6020820151811c811b905090506040526040516008557f2700ed1ef9147da3f7fdcaae08cbe6d1c92ec7fa6bace169d9c49e398e3cb1ca60405160605260206060a1005b63c4ec2ff1811861266f57602436103417612d54576102fd612c56565b60075460c0526004356007557f4f0eeeb973d948a2b83d5d751d3373650b926bfc6b9f9ed579e3dbd48136635460c05160e05260043561010052604060e0a10061266f565b63fab4db8e811861266f57602436103417612d545760096004356020525f5260405f205f600b905b808301548160051b6040015260010181811861036a575050506101606040f361266f565b63795a0f2a811861266f5734612d5457600a5460405260206040f361266f565b63707c96ae811861266f576101c3361115612d54576004356004016008813511612d545780355f8160088111612d5457801561065a57905b61056081026106e0016105608202602086010180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d5457608083015260a08101358060a01c612d545760a083015260c08101358060a01c612d545760c083015260e08101358060a01c612d545760e08301526101008101358060a01c612d54576101008301526101208101358060a01c612d54576101208301526101408101358060a01c612d545761014083015261016082016101608201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0820160a082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505061014082016101408201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015250506101e082016101e0820180358252602081013560208301526040810135604083015260608101356060830152608081013560808301525050610280820161028082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505050506104808101356104808301526104a08101356104a08301526104c082016104c0820180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d54576080830152505050506001018181186103e6575b5050806106c05250506024358060a01c612d54576131e0526084358060a01c612d54576132005260a4356004016005813511612d5457803560208160051b018083613220375050505f54600214612d545760025f5560055461014435808202811583838304141715612d5457905090506132e052600754613300526020612d9e5f395f5163f4410236613340526131e051613360526020613340602461335c845afa610708573d5f5f3e3d5ffd5b60203d10612d5457613340518060a01c612d545761338052613380905051613320525f6133405234613360525f6106c05160088111612d54578015610d2957905b61056081026106e0016105606133806105608360045afa50505f6138e0525f6006905b8061390052613900516139005101600a036138e0526138e051600a8111612d545760051b61338001511561079f576107aa565b60010181811861076c575b50506131e0516138e051600a8111612d545760051b6133800151186107d0576001610814565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6138e051600a8111612d545760051b613380015118610812576020612d7e5f395f516131e0511815610814565b5f5b61087d57600a613900527f57726f6e672070617468000000000000000000000000000000000000000000006139205261390050613900518061392001601f825f031636823750506308c379a06138c05260206138e052601f19601f6139005101166044016138dcfd5b6138005161390052613900516108f257600d613920527f496e737566206465706f736974000000000000000000000000000000000000006139405261392050613920518061394001601f825f031636823750506308c379a06138e052602061390052601f19601f6139205101166044016138fcfd5b6020612d7e5f395f516131e05118610ad85773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61338051186109a7576139005161336051101561099557600d613920527f496e737566206465706f736974000000000000000000000000000000000000006139405261392050613920518061394001601f825f031636823750506308c379a06138e052602061390052601f19601f6139205101166044016138fcfd5b61390051613360510361336052610d04565b6133805160405233606052306080526139005160a0526109c561280b565b6020612d7e5f395f516133805118610a17576020612d7e5f395f51632e1a7d4d613920526139005161394052803b15612d54575f613920602461393c5f855af1610a11573d5f5f3e3d5ffd5b50610d04565b613380516040526020612dbe60603961390051608052610a35612671565b6020612dbe5f395f5163c872a3c56139205261016061394061016061338060045afa50610320613aa06103206134e060045afa5061390051613dc05261382051613de05261384051613e005261386051613e205261388051613e40526138a051613e60526138c051613e805230613ea052602061392061058461393c5f855af1610ac1573d5f5f3e3d5ffd5b60203d10612d545761392090505161390052610d04565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6133805118610c1c5761390051613360511015610b6957600d613920527f496e737566206465706f736974000000000000000000000000000000000000006139405261392050613920518061394001601f825f031636823750506308c379a06138e052602061390052601f19601f6139205101166044016138fcfd5b613900516133605103613360526020612dbe5f395f5163c872a3c56139205261016061394061016061338060045afa50610320613aa06103206134e060045afa5061390051613dc05261382051613de05261384051613e005261386051613e205261388051613e40526138a051613e60526138c051613e805230613ea052602061392061058461393c61390051855af1610c05573d5f5f3e3d5ffd5b60203d10612d545761392090505161390052610d04565b6133805160405233606052306080526139005160a052610c3a61280b565b6131e0516133805114610d0457613380516040526020612dbe60603961390051608052610c65612671565b6020612dbe5f395f5163c872a3c56139205261016061394061016061338060045afa50610320613aa06103206134e060045afa5061390051613dc05261382051613de05261384051613e005261386051613e205261388051613e40526138a051613e60526138c051613e805230613ea052602061392061058461393c5f855af1610cf1573d5f5f3e3d5ffd5b60203d10612d5457613920905051613900525b6133405161390051808201828110612d54579050905061334052600101818118610749575b50506132e0516133605111610daf576132e051613360511815610dc557600d613380527f496e737566206465706f736974000000000000000000000000000000000000006133a0526133805061338051806133a001601f825f031636823750506308c379a061334052602061336052601f19601f61338051011660440161335cfd610dc5565b5f5f5f5f6132e0516133605103335ff115612d54575b5f5f5f5f6132e0516004545ff115612d54575f613380526133005115610e1d57670de0b6b3a76400006133405161330051808202811583838304141715612d5457905090500461338052613380516133405103613340525b61334051610e8a57600d6133a0527f496e737566206465706f736974000000000000000000000000000000000000006133c0526133a0506133a051806133c001601f825f031636823750506308c379a061336052602061338052601f19601f6133a051011660440161337cfd5b6133805115610ed8576020612d7e5f395f516131e05118610ebc575f5f5f5f613380516006545ff115612d5457610ed8565b6131e05160405260065460605261338051608052610ed861273e565b600a546133a05260016133a05101600a556002610144351015610f6a576001610144351815610fdc5760136133c0527f57726f6e67206e756d62657220747261646573000000000000000000000000006133e0526133c0506133c051806133e001601f825f031636823750506308c379a06133805260206133a052601f19601f6133c051011660440161339cfd610fdc565b60096133a0516020525f5260405f203381556131e051600182015561014435613340510460028201556044356003820155606435600482015560c435600582015560e435600682015561010435600782015561012435600882015560016101443503600982015561016435600a820155505b6133a0516101605233610180526131e0516101a0526101443561334051046101c052604060446101e03761320051610220526132205160208160051b01806102408261322060045afa50505060c060c4610300376110386128e2565b60035f550061266f565b63fdca5e1f81186111e25760a436103417612d54576024358060a01c612d54576106c0526044356004016005813511612d5457803560208160051b0180836106e03750505061108f612c56565b60096004356020525f5260405f205f600b905b808301548160051b6107a001526001018181186110a2575050506064356108c051186110d25760643515156110d4565b5f5b61113d57600b610900527f57726f6e6720636f756e740000000000000000000000000000000000000000006109205261090050610900518061092001601f825f031636823750506308c379a06108c05260206108e052601f19601f6109005101166044016108dcfd5b600435610160526107a051610180526107c0516101a0526107e0516101c052610800516101e05261082051610200526106c051610220526106e05160208160051b0180610240826106e060045afa5050506108405161030052610860516103205261088051610340526108a05161036052606435610380526108e0516103a0526111c56128e2565b60016064350360096004356020525f5260405f2060098101905055005b637361564a811861125057602436103417612d54576004358060a01c612d545760c05261120d612c56565b60015460e05260c0516001557fb682667b5b9327acc3f181a08e32c75a75f74ecb054e108a9c7269f64920ab4a60e0516101005260c051610120526040610100a1005b63c98856aa811861266f57602436103417612d54576004358060a01c612d545760c05261127b612c56565b60045460e05260c0516004557f766266fd21d17d465fb39cab9d9ff8020a212598404ab12bfd59aa2de4dea6a260e0516101005260c051610120526040610100a10061266f565b634f884bc48118611a065761010436103417612d54576004356004016008813511612d545780355f8160088111612d5457801561132057905b8060051b6020850101358060a01c612d54578160051b606001526001018181186112fb575b50508060405250506024356004016008813511612d545780355f8160088111612d5457801561137157905b8060051b6020850101358060a01c612d54578160051b610180015260010181811861134b575b5050806101605250506044356004016008813511612d545780355f8160088111612d545780156113d957905b8060051b60208501013560208501016005813511612d5457803560208160051b0160c084026102a001818482375050505060010181811861139d575b5050806102805250506064356004016008813511612d545780355f8160088111612d5457801561167957905b61056081026108c0016105608202602086010180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d5457608083015260a08101358060a01c612d545760a083015260c08101358060a01c612d545760c083015260e08101358060a01c612d545760e08301526101008101358060a01c612d54576101008301526101208101358060a01c612d54576101208301526101408101358060a01c612d545761014083015261016082016101608201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0820160a082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505061014082016101408201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015250506101e082016101e0820180358252602081013560208301526040810135604083015260608101356060830152608081013560808301525050610280820161028082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505050506104808101356104808301526104a08101356104a08301526104c082016104c0820180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d5457608083015250505050600101818118611405575b5050806108a05250505f54600214612d545760025f5533156116fa5760096133c0527f6f6e6c79207669657700000000000000000000000000000000000000000000006133e0526133c0506133c051806133e001601f825f031636823750506308c379a06133805260206133a052601f19601f6133c051011660440161339cfd5b5f6133c0525f6008905b806134e0526040516134e0511061171a576119a3565b6134e051604051811015612d545760051b6060015163152f65cb6135205260406134e05161016051811015612d545760051b610180015161354052806135605260c06134e05161028051811015612d5457026102a00181613540015f82518083528060051b5f8260058111612d545780156117b057905b8060051b6020880101518160051b602088010152600101818118611791575b505082016020019150509050905081015050602061352061010461353c5f855af16117dd573d5f5f3e3d5ffd5b60203d10612d5457613520905051613500526020612dde5f395f5163095ea7b3613520526020612dbe6135403961350051613560526020613520604461353c5f855af161182c573d5f5f3e3d5ffd5b60203d10612d5457613520518060011c612d545761358052613580505060036134e051604051811015612d545760051b606001516020525f5260405f2054613520526133c05160078111612d54576020612dbe5f395f5163c872a3c5613540526105606134e0516108a051811015612d5457026108c0016101606135606101608360045afa50506105606134e0516108a051811015612d5457026108c001610160810190506103206136c06103208360045afa5050613500516139e0526105606134e0516108a051811015612d5457026108c0016104a08101905051613a00526105606134e0516108a051811015612d5457026108c0016104c0810190508051613a20526020810151613a40526040810151613a60526060810151613a80526080810151613aa0525061352051613ac052602061354061058461355c5f855af1611978573d5f5f3e3d5ffd5b60203d10612d54576135409050518160051b6133e00152600181016133c05250600101818118611704575b50506020806134e052806134e0015f6133c0518083528060051b5f8260088111612d545780156119ed57905b8060051b6133e001518160051b6020880101526001018181186119cf575b505082016020019150509050810190506134e060035f55f35b6330e59cbc811861266f57602436103417612d54576004358060a01c612d545760c052611a31612c56565b60065460e05260c0516006557f62415a60755d7d2d84ea1baece7480e6a431cf87cbbdfa07d5984b243bf61f3160e0516101005260c051610120526040610100a10061266f565b635a3aa92f81186125bc5761010436103417612d54576004356004016008813511612d545780355f8160088111612d54578015611ad657905b8060051b6020850101358060a01c612d54578160051b60600152600101818118611ab1575b50508060405250506024356004016008813511612d545780355f8160088111612d54578015611b2757905b8060051b6020850101358060a01c612d54578160051b6101800152600101818118611b01575b5050806101605250506044356004016008813511612d545780355f8160088111612d54578015611b8f57905b8060051b60208501013560208501016005813511612d5457803560208160051b0160c084026102a0018184823750505050600101818118611b53575b5050806102805250506064356004016008813511612d545780355f8160088111612d54578015611e2f57905b61056081026108c0016105608202602086010180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d5457608083015260a08101358060a01c612d545760a083015260c08101358060a01c612d545760c083015260e08101358060a01c612d545760e08301526101008101358060a01c612d54576101008301526101208101358060a01c612d54576101208301526101408101358060a01c612d545761014083015261016082016101608201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0820160a082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505061014082016101408201803582526020810135602083015260408101356040830152606081013560608301526080810135608083015250506101e082016101e0820180358252602081013560208301526040810135604083015260608101356060830152608081013560808301525050610280820161028082018035825260208101356020830152604081013560408301526060810135606083015260808101356080830152505050506104808101356104808301526104a08101356104a08301526104c082016104c0820180358060a01c612d5457825260208101358060a01c612d5457602083015260408101358060a01c612d5457604083015260608101358060a01c612d5457606083015260808101358060a01c612d5457608083015250505050600101818118611bbb575b5050806108a05250505f54600214612d545760025f556101605160405118611e71576102805160405118611e6b576108a0516040511815611e73565b5f611e73565b5f5b611edc57600a6133c0527f696e76616c6964617465000000000000000000000000000000000000000000006133e0526133c0506133c051806133e001601f825f031636823750506308c379a06133805260206133a052601f19601f6133c051011660440161339cfd5b600254331861226957600854366020602036030111612d545760206133c0526020602036036133e0376133c0805160200360031b6020820151811c811b905090501815611f8857600c613400527f556e617574686f72697a656400000000000000000000000000000000000000006134205261340050613400518061342001601f825f031636823750506308c379a06133c05260206133e052601f19601f6134005101166044016133dcfd5b5f6008905b806133c0526040516133c05110611fa357612262565b6133c051604051811015612d545760051b6060015163152f65cb6134005260406133c05161016051811015612d545760051b610180015161342052806134405260c06133c05161028051811015612d5457026102a00181613420015f82518083528060051b5f8260058111612d5457801561203957905b8060051b6020880101518160051b60208801015260010181811861201a575b505082016020019150509050905081015050602061340061010461341c5f855af1612066573d5f5f3e3d5ffd5b60203d10612d54576134009050516133e0526020612dde5f395f5163095ea7b3613400526020612dbe613420396133e051613440526020613400604461341c5f855af16120b5573d5f5f3e3d5ffd5b60203d10612d5457613400518060011c612d545761346052613460505060036133c051604051811015612d545760051b606001516020525f5260405f2054613400526020612dbe5f395f5163c872a3c5613420526105606133c0516108a051811015612d5457026108c0016101606134406101608360045afa50506105606133c0516108a051811015612d5457026108c001610160810190506103206135a06103208360045afa50506133e0516138c0526105606133c0516108a051811015612d5457026108c0016104a081019050516138e0526105606133c0516108a051811015612d5457026108c0016104c08101905080516139005260208101516139205260408101516139405260608101516139605260808101516139805250613400516139a052602061342061058461343c5f855af16121f5573d5f5f3e3d5ffd5b60203d10612d54576134209050516133e0527f4350b8e0a39c7d213449ee0370b6c829c017798307ae7aebc096e039fe5a96c761340051613420526133c051604051811015612d545760051b60600151613440526133e051613460526060613420a1600101818118611f8d575b50506125b6565b5f6008905b806133c0526040516133c05110612284576125b3565b60036133c051604051811015612d545760051b606001516020525f5260405f20546133e052336133e051181561231957600c613400527f556e617574686f72697a656400000000000000000000000000000000000000006134205261340050613400518061342001601f825f031636823750506308c379a06133c05260206133e052601f19601f6134005101166044016133dcfd5b6133c051604051811015612d545760051b6060015163152f65cb6134205260406133c05161016051811015612d545760051b610180015161344052806134605260c06133c05161028051811015612d5457026102a00181613440015f82518083528060051b5f8260058111612d545780156123af57905b8060051b6020880101518160051b602088010152600101818118612390575b505082016020019150509050905081015050602061342061010461343c5f855af16123dc573d5f5f3e3d5ffd5b60203d10612d5457613420905051613400526020612dde5f395f5163095ea7b3613420526020612dbe6134403961340051613460526020613420604461343c5f855af161242b573d5f5f3e3d5ffd5b60203d10612d5457613420518060011c612d54576134805261348050506020612dbe5f395f5163c872a3c5613420526105606133c0516108a051811015612d5457026108c0016101606134406101608360045afa50506105606133c0516108a051811015612d5457026108c001610160810190506103206135a06103208360045afa5050613400516138c0526105606133c0516108a051811015612d5457026108c0016104a081019050516138e0526105606133c0516108a051811015612d5457026108c0016104c081019050805161390052602081015161392052604081015161394052606081015161396052608081015161398052506133e0516139a052602061342061058461343c5f855af1612546573d5f5f3e3d5ffd5b60203d10612d5457613420905051613400527f4350b8e0a39c7d213449ee0370b6c829c017798307ae7aebc096e039fe5a96c76133e051613420526133c051604051811015612d545760051b606001516134405261340051613460526060613420a160010181811861226e575b50505b60035f55005b6331e658a5811861261157602436103417612d54576004358060a01c612d5457604052608060405163c19d93fb606052608060606004607c845afa612603573d5f5f3e3d5ffd5b60803d10612d545760609050f35b63e2d8ebee811861266f57602436103417612d54576004358060a01c612d54576040526020604051637633a22c606052602060606004607c845afa612658573d5f5f3e3d5ffd5b60203d10612d545760609050f361266f5661266f565b5b005b60405163095ea7b360a05260605160c05260805160e052602060a0604460bc5f855af16126a0573d5f5f3e3d5ffd5b3d6126b757803b15612d54576001610100526126cf565b60203d10612d545760a0518060011c612d5457610100525b61010090505161273c57600e610120527f4661696c656420617070726f76650000000000000000000000000000000000006101405261012050610120518061014001601f825f031636823750506308c379a060e052602061010052601f19601f61012051011660440160fcfd5b565b60405163a9059cbb60a05260605160c05260805160e052602060a0604460bc5f855af161276d573d5f5f3e3d5ffd5b3d61278457803b15612d545760016101005261279c565b60203d10612d545760a0518060011c612d5457610100525b61010090505161280957600f610120527f4661696c6564207472616e7366657200000000000000000000000000000000006101405261012050610120518061014001601f825f031636823750506308c379a060e052602061010052601f19601f61012051011660440160fcfd5b565b6040516323b872dd60c05260605160e0526080516101005260a05161012052602060c0606460dc5f855af1612842573d5f5f3e3d5ffd5b3d61285957803b15612d5457600161014052612871565b60203d10612d545760c0518060011c612d5457610140525b6101409050516128e0576013610160527f4661696c6564207472616e7366657246726f6d000000000000000000000000006101805261016050610160518061018001601f825f031636823750506308c379a061012052602061014052601f19601f61016051011660440161013cfd5b565b6007546103c0526020612d9e5f395f5163f4410236610400526101a051610420526020610400602461041c845afa61291c573d5f5f3e3d5ffd5b60203d10612d5457610400518060a01c612d5457610440526104409050516103e0525f610400526101c05115612c54576020612d7e5f395f516101a051186129fb576001546101c0516103e05161042052610420516104c0526020612d7e61044039610440516104e052610180516104605261046051610500526101a0516104805261048051610520526020612dde6104a0396104a0516105405260a06003833b035960018212612d545781600382873c8181018381856104c060045afa50508282018185f08015612d54579050905090509050905061040052612aaa565b6001546103e05161042052610420516104c0526020612d7e61044039610440516104e052610180516104605261046051610500526101a0516104805261048051610520526020612dde6104a0396104a0516105405260a06003823b035960018212612d545781600382863c8181018381856104c060045afa5050828201815ff08015612d54579050905090509050610400526101a051604052610400516060526101c051608052612aaa61273e565b6104005163bc61ea236104205260a06101c051610440526101e051610460526102005161048052610220516104a052806104c05280610440015f610240518083528060051b5f8260058111612d54578015612b1f57905b8060051b61026001518160051b602088010152600101818118612b01575b50508201602001915050905081015050803b15612d54575f61042061016461043c5f855af1612b50573d5f5f3e3d5ffd5b50610180516003610400516020525f5260405f20557fce57f2d99d307d406be6eb4085db6c3365221379b5e795cbc92fbd62e6206d2e6101e06101605161042052610180516104405261040051610460526101a051610480526101c0516104a0526101e0516104c052610200516104e05261030051610500526103205161052052610340516105405261036051610560526102205161058052806105a05280610420015f610240518083528060051b5f8260058111612d54578015612c2f57905b8060051b61026001518160051b602088010152600101818118612c11575b50508201602001915050905081019050610380516105c0526103a0516105e052610420a15b565b600254331815612cbb57600b6040527f4e6f7420636f6d7061737300000000000000000000000000000000000000000060605260405060405180606001601f825f031636823750506308c379a05f526020602052601f19601f6040510116604401601cfd5b366020602036030111612d545760206040526020602036036060376040805160200360031b6020820151811c811b905090506008541815612d5257600e6080527f496e76616c69642070616c6f6d6100000000000000000000000000000000000060a0526080506080518060a001601f825f031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b565b5f80fd0018266e03ae266e266e01d1266e01b1266e266e1042038e0073034212c2266e019101551a78000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000c9332fdcb1c491dcc683bae86fe3cb70360738bc000000000000000000000000f0d4c12a5768d806021f80a262b4d39d26c58b8d000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003047241b13d086de20f8c8675fa454f6120063c6000000000000000000000000b01cc20fe02723d43822819ec57fcbadf31f1537000000000000000000000000c9332fdcb1c491dcc683bae86fe3cb70360738bc000000000000000000000000f0d4c12a5768d806021f80a262b4d39d26c58b8d0000000000000000000000006dc0a87638cd75cc700ccdb226c7ab6c054bc70b000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000e693603c9441f0e645af6a5898b76a60dbf757f400000000000000000000000000000000000000000000000000071afd498d0000
-----Decoded View---------------
Arg [0] : _blueprint (address): 0x3047241b13d086dE20F8c8675Fa454F6120063c6
Arg [1] : _compass (address): 0xB01cC20Fe02723d43822819ec57fCbadf31f1537
Arg [2] : controller_factory (address): 0xC9332fdCB1C491Dcc683bAe86Fe3cb70360738BC
Arg [3] : router (address): 0xF0d4c12A5768D806021F80a262B4d39d26C58b8D
Arg [4] : _refund_wallet (address): 0x6dc0A87638CD75Cc700cCdB226c7ab6C054bc70b
Arg [5] : _gas_fee (uint256): 100000000000000000
Arg [6] : _service_fee_collector (address): 0xe693603C9441f0e645Af6A5898b76a60dbf757F4
Arg [7] : _service_fee (uint256): 2000000000000000
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000003047241b13d086de20f8c8675fa454f6120063c6
Arg [1] : 000000000000000000000000b01cc20fe02723d43822819ec57fcbadf31f1537
Arg [2] : 000000000000000000000000c9332fdcb1c491dcc683bae86fe3cb70360738bc
Arg [3] : 000000000000000000000000f0d4c12a5768d806021f80a262b4d39d26c58b8d
Arg [4] : 0000000000000000000000006dc0a87638cd75cc700ccdb226c7ab6c054bc70b
Arg [5] : 000000000000000000000000000000000000000000000000016345785d8a0000
Arg [6] : 000000000000000000000000e693603c9441f0e645af6a5898b76a60dbf757f4
Arg [7] : 00000000000000000000000000000000000000000000000000071afd498d0000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.