Source Code
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xF5cefa8b...B7cb2796B in Sonic Mainnet The constructor portion of the code might be different and could alter the actual behaviour of the contract
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
0x346100495760206106de5f395f518060a01c6100495760405260206106fe5f395f518060a01c610049576060526040515f5560605160015561065a61004d6100003961065a610000f35b5f80fd5f3560e01c6002600c820660011b61064201601e395f51565b63f0579235811861008b5760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e5761014052610053610532565b6101205163cc1891c7610160526101405161018052803b1561063e575f610160602461017c5f855af1610088573d5f5f3e3d5ffd5b50005b632c2ca161811861052e5760643610341761063e576004358060a01c61063e57610120526024358060a01c61063e57610140526100c6610532565b6101205163602b62d461018052610140516101a0526020610180602461019c845afa6100f4573d5f5f3e3d5ffd5b60203d1061063e576101809050516101605261016051604435111561018b576020806101e052601c610180527f43616e206f6e6c79207265647563652064656274206365696c696e67000000006101a052610180816101e001603c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06101c052806004016101dcfd5b6101205163b933c50a61018052610140516101a0526044356101c052803b1561063e575f610180604461019c5f855af16101c7573d5f5f3e3d5ffd5b50005b63a90e562b811861022d5760443610341761063e576004358060a01c61063e57610120526101f6610532565b61012051634189617d6101405260243561016052803b1561063e575f610140602461015c5f855af161022a573d5f5f3e3d5ffd5b50005b6371248623811861052e5760243610341761063e576004358060a01c61063e57610100526102596105c2565b61010051600155005b63bd5bd55881186102d55760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e576101405261029d610532565b610120516381d2f1b7610160526101405161018052803b1561063e575f610160602461017c5f855af16102d2573d5f5f3e3d5ffd5b50005b634e8cef1c811861052e5760443610341761063e576004358060a01c61063e57610100526024358060a01c61063e57610120526103106105c2565b6101005163e9333fab610140526101205161016052803b1561063e575f610140602461015c5f855af1610345573d5f5f3e3d5ffd5b50005b6325d7c640811861052e5760643610341761063e576004358060a01c61063e5761012052610374610532565b61012051632a0c3586610140526040602461016037803b1561063e575f610140604461015c5f855af16103a9573d5f5f3e3d5ffd5b50005b63251c5b16811861052e5760443610341761063e576004358060a01c61063e57610120526103d8610532565b6101205163a5b4804a6101405260243561016052803b1561063e575f610140602461015c5f855af161040c573d5f5f3e3d5ffd5b50005b631cff79cd811861052e57604336111561063e576004358060a01c61063e57610100526024356004018035610400811161063e5750602081350180826101203750506104596105c2565b60208061096052610100515a6101205061040061056061012051610140348686f19050905061048a573d5f5f3e3d5ffd5b3d61040081183d61040010021861054052610540816109600160208251018083835e508051806020830101601f825f03163682375050601f19601f825160200101169050905081019050610960f35b63744c1c9f811861052e573461063e576104f1610532565b5f600155005b634162169f811861052e573461063e575f5460405260206040f35b63caa6fea4811861052e573461063e5760015460405260206040f35b5f5ffd5b335f548118610542576001610549565b6001548118155b90506105c05760208060c052600c6060527f556e617574686f72697a6564000000000000000000000000000000000000000060805260608160c001602c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060a0528060040160bcfd5b565b5f5433181561063c5760208060a05260086040527f4f6e6c792044414f00000000000000000000000000000000000000000000000060605260408160a001602882825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060805280600401609cfd5b565b5f80fd05120018052e01ca0348052e052e04d90262040f03ac04f7855820994441b0a51efa1782f4af1fafc35f97eac9bafe4e5a62d7fd250ce05cd8356e19065a81181800a16576797065728300040300370000000000000000000000007be6bd57a319a7180f71552e58c9d32da32b6f960000000000000000000000006d447e544d01a59cb0774763bf15526574cfffed
Deployed Bytecode
0x5f3560e01c6002600c820660011b61064201601e395f51565b63f0579235811861008b5760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e5761014052610053610532565b6101205163cc1891c7610160526101405161018052803b1561063e575f610160602461017c5f855af1610088573d5f5f3e3d5ffd5b50005b632c2ca161811861052e5760643610341761063e576004358060a01c61063e57610120526024358060a01c61063e57610140526100c6610532565b6101205163602b62d461018052610140516101a0526020610180602461019c845afa6100f4573d5f5f3e3d5ffd5b60203d1061063e576101809050516101605261016051604435111561018b576020806101e052601c610180527f43616e206f6e6c79207265647563652064656274206365696c696e67000000006101a052610180816101e001603c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06101c052806004016101dcfd5b6101205163b933c50a61018052610140516101a0526044356101c052803b1561063e575f610180604461019c5f855af16101c7573d5f5f3e3d5ffd5b50005b63a90e562b811861022d5760443610341761063e576004358060a01c61063e57610120526101f6610532565b61012051634189617d6101405260243561016052803b1561063e575f610140602461015c5f855af161022a573d5f5f3e3d5ffd5b50005b6371248623811861052e5760243610341761063e576004358060a01c61063e57610100526102596105c2565b61010051600155005b63bd5bd55881186102d55760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e576101405261029d610532565b610120516381d2f1b7610160526101405161018052803b1561063e575f610160602461017c5f855af16102d2573d5f5f3e3d5ffd5b50005b634e8cef1c811861052e5760443610341761063e576004358060a01c61063e57610100526024358060a01c61063e57610120526103106105c2565b6101005163e9333fab610140526101205161016052803b1561063e575f610140602461015c5f855af1610345573d5f5f3e3d5ffd5b50005b6325d7c640811861052e5760643610341761063e576004358060a01c61063e5761012052610374610532565b61012051632a0c3586610140526040602461016037803b1561063e575f610140604461015c5f855af16103a9573d5f5f3e3d5ffd5b50005b63251c5b16811861052e5760443610341761063e576004358060a01c61063e57610120526103d8610532565b6101205163a5b4804a6101405260243561016052803b1561063e575f610140602461015c5f855af161040c573d5f5f3e3d5ffd5b50005b631cff79cd811861052e57604336111561063e576004358060a01c61063e57610100526024356004018035610400811161063e5750602081350180826101203750506104596105c2565b60208061096052610100515a6101205061040061056061012051610140348686f19050905061048a573d5f5f3e3d5ffd5b3d61040081183d61040010021861054052610540816109600160208251018083835e508051806020830101601f825f03163682375050601f19601f825160200101169050905081019050610960f35b63744c1c9f811861052e573461063e576104f1610532565b5f600155005b634162169f811861052e573461063e575f5460405260206040f35b63caa6fea4811861052e573461063e5760015460405260206040f35b5f5ffd5b335f548118610542576001610549565b6001548118155b90506105c05760208060c052600c6060527f556e617574686f72697a6564000000000000000000000000000000000000000060805260608160c001602c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060a0528060040160bcfd5b565b5f5433181561063c5760208060a05260086040527f4f6e6c792044414f00000000000000000000000000000000000000000000000060605260408160a001602882825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060805280600401609cfd5b565b5f80fd05120018052e01ca0348052e052e04d90262040f03ac04f7
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
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.