Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Name:
PaymentContract
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; contract PaymentContract is Ownable, ReentrancyGuard { event PaymentReceived(address from, uint256 amount, uint256 _type); event PaymentReleased(address to, uint256 amount); address[] private _payees; mapping(address => uint256) private _shares; mapping(address => uint256) private _released; uint256 private _totalShares; uint256 private _totalReleased; uint256[] public paymentsCount = [0, 0, 0]; uint256[] public prices = [0.5 ether, 2.2 ether, 5.5 ether]; uint256 private typeCount = 3; constructor() { } function makePayment(uint256 _type) payable external nonReentrant returns(uint) { require(_type < typeCount, "Invalid type"); require(msg.value >= prices[_type], "Insufficient ETH payment"); paymentsCount[_type] += 1; splitPayment(msg.value); emit PaymentReceived(msg.sender, msg.value, _type); return _type; } function splitPayment(uint256 _amount) internal { uint256 _payeesLength = _payees.length; for(uint256 i = 0; i < _payeesLength; i++) { address payee = _payees[i]; uint256 shares = _shares[payee]; uint256 payment = (_amount * shares) / _totalShares; // Calculate payment based on shares if (payment > 0) { _released[payee] += payment; _totalReleased += payment; payable(payee).transfer(payment); emit PaymentReleased(payee, payment); } } } function addPayee(address account, uint256 shares_) onlyOwner public { require(account != address(0), "PaymentSplitter: account is the zero address"); require(shares_ > 0, "PaymentSplitter: shares are 0"); require(_shares[account] == 0, "PaymentSplitter: account already has shares"); _payees.push(account); _shares[account] = shares_; _totalShares = _totalShares + shares_; } function removePayee(address _payee) onlyOwner public { uint256 index = _payees.length; for (uint i = 0; i < _payees.length; i++) { if (_payees[i] == _payee) index = i; } require(index < _payees.length, "Payee not found"); for (uint i = index; i < _payees.length - 1; i++) { _payees[i] = _payees[i + 1]; } _payees.pop(); _totalShares = _totalShares - _shares[_payee]; _shares[_payee] = 0; } function released(address account) public view returns (uint256) { return _released[account]; } function setPrice(uint256 _type, uint256 _price) public onlyOwner { require(_type < typeCount, "Invalid type"); prices[_type] = _price; } function withdraw() external onlyOwner { payable(msg.sender).transfer(address(this).balance); } function splitBalance() external onlyOwner { splitPayment(address(this).balance); } function getPayeesAndShares() public view returns (address[] memory, uint256[] memory) { uint256 _payeesLength = _payees.length; uint256[] memory shares = new uint256[](_payeesLength); for (uint i = 0; i < _payeesLength; i++) { shares[i] = _shares[_payees[i]]; } return (_payees, shares); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// 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; } }
{ "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":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_type","type":"uint256"}],"name":"PaymentReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReleased","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"shares_","type":"uint256"}],"name":"addPayee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPayeesAndShares","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_type","type":"uint256"}],"name":"makePayment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"paymentsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"prices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_payee","type":"address"}],"name":"removePayee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_type","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"splitBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526040518060600160405280600060ff168152602001600060ff168152602001600060ff1681525060079060036200003d929190620001ae565b5060405180606001604052806706f05b59d3b2000067ffffffffffffffff168152602001671e87f85809dc000067ffffffffffffffff168152602001674c53ecdc18a6000067ffffffffffffffff168152506008906003620000a192919062000205565b506003600955348015620000b457600080fd5b50620000d5620000c9620000e260201b60201c565b620000ea60201b60201c565b6001808190555062000282565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054828255906000526020600020908101928215620001f2579160200282015b82811115620001f1578251829060ff16905591602001919060010190620001cf565b5b50905062000201919062000263565b5090565b82805482825590600052602060002090810192821562000250579160200282015b828111156200024f578251829067ffffffffffffffff1690559160200191906001019062000226565b5b5090506200025f919062000263565b5090565b5b808211156200027e57600081600090555060010162000264565b5090565b611e5980620002926000396000f3fe6080604052600436106100c25760003560e01c80638da5cb5b1161007f578063bc31c1c111610059578063bc31c1c114610233578063e21817ae14610270578063f2fde38b1461029c578063f7d97577146102c5576100c2565b80638da5cb5b1461018e5780639852595c146101b9578063b0ba20d1146101f6576100c2565b806318f9b023146100c75780633ccfd60b146100f05780633ed3585514610107578063449c847c146101305780635114cb5214610147578063715018a614610177575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e991906114a6565b6102ee565b005b3480156100fc57600080fd5b5061010561055e565b005b34801561011357600080fd5b5061012e6004803603810190610129919061147d565b610623565b005b34801561013c57600080fd5b506101456109df565b005b610161600480360381019061015c91906114e2565b610a66565b60405161016e919061197c565b60405180910390f35b34801561018357600080fd5b5061018c610c30565b005b34801561019a57600080fd5b506101a3610cb8565b6040516101b091906117aa565b60405180910390f35b3480156101c557600080fd5b506101e060048036038101906101db919061147d565b610ce1565b6040516101ed919061197c565b60405180910390f35b34801561020257600080fd5b5061021d600480360381019061021891906114e2565b610d2a565b60405161022a919061197c565b60405180910390f35b34801561023f57600080fd5b5061025a600480360381019061025591906114e2565b610d4e565b604051610267919061197c565b60405180910390f35b34801561027c57600080fd5b50610285610d72565b604051610293929190611825565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be919061147d565b610f8f565b005b3480156102d157600080fd5b506102ec60048036038101906102e7919061150b565b611087565b005b6102f6611194565b73ffffffffffffffffffffffffffffffffffffffff16610314610cb8565b73ffffffffffffffffffffffffffffffffffffffff161461036a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610361906118bc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156103da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d19061185c565b60405180910390fd5b6000811161041d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104149061195c565b60405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461049f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610496906118fc565b60405180910390fd5b6002829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806005546105549190611a1a565b6005819055505050565b610566611194565b73ffffffffffffffffffffffffffffffffffffffff16610584610cb8565b73ffffffffffffffffffffffffffffffffffffffff16146105da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d1906118bc565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610620573d6000803e3d6000fd5b50565b61062b611194565b73ffffffffffffffffffffffffffffffffffffffff16610649610cb8565b73ffffffffffffffffffffffffffffffffffffffff161461069f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610696906118bc565b60405180910390fd5b6000600280549050905060005b600280549050811015610768578273ffffffffffffffffffffffffffffffffffffffff166002828154811061070a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610755578091505b808061076090611b6b565b9150506106ac565b5060028054905081106107b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a79061193c565b60405180910390fd5b60008190505b60016002805490506107c89190611afb565b8110156108d55760026001826107de9190611a1a565b81548110610815577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811061087a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806108cd90611b6b565b9150506107b6565b50600280548061090e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005546109909190611afb565b6005819055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6109e7611194565b73ffffffffffffffffffffffffffffffffffffffff16610a05610cb8565b73ffffffffffffffffffffffffffffffffffffffff1614610a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a52906118bc565b60405180910390fd5b610a644761119c565b565b600060026001541415610aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa59061191c565b60405180910390fd5b60026001819055506009548210610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af1906118dc565b60405180910390fd5b60088281548110610b34577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154341015610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b789061189c565b60405180910390fd5b600160078381548110610bbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020016000828254610bd69190611a1a565b92505081905550610be63461119c565b7f5677b5d4cf976ac32defbd95a6a5aaf0d1fee450a11fc26f3c11aae6e6c33d06333484604051610c19939291906117ee565b60405180910390a181905060018081905550919050565b610c38611194565b73ffffffffffffffffffffffffffffffffffffffff16610c56610cb8565b73ffffffffffffffffffffffffffffffffffffffff1614610cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca3906118bc565b60405180910390fd5b610cb6600061138f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60078181548110610d3a57600080fd5b906000526020600020016000915090505481565b60088181548110610d5e57600080fd5b906000526020600020016000915090505481565b6060806000600280549050905060008167ffffffffffffffff811115610dc1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610def5781602001602082028036833780820191505090505b50905060005b82811015610ef9576003600060028381548110610e3b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054828281518110610eda577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250508080610ef190611b6b565b915050610df5565b5060028181805480602002602001604051908101604052809291908181526020018280548015610f7e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f34575b505050505091509350935050509091565b610f97611194565b73ffffffffffffffffffffffffffffffffffffffff16610fb5610cb8565b73ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906118bc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110729061187c565b60405180910390fd5b6110848161138f565b50565b61108f611194565b73ffffffffffffffffffffffffffffffffffffffff166110ad610cb8565b73ffffffffffffffffffffffffffffffffffffffff1614611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa906118bc565b60405180910390fd5b6009548210611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e906118dc565b60405180910390fd5b8060088381548110611182577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055505050565b600033905090565b6000600280549050905060005b8181101561138a576000600282815481106111ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600554828761126f9190611aa1565b6112799190611a70565b905060008111156113745780600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112d39190611a1a565b9250508190555080600660008282546112ec9190611a1a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611339573d6000803e3d6000fd5b507fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056838260405161136b9291906117c5565b60405180910390a15b505050808061138290611b6b565b9150506111a9565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008135905061146281611df5565b92915050565b60008135905061147781611e0c565b92915050565b60006020828403121561148f57600080fd5b600061149d84828501611453565b91505092915050565b600080604083850312156114b957600080fd5b60006114c785828601611453565b92505060206114d885828601611468565b9150509250929050565b6000602082840312156114f457600080fd5b600061150284828501611468565b91505092915050565b6000806040838503121561151e57600080fd5b600061152c85828601611468565b925050602061153d85828601611468565b9150509250929050565b60006115538383611577565b60208301905092915050565b600061156b838361178c565b60208301905092915050565b61158081611b2f565b82525050565b61158f81611b2f565b82525050565b60006115a0826119b7565b6115aa81856119e7565b93506115b583611997565b8060005b838110156115e65781516115cd8882611547565b97506115d8836119cd565b9250506001810190506115b9565b5085935050505092915050565b60006115fe826119c2565b61160881856119f8565b9350611613836119a7565b8060005b8381101561164457815161162b888261155f565b9750611636836119da565b925050600181019050611617565b5085935050505092915050565b600061165e602c83611a09565b915061166982611c12565b604082019050919050565b6000611681602683611a09565b915061168c82611c61565b604082019050919050565b60006116a4601883611a09565b91506116af82611cb0565b602082019050919050565b60006116c7602083611a09565b91506116d282611cd9565b602082019050919050565b60006116ea600c83611a09565b91506116f582611d02565b602082019050919050565b600061170d602b83611a09565b915061171882611d2b565b604082019050919050565b6000611730601f83611a09565b915061173b82611d7a565b602082019050919050565b6000611753600f83611a09565b915061175e82611da3565b602082019050919050565b6000611776601d83611a09565b915061178182611dcc565b602082019050919050565b61179581611b61565b82525050565b6117a481611b61565b82525050565b60006020820190506117bf6000830184611586565b92915050565b60006040820190506117da6000830185611586565b6117e7602083018461179b565b9392505050565b60006060820190506118036000830186611586565b611810602083018561179b565b61181d604083018461179b565b949350505050565b6000604082019050818103600083015261183f8185611595565b9050818103602083015261185381846115f3565b90509392505050565b6000602082019050818103600083015261187581611651565b9050919050565b6000602082019050818103600083015261189581611674565b9050919050565b600060208201905081810360008301526118b581611697565b9050919050565b600060208201905081810360008301526118d5816116ba565b9050919050565b600060208201905081810360008301526118f5816116dd565b9050919050565b6000602082019050818103600083015261191581611700565b9050919050565b6000602082019050818103600083015261193581611723565b9050919050565b6000602082019050818103600083015261195581611746565b9050919050565b6000602082019050818103600083015261197581611769565b9050919050565b6000602082019050611991600083018461179b565b92915050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611a2582611b61565b9150611a3083611b61565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a6557611a64611bb4565b5b828201905092915050565b6000611a7b82611b61565b9150611a8683611b61565b925082611a9657611a95611be3565b5b828204905092915050565b6000611aac82611b61565b9150611ab783611b61565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611af057611aef611bb4565b5b828202905092915050565b6000611b0682611b61565b9150611b1183611b61565b925082821015611b2457611b23611bb4565b5b828203905092915050565b6000611b3a82611b41565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611b7682611b61565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611ba957611ba8611bb4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5061796d656e7453706c69747465723a206163636f756e74206973207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f496e73756666696369656e7420455448207061796d656e740000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f496e76616c696420747970650000000000000000000000000000000000000000600082015250565b7f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960008201527f2068617320736861726573000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f5061796565206e6f7420666f756e640000000000000000000000000000000000600082015250565b7f5061796d656e7453706c69747465723a20736861726573206172652030000000600082015250565b611dfe81611b2f565b8114611e0957600080fd5b50565b611e1581611b61565b8114611e2057600080fd5b5056fea26469706673582212202b155e7ee811452c93f42de510a1a63f2323961b7998b40dee60b197f2c8d77f64736f6c63430008040033
Deployed Bytecode
0x6080604052600436106100c25760003560e01c80638da5cb5b1161007f578063bc31c1c111610059578063bc31c1c114610233578063e21817ae14610270578063f2fde38b1461029c578063f7d97577146102c5576100c2565b80638da5cb5b1461018e5780639852595c146101b9578063b0ba20d1146101f6576100c2565b806318f9b023146100c75780633ccfd60b146100f05780633ed3585514610107578063449c847c146101305780635114cb5214610147578063715018a614610177575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e991906114a6565b6102ee565b005b3480156100fc57600080fd5b5061010561055e565b005b34801561011357600080fd5b5061012e6004803603810190610129919061147d565b610623565b005b34801561013c57600080fd5b506101456109df565b005b610161600480360381019061015c91906114e2565b610a66565b60405161016e919061197c565b60405180910390f35b34801561018357600080fd5b5061018c610c30565b005b34801561019a57600080fd5b506101a3610cb8565b6040516101b091906117aa565b60405180910390f35b3480156101c557600080fd5b506101e060048036038101906101db919061147d565b610ce1565b6040516101ed919061197c565b60405180910390f35b34801561020257600080fd5b5061021d600480360381019061021891906114e2565b610d2a565b60405161022a919061197c565b60405180910390f35b34801561023f57600080fd5b5061025a600480360381019061025591906114e2565b610d4e565b604051610267919061197c565b60405180910390f35b34801561027c57600080fd5b50610285610d72565b604051610293929190611825565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be919061147d565b610f8f565b005b3480156102d157600080fd5b506102ec60048036038101906102e7919061150b565b611087565b005b6102f6611194565b73ffffffffffffffffffffffffffffffffffffffff16610314610cb8565b73ffffffffffffffffffffffffffffffffffffffff161461036a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610361906118bc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156103da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d19061185c565b60405180910390fd5b6000811161041d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104149061195c565b60405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461049f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610496906118fc565b60405180910390fd5b6002829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806005546105549190611a1a565b6005819055505050565b610566611194565b73ffffffffffffffffffffffffffffffffffffffff16610584610cb8565b73ffffffffffffffffffffffffffffffffffffffff16146105da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d1906118bc565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610620573d6000803e3d6000fd5b50565b61062b611194565b73ffffffffffffffffffffffffffffffffffffffff16610649610cb8565b73ffffffffffffffffffffffffffffffffffffffff161461069f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610696906118bc565b60405180910390fd5b6000600280549050905060005b600280549050811015610768578273ffffffffffffffffffffffffffffffffffffffff166002828154811061070a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610755578091505b808061076090611b6b565b9150506106ac565b5060028054905081106107b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a79061193c565b60405180910390fd5b60008190505b60016002805490506107c89190611afb565b8110156108d55760026001826107de9190611a1a565b81548110610815577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811061087a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806108cd90611b6b565b9150506107b6565b50600280548061090e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005546109909190611afb565b6005819055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6109e7611194565b73ffffffffffffffffffffffffffffffffffffffff16610a05610cb8565b73ffffffffffffffffffffffffffffffffffffffff1614610a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a52906118bc565b60405180910390fd5b610a644761119c565b565b600060026001541415610aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa59061191c565b60405180910390fd5b60026001819055506009548210610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af1906118dc565b60405180910390fd5b60088281548110610b34577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154341015610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b789061189c565b60405180910390fd5b600160078381548110610bbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020016000828254610bd69190611a1a565b92505081905550610be63461119c565b7f5677b5d4cf976ac32defbd95a6a5aaf0d1fee450a11fc26f3c11aae6e6c33d06333484604051610c19939291906117ee565b60405180910390a181905060018081905550919050565b610c38611194565b73ffffffffffffffffffffffffffffffffffffffff16610c56610cb8565b73ffffffffffffffffffffffffffffffffffffffff1614610cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca3906118bc565b60405180910390fd5b610cb6600061138f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60078181548110610d3a57600080fd5b906000526020600020016000915090505481565b60088181548110610d5e57600080fd5b906000526020600020016000915090505481565b6060806000600280549050905060008167ffffffffffffffff811115610dc1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610def5781602001602082028036833780820191505090505b50905060005b82811015610ef9576003600060028381548110610e3b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054828281518110610eda577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250508080610ef190611b6b565b915050610df5565b5060028181805480602002602001604051908101604052809291908181526020018280548015610f7e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f34575b505050505091509350935050509091565b610f97611194565b73ffffffffffffffffffffffffffffffffffffffff16610fb5610cb8565b73ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906118bc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110729061187c565b60405180910390fd5b6110848161138f565b50565b61108f611194565b73ffffffffffffffffffffffffffffffffffffffff166110ad610cb8565b73ffffffffffffffffffffffffffffffffffffffff1614611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa906118bc565b60405180910390fd5b6009548210611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e906118dc565b60405180910390fd5b8060088381548110611182577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055505050565b600033905090565b6000600280549050905060005b8181101561138a576000600282815481106111ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600554828761126f9190611aa1565b6112799190611a70565b905060008111156113745780600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112d39190611a1a565b9250508190555080600660008282546112ec9190611a1a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611339573d6000803e3d6000fd5b507fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056838260405161136b9291906117c5565b60405180910390a15b505050808061138290611b6b565b9150506111a9565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008135905061146281611df5565b92915050565b60008135905061147781611e0c565b92915050565b60006020828403121561148f57600080fd5b600061149d84828501611453565b91505092915050565b600080604083850312156114b957600080fd5b60006114c785828601611453565b92505060206114d885828601611468565b9150509250929050565b6000602082840312156114f457600080fd5b600061150284828501611468565b91505092915050565b6000806040838503121561151e57600080fd5b600061152c85828601611468565b925050602061153d85828601611468565b9150509250929050565b60006115538383611577565b60208301905092915050565b600061156b838361178c565b60208301905092915050565b61158081611b2f565b82525050565b61158f81611b2f565b82525050565b60006115a0826119b7565b6115aa81856119e7565b93506115b583611997565b8060005b838110156115e65781516115cd8882611547565b97506115d8836119cd565b9250506001810190506115b9565b5085935050505092915050565b60006115fe826119c2565b61160881856119f8565b9350611613836119a7565b8060005b8381101561164457815161162b888261155f565b9750611636836119da565b925050600181019050611617565b5085935050505092915050565b600061165e602c83611a09565b915061166982611c12565b604082019050919050565b6000611681602683611a09565b915061168c82611c61565b604082019050919050565b60006116a4601883611a09565b91506116af82611cb0565b602082019050919050565b60006116c7602083611a09565b91506116d282611cd9565b602082019050919050565b60006116ea600c83611a09565b91506116f582611d02565b602082019050919050565b600061170d602b83611a09565b915061171882611d2b565b604082019050919050565b6000611730601f83611a09565b915061173b82611d7a565b602082019050919050565b6000611753600f83611a09565b915061175e82611da3565b602082019050919050565b6000611776601d83611a09565b915061178182611dcc565b602082019050919050565b61179581611b61565b82525050565b6117a481611b61565b82525050565b60006020820190506117bf6000830184611586565b92915050565b60006040820190506117da6000830185611586565b6117e7602083018461179b565b9392505050565b60006060820190506118036000830186611586565b611810602083018561179b565b61181d604083018461179b565b949350505050565b6000604082019050818103600083015261183f8185611595565b9050818103602083015261185381846115f3565b90509392505050565b6000602082019050818103600083015261187581611651565b9050919050565b6000602082019050818103600083015261189581611674565b9050919050565b600060208201905081810360008301526118b581611697565b9050919050565b600060208201905081810360008301526118d5816116ba565b9050919050565b600060208201905081810360008301526118f5816116dd565b9050919050565b6000602082019050818103600083015261191581611700565b9050919050565b6000602082019050818103600083015261193581611723565b9050919050565b6000602082019050818103600083015261195581611746565b9050919050565b6000602082019050818103600083015261197581611769565b9050919050565b6000602082019050611991600083018461179b565b92915050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611a2582611b61565b9150611a3083611b61565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a6557611a64611bb4565b5b828201905092915050565b6000611a7b82611b61565b9150611a8683611b61565b925082611a9657611a95611be3565b5b828204905092915050565b6000611aac82611b61565b9150611ab783611b61565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611af057611aef611bb4565b5b828202905092915050565b6000611b0682611b61565b9150611b1183611b61565b925082821015611b2457611b23611bb4565b5b828203905092915050565b6000611b3a82611b41565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611b7682611b61565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611ba957611ba8611bb4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5061796d656e7453706c69747465723a206163636f756e74206973207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f496e73756666696369656e7420455448207061796d656e740000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f496e76616c696420747970650000000000000000000000000000000000000000600082015250565b7f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960008201527f2068617320736861726573000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f5061796565206e6f7420666f756e640000000000000000000000000000000000600082015250565b7f5061796d656e7453706c69747465723a20736861726573206172652030000000600082015250565b611dfe81611b2f565b8114611e0957600080fd5b50565b611e1581611b61565b8114611e2057600080fd5b5056fea26469706673582212202b155e7ee811452c93f42de510a1a63f2323961b7998b40dee60b197f2c8d77f64736f6c63430008040033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
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.