{"file_path":"contracts/SecurityToken.sol","creation_status":"success","source_code":"// SPDX-License-Identifier: GPL-3.0\r\npragma solidity 0.8.16;\r\n\r\nimport './interfaces/IERC20.sol';\r\nimport './interfaces/IManagement.sol';\r\nimport './BaseERC20.sol';\r\nimport './interfaces/IUpgradedToken.sol';\r\n\r\ncontract SecurityToken  is BaseERC20 {\r\n    uint8 public transferFlag = 1;\r\n    bool public upgraded;\r\n    address public upgradedAddress;\r\n    address public management;\r\n    bool public paused;\r\n    address public issuer;\r\n    \r\n    event SetSTManagement(address indexed from, address indexed newManagement);\r\n    event Issue(address indexed from, address indexed to, uint256 value);\r\n    event Redeem(address indexed from, address indexed to, uint256 value);\r\n    event Paused(bool paused);\r\n    event Flag(uint8 transferFlag);\r\n    event Upgrade(address newAddress);\r\n\r\n    modifier whenNotPaused() {\r\n        require(!paused,\"Paused\");\r\n        _;\r\n    } \r\n\r\n    modifier onlyManagement() {\r\n        require(msg.sender == management,\"Caller is not management\");\r\n        _;\r\n    }\r\n\r\n    modifier onlyContractManager() {\r\n        require(IManagement(management).isContractManager(msg.sender),\"Caller is not contract manager\");\r\n        _;\r\n    }\r\n\r\n    constructor(\r\n        string memory _name, \r\n        address _issuer,\r\n        uint _amount,\r\n        address _management\r\n    ) BaseERC20(_name) {\r\n        require(_management!= address(0));\r\n        management = _management;\r\n        issuer = _issuer;\r\n        decimals = _amount;\r\n    }\r\n\r\n\r\n    function transfer(\r\n        address to, \r\n        uint value\r\n    )external whenNotPaused returns (bool) {\r\n         if(upgraded){\r\n            return IUpgradedToken(upgradedAddress).transferByLegacy(msg.sender, to, value);\r\n        }\r\n        if(transferFlag == 1){\r\n            require(IManagement(management).isWhiteContract(msg.sender)&&//发起者白名单合约\t\t\r\n                (IManagement(management).isWhiteInvestor(to) || IManagement(management).isRestrictInvestor(to)),'Forbid transfer');\r\n        }else if(transferFlag == 2){\r\n            require((IManagement(management).isWhiteContract(msg.sender)||IManagement(management).isWhiteInvestor(msg.sender) || IManagement(management).isRestrictInvestor(msg.sender)) &&\r\n                (IManagement(management).isWhiteInvestor(to) || IManagement(management).isRestrictInvestor(to)),'Forbid transfer');//发起者平台用户\r\n        }else{\t\r\n            require(!IManagement(management).isBlockInvestor(msg.sender),'Block');//任何地址（非block地址）\r\n        }\r\n        _transfer(msg.sender, to, value);\r\n        return true;\r\n    }\r\n    \r\n    function transferFrom(\r\n        address from,\r\n        address to,\r\n        uint value\r\n    )external whenNotPaused  returns (bool) {\r\n        if(upgraded){\r\n            return IUpgradedToken(upgradedAddress).transferFromByLegacy(msg.sender, from ,to, value);\r\n        }\r\n        if(transferFlag == 1){\r\n            require(IManagement(management).isWhiteContract(msg.sender)&&//发起者白名单合约\r\n                (IManagement(management).isWhiteInvestor(from) || IManagement(management).isRestrictInvestor(from))&&\r\n                (IManagement(management).isWhiteContract(to)||IManagement(management).isWhiteInvestor(to) || IManagement(management).isRestrictInvestor(to)),'Forbid transferFrom');\r\n        }else if(transferFlag == 2){\r\n            require((IManagement(management).isWhiteContract(msg.sender)||IManagement(management).isWhiteInvestor(msg.sender) || IManagement(management).isRestrictInvestor(msg.sender))&& //发起者平台用户\r\n                (IManagement(management).isWhiteInvestor(from) || IManagement(management).isRestrictInvestor(from))&&\r\n                (IManagement(management).isWhiteContract(to)||IManagement(management).isWhiteInvestor(to) || IManagement(management).isRestrictInvestor(to)),'Forbid transferFrom');\r\n        }else{\t\r\n            require(!IManagement(management).isBlockInvestor(from),'Block'); //任何地址（非block地址）\r\n        }\r\n        if (_allowance[from][msg.sender] != MAX_INT) {\r\n            _allowance[from][msg.sender] -=  value;\r\n        }\r\n        _transfer(from, to, value);\r\n        return true;\r\n    }\r\n    function totalSupply() override public view returns (uint) {\r\n        if (upgraded) {\r\n            return IUpgradedToken(upgradedAddress).totalSupply();\r\n        } else {\r\n            return super.totalSupply();\r\n        }\r\n    }\r\n    function approve(address _spender, uint _value) public override returns(bool) {\r\n        if (upgraded) {\r\n            return IUpgradedToken(upgradedAddress).approveByLegacy(msg.sender, _spender, _value);\r\n        } else {\r\n            return super.approve(_spender, _value);\r\n        }\r\n    }\r\n    function balanceOf(address who) public view override returns (uint) {\r\n        if (upgraded) {\r\n            return IUpgradedToken(upgradedAddress).balanceOf(who);\r\n        } else {\r\n            return super.balanceOf(who);\r\n        }\r\n    }\r\n    function allowance(address _owner, address _spender) public view override returns (uint remaining) {\r\n        if (upgraded) {\r\n            return IUpgradedToken(upgradedAddress).allowance(_owner, _spender);\r\n        } else {\r\n            return super.allowance(_owner, _spender);\r\n        }\r\n    }\r\n\r\n    function setManagement(address _management) external onlyManagement  {\r\n        require(_management!= address(0));\r\n        management = _management;\r\n        emit SetSTManagement(address(this),_management);\r\n    }\r\n\r\n    function setTransferFlag(uint8 _transferFlag) external onlyContractManager {\r\n        transferFlag = _transferFlag;\r\n        emit Flag(_transferFlag);\r\n    }\r\n\r\n    function setPause(bool _paused) external onlyContractManager {\r\n        paused = _paused;\r\n        emit Paused(_paused);\r\n    }\r\n\r\n    function issue(\r\n        address investor,\r\n        uint256 value\r\n    ) external onlyContractManager  {\r\n        if (transferFlag == 1 || transferFlag == 2){\r\n            require(IManagement(management).isWhiteInvestor(investor) || IManagement(management).isWhiteContract(investor),\"Forbid issue\");\r\n        }else{\r\n            require(!IManagement(management).isBlockInvestor(investor),\"Block\"); //任何地址（非blocklist地址）\r\n        }\r\n        _mint(investor,value);\r\n        emit Issue(address(this),investor,value);\r\n    }\r\n\r\n    function redeem(\r\n        address investor,\r\n        uint256 value\r\n    ) external onlyContractManager {\r\n        _burn(investor,value);\r\n        emit Redeem(address(this),investor,value);\r\n    }\r\n\r\n    function upgrade(address _upgradedAddress) external onlyContractManager {\r\n        require(_upgradedAddress!= address(0));\r\n        upgraded = true;\r\n        upgradedAddress = _upgradedAddress;\r\n        emit Upgrade(_upgradedAddress);\r\n    }\r\n}\r\n","deployed_bytecode":"0x608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063a9059cbb11610097578063cca3e83211610071578063cca3e83214610328578063d4a22bde14610348578063dd336c121461035b578063dd62ed3e1461038657600080fd5b8063a9059cbb146102f0578063bedb86fb14610303578063c28de2cd1461031657600080fd5b806370a082311461027d578063867904b41461029057806388125b70146102a357806388a8d602146102b657806395d89b41146102c9578063a393cedc146102d157600080fd5b80631e9a6950116101305780631e9a69501461021857806323b872dd1461022b57806326976e3f1461023e578063313ce567146102575780633eaaf86b146102605780635c975abb1461026957600080fd5b806306fdde03146101785780630900f01014610196578063095ea7b3146101ab578063098d3228146101ce57806318160ddd146101e55780631d143848146101ed575b600080fd5b610180610399565b60405161018d91906119ee565b60405180910390f35b6101a96101a4366004611a53565b610427565b005b6101be6101b9366004611a6e565b61053c565b604051901515815260200161018d565b6101d760001981565b60405190815260200161018d565b6101d76105eb565b600854610200906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b6101a9610226366004611a6e565b610681565b6101be610239366004611a98565b610758565b600654610200906201000090046001600160a01b031681565b6101d760025481565b6101d760035481565b6007546101be90600160a01b900460ff1681565b6101d761028b366004611a53565b610d6f565b6101a961029e366004611a6e565b610e1a565b6101a96102b1366004611ad4565b6110b4565b600754610200906001600160a01b031681565b61018061117e565b6006546102de9060ff1681565b60405160ff909116815260200161018d565b6101be6102fe366004611a6e565b61118b565b6101a9610311366004611b08565b61158b565b6006546101be90610100900460ff1681565b6101d7610336366004611a53565b60046020526000908152604090205481565b6101a9610356366004611a53565b611660565b6101d7610369366004611b25565b600560209081526000928352604080842090915290825290205481565b6101d7610394366004611b25565b611719565b600080546103a690611b58565b80601f01602080910402602001604051908101604052809291908181526020018280546103d290611b58565b801561041f5780601f106103f45761010080835404028352916020019161041f565b820191906000526020600020905b81548152906001019060200180831161040257829003601f168201915b505050505081565b60075460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa15801561046f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104939190611b92565b6104b85760405162461bcd60e51b81526004016104af90611baf565b60405180910390fd5b6001600160a01b0381166104cb57600080fd5b600680546001600160a01b0383166201000002610100600160b01b0319909116176101001790556040517ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d906105319083906001600160a01b0391909116815260200190565b60405180910390a150565b600654600090610100900460ff16156105db5760065460405163aee92d3360e01b81523360048201526001600160a01b03858116602483015260448201859052620100009092049091169063aee92d33906064015b6020604051808303816000875af11580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d49190611b92565b90506105e5565b6105d483836117d4565b92915050565b600654600090610100900460ff161561067a57600660029054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106759190611be6565b905090565b5060035490565b60075460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa1580156106c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ed9190611b92565b6107095760405162461bcd60e51b81526004016104af90611baf565b61071382826117e1565b6040518181526001600160a01b0383169030907fd12200efa34901b99367694174c3b0d32c99585fdf37c7c26892136ddd0836d9906020015b60405180910390a35050565b600754600090600160a01b900460ff161561079e5760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b60448201526064016104af565b600654610100900460ff161561084157600654604051638b477adb60e01b81523360048201526001600160a01b0386811660248301528581166044830152606482018590526201000090920490911690638b477adb906084016020604051808303816000875af1158015610816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190611b92565b9050610d68565b60065460ff16600103610b485760075460405163ca14d1bb60e01b81523360048201526001600160a01b039091169063ca14d1bb906024015b602060405180830381865afa158015610897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bb9190611b92565b80156109a45750600754604051630199cceb60e31b81526001600160a01b03868116600483015290911690630cce675890602401602060405180830381865afa15801561090c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109309190611b92565b806109a4575060075460405163b09c4d3d60e01b81526001600160a01b0386811660048301529091169063b09c4d3d90602401602060405180830381865afa158015610980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a49190611b92565b8015610b01575060075460405163ca14d1bb60e01b81526001600160a01b0385811660048301529091169063ca14d1bb90602401602060405180830381865afa1580156109f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a199190611b92565b80610a8d5750600754604051630199cceb60e31b81526001600160a01b03858116600483015290911690630cce675890602401602060405180830381865afa158015610a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8d9190611b92565b80610b01575060075460405163b09c4d3d60e01b81526001600160a01b0385811660048301529091169063b09c4d3d90602401602060405180830381865afa158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190611b92565b610b435760405162461bcd60e51b8152602060048201526013602482015272466f72626964207472616e7366657246726f6d60681b60448201526064016104af565b610cf4565b60065460ff16600203610c695760075460405163ca14d1bb60e01b81523360048201526001600160a01b039091169063ca14d1bb90602401602060405180830381865afa158015610b9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc19190611b92565b80610c335750600754604051630199cceb60e31b81523360048201526001600160a01b0390911690630cce675890602401602060405180830381865afa158015610c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c339190611b92565b806108bb575060075460405163b09c4d3d60e01b81523360048201526001600160a01b039091169063b09c4d3d9060240161087a565b60075460405163e184f6cb60e01b81526001600160a01b0386811660048301529091169063e184f6cb90602401602060405180830381865afa158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd79190611b92565b15610cf45760405162461bcd60e51b81526004016104af90611bff565b6001600160a01b038416600090815260056020908152604080832033845290915290205460001914610d59576001600160a01b038416600090815260056020908152604080832033845290915281208054849290610d53908490611c34565b90915550505b610d64848484611865565b5060015b9392505050565b600654600090610100900460ff1615610df7576006546040516370a0823160e01b81526001600160a01b03848116600483015262010000909204909116906370a0823190602401602060405180830381865afa158015610dd3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e59190611be6565b6001600160a01b0382166000908152600460205260409020546105e5565b919050565b60075460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa158015610e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e869190611b92565b610ea25760405162461bcd60e51b81526004016104af90611baf565b60065460ff1660011480610ebb575060065460ff166002145b15610fe257600754604051630199cceb60e31b81526001600160a01b03848116600483015290911690630cce675890602401602060405180830381865afa158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190611b92565b80610fa2575060075460405163ca14d1bb60e01b81526001600160a01b0384811660048301529091169063ca14d1bb90602401602060405180830381865afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa29190611b92565b610fdd5760405162461bcd60e51b815260206004820152600c60248201526b466f7262696420697373756560a01b60448201526064016104af565b61106d565b60075460405163e184f6cb60e01b81526001600160a01b0384811660048301529091169063e184f6cb90602401602060405180830381865afa15801561102c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110509190611b92565b1561106d5760405162461bcd60e51b81526004016104af90611bff565b6110778282611913565b6040518181526001600160a01b0383169030907f4b2682685b046a3dae8e75ff49b82fa703e366056a43c6a791411011134f4f5d9060200161074c565b60075460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa1580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111209190611b92565b61113c5760405162461bcd60e51b81526004016104af90611baf565b6006805460ff191660ff83169081179091556040519081527fedb033101ee74a2510b0dade2be7e909662762ae8fbc98942ac3170f628e069490602001610531565b600180546103a690611b58565b600754600090600160a01b900460ff16156111d15760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b60448201526064016104af565b600654610100900460ff16156112275760065460405163370c4c0560e11b81523360048201526001600160a01b038581166024830152604482018590526201000090920490911690636e18980a90606401610591565b60065460ff166001036113cd5760075460405163ca14d1bb60e01b81523360048201526001600160a01b039091169063ca14d1bb906024015b602060405180830381865afa15801561127d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a19190611b92565b801561138a5750600754604051630199cceb60e31b81526001600160a01b03858116600483015290911690630cce675890602401602060405180830381865afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190611b92565b8061138a575060075460405163b09c4d3d60e01b81526001600160a01b0385811660048301529091169063b09c4d3d90602401602060405180830381865afa158015611366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138a9190611b92565b6113c85760405162461bcd60e51b815260206004820152600f60248201526e2337b93134b2103a3930b739b332b960891b60448201526064016104af565b611577565b60065460ff166002036114ee5760075460405163ca14d1bb60e01b81523360048201526001600160a01b039091169063ca14d1bb90602401602060405180830381865afa158015611422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114469190611b92565b806114b85750600754604051630199cceb60e31b81523360048201526001600160a01b0390911690630cce675890602401602060405180830381865afa158015611494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b89190611b92565b806112a1575060075460405163b09c4d3d60e01b81523360048201526001600160a01b039091169063b09c4d3d90602401611260565b60075460405163e184f6cb60e01b81523360048201526001600160a01b039091169063e184f6cb90602401602060405180830381865afa158015611536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155a9190611b92565b156115775760405162461bcd60e51b81526004016104af90611bff565b611582338484611865565b50600192915050565b60075460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa1580156115d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f79190611b92565b6116135760405162461bcd60e51b81526004016104af90611baf565b60078054821515600160a01b0260ff60a01b199091161790556040517f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd29061053190831515815260200190565b6007546001600160a01b031633146116ba5760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f74206d616e6167656d656e74000000000000000060448201526064016104af565b6001600160a01b0381166116cd57600080fd5b600780546001600160a01b0319166001600160a01b03831690811790915560405130907f183dc3c9790171f2cf061ea28dbd5041edf6ff72a23f039d595607079aecf2cb90600090a350565b600654600090610100900460ff16156117a957600654604051636eb1769f60e11b81526001600160a01b0385811660048301528481166024830152620100009092049091169063dd62ed3e90604401602060405180830381865afa158015611785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d49190611be6565b6001600160a01b038084166000908152600560209081526040808320938616835292905220546105d4565b6000611582338484611995565b6001600160a01b03821660009081526004602052604081208054839290611809908490611c34565b9250508190555080600360008282546118229190611c34565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161074c565b6001600160a01b0383166000908152600460205260408120805483929061188d908490611c34565b90915550506001600160a01b038216600090815260046020526040812080548392906118ba908490611c47565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161190691815260200190565b60405180910390a3505050565b80600360008282546119259190611c47565b90915550506001600160a01b03821660009081526004602052604081208054839290611952908490611c47565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161074c565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101611906565b600060208083528351808285015260005b81811015611a1b578581018301518582016040015282016119ff565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610e1557600080fd5b600060208284031215611a6557600080fd5b610d6882611a3c565b60008060408385031215611a8157600080fd5b611a8a83611a3c565b946020939093013593505050565b600080600060608486031215611aad57600080fd5b611ab684611a3c565b9250611ac460208501611a3c565b9150604084013590509250925092565b600060208284031215611ae657600080fd5b813560ff81168114610d6857600080fd5b8015158114611b0557600080fd5b50565b600060208284031215611b1a57600080fd5b8135610d6881611af7565b60008060408385031215611b3857600080fd5b611b4183611a3c565b9150611b4f60208401611a3c565b90509250929050565b600181811c90821680611b6c57607f821691505b602082108103611b8c57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611ba457600080fd5b8151610d6881611af7565b6020808252601e908201527f43616c6c6572206973206e6f7420636f6e7472616374206d616e616765720000604082015260600190565b600060208284031215611bf857600080fd5b5051919050565b602080825260059082015264426c6f636b60d81b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156105e5576105e5611c1e565b808201808211156105e5576105e5611c1e56fea2646970667358221220b4212043ded90bfc702c2f0312c0e6a6ac79a331e1b49909aca686924e598b0464736f6c63430008100033","optimization_enabled":true,"verified_twin_address_hash":null,"is_verified":true,"compiler_settings":{"libraries":{},"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"":["*"],"*":["*"]}}},"optimization_runs":200,"sourcify_repo_url":null,"decoded_constructor_args":[["iSNR",{"internalType":"string","name":"_name","type":"string"}],["0x0000000000000000000000000000000000000000",{"internalType":"address","name":"_issuer","type":"address"}],["18",{"internalType":"uint256","name":"_amount","type":"uint256"}],["0x96ABd1C04882BCe372203d43649be525F8AE87ba",{"internalType":"address","name":"_management","type":"address"}]],"compiler_version":"v0.8.16+commit.07a7930e","is_verified_via_verifier_alliance":false,"verified_at":"2026-01-09T05:10:14.239828Z","implementations":[],"proxy_type":null,"external_libraries":[],"creation_bytecode":"0x608060405260126002556006805460ff191660011790553480156200002357600080fd5b5060405162001fe638038062001fe68339810160408190526200004691620000e7565b8360006200005582826200027a565b5060016200006482826200027a565b50506001600160a01b0381166200007a57600080fd5b600780546001600160a01b039283166001600160a01b03199182161790915560088054949092169316929092179091556002555062000346565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620000e257600080fd5b919050565b60008060008060808587031215620000fe57600080fd5b84516001600160401b03808211156200011657600080fd5b818701915087601f8301126200012b57600080fd5b815181811115620001405762000140620000b4565b604051601f8201601f19908116603f011681019083821181831017156200016b576200016b620000b4565b81604052828152602093508a848487010111156200018857600080fd5b600091505b82821015620001ac57848201840151818301850152908301906200018d565b6000848483010152809850505050620001c7818801620000ca565b9450505060408501519150620001e060608601620000ca565b905092959194509250565b600181811c908216806200020057607f821691505b6020821081036200022157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200027557600081815260208120601f850160051c81016020861015620002505750805b601f850160051c820191505b8181101562000271578281556001016200025c565b5050505b505050565b81516001600160401b03811115620002965762000296620000b4565b620002ae81620002a78454620001eb565b8462000227565b602080601f831160018114620002e65760008415620002cd5750858301515b600019600386901b1c1916600185901b17855562000271565b600085815260208120601f198616915b828110156200031757888601518255948401946001909101908401620002f6565b5085821015620003365787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611c9080620003566000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063a9059cbb11610097578063cca3e83211610071578063cca3e83214610328578063d4a22bde14610348578063dd336c121461035b578063dd62ed3e1461038657600080fd5b8063a9059cbb146102f0578063bedb86fb14610303578063c28de2cd1461031657600080fd5b806370a082311461027d578063867904b41461029057806388125b70146102a357806388a8d602146102b657806395d89b41146102c9578063a393cedc146102d157600080fd5b80631e9a6950116101305780631e9a69501461021857806323b872dd1461022b57806326976e3f1461023e578063313ce567146102575780633eaaf86b146102605780635c975abb1461026957600080fd5b806306fdde03146101785780630900f01014610196578063095ea7b3146101ab578063098d3228146101ce57806318160ddd146101e55780631d143848146101ed575b600080fd5b610180610399565b60405161018d91906119ee565b60405180910390f35b6101a96101a4366004611a53565b610427565b005b6101be6101b9366004611a6e565b61053c565b604051901515815260200161018d565b6101d760001981565b60405190815260200161018d565b6101d76105eb565b600854610200906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b6101a9610226366004611a6e565b610681565b6101be610239366004611a98565b610758565b600654610200906201000090046001600160a01b031681565b6101d760025481565b6101d760035481565b6007546101be90600160a01b900460ff1681565b6101d761028b366004611a53565b610d6f565b6101a961029e366004611a6e565b610e1a565b6101a96102b1366004611ad4565b6110b4565b600754610200906001600160a01b031681565b61018061117e565b6006546102de9060ff1681565b60405160ff909116815260200161018d565b6101be6102fe366004611a6e565b61118b565b6101a9610311366004611b08565b61158b565b6006546101be90610100900460ff1681565b6101d7610336366004611a53565b60046020526000908152604090205481565b6101a9610356366004611a53565b611660565b6101d7610369366004611b25565b600560209081526000928352604080842090915290825290205481565b6101d7610394366004611b25565b611719565b600080546103a690611b58565b80601f01602080910402602001604051908101604052809291908181526020018280546103d290611b58565b801561041f5780601f106103f45761010080835404028352916020019161041f565b820191906000526020600020905b81548152906001019060200180831161040257829003601f168201915b505050505081565b60075460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa15801561046f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104939190611b92565b6104b85760405162461bcd60e51b81526004016104af90611baf565b60405180910390fd5b6001600160a01b0381166104cb57600080fd5b600680546001600160a01b0383166201000002610100600160b01b0319909116176101001790556040517ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d906105319083906001600160a01b0391909116815260200190565b60405180910390a150565b600654600090610100900460ff16156105db5760065460405163aee92d3360e01b81523360048201526001600160a01b03858116602483015260448201859052620100009092049091169063aee92d33906064015b6020604051808303816000875af11580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d49190611b92565b90506105e5565b6105d483836117d4565b92915050565b600654600090610100900460ff161561067a57600660029054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106759190611be6565b905090565b5060035490565b60075460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa1580156106c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ed9190611b92565b6107095760405162461bcd60e51b81526004016104af90611baf565b61071382826117e1565b6040518181526001600160a01b0383169030907fd12200efa34901b99367694174c3b0d32c99585fdf37c7c26892136ddd0836d9906020015b60405180910390a35050565b600754600090600160a01b900460ff161561079e5760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b60448201526064016104af565b600654610100900460ff161561084157600654604051638b477adb60e01b81523360048201526001600160a01b0386811660248301528581166044830152606482018590526201000090920490911690638b477adb906084016020604051808303816000875af1158015610816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190611b92565b9050610d68565b60065460ff16600103610b485760075460405163ca14d1bb60e01b81523360048201526001600160a01b039091169063ca14d1bb906024015b602060405180830381865afa158015610897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bb9190611b92565b80156109a45750600754604051630199cceb60e31b81526001600160a01b03868116600483015290911690630cce675890602401602060405180830381865afa15801561090c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109309190611b92565b806109a4575060075460405163b09c4d3d60e01b81526001600160a01b0386811660048301529091169063b09c4d3d90602401602060405180830381865afa158015610980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a49190611b92565b8015610b01575060075460405163ca14d1bb60e01b81526001600160a01b0385811660048301529091169063ca14d1bb90602401602060405180830381865afa1580156109f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a199190611b92565b80610a8d5750600754604051630199cceb60e31b81526001600160a01b03858116600483015290911690630cce675890602401602060405180830381865afa158015610a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8d9190611b92565b80610b01575060075460405163b09c4d3d60e01b81526001600160a01b0385811660048301529091169063b09c4d3d90602401602060405180830381865afa158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190611b92565b610b435760405162461bcd60e51b8152602060048201526013602482015272466f72626964207472616e7366657246726f6d60681b60448201526064016104af565b610cf4565b60065460ff16600203610c695760075460405163ca14d1bb60e01b81523360048201526001600160a01b039091169063ca14d1bb90602401602060405180830381865afa158015610b9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc19190611b92565b80610c335750600754604051630199cceb60e31b81523360048201526001600160a01b0390911690630cce675890602401602060405180830381865afa158015610c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c339190611b92565b806108bb575060075460405163b09c4d3d60e01b81523360048201526001600160a01b039091169063b09c4d3d9060240161087a565b60075460405163e184f6cb60e01b81526001600160a01b0386811660048301529091169063e184f6cb90602401602060405180830381865afa158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd79190611b92565b15610cf45760405162461bcd60e51b81526004016104af90611bff565b6001600160a01b038416600090815260056020908152604080832033845290915290205460001914610d59576001600160a01b038416600090815260056020908152604080832033845290915281208054849290610d53908490611c34565b90915550505b610d64848484611865565b5060015b9392505050565b600654600090610100900460ff1615610df7576006546040516370a0823160e01b81526001600160a01b03848116600483015262010000909204909116906370a0823190602401602060405180830381865afa158015610dd3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e59190611be6565b6001600160a01b0382166000908152600460205260409020546105e5565b919050565b60075460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa158015610e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e869190611b92565b610ea25760405162461bcd60e51b81526004016104af90611baf565b60065460ff1660011480610ebb575060065460ff166002145b15610fe257600754604051630199cceb60e31b81526001600160a01b03848116600483015290911690630cce675890602401602060405180830381865afa158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190611b92565b80610fa2575060075460405163ca14d1bb60e01b81526001600160a01b0384811660048301529091169063ca14d1bb90602401602060405180830381865afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa29190611b92565b610fdd5760405162461bcd60e51b815260206004820152600c60248201526b466f7262696420697373756560a01b60448201526064016104af565b61106d565b60075460405163e184f6cb60e01b81526001600160a01b0384811660048301529091169063e184f6cb90602401602060405180830381865afa15801561102c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110509190611b92565b1561106d5760405162461bcd60e51b81526004016104af90611bff565b6110778282611913565b6040518181526001600160a01b0383169030907f4b2682685b046a3dae8e75ff49b82fa703e366056a43c6a791411011134f4f5d9060200161074c565b60075460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa1580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111209190611b92565b61113c5760405162461bcd60e51b81526004016104af90611baf565b6006805460ff191660ff83169081179091556040519081527fedb033101ee74a2510b0dade2be7e909662762ae8fbc98942ac3170f628e069490602001610531565b600180546103a690611b58565b600754600090600160a01b900460ff16156111d15760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b60448201526064016104af565b600654610100900460ff16156112275760065460405163370c4c0560e11b81523360048201526001600160a01b038581166024830152604482018590526201000090920490911690636e18980a90606401610591565b60065460ff166001036113cd5760075460405163ca14d1bb60e01b81523360048201526001600160a01b039091169063ca14d1bb906024015b602060405180830381865afa15801561127d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a19190611b92565b801561138a5750600754604051630199cceb60e31b81526001600160a01b03858116600483015290911690630cce675890602401602060405180830381865afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190611b92565b8061138a575060075460405163b09c4d3d60e01b81526001600160a01b0385811660048301529091169063b09c4d3d90602401602060405180830381865afa158015611366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138a9190611b92565b6113c85760405162461bcd60e51b815260206004820152600f60248201526e2337b93134b2103a3930b739b332b960891b60448201526064016104af565b611577565b60065460ff166002036114ee5760075460405163ca14d1bb60e01b81523360048201526001600160a01b039091169063ca14d1bb90602401602060405180830381865afa158015611422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114469190611b92565b806114b85750600754604051630199cceb60e31b81523360048201526001600160a01b0390911690630cce675890602401602060405180830381865afa158015611494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b89190611b92565b806112a1575060075460405163b09c4d3d60e01b81523360048201526001600160a01b039091169063b09c4d3d90602401611260565b60075460405163e184f6cb60e01b81523360048201526001600160a01b039091169063e184f6cb90602401602060405180830381865afa158015611536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155a9190611b92565b156115775760405162461bcd60e51b81526004016104af90611bff565b611582338484611865565b50600192915050565b60075460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa1580156115d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f79190611b92565b6116135760405162461bcd60e51b81526004016104af90611baf565b60078054821515600160a01b0260ff60a01b199091161790556040517f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd29061053190831515815260200190565b6007546001600160a01b031633146116ba5760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f74206d616e6167656d656e74000000000000000060448201526064016104af565b6001600160a01b0381166116cd57600080fd5b600780546001600160a01b0319166001600160a01b03831690811790915560405130907f183dc3c9790171f2cf061ea28dbd5041edf6ff72a23f039d595607079aecf2cb90600090a350565b600654600090610100900460ff16156117a957600654604051636eb1769f60e11b81526001600160a01b0385811660048301528481166024830152620100009092049091169063dd62ed3e90604401602060405180830381865afa158015611785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d49190611be6565b6001600160a01b038084166000908152600560209081526040808320938616835292905220546105d4565b6000611582338484611995565b6001600160a01b03821660009081526004602052604081208054839290611809908490611c34565b9250508190555080600360008282546118229190611c34565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161074c565b6001600160a01b0383166000908152600460205260408120805483929061188d908490611c34565b90915550506001600160a01b038216600090815260046020526040812080548392906118ba908490611c47565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161190691815260200190565b60405180910390a3505050565b80600360008282546119259190611c47565b90915550506001600160a01b03821660009081526004602052604081208054839290611952908490611c47565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161074c565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101611906565b600060208083528351808285015260005b81811015611a1b578581018301518582016040015282016119ff565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610e1557600080fd5b600060208284031215611a6557600080fd5b610d6882611a3c565b60008060408385031215611a8157600080fd5b611a8a83611a3c565b946020939093013593505050565b600080600060608486031215611aad57600080fd5b611ab684611a3c565b9250611ac460208501611a3c565b9150604084013590509250925092565b600060208284031215611ae657600080fd5b813560ff81168114610d6857600080fd5b8015158114611b0557600080fd5b50565b600060208284031215611b1a57600080fd5b8135610d6881611af7565b60008060408385031215611b3857600080fd5b611b4183611a3c565b9150611b4f60208401611a3c565b90509250929050565b600181811c90821680611b6c57607f821691505b602082108103611b8c57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611ba457600080fd5b8151610d6881611af7565b6020808252601e908201527f43616c6c6572206973206e6f7420636f6e7472616374206d616e616765720000604082015260600190565b600060208284031215611bf857600080fd5b5051919050565b602080825260059082015264426c6f636b60d81b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156105e5576105e5611c1e565b808201808211156105e5576105e5611c1e56fea2646970667358221220b4212043ded90bfc702c2f0312c0e6a6ac79a331e1b49909aca686924e598b0464736f6c6343000810003300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000096abd1c04882bce372203d43649be525f8ae87ba000000000000000000000000000000000000000000000000000000000000000469534e5200000000000000000000000000000000000000000000000000000000","name":"SecurityToken","is_blueprint":false,"license_type":"none","is_fully_verified":true,"is_verified_via_eth_bytecode_db":true,"language":"solidity","evm_version":"default","can_be_visualized_via_sol2uml":true,"is_verified_via_sourcify":false,"additional_sources":[{"file_path":"contracts/interfaces/IERC20.sol","source_code":"// SPDX-License-Identifier: MIT\r\n\r\npragma solidity 0.8.16;\r\n/**\r\n * @dev Interface of the ERC20 standard as defined in the EIP.\r\n */\r\ninterface IERC20 {\r\n    /**\r\n     * @dev Returns the amount of tokens in existence.\r\n     */\r\n    function totalSupply() external view returns (uint256);\r\n\r\n    /**\r\n     * @dev Returns the amount of tokens owned by `account`.\r\n     */\r\n    function balanceOf(address account) external view returns (uint256);\r\n\r\n    /**\r\n     * @dev Moves `amount` tokens from the caller's account to `recipient`.\r\n     *\r\n     * Returns a boolean value indicating whether the operation succeeded.\r\n     *\r\n     * Emits a {Transfer} event.\r\n     */\r\n    function transfer(address recipient, uint256 amount) external returns (bool);\r\n\r\n    /**\r\n     * @dev Returns the remaining number of tokens that `spender` will be\r\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\r\n     * zero by default.\r\n     *\r\n     * This value changes when {approve} or {transferFrom} are called.\r\n     */\r\n    function allowance(address owner, address spender) external view returns (uint256);\r\n\r\n    /**\r\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\r\n     *\r\n     * Returns a boolean value indicating whether the operation succeeded.\r\n     *\r\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\r\n     * that someone may use both the old and the new allowance by unfortunate\r\n     * transaction ordering. One possible solution to mitigate this race\r\n     * condition is to first reduce the spender's allowance to 0 and set the\r\n     * desired value afterwards:\r\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r\n     *\r\n     * Emits an {Approval} event.\r\n     */\r\n    function approve(address spender, uint256 amount) external returns (bool);\r\n\r\n    /**\r\n     * @dev Moves `amount` tokens from `sender` to `recipient` using the\r\n     * allowance mechanism. `amount` is then deducted from the caller's\r\n     * allowance.\r\n     *\r\n     * Returns a boolean value indicating whether the operation succeeded.\r\n     *\r\n     * Emits a {Transfer} event.\r\n     */\r\n    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\r\n\r\n    /**\r\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\r\n     * another (`to`).\r\n     *\r\n     * Note that `value` may be zero.\r\n     */\r\n    event Transfer(address indexed from, address indexed to, uint256 value);\r\n\r\n    /**\r\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\r\n     * a call to {approve}. `value` is the new allowance.\r\n     */\r\n    event Approval(address indexed owner, address indexed spender, uint256 value);\r\n}\r\n"},{"file_path":"contracts/interfaces/IManagement.sol","source_code":"// SPDX-License-Identifier: GPL-3.0\r\npragma solidity 0.8.16;\r\n\r\ninterface IManagement {\r\n    \r\n    function platformFeeAddress() external view returns (address);\r\n\r\n    function isContractManager(address manager) external view returns (bool);\r\n\r\n    function isWhiteInvestor(address investor) external view returns (bool);\r\n\r\n    function isRestrictInvestor(address investor) external view returns (bool);\r\n\r\n    function isWhiteContract(address contractAddress) external view returns (bool);\r\n    \r\n    function isBlockInvestor(address investor) external view returns (bool);\r\n\r\n    \r\n}\r\n"},{"file_path":"contracts/interfaces/IUpgradedToken.sol","source_code":"// SPDX-License-Identifier: GPL-3.0\r\npragma solidity 0.8.16;\r\n\r\n\r\ninterface IUpgradedToken{\r\n    \r\n    function transferByLegacy (address sender,address to,uint256 value) external returns (bool) ;\r\n    \r\n    function transferFromByLegacy (address sender,address from,address to,uint256 value) external returns (bool);\r\n\r\n    function balanceOf(address account) external view returns (uint);\r\n\r\n    function approveByLegacy (address sender,address to,uint256 value) external returns (bool);\r\n\r\n    function allowance(address owner, address spender) external view returns (uint);\r\n\r\n    function totalSupply() external view returns (uint);\r\n    \r\n} \r\n\r\n   \r\n    \r\n  \r\n\r\n"},{"file_path":"contracts/BaseERC20.sol","source_code":"// SPDX-License-Identifier: GPL-3.0\r\npragma solidity 0.8.16;\r\n\r\ncontract  BaseERC20  {\r\n    uint public constant  MAX_INT = 2**256 - 1;\r\n\r\n    string public name;\r\n    string public symbol;\r\n    uint public  decimals = 18;\r\n    uint public _totalSupply;\r\n    mapping(address => uint256) public  _balanceOf;\r\n    mapping(address => mapping(address => uint256)) public _allowance;\r\n\r\n    event Approval(address indexed owner, address indexed spender, uint256 value);\r\n    event Transfer(address indexed from, address indexed to, uint256 value);\r\n    constructor(string memory _name){\r\n        name = _name;\r\n        symbol = _name;\r\n        \r\n    }\r\n    \r\n    function _mint(address to, uint256 value) internal {\r\n        _totalSupply +=  value;\r\n        _balanceOf[to] +=  value;\r\n        emit Transfer(address(0), to, value);\r\n    }\r\n\r\n    function _burn(address from, uint256 value) internal {\r\n        _balanceOf[from] -=  value;\r\n        _totalSupply -=  value;\r\n        emit Transfer(from, address(0), value);\r\n    }\r\n\r\n    function _transfer(\r\n        address from,\r\n        address to,\r\n        uint256 value\r\n    ) internal {\r\n        _balanceOf[from] -= value;\r\n        _balanceOf[to] += value;\r\n        emit Transfer(from, to, value);\r\n    }\r\n\r\n    function _approve(\r\n        address owner,\r\n        address spender,\r\n        uint256 value\r\n    ) internal {\r\n        _allowance[owner][spender] = value;\r\n        emit Approval(owner, spender, value);\r\n    }\r\n    function balanceOf(address account) public virtual view returns (uint256){\r\n        return _balanceOf[account];\r\n    }\r\n    function totalSupply() public virtual view returns (uint256){\r\n        return _totalSupply;\r\n    }\r\n    function allowance(address owner, address spender) public virtual view returns (uint256){\r\n        return _allowance[owner][spender];\r\n    }\r\n    function approve(address spender, uint256 value) public virtual returns (bool) {\r\n        _approve(msg.sender, spender, value);\r\n        return true;\r\n    }\r\n\r\n    \r\n}"}],"certified":false,"conflicting_implementations":null,"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_issuer","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_management","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"transferFlag","type":"uint8"}],"name":"Flag","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"paused","type":"bool"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"newManagement","type":"address"}],"name":"SetSTManagement","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"Upgrade","type":"event"},{"inputs":[],"name":"MAX_INT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"investor","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"issue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"issuer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"management","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"investor","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_management","type":"address"}],"name":"setManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_transferFlag","type":"uint8"}],"name":"setTransferFlag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFlag","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_upgradedAddress","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgraded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"upgradedAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"is_changed_bytecode":false,"is_partially_verified":false,"constructor_args":"00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000096abd1c04882bce372203d43649be525f8ae87ba000000000000000000000000000000000000000000000000000000000000000469534e5200000000000000000000000000000000000000000000000000000000"}