Token Bund V2.0
Overview ERC-20
Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
500,000 BUND
Holders:
273 addresses
Transfers:
-
Contract:
Decimals:
18
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BUND
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.11; import "./LERC20.sol"; contract BUND is LERC20 { constructor( uint256 totalSupply_, string memory name_, string memory symbol_, address admin_, address recoveryAdmin_, uint256 timelockPeriod_, address lossless_ ) LERC20( totalSupply_, name_, symbol_, admin_, recoveryAdmin_, timelockPeriod_, lossless_ ) {} }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ILosslessERC20.sol"; import "./ILosslessGovernance.sol"; import "./ILosslessStaking.sol"; import "./ILosslessReporting.sol"; import "./IProtectionStrategy.sol"; interface ILssController { // function getLockedAmount(ILERC20 _token, address _account) returns (uint256); // function getAvailableAmount(ILERC20 _token, address _account) external view returns (uint256 amount); function retrieveBlacklistedFunds( address[] calldata _addresses, ILERC20 _token, uint256 _reportId ) external returns (uint256); function whitelist(address _adr) external view returns (bool); function dexList(address _dexAddress) external returns (bool); function blacklist(address _adr) external view returns (bool); function admin() external view returns (address); function pauseAdmin() external view returns (address); function recoveryAdmin() external view returns (address); function guardian() external view returns (address); function losslessStaking() external view returns (ILssStaking); function losslessReporting() external view returns (ILssReporting); function losslessGovernance() external view returns (ILssGovernance); function dexTranferThreshold() external view returns (uint256); function settlementTimeLock() external view returns (uint256); function extraordinaryRetrievalProposalPeriod() external view returns (uint256); function pause() external; function unpause() external; function setAdmin(address _newAdmin) external; function setRecoveryAdmin(address _newRecoveryAdmin) external; function setPauseAdmin(address _newPauseAdmin) external; function setSettlementTimeLock(uint256 _newTimelock) external; function setDexTransferThreshold(uint256 _newThreshold) external; function setDexList(address[] calldata _dexList, bool _value) external; function setWhitelist(address[] calldata _addrList, bool _value) external; function addToBlacklist(address _adr) external; function resolvedNegatively(address _adr) external; function setStakingContractAddress(ILssStaking _adr) external; function setReportingContractAddress(ILssReporting _adr) external; function setGovernanceContractAddress(ILssGovernance _adr) external; function setTokenMintLimit(ILERC20 _token, uint256 limit) external; function setTokenMintPeriod(ILERC20 _token, uint256 _period) external; function setTokenBurnLimit(ILERC20 _token, uint256 _limit) external; function setTokenBurnPeriod(ILERC20 _token, uint256 _period) external; function proposeNewSettlementPeriod(ILERC20 _token, uint256 _seconds) external; function executeNewSettlementPeriod(ILERC20 _token) external; function activateEmergency(ILERC20 _token) external; function deactivateEmergency(ILERC20 _token) external; function setGuardian(address _newGuardian) external; function removeProtectedAddress(ILERC20 _token, address _protectedAddresss) external; function beforeTransfer( address _sender, address _recipient, uint256 _amount ) external; function beforeTransferFrom( address _msgSender, address _sender, address _recipient, uint256 _amount ) external; function beforeApprove( address _sender, address _spender, uint256 _amount ) external; function beforeIncreaseAllowance( address _msgSender, address _spender, uint256 _addedValue ) external; function beforeDecreaseAllowance( address _msgSender, address _spender, uint256 _subtractedValue ) external; function beforeMint(address _to, uint256 _amount) external; function beforeBurn(address _account, uint256 _amount) external; function afterTransfer( address _sender, address _recipient, uint256 _amount ) external; function setProtectedAddress( ILERC20 _token, address _protectedAddress, ProtectionStrategy _strategy ) external; function setExtraordinaryRetrievalPeriod(uint256 _newPEriod) external; function extraordinaryRetrieval( ILERC20 _token, address[] calldata addresses, uint256 fundsToRetrieve ) external; event AdminChange(address indexed _newAdmin); event RecoveryAdminChange(address indexed _newAdmin); event PauseAdminChange(address indexed _newAdmin); event GuardianSet( address indexed _oldGuardian, address indexed _newGuardian ); event NewProtectedAddress( ILERC20 indexed _token, address indexed _protectedAddress, address indexed _strategy ); event RemovedProtectedAddress( ILERC20 indexed _token, address indexed _protectedAddress ); event NewSettlementPeriodProposal(ILERC20 indexed _token, uint256 _seconds); event SettlementPeriodChange( ILERC20 indexed _token, uint256 _proposedTokenLockTimeframe ); event NewSettlementTimelock(uint256 indexed _timelock); event NewDexThreshold(uint256 indexed _newThreshold); event NewDex(address indexed _dexAddress); event DexRemoval(address indexed _dexAddress); event NewWhitelistedAddress(address indexed _whitelistAdr); event WhitelistedAddressRemoval(address indexed _whitelistAdr); event NewBlacklistedAddress(address indexed _blacklistedAddres); event AccountBlacklistRemoval(address indexed _adr); event NewStakingContract(ILssStaking indexed _newAdr); event NewReportingContract(ILssReporting indexed _newAdr); event NewGovernanceContract(ILssGovernance indexed _newAdr); event EmergencyActive(ILERC20 indexed _token); event EmergencyDeactivation(ILERC20 indexed _token); event NewMint( ILERC20 indexed token, address indexed account, uint256 indexed amount ); event NewMintLimit(ILERC20 indexed token, uint256 indexed limit); event NewMintPeriod(ILERC20 indexed token, uint256 indexed period); event NewBurn( ILERC20 indexed token, address indexed account, uint256 indexed amount ); event NewBurnLimit(ILERC20 indexed token, uint256 indexed limit); event NewBurnPeriod(ILERC20 indexed token, uint256 indexed period); event NewExtraordinaryPeriod( uint256 indexed extraordinaryRetrievalProposalPeriod ); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface ILERC20 { function name() external view returns (string memory); function admin() external view returns (address); function getAdmin() external view returns (address); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address _account) external view returns (uint256); function transfer(address _recipient, uint256 _amount) external returns (bool); function allowance(address _owner, address _spender) external view returns (uint256); function approve(address _spender, uint256 _amount) external returns (bool); function transferFrom( address _sender, address _recipient, uint256 _amount ) external returns (bool); function increaseAllowance(address _spender, uint256 _addedValue) external returns (bool); function decreaseAllowance(address _spender, uint256 _subtractedValue) external returns (bool); function transferOutBlacklistedFunds(address[] calldata _from) external; function setLosslessAdmin(address _newAdmin) external; function transferRecoveryAdminOwnership( address _candidate, bytes32 _keyHash ) external; function acceptRecoveryAdminOwnership(bytes memory _key) external; function proposeLosslessTurnOff() external; function executeLosslessTurnOff() external; function executeLosslessTurnOn() external; event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval( address indexed _owner, address indexed _spender, uint256 _value ); event NewAdmin(address indexed _newAdmin); event NewRecoveryAdminProposal(address indexed _candidate); event NewRecoveryAdmin(address indexed _newAdmin); event LosslessTurnOffProposal(uint256 _turnOffDate); event LosslessOff(); event LosslessOn(); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ILosslessERC20.sol"; import "./ILosslessStaking.sol"; import "./ILosslessReporting.sol"; import "./ILosslessController.sol"; interface ILssGovernance { function LSS_TEAM_INDEX() external view returns (uint256); function TOKEN_OWNER_INDEX() external view returns (uint256); function COMMITEE_INDEX() external view returns (uint256); function committeeMembersCount() external view returns (uint256); function walletDisputePeriod() external view returns (uint256); function losslessStaking() external view returns (ILssStaking); function losslessReporting() external view returns (ILssReporting); function losslessController() external view returns (ILssController); function isCommitteeMember(address _account) external view returns (bool); function getIsVoted(uint256 _reportId, uint256 _voterIndex) external view returns (bool); function getVote(uint256 _reportId, uint256 _voterIndex) external view returns (bool); function isReportSolved(uint256 _reportId) external view returns (bool); function reportResolution(uint256 _reportId) external view returns (bool); function getAmountReported(uint256 _reportId) external view returns (uint256); function setDisputePeriod(uint256 _timeFrame) external; function addCommitteeMembers(address[] memory _members) external; function removeCommitteeMembers(address[] memory _members) external; function losslessVote(uint256 _reportId, bool _vote) external; function tokenOwnersVote(uint256 _reportId, bool _vote) external; function committeeMemberVote(uint256 _reportId, bool _vote) external; function resolveReport(uint256 _reportId) external; function proposeWallet(uint256 _reportId, address wallet) external; function rejectWallet(uint256 _reportId) external; function retrieveFunds(uint256 _reportId) external; function retrieveCompensation() external; function claimCommitteeReward(uint256 _reportId) external; function setCompensationAmount(uint256 _amount) external; function losslessClaim(uint256 _reportId) external; function extaordinaryRetrieval(address[] calldata _address, ILERC20 _token) external; event NewCommitteeMembers(address[] _members); event CommitteeMembersRemoval(address[] _members); event LosslessTeamPositiveVote(uint256 indexed _reportId); event LosslessTeamNegativeVote(uint256 indexed _reportId); event TokenOwnersPositiveVote(uint256 indexed _reportId); event TokenOwnersNegativeVote(uint256 indexed _reportId); event CommitteeMemberPositiveVote( uint256 indexed _reportId, address indexed _member ); event CommitteeMemberNegativeVote( uint256 indexed _reportId, address indexed _member ); event ReportResolve(uint256 indexed _reportId, bool indexed _resolution); event WalletProposal(uint256 indexed _reportId, address indexed _wallet); event CommitteeMemberClaim( uint256 indexed _reportId, address indexed _member, uint256 indexed _amount ); event CommitteeMajorityReach( uint256 indexed _reportId, bool indexed _result ); event NewDisputePeriod(uint256 indexed _newPeriod); event WalletRejection(uint256 indexed _reportId); event FundsRetrieval(uint256 indexed _reportId, uint256 indexed _amount); event CompensationRetrieval( address indexed _wallet, uint256 indexed _amount ); event LosslessClaim( ILERC20 indexed _token, uint256 indexed _reportID, uint256 indexed _amount ); event ExtraordinaryProposalAccept(ILERC20 indexed _token); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ILosslessERC20.sol"; import "./ILosslessGovernance.sol"; import "./ILosslessStaking.sol"; import "./ILosslessController.sol"; interface ILssReporting { function reporterReward() external returns (uint256); function losslessReward() external returns (uint256); function stakersReward() external returns (uint256); function committeeReward() external returns (uint256); function reportLifetime() external view returns (uint256); function reportingAmount() external returns (uint256); function reportCount() external returns (uint256); function stakingToken() external returns (ILERC20); function losslessController() external returns (ILssController); function losslessGovernance() external returns (ILssGovernance); function getVersion() external pure returns (uint256); function getRewards() external view returns ( uint256 _reporter, uint256 _lossless, uint256 _committee, uint256 _stakers ); function report(ILERC20 _token, address _account) external returns (uint256); function reporterClaimableAmount(uint256 _reportId) external view returns (uint256); function getReportInfo(uint256 _reportId) external view returns ( address _reporter, address _reportedAddress, address _secondReportedAddress, uint256 _reportTimestamps, ILERC20 _reportTokens, bool _secondReports, bool _reporterClaimStatus ); function pause() external; function unpause() external; function setStakingToken(ILERC20 _stakingToken) external; function setLosslessGovernance(ILssGovernance _losslessGovernance) external; function setReportingAmount(uint256 _reportingAmount) external; function setReporterReward(uint256 _reward) external; function setLosslessReward(uint256 _reward) external; function setStakersReward(uint256 _reward) external; function setCommitteeReward(uint256 _reward) external; function setReportLifetime(uint256 _lifetime) external; function secondReport(uint256 _reportId, address _account) external; function reporterClaim(uint256 _reportId) external; function retrieveCompensation(address _adr, uint256 _amount) external; event ReportSubmission( ILERC20 indexed _token, address indexed _account, uint256 indexed _reportId ); event SecondReportSubmission( ILERC20 indexed _token, address indexed _account, uint256 indexed _reportId ); event NewReportingAmount(uint256 indexed _newAmount); event NewStakingToken(ILERC20 indexed _token); event NewGovernanceContract(ILssGovernance indexed _adr); event NewReporterReward(uint256 indexed _newValue); event NewLosslessReward(uint256 indexed _newValue); event NewStakersReward(uint256 indexed _newValue); event NewCommitteeReward(uint256 indexed _newValue); event NewReportLifetime(uint256 indexed _newValue); event ReporterClaim( address indexed _reporter, uint256 indexed _reportId, uint256 indexed _amount ); event CompensationRetrieve(address indexed _adr, uint256 indexed _amount); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ILosslessERC20.sol"; import "./ILosslessGovernance.sol"; import "./ILosslessReporting.sol"; import "./ILosslessController.sol"; interface ILssStaking { function stakingToken() external returns (ILERC20); function losslessReporting() external returns (ILssReporting); function losslessController() external returns (ILssController); function losslessGovernance() external returns (ILssGovernance); function stakingAmount() external returns (uint256); function getVersion() external pure returns (uint256); function getIsAccountStaked(uint256 _reportId, address _account) external view returns (bool); function getStakerCoefficient(uint256 _reportId, address _address) external view returns (uint256); function stakerClaimableAmount(uint256 _reportId) external view returns (uint256); function reportCoefficient(uint256 _reportId) external view returns (uint256); function pause() external; function unpause() external; function setLssReporting(ILssReporting _losslessReporting) external; function setStakingToken(ILERC20 _stakingToken) external; function setLosslessGovernance(ILssGovernance _losslessGovernance) external; function setStakingAmount(uint256 _stakingAmount) external; function stake(uint256 _reportId) external; function stakerClaim(uint256 _reportId) external; event NewStake( ILERC20 indexed _token, address indexed _account, uint256 indexed _reportId ); event StakerClaim( address indexed _staker, ILERC20 indexed _token, uint256 indexed _reportID, uint256 _amount ); event NewStakingAmount(uint256 indexed _newAmount); event NewStakingToken(ILERC20 indexed _newToken); event NewReportingContract(ILssReporting indexed _newContract); event NewGovernanceContract(ILssGovernance indexed _newContract); }
pragma solidity ^0.8.0; interface ProtectionStrategy { function isTransferAllowed( address token, address sender, address recipient, uint256 amount ) external; }
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.0; import "@openzeppelin/contracts/utils/Context.sol"; import "./interfaces/ILosslessERC20.sol"; import "./interfaces/ILosslessController.sol"; contract LERC20 is Context, ILERC20 { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; address public recoveryAdmin; address private recoveryAdminCandidate; bytes32 private recoveryAdminKeyHash; address public override admin; uint256 public timelockPeriod; uint256 public losslessTurnOffTimestamp; bool public isLosslessOn = true; ILssController public lossless; constructor( uint256 totalSupply_, string memory name_, string memory symbol_, address admin_, address recoveryAdmin_, uint256 timelockPeriod_, address lossless_ ) { _mint(_msgSender(), totalSupply_); _name = name_; _symbol = symbol_; admin = admin_; recoveryAdmin = recoveryAdmin_; recoveryAdminCandidate = address(0); recoveryAdminKeyHash = ""; timelockPeriod = timelockPeriod_; losslessTurnOffTimestamp = 0; lossless = ILssController(lossless_); } // --- LOSSLESS modifiers --- modifier lssAprove(address spender, uint256 amount) { if (isLosslessOn) { lossless.beforeApprove(_msgSender(), spender, amount); } _; } modifier lssTransfer(address recipient, uint256 amount) { if (isLosslessOn) { lossless.beforeTransfer(_msgSender(), recipient, amount); } _; } modifier lssTransferFrom( address sender, address recipient, uint256 amount ) { if (isLosslessOn) { lossless.beforeTransferFrom( _msgSender(), sender, recipient, amount ); } _; } modifier lssIncreaseAllowance(address spender, uint256 addedValue) { if (isLosslessOn) { lossless.beforeIncreaseAllowance(_msgSender(), spender, addedValue); } _; } modifier lssDecreaseAllowance(address spender, uint256 subtractedValue) { if (isLosslessOn) { lossless.beforeDecreaseAllowance( _msgSender(), spender, subtractedValue ); } _; } modifier onlyRecoveryAdmin() { require( _msgSender() == recoveryAdmin, "LERC20: Must be recovery admin" ); _; } // --- LOSSLESS management --- function transferOutBlacklistedFunds(address[] calldata from) external override { require( _msgSender() == address(lossless), "LERC20: Only lossless contract" ); uint256 fromLength = from.length; uint256 totalAmount = 0; for (uint256 i = 0; i < fromLength; i++) { address fromAddress = from[i]; uint256 fromBalance = _balances[fromAddress]; _balances[fromAddress] = 0; totalAmount += fromBalance; emit Transfer(fromAddress, address(lossless), fromBalance); } _balances[address(lossless)] += totalAmount; } function setLosslessAdmin(address newAdmin) external override onlyRecoveryAdmin { require(newAdmin != admin, "LERC20: Cannot set same address"); emit NewAdmin(newAdmin); admin = newAdmin; } function transferRecoveryAdminOwnership(address candidate, bytes32 keyHash) external override onlyRecoveryAdmin { recoveryAdminCandidate = candidate; recoveryAdminKeyHash = keyHash; emit NewRecoveryAdminProposal(candidate); } function acceptRecoveryAdminOwnership(bytes memory key) external override { require( _msgSender() == recoveryAdminCandidate, "LERC20: Must be canditate" ); require(keccak256(key) == recoveryAdminKeyHash, "LERC20: Invalid key"); emit NewRecoveryAdmin(recoveryAdminCandidate); recoveryAdmin = recoveryAdminCandidate; recoveryAdminCandidate = address(0); } function proposeLosslessTurnOff() external override onlyRecoveryAdmin { require( losslessTurnOffTimestamp == 0, "LERC20: TurnOff already proposed" ); require(isLosslessOn, "LERC20: Lossless already off"); losslessTurnOffTimestamp = block.timestamp + timelockPeriod; emit LosslessTurnOffProposal(losslessTurnOffTimestamp); } function executeLosslessTurnOff() external override onlyRecoveryAdmin { require(losslessTurnOffTimestamp != 0, "LERC20: TurnOff not proposed"); require( losslessTurnOffTimestamp <= block.timestamp, "LERC20: Time lock in progress" ); isLosslessOn = false; losslessTurnOffTimestamp = 0; emit LosslessOff(); } function executeLosslessTurnOn() external override onlyRecoveryAdmin { require(!isLosslessOn, "LERC20: Lossless already on"); losslessTurnOffTimestamp = 0; isLosslessOn = true; emit LosslessOn(); } function getAdmin() public view virtual override returns (address) { return admin; } // --- ERC20 methods --- function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override lssTransfer(recipient, amount) returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override lssAprove(spender, amount) returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override lssTransferFrom(sender, recipient, amount) returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "LERC20: transfer amount exceeds allowance" ); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual override lssIncreaseAllowance(spender, addedValue) returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual override lssDecreaseAllowance(spender, subtractedValue) returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "LERC20: decreased allowance below zero" ); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "LERC20: transfer from the zero address"); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "LERC20: transfer amount exceeds balance" ); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "LERC20: mint to the zero address"); _totalSupply += amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"recoveryAdmin_","type":"address"},{"internalType":"uint256","name":"timelockPeriod_","type":"uint256"},{"internalType":"address","name":"lossless_","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":[],"name":"LosslessOff","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessOn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_turnOffDate","type":"uint256"}],"name":"LosslessTurnOffProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"NewRecoveryAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_candidate","type":"address"}],"name":"NewRecoveryAdminProposal","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"},{"inputs":[{"internalType":"bytes","name":"key","type":"bytes"}],"name":"acceptRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLosslessOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lossless","outputs":[{"internalType":"contract ILssController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"losslessTurnOffTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoveryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setLosslessAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelockPeriod","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"from","type":"address[]"}],"name":"transferOutBlacklistedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"candidate","type":"address"},{"internalType":"bytes32","name":"keyHash","type":"bytes32"}],"name":"transferRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526001600b60006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50604051620033e0380380620033e0833981810160405281019062000052919062000617565b868686868686866200007a6200006d620001dc60201b60201c565b88620001e460201b60201c565b8560039080519060200190620000929291906200032a565b508460049080519060200190620000ab9291906200032a565b5083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600781905550816009819055506000600a8190555080600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050505050620008aa565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000257576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200024e9062000769565b60405180910390fd5b80600260008282546200026b9190620007ba565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200031e919062000828565b60405180910390a35050565b828054620003389062000874565b90600052602060002090601f0160209004810192826200035c5760008555620003a8565b82601f106200037757805160ff1916838001178555620003a8565b82800160010185558215620003a8579182015b82811115620003a75782518255916020019190600101906200038a565b5b509050620003b79190620003bb565b5090565b5b80821115620003d6576000816000905550600101620003bc565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6200040381620003ee565b81146200040f57600080fd5b50565b6000815190506200042381620003f8565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200047e8262000433565b810181811067ffffffffffffffff82111715620004a0576200049f62000444565b5b80604052505050565b6000620004b5620003da565b9050620004c3828262000473565b919050565b600067ffffffffffffffff821115620004e657620004e562000444565b5b620004f18262000433565b9050602081019050919050565b60005b838110156200051e57808201518184015260208101905062000501565b838111156200052e576000848401525b50505050565b60006200054b6200054584620004c8565b620004a9565b9050828152602081018484840111156200056a57620005696200042e565b5b62000577848285620004fe565b509392505050565b600082601f83011262000597576200059662000429565b5b8151620005a984826020860162000534565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005df82620005b2565b9050919050565b620005f181620005d2565b8114620005fd57600080fd5b50565b6000815190506200061181620005e6565b92915050565b600080600080600080600060e0888a031215620006395762000638620003e4565b5b6000620006498a828b0162000412565b975050602088015167ffffffffffffffff8111156200066d576200066c620003e9565b5b6200067b8a828b016200057f565b965050604088015167ffffffffffffffff8111156200069f576200069e620003e9565b5b620006ad8a828b016200057f565b9550506060620006c08a828b0162000600565b9450506080620006d38a828b0162000600565b93505060a0620006e68a828b0162000412565b92505060c0620006f98a828b0162000600565b91505092959891949750929550565b600082825260208201905092915050565b7f4c45524332303a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006200075160208362000708565b91506200075e8262000719565b602082019050919050565b60006020820190508181036000830152620007848162000742565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007c782620003ee565b9150620007d483620003ee565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200080c576200080b6200078b565b5b828201905092915050565b6200082281620003ee565b82525050565b60006020820190506200083f600083018462000817565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200088d57607f821691505b60208210811415620008a457620008a362000845565b5b50919050565b612b2680620008ba6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636e9960c3116100de578063a9059cbb11610097578063ccfa214f11610071578063ccfa214f1461042a578063d6e242b814610448578063dd62ed3e14610452578063f851a4401461048257610173565b8063a9059cbb146103d4578063b38fe95714610404578063b5c228771461040e57610173565b80636e9960c31461030057806370a082311461031e57806393310ffe1461034e578063936af9111461036a57806395d89b4114610386578063a457c2d7146103a457610173565b8063313ce56711610130578063313ce5671461024e57806334f6ebf51461026c578063395093511461028a5780635b8a194a146102ba5780635f6529a3146102c457806361086b00146102e257610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c657806323b872dd146101e45780632baa3c9e146102145780632ecaf67514610230575b600080fd5b6101806104a0565b60405161018d9190611cbc565b60405180910390f35b6101b060048036038101906101ab9190611d86565b610532565b6040516101bd9190611de1565b60405180910390f35b6101ce610602565b6040516101db9190611e0b565b60405180910390f35b6101fe60048036038101906101f99190611e26565b61060c565b60405161020b9190611de1565b60405180910390f35b61022e60048036038101906102299190611e79565b6107c3565b005b610238610972565b6040516102459190611e0b565b60405180910390f35b610256610978565b6040516102639190611ec2565b60405180910390f35b610274610981565b6040516102819190611f3c565b60405180910390f35b6102a4600480360381019061029f9190611d86565b6109a7565b6040516102b19190611de1565b60405180910390f35b6102c2610b05565b005b6102cc610c3d565b6040516102d99190611f66565b60405180910390f35b6102ea610c63565b6040516102f79190611e0b565b60405180910390f35b610308610c69565b6040516103159190611f66565b60405180910390f35b61033860048036038101906103339190611e79565b610c93565b6040516103459190611e0b565b60405180910390f35b61036860048036038101906103639190611fb7565b610cdb565b005b610384600480360381019061037f919061205c565b610e01565b005b61038e611087565b60405161039b9190611cbc565b60405180910390f35b6103be60048036038101906103b99190611d86565b611119565b6040516103cb9190611de1565b60405180910390f35b6103ee60048036038101906103e99190611d86565b6112c0565b6040516103fb9190611de1565b60405180910390f35b61040c611390565b005b610428600480360381019061042391906121d9565b611503565b005b6104326116f2565b60405161043f9190611de1565b60405180910390f35b610450611705565b005b61046c60048036038101906104679190612222565b61187f565b6040516104799190611e0b565b60405180910390f35b61048a611906565b6040516104979190611f66565b60405180910390f35b6060600380546104af90612291565b80601f01602080910402602001604051908101604052809291908181526020018280546104db90612291565b80156105285780601f106104fd57610100808354040283529160200191610528565b820191906000526020600020905b81548152906001019060200180831161050b57829003601f168201915b5050505050905090565b60008282600b60009054906101000a900460ff16156105e457600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347abf3be61059161192c565b84846040518463ffffffff1660e01b81526004016105b1939291906122c3565b600060405180830381600087803b1580156105cb57600080fd5b505af11580156105df573d6000803e3d6000fd5b505050505b6105f66105ef61192c565b8686611934565b60019250505092915050565b6000600254905090565b6000838383600b60009054906101000a900460ff16156106c157600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663379f5c6961066c61192c565b8585856040518563ffffffff1660e01b815260040161068e94939291906122fa565b600060405180830381600087803b1580156106a857600080fd5b505af11580156106bc573d6000803e3d6000fd5b505050505b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061070c61192c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508581101561078c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610783906123b1565b60405180910390fd5b610797888888611a1f565b6107b4886107a361192c565b88846107af9190612400565b611934565b60019450505050509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661080461192c565b73ffffffffffffffffffffffffffffffffffffffff161461085a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085190612480565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e2906124ec565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a280600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60006012905090565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282600b60009054906101000a900460ff1615610a5957600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf5961bb610a0661192c565b84846040518463ffffffff1660e01b8152600401610a26939291906122c3565b600060405180830381600087803b158015610a4057600080fd5b505af1158015610a54573d6000803e3d6000fd5b505050505b610af9610a6461192c565b868660016000610a7261192c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610af4919061250c565b611934565b60019250505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4661192c565b73ffffffffffffffffffffffffffffffffffffffff1614610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9390612480565b60405180910390fd5b600b60009054906101000a900460ff1615610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be3906125ae565b60405180910390fd5b6000600a819055506001600b60006101000a81548160ff0219169083151502179055507f1ba3b66404043da8297d0b876fa6464f2cb127edfc6626308046d4503028322b60405160405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1c61192c565b73ffffffffffffffffffffffffffffffffffffffff1614610d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6990612480565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806007819055508173ffffffffffffffffffffffffffffffffffffffff167f6c591da8da2f6e69746d7d9ae61c27ee29fbe303798141b4942ae2aef54274b160405160405180910390a25050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e4261192c565b73ffffffffffffffffffffffffffffffffffffffff1614610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f9061261a565b60405180910390fd5b60008282905090506000805b82811015611009576000858583818110610ec157610ec061263a565b5b9050602002016020810190610ed69190611e79565b905060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508084610f6b919061250c565b9350600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fec9190611e0b565b60405180910390a35050808061100190612669565b915050610ea4565b5080600080600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461107a919061250c565b9250508190555050505050565b60606004805461109690612291565b80601f01602080910402602001604051908101604052809291908181526020018280546110c290612291565b801561110f5780601f106110e45761010080835404028352916020019161110f565b820191906000526020600020905b8154815290600101906020018083116110f257829003601f168201915b5050505050905090565b60008282600b60009054906101000a900460ff16156111cb57600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663568c75a961117861192c565b84846040518463ffffffff1660e01b8152600401611198939291906122c3565b600060405180830381600087803b1580156111b257600080fd5b505af11580156111c6573d6000803e3d6000fd5b505050505b6000600160006111d961192c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d90612724565b60405180910390fd5b6112b36112a161192c565b8787846112ae9190612400565b611934565b6001935050505092915050565b60008282600b60009054906101000a900460ff161561137257600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ffb811f61131f61192c565b84846040518463ffffffff1660e01b815260040161133f939291906122c3565b600060405180830381600087803b15801561135957600080fd5b505af115801561136d573d6000803e3d6000fd5b505050505b61138461137d61192c565b8686611a1f565b60019250505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113d161192c565b73ffffffffffffffffffffffffffffffffffffffff1614611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e90612480565b60405180910390fd5b6000600a54141561146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490612790565b60405180910390fd5b42600a5411156114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a9906127fc565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506000600a819055507f3eb72350c9c7928d31e9ab450bfff2c159434aa4b82658a7d8eae7f109cb4e7b60405160405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661154461192c565b73ffffffffffffffffffffffffffffffffffffffff161461159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190612868565b60405180910390fd5b6007548180519060200120146115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc906128d4565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb94bba6936ec7f75ee931dadf6e1a4d66b43d09b6fa0178fb13df9b77fb5841f60405160405180910390a2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661174661192c565b73ffffffffffffffffffffffffffffffffffffffff161461179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179390612480565b60405180910390fd5b6000600a54146117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d890612940565b60405180910390fd5b600b60009054906101000a900460ff16611830576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611827906129ac565b60405180910390fd5b6009544261183e919061250c565b600a819055507f6ca688e6e3ddd707280140b2bf0106afe883689b6c74e68cbd517576dd9c245a600a546040516118759190611e0b565b60405180910390a1565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a129190611e0b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8690612a3e565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0c90612ad0565b60405180910390fd5b8181611b219190612400565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bb1919061250c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c159190611e0b565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c5d578082015181840152602081019050611c42565b83811115611c6c576000848401525b50505050565b6000601f19601f8301169050919050565b6000611c8e82611c23565b611c988185611c2e565b9350611ca8818560208601611c3f565b611cb181611c72565b840191505092915050565b60006020820190508181036000830152611cd68184611c83565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d1d82611cf2565b9050919050565b611d2d81611d12565b8114611d3857600080fd5b50565b600081359050611d4a81611d24565b92915050565b6000819050919050565b611d6381611d50565b8114611d6e57600080fd5b50565b600081359050611d8081611d5a565b92915050565b60008060408385031215611d9d57611d9c611ce8565b5b6000611dab85828601611d3b565b9250506020611dbc85828601611d71565b9150509250929050565b60008115159050919050565b611ddb81611dc6565b82525050565b6000602082019050611df66000830184611dd2565b92915050565b611e0581611d50565b82525050565b6000602082019050611e206000830184611dfc565b92915050565b600080600060608486031215611e3f57611e3e611ce8565b5b6000611e4d86828701611d3b565b9350506020611e5e86828701611d3b565b9250506040611e6f86828701611d71565b9150509250925092565b600060208284031215611e8f57611e8e611ce8565b5b6000611e9d84828501611d3b565b91505092915050565b600060ff82169050919050565b611ebc81611ea6565b82525050565b6000602082019050611ed76000830184611eb3565b92915050565b6000819050919050565b6000611f02611efd611ef884611cf2565b611edd565b611cf2565b9050919050565b6000611f1482611ee7565b9050919050565b6000611f2682611f09565b9050919050565b611f3681611f1b565b82525050565b6000602082019050611f516000830184611f2d565b92915050565b611f6081611d12565b82525050565b6000602082019050611f7b6000830184611f57565b92915050565b6000819050919050565b611f9481611f81565b8114611f9f57600080fd5b50565b600081359050611fb181611f8b565b92915050565b60008060408385031215611fce57611fcd611ce8565b5b6000611fdc85828601611d3b565b9250506020611fed85828601611fa2565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261201c5761201b611ff7565b5b8235905067ffffffffffffffff81111561203957612038611ffc565b5b60208301915083602082028301111561205557612054612001565b5b9250929050565b6000806020838503121561207357612072611ce8565b5b600083013567ffffffffffffffff81111561209157612090611ced565b5b61209d85828601612006565b92509250509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120e682611c72565b810181811067ffffffffffffffff82111715612105576121046120ae565b5b80604052505050565b6000612118611cde565b905061212482826120dd565b919050565b600067ffffffffffffffff821115612144576121436120ae565b5b61214d82611c72565b9050602081019050919050565b82818337600083830152505050565b600061217c61217784612129565b61210e565b905082815260208101848484011115612198576121976120a9565b5b6121a384828561215a565b509392505050565b600082601f8301126121c0576121bf611ff7565b5b81356121d0848260208601612169565b91505092915050565b6000602082840312156121ef576121ee611ce8565b5b600082013567ffffffffffffffff81111561220d5761220c611ced565b5b612219848285016121ab565b91505092915050565b6000806040838503121561223957612238611ce8565b5b600061224785828601611d3b565b925050602061225885828601611d3b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122a957607f821691505b602082108114156122bd576122bc612262565b5b50919050565b60006060820190506122d86000830186611f57565b6122e56020830185611f57565b6122f26040830184611dfc565b949350505050565b600060808201905061230f6000830187611f57565b61231c6020830186611f57565b6123296040830185611f57565b6123366060830184611dfc565b95945050505050565b7f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b600061239b602983611c2e565b91506123a68261233f565b604082019050919050565b600060208201905081810360008301526123ca8161238e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061240b82611d50565b915061241683611d50565b925082821015612429576124286123d1565b5b828203905092915050565b7f4c45524332303a204d757374206265207265636f766572792061646d696e0000600082015250565b600061246a601e83611c2e565b915061247582612434565b602082019050919050565b600060208201905081810360008301526124998161245d565b9050919050565b7f4c45524332303a2043616e6e6f74207365742073616d65206164647265737300600082015250565b60006124d6601f83611c2e565b91506124e1826124a0565b602082019050919050565b60006020820190508181036000830152612505816124c9565b9050919050565b600061251782611d50565b915061252283611d50565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612557576125566123d1565b5b828201905092915050565b7f4c45524332303a204c6f73736c65737320616c7265616479206f6e0000000000600082015250565b6000612598601b83611c2e565b91506125a382612562565b602082019050919050565b600060208201905081810360008301526125c78161258b565b9050919050565b7f4c45524332303a204f6e6c79206c6f73736c65737320636f6e74726163740000600082015250565b6000612604601e83611c2e565b915061260f826125ce565b602082019050919050565b60006020820190508181036000830152612633816125f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061267482611d50565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156126a7576126a66123d1565b5b600182019050919050565b7f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f60008201527f77207a65726f0000000000000000000000000000000000000000000000000000602082015250565b600061270e602683611c2e565b9150612719826126b2565b604082019050919050565b6000602082019050818103600083015261273d81612701565b9050919050565b7f4c45524332303a205475726e4f6666206e6f742070726f706f73656400000000600082015250565b600061277a601c83611c2e565b915061278582612744565b602082019050919050565b600060208201905081810360008301526127a98161276d565b9050919050565b7f4c45524332303a2054696d65206c6f636b20696e2070726f6772657373000000600082015250565b60006127e6601d83611c2e565b91506127f1826127b0565b602082019050919050565b60006020820190508181036000830152612815816127d9565b9050919050565b7f4c45524332303a204d7573742062652063616e64697461746500000000000000600082015250565b6000612852601983611c2e565b915061285d8261281c565b602082019050919050565b6000602082019050818103600083015261288181612845565b9050919050565b7f4c45524332303a20496e76616c6964206b657900000000000000000000000000600082015250565b60006128be601383611c2e565b91506128c982612888565b602082019050919050565b600060208201905081810360008301526128ed816128b1565b9050919050565b7f4c45524332303a205475726e4f666620616c72656164792070726f706f736564600082015250565b600061292a602083611c2e565b9150612935826128f4565b602082019050919050565b600060208201905081810360008301526129598161291d565b9050919050565b7f4c45524332303a204c6f73736c65737320616c7265616479206f666600000000600082015250565b6000612996601c83611c2e565b91506129a182612960565b602082019050919050565b600060208201905081810360008301526129c581612989565b9050919050565b7f4c45524332303a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612a28602683611c2e565b9150612a33826129cc565b604082019050919050565b60006020820190508181036000830152612a5781612a1b565b9050919050565b7f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060008201527f62616c616e636500000000000000000000000000000000000000000000000000602082015250565b6000612aba602783611c2e565b9150612ac582612a5e565b604082019050919050565b60006020820190508181036000830152612ae981612aad565b905091905056fea264697066735822122096c5f58bdd7c79d3f719cdca04eec5be5241e14d8722a0650039b4b55f9ab85e64736f6c634300080b00330000000000000000000000000000000000000000000069e10de76676d080000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000a65eba30e7cd074ece823bb658e5710ef03af45d000000000000000000000000a65eba30e7cd074ece823bb658e5710ef03af45d000000000000000000000000000000000000000000000000000000000001518000000000000000000000000066622e2c1b991983e88132da19b2c31f71009035000000000000000000000000000000000000000000000000000000000000000942756e642056322e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000442554e4400000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000069e10de76676d080000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000a65eba30e7cd074ece823bb658e5710ef03af45d000000000000000000000000a65eba30e7cd074ece823bb658e5710ef03af45d000000000000000000000000000000000000000000000000000000000001518000000000000000000000000066622e2c1b991983e88132da19b2c31f71009035000000000000000000000000000000000000000000000000000000000000000942756e642056322e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000442554e4400000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : totalSupply_ (uint256): 500000000000000000000000
Arg [1] : name_ (string): Bund V2.0
Arg [2] : symbol_ (string): BUND
Arg [3] : admin_ (address): 0xa65eba30e7cd074ece823bb658e5710ef03af45d
Arg [4] : recoveryAdmin_ (address): 0xa65eba30e7cd074ece823bb658e5710ef03af45d
Arg [5] : timelockPeriod_ (uint256): 86400
Arg [6] : lossless_ (address): 0x66622e2c1b991983e88132da19b2c31f71009035
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000069e10de76676d0800000
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [3] : 000000000000000000000000a65eba30e7cd074ece823bb658e5710ef03af45d
Arg [4] : 000000000000000000000000a65eba30e7cd074ece823bb658e5710ef03af45d
Arg [5] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [6] : 00000000000000000000000066622e2c1b991983e88132da19b2c31f71009035
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [8] : 42756e642056322e300000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [10] : 42554e4400000000000000000000000000000000000000000000000000000000