FRAX Price: $0.79 (-6.04%)

Contract

0xF5cefa8b5a4C8B958d1306A2d905b5dB7cb2796B

Overview

FRAX Balance | FXTL Balance

0 FRAX | 19 FXTL

FRAX Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Amount:Between 1-10k
Reset Filter

Transaction Hash
Block
From
To

There are no matching entries

2 Token Transfers found.

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

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

Optimization Enabled:
N/A

Other Settings:
Default EvmVersion, None license

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

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":[]}]

0x346100495760206106de5f395f518060a01c6100495760405260206106fe5f395f518060a01c610049576060526040515f5560605160015561065a61004d6100003961065a610000f35b5f80fd5f3560e01c6002600c820660011b61064201601e395f51565b63f0579235811861008b5760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e5761014052610053610532565b6101205163cc1891c7610160526101405161018052803b1561063e575f610160602461017c5f855af1610088573d5f5f3e3d5ffd5b50005b632c2ca161811861052e5760643610341761063e576004358060a01c61063e57610120526024358060a01c61063e57610140526100c6610532565b6101205163602b62d461018052610140516101a0526020610180602461019c845afa6100f4573d5f5f3e3d5ffd5b60203d1061063e576101809050516101605261016051604435111561018b576020806101e052601c610180527f43616e206f6e6c79207265647563652064656274206365696c696e67000000006101a052610180816101e001603c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06101c052806004016101dcfd5b6101205163b933c50a61018052610140516101a0526044356101c052803b1561063e575f610180604461019c5f855af16101c7573d5f5f3e3d5ffd5b50005b63a90e562b811861022d5760443610341761063e576004358060a01c61063e57610120526101f6610532565b61012051634189617d6101405260243561016052803b1561063e575f610140602461015c5f855af161022a573d5f5f3e3d5ffd5b50005b6371248623811861052e5760243610341761063e576004358060a01c61063e57610100526102596105c2565b61010051600155005b63bd5bd55881186102d55760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e576101405261029d610532565b610120516381d2f1b7610160526101405161018052803b1561063e575f610160602461017c5f855af16102d2573d5f5f3e3d5ffd5b50005b634e8cef1c811861052e5760443610341761063e576004358060a01c61063e57610100526024358060a01c61063e57610120526103106105c2565b6101005163e9333fab610140526101205161016052803b1561063e575f610140602461015c5f855af1610345573d5f5f3e3d5ffd5b50005b6325d7c640811861052e5760643610341761063e576004358060a01c61063e5761012052610374610532565b61012051632a0c3586610140526040602461016037803b1561063e575f610140604461015c5f855af16103a9573d5f5f3e3d5ffd5b50005b63251c5b16811861052e5760443610341761063e576004358060a01c61063e57610120526103d8610532565b6101205163a5b4804a6101405260243561016052803b1561063e575f610140602461015c5f855af161040c573d5f5f3e3d5ffd5b50005b631cff79cd811861052e57604336111561063e576004358060a01c61063e57610100526024356004018035610400811161063e5750602081350180826101203750506104596105c2565b60208061096052610100515a6101205061040061056061012051610140348686f19050905061048a573d5f5f3e3d5ffd5b3d61040081183d61040010021861054052610540816109600160208251018083835e508051806020830101601f825f03163682375050601f19601f825160200101169050905081019050610960f35b63744c1c9f811861052e573461063e576104f1610532565b5f600155005b634162169f811861052e573461063e575f5460405260206040f35b63caa6fea4811861052e573461063e5760015460405260206040f35b5f5ffd5b335f548118610542576001610549565b6001548118155b90506105c05760208060c052600c6060527f556e617574686f72697a6564000000000000000000000000000000000000000060805260608160c001602c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060a0528060040160bcfd5b565b5f5433181561063c5760208060a05260086040527f4f6e6c792044414f00000000000000000000000000000000000000000000000060605260408160a001602882825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060805280600401609cfd5b565b5f80fd05120018052e01ca0348052e052e04d90262040f03ac04f7855820994441b0a51efa1782f4af1fafc35f97eac9bafe4e5a62d7fd250ce05cd8356e19065a81181800a16576797065728300040300370000000000000000000000004bbdfed5696b3a8f6b3813506b5389959c5cdc570000000000000000000000006d447e544d01a59cb0774763bf15526574cfffed

