Overview
ETH Balance
0 ETH
ETH Value
$0.00
Cross-Chain Transactions
Loading...
Loading
Contract Name:
OrderBookReader
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 50 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
import "../libraries/math/SafeMath.sol";
import "../core/interfaces/IOrderBookForReader.sol";
contract OrderBookReader {
using SafeMath for uint256;
struct Vars {
uint256 i;
uint256 index;
address account;
uint256 uintLength;
uint256 addressLength;
}
function getIncreaseOrders(
address payable _orderBookAddress,
address _account,
uint256[] memory _indices
) external view returns (uint256[] memory, address[] memory) {
Vars memory vars = Vars(0, 0, _account, 5, 3);
uint256[] memory uintProps = new uint256[](vars.uintLength * _indices.length);
address[] memory addressProps = new address[](vars.addressLength * _indices.length);
IOrderBookForReader orderBook = IOrderBookForReader(_orderBookAddress);
while (vars.i < _indices.length) {
vars.index = _indices[vars.i];
(
address purchaseToken,
uint256 purchaseTokenAmount,
address collateralToken,
address indexToken,
uint256 sizeDelta,
bool isLong,
uint256 triggerPrice,
bool triggerAboveThreshold,
) = // uint256 executionFee
orderBook.getIncreaseOrder(vars.account, vars.index);
uintProps[vars.i * vars.uintLength] = uint256(purchaseTokenAmount);
uintProps[vars.i * vars.uintLength + 1] = uint256(sizeDelta);
uintProps[vars.i * vars.uintLength + 2] = uint256(isLong ? 1 : 0);
uintProps[vars.i * vars.uintLength + 3] = uint256(triggerPrice);
uintProps[vars.i * vars.uintLength + 4] = uint256(triggerAboveThreshold ? 1 : 0);
addressProps[vars.i * vars.addressLength] = (purchaseToken);
addressProps[vars.i * vars.addressLength + 1] = (collateralToken);
addressProps[vars.i * vars.addressLength + 2] = (indexToken);
vars.i++;
}
return (uintProps, addressProps);
}
function getDecreaseOrders(
address payable _orderBookAddress,
address _account,
uint256[] memory _indices
) external view returns (uint256[] memory, address[] memory) {
Vars memory vars = Vars(0, 0, _account, 5, 2);
uint256[] memory uintProps = new uint256[](vars.uintLength * _indices.length);
address[] memory addressProps = new address[](vars.addressLength * _indices.length);
IOrderBookForReader orderBook = IOrderBookForReader(_orderBookAddress);
while (vars.i < _indices.length) {
vars.index = _indices[vars.i];
(address collateralToken, uint256 collateralDelta, address indexToken, uint256 sizeDelta, bool isLong, uint256 triggerPrice, bool triggerAboveThreshold, ) = // uint256 executionFee
orderBook.getDecreaseOrder(vars.account, vars.index);
uintProps[vars.i * vars.uintLength] = uint256(collateralDelta);
uintProps[vars.i * vars.uintLength + 1] = uint256(sizeDelta);
uintProps[vars.i * vars.uintLength + 2] = uint256(isLong ? 1 : 0);
uintProps[vars.i * vars.uintLength + 3] = uint256(triggerPrice);
uintProps[vars.i * vars.uintLength + 4] = uint256(triggerAboveThreshold ? 1 : 0);
addressProps[vars.i * vars.addressLength] = (collateralToken);
addressProps[vars.i * vars.addressLength + 1] = (indexToken);
vars.i++;
}
return (uintProps, addressProps);
}
function getDecreaseOrdersV2(
address payable _orderBookAddress,
address _account,
uint256[] memory _indices
) external view returns (uint256[] memory, address[] memory) {
Vars memory vars = Vars(0, 0, _account, 5, 3);
uint256[] memory uintProps = new uint256[](vars.uintLength * _indices.length);
address[] memory addressProps = new address[](vars.addressLength * _indices.length);
IOrderBookForReader orderBook = IOrderBookForReader(_orderBookAddress);
while (vars.i < _indices.length) {
vars.index = _indices[vars.i];
(address collateralToken,address receiveToken, uint256 collateralDelta, address indexToken, uint256 sizeDelta, bool isLong, uint256 triggerPrice, bool triggerAboveThreshold, ) = // uint256 executionFee
orderBook.getDecreaseOrderV2(vars.account, vars.index);
uintProps[vars.i * vars.uintLength] = uint256(collateralDelta);
uintProps[vars.i * vars.uintLength + 1] = uint256(sizeDelta);
uintProps[vars.i * vars.uintLength + 2] = uint256(isLong ? 1 : 0);
uintProps[vars.i * vars.uintLength + 3] = uint256(triggerPrice);
uintProps[vars.i * vars.uintLength + 4] = uint256(triggerAboveThreshold ? 1 : 0);
addressProps[vars.i * vars.addressLength] = (collateralToken);
addressProps[vars.i * vars.addressLength + 1] = (indexToken);
addressProps[vars.i * vars.addressLength + 2] = (receiveToken);
vars.i++;
}
return (uintProps, addressProps);
}
function getSwapOrders(
address payable _orderBookAddress,
address _account,
uint256[] memory _indices
) external view returns (uint256[] memory, address[] memory) {
Vars memory vars = Vars(0, 0, _account, 5, 3);
uint256[] memory uintProps = new uint256[](vars.uintLength * _indices.length);
address[] memory addressProps = new address[](vars.addressLength * _indices.length);
IOrderBookForReader orderBook = IOrderBookForReader(_orderBookAddress);
while (vars.i < _indices.length) {
vars.index = _indices[vars.i];
(address path0, address path1, address path2, uint256 amountIn, uint256 minOut, uint256 triggerRatio, bool triggerAboveThreshold, bool shouldUnwrap, ) = // uint256 executionFee
orderBook.getSwapOrder(vars.account, vars.index);
uintProps[vars.i * vars.uintLength] = uint256(amountIn);
uintProps[vars.i * vars.uintLength + 1] = uint256(minOut);
uintProps[vars.i * vars.uintLength + 2] = uint256(triggerRatio);
uintProps[vars.i * vars.uintLength + 3] = uint256(triggerAboveThreshold ? 1 : 0);
uintProps[vars.i * vars.uintLength + 4] = uint256(shouldUnwrap ? 1 : 0);
addressProps[vars.i * vars.addressLength] = (path0);
addressProps[vars.i * vars.addressLength + 1] = (path1);
addressProps[vars.i * vars.addressLength + 2] = (path2);
vars.i++;
}
return (uintProps, addressProps);
}
}// SPDX-License-Identifier: MIT
pragma solidity >=0.6.12 <0.9.0;
interface IOrderBookForReader {
function getSwapOrder(address _account, uint256 _orderIndex)
external
view
returns (
address path0,
address path1,
address path2,
uint256 amountIn,
uint256 minOut,
uint256 triggerRatio,
bool triggerAboveThreshold,
bool shouldUnwrap,
uint256 executionFee
);
function getIncreaseOrder(address _account, uint256 _orderIndex)
external
view
returns (
address purchaseToken,
uint256 purchaseTokenAmount,
address collateralToken,
address indexToken,
uint256 sizeDelta,
bool isLong,
uint256 triggerPrice,
bool triggerAboveThreshold,
uint256 executionFee
);
function getDecreaseOrder(address _account, uint256 _orderIndex)
external
view
returns (
address collateralToken,
uint256 collateralDelta,
address indexToken,
uint256 sizeDelta,
bool isLong,
uint256 triggerPrice,
bool triggerAboveThreshold,
uint256 executionFee
);
function getDecreaseOrderV2(address _account, uint256 _orderIndex)
external
view
returns (
address collateralToken,
address receiveToken,
uint256 collateralDelta,
address indexToken,
uint256 sizeDelta,
bool isLong,
uint256 triggerPrice,
bool triggerAboveThreshold,
uint256 executionFee
);
}// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot 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-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}{
"optimizer": {
"enabled": true,
"runs": 50
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address payable","name":"_orderBookAddress","type":"address"},{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"getDecreaseOrders","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_orderBookAddress","type":"address"},{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"getDecreaseOrdersV2","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_orderBookAddress","type":"address"},{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"getIncreaseOrders","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_orderBookAddress","type":"address"},{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"getSwapOrders","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b5061128e806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ce933b9146100515780632e181469146101a4578063c38ccd501461025e578063f0ebc97014610318575b600080fd5b61010b6004803603606081101561006757600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561009a57600080fd5b8201836020820111156100ac57600080fd5b803590602001918460208302840111600160201b831117156100cd57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506103d2945050505050565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561014f578181015183820152602001610137565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561018e578181015183820152602001610176565b5050505090500194505050505060405180910390f35b61010b600480360360608110156101ba57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156101ed57600080fd5b8201836020820111156101ff57600080fd5b803590602001918460208302840111600160201b8311171561022057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061073a945050505050565b61010b6004803603606081101561027457600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156102a757600080fd5b8201836020820111156102b957600080fd5b803590602001918460208302840111600160201b831117156102da57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610adc945050505050565b61010b6004803603606081101561032e57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561036157600080fd5b82018360208201111561037357600080fd5b803590602001918460208302840111600160201b8311171561039457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610e7e945050505050565b6060806103dd611220565b6040518060a001604052806000815260200160008152602001866001600160a01b031681526020016005815260200160028152509050606084518260600151026001600160401b038111801561043257600080fd5b5060405190808252806020026020018201604052801561045c578160200160208202803683370190505b509050606085518360800151026001600160401b038111801561047e57600080fd5b506040519080825280602002602001820160405280156104a8578160200160208202803683370190505b509050875b86518451101561072c57868460000151815181106104c757fe5b60200260200101518460200181815250506000806000806000806000876001600160a01b031663026032ee8c604001518d602001516040518363ffffffff1660e01b815260040180836001600160a01b03168152602001828152602001925050506101006040518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d61010081101561056c57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050509650965096509650965096509650858a8c606001518d6000015102815181106105e957fe5b602002602001018181525050838a8c606001518d60000151026001018151811061060f57fe5b6020026020010181815250508261062757600061062a565b60015b60ff168a8c606001518d60000151026002018151811061064657fe5b602002602001018181525050818a8c606001518d60000151026003018151811061066c57fe5b60200260200101818152505080610684576000610687565b60015b60ff168a8c606001518d6000015102600401815181106106a357fe5b60200260200101818152505086898c608001518d6000015102815181106106c657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505084898c608001518d60000151026001018151811061070057fe5b6001600160a01b0390921660209283029190910190910152505088516001018952506104ad9350505050565b509097909650945050505050565b606080610745611220565b6040518060a001604052806000815260200160008152602001866001600160a01b031681526020016005815260200160038152509050606084518260600151026001600160401b038111801561079a57600080fd5b506040519080825280602002602001820160405280156107c4578160200160208202803683370190505b509050606085518360800151026001600160401b03811180156107e657600080fd5b50604051908082528060200260200182016040528015610810578160200160208202803683370190505b509050875b86518451101561072c578684600001518151811061082f57fe5b6020026020010151846020018181525050600080600080600080600080886001600160a01b031663d0d40cd68d604001518e602001516040518363ffffffff1660e01b815260040180836001600160a01b03168152602001828152602001925050506101206040518083038186803b1580156108aa57600080fd5b505afa1580156108be573d6000803e3d6000fd5b505050506040513d6101208110156108d557600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050505097509750975097509750975097509750848b8d606001518e60000151028151811061095e57fe5b602002602001018181525050838b8d606001518e60000151026001018151811061098457fe5b602002602001018181525050828b8d606001518e6000015102600201815181106109aa57fe5b602002602001018181525050816109c25760006109c5565b60015b60ff168b8d606001518e6000015102600301815181106109e157fe5b602002602001018181525050806109f95760006109fc565b60015b60ff168b8d606001518e600001510260040181518110610a1857fe5b602002602001018181525050878a8d608001518e600001510281518110610a3b57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050868a8d608001518e600001510260010181518110610a7557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050858a8d608001518e600001510260020181518110610aaf57fe5b6001600160a01b0390921660209283029190910190910152505089516001018a5250610815945050505050565b606080610ae7611220565b6040518060a001604052806000815260200160008152602001866001600160a01b031681526020016005815260200160038152509050606084518260600151026001600160401b0381118015610b3c57600080fd5b50604051908082528060200260200182016040528015610b66578160200160208202803683370190505b509050606085518360800151026001600160401b0381118015610b8857600080fd5b50604051908082528060200260200182016040528015610bb2578160200160208202803683370190505b509050875b86518451101561072c5786846000015181518110610bd157fe5b6020026020010151846020018181525050600080600080600080600080886001600160a01b031663d3bab1d18d604001518e602001516040518363ffffffff1660e01b815260040180836001600160a01b03168152602001828152602001925050506101206040518083038186803b158015610c4c57600080fd5b505afa158015610c60573d6000803e3d6000fd5b505050506040513d610120811015610c7757600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050505097509750975097509750975097509750868b8d606001518e600001510281518110610d0057fe5b602002602001018181525050838b8d606001518e600001510260010181518110610d2657fe5b60200260200101818152505082610d3e576000610d41565b60015b60ff168b8d606001518e600001510260020181518110610d5d57fe5b602002602001018181525050818b8d606001518e600001510260030181518110610d8357fe5b60200260200101818152505080610d9b576000610d9e565b60015b60ff168b8d606001518e600001510260040181518110610dba57fe5b602002602001018181525050878a8d608001518e600001510281518110610ddd57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050858a8d608001518e600001510260010181518110610e1757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050848a8d608001518e600001510260020181518110610e5157fe5b6001600160a01b0390921660209283029190910190910152505089516001018a5250610bb7945050505050565b606080610e89611220565b6040518060a001604052806000815260200160008152602001866001600160a01b031681526020016005815260200160038152509050606084518260600151026001600160401b0381118015610ede57600080fd5b50604051908082528060200260200182016040528015610f08578160200160208202803683370190505b509050606085518360800151026001600160401b0381118015610f2a57600080fd5b50604051908082528060200260200182016040528015610f54578160200160208202803683370190505b509050875b86518451101561072c5786846000015181518110610f7357fe5b6020026020010151846020018181525050600080600080600080600080886001600160a01b0316632701808c8d604001518e602001516040518363ffffffff1660e01b815260040180836001600160a01b03168152602001828152602001925050506101206040518083038186803b158015610fee57600080fd5b505afa158015611002573d6000803e3d6000fd5b505050506040513d61012081101561101957600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050505097509750975097509750975097509750858b8d606001518e6000015102815181106110a257fe5b602002602001018181525050838b8d606001518e6000015102600101815181106110c857fe5b602002602001018181525050826110e05760006110e3565b60015b60ff168b8d606001518e6000015102600201815181106110ff57fe5b602002602001018181525050818b8d606001518e60000151026003018151811061112557fe5b6020026020010181815250508061113d576000611140565b60015b60ff168b8d606001518e60000151026004018151811061115c57fe5b602002602001018181525050878a8d608001518e60000151028151811061117f57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050848a8d608001518e6000015102600101815181106111b957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050868a8d608001518e6000015102600201815181106111f357fe5b6001600160a01b0390921660209283029190910190910152505089516001018a5250610f59945050505050565b6040518060a00160405280600081526020016000815260200160006001600160a01b031681526020016000815260200160008152509056fea2646970667358221220e7fd0f036a316e13bf4bf45bead5179ce698b328a3276b84dc81c21f25d0fc3a64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ce933b9146100515780632e181469146101a4578063c38ccd501461025e578063f0ebc97014610318575b600080fd5b61010b6004803603606081101561006757600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561009a57600080fd5b8201836020820111156100ac57600080fd5b803590602001918460208302840111600160201b831117156100cd57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506103d2945050505050565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561014f578181015183820152602001610137565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561018e578181015183820152602001610176565b5050505090500194505050505060405180910390f35b61010b600480360360608110156101ba57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156101ed57600080fd5b8201836020820111156101ff57600080fd5b803590602001918460208302840111600160201b8311171561022057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061073a945050505050565b61010b6004803603606081101561027457600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156102a757600080fd5b8201836020820111156102b957600080fd5b803590602001918460208302840111600160201b831117156102da57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610adc945050505050565b61010b6004803603606081101561032e57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561036157600080fd5b82018360208201111561037357600080fd5b803590602001918460208302840111600160201b8311171561039457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610e7e945050505050565b6060806103dd611220565b6040518060a001604052806000815260200160008152602001866001600160a01b031681526020016005815260200160028152509050606084518260600151026001600160401b038111801561043257600080fd5b5060405190808252806020026020018201604052801561045c578160200160208202803683370190505b509050606085518360800151026001600160401b038111801561047e57600080fd5b506040519080825280602002602001820160405280156104a8578160200160208202803683370190505b509050875b86518451101561072c57868460000151815181106104c757fe5b60200260200101518460200181815250506000806000806000806000876001600160a01b031663026032ee8c604001518d602001516040518363ffffffff1660e01b815260040180836001600160a01b03168152602001828152602001925050506101006040518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d61010081101561056c57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050509650965096509650965096509650858a8c606001518d6000015102815181106105e957fe5b602002602001018181525050838a8c606001518d60000151026001018151811061060f57fe5b6020026020010181815250508261062757600061062a565b60015b60ff168a8c606001518d60000151026002018151811061064657fe5b602002602001018181525050818a8c606001518d60000151026003018151811061066c57fe5b60200260200101818152505080610684576000610687565b60015b60ff168a8c606001518d6000015102600401815181106106a357fe5b60200260200101818152505086898c608001518d6000015102815181106106c657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505084898c608001518d60000151026001018151811061070057fe5b6001600160a01b0390921660209283029190910190910152505088516001018952506104ad9350505050565b509097909650945050505050565b606080610745611220565b6040518060a001604052806000815260200160008152602001866001600160a01b031681526020016005815260200160038152509050606084518260600151026001600160401b038111801561079a57600080fd5b506040519080825280602002602001820160405280156107c4578160200160208202803683370190505b509050606085518360800151026001600160401b03811180156107e657600080fd5b50604051908082528060200260200182016040528015610810578160200160208202803683370190505b509050875b86518451101561072c578684600001518151811061082f57fe5b6020026020010151846020018181525050600080600080600080600080886001600160a01b031663d0d40cd68d604001518e602001516040518363ffffffff1660e01b815260040180836001600160a01b03168152602001828152602001925050506101206040518083038186803b1580156108aa57600080fd5b505afa1580156108be573d6000803e3d6000fd5b505050506040513d6101208110156108d557600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050505097509750975097509750975097509750848b8d606001518e60000151028151811061095e57fe5b602002602001018181525050838b8d606001518e60000151026001018151811061098457fe5b602002602001018181525050828b8d606001518e6000015102600201815181106109aa57fe5b602002602001018181525050816109c25760006109c5565b60015b60ff168b8d606001518e6000015102600301815181106109e157fe5b602002602001018181525050806109f95760006109fc565b60015b60ff168b8d606001518e600001510260040181518110610a1857fe5b602002602001018181525050878a8d608001518e600001510281518110610a3b57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050868a8d608001518e600001510260010181518110610a7557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050858a8d608001518e600001510260020181518110610aaf57fe5b6001600160a01b0390921660209283029190910190910152505089516001018a5250610815945050505050565b606080610ae7611220565b6040518060a001604052806000815260200160008152602001866001600160a01b031681526020016005815260200160038152509050606084518260600151026001600160401b0381118015610b3c57600080fd5b50604051908082528060200260200182016040528015610b66578160200160208202803683370190505b509050606085518360800151026001600160401b0381118015610b8857600080fd5b50604051908082528060200260200182016040528015610bb2578160200160208202803683370190505b509050875b86518451101561072c5786846000015181518110610bd157fe5b6020026020010151846020018181525050600080600080600080600080886001600160a01b031663d3bab1d18d604001518e602001516040518363ffffffff1660e01b815260040180836001600160a01b03168152602001828152602001925050506101206040518083038186803b158015610c4c57600080fd5b505afa158015610c60573d6000803e3d6000fd5b505050506040513d610120811015610c7757600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050505097509750975097509750975097509750868b8d606001518e600001510281518110610d0057fe5b602002602001018181525050838b8d606001518e600001510260010181518110610d2657fe5b60200260200101818152505082610d3e576000610d41565b60015b60ff168b8d606001518e600001510260020181518110610d5d57fe5b602002602001018181525050818b8d606001518e600001510260030181518110610d8357fe5b60200260200101818152505080610d9b576000610d9e565b60015b60ff168b8d606001518e600001510260040181518110610dba57fe5b602002602001018181525050878a8d608001518e600001510281518110610ddd57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050858a8d608001518e600001510260010181518110610e1757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050848a8d608001518e600001510260020181518110610e5157fe5b6001600160a01b0390921660209283029190910190910152505089516001018a5250610bb7945050505050565b606080610e89611220565b6040518060a001604052806000815260200160008152602001866001600160a01b031681526020016005815260200160038152509050606084518260600151026001600160401b0381118015610ede57600080fd5b50604051908082528060200260200182016040528015610f08578160200160208202803683370190505b509050606085518360800151026001600160401b0381118015610f2a57600080fd5b50604051908082528060200260200182016040528015610f54578160200160208202803683370190505b509050875b86518451101561072c5786846000015181518110610f7357fe5b6020026020010151846020018181525050600080600080600080600080886001600160a01b0316632701808c8d604001518e602001516040518363ffffffff1660e01b815260040180836001600160a01b03168152602001828152602001925050506101206040518083038186803b158015610fee57600080fd5b505afa158015611002573d6000803e3d6000fd5b505050506040513d61012081101561101957600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050505097509750975097509750975097509750858b8d606001518e6000015102815181106110a257fe5b602002602001018181525050838b8d606001518e6000015102600101815181106110c857fe5b602002602001018181525050826110e05760006110e3565b60015b60ff168b8d606001518e6000015102600201815181106110ff57fe5b602002602001018181525050818b8d606001518e60000151026003018151811061112557fe5b6020026020010181815250508061113d576000611140565b60015b60ff168b8d606001518e60000151026004018151811061115c57fe5b602002602001018181525050878a8d608001518e60000151028151811061117f57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050848a8d608001518e6000015102600101815181106111b957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050868a8d608001518e6000015102600201815181106111f357fe5b6001600160a01b0390921660209283029190910190910152505089516001018a5250610f59945050505050565b6040518060a00160405280600081526020016000815260200160006001600160a01b031681526020016000815260200160008152509056fea2646970667358221220e7fd0f036a316e13bf4bf45bead5179ce698b328a3276b84dc81c21f25d0fc3a64736f6c634300060c0033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.