Overview
S Balance
0 S
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
GumBallFactory
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.11; import "@openzeppelin/contracts/access/Ownable.sol"; interface IGBTFactory { function createGBT( string memory _name, string memory _symbol, address _baseToken, uint256 _initialVirtualBASE, uint256 _supplyGBT, address _artist, address _factory, uint256 _delay, uint256 _fee ) external returns (address); } interface IGNFTFactory { function createGNFT( string memory _name, string memory _symbol, string[] memory _URIs, address _GBT, uint256 _bFee ) external returns (address); } interface IXGBTFactory { function createXGBT( address _owner, address _stakingToken, address _stakingNFT ) external returns (address); } interface IGBT { function setXGBT(address _XGBT) external; function updateAllowlist(address[] memory accounts, uint256 amount) external; } interface IXGBT { function addReward(address _rewardsToken) external; } contract GumBallFactory is Ownable { address public GBTFactory; address public GNFTFactory; address public XGBTFactory; address public treasury; struct GumBall { address GBT; address GNFT; address XGBT; bool allowed; } GumBall[] public gumballs; mapping(address => uint256) public indexes; // GBT => index mapping(address => bool) public allowlist; event TreasurySet(address _treasury); event GumBallDeployed(address indexed gbt, address indexed gnft, address indexed xgbt); event GBTFactorySet(address gbtFactory); event GNFTFactorySet(address gnftFactory); event XGBTFactorySet(address xgbtFactory); event AllowExisting(uint256 index, bool _bool); event FactoryAllowlistUpdate(address _factory, bool flag); event GumBallAdded(address indexed _gbt, address indexed _gnft, address indexed _xgbt); constructor(address _GBTFactory, address _GNFTFactory, address _XGBTFactory, address _treasury) { GBTFactory = _GBTFactory; GNFTFactory = _GNFTFactory; XGBTFactory = _XGBTFactory; treasury = _treasury; } function deployInfo(uint256 id) external view returns (address token, address nft, address gumbar, bool _allowed) { return (gumballs[id].GBT, gumballs[id].GNFT, gumballs[id].XGBT, gumballs[id].allowed); } function totalDeployed() external view returns (uint256 length) { return gumballs.length; } function getTreasury() external view returns (address) { return treasury; } function deployGumBall( string calldata _name, string calldata _symbol, string[] calldata _URIs, uint256 _supplyBASE, uint256 _supplyGBT, address _base, address _artist, uint256 _delay, uint256[] memory _fees ) external { require(bytes(_name).length != 0 && bytes(_symbol).length != 0 && bytes(_URIs[0]).length != 0 && bytes(_URIs[1]).length != 0, "Incomplete name, symbol or URI"); require(_URIs.length == 2 && _supplyGBT >= 1 && _supplyBASE >=1, "Invalid URI length, supply or virtual base"); require(_base != address(0) && _artist != address(0), "Base token or artist cannot be zero address"); require(_delay <= 1209600, "14 day max"); string memory nameGNFT = string(abi.encodePacked(_name)); string memory symbolGNFT = string(abi.encodePacked(_symbol)); address gbt = IGBTFactory(GBTFactory).createGBT(nameGNFT, symbolGNFT, _base, _supplyBASE, _supplyGBT, _artist, address(this), _delay, _fees[0]); address gnft = IGNFTFactory(GNFTFactory).createGNFT(nameGNFT, symbolGNFT, _URIs, gbt, _fees[1]); address xgbt = IXGBTFactory(XGBTFactory).createXGBT(address(this), gbt, gnft); IGBT(gbt).setXGBT(xgbt); IXGBT(xgbt).addReward(gbt); IXGBT(xgbt).addReward(_base); bool allow; if (allowlist[msg.sender]) { allow = true; } else { allow = false; } uint256 index = gumballs.length; indexes[gbt] = index; GumBall memory gumball = GumBall(gbt, gnft, xgbt, allow); gumballs.push(gumball); emit GumBallDeployed(gbt, gnft, xgbt); } function addExistingGumBall(address _gbt, address _xgbt, address _gnft) external onlyOwner { uint256 index = gumballs.length; indexes[_gbt] = index; GumBall memory gumball = GumBall(_gbt, _gnft, _xgbt, true); gumballs.push(gumball); emit GumBallDeployed(_gbt, _gnft, _xgbt); } function setTreasury(address _treasury) external onlyOwner { treasury = _treasury; emit TreasurySet(_treasury); } function setGBTFactory(address _GBTFactory) external onlyOwner { GBTFactory = _GBTFactory; emit GBTFactorySet(_GBTFactory); } function setGNFTFactory(address _GNFTFactory) external onlyOwner { GNFTFactory = _GNFTFactory; emit GNFTFactorySet(_GNFTFactory); } function setXGBTFactory(address _XGBTFactory) external onlyOwner { XGBTFactory = _XGBTFactory; emit XGBTFactorySet(_XGBTFactory); } function updateFactoryAllowlist(address _addr, bool _bool) external onlyOwner { allowlist[_addr] = _bool; emit FactoryAllowlistUpdate(_addr, _bool); } function allowExisting(uint256 _index, bool _bool) external onlyOwner { gumballs[_index].allowed = _bool; emit AllowExisting(_index, _bool); } ///////////////////// //////// GBT //////// ///////////////////// function updateGumBallAllowlist(address _tokenAddr, address[] calldata _accounts, uint256 _amount) external onlyOwner { IGBT(_tokenAddr).updateAllowlist(_accounts, _amount); } //////////////////// /////// XGBT /////// //////////////////// function addReward(address _gumbarAddr, address _rewardsToken) external onlyOwner { IXGBT(_gumbarAddr).addReward(_rewardsToken); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (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 Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { 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); } }
// 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; } }
{ "viaIR": true, "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_GBTFactory","type":"address"},{"internalType":"address","name":"_GNFTFactory","type":"address"},{"internalType":"address","name":"_XGBTFactory","type":"address"},{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_bool","type":"bool"}],"name":"AllowExisting","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_factory","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"FactoryAllowlistUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"gbtFactory","type":"address"}],"name":"GBTFactorySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"gnftFactory","type":"address"}],"name":"GNFTFactorySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_gbt","type":"address"},{"indexed":true,"internalType":"address","name":"_gnft","type":"address"},{"indexed":true,"internalType":"address","name":"_xgbt","type":"address"}],"name":"GumBallAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gbt","type":"address"},{"indexed":true,"internalType":"address","name":"gnft","type":"address"},{"indexed":true,"internalType":"address","name":"xgbt","type":"address"}],"name":"GumBallDeployed","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":false,"internalType":"address","name":"_treasury","type":"address"}],"name":"TreasurySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"xgbtFactory","type":"address"}],"name":"XGBTFactorySet","type":"event"},{"inputs":[],"name":"GBTFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GNFTFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"XGBTFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gbt","type":"address"},{"internalType":"address","name":"_xgbt","type":"address"},{"internalType":"address","name":"_gnft","type":"address"}],"name":"addExistingGumBall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gumbarAddr","type":"address"},{"internalType":"address","name":"_rewardsToken","type":"address"}],"name":"addReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"allowExisting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowlist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string[]","name":"_URIs","type":"string[]"},{"internalType":"uint256","name":"_supplyBASE","type":"uint256"},{"internalType":"uint256","name":"_supplyGBT","type":"uint256"},{"internalType":"address","name":"_base","type":"address"},{"internalType":"address","name":"_artist","type":"address"},{"internalType":"uint256","name":"_delay","type":"uint256"},{"internalType":"uint256[]","name":"_fees","type":"uint256[]"}],"name":"deployGumBall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"deployInfo","outputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"nft","type":"address"},{"internalType":"address","name":"gumbar","type":"address"},{"internalType":"bool","name":"_allowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTreasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"gumballs","outputs":[{"internalType":"address","name":"GBT","type":"address"},{"internalType":"address","name":"GNFT","type":"address"},{"internalType":"address","name":"XGBT","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"indexes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_GBTFactory","type":"address"}],"name":"setGBTFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_GNFTFactory","type":"address"}],"name":"setGNFTFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_XGBTFactory","type":"address"}],"name":"setXGBTFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalDeployed","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"updateFactoryAllowlist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address[]","name":"_accounts","type":"address[]"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateGumBallAllowlist","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608034620000fb57601f620015f438819003918201601f19168301916001600160401b038311848410176200010057808492608094604052833981010312620000fb576200004d8162000116565b6200005b6020830162000116565b91620000786060620000706040840162000116565b920162000116565b6000549360018060a01b03928380928160018060a01b03199733898b161760005560405199823391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3168760015416176001551685600254161760025516836003541617600355169060045416176004556114c890816200012c8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620000fb5756fe608080604052600436101561001357600080fd5b600090813560e01c9081630cfb14b0146111df5750806310b86c6c146110f65780632988a9ba146110885780632db78d931461104f5780633b19e84a14610fa757806340b47e1a14610fd057806361d027b314610fa7578063715018a614610f4d5780637f0a655d14610ee25780638029eaa114610eb957806385e95b2d146106435780638da5cb5b1461061c57806398481934146105ae578063a1ab3fb414610528578063a7cd52cb146104e9578063b6afe78014610439578063d4305c8d1461039a578063e9fcc0a014610319578063f0f44260146102ab578063f2fde38b146101e0578063f5224ae414610172578063f6efa5fd146101495763fc8fe14f1461011e57600080fd5b346101465780600319360112610146576001546040516001600160a01b039091168152602090f35b80fd5b50346101465780600319360112610146576003546040516001600160a01b039091168152602090f35b5034610146576020366003190112610146577fa084331e58b1db8820e101fea9338d797d4383cadc083702be262fbe8dbb429760206101af6111fb565b6101b761143a565b600380546001600160a01b0319166001600160a01b03929092169182179055604051908152a180f35b5034610146576020366003190112610146576101fa6111fb565b61020261143a565b6001600160a01b0390811690811561025757600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b5034610146576020366003190112610146577f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f60206102e86111fb565b6102f061143a565b600480546001600160a01b0319166001600160a01b03929092169182179055604051908152a180f35b5034610146576040366003190112610146577fce839bf9efde8e4e57c1d6a9ff821c8b3dc5e6d6bc302ed03b1e699949ea13c460406103566111fb565b61035e611324565b9061036761143a565b60018060a01b03169081855260076020528285209015159060ff1981541660ff831617905582519182526020820152a180f35b5034610146576020366003190112610146576004356103b881611257565b50546001600160a01b0391908216906104359060ff60026103f78660016103de86611257565b5001541696826103ed86611257565b5001541693611257565b500154604080516001600160a01b0396871681529686166020880152949092169385019390935260a01c919091161515606083015281906080820190565b0390f35b5034610146576060366003190112610146576104536111fb565b61045b611211565b906044356001600160a01b0381811692918390036104e4576104bd9061047f61143a565b8060055493169283875260066020526040872055604051946104a0866112e8565b838652846020870152169384604082015260016060820152611392565b7f81e0425695366f784cf3a3f4055870cb169ef460aa3daff87d6afd0498b01e798480a480f35b600080fd5b50346101465760203660031901126101465760209060ff906040906001600160a01b036105146111fb565b168152600784522054166040519015158152f35b5034610146576040366003190112610146577f190e6723dc5a01b890350130623ca3c8741bb952dce8031a5ab63c55ac8b3bd06040600435610568611324565b61057061143a565b61059e81600261057f85611257565b5001805460ff60a01b191691151560a01b60ff60a01b16919091179055565b825191825215156020820152a180f35b5034610146576020366003190112610146577f9254d1446b8ab43422fa7476c8f807c9ae1589d445a2ac94f22f1086259cac5f60206105eb6111fb565b6105f361143a565b600180546001600160a01b0319166001600160a01b03929092169182179055604051908152a180f35b5034610146578060031936011261014657546040516001600160a01b039091168152602090f35b503461014657610120366003190112610146576004356001600160401b038111610b7357610675903690600401611292565b906024356001600160401b038111610b4157610695903690600401611292565b9190926044356001600160401b038111610eb5576106b7903690600401611227565b60a435949091906001600160a01b03861686036104e45760c435946001600160a01b03861686036104e4576001600160401b036101043511610eb15736602361010435011215610eb1576001600160401b03610104356004013511610e9d57604051976107316020610104356004013560051b018a611303565b61010435600401358952602089019182366024610104356004013560051b61010435010111610e995760246101043501905b6024610104356004013560051b6101043501018210610e8957505086151580610e80575b80610e43575b80610e00575b15610dbb576002861480610dae575b80610da1575b15610d49576001600160a01b038916151580610d37575b15610cde576212750060e43511610cac57610816916107f9602080938e8b6040519c8d93858501378201908382015203808b520189611303565b846040519586928484013781018c83820152038085520183611303565b60018060a01b036001541690885115610c6a5760209161085e8b888b61087095516040519c8d9788968795639a1e5e5d60e01b87526101206004880152610124870190611352565b8581036003190160248701528b611352565b6001600160a01b03938416604486015260648035908601526084803590860152921660a48401523060c484015260e480359084015261010483015203925af1948515610ca1578895610c80575b5060018060a01b036002541692875160011015610c6a5791889791610908959361091a60408b95015192604051988997631c8772b160e31b895260a060048a015260a4890190611352565b87810360031901602489015290611352565b90600319868303016044870152808252602082019360208260051b84010194819387925b848410610be857505050506001600160a01b038916606487015250506084840152602093908390039183915af1928315610b685784918294610bc7575b50600354604051631e5e673f60e01b81523060048201526001600160a01b038581166024830152958616604482018190529096909560209288926064928492165af1948515610b45578295610b96575b506001600160a01b0383163b15610b735760405163274d4a8b60e21b81526001600160a01b039586166004820181905295839082906024908290849089165af1908115610b8b578391610b77575b5050843b15610b7357604051639c9b2e2160e01b8082526001600160a01b038516600483015291908381602481838b5af1908115610b68578491610b54575b5050853b15610b50576040519182526001600160a01b03166004820152818160248183895af18015610b4557610b2d575b50503384526007602052604084205460ff1615610b2457610af460015b6005546001600160a01b038416875260066020526040808820919091555190610ace826112e8565b6001600160a01b0384168252602082018590526040820186905215156060820152611392565b6001600160a01b03167f81e0425695366f784cf3a3f4055870cb169ef460aa3daff87d6afd0498b01e798480a480f35b610af484610aa6565b610b36906112bf565b610b41578338610a89565b8380fd5b6040513d84823e3d90fd5b8280fd5b610b5d906112bf565b610b50578238610a58565b6040513d86823e3d90fd5b5080fd5b610b80906112bf565b610b73578138610a19565b6040513d85823e3d90fd5b610bb991955060203d602011610bc0575b610bb18183611303565b810190611333565b93386109cb565b503d610ba7565b610be191945060203d602011610bc057610bb18183611303565b923861097b565b92959750929590939750601f19808483030185528835601e1984360301811215610c66578301602081359101916001600160401b038211610c62578136038313610c62578f9360209391601f84600197818897968897875287870137858286010152011601019901940194019093899795928d979561093e565b8f80fd5b8e80fd5b634e487b7160e01b600052603260045260246000fd5b610c9a91955060203d602011610bc057610bb18183611303565b93386108bd565b6040513d8a823e3d90fd5b60405162461bcd60e51b815260206004820152600a6024820152690626840c8c2f240dac2f60b31b6044820152606490fd5b60405162461bcd60e51b815260206004820152602b60248201527f4261736520746f6b656e206f72206172746973742063616e6e6f74206265207a60448201526a65726f206164647265737360a81b6064820152608490fd5b506001600160a01b03881615156107bf565b60405162461bcd60e51b815260206004820152602a60248201527f496e76616c696420555249206c656e6774682c20737570706c79206f72207669604482015269727475616c206261736560b01b6064820152608490fd5b50600160643510156107a8565b50600160843510156107a2565b60405162461bcd60e51b815260206004820152601e60248201527f496e636f6d706c657465206e616d652c2073796d626f6c206f722055524900006044820152606490fd5b508560011015610c6a576020850135601e19863603018112156104e45785018035906001600160401b0382116104e45760208236039101136104e4571515610793565b508515610c6a578435601e19863603018112156104e45785018035906001600160401b0382116104e45760208236039101136104e457151561078d565b50831515610787565b8135815260209182019101610763565b8b80fd5b634e487b7160e01b89526041600452602489fd5b8880fd5b8580fd5b50346101465780600319360112610146576002546040516001600160a01b039091168152602090f35b503461014657602036600319011261014657600435600554811015610b7357610f0a90611257565b5080546001820154600290920154604080516001600160a01b03938416815293831660208501529181169183019190915260a01c60ff1615156060820152608090f35b5034610146578060031936011261014657610f6661143a565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101465780600319360112610146576004546040516001600160a01b039091168152602090f35b50346101465760403660031901126101465780610feb6111fb565b610ff3611211565b610ffb61143a565b6001600160a01b0391821691823b1561104a5760248492836040519586948593639c9b2e2160e01b85521660048401525af18015610b455761103a5750f35b611043906112bf565b6101465780f35b505050fd5b5034610146576020366003190112610146576020906040906001600160a01b036110776111fb565b168152600683522054604051908152f35b5034610146576020366003190112610146577f388ece3ab4f03d7d959ff6380802bba6b94acf4ef0d80d353bd311e5b27b7a1860206110c56111fb565b6110cd61143a565b600280546001600160a01b0319166001600160a01b03929092169182179055604051908152a180f35b5034610146576060366003190112610146576111106111fb565b816024356001600160401b038111610b7357611130903690600401611227565b9061113961143a565b6001600160a01b0393841691823b15610b41579190839060405195869463145bf25560e31b86528060448701604060048901525260648601929184905b8282106111ab575050505090838092604435602483015203925af18015610b455761119f575080f35b6111a8906112bf565b80f35b92959650929093508435908282168092036111db5760019181526020809101950192019286938896959392611176565b8780fd5b905034610b735781600319360112610b73576020906005548152f35b600435906001600160a01b03821682036104e457565b602435906001600160a01b03821682036104e457565b9181601f840112156104e4578235916001600160401b0383116104e4576020808501948460051b0101116104e457565b600554811015610c6a576003906005600052027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190600090565b9181601f840112156104e4578235916001600160401b0383116104e457602083818601950101116104e457565b6001600160401b0381116112d257604052565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b038211176112d257604052565b90601f801991011681019081106001600160401b038211176112d257604052565b6024359081151582036104e457565b908160209103126104e457516001600160a01b03811681036104e45790565b919082519283825260005b84811061137e575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161135d565b600554680100000000000000008110156112d2578060016113b69201600555611257565b61142457815181546001600160a01b039182166001600160a01b031991821617835560208401516001840180549184169190921617905560408301516002909201805460609094015160ff60a01b90151560a01b16929091166001600160a81b031990931692909217179055565b634e487b7160e01b600052600060045260246000fd5b6000546001600160a01b0316330361144e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fdfea26469706673582212208b59df7b8f50ed757d7cd80fa0c4892144e82359d23e68b15619fcb025ec860c64736f6c63430008180033000000000000000000000000ab0ab38ade96af42742b0030f201e05ecca127d4000000000000000000000000dce6609d7b9c933e9acc453eda6713c8b9efa067000000000000000000000000b7b7b8df8caf2829971329bd71d0b7127d0734be00000000000000000000000080f9aa21e8f3c21de9077008740371b5357a9dbf
Deployed Bytecode
0x608080604052600436101561001357600080fd5b600090813560e01c9081630cfb14b0146111df5750806310b86c6c146110f65780632988a9ba146110885780632db78d931461104f5780633b19e84a14610fa757806340b47e1a14610fd057806361d027b314610fa7578063715018a614610f4d5780637f0a655d14610ee25780638029eaa114610eb957806385e95b2d146106435780638da5cb5b1461061c57806398481934146105ae578063a1ab3fb414610528578063a7cd52cb146104e9578063b6afe78014610439578063d4305c8d1461039a578063e9fcc0a014610319578063f0f44260146102ab578063f2fde38b146101e0578063f5224ae414610172578063f6efa5fd146101495763fc8fe14f1461011e57600080fd5b346101465780600319360112610146576001546040516001600160a01b039091168152602090f35b80fd5b50346101465780600319360112610146576003546040516001600160a01b039091168152602090f35b5034610146576020366003190112610146577fa084331e58b1db8820e101fea9338d797d4383cadc083702be262fbe8dbb429760206101af6111fb565b6101b761143a565b600380546001600160a01b0319166001600160a01b03929092169182179055604051908152a180f35b5034610146576020366003190112610146576101fa6111fb565b61020261143a565b6001600160a01b0390811690811561025757600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b5034610146576020366003190112610146577f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f60206102e86111fb565b6102f061143a565b600480546001600160a01b0319166001600160a01b03929092169182179055604051908152a180f35b5034610146576040366003190112610146577fce839bf9efde8e4e57c1d6a9ff821c8b3dc5e6d6bc302ed03b1e699949ea13c460406103566111fb565b61035e611324565b9061036761143a565b60018060a01b03169081855260076020528285209015159060ff1981541660ff831617905582519182526020820152a180f35b5034610146576020366003190112610146576004356103b881611257565b50546001600160a01b0391908216906104359060ff60026103f78660016103de86611257565b5001541696826103ed86611257565b5001541693611257565b500154604080516001600160a01b0396871681529686166020880152949092169385019390935260a01c919091161515606083015281906080820190565b0390f35b5034610146576060366003190112610146576104536111fb565b61045b611211565b906044356001600160a01b0381811692918390036104e4576104bd9061047f61143a565b8060055493169283875260066020526040872055604051946104a0866112e8565b838652846020870152169384604082015260016060820152611392565b7f81e0425695366f784cf3a3f4055870cb169ef460aa3daff87d6afd0498b01e798480a480f35b600080fd5b50346101465760203660031901126101465760209060ff906040906001600160a01b036105146111fb565b168152600784522054166040519015158152f35b5034610146576040366003190112610146577f190e6723dc5a01b890350130623ca3c8741bb952dce8031a5ab63c55ac8b3bd06040600435610568611324565b61057061143a565b61059e81600261057f85611257565b5001805460ff60a01b191691151560a01b60ff60a01b16919091179055565b825191825215156020820152a180f35b5034610146576020366003190112610146577f9254d1446b8ab43422fa7476c8f807c9ae1589d445a2ac94f22f1086259cac5f60206105eb6111fb565b6105f361143a565b600180546001600160a01b0319166001600160a01b03929092169182179055604051908152a180f35b5034610146578060031936011261014657546040516001600160a01b039091168152602090f35b503461014657610120366003190112610146576004356001600160401b038111610b7357610675903690600401611292565b906024356001600160401b038111610b4157610695903690600401611292565b9190926044356001600160401b038111610eb5576106b7903690600401611227565b60a435949091906001600160a01b03861686036104e45760c435946001600160a01b03861686036104e4576001600160401b036101043511610eb15736602361010435011215610eb1576001600160401b03610104356004013511610e9d57604051976107316020610104356004013560051b018a611303565b61010435600401358952602089019182366024610104356004013560051b61010435010111610e995760246101043501905b6024610104356004013560051b6101043501018210610e8957505086151580610e80575b80610e43575b80610e00575b15610dbb576002861480610dae575b80610da1575b15610d49576001600160a01b038916151580610d37575b15610cde576212750060e43511610cac57610816916107f9602080938e8b6040519c8d93858501378201908382015203808b520189611303565b846040519586928484013781018c83820152038085520183611303565b60018060a01b036001541690885115610c6a5760209161085e8b888b61087095516040519c8d9788968795639a1e5e5d60e01b87526101206004880152610124870190611352565b8581036003190160248701528b611352565b6001600160a01b03938416604486015260648035908601526084803590860152921660a48401523060c484015260e480359084015261010483015203925af1948515610ca1578895610c80575b5060018060a01b036002541692875160011015610c6a5791889791610908959361091a60408b95015192604051988997631c8772b160e31b895260a060048a015260a4890190611352565b87810360031901602489015290611352565b90600319868303016044870152808252602082019360208260051b84010194819387925b848410610be857505050506001600160a01b038916606487015250506084840152602093908390039183915af1928315610b685784918294610bc7575b50600354604051631e5e673f60e01b81523060048201526001600160a01b038581166024830152958616604482018190529096909560209288926064928492165af1948515610b45578295610b96575b506001600160a01b0383163b15610b735760405163274d4a8b60e21b81526001600160a01b039586166004820181905295839082906024908290849089165af1908115610b8b578391610b77575b5050843b15610b7357604051639c9b2e2160e01b8082526001600160a01b038516600483015291908381602481838b5af1908115610b68578491610b54575b5050853b15610b50576040519182526001600160a01b03166004820152818160248183895af18015610b4557610b2d575b50503384526007602052604084205460ff1615610b2457610af460015b6005546001600160a01b038416875260066020526040808820919091555190610ace826112e8565b6001600160a01b0384168252602082018590526040820186905215156060820152611392565b6001600160a01b03167f81e0425695366f784cf3a3f4055870cb169ef460aa3daff87d6afd0498b01e798480a480f35b610af484610aa6565b610b36906112bf565b610b41578338610a89565b8380fd5b6040513d84823e3d90fd5b8280fd5b610b5d906112bf565b610b50578238610a58565b6040513d86823e3d90fd5b5080fd5b610b80906112bf565b610b73578138610a19565b6040513d85823e3d90fd5b610bb991955060203d602011610bc0575b610bb18183611303565b810190611333565b93386109cb565b503d610ba7565b610be191945060203d602011610bc057610bb18183611303565b923861097b565b92959750929590939750601f19808483030185528835601e1984360301811215610c66578301602081359101916001600160401b038211610c62578136038313610c62578f9360209391601f84600197818897968897875287870137858286010152011601019901940194019093899795928d979561093e565b8f80fd5b8e80fd5b634e487b7160e01b600052603260045260246000fd5b610c9a91955060203d602011610bc057610bb18183611303565b93386108bd565b6040513d8a823e3d90fd5b60405162461bcd60e51b815260206004820152600a6024820152690626840c8c2f240dac2f60b31b6044820152606490fd5b60405162461bcd60e51b815260206004820152602b60248201527f4261736520746f6b656e206f72206172746973742063616e6e6f74206265207a60448201526a65726f206164647265737360a81b6064820152608490fd5b506001600160a01b03881615156107bf565b60405162461bcd60e51b815260206004820152602a60248201527f496e76616c696420555249206c656e6774682c20737570706c79206f72207669604482015269727475616c206261736560b01b6064820152608490fd5b50600160643510156107a8565b50600160843510156107a2565b60405162461bcd60e51b815260206004820152601e60248201527f496e636f6d706c657465206e616d652c2073796d626f6c206f722055524900006044820152606490fd5b508560011015610c6a576020850135601e19863603018112156104e45785018035906001600160401b0382116104e45760208236039101136104e4571515610793565b508515610c6a578435601e19863603018112156104e45785018035906001600160401b0382116104e45760208236039101136104e457151561078d565b50831515610787565b8135815260209182019101610763565b8b80fd5b634e487b7160e01b89526041600452602489fd5b8880fd5b8580fd5b50346101465780600319360112610146576002546040516001600160a01b039091168152602090f35b503461014657602036600319011261014657600435600554811015610b7357610f0a90611257565b5080546001820154600290920154604080516001600160a01b03938416815293831660208501529181169183019190915260a01c60ff1615156060820152608090f35b5034610146578060031936011261014657610f6661143a565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101465780600319360112610146576004546040516001600160a01b039091168152602090f35b50346101465760403660031901126101465780610feb6111fb565b610ff3611211565b610ffb61143a565b6001600160a01b0391821691823b1561104a5760248492836040519586948593639c9b2e2160e01b85521660048401525af18015610b455761103a5750f35b611043906112bf565b6101465780f35b505050fd5b5034610146576020366003190112610146576020906040906001600160a01b036110776111fb565b168152600683522054604051908152f35b5034610146576020366003190112610146577f388ece3ab4f03d7d959ff6380802bba6b94acf4ef0d80d353bd311e5b27b7a1860206110c56111fb565b6110cd61143a565b600280546001600160a01b0319166001600160a01b03929092169182179055604051908152a180f35b5034610146576060366003190112610146576111106111fb565b816024356001600160401b038111610b7357611130903690600401611227565b9061113961143a565b6001600160a01b0393841691823b15610b41579190839060405195869463145bf25560e31b86528060448701604060048901525260648601929184905b8282106111ab575050505090838092604435602483015203925af18015610b455761119f575080f35b6111a8906112bf565b80f35b92959650929093508435908282168092036111db5760019181526020809101950192019286938896959392611176565b8780fd5b905034610b735781600319360112610b73576020906005548152f35b600435906001600160a01b03821682036104e457565b602435906001600160a01b03821682036104e457565b9181601f840112156104e4578235916001600160401b0383116104e4576020808501948460051b0101116104e457565b600554811015610c6a576003906005600052027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190600090565b9181601f840112156104e4578235916001600160401b0383116104e457602083818601950101116104e457565b6001600160401b0381116112d257604052565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b038211176112d257604052565b90601f801991011681019081106001600160401b038211176112d257604052565b6024359081151582036104e457565b908160209103126104e457516001600160a01b03811681036104e45790565b919082519283825260005b84811061137e575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161135d565b600554680100000000000000008110156112d2578060016113b69201600555611257565b61142457815181546001600160a01b039182166001600160a01b031991821617835560208401516001840180549184169190921617905560408301516002909201805460609094015160ff60a01b90151560a01b16929091166001600160a81b031990931692909217179055565b634e487b7160e01b600052600060045260246000fd5b6000546001600160a01b0316330361144e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fdfea26469706673582212208b59df7b8f50ed757d7cd80fa0c4892144e82359d23e68b15619fcb025ec860c64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ab0ab38ade96af42742b0030f201e05ecca127d4000000000000000000000000dce6609d7b9c933e9acc453eda6713c8b9efa067000000000000000000000000b7b7b8df8caf2829971329bd71d0b7127d0734be00000000000000000000000080f9aa21e8f3c21de9077008740371b5357a9dbf
-----Decoded View---------------
Arg [0] : _GBTFactory (address): 0xaB0Ab38Ade96aF42742b0030F201E05eCca127d4
Arg [1] : _GNFTFactory (address): 0xdCE6609d7b9c933E9aCC453EDA6713c8B9efA067
Arg [2] : _XGBTFactory (address): 0xb7b7B8DF8cAF2829971329BD71D0b7127D0734be
Arg [3] : _treasury (address): 0x80f9aA21E8f3C21dE9077008740371B5357A9DBF
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000ab0ab38ade96af42742b0030f201e05ecca127d4
Arg [1] : 000000000000000000000000dce6609d7b9c933e9acc453eda6713c8b9efa067
Arg [2] : 000000000000000000000000b7b7b8df8caf2829971329bd71d0b7127d0734be
Arg [3] : 00000000000000000000000080f9aa21e8f3c21de9077008740371b5357a9dbf
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.