Contract 0x351447fc9bd20a917783e159e61e86edda0b0187 7

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0xb6b4fe29f8e7d87d503db753908257908e34a7f460281a00d674ca2ea595e7c4Deploy Pool327579122022-09-06 9:26:58277 days 15 hrs ago0x258de6d045aeb7b16e88ef41e0f9534229bc34d7 IN  SushiSwap: Master Deployer0 MATIC0.137965914521 41.921460042
0xa7e3eb9a989d544cb23eef43d6e4ce5ba1dd061a5744f6639a5f516dbf102db0Deploy Pool326060522022-09-02 17:48:31281 days 6 hrs ago0x258de6d045aeb7b16e88ef41e0f9534229bc34d7 IN  SushiSwap: Master Deployer0 MATIC0.125981459006 38.023999997
0xcf983c29da1c0e0c12a6a390b29021c2acf033d9434a36b441bb17b1a674b673Deploy Pool326034642022-09-02 16:19:34281 days 8 hrs ago0x258de6d045aeb7b16e88ef41e0f9534229bc34d7 IN  SushiSwap: Master Deployer0 MATIC0.106361800872 31.986154666
0x5085f33cb6f51ee99ff77b28260c52b120fe7b2da12c8836336fd1903ff242a2Deploy Pool319224152022-08-15 14:30:55299 days 10 hrs ago0xf87bc5535602077d340806d71f805ea9907a843d IN  SushiSwap: Master Deployer0 MATIC0.132876220432 43.439387265
0x3e1c8fa8afc1de5d35e60499aae0df5b5304db7545e154e8adc51bb1763025a3Add To Whitelist319221352022-08-15 14:19:11299 days 10 hrs ago0xf87bc5535602077d340806d71f805ea9907a843d IN  SushiSwap: Master Deployer0 MATIC0.001558458139 33.000002958
0x3c8c4bc27ff55cba1660a2bff000c729dfe01f6c2f57743560a320899f28f60cDeploy Pool319194632022-08-15 12:40:51299 days 11 hrs ago0xc1056bdfe993340326d2efadacfdfd6fab5eb13c IN  SushiSwap: Master Deployer0 MATIC0.107596058566 34.078773172
0x08e3745fd6d3069ab4f67d6338f392fab6ef076a46c69ae02d1c4a1c78ce7cc4Add To Whitelist318955602022-08-14 21:28:53300 days 3 hrs ago0xf87bc5535602077d340806d71f805ea9907a843d IN  SushiSwap: Master Deployer0 MATIC0.002361299999 49.999999999
0x1040f9cf91ac2a02bb772224ac42e210b8c3049e3a2fd3eda787349a19905a60Deploy Pool318940392022-08-14 20:30:11300 days 4 hrs ago0xf87bc5535602077d340806d71f805ea9907a843d IN  SushiSwap: Master Deployer0 MATIC0.091122690036 30.000000012
0x9b2354c06e50451edcbf201c6771f1dad0b8a5f9ebb0c8a27ab28a2858b7e8f7Add To Whitelist318929312022-08-14 19:49:59300 days 4 hrs ago0xf87bc5535602077d340806d71f805ea9907a843d IN  SushiSwap: Master Deployer0 MATIC0.001770975 37.500000017
0x50c4bdd15a05b99b8f5708bef226e2db2cfa44d45a5a80929b54be2e14b24d11Set Bar Fee278889002022-05-03 21:26:39403 days 3 hrs ago0xf87bc5535602077d340806d71f805ea9907a843d IN  SushiSwap: Master Deployer0 MATIC0.000899078149 30.195739688
0x325d724051ad9eb37baec9c4c4c38ff64176d2d68697b66a9d936b5c2392b184Deploy Pool262537442022-03-23 4:47:57444 days 19 hrs ago0x258de6d045aeb7b16e88ef41e0f9534229bc34d7 IN  SushiSwap: Master Deployer0 MATIC0.10643210423 32.339999997
0x53ae51c37b35110998afb207e0f3e8521f8f88b6b8416beaed4d7e3eef45afeeDeploy Pool262532662022-03-23 4:31:33444 days 20 hrs ago0x258de6d045aeb7b16e88ef41e0f9534229bc34d7 IN  SushiSwap: Master Deployer0 MATIC0.111535367912 33.319999974
0x31233608ae6f6a386d088b39164acaa7b0f87ebae48206694168bce497a955b1Deploy Pool262532392022-03-23 4:30:35444 days 20 hrs ago0x258de6d045aeb7b16e88ef41e0f9534229bc34d7 IN  SushiSwap: Master Deployer0 MATIC0.038824080139 40.000000144
0xd6efb4e71f70ed6755950642907026fe71842863ed8767fe3e4d5aab85d4b263Deploy Pool262530062022-03-23 4:20:29444 days 20 hrs ago0xbf2116d0a79da0e5710df8ab00eb20415bca94c8 IN  SushiSwap: Master Deployer0 MATIC0.11481582 34.3
0xa0f99ec7293e65f1c5907bfaa5924860ac908ded59fcc1840e5948bbf17352beDeploy Pool262520132022-03-23 3:44:11444 days 20 hrs ago0xb6207facfbc0c7373425d9671ea0ca23459e9796 IN  SushiSwap: Master Deployer0 MATIC0.100656587943 30.069999795
0x4a8c6c21ba7b28dd965350e51cdaef64f20122eea258e08a50331d19aa3336a2Add To Whitelist258409122022-03-11 21:32:04456 days 3 hrs ago0xf87bc5535602077d340806d71f805ea9907a843d IN  SushiSwap: Master Deployer0 MATIC0.00238491301 50.500000218
0xaa0206435f799531fea206673f2c2dee09e68eaeacf9ee5e169679b5f9d083ae0x60c06040258408762022-03-11 21:30:48456 days 3 hrs ago0xf87bc5535602077d340806d71f805ea9907a843d IN  Contract Creation0 MATIC0.023729965024 35.000000036
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x752Dc00ABa9c930c84aC81D288dB5E2a02Afe633

