UNPKG

@zarclays/zswap-trident

Version:
461 lines 37 kB
{ "address": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", "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": "address", "name": "barFeeTo", "type": "address" } ], "name": "BarFeeToUpdated", "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": "_barFeeTo", "type": "address" } ], "name": "setBarFeeTo", "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" } ], "transactionHash": "0x941b593011f4314a13e3dc442f010cb4fa25dee35ee20bde6b779f62536f0b13", "receipt": { "to": null, "from": "0xf87BC5535602077d340806D71f805EA9907a843D", "contractAddress": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", "transactionIndex": 0, "gasUsed": "756891", "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000020000000000000840080000010000000000000000000000000000000000000000000", "blockHash": "0x3a7b300950fa3f8bccda34feb238ee136a3451a5fd03d6995f1ed66489ed8bc5", "transactionHash": "0x941b593011f4314a13e3dc442f010cb4fa25dee35ee20bde6b779f62536f0b13", "logs": [ { "transactionIndex": 0, "blockNumber": 162097, "transactionHash": "0x941b593011f4314a13e3dc442f010cb4fa25dee35ee20bde6b779f62536f0b13", "address": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x000000000000000000000000f87bc5535602077d340806d71f805ea9907a843d" ], "data": "0x", "logIndex": 0, "blockHash": "0x3a7b300950fa3f8bccda34feb238ee136a3451a5fd03d6995f1ed66489ed8bc5" } ], "blockNumber": 162097, "cumulativeGasUsed": "756891", "status": 1, "byzantium": true }, "args": [ 1667, "0x1136c70afDD5dAD9508C58a8a0D91C574Ad0e1b1", "0xc35DADB65012eC5796536bD9864eD8773aBc74C4" ], "numDeployments": 1, "solcInputHash": "76e6dc96ea94c96e1c2463853d56dcaa", "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"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\":\"address\",\"name\":\"barFeeTo\",\"type\":\"address\"}],\"name\":\"BarFeeToUpdated\",\"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\":\"_barFeeTo\",\"type\":\"address\"}],\"name\":\"setBarFeeTo\",\"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\"}],\"devdoc\":{\"author\":\"Mudit Gupta.\",\"errors\":{\"InvalidBarFee()\":[{\"details\":\"Custom Errors\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"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.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Trident pool deployer contract with template factory whitelist.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/deployer/MasterDeployer.sol\":\"MasterDeployer\"},\"evmVersion\":\"london\",\"libraries\":{\":__CACHE_BREAKER__\":\"0x00000000d41867734bbee4c6863d9255b2b06ac1\"},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n _;\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/deployer/MasterDeployer.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n\\npragma solidity >=0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\nimport \\\"../interfaces/IPoolFactory.sol\\\";\\n\\n/// @dev Custom Errors\\nerror InvalidBarFee();\\nerror ZeroAddress();\\nerror NotWhitelisted();\\n\\n/// @notice Trident pool deployer contract with template factory whitelist.\\n/// @author Mudit Gupta.\\ncontract MasterDeployer is Ownable {\\n event DeployPool(address indexed factory, address indexed pool, bytes deployData);\\n event AddToWhitelist(address indexed factory);\\n event RemoveFromWhitelist(address indexed factory);\\n event BarFeeUpdated(uint256 indexed barFee);\\n event BarFeeToUpdated(address indexed barFeeTo);\\n\\n uint256 public barFee;\\n address public barFeeTo;\\n address public immutable bento;\\n\\n uint256 internal constant MAX_FEE = 10000; // @dev 100%.\\n\\n mapping(address => bool) public pools;\\n mapping(address => bool) public whitelistedFactories;\\n\\n constructor(\\n uint256 _barFee,\\n address _barFeeTo,\\n address _bento\\n ) {\\n if (_barFee > MAX_FEE) revert InvalidBarFee();\\n if (_barFeeTo == address(0)) revert ZeroAddress();\\n if (_bento == address(0)) revert ZeroAddress();\\n\\n barFee = _barFee;\\n barFeeTo = _barFeeTo;\\n bento = _bento;\\n }\\n\\n function deployPool(address _factory, bytes calldata _deployData) external returns (address pool) {\\n if (!whitelistedFactories[_factory]) revert NotWhitelisted();\\n pool = IPoolFactory(_factory).deployPool(_deployData);\\n pools[pool] = true;\\n emit DeployPool(_factory, pool, _deployData);\\n }\\n\\n function addToWhitelist(address _factory) external onlyOwner {\\n whitelistedFactories[_factory] = true;\\n emit AddToWhitelist(_factory);\\n }\\n\\n function removeFromWhitelist(address _factory) external onlyOwner {\\n whitelistedFactories[_factory] = false;\\n emit RemoveFromWhitelist(_factory);\\n }\\n\\n function setBarFee(uint256 _barFee) external onlyOwner {\\n if (_barFee > MAX_FEE) revert InvalidBarFee();\\n barFee = _barFee;\\n emit BarFeeUpdated(_barFee);\\n }\\n\\n function setBarFeeTo(address _barFeeTo) external onlyOwner {\\n barFeeTo = _barFeeTo;\\n emit BarFeeToUpdated(_barFeeTo);\\n }\\n}\\n\",\"keccak256\":\"0x3e42926b74c5393ee82d62f71aab648b8fabdecc450b0b5296e9e8de289e3c9c\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IPoolFactory.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n\\npragma solidity >=0.8.0;\\n\\n/// @notice Trident pool deployment interface.\\ninterface IPoolFactory {\\n function deployPool(bytes calldata _deployData) external returns (address pool);\\n\\n function configAddress(bytes32 data) external returns (address pool);\\n}\\n\",\"keccak256\":\"0x03b9677a7914f97ca3ae57deb690cb80d0f1ef4d3541573b4dee6d3cebd5df2e\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}", "bytecode": "0x60a060405234801561001057600080fd5b50604051610d09380380610d0983398101604081905261002f91610140565b610038336100d4565b61271083111561005b57604051637c2d2d2b60e01b815260040160405180910390fd5b6001600160a01b0382166100825760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0381166100a95760405163d92e233d60e01b815260040160405180910390fd5b600192909255600280546001600160a01b0319166001600160a01b039283161790551660805261017c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461013b57600080fd5b919050565b60008060006060848603121561015557600080fd5b8351925061016560208501610124565b915061017360408501610124565b90509250925092565b608051610b72610197600039600061016e0152610b726000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c578063a4063dbc11610066578063a4063dbc146101fc578063c14ad8021461021f578063e43252d714610236578063f2fde38b1461024957600080fd5b8063715018a6146101c35780638ab1d681146101cb5780638da5cb5b146101de57600080fd5b80633dad8acb116100bd5780633dad8acb146101565780634da31827146101695780636f50f2f41461019057600080fd5b806306e22d12146100e45780630c0a0cd2146100f9578063250558dc14610143575b600080fd5b6100f76100f23660046109ee565b61025c565b005b6002546101199073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610119610151366004610a29565b610351565b6100f7610164366004610aae565b6104df565b6101197f000000000000000000000000000000000000000000000000000000000000000081565b6101b361019e366004610aae565b60046020526000908152604090205460ff1681565b604051901515815260200161013a565b6100f76105cf565b6100f76101d9366004610aae565b61065c565b60005473ffffffffffffffffffffffffffffffffffffffff16610119565b6101b361020a366004610aae565b60036020526000908152604090205460ff1681565b61022860015481565b60405190815260200161013a565b6100f7610244366004610aae565b610751565b6100f7610257366004610aae565b610849565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b61271081111561031e576040517f7c2d2d2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181905560405181907f880a5214911723edb25bb08410581af1de2e40c52eda03920990c4bc27011fb690600090a250565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604081205460ff166103b0576040517f584a793800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f27c3cae100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516906327c3cae1906104049086908690600401610ad2565b6020604051808303816000875af1158015610423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104479190610b1f565b73ffffffffffffffffffffffffffffffffffffffff8082166000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555192935091908616907fe469f9471ac1d98222517eb2cdff1ef4df5f7880269173bb782bb78e499d9de3906104d09087908790610ad2565b60405180910390a39392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d9565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ff774513cf7e21ae3f5ec0ea74c68c431204fb5c1656e7050da0d81ccf9d0831190600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d9565b61065a6000610979565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d9565b73ffffffffffffffffffffffffffffffffffffffff811660008181526004602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f1f756c8b089af6b33ee121fee8badac2553a2fa89c0575ea91ff8792617746c29190a250565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d9565b73ffffffffffffffffffffffffffffffffffffffff811660008181526004602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f75b2135d1c8c3519f3c09c43fe6527089ef09f40c7981ebf0ed46e79e79032c79190a250565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d9565b73ffffffffffffffffffffffffffffffffffffffff811661096d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102d9565b61097681610979565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610a0057600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461097657600080fd5b600080600060408486031215610a3e57600080fd5b8335610a4981610a07565b9250602084013567ffffffffffffffff80821115610a6657600080fd5b818601915086601f830112610a7a57600080fd5b813581811115610a8957600080fd5b876020828501011115610a9b57600080fd5b6020830194508093505050509250925092565b600060208284031215610ac057600080fd5b8135610acb81610a07565b9392505050565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b600060208284031215610b3157600080fd5b8151610acb81610a0756fea2646970667358221220a25a54a193e15f936ccd9e7c3ac6338ba1aa54a488870e3bd4f20de5ef021e7564736f6c634300080a0033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c578063a4063dbc11610066578063a4063dbc146101fc578063c14ad8021461021f578063e43252d714610236578063f2fde38b1461024957600080fd5b8063715018a6146101c35780638ab1d681146101cb5780638da5cb5b146101de57600080fd5b80633dad8acb116100bd5780633dad8acb146101565780634da31827146101695780636f50f2f41461019057600080fd5b806306e22d12146100e45780630c0a0cd2146100f9578063250558dc14610143575b600080fd5b6100f76100f23660046109ee565b61025c565b005b6002546101199073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610119610151366004610a29565b610351565b6100f7610164366004610aae565b6104df565b6101197f000000000000000000000000000000000000000000000000000000000000000081565b6101b361019e366004610aae565b60046020526000908152604090205460ff1681565b604051901515815260200161013a565b6100f76105cf565b6100f76101d9366004610aae565b61065c565b60005473ffffffffffffffffffffffffffffffffffffffff16610119565b6101b361020a366004610aae565b60036020526000908152604090205460ff1681565b61022860015481565b60405190815260200161013a565b6100f7610244366004610aae565b610751565b6100f7610257366004610aae565b610849565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b61271081111561031e576040517f7c2d2d2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181905560405181907f880a5214911723edb25bb08410581af1de2e40c52eda03920990c4bc27011fb690600090a250565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604081205460ff166103b0576040517f584a793800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f27c3cae100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516906327c3cae1906104049086908690600401610ad2565b6020604051808303816000875af1158015610423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104479190610b1f565b73ffffffffffffffffffffffffffffffffffffffff8082166000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555192935091908616907fe469f9471ac1d98222517eb2cdff1ef4df5f7880269173bb782bb78e499d9de3906104d09087908790610ad2565b60405180910390a39392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d9565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ff774513cf7e21ae3f5ec0ea74c68c431204fb5c1656e7050da0d81ccf9d0831190600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d9565b61065a6000610979565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d9565b73ffffffffffffffffffffffffffffffffffffffff811660008181526004602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f1f756c8b089af6b33ee121fee8badac2553a2fa89c0575ea91ff8792617746c29190a250565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d9565b73ffffffffffffffffffffffffffffffffffffffff811660008181526004602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f75b2135d1c8c3519f3c09c43fe6527089ef09f40c7981ebf0ed46e79e79032c79190a250565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d9565b73ffffffffffffffffffffffffffffffffffffffff811661096d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102d9565b61097681610979565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610a0057600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461097657600080fd5b600080600060408486031215610a3e57600080fd5b8335610a4981610a07565b9250602084013567ffffffffffffffff80821115610a6657600080fd5b818601915086601f830112610a7a57600080fd5b813581811115610a8957600080fd5b876020828501011115610a9b57600080fd5b6020830194508093505050509250925092565b600060208284031215610ac057600080fd5b8135610acb81610a07565b9392505050565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b600060208284031215610b3157600080fd5b8151610acb81610a0756fea2646970667358221220a25a54a193e15f936ccd9e7c3ac6338ba1aa54a488870e3bd4f20de5ef021e7564736f6c634300080a0033", "devdoc": { "author": "Mudit Gupta.", "errors": { "InvalidBarFee()": [ { "details": "Custom Errors" } ] }, "kind": "dev", "methods": { "owner()": { "details": "Returns the address of the current owner." }, "renounceOwnership()": { "details": "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." }, "transferOwnership(address)": { "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "notice": "Trident pool deployer contract with template factory whitelist.", "version": 1 }, "storageLayout": { "storage": [ { "astId": 7, "contract": "contracts/deployer/MasterDeployer.sol:MasterDeployer", "label": "_owner", "offset": 0, "slot": "0", "type": "t_address" }, { "astId": 5436, "contract": "contracts/deployer/MasterDeployer.sol:MasterDeployer", "label": "barFee", "offset": 0, "slot": "1", "type": "t_uint256" }, { "astId": 5438, "contract": "contracts/deployer/MasterDeployer.sol:MasterDeployer", "label": "barFeeTo", "offset": 0, "slot": "2", "type": "t_address" }, { "astId": 5447, "contract": "contracts/deployer/MasterDeployer.sol:MasterDeployer", "label": "pools", "offset": 0, "slot": "3", "type": "t_mapping(t_address,t_bool)" }, { "astId": 5451, "contract": "contracts/deployer/MasterDeployer.sol:MasterDeployer", "label": "whitelistedFactories", "offset": 0, "slot": "4", "type": "t_mapping(t_address,t_bool)" } ], "types": { "t_address": { "encoding": "inplace", "label": "address", "numberOfBytes": "20" }, "t_bool": { "encoding": "inplace", "label": "bool", "numberOfBytes": "1" }, "t_mapping(t_address,t_bool)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => bool)", "numberOfBytes": "32", "value": "t_bool" }, "t_uint256": { "encoding": "inplace", "label": "uint256", "numberOfBytes": "32" } } } }