Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
TwoKeyParticipationPaymentsManager
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-02 */ pragma solidity ^0.4.13; contract IERC20 { function balanceOf( address whom ) external view returns (uint); function transfer( address _to, uint256 _value ) external returns (bool); function transferFrom( address _from, address _to, uint256 _value ) external returns (bool); function approve( address _spender, uint256 _value ) public returns (bool); function decimals() external view returns (uint); function symbol() external view returns (string); function name() external view returns (string); function freezeTransfers() external; function unfreezeTransfers() external; } contract IStructuredStorage { function setProxyLogicContractAndDeployer(address _proxyLogicContract, address _deployer) external; function setProxyLogicContract(address _proxyLogicContract) external; // *** Getter Methods *** function getUint(bytes32 _key) external view returns(uint); function getString(bytes32 _key) external view returns(string); function getAddress(bytes32 _key) external view returns(address); function getBytes(bytes32 _key) external view returns(bytes); function getBool(bytes32 _key) external view returns(bool); function getInt(bytes32 _key) external view returns(int); function getBytes32(bytes32 _key) external view returns(bytes32); // *** Getter Methods For Arrays *** function getBytes32Array(bytes32 _key) external view returns (bytes32[]); function getAddressArray(bytes32 _key) external view returns (address[]); function getUintArray(bytes32 _key) external view returns (uint[]); function getIntArray(bytes32 _key) external view returns (int[]); function getBoolArray(bytes32 _key) external view returns (bool[]); // *** Setter Methods *** function setUint(bytes32 _key, uint _value) external; function setString(bytes32 _key, string _value) external; function setAddress(bytes32 _key, address _value) external; function setBytes(bytes32 _key, bytes _value) external; function setBool(bytes32 _key, bool _value) external; function setInt(bytes32 _key, int _value) external; function setBytes32(bytes32 _key, bytes32 _value) external; // *** Setter Methods For Arrays *** function setBytes32Array(bytes32 _key, bytes32[] _value) external; function setAddressArray(bytes32 _key, address[] _value) external; function setUintArray(bytes32 _key, uint[] _value) external; function setIntArray(bytes32 _key, int[] _value) external; function setBoolArray(bytes32 _key, bool[] _value) external; // *** Delete Methods *** function deleteUint(bytes32 _key) external; function deleteString(bytes32 _key) external; function deleteAddress(bytes32 _key) external; function deleteBytes(bytes32 _key) external; function deleteBool(bytes32 _key) external; function deleteInt(bytes32 _key) external; function deleteBytes32(bytes32 _key) external; } contract ITwoKeyMaintainersRegistry { function checkIsAddressMaintainer(address _sender) public view returns (bool); function checkIsAddressCoreDev(address _sender) public view returns (bool); function addMaintainers(address [] _maintainers) public; function addCoreDevs(address [] _coreDevs) public; function removeMaintainers(address [] _maintainers) public; function removeCoreDevs(address [] _coreDevs) public; } contract ITwoKeyRegistry { function checkIfUserExists(address _userAddress) public view returns (bool); function getUserData(address _user) public view returns (bytes32,bytes32,bytes32); } contract ITwoKeySingletoneRegistryFetchAddress { function getContractProxyAddress(string _contractName) public view returns (address); function getNonUpgradableContractAddress(string contractName) public view returns (address); function getLatestCampaignApprovedVersion(string campaignType) public view returns (string); } interface ITwoKeySingletonesRegistry { /** * @dev This event will be emitted every time a new proxy is created * @param proxy representing the address of the proxy created */ event ProxyCreated(address proxy); /** * @dev This event will be emitted every time a new implementation is registered * @param version representing the version name of the registered implementation * @param implementation representing the address of the registered implementation * @param contractName is the name of the contract we added new version */ event VersionAdded(string version, address implementation, string contractName); /** * @dev Registers a new version with its implementation address * @param version representing the version name of the new implementation to be registered * @param implementation representing the address of the new implementation to be registered */ function addVersion(string _contractName, string version, address implementation) public; /** * @dev Tells the address of the implementation for a given version * @param _contractName is the name of the contract we're querying * @param version to query the implementation of * @return address of the implementation registered for the given version */ function getVersion(string _contractName, string version) public view returns (address); } contract ITwoKeyParticipationPaymentsManagerStorage is IStructuredStorage { } contract ITwoKeySingletonUtils { address public TWO_KEY_SINGLETON_REGISTRY; // Modifier to restrict method calls only to maintainers modifier onlyMaintainer { address twoKeyMaintainersRegistry = getAddressFromTwoKeySingletonRegistry("TwoKeyMaintainersRegistry"); require(ITwoKeyMaintainersRegistry(twoKeyMaintainersRegistry).checkIsAddressMaintainer(msg.sender)); _; } /** * @notice Function to get any singleton contract proxy address from TwoKeySingletonRegistry contract * @param contractName is the name of the contract we're looking for */ function getAddressFromTwoKeySingletonRegistry( string contractName ) internal view returns (address) { return ITwoKeySingletoneRegistryFetchAddress(TWO_KEY_SINGLETON_REGISTRY) .getContractProxyAddress(contractName); } function getNonUpgradableContractAddressFromTwoKeySingletonRegistry( string contractName ) internal view returns (address) { return ITwoKeySingletoneRegistryFetchAddress(TWO_KEY_SINGLETON_REGISTRY) .getNonUpgradableContractAddress(contractName); } } contract UpgradeabilityStorage { // Versions registry ITwoKeySingletonesRegistry internal registry; // Address of the current implementation address internal _implementation; /** * @dev Tells the address of the current implementation * @return address of the current implementation */ function implementation() public view returns (address) { return _implementation; } } contract Upgradeable is UpgradeabilityStorage { /** * @dev Validates the caller is the versions registry. * @param sender representing the address deploying the initial behavior of the contract */ function initialize(address sender) public payable { require(msg.sender == address(registry)); } } contract TwoKeyParticipationPaymentsManager is Upgradeable, ITwoKeySingletonUtils { string constant _receivedTokens = "receivedTokens"; string constant _isAddressWhitelisted = "isAddressWhitelisted"; string constant _twoKeyParticipationMiningPool = "TwoKeyParticipationMiningPool"; string constant _twoKeyAdmin = "TwoKeyAdmin"; string constant _twoKeyRegistry = "TwoKeyRegistry"; string constant _twoKeyEconomy = "TwoKeyEconomy"; ITwoKeyParticipationPaymentsManagerStorage public PROXY_STORAGE_CONTRACT; bool initialized; function setInitialParams( address _twoKeySingletonRegistry, address _twoKeyParticipationPaymentsManagerStorage ) public { require(initialized == false); TWO_KEY_SINGLETON_REGISTRY = _twoKeySingletonRegistry; PROXY_STORAGE_CONTRACT = ITwoKeyParticipationPaymentsManagerStorage(_twoKeyParticipationPaymentsManagerStorage); initialized = true; } modifier onlyTwoKeyParticipationMiningPool { address participationMiningPool = getAddressFromTwoKeySingletonRegistry(_twoKeyParticipationMiningPool); require(msg.sender == participationMiningPool); _; } modifier onlyTwoKeyAdmin { address twoKeyAdmin = getAddressFromTwoKeySingletonRegistry(_twoKeyAdmin); require(msg.sender == twoKeyAdmin); _; } /** * @notice Modifier to restrict calls only to TwoKeyAdmin or * some of whitelisted addresses inside this contract */ modifier onlyTwoKeyAdminOrWhitelistedAddress { address twoKeyAdmin = getAddressFromTwoKeySingletonRegistry(_twoKeyAdmin); require(msg.sender == twoKeyAdmin || isAddressWhitelisted(msg.sender)); _; } /** * @notice Function which can only be called by TwoKeyAdmin contract * to add new whitelisted addresses to the contract. Whitelisted address * can send tokens out of this contract * @param _newWhitelistedAddress is the new whitelisted address we want to add */ function addWhitelistedAddress( address _newWhitelistedAddress ) public onlyTwoKeyAdmin { bytes32 keyHash = keccak256(_isAddressWhitelisted,_newWhitelistedAddress); PROXY_STORAGE_CONTRACT.setBool(keyHash, true); } /** * @notice Function which can only be called by TwoKeyAdmin contract * to remove any whitelisted address from the contract. * @param _addressToBeRemovedFromWhitelist is the new whitelisted address we want to remove */ function removeWhitelistedAddress( address _addressToBeRemovedFromWhitelist ) public onlyTwoKeyAdmin { bytes32 keyHash = keccak256(_isAddressWhitelisted, _addressToBeRemovedFromWhitelist); PROXY_STORAGE_CONTRACT.setBool(keyHash, false); } /** * @notice Function to check if the selected address is whitelisted * @param _address is the address we want to get this information * @return result of address being whitelisted */ function isAddressWhitelisted( address _address ) public view returns (bool) { bytes32 keyHash = keccak256(_isAddressWhitelisted, _address); return PROXY_STORAGE_CONTRACT.getBool(keyHash); } /** * @notice Function to validate if the user is properly registered in TwoKeyRegistry * @param _receiver is the address we want to send tokens to */ function validateRegistrationOfReceiver( address _receiver ) internal view returns (bool) { address twoKeyRegistry = getAddressFromTwoKeySingletonRegistry(_twoKeyRegistry); return ITwoKeyRegistry(twoKeyRegistry).checkIfUserExists(_receiver); } function transferTokensFromParticipationMiningPool( uint amountOfTokens ) public onlyTwoKeyParticipationMiningPool { bytes32 keyHash = keccak256(_receivedTokens); PROXY_STORAGE_CONTRACT.setUint( keyHash, amountOfTokens + PROXY_STORAGE_CONTRACT.getUint(keyHash) ); } /** * @notice Function to transfer tokens from contract * @param _beneficiary is the receiver address * @param _amount is the tokens amount we're transferring */ function transferTokensFromContract( address _beneficiary, uint _amount ) public onlyTwoKeyAdminOrWhitelistedAddress { require(validateRegistrationOfReceiver(_beneficiary) == true); address twoKeyEconomy = ITwoKeySingletoneRegistryFetchAddress(TWO_KEY_SINGLETON_REGISTRY) .getNonUpgradableContractAddress(_twoKeyEconomy); IERC20(twoKeyEconomy).transfer(_beneficiary, _amount); } /** * @notice Function to get amount of tokens received from participation mining pool */ function getAmountOfTokensReceivedFromParticipationMiningPool() public view returns (uint) { return PROXY_STORAGE_CONTRACT.getUint(keccak256(_receivedTokens)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_twoKeySingletonRegistry","type":"address"},{"name":"_twoKeyParticipationPaymentsManagerStorage","type":"address"}],"name":"setInitialParams","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PROXY_STORAGE_CONTRACT","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isAddressWhitelisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAmountOfTokensReceivedFromParticipationMiningPool","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amountOfTokens","type":"uint256"}],"name":"transferTokensFromParticipationMiningPool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newWhitelistedAddress","type":"address"}],"name":"addWhitelistedAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addressToBeRemovedFromWhitelist","type":"address"}],"name":"removeWhitelistedAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TWO_KEY_SINGLETON_REGISTRY","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"}],"name":"initialize","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferTokensFromContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506114fd806100206000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305dbe412146100b4578063105005a11461011757806313f44d101461016e578063260715c9146101c9578063266191ef146101f457806329975b4314610221578063530cd5ab146102645780635c60da1b146102a75780638830afa0146102fe578063c4d66de814610355578063d0973af81461038b575b600080fd5b3480156100c057600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103d8565b005b34801561012357600080fd5b5061012c61049b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561017a57600080fd5b506101af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104c1565b604051808215151515815260200191505060405180910390f35b3480156101d557600080fd5b506101de61067d565b6040518082815260200191505060405180910390f35b34801561020057600080fd5b5061021f600480360381019080803590602001909291905050506107ef565b005b34801561022d57600080fd5b50610262600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a99565b005b34801561027057600080fd5b506102a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cb6565b005b3480156102b357600080fd5b506102bc610ed3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030a57600080fd5b50610313610efd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610389600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f23565b005b34801561039757600080fd5b506103d6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f81565b005b60001515600360149054906101000a900460ff1615151415156103fa57600080fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360146101000a81548160ff0219169083151502179055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806040805190810160405280601481526020017f69734164647265737357686974656c6973746564000000000000000000000000815250836040518083805190602001908083835b602083101515610530578051825260208201915060208101905060208303925061050b565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019250505060405180910390209050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ae1cfca826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561063a57600080fd5b505af115801561064e573d6000803e3d6000fd5b505050506040513d602081101561066457600080fd5b8101908080519060200190929190505050915050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f56040805190810160405280600e81526020017f7265636569766564546f6b656e730000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156107285780518252602082019150602081019050602083039250610703565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156107af57600080fd5b505af11580156107c3573d6000803e3d6000fd5b505050506040513d60208110156107d957600080fd5b8101908080519060200190929190505050905090565b6000806108306040805190810160405280601d81526020017f54776f4b657950617274696369706174696f6e4d696e696e67506f6f6c000000815250611276565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086c57600080fd5b6040805190810160405280600e81526020017f7265636569766564546f6b656e730000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156108d757805182526020820191506020810190506020830392506108b2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f5866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d6020811015610a0857600080fd5b810190808051906020019092919050505086016040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b158015610a7c57600080fd5b505af1158015610a90573d6000803e3d6000fd5b50505050505050565b600080610ada6040805190810160405280600b81526020017f54776f4b657941646d696e000000000000000000000000000000000000000000815250611276565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b1657600080fd5b6040805190810160405280601481526020017f69734164647265737357686974656c6973746564000000000000000000000000815250836040518083805190602001908083835b602083101515610b825780518252602082019150602081019050602083039250610b5d565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019250505060405180910390209150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663abfdcced8360016040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018215151515815260200192505050600060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b50505050505050565b600080610cf76040805190810160405280600b81526020017f54776f4b657941646d696e000000000000000000000000000000000000000000815250611276565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d3357600080fd5b6040805190810160405280601481526020017f69734164647265737357686974656c6973746564000000000000000000000000815250836040518083805190602001908083835b602083101515610d9f5780518252602082019150602081019050602083039250610d7a565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019250505060405180910390209150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663abfdcced8360006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018215151515815260200192505050600060405180830381600087803b158015610eb657600080fd5b505af1158015610eca573d6000803e3d6000fd5b50505050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f7e57600080fd5b50565b600080610fc26040805190810160405280600b81526020017f54776f4b657941646d696e000000000000000000000000000000000000000000815250611276565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110035750611002336104c1565b5b151561100e57600080fd5b6001151561101b856113b0565b151514151561102957600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f716c79a6040805190810160405280600d81526020017f54776f4b657945636f6e6f6d79000000000000000000000000000000000000008152506040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111085780820151818401526020810190506110ed565b50505050905090810190601f1680156111355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561115457600080fd5b505af1158015611168573d6000803e3d6000fd5b505050506040513d602081101561117e57600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561123457600080fd5b505af1158015611248573d6000803e3d6000fd5b505050506040513d602081101561125e57600080fd5b81019080805190602001909291905050505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db7a6d90836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611322578082015181840152602081019050611307565b50505050905090810190601f16801561134f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561136e57600080fd5b505af1158015611382573d6000803e3d6000fd5b505050506040513d602081101561139857600080fd5b81019080805190602001909291905050509050919050565b6000806113f16040805190810160405280600e81526020017f54776f4b65795265676973747279000000000000000000000000000000000000815250611276565b90508073ffffffffffffffffffffffffffffffffffffffff16639371de2b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561148e57600080fd5b505af11580156114a2573d6000803e3d6000fd5b505050506040513d60208110156114b857600080fd5b81019080805190602001909291905050509150509190505600a165627a7a723058205bddf7603555a18e5f75881248ee5376386ebb96c120c79d14a4b81c7b89026c0029
Deployed Bytecode
0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305dbe412146100b4578063105005a11461011757806313f44d101461016e578063260715c9146101c9578063266191ef146101f457806329975b4314610221578063530cd5ab146102645780635c60da1b146102a75780638830afa0146102fe578063c4d66de814610355578063d0973af81461038b575b600080fd5b3480156100c057600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103d8565b005b34801561012357600080fd5b5061012c61049b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561017a57600080fd5b506101af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104c1565b604051808215151515815260200191505060405180910390f35b3480156101d557600080fd5b506101de61067d565b6040518082815260200191505060405180910390f35b34801561020057600080fd5b5061021f600480360381019080803590602001909291905050506107ef565b005b34801561022d57600080fd5b50610262600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a99565b005b34801561027057600080fd5b506102a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cb6565b005b3480156102b357600080fd5b506102bc610ed3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030a57600080fd5b50610313610efd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610389600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f23565b005b34801561039757600080fd5b506103d6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f81565b005b60001515600360149054906101000a900460ff1615151415156103fa57600080fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360146101000a81548160ff0219169083151502179055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806040805190810160405280601481526020017f69734164647265737357686974656c6973746564000000000000000000000000815250836040518083805190602001908083835b602083101515610530578051825260208201915060208101905060208303925061050b565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019250505060405180910390209050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ae1cfca826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561063a57600080fd5b505af115801561064e573d6000803e3d6000fd5b505050506040513d602081101561066457600080fd5b8101908080519060200190929190505050915050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f56040805190810160405280600e81526020017f7265636569766564546f6b656e730000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156107285780518252602082019150602081019050602083039250610703565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156107af57600080fd5b505af11580156107c3573d6000803e3d6000fd5b505050506040513d60208110156107d957600080fd5b8101908080519060200190929190505050905090565b6000806108306040805190810160405280601d81526020017f54776f4b657950617274696369706174696f6e4d696e696e67506f6f6c000000815250611276565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086c57600080fd5b6040805190810160405280600e81526020017f7265636569766564546f6b656e730000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156108d757805182526020820191506020810190506020830392506108b2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f5866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d6020811015610a0857600080fd5b810190808051906020019092919050505086016040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b158015610a7c57600080fd5b505af1158015610a90573d6000803e3d6000fd5b50505050505050565b600080610ada6040805190810160405280600b81526020017f54776f4b657941646d696e000000000000000000000000000000000000000000815250611276565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b1657600080fd5b6040805190810160405280601481526020017f69734164647265737357686974656c6973746564000000000000000000000000815250836040518083805190602001908083835b602083101515610b825780518252602082019150602081019050602083039250610b5d565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019250505060405180910390209150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663abfdcced8360016040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018215151515815260200192505050600060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b50505050505050565b600080610cf76040805190810160405280600b81526020017f54776f4b657941646d696e000000000000000000000000000000000000000000815250611276565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d3357600080fd5b6040805190810160405280601481526020017f69734164647265737357686974656c6973746564000000000000000000000000815250836040518083805190602001908083835b602083101515610d9f5780518252602082019150602081019050602083039250610d7a565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019250505060405180910390209150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663abfdcced8360006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018215151515815260200192505050600060405180830381600087803b158015610eb657600080fd5b505af1158015610eca573d6000803e3d6000fd5b50505050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f7e57600080fd5b50565b600080610fc26040805190810160405280600b81526020017f54776f4b657941646d696e000000000000000000000000000000000000000000815250611276565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110035750611002336104c1565b5b151561100e57600080fd5b6001151561101b856113b0565b151514151561102957600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f716c79a6040805190810160405280600d81526020017f54776f4b657945636f6e6f6d79000000000000000000000000000000000000008152506040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111085780820151818401526020810190506110ed565b50505050905090810190601f1680156111355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561115457600080fd5b505af1158015611168573d6000803e3d6000fd5b505050506040513d602081101561117e57600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561123457600080fd5b505af1158015611248573d6000803e3d6000fd5b505050506040513d602081101561125e57600080fd5b81019080805190602001909291905050505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db7a6d90836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611322578082015181840152602081019050611307565b50505050905090810190601f16801561134f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561136e57600080fd5b505af1158015611382573d6000803e3d6000fd5b505050506040513d602081101561139857600080fd5b81019080805190602001909291905050509050919050565b6000806113f16040805190810160405280600e81526020017f54776f4b65795265676973747279000000000000000000000000000000000000815250611276565b90508073ffffffffffffffffffffffffffffffffffffffff16639371de2b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561148e57600080fd5b505af11580156114a2573d6000803e3d6000fd5b505050506040513d60208110156114b857600080fd5b81019080805190602001909291905050509150509190505600a165627a7a723058205bddf7603555a18e5f75881248ee5376386ebb96c120c79d14a4b81c7b89026c0029
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.