Contract Name:
MasterDeployer

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion
File 1 of 4 : MasterDeployer.sol
// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity >=0.8.0;

import "@openzeppelin/contracts/access/Ownable.sol";

import "../interfaces/IPoolFactory.sol";

/// @dev Custom Errors
error InvalidBarFee();
error ZeroAddress();
error NotWhitelisted();

/// @notice Trident pool deployer contract with template factory whitelist.
/// @author Mudit Gupta.
contract MasterDeployer is Ownable {
    event DeployPool(address indexed factory, address indexed pool, bytes deployData);
    event AddToWhitelist(address indexed factory);
    event RemoveFromWhitelist(address indexed factory);
    event BarFeeUpdated(uint256 indexed barFee);

    uint256 public barFee;
    address public immutable barFeeTo;
    address public immutable bento;

    uint256 internal constant MAX_FEE = 10000; // @dev 100%.

    mapping(address => bool) public pools;
    mapping(address => bool) public whitelistedFactories;

    constructor(
        uint256 _barFee,
        address _barFeeTo,
        address _bento
    ) {
        if (_barFee > MAX_FEE) revert InvalidBarFee();
        if (_barFeeTo == address(0)) revert ZeroAddress();
        if (_bento == address(0)) revert ZeroAddress();

        barFee = _barFee;
        barFeeTo = _barFeeTo;
        bento = _bento;
    }

    function deployPool(address _factory, bytes calldata _deployData) external returns (address pool) {
        if (!whitelistedFactories[_factory]) revert NotWhitelisted();
        pool = IPoolFactory(_factory).deployPool(_deployData);
        pools[pool] = true;
        emit DeployPool(_factory, pool, _deployData);
    }

    function addToWhitelist(address _factory) external onlyOwner {
        whitelistedFactories[_factory] = true;
        emit AddToWhitelist(_factory);
    }

    function removeFromWhitelist(address _factory) external onlyOwner {
        whitelistedFactories[_factory] = false;
        emit RemoveFromWhitelist(_factory);
    }

    function setBarFee(uint256 _barFee) external onlyOwner {
        if (_barFee > MAX_FEE) revert InvalidBarFee();
        barFee = _barFee;
        emit BarFeeUpdated(_barFee);
    }
}

File 2 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 4 : IPoolFactory.sol
// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity >=0.8.0;

/// @notice Trident pool deployment interface.
interface IPoolFactory {
    function deployPool(bytes calldata _deployData) external returns (address pool);

    function configAddress(bytes32 data) external returns (address pool);
}

