More Info
Private Name Tags
ContractCreator
Latest 17 from a total of 17 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Lock Tokens | 5392393 | 13 days ago | IN | 0 S | 0.00820847 | ||||
Lock Tokens | 5017972 | 16 days ago | IN | 0 S | 0.00843551 | ||||
Lock Tokens | 5017565 | 16 days ago | IN | 0 S | 0.0086185 | ||||
Lock Tokens | 4957637 | 16 days ago | IN | 0 S | 0.00881721 | ||||
Lock Tokens | 4957025 | 16 days ago | IN | 0 S | 0.00698742 | ||||
Lock Tokens | 4956942 | 16 days ago | IN | 0 S | 0.00753263 | ||||
Lock Tokens | 4956677 | 16 days ago | IN | 0 S | 0.00861784 | ||||
Lock Tokens | 4956524 | 16 days ago | IN | 0 S | 0.00698742 | ||||
Lock Tokens | 4660258 | 18 days ago | IN | 0 S | 0.00861883 | ||||
Lock Tokens | 4290936 | 21 days ago | IN | 0 S | 0.01559195 | ||||
Lock Tokens | 4290398 | 21 days ago | IN | 0 S | 0.01718123 | ||||
Lock Tokens | 4283691 | 21 days ago | IN | 0 S | 0.01559195 | ||||
Lock Tokens | 4283215 | 21 days ago | IN | 0 S | 0.01724052 | ||||
Lock Tokens | 4192830 | 22 days ago | IN | 0 S | 0.01670988 | ||||
Lock Tokens | 4191001 | 22 days ago | IN | 0 S | 0.01397616 | ||||
Lock Tokens | 4190607 | 22 days ago | IN | 0 S | 0.01397484 | ||||
Lock Tokens | 4189508 | 22 days ago | IN | 0 S | 0.01773552 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SonicChainSafeLocker
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-01-16 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; // IERC20 interface interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } // ReentrancyGuard implementation abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; _; _status = _NOT_ENTERED; } } // Ownable implementation abstract contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor(address initialOwner) { _transferOwnership(initialOwner); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == msg.sender, "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // TokenLocker contract contract SonicChainSafeLocker is ReentrancyGuard, Ownable { struct Lock { address token; uint256 amount; uint256 unlockTime; bool isUnlocked; } mapping(address => Lock[]) public userLocks; event TokensLocked( address indexed user, address indexed token, uint256 amount, uint256 unlockTime, uint256 lockId ); event TokensUnlocked( address indexed user, address indexed token, uint256 amount, uint256 lockId ); constructor() Ownable(msg.sender) {} function lockTokens( address _token, uint256 _amount, uint256 _duration ) external nonReentrant { require(_token != address(0), "Invalid token address"); require(_amount > 0, "Amount must be greater than 0"); require(_duration > 0, "Duration must be greater than 0"); IERC20 token = IERC20(_token); require( token.balanceOf(msg.sender) >= _amount, "Insufficient token balance" ); require( token.allowance(msg.sender, address(this)) >= _amount, "Insufficient allowance" ); uint256 unlockTime = block.timestamp + _duration; // Transfer tokens to contract require( token.transferFrom(msg.sender, address(this), _amount), "Token transfer failed" ); // Create new lock userLocks[msg.sender].push(Lock({ token: _token, amount: _amount, unlockTime: unlockTime, isUnlocked: false })); emit TokensLocked( msg.sender, _token, _amount, unlockTime, userLocks[msg.sender].length - 1 ); } function unlockTokens(uint256 _lockId) external nonReentrant { require(_lockId < userLocks[msg.sender].length, "Invalid lock ID"); Lock storage lock = userLocks[msg.sender][_lockId]; require(!lock.isUnlocked, "Tokens already unlocked"); require(block.timestamp >= lock.unlockTime, "Tokens are still locked"); lock.isUnlocked = true; IERC20 token = IERC20(lock.token); require( token.transfer(msg.sender, lock.amount), "Token transfer failed" ); emit TokensUnlocked( msg.sender, lock.token, lock.amount, _lockId ); } function getUserLocks(address _user) external view returns (Lock[] memory) { return userLocks[_user]; } function getLockInfo(address _user, uint256 _lockId) external view returns ( address token, uint256 amount, uint256 unlockTime, bool isUnlocked ) { require(_lockId < userLocks[_user].length, "Invalid lock ID"); Lock memory lock = userLocks[_user][_lockId]; return ( lock.token, lock.amount, lock.unlockTime, lock.isUnlocked ); } // Emergency function to recover stuck tokens function emergencyWithdraw(address _token) external onlyOwner { IERC20 token = IERC20(_token); uint256 balance = token.balanceOf(address(this)); require(balance > 0, "No tokens to withdraw"); require( token.transfer(owner(), balance), "Token transfer failed" ); } }
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":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockId","type":"uint256"}],"name":"TokensLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockId","type":"uint256"}],"name":"TokensUnlocked","type":"event"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_lockId","type":"uint256"}],"name":"getLockInfo","outputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"bool","name":"isUnlocked","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getUserLocks","outputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"bool","name":"isUnlocked","type":"bool"}],"internalType":"struct SonicChainSafeLocker.Lock[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_duration","type":"uint256"}],"name":"lockTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lockId","type":"uint256"}],"name":"unlockTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userLocks","outputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"bool","name":"isUnlocked","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052348015600e575f5ffd5b5060015f5533601b816020565b506071565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b610f008061007e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610085575f3560e01c80638da5cb5b116100585780638da5cb5b14610115578063a25983e514610130578063aa33fedb14610143578063f2fde38b14610156575f5ffd5b806315b9672c1461008957806323a35de9146100cd5780636ff1c9bc146100ed5780637c40532514610102575b5f5ffd5b61009c610097366004610d12565b610169565b604080516001600160a01b039095168552602085019390935291830152151560608201526080015b60405180910390f35b6100e06100db366004610d3a565b610258565b6040516100c49190610d5a565b6101006100fb366004610d3a565b6102fb565b005b610100610110366004610dca565b6104c7565b6001546040516001600160a01b0390911681526020016100c4565b61010061013e366004610de1565b610744565b61009c610151366004610d12565b610b7d565b610100610164366004610d3a565b610bcc565b6001600160a01b0382165f9081526002602052604081205481908190819085106101cc5760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081b1bd8dac81251608a1b60448201526064015b60405180910390fd5b6001600160a01b0386165f9081526002602052604081208054879081106101f5576101f5610e11565b5f9182526020918290206040805160808101825260049390930290910180546001600160a01b03168084526001820154948401859052600282015492840183905260039091015460ff16151560609093018390529a929950975095509350505050565b6001600160a01b0381165f908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b828210156102f0575f848152602090819020604080516080810182526004860290920180546001600160a01b03168352600180820154848601526002820154928401929092526003015460ff1615156060830152908352909201910161028f565b505050509050919050565b3361030e6001546001600160a01b031690565b6001600160a01b0316146103645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101c3565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156103aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ce9190610e25565b90505f81116104175760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b60448201526064016101c3565b816001600160a01b031663a9059cbb6104386001546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610482573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a69190610e3c565b6104c25760405162461bcd60e51b81526004016101c390610e5b565b505050565b60025f54036105185760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101c3565b60025f8181553381526020919091526040902054811061056c5760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081b1bd8dac81251608a1b60448201526064016101c3565b335f90815260026020526040812080548390811061058c5761058c610e11565b5f9182526020909120600490910201600381015490915060ff16156105f35760405162461bcd60e51b815260206004820152601760248201527f546f6b656e7320616c726561647920756e6c6f636b656400000000000000000060448201526064016101c3565b80600201544210156106475760405162461bcd60e51b815260206004820152601760248201527f546f6b656e7320617265207374696c6c206c6f636b656400000000000000000060448201526064016101c3565b60038101805460ff1916600190811790915581549082015460405163a9059cbb60e01b815233600482015260248101919091526001600160a01b0390911690819063a9059cbb906044016020604051808303815f875af11580156106ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d19190610e3c565b6106ed5760405162461bcd60e51b81526004016101c390610e5b565b8154600183015460408051918252602082018690526001600160a01b039092169133917f97d70440a7c61785d820a81f480f69135d7de7f30956842e839436951938fb49910160405180910390a3505060015f5550565b60025f54036107955760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101c3565b60025f556001600160a01b0383166107e75760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016101c3565b5f82116108365760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016101c3565b5f81116108855760405162461bcd60e51b815260206004820152601f60248201527f4475726174696f6e206d7573742062652067726561746572207468616e20300060448201526064016101c3565b6040516370a0823160e01b8152336004820152839083906001600160a01b038316906370a0823190602401602060405180830381865afa1580156108cb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ef9190610e25565b101561093d5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e636500000000000060448201526064016101c3565b604051636eb1769f60e11b815233600482015230602482015283906001600160a01b0383169063dd62ed3e90604401602060405180830381865afa158015610987573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ab9190610e25565b10156109f25760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b60448201526064016101c3565b5f6109fd8342610e9e565b6040516323b872dd60e01b8152336004820152306024820152604481018690529091506001600160a01b038316906323b872dd906064016020604051808303815f875af1158015610a50573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a749190610e3c565b610a905760405162461bcd60e51b81526004016101c390610e5b565b335f81815260026020818152604080842081516080810183526001600160a01b038c81168083528286018d81529483018a815260608401898152855460018082018855878c52898c209651600490920290960180546001600160a01b03191691909516178455955183850155518288015593516003909101805460ff1916911515919091179055948690529290915290549092917fa6782d3322abbfbe850e6d5c5c78e8e1df603ea07608bb9a62dd83f40d4feccc9188918691610b549190610eb7565b6040805193845260208401929092529082015260600160405180910390a3505060015f55505050565b6002602052815f5260405f208181548110610b96575f80fd5b5f91825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169450925060ff1684565b33610bdf6001546001600160a01b031690565b6001600160a01b031614610c355760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101c3565b6001600160a01b038116610c9a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101c3565b610ca381610ca6565b50565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b80356001600160a01b0381168114610d0d575f5ffd5b919050565b5f5f60408385031215610d23575f5ffd5b610d2c83610cf7565b946020939093013593505050565b5f60208284031215610d4a575f5ffd5b610d5382610cf7565b9392505050565b602080825282518282018190525f918401906040840190835b81811015610dbf57835180516001600160a01b03168452602080820151818601526040808301519086015260609182015115159185019190915290930192608090920191600101610d73565b509095945050505050565b5f60208284031215610dda575f5ffd5b5035919050565b5f5f5f60608486031215610df3575f5ffd5b610dfc84610cf7565b95602085013595506040909401359392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215610e35575f5ffd5b5051919050565b5f60208284031215610e4c575f5ffd5b81518015158114610d53575f5ffd5b602080825260159082015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610eb157610eb1610e8a565b92915050565b81810381811115610eb157610eb1610e8a56fea26469706673582212202fd3bebc3f4fdd6589f5271dadfd732c4352de6aedb56befa2b68b1badfdbbde64736f6c634300081c0033
Deployed Bytecode
0x608060405234801561000f575f5ffd5b5060043610610085575f3560e01c80638da5cb5b116100585780638da5cb5b14610115578063a25983e514610130578063aa33fedb14610143578063f2fde38b14610156575f5ffd5b806315b9672c1461008957806323a35de9146100cd5780636ff1c9bc146100ed5780637c40532514610102575b5f5ffd5b61009c610097366004610d12565b610169565b604080516001600160a01b039095168552602085019390935291830152151560608201526080015b60405180910390f35b6100e06100db366004610d3a565b610258565b6040516100c49190610d5a565b6101006100fb366004610d3a565b6102fb565b005b610100610110366004610dca565b6104c7565b6001546040516001600160a01b0390911681526020016100c4565b61010061013e366004610de1565b610744565b61009c610151366004610d12565b610b7d565b610100610164366004610d3a565b610bcc565b6001600160a01b0382165f9081526002602052604081205481908190819085106101cc5760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081b1bd8dac81251608a1b60448201526064015b60405180910390fd5b6001600160a01b0386165f9081526002602052604081208054879081106101f5576101f5610e11565b5f9182526020918290206040805160808101825260049390930290910180546001600160a01b03168084526001820154948401859052600282015492840183905260039091015460ff16151560609093018390529a929950975095509350505050565b6001600160a01b0381165f908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b828210156102f0575f848152602090819020604080516080810182526004860290920180546001600160a01b03168352600180820154848601526002820154928401929092526003015460ff1615156060830152908352909201910161028f565b505050509050919050565b3361030e6001546001600160a01b031690565b6001600160a01b0316146103645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101c3565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156103aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ce9190610e25565b90505f81116104175760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b60448201526064016101c3565b816001600160a01b031663a9059cbb6104386001546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610482573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a69190610e3c565b6104c25760405162461bcd60e51b81526004016101c390610e5b565b505050565b60025f54036105185760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101c3565b60025f8181553381526020919091526040902054811061056c5760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081b1bd8dac81251608a1b60448201526064016101c3565b335f90815260026020526040812080548390811061058c5761058c610e11565b5f9182526020909120600490910201600381015490915060ff16156105f35760405162461bcd60e51b815260206004820152601760248201527f546f6b656e7320616c726561647920756e6c6f636b656400000000000000000060448201526064016101c3565b80600201544210156106475760405162461bcd60e51b815260206004820152601760248201527f546f6b656e7320617265207374696c6c206c6f636b656400000000000000000060448201526064016101c3565b60038101805460ff1916600190811790915581549082015460405163a9059cbb60e01b815233600482015260248101919091526001600160a01b0390911690819063a9059cbb906044016020604051808303815f875af11580156106ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d19190610e3c565b6106ed5760405162461bcd60e51b81526004016101c390610e5b565b8154600183015460408051918252602082018690526001600160a01b039092169133917f97d70440a7c61785d820a81f480f69135d7de7f30956842e839436951938fb49910160405180910390a3505060015f5550565b60025f54036107955760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101c3565b60025f556001600160a01b0383166107e75760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016101c3565b5f82116108365760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016101c3565b5f81116108855760405162461bcd60e51b815260206004820152601f60248201527f4475726174696f6e206d7573742062652067726561746572207468616e20300060448201526064016101c3565b6040516370a0823160e01b8152336004820152839083906001600160a01b038316906370a0823190602401602060405180830381865afa1580156108cb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ef9190610e25565b101561093d5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e636500000000000060448201526064016101c3565b604051636eb1769f60e11b815233600482015230602482015283906001600160a01b0383169063dd62ed3e90604401602060405180830381865afa158015610987573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ab9190610e25565b10156109f25760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b60448201526064016101c3565b5f6109fd8342610e9e565b6040516323b872dd60e01b8152336004820152306024820152604481018690529091506001600160a01b038316906323b872dd906064016020604051808303815f875af1158015610a50573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a749190610e3c565b610a905760405162461bcd60e51b81526004016101c390610e5b565b335f81815260026020818152604080842081516080810183526001600160a01b038c81168083528286018d81529483018a815260608401898152855460018082018855878c52898c209651600490920290960180546001600160a01b03191691909516178455955183850155518288015593516003909101805460ff1916911515919091179055948690529290915290549092917fa6782d3322abbfbe850e6d5c5c78e8e1df603ea07608bb9a62dd83f40d4feccc9188918691610b549190610eb7565b6040805193845260208401929092529082015260600160405180910390a3505060015f55505050565b6002602052815f5260405f208181548110610b96575f80fd5b5f91825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169450925060ff1684565b33610bdf6001546001600160a01b031690565b6001600160a01b031614610c355760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101c3565b6001600160a01b038116610c9a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101c3565b610ca381610ca6565b50565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b80356001600160a01b0381168114610d0d575f5ffd5b919050565b5f5f60408385031215610d23575f5ffd5b610d2c83610cf7565b946020939093013593505050565b5f60208284031215610d4a575f5ffd5b610d5382610cf7565b9392505050565b602080825282518282018190525f918401906040840190835b81811015610dbf57835180516001600160a01b03168452602080820151818601526040808301519086015260609182015115159185019190915290930192608090920191600101610d73565b509095945050505050565b5f60208284031215610dda575f5ffd5b5035919050565b5f5f5f60608486031215610df3575f5ffd5b610dfc84610cf7565b95602085013595506040909401359392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215610e35575f5ffd5b5051919050565b5f60208284031215610e4c575f5ffd5b81518015158114610d53575f5ffd5b602080825260159082015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610eb157610eb1610e8a565b92915050565b81810381811115610eb157610eb1610e8a56fea26469706673582212202fd3bebc3f4fdd6589f5271dadfd732c4352de6aedb56befa2b68b1badfdbbde64736f6c634300081c0033
Deployed Bytecode Sourcemap
2174:3587:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4898:462;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;740:32:1;;;722:51;;804:2;789:18;;782:34;;;;832:18;;;825:34;902:14;895:22;890:2;875:18;;868:50;709:3;694:19;4898:462:0;;;;;;;;4773:117;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5419:339::-;;;;;;:::i;:::-;;:::i;:::-;;4069:696;;;;;;:::i;:::-;;:::i;1521:87::-;1594:6;;1521:87;;-1:-1:-1;;;;;1594:6:0;;;2394:51:1;;2382:2;2367:18;1521:87:0;2248:203:1;2792:1269:0;;;;;;:::i;:::-;;:::i;2371:43::-;;;;;;:::i;:::-;;:::i;1742:201::-;;;;;;:::i;:::-;;:::i;4898:462::-;-1:-1:-1;;;;;5114:16:0;;4984:13;5114:16;;;:9;:16;;;;;:23;4984:13;;;;;;5104:33;;5096:61;;;;-1:-1:-1;;;5096:61:0;;3083:2:1;5096:61:0;;;3065:21:1;3122:2;3102:18;;;3095:30;-1:-1:-1;;;3141:18:1;;;3134:45;3196:18;;5096:61:0;;;;;;;;;-1:-1:-1;;;;;5187:16:0;;5168;5187;;;:9;:16;;;;;:25;;5204:7;;5187:25;;;;;;:::i;:::-;;;;;;;;;;5168:44;;;;;;;;5187:25;;;;;;;;5168:44;;-1:-1:-1;;;;;5168:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5168:44:0;-1:-1:-1;5168:44:0;-1:-1:-1;4898:462:0;-1:-1:-1;;;;4898:462:0:o;4773:117::-;-1:-1:-1;;;;;4866:16:0;;;;;;:9;:16;;;;;;;;4859:23;;;;;;;;;;;;;;;;;4833:13;;4859:23;;4866:16;;4859:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4859:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4773:117;;;:::o;5419:339::-;1667:10;1656:7;1594:6;;-1:-1:-1;;;;;1594:6:0;;1521:87;1656:7;-1:-1:-1;;;;;1656:21:0;;1648:66;;;;-1:-1:-1;;;1648:66:0;;3559:2:1;1648:66:0;;;3541:21:1;;;3578:18;;;3571:30;3637:34;3617:18;;;3610:62;3689:18;;1648:66:0;3357:356:1;1648:66:0;5550:30:::1;::::0;-1:-1:-1;;;5550:30:0;;5574:4:::1;5550:30;::::0;::::1;2394:51:1::0;5514:6:0;;5492:12:::1;::::0;-1:-1:-1;;;;;5550:15:0;::::1;::::0;::::1;::::0;2367:18:1;;5550:30:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5532:48;;5609:1;5599:7;:11;5591:45;;;::::0;-1:-1:-1;;;5591:45:0;;4109:2:1;5591:45:0::1;::::0;::::1;4091:21:1::0;4148:2;4128:18;;;4121:30;-1:-1:-1;;;4167:18:1;;;4160:51;4228:18;;5591:45:0::1;3907:345:1::0;5591:45:0::1;5669:5;-1:-1:-1::0;;;;;5669:14:0::1;;5684:7;1594:6:::0;;-1:-1:-1;;;;;1594:6:0;;1521:87;5684:7:::1;5669:32;::::0;-1:-1:-1;;;;;;5669:32:0::1;::::0;;;;;;-1:-1:-1;;;;;4449:32:1;;;5669::0::1;::::0;::::1;4431:51:1::0;4498:18;;;4491:34;;;4404:18;;5669:32:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5647:103;;;;-1:-1:-1::0;;;5647:103:0::1;;;;;;;:::i;:::-;5481:277;;5419:339:::0;:::o;4069:696::-;951:1;1099:7;;:19;1091:63;;;;-1:-1:-1;;;1091:63:0;;5370:2:1;1091:63:0;;;5352:21:1;5409:2;5389:18;;;5382:30;5448:33;5428:18;;;5421:61;5499:18;;1091:63:0;5168:355:1;1091:63:0;951:1;1167:7;:18;;;4169:10:::1;4159:21:::0;;::::1;::::0;;;;;;;:28;4149:38;::::1;4141:66;;;::::0;-1:-1:-1;;;4141:66:0;;3083:2:1;4141:66:0::1;::::0;::::1;3065:21:1::0;3122:2;3102:18;;;3095:30;-1:-1:-1;;;3141:18:1;;;3134:45;3196:18;;4141:66:0::1;2881:339:1::0;4141:66:0::1;4248:10;4218:17;4238:21:::0;;;:9:::1;:21;::::0;;;;:30;;4260:7;;4238:30;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;4290:15;::::0;::::1;::::0;4238:30;;-1:-1:-1;4290:15:0::1;;4289:16;4281:52;;;::::0;-1:-1:-1;;;4281:52:0;;5730:2:1;4281:52:0::1;::::0;::::1;5712:21:1::0;5769:2;5749:18;;;5742:30;5808:25;5788:18;;;5781:53;5851:18;;4281:52:0::1;5528:347:1::0;4281:52:0::1;4371:4;:15;;;4352;:34;;4344:70;;;::::0;-1:-1:-1;;;4344:70:0;;6082:2:1;4344:70:0::1;::::0;::::1;6064:21:1::0;6121:2;6101:18;;;6094:30;6160:25;6140:18;;;6133:53;6203:18;;4344:70:0::1;5880:347:1::0;4344:70:0::1;4427:15;::::0;::::1;:22:::0;;-1:-1:-1;;4427:22:0::1;4445:4;4427:22:::0;;::::1;::::0;;;4484:10;;4555:11;;::::1;::::0;4528:39:::1;::::0;-1:-1:-1;;;4528:39:0;;4543:10:::1;4528:39;::::0;::::1;4431:51:1::0;4498:18;;;4491:34;;;;-1:-1:-1;;;;;4484:10:0;;::::1;::::0;;;4528:14:::1;::::0;4404:18:1;;4528:39:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4506:110;;;;-1:-1:-1::0;;;4506:110:0::1;;;;;;;:::i;:::-;4688:10:::0;;;4713:11;::::1;::::0;4634:123:::1;::::0;;6406:25:1;;;6462:2;6447:18;;6440:34;;;-1:-1:-1;;;;;4688:10:0;;::::1;::::0;4663::::1;::::0;4634:123:::1;::::0;6379:18:1;4634:123:0::1;;;;;;;-1:-1:-1::0;;907:1:0;1208:7;:22;-1:-1:-1;4069:696:0:o;2792:1269::-;951:1;1099:7;;:19;1091:63;;;;-1:-1:-1;;;1091:63:0;;5370:2:1;1091:63:0;;;5352:21:1;5409:2;5389:18;;;5382:30;5448:33;5428:18;;;5421:61;5499:18;;1091:63:0;5168:355:1;1091:63:0;951:1;1167:7;:18;-1:-1:-1;;;;;2939:20:0;::::1;2931:54;;;::::0;-1:-1:-1;;;2931:54:0;;6687:2:1;2931:54:0::1;::::0;::::1;6669:21:1::0;6726:2;6706:18;;;6699:30;-1:-1:-1;;;6745:18:1;;;6738:51;6806:18;;2931:54:0::1;6485:345:1::0;2931:54:0::1;3014:1;3004:7;:11;2996:53;;;::::0;-1:-1:-1;;;2996:53:0;;7037:2:1;2996:53:0::1;::::0;::::1;7019:21:1::0;7076:2;7056:18;;;7049:30;7115:31;7095:18;;;7088:59;7164:18;;2996:53:0::1;6835:353:1::0;2996:53:0::1;3080:1;3068:9;:13;3060:57;;;::::0;-1:-1:-1;;;3060:57:0;;7395:2:1;3060:57:0::1;::::0;::::1;7377:21:1::0;7434:2;7414:18;;;7407:30;7473:33;7453:18;;;7446:61;7524:18;;3060:57:0::1;7193:355:1::0;3060:57:0::1;3192:27;::::0;-1:-1:-1;;;3192:27:0;;3208:10:::1;3192:27;::::0;::::1;2394:51:1::0;3152:6:0;;3223:7;;-1:-1:-1;;;;;3192:15:0;::::1;::::0;::::1;::::0;2367:18:1;;3192:27:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:38;;3170:114;;;::::0;-1:-1:-1;;;3170:114:0;;7755:2:1;3170:114:0::1;::::0;::::1;7737:21:1::0;7794:2;7774:18;;;7767:30;7833:28;7813:18;;;7806:56;7879:18;;3170:114:0::1;7553:350:1::0;3170:114:0::1;3317:42;::::0;-1:-1:-1;;;3317:42:0;;3333:10:::1;3317:42;::::0;::::1;8082:51:1::0;3353:4:0::1;8149:18:1::0;;;8142:60;3363:7:0;;-1:-1:-1;;;;;3317:15:0;::::1;::::0;::::1;::::0;8055:18:1;;3317:42:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;3295:125;;;::::0;-1:-1:-1;;;3295:125:0;;8415:2:1;3295:125:0::1;::::0;::::1;8397:21:1::0;8454:2;8434:18;;;8427:30;-1:-1:-1;;;8473:18:1;;;8466:52;8535:18;;3295:125:0::1;8213:346:1::0;3295:125:0::1;3433:18;3454:27;3472:9:::0;3454:15:::1;:27;:::i;:::-;3556:54;::::0;-1:-1:-1;;;3556:54:0;;3575:10:::1;3556:54;::::0;::::1;9028:51:1::0;3595:4:0::1;9095:18:1::0;;;9088:60;9164:18;;;9157:34;;;3433:48:0;;-1:-1:-1;;;;;;3556:18:0;::::1;::::0;::::1;::::0;9001::1;;3556:54:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3534:125;;;;-1:-1:-1::0;;;3534:125:0::1;;;;;;;:::i;:::-;3710:10;3700:21;::::0;;;:9:::1;:21;::::0;;;;;;;3727:144;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;3727:144:0;;::::1;::::0;;;;;::::1;::::0;;;;;;;;;;;;;;;3700:172;;3727:144;3700:172;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;;3700:172:0::1;::::0;;;::::1;;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;3700:172:0::1;::::0;::::1;;::::0;;;::::1;::::0;;4010:21;;;;;;;;:28;;3727:144;;3710:10;3890:163:::1;::::0;3727:144;;;;4010:32:::1;::::0;3727:144;4010:32:::1;:::i;:::-;3890:163;::::0;;9537:25:1;;;9593:2;9578:18;;9571:34;;;;9621:18;;;9614:34;9525:2;9510:18;3890:163:0::1;;;;;;;-1:-1:-1::0;;907:1:0;1208:7;:22;-1:-1:-1;;;2792:1269:0:o;2371:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2371:43:0;;;;-1:-1:-1;2371:43:0;-1:-1:-1;2371:43:0;;;:::o;1742:201::-;1667:10;1656:7;1594:6;;-1:-1:-1;;;;;1594:6:0;;1521:87;1656:7;-1:-1:-1;;;;;1656:21:0;;1648:66;;;;-1:-1:-1;;;1648:66:0;;3559:2:1;1648:66:0;;;3541:21:1;;;3578:18;;;3571:30;3637:34;3617:18;;;3610:62;3689:18;;1648:66:0;3357:356:1;1648:66:0;-1:-1:-1;;;;;1831:22:0;::::1;1823:73;;;::::0;-1:-1:-1;;;1823:73:0;;9861:2:1;1823:73:0::1;::::0;::::1;9843:21:1::0;9900:2;9880:18;;;9873:30;9939:34;9919:18;;;9912:62;-1:-1:-1;;;9990:18:1;;;9983:36;10036:19;;1823:73:0::1;9659:402:1::0;1823:73:0::1;1907:28;1926:8;1907:18;:28::i;:::-;1742:201:::0;:::o;1951:191::-;2044:6;;;-1:-1:-1;;;;;2061:17:0;;;-1:-1:-1;;;;;;2061:17:0;;;;;;;2094:40;;2044:6;;;2061:17;2044:6;;2094:40;;2025:16;;2094:40;2014:128;1951:191;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:300::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;458:2;443:18;;;;430:32;;-1:-1:-1;;;192:300:1:o;929:186::-;988:6;1041:2;1029:9;1020:7;1016:23;1012:32;1009:52;;;1057:1;1054;1047:12;1009:52;1080:29;1099:9;1080:29;:::i;:::-;1070:39;929:186;-1:-1:-1;;;929:186:1:o;1120:892::-;1352:2;1364:21;;;1434:13;;1337:18;;;1456:22;;;1304:4;;1535:15;;;1509:2;1494:18;;;1304:4;1578:408;1592:6;1589:1;1586:13;1578:408;;;1651:13;;1693:9;;-1:-1:-1;;;;;1689:35:1;1677:48;;1773:2;1765:11;;;1759:18;1745:12;;;1738:40;1826:2;1818:11;;;1812:18;1798:12;;;1791:40;1895:4;1887:13;;;1881:20;1874:28;1867:36;1851:14;;;1844:60;;;;1961:15;;;;1933:4;1924:14;;;;1721:1;1607:9;1578:408;;;-1:-1:-1;2003:3:1;;1120:892;-1:-1:-1;;;;;1120:892:1:o;2017:226::-;2076:6;2129:2;2117:9;2108:7;2104:23;2100:32;2097:52;;;2145:1;2142;2135:12;2097:52;-1:-1:-1;2190:23:1;;2017:226;-1:-1:-1;2017:226:1:o;2456:420::-;2533:6;2541;2549;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2641:29;2660:9;2641:29;:::i;:::-;2631:39;2739:2;2724:18;;2711:32;;-1:-1:-1;2840:2:1;2825:18;;;2812:32;;2456:420;-1:-1:-1;;;2456:420:1:o;3225:127::-;3286:10;3281:3;3277:20;3274:1;3267:31;3317:4;3314:1;3307:15;3341:4;3338:1;3331:15;3718:184;3788:6;3841:2;3829:9;3820:7;3816:23;3812:32;3809:52;;;3857:1;3854;3847:12;3809:52;-1:-1:-1;3880:16:1;;3718:184;-1:-1:-1;3718:184:1:o;4536:277::-;4603:6;4656:2;4644:9;4635:7;4631:23;4627:32;4624:52;;;4672:1;4669;4662:12;4624:52;4704:9;4698:16;4757:5;4750:13;4743:21;4736:5;4733:32;4723:60;;4779:1;4776;4769:12;4818:345;5020:2;5002:21;;;5059:2;5039:18;;;5032:30;-1:-1:-1;;;5093:2:1;5078:18;;5071:51;5154:2;5139:18;;4818:345::o;8564:127::-;8625:10;8620:3;8616:20;8613:1;8606:31;8656:4;8653:1;8646:15;8680:4;8677:1;8670:15;8696:125;8761:9;;;8782:10;;;8779:36;;;8795:18;;:::i;:::-;8696:125;;;;:::o;9202:128::-;9269:9;;;9290:11;;;9287:37;;;9304:18;;:::i
Swarm Source
ipfs://2fd3bebc3f4fdd6589f5271dadfd732c4352de6aedb56befa2b68b1badfdbbde
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.