Source Code
Overview
S Balance
0 S
More Info
ContractCreator
Loading...
Loading
Contract Name:
MultiSender
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at testnet.sonicscan.org on 2024-12-20 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; // IERC20.sol interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); 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); } // Context.sol abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // Ownable.sol abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor(address initialOwner) { _transferOwnership(initialOwner); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } 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); } } // ReentrancyGuard.sol 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; } } // MultiSender Contract contract MultiSender is Ownable, ReentrancyGuard { uint256 public constant FEE_AMOUNT = 10 * 10**18; // 10 S tokens address public feeToken; // Events event MultisendToken( address indexed token, address indexed sender, uint256 totalAmount, uint256 recipientCount ); event FeeTokenUpdated(address newFeeToken); event FeesCollected(address indexed sender, uint256 amount); constructor(address _feeToken) Ownable(msg.sender) { require(_feeToken != address(0), "Invalid fee token address"); feeToken = _feeToken; } function multiSendToken( address token, address[] calldata recipients, uint256[] calldata amounts ) external nonReentrant { require(token != address(0), "Invalid token address"); require(recipients.length > 0, "No recipients"); require(recipients.length == amounts.length, "Length mismatch"); require(recipients.length <= 200, "Too many recipients"); // Calculate total amount uint256 totalAmount; for(uint i = 0; i < amounts.length; i++) { totalAmount += amounts[i]; } // Collect fee in S tokens and send to owner require( IERC20(feeToken).transferFrom(msg.sender, owner(), FEE_AMOUNT), "Fee payment failed" ); emit FeesCollected(msg.sender, FEE_AMOUNT); // Transfer tokens to recipients IERC20 tokenContract = IERC20(token); require( tokenContract.transferFrom(msg.sender, address(this), totalAmount), "Token transfer failed" ); for(uint i = 0; i < recipients.length; i++) { require(recipients[i] != address(0), "Invalid recipient"); require( tokenContract.transfer(recipients[i], amounts[i]), "Transfer to recipient failed" ); } emit MultisendToken(token, msg.sender, totalAmount, recipients.length); } // Admin function function updateFeeToken(address _newFeeToken) external onlyOwner { require(_newFeeToken != address(0), "Invalid fee token"); feeToken = _newFeeToken; emit FeeTokenUpdated(_newFeeToken); } function rescueTokens(address token) external onlyOwner { uint256 balance = IERC20(token).balanceOf(address(this)); require(balance > 0, "No tokens to rescue"); require( IERC20(token).transfer(owner(), balance), "Rescue transfer failed" ); } }
[{"inputs":[{"internalType":"address","name":"_feeToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newFeeToken","type":"address"}],"name":"FeeTokenUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FeesCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"totalAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"recipientCount","type":"uint256"}],"name":"MultisendToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"FEE_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newFeeToken","type":"address"}],"name":"updateFeeToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b50604051610d20380380610d2083398101604081905261002e9161010b565b33610038816100bc565b50600180556001600160a01b0381166100975760405162461bcd60e51b815260206004820152601960248201527f496e76616c69642066656520746f6b656e206164647265737300000000000000604482015260640160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055610138565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121561011b575f80fd5b81516001600160a01b0381168114610131575f80fd5b9392505050565b610bdb806101455f395ff3fe608060405234801561000f575f80fd5b5060043610610084575f3560e01c80638e899718116100585780638e899718146100e5578063ad5f1574146100f8578063c89245d514610115578063f2fde38b14610128575f80fd5b8062ae3bf814610088578063647846a51461009d578063715018a6146100cd5780638da5cb5b146100d5575b5f80fd5b61009b610096366004610a33565b61013b565b005b6002546100b0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61009b6102ce565b5f546001600160a01b03166100b0565b61009b6100f3366004610a9b565b6102e1565b610107678ac7230489e8000081565b6040519081526020016100c4565b61009b610123366004610a33565b610851565b61009b610136366004610a33565b6108f7565b610143610970565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ab9190610b16565b90505f81116101f75760405162461bcd60e51b81526020600482015260136024820152724e6f20746f6b656e7320746f2072657363756560681b60448201526064015b60405180910390fd5b816001600160a01b031663a9059cbb6102175f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610261573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102859190610b2d565b6102ca5760405162461bcd60e51b815260206004820152601660248201527514995cd8dd59481d1c985b9cd9995c8819985a5b195960521b60448201526064016101ee565b5050565b6102d6610970565b6102df5f6109c9565b565b6002600154036103335760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101ee565b60026001556001600160a01b0385166103865760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016101ee565b826103c35760405162461bcd60e51b815260206004820152600d60248201526c4e6f20726563697069656e747360981b60448201526064016101ee565b8281146104045760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016101ee565b60c883111561044b5760405162461bcd60e51b8152602060048201526013602482015272546f6f206d616e7920726563697069656e747360681b60448201526064016101ee565b5f805b8281101561048e5783838281811061046857610468610b4c565b905060200201358261047a9190610b74565b91508061048681610b8d565b91505061044e565b506002546001600160a01b03166323b872dd336104b25f546001600160a01b031690565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152678ac7230489e8000060448201526064016020604051808303815f875af115801561050a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052e9190610b2d565b61056f5760405162461bcd60e51b8152602060048201526012602482015271119959481c185e5b595b9d0819985a5b195960721b60448201526064016101ee565b604051678ac7230489e80000815233907f9dc46f23cfb5ddcad0ae7ea2be38d47fec07bb9382ec7e564efc69e036dd66ce9060200160405180910390a26040516323b872dd60e01b81523360048201523060248201526044810182905286906001600160a01b038216906323b872dd906064016020604051808303815f875af11580156105fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106229190610b2d565b6106665760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b60448201526064016101ee565b5f5b858110156107fd575f87878381811061068357610683610b4c565b90506020020160208101906106989190610a33565b6001600160a01b0316036106e25760405162461bcd60e51b8152602060048201526011602482015270125b9d985b1a59081c9958da5c1a595b9d607a1b60448201526064016101ee565b816001600160a01b031663a9059cbb88888481811061070357610703610b4c565b90506020020160208101906107189190610a33565b87878581811061072a5761072a610b4c565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303815f875af115801561077b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079f9190610b2d565b6107eb5760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20726563697069656e74206661696c65640000000060448201526064016101ee565b806107f581610b8d565b915050610668565b50604080518381526020810187905233916001600160a01b038a16917f4c077ce60bb2474be1e04e31d026119ed92e08aae762f2b9edb677301c6cee5e910160405180910390a35050600180555050505050565b610859610970565b6001600160a01b0381166108a35760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b2103332b2903a37b5b2b760791b60448201526064016101ee565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fa0ca04e9956a42929fa24e6299bb6622c8703ac575c61b33e01fb170100ee6dc9060200160405180910390a150565b6108ff610970565b6001600160a01b0381166109645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101ee565b61096d816109c9565b50565b5f546001600160a01b031633146102df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101ee565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610a2e575f80fd5b919050565b5f60208284031215610a43575f80fd5b610a4c82610a18565b9392505050565b5f8083601f840112610a63575f80fd5b50813567ffffffffffffffff811115610a7a575f80fd5b6020830191508360208260051b8501011115610a94575f80fd5b9250929050565b5f805f805f60608688031215610aaf575f80fd5b610ab886610a18565b9450602086013567ffffffffffffffff80821115610ad4575f80fd5b610ae089838a01610a53565b90965094506040880135915080821115610af8575f80fd5b50610b0588828901610a53565b969995985093965092949392505050565b5f60208284031215610b26575f80fd5b5051919050565b5f60208284031215610b3d575f80fd5b81518015158114610a4c575f80fd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610b8757610b87610b60565b92915050565b5f60018201610b9e57610b9e610b60565b506001019056fea2646970667358221220c5ebf612e8aae7b5600c7de79e7fcd1d2896830022df20db2ee30424db3890d264736f6c63430008140033000000000000000000000000bab390c9f75dc9677999996d73614fa7a217152e
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610084575f3560e01c80638e899718116100585780638e899718146100e5578063ad5f1574146100f8578063c89245d514610115578063f2fde38b14610128575f80fd5b8062ae3bf814610088578063647846a51461009d578063715018a6146100cd5780638da5cb5b146100d5575b5f80fd5b61009b610096366004610a33565b61013b565b005b6002546100b0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61009b6102ce565b5f546001600160a01b03166100b0565b61009b6100f3366004610a9b565b6102e1565b610107678ac7230489e8000081565b6040519081526020016100c4565b61009b610123366004610a33565b610851565b61009b610136366004610a33565b6108f7565b610143610970565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ab9190610b16565b90505f81116101f75760405162461bcd60e51b81526020600482015260136024820152724e6f20746f6b656e7320746f2072657363756560681b60448201526064015b60405180910390fd5b816001600160a01b031663a9059cbb6102175f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610261573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102859190610b2d565b6102ca5760405162461bcd60e51b815260206004820152601660248201527514995cd8dd59481d1c985b9cd9995c8819985a5b195960521b60448201526064016101ee565b5050565b6102d6610970565b6102df5f6109c9565b565b6002600154036103335760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101ee565b60026001556001600160a01b0385166103865760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016101ee565b826103c35760405162461bcd60e51b815260206004820152600d60248201526c4e6f20726563697069656e747360981b60448201526064016101ee565b8281146104045760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016101ee565b60c883111561044b5760405162461bcd60e51b8152602060048201526013602482015272546f6f206d616e7920726563697069656e747360681b60448201526064016101ee565b5f805b8281101561048e5783838281811061046857610468610b4c565b905060200201358261047a9190610b74565b91508061048681610b8d565b91505061044e565b506002546001600160a01b03166323b872dd336104b25f546001600160a01b031690565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152678ac7230489e8000060448201526064016020604051808303815f875af115801561050a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052e9190610b2d565b61056f5760405162461bcd60e51b8152602060048201526012602482015271119959481c185e5b595b9d0819985a5b195960721b60448201526064016101ee565b604051678ac7230489e80000815233907f9dc46f23cfb5ddcad0ae7ea2be38d47fec07bb9382ec7e564efc69e036dd66ce9060200160405180910390a26040516323b872dd60e01b81523360048201523060248201526044810182905286906001600160a01b038216906323b872dd906064016020604051808303815f875af11580156105fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106229190610b2d565b6106665760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b60448201526064016101ee565b5f5b858110156107fd575f87878381811061068357610683610b4c565b90506020020160208101906106989190610a33565b6001600160a01b0316036106e25760405162461bcd60e51b8152602060048201526011602482015270125b9d985b1a59081c9958da5c1a595b9d607a1b60448201526064016101ee565b816001600160a01b031663a9059cbb88888481811061070357610703610b4c565b90506020020160208101906107189190610a33565b87878581811061072a5761072a610b4c565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303815f875af115801561077b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079f9190610b2d565b6107eb5760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20726563697069656e74206661696c65640000000060448201526064016101ee565b806107f581610b8d565b915050610668565b50604080518381526020810187905233916001600160a01b038a16917f4c077ce60bb2474be1e04e31d026119ed92e08aae762f2b9edb677301c6cee5e910160405180910390a35050600180555050505050565b610859610970565b6001600160a01b0381166108a35760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b2103332b2903a37b5b2b760791b60448201526064016101ee565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fa0ca04e9956a42929fa24e6299bb6622c8703ac575c61b33e01fb170100ee6dc9060200160405180910390a150565b6108ff610970565b6001600160a01b0381166109645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101ee565b61096d816109c9565b50565b5f546001600160a01b031633146102df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101ee565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610a2e575f80fd5b919050565b5f60208284031215610a43575f80fd5b610a4c82610a18565b9392505050565b5f8083601f840112610a63575f80fd5b50813567ffffffffffffffff811115610a7a575f80fd5b6020830191508360208260051b8501011115610a94575f80fd5b9250929050565b5f805f805f60608688031215610aaf575f80fd5b610ab886610a18565b9450602086013567ffffffffffffffff80821115610ad4575f80fd5b610ae089838a01610a53565b90965094506040880135915080821115610af8575f80fd5b50610b0588828901610a53565b969995985093965092949392505050565b5f60208284031215610b26575f80fd5b5051919050565b5f60208284031215610b3d575f80fd5b81518015158114610a4c575f80fd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610b8757610b87610b60565b92915050565b5f60018201610b9e57610b9e610b60565b506001019056fea2646970667358221220c5ebf612e8aae7b5600c7de79e7fcd1d2896830022df20db2ee30424db3890d264736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bab390c9f75dc9677999996d73614fa7a217152e
-----Decoded View---------------
Arg [0] : _feeToken (address): 0xbab390C9f75dc9677999996d73614FA7A217152e
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000bab390c9f75dc9677999996d73614fa7a217152e
Deployed Bytecode Sourcemap
2566:2718:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4973:308;;;;;;:::i;:::-;;:::i;:::-;;2692:23;;;;;-1:-1:-1;;;;;2692:23:0;;;;;;-1:-1:-1;;;;;547:32:1;;;529:51;;517:2;502:18;2692:23:0;;;;;;;;1584:103;;;:::i;1349:87::-;1395:7;1422:6;-1:-1:-1;;;;;1422:6:0;1349:87;;3206:1501;;;;;;:::i;:::-;;:::i;2622:48::-;;2659:11;2622:48;;;;;1961:25:1;;;1949:2;1934:18;2622:48:0;1815:177:1;4742:219:0;;;;;;:::i;:::-;;:::i;1695:201::-;;;;;;:::i;:::-;;:::i;4973:308::-;1308:13;:11;:13::i;:::-;5058:38:::1;::::0;-1:-1:-1;;;5058:38:0;;5090:4:::1;5058:38;::::0;::::1;529:51:1::0;5040:15:0::1;::::0;-1:-1:-1;;;;;5058:23:0;::::1;::::0;::::1;::::0;502:18:1;;5058:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5040:56;;5125:1;5115:7;:11;5107:43;;;::::0;-1:-1:-1;;;5107:43:0;;2388:2:1;5107:43:0::1;::::0;::::1;2370:21:1::0;2427:2;2407:18;;;2400:30;-1:-1:-1;;;2446:18:1;;;2439:49;2505:18;;5107:43:0::1;;;;;;;;;5190:5;-1:-1:-1::0;;;;;5183:22:0::1;;5206:7;1395::::0;1422:6;-1:-1:-1;;;;;1422:6:0;;1349:87;5206:7:::1;5183:40;::::0;-1:-1:-1;;;;;;5183:40:0::1;::::0;;;;;;-1:-1:-1;;;;;2726:32:1;;;5183:40:0::1;::::0;::::1;2708:51:1::0;2775:18;;;2768:34;;;2681:18;;5183:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5161:112;;;::::0;-1:-1:-1;;;5161:112:0;;3297:2:1;5161:112:0::1;::::0;::::1;3279:21:1::0;3336:2;3316:18;;;3309:30;-1:-1:-1;;;3355:18:1;;;3348:52;3417:18;;5161:112:0::1;3095:346:1::0;5161:112:0::1;5029:252;4973:308:::0;:::o;1584:103::-;1308:13;:11;:13::i;:::-;1649:30:::1;1676:1;1649:18;:30::i;:::-;1584:103::o:0;3206:1501::-;2251:1;2397:7;;:19;2389:63;;;;-1:-1:-1;;;2389:63:0;;3648:2:1;2389:63:0;;;3630:21:1;3687:2;3667:18;;;3660:30;3726:33;3706:18;;;3699:61;3777:18;;2389:63:0;3446:355:1;2389:63:0;2251:1;2463:7;:18;-1:-1:-1;;;;;3379:19:0;::::1;3371:53;;;::::0;-1:-1:-1;;;3371:53:0;;4008:2:1;3371:53:0::1;::::0;::::1;3990:21:1::0;4047:2;4027:18;;;4020:30;-1:-1:-1;;;4066:18:1;;;4059:51;4127:18;;3371:53:0::1;3806:345:1::0;3371:53:0::1;3443:21:::0;3435:47:::1;;;::::0;-1:-1:-1;;;3435:47:0;;4358:2:1;3435:47:0::1;::::0;::::1;4340:21:1::0;4397:2;4377:18;;;4370:30;-1:-1:-1;;;4416:18:1;;;4409:43;4469:18;;3435:47:0::1;4156:337:1::0;3435:47:0::1;3501:35:::0;;::::1;3493:63;;;::::0;-1:-1:-1;;;3493:63:0;;4700:2:1;3493:63:0::1;::::0;::::1;4682:21:1::0;4739:2;4719:18;;;4712:30;-1:-1:-1;;;4758:18:1;;;4751:45;4813:18;;3493:63:0::1;4498:339:1::0;3493:63:0::1;3596:3;3575:24:::0;::::1;;3567:56;;;::::0;-1:-1:-1;;;3567:56:0;;5044:2:1;3567:56:0::1;::::0;::::1;5026:21:1::0;5083:2;5063:18;;;5056:30;-1:-1:-1;;;5102:18:1;;;5095:49;5161:18;;3567:56:0::1;4842:343:1::0;3567:56:0::1;3679:19;::::0;3709:93:::1;3725:18:::0;;::::1;3709:93;;;3780:7;;3788:1;3780:10;;;;;;;:::i;:::-;;;;;;;3765:25;;;;;:::i;:::-;::::0;-1:-1:-1;3745:3:0;::::1;::::0;::::1;:::i;:::-;;;;3709:93;;;-1:-1:-1::0;3905:8:0::1;::::0;-1:-1:-1;;;;;3905:8:0::1;3898:29;3928:10;3940:7;1395::::0;1422:6;-1:-1:-1;;;;;1422:6:0;;1349:87;3940:7:::1;3898:62;::::0;-1:-1:-1;;;;;;3898:62:0::1;::::0;;;;;;-1:-1:-1;;;;;5982:15:1;;;3898:62:0::1;::::0;::::1;5964:34:1::0;6034:15;;6014:18;;;6007:43;2659:11:0::1;6066:18:1::0;;;6059:34;5899:18;;3898:62:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3876:130;;;::::0;-1:-1:-1;;;3876:130:0;;6306:2:1;3876:130:0::1;::::0;::::1;6288:21:1::0;6345:2;6325:18;;;6318:30;-1:-1:-1;;;6364:18:1;;;6357:48;6422:18;;3876:130:0::1;6104:342:1::0;3876:130:0::1;4022:37;::::0;2659:11:::1;1961:25:1::0;;4036:10:0::1;::::0;4022:37:::1;::::0;1949:2:1;1934:18;4022:37:0::1;;;;;;;4191:66;::::0;-1:-1:-1;;;4191:66:0;;4218:10:::1;4191:66;::::0;::::1;5964:34:1::0;4238:4:0::1;6014:18:1::0;;;6007:43;6066:18;;;6059:34;;;4152:5:0;;-1:-1:-1;;;;;4191:26:0;::::1;::::0;::::1;::::0;5899:18:1;;4191:66:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4169:137;;;::::0;-1:-1:-1;;;4169:137:0;;6653:2:1;4169:137:0::1;::::0;::::1;6635:21:1::0;6692:2;6672:18;;;6665:30;-1:-1:-1;;;6711:18:1;;;6704:51;6772:18;;4169:137:0::1;6451:345:1::0;4169:137:0::1;4331:6;4327:282;4343:21:::0;;::::1;4327:282;;;4419:1;4394:10:::0;;4405:1;4394:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4394:27:0::1;::::0;4386:57:::1;;;::::0;-1:-1:-1;;;4386:57:0;;7003:2:1;4386:57:0::1;::::0;::::1;6985:21:1::0;7042:2;7022:18;;;7015:30;-1:-1:-1;;;7061:18:1;;;7054:47;7118:18;;4386:57:0::1;6801:341:1::0;4386:57:0::1;4484:13;-1:-1:-1::0;;;;;4484:22:0::1;;4507:10;;4518:1;4507:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4522:7;;4530:1;4522:10;;;;;;;:::i;:::-;4484:49;::::0;-1:-1:-1;;;;;;4484:49:0::1;::::0;;;;;;-1:-1:-1;;;;;2726:32:1;;;4484:49:0::1;::::0;::::1;2708:51:1::0;4522:10:0::1;;::::0;;;::::1;;2775:18:1::0;;;2768:34;-1:-1:-1;2681:18:1;;4484:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4458:139;;;::::0;-1:-1:-1;;;4458:139:0;;7349:2:1;4458:139:0::1;::::0;::::1;7331:21:1::0;7388:2;7368:18;;;7361:30;7427;7407:18;;;7400:58;7475:18;;4458:139:0::1;7147:352:1::0;4458:139:0::1;4366:3:::0;::::1;::::0;::::1;:::i;:::-;;;;4327:282;;;-1:-1:-1::0;4634:65:0::1;::::0;;7678:25:1;;;7734:2;7719:18;;7712:34;;;4656:10:0::1;::::0;-1:-1:-1;;;;;4634:65:0;::::1;::::0;::::1;::::0;7651:18:1;4634:65:0::1;;;;;;;-1:-1:-1::0;;2207:1:0;2504:22;;-1:-1:-1;;;;;3206:1501:0:o;4742:219::-;1308:13;:11;:13::i;:::-;-1:-1:-1;;;;;4826:26:0;::::1;4818:56;;;::::0;-1:-1:-1;;;4818:56:0;;7959:2:1;4818:56:0::1;::::0;::::1;7941:21:1::0;7998:2;7978:18;;;7971:30;-1:-1:-1;;;8017:18:1;;;8010:47;8074:18;;4818:56:0::1;7757:341:1::0;4818:56:0::1;4885:8;:23:::0;;-1:-1:-1;;;;;;4885:23:0::1;-1:-1:-1::0;;;;;4885:23:0;::::1;::::0;;::::1;::::0;;;4924:29:::1;::::0;529:51:1;;;4924:29:0::1;::::0;517:2:1;502:18;4924:29:0::1;;;;;;;4742:219:::0;:::o;1695:201::-;1308:13;:11;:13::i;:::-;-1:-1:-1;;;;;1784:22:0;::::1;1776:73;;;::::0;-1:-1:-1;;;1776:73:0;;8305:2:1;1776:73:0::1;::::0;::::1;8287:21:1::0;8344:2;8324:18;;;8317:30;8383:34;8363:18;;;8356:62;-1:-1:-1;;;8434:18:1;;;8427:36;8480:19;;1776:73:0::1;8103:402:1::0;1776:73:0::1;1860:28;1879:8;1860:18;:28::i;:::-;1695:201:::0;:::o;1444:132::-;1395:7;1422:6;-1:-1:-1;;;;;1422:6:0;866:10;1508:23;1500:68;;;;-1:-1:-1;;;1500:68:0;;8712:2:1;1500:68:0;;;8694:21:1;;;8731:18;;;8724:30;8790:34;8770:18;;;8763:62;8842:18;;1500:68:0;8510:356:1;1904:191:0;1978:16;1997:6;;-1:-1:-1;;;;;2014:17:0;;;-1:-1:-1;;;;;;2014:17:0;;;;;;2047:40;;1997:6;;;;;;;2047:40;;1978:16;2047:40;1967:128;1904: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:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;591:367::-;654:8;664:6;718:3;711:4;703:6;699:17;695:27;685:55;;736:1;733;726:12;685:55;-1:-1:-1;759:20:1;;802:18;791:30;;788:50;;;834:1;831;824:12;788:50;871:4;863:6;859:17;847:29;;931:3;924:4;914:6;911:1;907:14;899:6;895:27;891:38;888:47;885:67;;;948:1;945;938:12;885:67;591:367;;;;;:::o;963:847::-;1094:6;1102;1110;1118;1126;1179:2;1167:9;1158:7;1154:23;1150:32;1147:52;;;1195:1;1192;1185:12;1147:52;1218:29;1237:9;1218:29;:::i;:::-;1208:39;;1298:2;1287:9;1283:18;1270:32;1321:18;1362:2;1354:6;1351:14;1348:34;;;1378:1;1375;1368:12;1348:34;1417:70;1479:7;1470:6;1459:9;1455:22;1417:70;:::i;:::-;1506:8;;-1:-1:-1;1391:96:1;-1:-1:-1;1594:2:1;1579:18;;1566:32;;-1:-1:-1;1610:16:1;;;1607:36;;;1639:1;1636;1629:12;1607:36;;1678:72;1742:7;1731:8;1720:9;1716:24;1678:72;:::i;:::-;963:847;;;;-1:-1:-1;963:847:1;;-1:-1:-1;1769:8:1;;1652:98;963:847;-1:-1:-1;;;963:847:1:o;1997:184::-;2067:6;2120:2;2108:9;2099:7;2095:23;2091:32;2088:52;;;2136:1;2133;2126:12;2088:52;-1:-1:-1;2159:16:1;;1997:184;-1:-1:-1;1997:184:1:o;2813:277::-;2880:6;2933:2;2921:9;2912:7;2908:23;2904:32;2901:52;;;2949:1;2946;2939:12;2901:52;2981:9;2975:16;3034:5;3027:13;3020:21;3013:5;3010:32;3000:60;;3056:1;3053;3046:12;5190:127;5251:10;5246:3;5242:20;5239:1;5232:31;5282:4;5279:1;5272:15;5306:4;5303:1;5296:15;5322:127;5383:10;5378:3;5374:20;5371:1;5364:31;5414:4;5411:1;5404:15;5438:4;5435:1;5428:15;5454:125;5519:9;;;5540:10;;;5537:36;;;5553:18;;:::i;:::-;5454:125;;;;:::o;5584:135::-;5623:3;5644:17;;;5641:43;;5664:18;;:::i;:::-;-1:-1:-1;5711:1:1;5700:13;;5584:135::o
Swarm Source
ipfs://c5ebf612e8aae7b5600c7de79e7fcd1d2896830022df20db2ee30424db3890d2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.