Deployed Bytecode

0x5f3560e01c6002600c820660011b61064201601e395f51565b63f0579235811861008b5760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e5761014052610053610532565b6101205163cc1891c7610160526101405161018052803b1561063e575f610160602461017c5f855af1610088573d5f5f3e3d5ffd5b50005b632c2ca161811861052e5760643610341761063e576004358060a01c61063e57610120526024358060a01c61063e57610140526100c6610532565b6101205163602b62d461018052610140516101a0526020610180602461019c845afa6100f4573d5f5f3e3d5ffd5b60203d1061063e576101809050516101605261016051604435111561018b576020806101e052601c610180527f43616e206f6e6c79207265647563652064656274206365696c696e67000000006101a052610180816101e001603c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06101c052806004016101dcfd5b6101205163b933c50a61018052610140516101a0526044356101c052803b1561063e575f610180604461019c5f855af16101c7573d5f5f3e3d5ffd5b50005b63a90e562b811861022d5760443610341761063e576004358060a01c61063e57610120526101f6610532565b61012051634189617d6101405260243561016052803b1561063e575f610140602461015c5f855af161022a573d5f5f3e3d5ffd5b50005b6371248623811861052e5760243610341761063e576004358060a01c61063e57610100526102596105c2565b61010051600155005b63bd5bd55881186102d55760443610341761063e576004358060a01c61063e57610120526024358060a01c61063e576101405261029d610532565b610120516381d2f1b7610160526101405161018052803b1561063e575f610160602461017c5f855af16102d2573d5f5f3e3d5ffd5b50005b634e8cef1c811861052e5760443610341761063e576004358060a01c61063e57610100526024358060a01c61063e57610120526103106105c2565b6101005163e9333fab610140526101205161016052803b1561063e575f610140602461015c5f855af1610345573d5f5f3e3d5ffd5b50005b6325d7c640811861052e5760643610341761063e576004358060a01c61063e5761012052610374610532565b61012051632a0c3586610140526040602461016037803b1561063e575f610140604461015c5f855af16103a9573d5f5f3e3d5ffd5b50005b63251c5b16811861052e5760443610341761063e576004358060a01c61063e57610120526103d8610532565b6101205163a5b4804a6101405260243561016052803b1561063e575f610140602461015c5f855af161040c573d5f5f3e3d5ffd5b50005b631cff79cd811861052e57604336111561063e576004358060a01c61063e57610100526024356004018035610400811161063e5750602081350180826101203750506104596105c2565b60208061096052610100515a6101205061040061056061012051610140348686f19050905061048a573d5f5f3e3d5ffd5b3d61040081183d61040010021861054052610540816109600160208251018083835e508051806020830101601f825f03163682375050601f19601f825160200101169050905081019050610960f35b63744c1c9f811861052e573461063e576104f1610532565b5f600155005b634162169f811861052e573461063e575f5460405260206040f35b63caa6fea4811861052e573461063e5760015460405260206040f35b5f5ffd5b335f548118610542576001610549565b6001548118155b90506105c05760208060c052600c6060527f556e617574686f72697a6564000000000000000000000000000000000000000060805260608160c001602c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060a0528060040160bcfd5b565b5f5433181561063c5760208060a05260086040527f4f6e6c792044414f00000000000000000000000000000000000000000000000060605260408160a001602882825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060805280600401609cfd5b565b5f80fd05120018052e01ca0348052e052e04d90262040f03ac04f7

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.