ETH Price: $3,037.33 (+2.58%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set New Admin133265662021-09-30 10:36:551382 days ago1632998215IN
0x90e0f42F...E4398B75f
0 ETH0.0015656455.56842838

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AddressRegistry

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 25000 runs

Other Settings:
default evmVersion
//██████╗  █████╗ ██╗      █████╗ ██████╗ ██╗███╗   ██╗
//██╔══██╗██╔══██╗██║     ██╔══██╗██╔══██╗██║████╗  ██║
//██████╔╝███████║██║     ███████║██║  ██║██║██╔██╗ ██║
//██╔═══╝ ██╔══██║██║     ██╔══██║██║  ██║██║██║╚██╗██║
//██║     ██║  ██║███████╗██║  ██║██████╔╝██║██║ ╚████║
//╚═╝     ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚═╝╚═╝  ╚═══╝
                                                     

pragma solidity ^0.7.6;
//SPDX-License-Identifier: MIT


import "./utils/Admin.sol";

/** @title Paladin AddressRegistry  */
/// @author Paladin
contract AddressRegistry is Admin {

    address private controller;

    address private loanToken;

    //underlying -> palPool
    mapping(address => address) private palPools;

    //underlying -> palToken
    mapping(address => address) private palTokens;

    //palPool -> palToken
    mapping(address => address) private palTokensByPool;



    constructor(
        address _controller,
        address _loanToken,
        address[] memory _underlyings,
        address[] memory _pools,
        address[] memory _tokens
    ) {
        admin = msg.sender;

        controller = _controller;
        loanToken = _loanToken;

        for(uint i = 0; i < _pools.length; i++){
            palPools[_underlyings[i]] = _pools[i];
            palTokens[_underlyings[i]] = _tokens[i];
            palTokensByPool[_pools[i]] = _tokens[i];
        }
    }


    /**
    * @notice Get the Paladin controller address
    * @return address : address of the controller
    */
    function getController() external view returns(address){
        return controller;
    }

    /**
    * @notice Get the PalLoanToken contract address
    * @return address : address of the PalLoanToken contract
    */
    function getPalLoanToken() external view returns(address){
        return loanToken;
    }

    /**
    * @notice Return the PalPool linked to a given ERC20 token
    * @param _underlying Address of the ERC20 underlying for the PalPool
    * @return address : address of the PalPool
    */
    function getPool(address _underlying) external view returns(address){
        return palPools[_underlying];
    }

    /**
    * @notice Return the PalToken linked to a given ERC20 token
    * @param _underlying Address of the ERC20 underlying for the PalToken
    * @return address : address of the PalToken
    */
    function getToken(address _underlying) external view returns(address){
        return palTokens[_underlying];
    }

    /**
    * @notice Return the PalToken linked to a given PalPool
    * @param _pool Address of the PalToken linked to the PalPool
    * @return address : address of the PalToken
    */
    function getTokenByPool(address _pool) external view returns(address){
        return palTokensByPool[_pool];
    }

    /**
    * @notice Update the Paladin Controller address
    * @param _newAddress Address of the new Controller
    */
    function _setController(address _newAddress) external adminOnly {
        controller = _newAddress;
    }

    /**
    * @notice Add a new Pool to the Registry
    * @dev Admin fucntion : Add a new PalPool & PalToken in the registry
    * @param _underlying Pool underlying ERC20 address
    * @param _pool PalPool address
    * @param _token PalToken address
    */
    function _setPool(address _underlying, address _pool, address _token) external adminOnly {
        palPools[_underlying] = _pool;
        palTokens[_underlying] = _token;
        palTokensByPool[_pool] = _token;
    }

}

pragma solidity ^0.7.6;
//SPDX-License-Identifier: MIT


/** @title Admin contract  */
/// @author Paladin
contract Admin {

    /** @notice (Admin) Event when the contract admin is updated */
    event NewAdmin(address oldAdmin, address newAdmin);

    /** @dev Admin address for this contract */
    address payable internal admin;
    
    modifier adminOnly() {
        //allows only the admin of this contract to call the function
        require(msg.sender == admin, '1');
        _;
    }

        /**
    * @notice Set a new Admin
    * @dev Changes the address for the admin parameter
    * @param _newAdmin address of the new Controller Admin
    */
    function setNewAdmin(address payable _newAdmin) external adminOnly {
        address _oldAdmin = admin;
        admin = _newAdmin;

        emit NewAdmin(_oldAdmin, _newAdmin);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 25000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_controller","type":"address"},{"internalType":"address","name":"_loanToken","type":"address"},{"internalType":"address[]","name":"_underlyings","type":"address[]"},{"internalType":"address[]","name":"_pools","type":"address[]"},{"internalType":"address[]","name":"_tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"_setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"name":"_setPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPalLoanToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_underlying","type":"address"}],"name":"getPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_underlying","type":"address"}],"name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"name":"getTokenByPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newAdmin","type":"address"}],"name":"setNewAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405161095b38038061095b833981810160405260a081101561003357600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005e57600080fd5b90830190602082018581111561007357600080fd5b825186602082028301116401000000008211171561009057600080fd5b82525081516020918201928201910280838360005b838110156100bd5781810151838201526020016100a5565b50505050905001604052602001805160405193929190846401000000008211156100e657600080fd5b9083019060208201858111156100fb57600080fd5b825186602082028301116401000000008211171561011857600080fd5b82525081516020918201928201910280838360005b8381101561014557818101518382015260200161012d565b505050509050016040526020018051604051939291908464010000000082111561016e57600080fd5b90830190602082018581111561018357600080fd5b82518660208202830111640100000000821117156101a057600080fd5b82525081516020918201928201910280838360005b838110156101cd5781810151838201526020016101b5565b5050505091909101604052505060008054336001600160a01b03199182161782556001805482166001600160a01b038b811691909117909155600280549092169089161790559150505b82518110156103685782818151811061022c57fe5b60200260200101516003600086848151811061024457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081818151811061029c57fe5b6020026020010151600460008684815181106102b457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081818151811061030c57fe5b60200260200101516005600085848151811061032457fe5b6020908102919091018101516001600160a01b0390811683529082019290925260400160002080546001600160a01b03191692909116919091179055600101610217565b5050505050506105de8061037d6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806383de424e1161005b57806383de424e146101405780638eec99c814610173578063bbe4f6db146101a6578063d9e61e11146101d957610088565b8063115d17d31461008d5780633018205f146100be57806347cc1047146100c6578063597704381461010d575b600080fd5b61009561020c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610095610228565b61010b600480360360608110156100dc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160409091013516610244565b005b6100956004803603602081101561012357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661034c565b61010b6004803603602081101561015657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610377565b61010b6004803603602081101561018957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610444565b610095600480360360208110156101bc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610552565b610095600480360360208110156101ef57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661057d565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f3100000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff928316600090815260036020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811696881696871790915560048352818420805482169590971694851790965593825260059052919091208054909216179055565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600460205260409020541690565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f3100000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f3100000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc929181900390910190a15050565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600360205260409020541690565b73ffffffffffffffffffffffffffffffffffffffff908116600090815260056020526040902054169056fea264697066735822122042a71a0aa7823425c8e73777025c21b7209125c055f1cb213523d3f437ca447d64736f6c63430007060033000000000000000000000000bbfa3b05b2dae65fb4c05ec7f1598793a4bc062300000000000000000000000055da1cbd77b1c3b2d8bfe0f5fdf63d684b49f8a500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000c00e94cb662c3520282e6f5717214004a7f268880000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f9840000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae90000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f5000000000000000000000000000000000000000000000000000000000000000400000000000000000000000050be5fe4de4efc3a0adac65872548369720554230000000000000000000000007835d976516f82ca8a3ed2942c4c6f9c4e44bb740000000000000000000000007ba283b1ddcdd0abe9d0d3f36345645754315978000000000000000000000000cdc3dd86c99b58749de0f697dfc1abe4be22216d00000000000000000000000000000000000000000000000000000000000000040000000000000000000000008f5c4486fd172a63f6e7f51902bb37cd5cd010b40000000000000000000000007ffad0da714f4595fc9c48fe789d76b9137d7245000000000000000000000000a4dd29192b42c5039fd9356382a5d57218c9d65000000000000000000000000024e79e946dea5482212c38aab2d0782f04cdb0e0

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100885760003560e01c806383de424e1161005b57806383de424e146101405780638eec99c814610173578063bbe4f6db146101a6578063d9e61e11146101d957610088565b8063115d17d31461008d5780633018205f146100be57806347cc1047146100c6578063597704381461010d575b600080fd5b61009561020c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610095610228565b61010b600480360360608110156100dc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160409091013516610244565b005b6100956004803603602081101561012357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661034c565b61010b6004803603602081101561015657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610377565b61010b6004803603602081101561018957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610444565b610095600480360360208110156101bc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610552565b610095600480360360208110156101ef57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661057d565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f3100000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff928316600090815260036020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811696881696871790915560048352818420805482169590971694851790965593825260059052919091208054909216179055565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600460205260409020541690565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f3100000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f3100000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc929181900390910190a15050565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600360205260409020541690565b73ffffffffffffffffffffffffffffffffffffffff908116600090815260056020526040902054169056fea264697066735822122042a71a0aa7823425c8e73777025c21b7209125c055f1cb213523d3f437ca447d64736f6c63430007060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000bbfa3b05b2dae65fb4c05ec7f1598793a4bc062300000000000000000000000055da1cbd77b1c3b2d8bfe0f5fdf63d684b49f8a500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000c00e94cb662c3520282e6f5717214004a7f268880000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f9840000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae90000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f5000000000000000000000000000000000000000000000000000000000000000400000000000000000000000050be5fe4de4efc3a0adac65872548369720554230000000000000000000000007835d976516f82ca8a3ed2942c4c6f9c4e44bb740000000000000000000000007ba283b1ddcdd0abe9d0d3f36345645754315978000000000000000000000000cdc3dd86c99b58749de0f697dfc1abe4be22216d00000000000000000000000000000000000000000000000000000000000000040000000000000000000000008f5c4486fd172a63f6e7f51902bb37cd5cd010b40000000000000000000000007ffad0da714f4595fc9c48fe789d76b9137d7245000000000000000000000000a4dd29192b42c5039fd9356382a5d57218c9d65000000000000000000000000024e79e946dea5482212c38aab2d0782f04cdb0e0

-----Decoded View---------------
Arg [0] : _controller (address): 0xbBFA3b05b2dAe65Fb4C05Ec7F1598793a4Bc0623
Arg [1] : _loanToken (address): 0x55DA1CBD77B1c3b2d8Bfe0F5fDF63d684b49F8A5
Arg [2] : _underlyings (address[]): 0xc00e94Cb662C3520282E6f5717214004A7f26888,0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984,0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9,0x4da27a545c0c5B758a6BA100e3a049001de870f5
Arg [3] : _pools (address[]): 0x50bE5fE4de4efC3A0adAc6587254836972055423,0x7835d976516F82cA8a3Ed2942C4c6F9C4E44bb74,0x7ba283b1dDCdd0ABE9D0d3f36345645754315978,0xCDc3DD86C99b58749de0F697dfc1ABE4bE22216d
Arg [4] : _tokens (address[]): 0x8f5C4486Fd172a63f6E7F51902bb37Cd5CD010b4,0x7fFad0dA714f4595fC9c48FE789d76b9137D7245,0xa4dd29192B42C5039Fd9356382a5d57218C9d650,0x24E79e946dEa5482212c38aaB2D0782F04cdB0E0

-----Encoded View---------------
20 Constructor Arguments found :
Arg [0] : 000000000000000000000000bbfa3b05b2dae65fb4c05ec7f1598793a4bc0623
Arg [1] : 00000000000000000000000055da1cbd77b1c3b2d8bfe0f5fdf63d684b49f8a5
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [4] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 000000000000000000000000c00e94cb662c3520282e6f5717214004a7f26888
Arg [7] : 0000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f984
Arg [8] : 0000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9
Arg [9] : 0000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f5
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [11] : 00000000000000000000000050be5fe4de4efc3a0adac6587254836972055423
Arg [12] : 0000000000000000000000007835d976516f82ca8a3ed2942c4c6f9c4e44bb74
Arg [13] : 0000000000000000000000007ba283b1ddcdd0abe9d0d3f36345645754315978
Arg [14] : 000000000000000000000000cdc3dd86c99b58749de0f697dfc1abe4be22216d
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [16] : 0000000000000000000000008f5c4486fd172a63f6e7f51902bb37cd5cd010b4
Arg [17] : 0000000000000000000000007ffad0da714f4595fc9c48fe789d76b9137d7245
Arg [18] : 000000000000000000000000a4dd29192b42c5039fd9356382a5d57218c9d650
Arg [19] : 00000000000000000000000024e79e946dea5482212c38aab2d0782f04cdb0e0


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.