File 4 of 4 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_barFee","type":"uint256"},{"internalType":"address","name":"_barFeeTo","type":"address"},{"internalType":"address","name":"_bento","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidBarFee","type":"error"},{"inputs":[],"name":"NotWhitelisted","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"factory","type":"address"}],"name":"AddToWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"barFee","type":"uint256"}],"name":"BarFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"factory","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"bytes","name":"deployData","type":"bytes"}],"name":"DeployPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"factory","type":"address"}],"name":"RemoveFromWhitelist","type":"event"},{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"barFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"barFeeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bento","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"bytes","name":"_deployData","type":"bytes"}],"name":"deployPool","outputs":[{"internalType":"address","name":"pool","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pools","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_barFee","type":"uint256"}],"name":"setBarFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedFactories","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

60c060405234801561001057600080fd5b50604051610bfd380380610bfd83398101604081905261002f91610132565b610038336100c6565b61271083111561005b57604051637c2d2d2b60e01b815260040160405180910390fd5b6001600160a01b0382166100825760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0381166100a95760405163d92e233d60e01b815260040160405180910390fd5b6001929092556001600160a01b039081166080521660a05261016e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461012d57600080fd5b919050565b60008060006060848603121561014757600080fd5b8351925061015760208501610116565b915061016560408501610116565b90509250925092565b60805160a051610a6b61019260003960006101570152600060f30152610a6b6000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638ab1d68111610081578063c14ad8021161005b578063c14ad80214610208578063e43252d71461021f578063f2fde38b1461023257600080fd5b80638ab1d681146101b45780638da5cb5b146101c7578063a4063dbc146101e557600080fd5b80634da31827116100b25780634da31827146101525780636f50f2f414610179578063715018a6146101ac57600080fd5b806306e22d12146100d95780630c0a0cd2146100ee578063250558dc1461013f575b600080fd5b6100ec6100e73660046108e7565b610245565b005b6101157f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61011561014d366004610922565b61033a565b6101157f000000000000000000000000000000000000000000000000000000000000000081565b61019c6101873660046109a7565b60036020526000908152604090205460ff1681565b6040519015158152602001610136565b6100ec6104c8565b6100ec6101c23660046109a7565b610555565b60005473ffffffffffffffffffffffffffffffffffffffff16610115565b61019c6101f33660046109a7565b60026020526000908152604090205460ff1681565b61021160015481565b604051908152602001610136565b6100ec61022d3660046109a7565b61064a565b6100ec6102403660046109a7565b610742565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b612710811115610307576040517f7c2d2d2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181905560405181907f880a5214911723edb25bb08410581af1de2e40c52eda03920990c4bc27011fb690600090a250565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081205460ff16610399576040517f584a793800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f27c3cae100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516906327c3cae1906103ed90869086906004016109cb565b6020604051808303816000875af115801561040c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104309190610a18565b73ffffffffffffffffffffffffffffffffffffffff8082166000818152600260205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555192935091908616907fe469f9471ac1d98222517eb2cdff1ef4df5f7880269173bb782bb78e499d9de3906104b990879087906109cb565b60405180910390a39392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c2565b6105536000610872565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c2565b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f1f756c8b089af6b33ee121fee8badac2553a2fa89c0575ea91ff8792617746c29190a250565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c2565b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f75b2135d1c8c3519f3c09c43fe6527089ef09f40c7981ebf0ed46e79e79032c79190a250565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c2565b73ffffffffffffffffffffffffffffffffffffffff8116610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102c2565b61086f81610872565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156108f957600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461086f57600080fd5b60008060006040848603121561093757600080fd5b833561094281610900565b9250602084013567ffffffffffffffff8082111561095f57600080fd5b818601915086601f83011261097357600080fd5b81358181111561098257600080fd5b87602082850101111561099457600080fd5b6020830194508093505050509250925092565b6000602082840312156109b957600080fd5b81356109c481610900565b9392505050565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b600060208284031215610a2a57600080fd5b81516109c48161090056fea2646970667358221220cd56f6d30763be4c6cfaee34b67d9fbe69dc5a0adffa0330a56ce0dffe364f1f64736f6c634300080a003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000001136c70afdd5dad9508c58a8a0d91c574ad0e1b10000000000000000000000000319000133d3ada02600f0875d2cf03d442c3367

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.