Source Code
Overview
S Balance
S Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.4.3
Contract Source Code (Vyper language format)
# pragma version 0.4.3
dao: public(address)
emergency: public(address)
interface IController:
def set_callback(_cb: address): nonpayable
def set_amm_fee(_fee: uint256): nonpayable
def set_amm_admin_fee(_fee: uint256): nonpayable
def set_monetary_policy(_monetary_policy: address): nonpayable
def set_borrowing_discounts(_loan_discount: uint256, _liquidation_discount: uint256): nonpayable
interface IFactory:
def set_admin(admin: address): nonpayable
def set_debt_ceiling(_to: address, debt_ceiling: uint256): nonpayable
def debt_ceiling(_to: address) -> uint256: view
MAX_CALLDATA_SIZE: constant(uint256) = 1024
MAX_OUTSIZE: constant(uint256) = 1024
@deploy
def __init__(_dao: address, _emergency: address):
self.dao = _dao
self.emergency = _emergency
@internal
def _check_authorized():
assert msg.sender in [self.dao, self.emergency], "Unauthorized"
@internal
def _check_dao():
assert msg.sender == self.dao, "Only DAO"
@external
def set_callback(_controller: IController, _cb: address):
self._check_authorized()
extcall _controller.set_callback(_cb)
@external
def set_amm_fee(_controller: IController, _fee: uint256):
self._check_authorized()
extcall _controller.set_amm_fee(_fee)
@external
def set_monetary_policy(_controller: IController, _monetary_policy: address):
self._check_authorized()
extcall _controller.set_monetary_policy(_monetary_policy)
@external
def set_borrowing_discounts(_controller: IController, _loan_discount: uint256, _liquidation_discount: uint256):
self._check_authorized()
extcall _controller.set_borrowing_discounts(_loan_discount, _liquidation_discount)
@external
def set_admin_fee(_controller: IController, _fee: uint256):
self._check_authorized()
extcall _controller.set_amm_admin_fee(_fee)
@external
def reduce_debt_ceiling(_factory: IFactory, _to: address, _amount: uint256):
# In practice there's only one factory where this matters
# Did this for convenience on the caller side
self._check_authorized()
current_debt_ceiling: uint256 = staticcall _factory.debt_ceiling(_to)
assert _amount <= current_debt_ceiling, "Can only reduce debt ceiling"
extcall _factory.set_debt_ceiling(_to, _amount)
@external
@payable
def execute(_target: address, _calldata: Bytes[MAX_CALLDATA_SIZE]) -> Bytes[MAX_OUTSIZE]:
self._check_dao()
return raw_call(
_target,
_calldata,
value=msg.value,
max_outsize=MAX_OUTSIZE
)
@external
def transfer_ownership(_factory: IFactory, _owner: address):
self._check_dao()
extcall _factory.set_admin(_owner)
@external
def set_emergency(_emergency: address):
self._check_dao()
self.emergency = _emergency
@external
def remove_emergency():
"""
Useful in case of compromise of the emergency address
"""
self._check_authorized()
self.emergency = empty(address)Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"stateMutability":"nonpayable","type":"function","name":"set_callback","inputs":[{"name":"_controller","type":"address"},{"name":"_cb","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_amm_fee","inputs":[{"name":"_controller","type":"address"},{"name":"_fee","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_monetary_policy","inputs":[{"name":"_controller","type":"address"},{"name":"_monetary_policy","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_borrowing_discounts","inputs":[{"name":"_controller","type":"address"},{"name":"_loan_discount","type":"uint256"},{"name":"_liquidation_discount","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_admin_fee","inputs":[{"name":"_controller","type":"address"},{"name":"_fee","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"reduce_debt_ceiling","inputs":[{"name":"_factory","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"outputs":[]},{"stateMutability":"payable","type":"function","name":"execute","inputs":[{"name":"_target","type":"address"},{"name":"_calldata","type":"bytes"}],"outputs":[{"name":"","type":"bytes"}]},{"stateMutability":"nonpayable","type":"function","name":"transfer_ownership","inputs":[{"name":"_factory","type":"address"},{"name":"_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_emergency","inputs":[{"name":"_emergency","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"remove_emergency","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"dao","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"emergency","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_dao","type":"address"},{"name":"_emergency","type":"address"}],"outputs":[]}]Contract Creation Code
346100495760206106de5f395f518060a01c6100495760405260206106fe5f395f518060a01c610049576060526040515f5560605160015561065a61004d6100003961065a610000f35b5f80fd5f3560e01c6002600c820660011b61064201601e395f51565b63f0579235811861008b5760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e5761014052610053610532565b6101205163cc1891c7610160526101405161018052803b1561063e575f610160602461017c5f855af1610088573d5f5f3e3d5ffd5b50005b632c2ca161811861052e5760643610341761063e576004358060a01c61063e57610120526024358060a01c61063e57610140526100c6610532565b6101205163602b62d461018052610140516101a0526020610180602461019c845afa6100f4573d5f5f3e3d5ffd5b60203d1061063e576101809050516101605261016051604435111561018b576020806101e052601c610180527f43616e206f6e6c79207265647563652064656274206365696c696e67000000006101a052610180816101e001603c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06101c052806004016101dcfd5b6101205163b933c50a61018052610140516101a0526044356101c052803b1561063e575f610180604461019c5f855af16101c7573d5f5f3e3d5ffd5b50005b63a90e562b811861022d5760443610341761063e576004358060a01c61063e57610120526101f6610532565b61012051634189617d6101405260243561016052803b1561063e575f610140602461015c5f855af161022a573d5f5f3e3d5ffd5b50005b6371248623811861052e5760243610341761063e576004358060a01c61063e57610100526102596105c2565b61010051600155005b63bd5bd55881186102d55760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e576101405261029d610532565b610120516381d2f1b7610160526101405161018052803b1561063e575f610160602461017c5f855af16102d2573d5f5f3e3d5ffd5b50005b634e8cef1c811861052e5760443610341761063e576004358060a01c61063e57610100526024358060a01c61063e57610120526103106105c2565b6101005163e9333fab610140526101205161016052803b1561063e575f610140602461015c5f855af1610345573d5f5f3e3d5ffd5b50005b6325d7c640811861052e5760643610341761063e576004358060a01c61063e5761012052610374610532565b61012051632a0c3586610140526040602461016037803b1561063e575f610140604461015c5f855af16103a9573d5f5f3e3d5ffd5b50005b63251c5b16811861052e5760443610341761063e576004358060a01c61063e57610120526103d8610532565b6101205163a5b4804a6101405260243561016052803b1561063e575f610140602461015c5f855af161040c573d5f5f3e3d5ffd5b50005b631cff79cd811861052e57604336111561063e576004358060a01c61063e57610100526024356004018035610400811161063e5750602081350180826101203750506104596105c2565b60208061096052610100515a6101205061040061056061012051610140348686f19050905061048a573d5f5f3e3d5ffd5b3d61040081183d61040010021861054052610540816109600160208251018083835e508051806020830101601f825f03163682375050601f19601f825160200101169050905081019050610960f35b63744c1c9f811861052e573461063e576104f1610532565b5f600155005b634162169f811861052e573461063e575f5460405260206040f35b63caa6fea4811861052e573461063e5760015460405260206040f35b5f5ffd5b335f548118610542576001610549565b6001548118155b90506105c05760208060c052600c6060527f556e617574686f72697a6564000000000000000000000000000000000000000060805260608160c001602c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060a0528060040160bcfd5b565b5f5433181561063c5760208060a05260086040527f4f6e6c792044414f00000000000000000000000000000000000000000000000060605260408160a001602882825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060805280600401609cfd5b565b5f80fd05120018052e01ca0348052e052e04d90262040f03ac04f7855820994441b0a51efa1782f4af1fafc35f97eac9bafe4e5a62d7fd250ce05cd8356e19065a81181800a16576797065728300040300370000000000000000000000006c9578402a3ace046a12839f45f84aa5448e9c300000000000000000000000006d447e544d01a59cb0774763bf15526574cfffed
Deployed Bytecode
0x5f3560e01c6002600c820660011b61064201601e395f51565b63f0579235811861008b5760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e5761014052610053610532565b6101205163cc1891c7610160526101405161018052803b1561063e575f610160602461017c5f855af1610088573d5f5f3e3d5ffd5b50005b632c2ca161811861052e5760643610341761063e576004358060a01c61063e57610120526024358060a01c61063e57610140526100c6610532565b6101205163602b62d461018052610140516101a0526020610180602461019c845afa6100f4573d5f5f3e3d5ffd5b60203d1061063e576101809050516101605261016051604435111561018b576020806101e052601c610180527f43616e206f6e6c79207265647563652064656274206365696c696e67000000006101a052610180816101e001603c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06101c052806004016101dcfd5b6101205163b933c50a61018052610140516101a0526044356101c052803b1561063e575f610180604461019c5f855af16101c7573d5f5f3e3d5ffd5b50005b63a90e562b811861022d5760443610341761063e576004358060a01c61063e57610120526101f6610532565b61012051634189617d6101405260243561016052803b1561063e575f610140602461015c5f855af161022a573d5f5f3e3d5ffd5b50005b6371248623811861052e5760243610341761063e576004358060a01c61063e57610100526102596105c2565b61010051600155005b63bd5bd55881186102d55760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e576101405261029d610532565b610120516381d2f1b7610160526101405161018052803b1561063e575f610160602461017c5f855af16102d2573d5f5f3e3d5ffd5b50005b634e8cef1c811861052e5760443610341761063e576004358060a01c61063e57610100526024358060a01c61063e57610120526103106105c2565b6101005163e9333fab610140526101205161016052803b1561063e575f610140602461015c5f855af1610345573d5f5f3e3d5ffd5b50005b6325d7c640811861052e5760643610341761063e576004358060a01c61063e5761012052610374610532565b61012051632a0c3586610140526040602461016037803b1561063e575f610140604461015c5f855af16103a9573d5f5f3e3d5ffd5b50005b63251c5b16811861052e5760443610341761063e576004358060a01c61063e57610120526103d8610532565b6101205163a5b4804a6101405260243561016052803b1561063e575f610140602461015c5f855af161040c573d5f5f3e3d5ffd5b50005b631cff79cd811861052e57604336111561063e576004358060a01c61063e57610100526024356004018035610400811161063e5750602081350180826101203750506104596105c2565b60208061096052610100515a6101205061040061056061012051610140348686f19050905061048a573d5f5f3e3d5ffd5b3d61040081183d61040010021861054052610540816109600160208251018083835e508051806020830101601f825f03163682375050601f19601f825160200101169050905081019050610960f35b63744c1c9f811861052e573461063e576104f1610532565b5f600155005b634162169f811861052e573461063e575f5460405260206040f35b63caa6fea4811861052e573461063e5760015460405260206040f35b5f5ffd5b335f548118610542576001610549565b6001548118155b90506105c05760208060c052600c6060527f556e617574686f72697a6564000000000000000000000000000000000000000060805260608160c001602c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060a0528060040160bcfd5b565b5f5433181561063c5760208060a05260086040527f4f6e6c792044414f00000000000000000000000000000000000000000000000060605260408160a001602882825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060805280600401609cfd5b565b5f80fd05120018052e01ca0348052e052e04d90262040f03ac04f7
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006c9578402a3ace046a12839f45f84aa5448e9c300000000000000000000000006d447e544d01a59cb0774763bf15526574cfffed
-----Decoded View---------------
Arg [0] : _dao (address): 0x6c9578402A3ace046A12839f45F84Aa5448E9c30
Arg [1] : _emergency (address): 0x6d447e544D01a59cb0774763bf15526574CffFeD
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c9578402a3ace046a12839f45f84aa5448e9c30
Arg [1] : 0000000000000000000000006d447e544d01a59cb0774763bf15526574cfffed
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in S
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.