Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 12 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
15387286 | 891 days ago | 0.02141232 ETH | ||||
15380681 | 893 days ago | 0.00094706 ETH | ||||
15380681 | 893 days ago | 0.18337004 ETH | ||||
15380659 | 893 days ago | 0.00094706 ETH | ||||
15380659 | 893 days ago | 0.19545454 ETH | ||||
15354818 | 897 days ago | 0.00094706 ETH | ||||
15354818 | 897 days ago | 0.18337004 ETH | ||||
15350565 | 897 days ago | 0.00094706 ETH | ||||
15349810 | 897 days ago | 0.00094706 ETH | ||||
15349810 | 897 days ago | 0.18337004 ETH | ||||
15342548 | 899 days ago | 0.18534866 ETH | ||||
15342548 | 899 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Minimal Proxy Contract for 0xcd80c916b1194beb48abf007d0b79a7238436d56
Contract Name:
LSSVMPairMissingEnumerableETH
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920// SPDX-License-Identifier: AGPL-3.0pragma solidity ^0.8.0;import {LSSVMPairETH} from "./LSSVMPairETH.sol";import {LSSVMPairMissingEnumerable} from "./LSSVMPairMissingEnumerable.sol";import {ILSSVMPairFactoryLike} from "./ILSSVMPairFactoryLike.sol";contract LSSVMPairMissingEnumerableETH isLSSVMPairMissingEnumerable,LSSVMPairETH{function pairVariant()publicpureoverridereturns (ILSSVMPairFactoryLike.PairVariant){return ILSSVMPairFactoryLike.PairVariant.MISSING_ENUMERABLE_ETH;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: AGPL-3.0pragma solidity ^0.8.0;import {ERC20} from "./imports/ERC20.sol";import {IERC721} from "./imports//IERC721.sol";import {SafeTransferLib} from "./imports/SafeTransferLib.sol";import {LSSVMPair} from "./LSSVMPair.sol";import {ILSSVMPairFactoryLike} from "./ILSSVMPairFactoryLike.sol";import {ICurve} from "./bonding-curves/ICurve.sol";/**@title An NFT/Token pair where the token is ETH@author boredGenius and 0xmons*/abstract contract LSSVMPairETH is LSSVMPair {using SafeTransferLib for address payable;using SafeTransferLib for ERC20;uint256 internal constant IMMUTABLE_PARAMS_LENGTH = 61;/// @inheritdoc LSSVMPairfunction _pullTokenInputAndPayProtocolFee(uint256 inputAmount,bool, /*isRouter*/address, /*routerCaller*/ILSSVMPairFactoryLike _factory,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: AGPL-3.0-onlypragma solidity >=0.8.0;/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation./// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)abstract contract ERC20 {/*///////////////////////////////////////////////////////////////EVENTS//////////////////////////////////////////////////////////////*/event Transfer(address indexed from, address indexed to, uint256 amount);event Approval(address indexed owner,address indexed spender,uint256 amount);/*///////////////////////////////////////////////////////////////METADATA STORAGE//////////////////////////////////////////////////////////////*/string public name;string public symbol;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "./IERC165.sol";/*** @dev Required interface of an ERC721 compliant contract.*/interface IERC721 is IERC165 {/*** @dev Emitted when `tokenId` token is transferred from `from` to `to`.*/event Transfer(address indexed from,address indexed to,uint256 indexed tokenId);/*** @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.*/event Approval(address indexed owner,address indexed approved,uint256 indexed tokenId
123456789101112131415161718192021222324// SPDX-License-Identifier: MITpragma solidity ^0.8.0;/*** @dev Interface of the ERC165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[EIP].** Implementers can declare support of contract interfaces, which can then be* queried by others ({ERC165Checker}).** For an implementation, see {ERC165}.*/interface IERC165 {/*** @dev Returns true if this contract implements the interface defined by* `interfaceId`. See the corresponding* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]* to learn more about how these ids are created.** This function call must use less than 30 000 gas.*/function supportsInterface(bytes4 interfaceId) external view returns (bool);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: AGPL-3.0-onlypragma solidity >=0.8.0;import {ERC20} from "./ERC20.sol";/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values./// @author Modified from Gnosis (https://github.com/gnosis/gp-v2-contracts/blob/main/src/contracts/libraries/GPv2SafeERC20.sol)/// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer.library SafeTransferLib {/*///////////////////////////////////////////////////////////////ETH OPERATIONS//////////////////////////////////////////////////////////////*/function safeTransferETH(address to, uint256 amount) internal {bool callStatus;assembly {// Transfer the ETH and store if it succeeded or not.callStatus := call(gas(), to, amount, 0, 0, 0, 0)}require(callStatus, "ETH_TRANSFER_FAILED");}/*///////////////////////////////////////////////////////////////ERC20 OPERATIONS
1234567891011121314151617181920212223242526// SPDX-License-Identifier: AGPL-3.0pragma solidity ^0.8.0;import {ERC20} from "./imports/ERC20.sol";import {IERC721} from "./imports/IERC721.sol";import {OwnableWithTransferCallback} from "./lib/OwnableWithTransferCallback.sol";import {ReentrancyGuard} from "./lib/ReentrancyGuard.sol";import {ICurve} from "./bonding-curves/ICurve.sol";import {LSSVMRouter} from "./LSSVMRouter.sol";import {ILSSVMPairFactoryLike} from "./ILSSVMPairFactoryLike.sol";import {CurveErrorCodes} from "./bonding-curves/CurveErrorCodes.sol";import {IERC1155} from "./imports/IERC1155.sol";import {ERC1155Holder} from "./imports/ERC1155Holder.sol";/// @title The base contract for an NFT/TOKEN AMM pair/// @author boredGenius and 0xmons/// @notice This implements the core swap logic from NFT to TOKENabstract contract LSSVMPair isOwnableWithTransferCallback,ReentrancyGuard,ERC1155Holder{enum PoolType {TOKEN,NFT,TRADE
1234567891011121314151617181920212223242526// SPDX-License-Identifier: AGPL-3.0pragma solidity ^0.8.4;import {IOwnershipTransferCallback} from "./IOwnershipTransferCallback.sol";import {Address} from "../imports/Address.sol";abstract contract OwnableWithTransferCallback {using Address for address;bytes4 constant TRANSFER_CALLBACK =type(IOwnershipTransferCallback).interfaceId;error Ownable_NotOwner();error Ownable_NewOwnerZeroAddress();address private _owner;event OwnershipTransferred(address indexed newOwner);/// @dev Initializes the contract setting the deployer as the initial owner.function __Ownable_init(address initialOwner) internal {_owner = initialOwner;}/// @dev Returns the address of the current owner.
1234567// SPDX-License-Identifier: AGPL-3.0pragma solidity ^0.8.4;interface IOwnershipTransferCallback {function onOwnershipTransfer(address oldOwner) external;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*/function isContract(address account) internal view returns (bool) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// Forked from OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol),// removed initializer check as we already do that in our modified Ownablepragma solidity ^0.8.0;/*** @dev Contract module that helps prevent reentrant calls to a function.** Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier* available, which can be applied to functions to make sure there are no nested* (reentrant) calls to them.** Note that because there is a single `nonReentrant` guard, functions marked as* `nonReentrant` may not call one another. This can be worked around by making* those functions `private`, and then adding `external` `nonReentrant` entry* points to them.** TIP: If you would like to learn more about reentrancy and alternative ways* to protect against it, check out our blog post* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].*/abstract contract ReentrancyGuard {// Booleans are more expensive than uint256 or any type that takes up a full// word because each write operation emits an extra SLOAD to first read the// slot's contents, replace the bits taken up by the boolean, and then write
12345678910111213141516171819202122232425// SPDX-License-Identifier: AGPL-3.0pragma solidity ^0.8.0;import {CurveErrorCodes} from "./CurveErrorCodes.sol";interface ICurve {/**@notice Validates if a delta value is valid for the curve. The criteria forvalidity can be different for each type of curve, for instance ExponentialCurverequires delta to be greater than 1.@param delta The delta value to be validated@return valid True if delta is valid, false otherwise*/function validateDelta(uint128 delta) external pure returns (bool valid);/**@notice Validates if a new spot price is valid for the curve. Spot price is generally assumed to be the immediate sell price of 1 NFT to thepool, in units of the pool's paired token.@param newSpotPrice The new spot price to be set@return valid True if the new spot price is valid, false otherwise*/function validateSpotPrice(uint128 newSpotPrice)externalviewreturns (bool valid);
12345678910// SPDX-License-Identifier: AGPL-3.0pragma solidity ^0.8.0;contract CurveErrorCodes {enum Error {OK, // No errorINVALID_NUMITEMS, // The numItem value is 0SPOT_PRICE_OVERFLOW // The updated spot price doesn't fit into 128 bits}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: AGPL-3.0pragma solidity ^0.8.0;import {IERC721} from "./imports/IERC721.sol";import {ERC20} from "./imports/ERC20.sol";import {SafeTransferLib} from "./imports/SafeTransferLib.sol";import {LSSVMPair} from "./LSSVMPair.sol";import {ILSSVMPairFactoryLike} from "./ILSSVMPairFactoryLike.sol";import {CurveErrorCodes} from "./bonding-curves/CurveErrorCodes.sol";contract LSSVMRouter {using SafeTransferLib for address payable;using SafeTransferLib for ERC20;struct PairSwapAny {LSSVMPair pair;uint256 numItems;}struct PairSwapSpecific {LSSVMPair pair;uint256[] nftIds;}struct RobustPairSwapAny {PairSwapAny swapInfo;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: AGPL-3.0pragma solidity ^0.8.0;import {LSSVMRouter} from "./LSSVMRouter.sol";interface ILSSVMPairFactoryLike {enum PairVariant {ENUMERABLE_ETH,MISSING_ENUMERABLE_ETH,ENUMERABLE_ERC20,MISSING_ENUMERABLE_ERC20}function protocolFeeMultiplier() external view returns (uint256);function protocolFeeRecipient() external view returns (address payable);function callAllowed(address target) external view returns (bool);function routerStatus(LSSVMRouter router)externalviewreturns (bool allowed, bool wasEverAllowed);function isPair(address potentialPair, PairVariant variant)external
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "./IERC165.sol";/*** @dev Required interface of an ERC1155 compliant contract, as defined in the* https://eips.ethereum.org/EIPS/eip-1155[EIP].** _Available since v3.1._*/interface IERC1155 is IERC165 {/*** @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.*/event TransferSingle(address indexed operator,address indexed from,address indexed to,uint256 id,uint256 value);/*** @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "./ERC1155Receiver.sol";/*** @dev _Available since v3.1._*/contract ERC1155Holder is ERC1155Receiver {function onERC1155Received(address,address,uint256,uint256,bytes memory) public virtual override returns (bytes4) {return this.onERC1155Received.selector;}function onERC1155BatchReceived(address,address,uint256[] memory,uint256[] memory,bytes memory
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "./IERC1155Receiver.sol";import "./ERC165.sol";/*** @dev _Available since v3.1._*/abstract contract ERC1155Receiver is ERC165, IERC1155Receiver {/*** @dev See {IERC165-supportsInterface}.*/function supportsInterface(bytes4 interfaceId)publicviewvirtualoverride(ERC165, IERC165)returns (bool){returninterfaceId == type(IERC1155Receiver).interfaceId ||super.supportsInterface(interfaceId);}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "./IERC165.sol";/*** @dev _Available since v3.1._*/interface IERC1155Receiver is IERC165 {/**@dev Handles the receipt of a single ERC1155 token type. This function iscalled at the end of a `safeTransferFrom` after the balance has been updated.To accept the transfer, this must return`bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`(i.e. 0xf23a6e61, or its own function selector).@param operator The address which initiated the transfer (i.e. msg.sender)@param from The address which previously owned the token@param id The ID of the token being transferred@param value The amount of tokens being transferred@param data Additional data with no specified format@return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed*/function onERC1155Received(address operator,address from,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "./IERC165.sol";/*** @dev Implementation of the {IERC165} interface.** Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check* for the additional interface id that will be supported. For example:** ```solidity* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);* }* ```** Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.*/abstract contract ERC165 is IERC165 {/*** @dev See {IERC165-supportsInterface}.*/function supportsInterface(bytes4 interfaceId)public
1234567891011121314151617181920212223242526// SPDX-License-Identifier: AGPL-3.0pragma solidity ^0.8.0;import {IERC721} from "./imports/IERC721.sol";import {EnumerableSet} from "./imports/EnumerableSet.sol";import {LSSVMPair} from "./LSSVMPair.sol";import {LSSVMRouter} from "./LSSVMRouter.sol";import {ILSSVMPairFactoryLike} from "./ILSSVMPairFactoryLike.sol";/**@title An NFT/Token pair for an NFT that does not implement ERC721Enumerable@author boredGenius and 0xmons*/abstract contract LSSVMPairMissingEnumerable is LSSVMPair {using EnumerableSet for EnumerableSet.UintSet;// Used for internal ID trackingEnumerableSet.UintSet private idSet;/// @inheritdoc LSSVMPairfunction _sendAnyNFTsToRecipient(IERC721 _nft,address nftRecipient,uint256 numNFTs) internal override {// Send NFTs to recipient
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;/*** @dev Library for managing* https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive* types.** Sets have the following properties:** - Elements are added, removed, and checked for existence in constant time* (O(1)).* - Elements are enumerated in O(n). No guarantees are made on the ordering.** ```* contract Example {* // Add the library methods* using EnumerableSet for EnumerableSet.AddressSet;** // Declare a set state variable* EnumerableSet.AddressSet private mySet;* }* ```** As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)
123456789101112131415161718{"metadata": {"useLiteralContent": true},"optimizer": {"enabled": true,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","abi"]}}}
[{"inputs":[{"internalType":"enum CurveErrorCodes.Error","name":"error","type":"uint8"}],"name":"BondingCurveError","type":"error"},{"inputs":[],"name":"Ownable_NewOwnerZeroAddress","type":"error"},{"inputs":[],"name":"Ownable_NotOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"a","type":"address"}],"name":"AssetRecipientChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint128","name":"newDelta","type":"uint128"}],"name":"DeltaUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint96","name":"newFee","type":"uint96"}],"name":"FeeUpdate","type":"event"},{"anonymous":false,"inputs":[],"name":"NFTWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint128","name":"newSpotPrice","type":"uint128"}],"name":"SpotPriceUpdate","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapNFTInPair","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapNFTOutPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenWithdrawal","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"assetRecipient","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bondingCurve","outputs":[{"internalType":"contract ICurve","name":"_bondingCurve","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address payable","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"call","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newRecipient","type":"address"}],"name":"changeAssetRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"newDelta","type":"uint128"}],"name":"changeDelta","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint96","name":"newFee","type":"uint96"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"newSpotPrice","type":"uint128"}],"name":"changeSpotPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delta","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract ILSSVMPairFactoryLike","name":"_factory","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllHeldIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAssetRecipient","outputs":[{"internalType":"address payable","name":"_assetRecipient","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numNFTs","type":"uint256"}],"name":"getBuyNFTQuote","outputs":[{"internalType":"enum CurveErrorCodes.Error","name":"error","type":"uint8"},{"internalType":"uint256","name":"newSpotPrice","type":"uint256"},{"internalType":"uint256","name":"newDelta","type":"uint256"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"protocolFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numNFTs","type":"uint256"}],"name":"getSellNFTQuote","outputs":[{"internalType":"enum CurveErrorCodes.Error","name":"error","type":"uint8"},{"internalType":"uint256","name":"newSpotPrice","type":"uint256"},{"internalType":"uint256","name":"newDelta","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"protocolFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address payable","name":"_assetRecipient","type":"address"},{"internalType":"uint128","name":"_delta","type":"uint128"},{"internalType":"uint96","name":"_fee","type":"uint96"},{"internalType":"uint128","name":"_spotPrice","type":"uint128"}],"name":"initialize","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"calls","type":"bytes[]"},{"internalType":"bool","name":"revertOnFail","type":"bool"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nft","outputs":[{"internalType":"contract IERC721","name":"_nft","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairVariant","outputs":[{"internalType":"enum ILSSVMPairFactoryLike.PairVariant","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"poolType","outputs":[{"internalType":"enum LSSVMPair.PoolType","name":"_poolType","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"spotPrice","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"nftIds","type":"uint256[]"},{"internalType":"uint256","name":"minExpectedTokenOutput","type":"uint256"},{"internalType":"address payable","name":"tokenRecipient","type":"address"},{"internalType":"bool","name":"isRouter","type":"bool"},{"internalType":"address","name":"routerCaller","type":"address"}],"name":"swapNFTsForToken","outputs":[{"internalType":"uint256","name":"outputAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numNFTs","type":"uint256"},{"internalType":"uint256","name":"maxExpectedTokenInput","type":"uint256"},{"internalType":"address","name":"nftRecipient","type":"address"},{"internalType":"bool","name":"isRouter","type":"bool"},{"internalType":"address","name":"routerCaller","type":"address"}],"name":"swapTokenForAnyNFTs","outputs":[{"internalType":"uint256","name":"inputAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"nftIds","type":"uint256[]"},{"internalType":"uint256","name":"maxExpectedTokenInput","type":"uint256"},{"internalType":"address","name":"nftRecipient","type":"address"},{"internalType":"bool","name":"isRouter","type":"bool"},{"internalType":"address","name":"routerCaller","type":"address"}],"name":"swapTokenForSpecificNFTs","outputs":[{"internalType":"uint256","name":"inputAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAllETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC1155","name":"a","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"withdrawERC1155","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"a","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC721","name":"a","type":"address"},{"internalType":"uint256[]","name":"nftIds","type":"uint256[]"}],"name":"withdrawERC721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.