Source Code
Latest 25 from a total of 77,676 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Payment | 92516322 | 3 mins ago | IN | 0 BNB | 0.00000633 | ||||
| Payment | 92515513 | 9 mins ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92515174 | 12 mins ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92514816 | 14 mins ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92514480 | 17 mins ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92513742 | 22 mins ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92513605 | 23 mins ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92509180 | 57 mins ago | IN | 0 BNB | 0.00000703 | ||||
| Payment | 92509023 | 58 mins ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92508621 | 1 hr ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92508241 | 1 hr ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92506487 | 1 hr ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92506240 | 1 hr ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92502189 | 1 hr ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92500150 | 2 hrs ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92498767 | 2 hrs ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92497673 | 2 hrs ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92495977 | 2 hrs ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92495790 | 2 hrs ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92494624 | 2 hrs ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92493777 | 2 hrs ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92492728 | 3 hrs ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92492274 | 3 hrs ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92492147 | 3 hrs ago | IN | 0 BNB | 0.00000617 | ||||
| Payment | 92486911 | 3 hrs ago | IN | 0 BNB | 0.00000617 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
VaultMLMModuleContract
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.19;
import {IERC20} from "./interfaces/IERC20.sol";
import {IVaultContract} from "./interfaces/IVaultContract.sol";
import {SafeERC20} from "./math/SafeERC20.sol";
import {SafeMath} from "./math/SafeMath.sol";
contract VaultMLMModuleContract {
using SafeMath for uint256;
using SafeERC20 for IERC20;
error MLMModulePermissionDeniedError();
error MLMModuleAddressInvalidError();
error MLMModuleAmountInvalidError();
error MLMModuleDuplicatePaymentError();
event MLMModulePayment(uint16 pType, address to, uint256 amount, bytes32 ref);
address internal owner;
address internal baseToken; //ALPS
IVaultContract internal vaultContract;
mapping(uint16 => string) internal paymentType;
mapping(uint16 => uint256) internal paymentStats;
mapping(bytes32 => bool) internal replayTransactions;
modifier onlyOwner() {
if (msg.sender != owner) revert MLMModulePermissionDeniedError();
_;
}
constructor(address _vaultContractAddress, address _baseToken){
owner = msg.sender;
vaultContract = IVaultContract(_vaultContractAddress);
baseToken = _baseToken;
}
function payment(uint16 pType, address to, uint256 amount, bytes32 ref) external onlyOwner {
bytes32 hash = hashTransaction(pType, to, amount, ref);
if (isPaymentMade(hash)) revert MLMModuleDuplicatePaymentError();
replayTransactions[hash] = true;
_withdrawFromVault(to, amount);
paymentStats[pType] += amount;
emit MLMModulePayment(pType, to, amount, ref);
}
function addPaymentType(uint16 pType, string calldata name) external onlyOwner {
paymentType[pType] = name;
}
function hashTransaction(uint16 pType, address to, uint256 amount, bytes32 ref) public pure returns (bytes32) {
return keccak256(abi.encode(pType, to, amount, ref));
}
function isPaymentMade(bytes32 hash) public view returns (bool){
return replayTransactions[hash];
}
function getStats(uint16 pType) external view returns (uint256){
return paymentStats[pType];
}
function _withdrawFromVault(address to, uint256 amount) internal {
if (to == address(0)) revert MLMModuleAddressInvalidError();
if (amount == 0) revert MLMModuleAmountInvalidError();
vaultContract.moduleWithdrawToken(baseToken, to, amount);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.19;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.10;
interface IVaultContract {
enum ModuleStatus {
NONE, // not registered
REGISTERED, // registered
ACTIVE, // normal operation
READ_ONLY, // can read storage, cannot move tokens or write
DEPRECATED, // old module during soft upgrade
DISABLED // fully blocked
}
function getStats(address moduleAddress, address tokenAddress) external view returns (
uint256 total_in,
uint256 total_out,
uint256 total_fee,
uint256 withdraw_limit,
uint256 withdrawable,
ModuleStatus status,
uint256 createdAt
);
function moduleDepositToken(address baseToken, uint256 amount, uint256 includedFee) external;
function moduleWithdrawToken(address tokenAddress, address toAddress, uint256 amount) external;
function moduleAvailableWithdrawToken(address tokenAddress, uint256) external view returns (uint256);
function moduleRecordFee(address token, uint256 fee) external;
function moduleReadStorageUint(bytes32 key) external view returns (uint256);
function moduleWriteStorageUint(bytes32 key, uint256 value) external;
function moduleReadStorageInt(bytes32 key) external view returns (int256);
function moduleWriteStorageInt(bytes32 key, int256 value) external;
function moduleReadStorageByte(bytes32 key) external view returns (bytes memory);
function moduleWriteStorageByte(bytes32 key, bytes calldata value) external;
function moduleReadStorageByte32(bytes32 key) external view returns (bytes32);
function moduleWriteStorageByte32(bytes32 key, bytes32 value) external;
function moduleReadStorageBool(bytes32 key) external view returns (bool);
function moduleWriteStorageBool(bytes32 key, bool value) external;
function moduleReadStorageString(bytes32 key) external view returns (string memory);
function moduleWriteStorageString(bytes32 key, string calldata value) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import "../interfaces/IERC20.sol";
import "./SafeMath.sol";
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure.
* To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using SafeMath for uint256;
function safeTransfer(
IERC20 token,
address to,
uint256 value
)
internal
{
require(token.transfer(to, value));
}
function safeTransferFrom(
IERC20 token,
address from,
address to,
uint256 value
)
internal
{
require(token.transferFrom(from, to, value));
}
function safeApprove(
IERC20 token,
address spender,
uint256 value
)
internal
{
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
require((value == 0) || (token.allowance(msg.sender, spender) == 0));
require(token.approve(spender, value));
}
function safeIncreaseAllowance(
IERC20 token,
address spender,
uint256 value
)
internal
{
uint256 newAllowance = token.allowance(address(this), spender).add(value);
require(token.approve(spender, newAllowance));
}
function safeDecreaseAllowance(
IERC20 token,
address spender,
uint256 value
)
internal
{
uint256 newAllowance = token.allowance(address(this), spender).sub(value);
require(token.approve(spender, newAllowance));
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
/**
* @title SafeMath
* @dev Math operations with safety checks that revert on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, reverts on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0); // Solidity only automatically asserts when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
/**
* @dev Adds two numbers, reverts on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
/**
* @dev Divides two numbers and returns the remainder (unsigned integer modulo),
* reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_vaultContractAddress","type":"address"},{"internalType":"address","name":"_baseToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"MLMModuleAddressInvalidError","type":"error"},{"inputs":[],"name":"MLMModuleAmountInvalidError","type":"error"},{"inputs":[],"name":"MLMModuleDuplicatePaymentError","type":"error"},{"inputs":[],"name":"MLMModulePermissionDeniedError","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"pType","type":"uint16"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"ref","type":"bytes32"}],"name":"MLMModulePayment","type":"event"},{"inputs":[{"internalType":"uint16","name":"pType","type":"uint16"},{"internalType":"string","name":"name","type":"string"}],"name":"addPaymentType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"pType","type":"uint16"}],"name":"getStats","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"pType","type":"uint16"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"ref","type":"bytes32"}],"name":"hashTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"isPaymentMade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"pType","type":"uint16"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"ref","type":"bytes32"}],"name":"payment","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b5060405161071838038061071883398101604081905261002f91610087565b600080546001600160a01b03199081163317909155600280546001600160a01b03948516908316179055600180549290931691161790556100ba565b80516001600160a01b038116811461008257600080fd5b919050565b6000806040838503121561009a57600080fd5b6100a38361006b565b91506100b16020840161006b565b90509250929050565b61064f806100c96000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063389a86ba1461005c5780633d1d389614610094578063887078be146100a95780638ee9ec2e146100db578063bd251c5e146100ee575b600080fd5b61007f61006a366004610371565b60009081526005602052604090205460ff1690565b60405190151581526020015b60405180910390f35b6100a76100a23660046103a1565b610101565b005b6100cd6100b73660046103f1565b61ffff1660009081526004602052604090205490565b60405190815260200161008b565b6100cd6100e93660046103a1565b610213565b6100a76100fc366004610413565b610266565b6000546001600160a01b0316331461012c57604051630dde68ff60e41b815260040160405180910390fd5b600061013a85858585610213565b60008181526005602052604090205490915060ff161561016d5760405163b799136b60e01b815260040160405180910390fd5b6000818152600560205260409020805460ff1916600117905561019084846102b5565b61ffff8516600090815260046020526040812080548592906101b3908490610496565b90915550506040805161ffff871681526001600160a01b0386166020820152908101849052606081018390527f2b8e5a731f4aaddf486906b476c7b28aaa4c5f72d28b750d6293ff4f13314f249060800160405180910390a15050505050565b6040805161ffff861660208201526001600160a01b03851691810191909152606081018390526080810182905260009060a001604051602081830303815290604052805190602001209050949350505050565b6000546001600160a01b0316331461029157604051630dde68ff60e41b815260040160405180910390fd5b61ffff831660009081526003602052604090206102af828483610558565b50505050565b6001600160a01b0382166102dc57604051635d68761b60e11b815260040160405180910390fd5b806000036102fd576040516394591bfd60e01b815260040160405180910390fd5b60025460015460405163cb3d729f60e01b81526001600160a01b03918216600482015284821660248201526044810184905291169063cb3d729f90606401600060405180830381600087803b15801561035557600080fd5b505af1158015610369573d6000803e3d6000fd5b505050505050565b60006020828403121561038357600080fd5b5035919050565b803561ffff8116811461039c57600080fd5b919050565b600080600080608085870312156103b757600080fd5b6103c08561038a565b935060208501356001600160a01b03811681146103dc57600080fd5b93969395505050506040820135916060013590565b60006020828403121561040357600080fd5b61040c8261038a565b9392505050565b60008060006040848603121561042857600080fd5b6104318461038a565b9250602084013567ffffffffffffffff8082111561044e57600080fd5b818601915086601f83011261046257600080fd5b81358181111561047157600080fd5b87602082850101111561048357600080fd5b6020830194508093505050509250925092565b808201808211156104b757634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806104e757607f821691505b60208210810361050757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561055357600081815260208120601f850160051c810160208610156105345750805b601f850160051c820191505b8181101561036957828155600101610540565b505050565b67ffffffffffffffff831115610570576105706104bd565b6105848361057e83546104d3565b8361050d565b6000601f8411600181146105b857600085156105a05750838201355b600019600387901b1c1916600186901b178355610612565b600083815260209020601f19861690835b828110156105e957868501358255602094850194600190920191016105c9565b50868210156106065760001960f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea26469706673582212205f191e0ab9e3749854aeffd9650599fc59e47a071abf8bacd2210ff727f9a56064736f6c634300081400330000000000000000000000007e84f721d8082639d8dba7ed357b34523ffffa0b0000000000000000000000005870357dfa6a11d3fe45d775c21ed9ae60ac4bef
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063389a86ba1461005c5780633d1d389614610094578063887078be146100a95780638ee9ec2e146100db578063bd251c5e146100ee575b600080fd5b61007f61006a366004610371565b60009081526005602052604090205460ff1690565b60405190151581526020015b60405180910390f35b6100a76100a23660046103a1565b610101565b005b6100cd6100b73660046103f1565b61ffff1660009081526004602052604090205490565b60405190815260200161008b565b6100cd6100e93660046103a1565b610213565b6100a76100fc366004610413565b610266565b6000546001600160a01b0316331461012c57604051630dde68ff60e41b815260040160405180910390fd5b600061013a85858585610213565b60008181526005602052604090205490915060ff161561016d5760405163b799136b60e01b815260040160405180910390fd5b6000818152600560205260409020805460ff1916600117905561019084846102b5565b61ffff8516600090815260046020526040812080548592906101b3908490610496565b90915550506040805161ffff871681526001600160a01b0386166020820152908101849052606081018390527f2b8e5a731f4aaddf486906b476c7b28aaa4c5f72d28b750d6293ff4f13314f249060800160405180910390a15050505050565b6040805161ffff861660208201526001600160a01b03851691810191909152606081018390526080810182905260009060a001604051602081830303815290604052805190602001209050949350505050565b6000546001600160a01b0316331461029157604051630dde68ff60e41b815260040160405180910390fd5b61ffff831660009081526003602052604090206102af828483610558565b50505050565b6001600160a01b0382166102dc57604051635d68761b60e11b815260040160405180910390fd5b806000036102fd576040516394591bfd60e01b815260040160405180910390fd5b60025460015460405163cb3d729f60e01b81526001600160a01b03918216600482015284821660248201526044810184905291169063cb3d729f90606401600060405180830381600087803b15801561035557600080fd5b505af1158015610369573d6000803e3d6000fd5b505050505050565b60006020828403121561038357600080fd5b5035919050565b803561ffff8116811461039c57600080fd5b919050565b600080600080608085870312156103b757600080fd5b6103c08561038a565b935060208501356001600160a01b03811681146103dc57600080fd5b93969395505050506040820135916060013590565b60006020828403121561040357600080fd5b61040c8261038a565b9392505050565b60008060006040848603121561042857600080fd5b6104318461038a565b9250602084013567ffffffffffffffff8082111561044e57600080fd5b818601915086601f83011261046257600080fd5b81358181111561047157600080fd5b87602082850101111561048357600080fd5b6020830194508093505050509250925092565b808201808211156104b757634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806104e757607f821691505b60208210810361050757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561055357600081815260208120601f850160051c810160208610156105345750805b601f850160051c820191505b8181101561036957828155600101610540565b505050565b67ffffffffffffffff831115610570576105706104bd565b6105848361057e83546104d3565b8361050d565b6000601f8411600181146105b857600085156105a05750838201355b600019600387901b1c1916600186901b178355610612565b600083815260209020601f19861690835b828110156105e957868501358255602094850194600190920191016105c9565b50868210156106065760001960f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea26469706673582212205f191e0ab9e3749854aeffd9650599fc59e47a071abf8bacd2210ff727f9a56064736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007e84f721d8082639d8dba7ed357b34523ffffa0b0000000000000000000000005870357dfa6a11d3fe45d775c21ed9ae60ac4bef
-----Decoded View---------------
Arg [0] : _vaultContractAddress (address): 0x7e84f721D8082639d8dbA7ed357B34523FffFa0B
Arg [1] : _baseToken (address): 0x5870357Dfa6A11d3Fe45D775C21eD9ae60Ac4BeF
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007e84f721d8082639d8dba7ed357b34523ffffa0b
Arg [1] : 0000000000000000000000005870357dfa6a11d3fe45d775c21ed9ae60ac4bef
Deployed Bytecode Sourcemap
272:2183:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1953:111;;;;;;:::i;:::-;2011:4;2033:24;;;:18;:24;;;;;;;;;1953:111;;;;364:14:5;;357:22;339:41;;327:2;312:18;1953:111:0;;;;;;;;1224:411;;;;;;:::i;:::-;;:::i;:::-;;2070:106;;;;;;:::i;:::-;2150:19;;2125:7;2150:19;;;:12;:19;;;;;;;2070:106;;;;1390:25:5;;;1378:2;1363:18;2070:106:0;1244:177:5;1768:179:0;;;;;;:::i;:::-;;:::i;1641:121::-;;;;;;:::i;:::-;;:::i;1224:411::-;956:5;;-1:-1:-1;;;;;956:5:0;942:10;:19;938:64;;970:32;;-1:-1:-1;;;970:32:0;;;;;;;;;;;938:64;1325:12:::1;1340:39;1356:5;1363:2;1367:6;1375:3;1340:15;:39::i;:::-;2011:4:::0;2033:24;;;:18;:24;;;;;;1325:54;;-1:-1:-1;2033:24:0;;1389:64:::1;;;1421:32;;-1:-1:-1::0;;;1421:32:0::1;;;;;;;;;;;1389:64;1463:24;::::0;;;:18:::1;:24;::::0;;;;:31;;-1:-1:-1;;1463:31:0::1;1490:4;1463:31;::::0;;1504:30:::1;1523:2:::0;1527:6;1504:18:::1;:30::i;:::-;1544:19;::::0;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;1567:6;;1544:19;:29:::1;::::0;1567:6;;1544:29:::1;:::i;:::-;::::0;;;-1:-1:-1;;1588:40:0::1;::::0;;2763:6:5;2751:19;;2733:38;;-1:-1:-1;;;;;2807:32:5;;2802:2;2787:18;;2780:60;2856:18;;;2849:34;;;2914:2;2899:18;;2892:34;;;1588:40:0::1;::::0;2720:3:5;2705:19;1588:40:0::1;;;;;;;1315:320;1224:411:::0;;;;:::o;1768:179::-;1905:34;;;2763:6:5;2751:19;;1905:34:0;;;2733:38:5;-1:-1:-1;;;;;2807:32:5;;2787:18;;;2780:60;;;;2856:18;;;2849:34;;;2899:18;;;2892:34;;;1869:7:0;;2705:19:5;;1905:34:0;;;;;;;;;;;;1895:45;;;;;;1888:52;;1768:179;;;;;;:::o;1641:121::-;956:5;;-1:-1:-1;;;;;956:5:0;942:10;:19;938:64;;970:32;;-1:-1:-1;;;970:32:0;;;;;;;;;;;938:64;1730:18:::1;::::0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:25:::1;1751:4:::0;;1730:18;:25:::1;:::i;:::-;;1641:121:::0;;;:::o;2182:270::-;-1:-1:-1;;;;;2261:16:0;;2257:59;;2286:30;;-1:-1:-1;;;2286:30:0;;;;;;;;;;;2257:59;2330:6;2340:1;2330:11;2326:53;;2350:29;;-1:-1:-1;;;2350:29:0;;;;;;;;;;;2326:53;2389:13;;;2423:9;2389:56;;-1:-1:-1;;;2389:56:0;;-1:-1:-1;;;;;2423:9:0;;;2389:56;;;5752:34:5;5822:15;;;5802:18;;;5795:43;5854:18;;;5847:34;;;2389:13:0;;;:33;;5687:18:5;;2389:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2182:270;;:::o;14:180:5:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:5;;14:180;-1:-1:-1;14:180:5:o;391:159::-;458:20;;518:6;507:18;;497:29;;487:57;;540:1;537;530:12;487:57;391:159;;;:::o;555:495::-;640:6;648;656;664;717:3;705:9;696:7;692:23;688:33;685:53;;;734:1;731;724:12;685:53;757:28;775:9;757:28;:::i;:::-;747:38;-1:-1:-1;835:2:5;820:18;;807:32;-1:-1:-1;;;;;868:31:5;;858:42;;848:70;;914:1;911;904:12;848:70;555:495;;937:5;;-1:-1:-1;;;;989:2:5;974:18;;961:32;;1040:2;1025:18;1012:32;;555:495::o;1055:184::-;1113:6;1166:2;1154:9;1145:7;1141:23;1137:32;1134:52;;;1182:1;1179;1172:12;1134:52;1205:28;1223:9;1205:28;:::i;:::-;1195:38;1055:184;-1:-1:-1;;;1055:184:5:o;1608:664::-;1687:6;1695;1703;1756:2;1744:9;1735:7;1731:23;1727:32;1724:52;;;1772:1;1769;1762:12;1724:52;1795:28;1813:9;1795:28;:::i;:::-;1785:38;;1874:2;1863:9;1859:18;1846:32;1897:18;1938:2;1930:6;1927:14;1924:34;;;1954:1;1951;1944:12;1924:34;1992:6;1981:9;1977:22;1967:32;;2037:7;2030:4;2026:2;2022:13;2018:27;2008:55;;2059:1;2056;2049:12;2008:55;2099:2;2086:16;2125:2;2117:6;2114:14;2111:34;;;2141:1;2138;2131:12;2111:34;2186:7;2181:2;2172:6;2168:2;2164:15;2160:24;2157:37;2154:57;;;2207:1;2204;2197:12;2154:57;2238:2;2234;2230:11;2220:21;;2260:6;2250:16;;;;;1608:664;;;;;:::o;2277:222::-;2342:9;;;2363:10;;;2360:133;;;2415:10;2410:3;2406:20;2403:1;2396:31;2450:4;2447:1;2440:15;2478:4;2475:1;2468:15;2360:133;2277:222;;;;:::o;2937:127::-;2998:10;2993:3;2989:20;2986:1;2979:31;3029:4;3026:1;3019:15;3053:4;3050:1;3043:15;3069:380;3148:1;3144:12;;;;3191;;;3212:61;;3266:4;3258:6;3254:17;3244:27;;3212:61;3319:2;3311:6;3308:14;3288:18;3285:38;3282:161;;3365:10;3360:3;3356:20;3353:1;3346:31;3400:4;3397:1;3390:15;3428:4;3425:1;3418:15;3282:161;;3069:380;;;:::o;3580:545::-;3682:2;3677:3;3674:11;3671:448;;;3718:1;3743:5;3739:2;3732:17;3788:4;3784:2;3774:19;3858:2;3846:10;3842:19;3839:1;3835:27;3829:4;3825:38;3894:4;3882:10;3879:20;3876:47;;;-1:-1:-1;3917:4:5;3876:47;3972:2;3967:3;3963:12;3960:1;3956:20;3950:4;3946:31;3936:41;;4027:82;4045:2;4038:5;4035:13;4027:82;;;4090:17;;;4071:1;4060:13;4027:82;;3671:448;3580:545;;;:::o;4301:1206::-;4425:18;4420:3;4417:27;4414:53;;;4447:18;;:::i;:::-;4476:94;4566:3;4526:38;4558:4;4552:11;4526:38;:::i;:::-;4520:4;4476:94;:::i;:::-;4596:1;4621:2;4616:3;4613:11;4638:1;4633:616;;;;5293:1;5310:3;5307:93;;;-1:-1:-1;5366:19:5;;;5353:33;5307:93;-1:-1:-1;;4258:1:5;4254:11;;;4250:24;4246:29;4236:40;4282:1;4278:11;;;4233:57;5413:78;;4606:895;;4633:616;3527:1;3520:14;;;3564:4;3551:18;;-1:-1:-1;;4669:17:5;;;4770:9;4792:229;4806:7;4803:1;4800:14;4792:229;;;4895:19;;;4882:33;4867:49;;5002:4;4987:20;;;;4955:1;4943:14;;;;4822:12;4792:229;;;4796:3;5049;5040:7;5037:16;5034:159;;;5173:1;5169:6;5163:3;5157;5154:1;5150:11;5146:21;5142:34;5138:39;5125:9;5120:3;5116:19;5103:33;5099:79;5091:6;5084:95;5034:159;;;5236:1;5230:3;5227:1;5223:11;5219:19;5213:4;5206:33;4606:895;;;4301:1206;;;:::o
Swarm Source
ipfs://5f191e0ab9e3749854aeffd9650599fc59e47a071abf8bacd2210ff727f9a560
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in BNB
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.