Source Code
Overview
S Balance
More Info
ContractCreator
Loading...
Loading
Contract Name:
ProposalCategory
Compiler Version
v0.5.17+commit.d19bba13
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-only pragma solidity ^0.5.0; import "../../abstract/LegacyMasterAware.sol"; import "../../interfaces/IMemberRoles.sol"; import "../../interfaces/IProposalCategory.sol"; import "./external/Governed.sol"; contract ProposalCategory is IProposalCategory, Governed, LegacyMasterAware { bool public constructorCheck; IMemberRoles internal mr; struct CategoryStruct { uint memberRoleToVote; uint majorityVotePerc; uint quorumPerc; uint[] allowedToCreateProposal; uint closingTime; uint minStake; } struct CategoryAction { uint defaultIncentive; address contractAddress; bytes2 contractName; } CategoryStruct[] internal allCategory; mapping(uint => CategoryAction) internal categoryActionData; mapping(uint => uint) public categoryABReq; mapping(uint => uint) public isSpecialResolution; mapping(uint => bytes) public categoryActionHashes; bool public categoryActionHashUpdated; /** * @dev Adds new category (Discontinued, moved functionality to newCategory) * @param _name Category name * @param _memberRoleToVote Voting Layer sequence in which the voting has to be performed. * @param _majorityVotePerc Majority Vote threshold for Each voting layer * @param _quorumPerc minimum threshold percentage required in voting to calculate result * @param _allowedToCreateProposal Member roles allowed to create the proposal * @param _closingTime Vote closing time for Each voting layer * @param _actionHash hash of details containing the action that has to be performed after proposal is accepted * @param _contractAddress address of contract to call after proposal is accepted * @param _contractName name of contract to be called after proposal is accepted * @param _incentives rewards to distributed after proposal is accepted */ function addCategory( string calldata _name, uint _memberRoleToVote, uint _majorityVotePerc, uint _quorumPerc, uint[] calldata _allowedToCreateProposal, uint _closingTime, string calldata _actionHash, address _contractAddress, bytes2 _contractName, uint[] calldata _incentives ) external {} /** * @dev Initiates Default settings for Proposal Category contract (Adding default categories) */ function proposalCategoryInitiate() external {} /** * @dev Gets Total number of categories added till now */ function totalCategories() external view returns (uint) { return allCategory.length; } /** * @dev Gets category details */ function category(uint _categoryId) external view returns (uint, uint, uint, uint, uint[] memory, uint, uint) { return ( _categoryId, allCategory[_categoryId].memberRoleToVote, allCategory[_categoryId].majorityVotePerc, allCategory[_categoryId].quorumPerc, allCategory[_categoryId].allowedToCreateProposal, allCategory[_categoryId].closingTime, allCategory[_categoryId].minStake ); } /** * @dev Gets category ab required and isSpecialResolution * @return the category id * @return if AB voting is required * @return is category a special resolution */ function categoryExtendedData(uint _categoryId) external view returns (uint, uint, uint) { return ( _categoryId, categoryABReq[_categoryId], isSpecialResolution[_categoryId] ); } /** * @dev Gets the category acion details * @param _categoryId is the category id in concern * @return the category id * @return the contract address * @return the contract name * @return the default incentive */ function categoryAction(uint _categoryId) external view returns (uint, address, bytes2, uint) { return ( _categoryId, categoryActionData[_categoryId].contractAddress, categoryActionData[_categoryId].contractName, categoryActionData[_categoryId].defaultIncentive ); } /** * @dev Gets the category acion details of a category id * @param _categoryId is the category id in concern * @return the category id * @return the contract address * @return the contract name * @return the default incentive * @return action function hash */ function categoryActionDetails(uint _categoryId) external view returns (uint, address, bytes2, uint, bytes memory) { return ( _categoryId, categoryActionData[_categoryId].contractAddress, categoryActionData[_categoryId].contractName, categoryActionData[_categoryId].defaultIncentive, categoryActionHashes[_categoryId] ); } /** * @dev Updates dependant contract addresses */ function changeDependentContractAddress() public { mr = IMemberRoles(ms.getLatestAddress("MR")); } /** * @dev Adds new category * @param _name Category name * @param _memberRoleToVote Voting Layer sequence in which the voting has to be performed. * @param _majorityVotePerc Majority Vote threshold for Each voting layer * @param _quorumPerc minimum threshold percentage required in voting to calculate result * @param _allowedToCreateProposal Member roles allowed to create the proposal * @param _closingTime Vote closing time for Each voting layer * @param _actionHash hash of details containing the action that has to be performed after proposal is accepted * @param _contractAddress address of contract to call after proposal is accepted * @param _contractName name of contract to be called after proposal is accepted * @param _incentives rewards to distributed after proposal is accepted * @param _functionHash function signature to be executed */ function newCategory( string memory _name, uint _memberRoleToVote, uint _majorityVotePerc, uint _quorumPerc, uint[] memory _allowedToCreateProposal, uint _closingTime, string memory _actionHash, address _contractAddress, bytes2 _contractName, uint[] memory _incentives, string memory _functionHash ) public onlyAuthorizedToGovern { require(_quorumPerc <= 100 && _majorityVotePerc <= 100, "Invalid percentage"); require((_contractName == "EX" && _contractAddress == address(0)) || bytes(_functionHash).length > 0); require(_incentives[3] <= 1, "Invalid special resolution flag"); //If category is special resolution role authorized should be member if (_incentives[3] == 1) { require(_memberRoleToVote == uint(IMemberRoles.Role.Member)); _majorityVotePerc = 0; _quorumPerc = 0; } _addCategory( _name, _memberRoleToVote, _majorityVotePerc, _quorumPerc, _allowedToCreateProposal, _closingTime, _actionHash, _contractAddress, _contractName, _incentives ); if (bytes(_functionHash).length > 0 && abi.encodeWithSignature(_functionHash).length == 4) { categoryActionHashes[allCategory.length - 1] = abi.encodeWithSignature(_functionHash); } } /** * @dev Changes the master address and update it's instance * @param _masterAddress is the new master address */ function changeMasterAddress(address _masterAddress) public { if (masterAddress != address(0)) require(masterAddress == msg.sender); masterAddress = _masterAddress; ms = ISAFURAMaster(_masterAddress); nxMasterAddress = _masterAddress; } /** * @dev Updates category details (Discontinued, moved functionality to editCategory) * @param _categoryId Category id that needs to be updated * @param _name Category name * @param _memberRoleToVote Voting Layer sequence in which the voting has to be performed. * @param _allowedToCreateProposal Member roles allowed to create the proposal * @param _majorityVotePerc Majority Vote threshold for Each voting layer * @param _quorumPerc minimum threshold percentage required in voting to calculate result * @param _closingTime Vote closing time for Each voting layer * @param _actionHash hash of details containing the action that has to be performed after proposal is accepted * @param _contractAddress address of contract to call after proposal is accepted * @param _contractName name of contract to be called after proposal is accepted * @param _incentives rewards to distributed after proposal is accepted */ function updateCategory( uint _categoryId, string memory _name, uint _memberRoleToVote, uint _majorityVotePerc, uint _quorumPerc, uint[] memory _allowedToCreateProposal, uint _closingTime, string memory _actionHash, address _contractAddress, bytes2 _contractName, uint[] memory _incentives ) public {} /** * @dev Updates category details * @param _categoryId Category id that needs to be updated * @param _name Category name * @param _memberRoleToVote Voting Layer sequence in which the voting has to be performed. * @param _allowedToCreateProposal Member roles allowed to create the proposal * @param _majorityVotePerc Majority Vote threshold for Each voting layer * @param _quorumPerc minimum threshold percentage required in voting to calculate result * @param _closingTime Vote closing time for Each voting layer * @param _actionHash hash of details containing the action that has to be performed after proposal is accepted * @param _contractAddress address of contract to call after proposal is accepted * @param _contractName name of contract to be called after proposal is accepted * @param _incentives rewards to distributed after proposal is accepted * @param _functionHash function signature to be executed */ function editCategory( uint _categoryId, string memory _name, uint _memberRoleToVote, uint _majorityVotePerc, uint _quorumPerc, uint[] memory _allowedToCreateProposal, uint _closingTime, string memory _actionHash, address _contractAddress, bytes2 _contractName, uint[] memory _incentives, string memory _functionHash ) public onlyAuthorizedToGovern { require(_verifyMemberRoles(_memberRoleToVote, _allowedToCreateProposal) == 1, "Invalid Role"); require(_quorumPerc <= 100 && _majorityVotePerc <= 100, "Invalid percentage"); require((_contractName == "EX" && _contractAddress == address(0)) || bytes(_functionHash).length > 0); require(_incentives[3] <= 1, "Invalid special resolution flag"); //If category is special resolution role authorized should be member if (_incentives[3] == 1) { require(_memberRoleToVote == uint(IMemberRoles.Role.Member)); _majorityVotePerc = 0; _quorumPerc = 0; } delete categoryActionHashes[_categoryId]; if (bytes(_functionHash).length > 0 && abi.encodeWithSignature(_functionHash).length == 4) { categoryActionHashes[_categoryId] = abi.encodeWithSignature(_functionHash); } allCategory[_categoryId].memberRoleToVote = _memberRoleToVote; allCategory[_categoryId].majorityVotePerc = _majorityVotePerc; allCategory[_categoryId].closingTime = _closingTime; allCategory[_categoryId].allowedToCreateProposal = _allowedToCreateProposal; allCategory[_categoryId].minStake = _incentives[0]; allCategory[_categoryId].quorumPerc = _quorumPerc; categoryActionData[_categoryId].defaultIncentive = _incentives[1]; categoryActionData[_categoryId].contractName = _contractName; categoryActionData[_categoryId].contractAddress = _contractAddress; categoryABReq[_categoryId] = _incentives[2]; isSpecialResolution[_categoryId] = _incentives[3]; emit Category(_categoryId, _name, _actionHash); } /** * @dev Internal call to add new category * @param _name Category name * @param _memberRoleToVote Voting Layer sequence in which the voting has to be performed. * @param _majorityVotePerc Majority Vote threshold for Each voting layer * @param _quorumPerc minimum threshold percentage required in voting to calculate result * @param _allowedToCreateProposal Member roles allowed to create the proposal * @param _closingTime Vote closing time for Each voting layer * @param _actionHash hash of details containing the action that has to be performed after proposal is accepted * @param _contractAddress address of contract to call after proposal is accepted * @param _contractName name of contract to be called after proposal is accepted * @param _incentives rewards to distributed after proposal is accepted */ function _addCategory( string memory _name, uint _memberRoleToVote, uint _majorityVotePerc, uint _quorumPerc, uint[] memory _allowedToCreateProposal, uint _closingTime, string memory _actionHash, address _contractAddress, bytes2 _contractName, uint[] memory _incentives ) internal { require(_verifyMemberRoles(_memberRoleToVote, _allowedToCreateProposal) == 1, "Invalid Role"); allCategory.push( CategoryStruct( _memberRoleToVote, _majorityVotePerc, _quorumPerc, _allowedToCreateProposal, _closingTime, _incentives[0] ) ); uint categoryId = allCategory.length - 1; categoryActionData[categoryId] = CategoryAction(_incentives[1], _contractAddress, _contractName); categoryABReq[categoryId] = _incentives[2]; isSpecialResolution[categoryId] = _incentives[3]; emit Category(categoryId, _name, _actionHash); } /** * @dev Internal call to check if given roles are valid or not */ function _verifyMemberRoles(uint _memberRoleToVote, uint[] memory _allowedToCreateProposal) internal view returns (uint) { uint totalRoles = mr.totalRoles(); if (_memberRoleToVote >= totalRoles) { return 0; } for (uint i = 0; i < _allowedToCreateProposal.length; i++) { if (_allowedToCreateProposal[i] >= totalRoles) { return 0; } } return 1; } }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity >=0.5.0; import "../interfaces/ISAFURAMaster.sol"; contract LegacyMasterAware { ISAFURAMaster public ms; address public nxMasterAddress; modifier onlyInternal { require(ms.isInternal(msg.sender)); _; } modifier onlyGovernance { require(msg.sender == ms.getLatestAddress("GV")); _; } modifier isMemberAndcheckPause { require(ms.isPause() == false && ms.isMember(msg.sender) == true); _; } modifier checkPause { require(ms.isPause() == false); _; } /** * @dev change master address * @param _masterAddress is the new address */ function changeMasterAddress(address _masterAddress) public { if (address(ms) != address(0)) { require(address(ms) == msg.sender, "Not master"); } ms = ISAFURAMaster(_masterAddress); nxMasterAddress = _masterAddress; } }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity >=0.5.0; interface IMemberRoles { enum Role {Unassigned, AdvisoryBoard, Member, Owner, Auditor} function join(address _userAddress, uint nonce, bytes calldata signature) external payable; function switchMembership(address _newAddress) external; function switchMembershipAndAssets( address newAddress, uint[] calldata coverIds, uint[] calldata stakingTokenIds ) external; function switchMembershipOf(address member, address _newAddress) external; function totalRoles() external view returns (uint256); function changeAuthorized(uint _roleId, address _newAuthorized) external; function setKycAuthAddress(address _add) external; function members(uint _memberRoleId) external view returns (uint, address[] memory memberArray); function numberOfMembers(uint _memberRoleId) external view returns (uint); function authorized(uint _memberRoleId) external view returns (address); function roles(address _memberAddress) external view returns (uint[] memory); function checkRole(address _memberAddress, uint _roleId) external view returns (bool); function getMemberLengthForAllRoles() external view returns (uint[] memory totalMembers); function memberAtIndex(uint _memberRoleId, uint index) external view returns (address, bool); function membersLength(uint _memberRoleId) external view returns (uint); event MemberRole(uint256 indexed roleId, bytes32 roleName, string roleDescription); event MemberJoined(address indexed newMember, uint indexed nonce); event switchedMembership(address indexed previousMember, address indexed newMember, uint timeStamp); event MembershipWithdrawn(address indexed member, uint timestamp); }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity >=0.5.0; interface IProposalCategory { event Category( uint indexed categoryId, string categoryName, string actionHash ); function categoryABReq(uint) external view returns (uint); function isSpecialResolution(uint) external view returns (uint); function categoryActionHashes(uint) external view returns (bytes memory); function categoryExtendedData(uint _categoryId) external view returns (uint, uint, uint); /// @dev Adds new category /// @param _name Category name /// @param _memberRoleToVote Voting Layer sequence in which the voting has to be performed. /// @param _allowedToCreateProposal Member roles allowed to create the proposal /// @param _majorityVotePerc Majority Vote threshold for Each voting layer /// @param _quorumPerc minimum threshold percentage required in voting to calculate result /// @param _closingTime Vote closing time for Each voting layer /// @param _actionHash hash of details containing the action that has to be performed after proposal is accepted /// @param _contractAddress address of contract to call after proposal is accepted /// @param _contractName name of contract to be called after proposal is accepted /// @param _incentives rewards to distributed after proposal is accepted function addCategory( string calldata _name, uint _memberRoleToVote, uint _majorityVotePerc, uint _quorumPerc, uint[] calldata _allowedToCreateProposal, uint _closingTime, string calldata _actionHash, address _contractAddress, bytes2 _contractName, uint[] calldata _incentives ) external; /// @dev gets category details function category(uint _categoryId) external view returns ( uint categoryId, uint memberRoleToVote, uint majorityVotePerc, uint quorumPerc, uint[] memory allowedToCreateProposal, uint closingTime, uint minStake ); ///@dev gets category action details function categoryAction(uint _categoryId) external view returns ( uint categoryId, address contractAddress, bytes2 contractName, uint defaultIncentive ); function categoryActionDetails(uint _categoryId) external view returns (uint, address, bytes2, uint, bytes memory); /// @dev Gets Total number of categories added till now function totalCategories() external view returns (uint numberOfCategories); /// @dev Updates category details /// @param _categoryId Category id that needs to be updated /// @param _name Category name /// @param _memberRoleToVote Voting Layer sequence in which the voting has to be performed. /// @param _allowedToCreateProposal Member roles allowed to create the proposal /// @param _majorityVotePerc Majority Vote threshold for Each voting layer /// @param _quorumPerc minimum threshold percentage required in voting to calculate result /// @param _closingTime Vote closing time for Each voting layer /// @param _actionHash hash of details containing the action that has to be performed after proposal is accepted /// @param _contractAddress address of contract to call after proposal is accepted /// @param _contractName name of contract to be called after proposal is accepted /// @param _incentives rewards to distributed after proposal is accepted function updateCategory( uint _categoryId, string calldata _name, uint _memberRoleToVote, uint _majorityVotePerc, uint _quorumPerc, uint[] calldata _allowedToCreateProposal, uint _closingTime, string calldata _actionHash, address _contractAddress, bytes2 _contractName, uint[] calldata _incentives ) external; }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity >=0.5.0; interface ISAFURAMaster { function tokenAddress() external view returns (address); function owner() external view returns (address); function emergencyAdmin() external view returns (address); function masterInitialized() external view returns (bool); function isInternal(address _add) external view returns (bool); function isPause() external view returns (bool check); function isMember(address _add) external view returns (bool); function checkIsAuthToGoverned(address _add) external view returns (bool); function getLatestAddress(bytes2 _contractName) external view returns (address payable contractAddress); function contractAddresses(bytes2 code) external view returns (address payable); function upgradeMultipleContracts( bytes2[] calldata _contractCodes, address payable[] calldata newAddresses ) external; function removeContracts(bytes2[] calldata contractCodesToRemove) external; function addNewInternalContracts( bytes2[] calldata _contractCodes, address payable[] calldata newAddresses, uint[] calldata _types ) external; function updateOwnerParameters(bytes8 code, address payable val) external; }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity >=0.5.0; interface IMaster { function getLatestAddress(bytes2 _module) external view returns (address); } contract Governed { address public masterAddress; // Name of the dApp, needs to be set by contracts inheriting this contract /// @dev modifier that allows only the authorized addresses to execute the function modifier onlyAuthorizedToGovern() { IMaster ms = IMaster(masterAddress); require(ms.getLatestAddress("GV") == msg.sender, "Not authorized"); _; } /// @dev checks if an address is authorized to govern function isAuthorizedToGovern(address _toCheck) public view returns (bool) { IMaster ms = IMaster(masterAddress); return (ms.getLatestAddress("GV") == _toCheck); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"categoryId","type":"uint256"},{"indexed":false,"internalType":"string","name":"categoryName","type":"string"},{"indexed":false,"internalType":"string","name":"actionHash","type":"string"}],"name":"Category","type":"event"},{"constant":false,"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"uint256","name":"_memberRoleToVote","type":"uint256"},{"internalType":"uint256","name":"_majorityVotePerc","type":"uint256"},{"internalType":"uint256","name":"_quorumPerc","type":"uint256"},{"internalType":"uint256[]","name":"_allowedToCreateProposal","type":"uint256[]"},{"internalType":"uint256","name":"_closingTime","type":"uint256"},{"internalType":"string","name":"_actionHash","type":"string"},{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"bytes2","name":"_contractName","type":"bytes2"},{"internalType":"uint256[]","name":"_incentives","type":"uint256[]"}],"name":"addCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_categoryId","type":"uint256"}],"name":"category","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"categoryABReq","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_categoryId","type":"uint256"}],"name":"categoryAction","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes2","name":"","type":"bytes2"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_categoryId","type":"uint256"}],"name":"categoryActionDetails","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes2","name":"","type":"bytes2"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"categoryActionHashUpdated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"categoryActionHashes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_categoryId","type":"uint256"}],"name":"categoryExtendedData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"changeDependentContractAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_masterAddress","type":"address"}],"name":"changeMasterAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"constructorCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_categoryId","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"uint256","name":"_memberRoleToVote","type":"uint256"},{"internalType":"uint256","name":"_majorityVotePerc","type":"uint256"},{"internalType":"uint256","name":"_quorumPerc","type":"uint256"},{"internalType":"uint256[]","name":"_allowedToCreateProposal","type":"uint256[]"},{"internalType":"uint256","name":"_closingTime","type":"uint256"},{"internalType":"string","name":"_actionHash","type":"string"},{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"bytes2","name":"_contractName","type":"bytes2"},{"internalType":"uint256[]","name":"_incentives","type":"uint256[]"},{"internalType":"string","name":"_functionHash","type":"string"}],"name":"editCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_toCheck","type":"address"}],"name":"isAuthorizedToGovern","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"isSpecialResolution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"masterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ms","outputs":[{"internalType":"contract ISAFURAMaster","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"uint256","name":"_memberRoleToVote","type":"uint256"},{"internalType":"uint256","name":"_majorityVotePerc","type":"uint256"},{"internalType":"uint256","name":"_quorumPerc","type":"uint256"},{"internalType":"uint256[]","name":"_allowedToCreateProposal","type":"uint256[]"},{"internalType":"uint256","name":"_closingTime","type":"uint256"},{"internalType":"string","name":"_actionHash","type":"string"},{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"bytes2","name":"_contractName","type":"bytes2"},{"internalType":"uint256[]","name":"_incentives","type":"uint256[]"},{"internalType":"string","name":"_functionHash","type":"string"}],"name":"newCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nxMasterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"proposalCategoryInitiate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalCategories","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_categoryId","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"uint256","name":"_memberRoleToVote","type":"uint256"},{"internalType":"uint256","name":"_majorityVotePerc","type":"uint256"},{"internalType":"uint256","name":"_quorumPerc","type":"uint256"},{"internalType":"uint256[]","name":"_allowedToCreateProposal","type":"uint256[]"},{"internalType":"uint256","name":"_closingTime","type":"uint256"},{"internalType":"string","name":"_actionHash","type":"string"},{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"bytes2","name":"_contractName","type":"bytes2"},{"internalType":"uint256[]","name":"_incentives","type":"uint256[]"}],"name":"updateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506122d9806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806386957731116100b8578063cf3acfbc1161007c578063cf3acfbc14610c11578063d365a08e14610c19578063d46655f414610c21578063d4aaafb414610c47578063da3f7bd114610d1e578063f17a3bec14610eb257610137565b8063869577311461038357806395566ebd146103a0578063a0b2d57f1461060e578063aef8123614610632578063b02bc3161461091e57610137565b8063525050e1116100ff578063525050e11461027057806354911e121461027857806357c7bec114610280578063674aa71214610312578063780052971461036657610137565b806307149ba31461013c5780630ea9c9841461017757806322ce725414610181578063253eca1f146101bb57806339275b0a14610256575b600080fd5b6101596004803603602081101561015257600080fd5b5035610eba565b60408051938452602084019290925282820152519081900360600190f35b61017f610edc565b005b6101a76004803603602081101561019757600080fd5b50356001600160a01b0316610f78565b604080519115158252519081900360200190f35b6101d8600480360360208110156101d157600080fd5b503561100a565b6040518088815260200187815260200186815260200185815260200180602001848152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561023c578181015183820152602001610224565b505050509050019850505050505050505060405180910390f35b61025e61113a565b60408051918252519081900360200190f35b6101a7611141565b6101a7611151565b61029d6004803603602081101561029657600080fd5b503561115a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102d75781810151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61032f6004803603602081101561032857600080fd5b50356111f5565b604080519485526001600160a01b0390931660208501526001600160f01b0319909116838301526060830152519081900360800190f35b61025e6004803603602081101561037c57600080fd5b5035611226565b61025e6004803603602081101561039957600080fd5b5035611238565b61017f60048036036101608110156103b757600080fd5b81359190810190604081016020820135600160201b8111156103d857600080fd5b8201836020820111156103ea57600080fd5b803590602001918460018302840111600160201b8311171561040b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595602086013595604081013595509193509150608081019060600135600160201b81111561046f57600080fd5b82018360208201111561048157600080fd5b803590602001918460208302840111600160201b831117156104a257600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092958435959094909350604081019250602001359050600160201b8111156104f957600080fd5b82018360208201111561050b57600080fd5b803590602001918460018302840111600160201b8311171561052c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160a01b03853516956001600160f01b031960208701351695919450925060608101915060400135600160201b81111561059d57600080fd5b8201836020820111156105af57600080fd5b803590602001918460208302840111600160201b831117156105d057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061124a945050505050565b610616611257565b604080516001600160a01b039092168252519081900360200190f35b61017f600480360361016081101561064957600080fd5b810190602081018135600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595602086013595604081013595509193509150608081019060600135600160201b8111156106fa57600080fd5b82018360208201111561070c57600080fd5b803590602001918460208302840111600160201b8311171561072d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092958435959094909350604081019250602001359050600160201b81111561078457600080fd5b82018360208201111561079657600080fd5b803590602001918460018302840111600160201b831117156107b757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160a01b03853516956001600160f01b031960208701351695919450925060608101915060400135600160201b81111561082857600080fd5b82018360208201111561083a57600080fd5b803590602001918460208302840111600160201b8311171561085b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156108aa57600080fd5b8201836020820111156108bc57600080fd5b803590602001918460018302840111600160201b831117156108dd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611266945050505050565b61017f600480360361018081101561093557600080fd5b81359190810190604081016020820135600160201b81111561095657600080fd5b82018360208201111561096857600080fd5b803590602001918460018302840111600160201b8311171561098957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595602086013595604081013595509193509150608081019060600135600160201b8111156109ed57600080fd5b8201836020820111156109ff57600080fd5b803590602001918460208302840111600160201b83111715610a2057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092958435959094909350604081019250602001359050600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160a01b03853516956001600160f01b031960208701351695919450925060608101915060400135600160201b811115610b1b57600080fd5b820183602082011115610b2d57600080fd5b803590602001918460208302840111600160201b83111715610b4e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b9d57600080fd5b820183602082011115610baf57600080fd5b803590602001918460018302840111600160201b83111715610bd057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115d5945050505050565b61017f611c4a565b610616611c4c565b61017f60048036036020811015610c3757600080fd5b50356001600160a01b0316611c5b565b610c6460048036036020811015610c5d57600080fd5b5035611cb9565b60405180868152602001856001600160a01b03166001600160a01b03168152602001846001600160f01b0319166001600160f01b031916815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610cdf578181015183820152602001610cc7565b50505050905090810190601f168015610d0c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61017f6004803603610140811015610d3557600080fd5b810190602081018135600160201b811115610d4f57600080fd5b820183602082011115610d6157600080fd5b803590602001918460018302840111600160201b83111715610d8257600080fd5b919390928235926020810135926040820135929091608081019060600135600160201b811115610db157600080fd5b820183602082011115610dc357600080fd5b803590602001918460208302840111600160201b83111715610de457600080fd5b91939092823592604081019060200135600160201b811115610e0557600080fd5b820183602082011115610e1757600080fd5b803590602001918460018302840111600160201b83111715610e3857600080fd5b919390926001600160a01b03833516926001600160f01b0319602082013516929190606081019060400135600160201b811115610e7457600080fd5b820183602082011115610e8657600080fd5b803590602001918460208302840111600160201b83111715610ea757600080fd5b509092509050611d99565b610616611da9565b6000818152600660209081526040808320546007909252909120549192909190565b600154604080516227050b60e31b81526126a960f11b600482015290516001600160a01b0390921691630138285891602480820192602092909190829003018186803b158015610f2b57600080fd5b505afa158015610f3f573d6000803e3d6000fd5b505050506040513d6020811015610f5557600080fd5b5051600380546001600160a01b0319166001600160a01b03909216919091179055565b60008054604080516227050b60e31b81526123ab60f11b600482015290516001600160a01b03928316928516918391630138285891602480820192602092909190829003018186803b158015610fcd57600080fd5b505afa158015610fe1573d6000803e3d6000fd5b505050506040513d6020811015610ff757600080fd5b50516001600160a01b0316149392505050565b6000806000806060600080876004898154811061102357fe5b90600052602060002090600602016000015460048a8154811061104257fe5b90600052602060002090600602016001015460048b8154811061106157fe5b90600052602060002090600602016002015460048c8154811061108057fe5b906000526020600020906006020160030160048d8154811061109e57fe5b90600052602060002090600602016004015460048e815481106110bd57fe5b9060005260206000209060060201600501548280548060200260200160405190810160405280929190818152602001828054801561111a57602002820191906000526020600020905b815481526020019060010190808311611106575b505050505092509650965096509650965096509650919395979092949650565b6004545b90565b600254600160a01b900460ff1681565b60095460ff1681565b60086020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081565b60008181526005602052604090206001810154905491926001600160a01b03821692600160a01b90920460f01b9190565b60066020526000908152604090205481565b60076020526000908152604090205481565b5050505050505050505050565b6001546001600160a01b031681565b600054604080516227050b60e31b81526123ab60f11b600482015290516001600160a01b039092169133918391630138285891602480820192602092909190829003018186803b1580156112b957600080fd5b505afa1580156112cd573d6000803e3d6000fd5b505050506040513d60208110156112e357600080fd5b50516001600160a01b031614611331576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b60648911158015611343575060648a11155b611389576040805162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b604482015290519081900360640190fd5b6108ab60f31b6001600160f01b031985161480156113ae57506001600160a01b038516155b806113ba575060008251115b6113c357600080fd5b6001836003815181106113d257fe5b6020026020010151111561142d576040805162461bcd60e51b815260206004820152601f60248201527f496e76616c6964207370656369616c207265736f6c7574696f6e20666c616700604482015290519081900360640190fd5b8260038151811061143a57fe5b6020026020010151600114156114605760028b1461145757600080fd5b60009950600098505b6114728c8c8c8c8c8c8c8c8c8c611db8565b60008251118015611511575060408051600481526024810191829052835190918491819060208401908083835b602083106114be5780518252601f19909201916020918201910161149f565b51815160209384036101000a600019018019909216911617905260405191909301819003902091850180516001600160e01b03199093166001600160e01b03909316929092179091525050905160041490505b156115c75760408051600481526024810191829052835190918491819060208401908083835b602083106115565780518252601f199092019160209182019101611537565b51815160001960209485036101000a810191821691199290921617909152604080519590930185900390942087820180516001600160e01b03166001600160e01b0319909216919091178152600454909401600090815260089091522094516115c595945091925061218b9050565b505b505050505050505050505050565b600054604080516227050b60e31b81526123ab60f11b600482015290516001600160a01b039092169133918391630138285891602480820192602092909190829003018186803b15801561162857600080fd5b505afa15801561163c573d6000803e3d6000fd5b505050506040513d602081101561165257600080fd5b50516001600160a01b0316146116a0576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6116aa8b896120b5565b6001146116ed576040805162461bcd60e51b815260206004820152600c60248201526b496e76616c696420526f6c6560a01b604482015290519081900360640190fd5b606489111580156116ff575060648a11155b611745576040805162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b604482015290519081900360640190fd5b6108ab60f31b6001600160f01b0319851614801561176a57506001600160a01b038516155b80611776575060008251115b61177f57600080fd5b60018360038151811061178e57fe5b602002602001015111156117e9576040805162461bcd60e51b815260206004820152601f60248201527f496e76616c6964207370656369616c207265736f6c7574696f6e20666c616700604482015290519081900360640190fd5b826003815181106117f657fe5b60200260200101516001141561181c5760028b1461181357600080fd5b60009950600098505b60008d815260086020526040812061183391612209565b600082511180156118d2575060408051600481526024810191829052835190918491819060208401908083835b6020831061187f5780518252601f199092019160209182019101611860565b51815160209384036101000a600019018019909216911617905260405191909301819003902091850180516001600160e01b03199093166001600160e01b03909316929092179091525050905160041490505b1561198f5760408051600481526024810191829052835190918491819060208401908083835b602083106119175780518252601f1990920191602091820191016118f8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206001600160e01b0319166020820180516001600160e01b038381831617835250505050600860008f8152602001908152602001600020908051906020019061198d92919061218b565b505b8a60048e8154811061199d57fe5b9060005260206000209060060201600001819055508960048e815481106119c057fe5b9060005260206000209060060201600101819055508660048e815481106119e357fe5b9060005260206000209060060201600401819055508760048e81548110611a0657fe5b90600052602060002090600602016003019080519060200190611a2a929190612250565b5082600081518110611a3857fe5b602002602001015160048e81548110611a4d57fe5b9060005260206000209060060201600501819055508860048e81548110611a7057fe5b90600052602060002090600602016002018190555082600181518110611a9257fe5b60209081029190910181015160008f815260059092526040909120908155600101805461ffff60a01b1916600160a01b60f087901c02176001600160a01b0319166001600160a01b038716179055825183906002908110611aef57fe5b6020026020010151600660008f81526020019081526020016000208190555082600381518110611b1b57fe5b6020026020010151600760008f8152602001908152602001600020819055508c7f2a65d0fe76508fb4e604d4804927dce75b70f82e64a2025e3bffb2fc003418508d88604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611b9f578181015183820152602001611b87565b50505050905090810190601f168015611bcc5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611bff578181015183820152602001611be7565b50505050905090810190601f168015611c2c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050505050505050505050565b565b6000546001600160a01b031681565b6000546001600160a01b031615611c83576000546001600160a01b03163314611c8357600080fd5b600080546001600160a01b039092166001600160a01b031992831681179091556001805483168217905560028054909216179055565b600081815260056020908152604080832060018082015491546008855283862080548551600261010095831615959095026000190190911693909304601f81018790048702840187019095528483528695869586956060958b956001600160a01b03831695600160a01b90930460f01b9490938391830182828015611d7f5780601f10611d5457610100808354040283529160200191611d7f565b820191906000526020600020905b815481529060010190602001808311611d6257829003601f168201915b505050505090509450945094509450945091939590929450565b5050505050505050505050505050565b6002546001600160a01b031681565b611dc289876120b5565b600114611e05576040805162461bcd60e51b815260206004820152600c60248201526b496e76616c696420526f6c6560a01b604482015290519081900360640190fd5b60046040518060c001604052808b81526020018a815260200189815260200188815260200187815260200183600081518110611e3d57fe5b602090810291909101810151909152825460018181018086556000958652948390208451600690930201918255838301519082015560408301516002820155606083015180519192611e9792600385019290910190612250565b506080820151816004015560a0820151816005015550505060006001600480549050039050604051806060016040528083600181518110611ed457fe5b60209081029190910181015182526001600160a01b03808816838301526001600160f01b03198716604093840152600085815260058352839020845181559184015160019092018054949093015160f01c600160a01b0261ffff60a01b19929091166001600160a01b03199094169390931716919091179055815182906002908110611f5c57fe5b6020026020010151600660008381526020019081526020016000208190555081600381518110611f8857fe5b60200260200101516007600083815260200190815260200160002081905550807f2a65d0fe76508fb4e604d4804927dce75b70f82e64a2025e3bffb2fc003418508c87604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561200c578181015183820152602001611ff4565b50505050905090810190601f1680156120395780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561206c578181015183820152602001612054565b50505050905090810190601f1680156120995780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a25050505050505050505050565b600080600360009054906101000a90046001600160a01b03166001600160a01b031663790e118c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561210657600080fd5b505afa15801561211a573d6000803e3d6000fd5b505050506040513d602081101561213057600080fd5b50519050808410612145576000915050612185565b60005b835181101561217e578184828151811061215e57fe5b60200260200101511061217657600092505050612185565b600101612148565b5060019150505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121cc57805160ff19168380011785556121f9565b828001600101855582156121f9579182015b828111156121f95782518255916020019190600101906121de565b5061220592915061228a565b5090565b50805460018160011615610100020316600290046000825580601f1061222f575061224d565b601f01602090049060005260206000209081019061224d919061228a565b50565b8280548282559060005260206000209081019282156121f957916020028201828111156121f95782518255916020019190600101906121de565b61113e91905b80821115612205576000815560010161229056fea265627a7a7231582059a8e761d7a3fbf078c930dbc789100e4d070ac4b02db1cbb74085c3926c3e4a64736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101375760003560e01c806386957731116100b8578063cf3acfbc1161007c578063cf3acfbc14610c11578063d365a08e14610c19578063d46655f414610c21578063d4aaafb414610c47578063da3f7bd114610d1e578063f17a3bec14610eb257610137565b8063869577311461038357806395566ebd146103a0578063a0b2d57f1461060e578063aef8123614610632578063b02bc3161461091e57610137565b8063525050e1116100ff578063525050e11461027057806354911e121461027857806357c7bec114610280578063674aa71214610312578063780052971461036657610137565b806307149ba31461013c5780630ea9c9841461017757806322ce725414610181578063253eca1f146101bb57806339275b0a14610256575b600080fd5b6101596004803603602081101561015257600080fd5b5035610eba565b60408051938452602084019290925282820152519081900360600190f35b61017f610edc565b005b6101a76004803603602081101561019757600080fd5b50356001600160a01b0316610f78565b604080519115158252519081900360200190f35b6101d8600480360360208110156101d157600080fd5b503561100a565b6040518088815260200187815260200186815260200185815260200180602001848152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561023c578181015183820152602001610224565b505050509050019850505050505050505060405180910390f35b61025e61113a565b60408051918252519081900360200190f35b6101a7611141565b6101a7611151565b61029d6004803603602081101561029657600080fd5b503561115a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102d75781810151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61032f6004803603602081101561032857600080fd5b50356111f5565b604080519485526001600160a01b0390931660208501526001600160f01b0319909116838301526060830152519081900360800190f35b61025e6004803603602081101561037c57600080fd5b5035611226565b61025e6004803603602081101561039957600080fd5b5035611238565b61017f60048036036101608110156103b757600080fd5b81359190810190604081016020820135600160201b8111156103d857600080fd5b8201836020820111156103ea57600080fd5b803590602001918460018302840111600160201b8311171561040b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595602086013595604081013595509193509150608081019060600135600160201b81111561046f57600080fd5b82018360208201111561048157600080fd5b803590602001918460208302840111600160201b831117156104a257600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092958435959094909350604081019250602001359050600160201b8111156104f957600080fd5b82018360208201111561050b57600080fd5b803590602001918460018302840111600160201b8311171561052c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160a01b03853516956001600160f01b031960208701351695919450925060608101915060400135600160201b81111561059d57600080fd5b8201836020820111156105af57600080fd5b803590602001918460208302840111600160201b831117156105d057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061124a945050505050565b610616611257565b604080516001600160a01b039092168252519081900360200190f35b61017f600480360361016081101561064957600080fd5b810190602081018135600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595602086013595604081013595509193509150608081019060600135600160201b8111156106fa57600080fd5b82018360208201111561070c57600080fd5b803590602001918460208302840111600160201b8311171561072d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092958435959094909350604081019250602001359050600160201b81111561078457600080fd5b82018360208201111561079657600080fd5b803590602001918460018302840111600160201b831117156107b757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160a01b03853516956001600160f01b031960208701351695919450925060608101915060400135600160201b81111561082857600080fd5b82018360208201111561083a57600080fd5b803590602001918460208302840111600160201b8311171561085b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156108aa57600080fd5b8201836020820111156108bc57600080fd5b803590602001918460018302840111600160201b831117156108dd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611266945050505050565b61017f600480360361018081101561093557600080fd5b81359190810190604081016020820135600160201b81111561095657600080fd5b82018360208201111561096857600080fd5b803590602001918460018302840111600160201b8311171561098957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595602086013595604081013595509193509150608081019060600135600160201b8111156109ed57600080fd5b8201836020820111156109ff57600080fd5b803590602001918460208302840111600160201b83111715610a2057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092958435959094909350604081019250602001359050600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160a01b03853516956001600160f01b031960208701351695919450925060608101915060400135600160201b811115610b1b57600080fd5b820183602082011115610b2d57600080fd5b803590602001918460208302840111600160201b83111715610b4e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b9d57600080fd5b820183602082011115610baf57600080fd5b803590602001918460018302840111600160201b83111715610bd057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115d5945050505050565b61017f611c4a565b610616611c4c565b61017f60048036036020811015610c3757600080fd5b50356001600160a01b0316611c5b565b610c6460048036036020811015610c5d57600080fd5b5035611cb9565b60405180868152602001856001600160a01b03166001600160a01b03168152602001846001600160f01b0319166001600160f01b031916815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610cdf578181015183820152602001610cc7565b50505050905090810190601f168015610d0c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61017f6004803603610140811015610d3557600080fd5b810190602081018135600160201b811115610d4f57600080fd5b820183602082011115610d6157600080fd5b803590602001918460018302840111600160201b83111715610d8257600080fd5b919390928235926020810135926040820135929091608081019060600135600160201b811115610db157600080fd5b820183602082011115610dc357600080fd5b803590602001918460208302840111600160201b83111715610de457600080fd5b91939092823592604081019060200135600160201b811115610e0557600080fd5b820183602082011115610e1757600080fd5b803590602001918460018302840111600160201b83111715610e3857600080fd5b919390926001600160a01b03833516926001600160f01b0319602082013516929190606081019060400135600160201b811115610e7457600080fd5b820183602082011115610e8657600080fd5b803590602001918460208302840111600160201b83111715610ea757600080fd5b509092509050611d99565b610616611da9565b6000818152600660209081526040808320546007909252909120549192909190565b600154604080516227050b60e31b81526126a960f11b600482015290516001600160a01b0390921691630138285891602480820192602092909190829003018186803b158015610f2b57600080fd5b505afa158015610f3f573d6000803e3d6000fd5b505050506040513d6020811015610f5557600080fd5b5051600380546001600160a01b0319166001600160a01b03909216919091179055565b60008054604080516227050b60e31b81526123ab60f11b600482015290516001600160a01b03928316928516918391630138285891602480820192602092909190829003018186803b158015610fcd57600080fd5b505afa158015610fe1573d6000803e3d6000fd5b505050506040513d6020811015610ff757600080fd5b50516001600160a01b0316149392505050565b6000806000806060600080876004898154811061102357fe5b90600052602060002090600602016000015460048a8154811061104257fe5b90600052602060002090600602016001015460048b8154811061106157fe5b90600052602060002090600602016002015460048c8154811061108057fe5b906000526020600020906006020160030160048d8154811061109e57fe5b90600052602060002090600602016004015460048e815481106110bd57fe5b9060005260206000209060060201600501548280548060200260200160405190810160405280929190818152602001828054801561111a57602002820191906000526020600020905b815481526020019060010190808311611106575b505050505092509650965096509650965096509650919395979092949650565b6004545b90565b600254600160a01b900460ff1681565b60095460ff1681565b60086020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081565b60008181526005602052604090206001810154905491926001600160a01b03821692600160a01b90920460f01b9190565b60066020526000908152604090205481565b60076020526000908152604090205481565b5050505050505050505050565b6001546001600160a01b031681565b600054604080516227050b60e31b81526123ab60f11b600482015290516001600160a01b039092169133918391630138285891602480820192602092909190829003018186803b1580156112b957600080fd5b505afa1580156112cd573d6000803e3d6000fd5b505050506040513d60208110156112e357600080fd5b50516001600160a01b031614611331576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b60648911158015611343575060648a11155b611389576040805162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b604482015290519081900360640190fd5b6108ab60f31b6001600160f01b031985161480156113ae57506001600160a01b038516155b806113ba575060008251115b6113c357600080fd5b6001836003815181106113d257fe5b6020026020010151111561142d576040805162461bcd60e51b815260206004820152601f60248201527f496e76616c6964207370656369616c207265736f6c7574696f6e20666c616700604482015290519081900360640190fd5b8260038151811061143a57fe5b6020026020010151600114156114605760028b1461145757600080fd5b60009950600098505b6114728c8c8c8c8c8c8c8c8c8c611db8565b60008251118015611511575060408051600481526024810191829052835190918491819060208401908083835b602083106114be5780518252601f19909201916020918201910161149f565b51815160209384036101000a600019018019909216911617905260405191909301819003902091850180516001600160e01b03199093166001600160e01b03909316929092179091525050905160041490505b156115c75760408051600481526024810191829052835190918491819060208401908083835b602083106115565780518252601f199092019160209182019101611537565b51815160001960209485036101000a810191821691199290921617909152604080519590930185900390942087820180516001600160e01b03166001600160e01b0319909216919091178152600454909401600090815260089091522094516115c595945091925061218b9050565b505b505050505050505050505050565b600054604080516227050b60e31b81526123ab60f11b600482015290516001600160a01b039092169133918391630138285891602480820192602092909190829003018186803b15801561162857600080fd5b505afa15801561163c573d6000803e3d6000fd5b505050506040513d602081101561165257600080fd5b50516001600160a01b0316146116a0576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6116aa8b896120b5565b6001146116ed576040805162461bcd60e51b815260206004820152600c60248201526b496e76616c696420526f6c6560a01b604482015290519081900360640190fd5b606489111580156116ff575060648a11155b611745576040805162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b604482015290519081900360640190fd5b6108ab60f31b6001600160f01b0319851614801561176a57506001600160a01b038516155b80611776575060008251115b61177f57600080fd5b60018360038151811061178e57fe5b602002602001015111156117e9576040805162461bcd60e51b815260206004820152601f60248201527f496e76616c6964207370656369616c207265736f6c7574696f6e20666c616700604482015290519081900360640190fd5b826003815181106117f657fe5b60200260200101516001141561181c5760028b1461181357600080fd5b60009950600098505b60008d815260086020526040812061183391612209565b600082511180156118d2575060408051600481526024810191829052835190918491819060208401908083835b6020831061187f5780518252601f199092019160209182019101611860565b51815160209384036101000a600019018019909216911617905260405191909301819003902091850180516001600160e01b03199093166001600160e01b03909316929092179091525050905160041490505b1561198f5760408051600481526024810191829052835190918491819060208401908083835b602083106119175780518252601f1990920191602091820191016118f8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206001600160e01b0319166020820180516001600160e01b038381831617835250505050600860008f8152602001908152602001600020908051906020019061198d92919061218b565b505b8a60048e8154811061199d57fe5b9060005260206000209060060201600001819055508960048e815481106119c057fe5b9060005260206000209060060201600101819055508660048e815481106119e357fe5b9060005260206000209060060201600401819055508760048e81548110611a0657fe5b90600052602060002090600602016003019080519060200190611a2a929190612250565b5082600081518110611a3857fe5b602002602001015160048e81548110611a4d57fe5b9060005260206000209060060201600501819055508860048e81548110611a7057fe5b90600052602060002090600602016002018190555082600181518110611a9257fe5b60209081029190910181015160008f815260059092526040909120908155600101805461ffff60a01b1916600160a01b60f087901c02176001600160a01b0319166001600160a01b038716179055825183906002908110611aef57fe5b6020026020010151600660008f81526020019081526020016000208190555082600381518110611b1b57fe5b6020026020010151600760008f8152602001908152602001600020819055508c7f2a65d0fe76508fb4e604d4804927dce75b70f82e64a2025e3bffb2fc003418508d88604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611b9f578181015183820152602001611b87565b50505050905090810190601f168015611bcc5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611bff578181015183820152602001611be7565b50505050905090810190601f168015611c2c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050505050505050505050565b565b6000546001600160a01b031681565b6000546001600160a01b031615611c83576000546001600160a01b03163314611c8357600080fd5b600080546001600160a01b039092166001600160a01b031992831681179091556001805483168217905560028054909216179055565b600081815260056020908152604080832060018082015491546008855283862080548551600261010095831615959095026000190190911693909304601f81018790048702840187019095528483528695869586956060958b956001600160a01b03831695600160a01b90930460f01b9490938391830182828015611d7f5780601f10611d5457610100808354040283529160200191611d7f565b820191906000526020600020905b815481529060010190602001808311611d6257829003601f168201915b505050505090509450945094509450945091939590929450565b5050505050505050505050505050565b6002546001600160a01b031681565b611dc289876120b5565b600114611e05576040805162461bcd60e51b815260206004820152600c60248201526b496e76616c696420526f6c6560a01b604482015290519081900360640190fd5b60046040518060c001604052808b81526020018a815260200189815260200188815260200187815260200183600081518110611e3d57fe5b602090810291909101810151909152825460018181018086556000958652948390208451600690930201918255838301519082015560408301516002820155606083015180519192611e9792600385019290910190612250565b506080820151816004015560a0820151816005015550505060006001600480549050039050604051806060016040528083600181518110611ed457fe5b60209081029190910181015182526001600160a01b03808816838301526001600160f01b03198716604093840152600085815260058352839020845181559184015160019092018054949093015160f01c600160a01b0261ffff60a01b19929091166001600160a01b03199094169390931716919091179055815182906002908110611f5c57fe5b6020026020010151600660008381526020019081526020016000208190555081600381518110611f8857fe5b60200260200101516007600083815260200190815260200160002081905550807f2a65d0fe76508fb4e604d4804927dce75b70f82e64a2025e3bffb2fc003418508c87604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561200c578181015183820152602001611ff4565b50505050905090810190601f1680156120395780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561206c578181015183820152602001612054565b50505050905090810190601f1680156120995780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a25050505050505050505050565b600080600360009054906101000a90046001600160a01b03166001600160a01b031663790e118c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561210657600080fd5b505afa15801561211a573d6000803e3d6000fd5b505050506040513d602081101561213057600080fd5b50519050808410612145576000915050612185565b60005b835181101561217e578184828151811061215e57fe5b60200260200101511061217657600092505050612185565b600101612148565b5060019150505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121cc57805160ff19168380011785556121f9565b828001600101855582156121f9579182015b828111156121f95782518255916020019190600101906121de565b5061220592915061228a565b5090565b50805460018160011615610100020316600290046000825580601f1061222f575061224d565b601f01602090049060005260206000209081019061224d919061228a565b50565b8280548282559060005260206000209081019282156121f957916020028201828111156121f95782518255916020019190600101906121de565b61113e91905b80821115612205576000815560010161229056fea265627a7a7231582059a8e761d7a3fbf078c930dbc789100e4d070ac4b02db1cbb74085c3926c3e4a64736f6c63430005110032
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 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.