Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Initiator
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
import {IWyvernExchange} from "./IWyvernExchange.sol";
import {IInitiator, IHustlerActions} from "./IInitiator.sol";
import {ISwapRouter} from "./ISwapRouter.sol";
import {IQuoter} from "./IQuoter.sol";
interface ERC721 {
function safeTransferFrom(
address from,
address to,
uint256 tokenId
) external;
}
interface ERC20 {
function approve(address spender, uint256 amount) external returns (bool);
function balanceOf(address account) external returns (uint256);
function transfer(address recipient, uint256 amount)
external
returns (bool);
}
contract Initiator {
ISwapRouter private constant uniswapRouter =
ISwapRouter(0xE592427A0AEce92De3Edee1F18E0157C05861564);
IQuoter private constant quoter =
IQuoter(0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6);
IInitiator private constant initiator =
IInitiator(0x7aa8e897d712CFB9C7cb6B37634A1C4d21181c8B);
IWyvernExchange private constant wyvern =
IWyvernExchange(0x7Be8076f4EA4A4AD08075C2508e481d6C946D12b);
ERC721 private constant DOPE =
ERC721(0x8707276DF042E89669d69A177d3DA7dC78bd8723);
address private immutable WETH9 =
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
ERC20 private immutable PAPER =
ERC20(0x7aE1D57b58fA6411F32948314BadD83583eE0e8C);
uint24 private immutable fee = 10000;
struct Order {
address maker;
uint8 vs;
bytes32[2] rss;
uint256 fee;
uint256 price;
uint256 expiration;
uint256 listing;
uint256 salt;
bytes calldataSell;
bytes calldataBuy;
}
constructor() {
PAPER.approve(address(initiator), type(uint256).max);
}
function buy(uint256 openseaEth, Order calldata order) internal {
wyvern.atomicMatch_{value: openseaEth}(
[
address(wyvern),
address(this),
order.maker,
0x0000000000000000000000000000000000000000,
address(DOPE),
0x0000000000000000000000000000000000000000,
0x0000000000000000000000000000000000000000,
address(wyvern),
order.maker,
0x0000000000000000000000000000000000000000,
0x5b3256965e7C3cF26E11FCAf296DfC8807C01073,
address(DOPE),
0x0000000000000000000000000000000000000000,
0x0000000000000000000000000000000000000000
],
[
order.fee, // makerRelayerFee
0, // takerRelayerFee
0, // makerProtocolFee
0, // takerProtocolFee
order.price, // basePrice
0, // Auction extra parameter
0, // listingTime
0, // expirationTime
0, // salt
order.fee,
0,
0,
0,
order.price,
0,
order.listing,
order.expiration,
order.salt
],
[1, 0, 0, 0, 1, 1, 0, 0],
order.calldataBuy,
order.calldataSell,
hex"00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
hex"000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000",
"",
"",
[0, order.vs],
[bytes32(0x0), 0x0, order.rss[0], order.rss[1], 0x0]
);
}
function initiate(
Order calldata order,
uint256 id,
IHustlerActions.SetMetadata calldata meta,
address to,
uint256 openseaEth,
uint256 paperEth,
uint256 paperOut,
uint256 deadline
) external payable {
buy(openseaEth, order);
swap(paperEth, paperOut, deadline);
initiator.mintFromDopeTo(id, to, meta, "", 1e6 + 1);
DOPE.safeTransferFrom(address(this), msg.sender, id);
PAPER.transfer(msg.sender, PAPER.balanceOf(address(this)));
(bool success, ) = msg.sender.call{value: address(this).balance}("");
require(success, "refund failed");
}
function swap(
uint256 eth,
uint256 out,
uint256 deadline
) internal {
ISwapRouter.ExactInputSingleParams memory params = ISwapRouter
.ExactInputSingleParams(
WETH9,
address(PAPER),
fee,
address(this),
deadline,
eth,
out,
0
);
uniswapRouter.exactInputSingle{value: eth}(params);
uniswapRouter.refundETH();
}
function estimate(uint256 paper) external payable returns (uint256) {
return
quoter.quoteExactOutputSingle(WETH9, address(PAPER), fee, paper, 0);
}
receive() external payable {}
}
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
interface IHustlerActions {
struct SetMetadata {
bytes4 color;
bytes4 background;
bytes2 options;
uint8[4] viewbox;
uint8[4] body;
uint8[10] order;
bytes2 mask;
string name;
}
}
interface IInitiator {
function mintFromDopeTo(
uint256 id,
address to,
IHustlerActions.SetMetadata calldata meta,
bytes memory data,
uint32 gasLimit
) external;
function cost() external returns (uint256);
}
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity >=0.7.5;
pragma abicoder v2;
/// @title Quoter Interface
/// @notice Supports quoting the calculated amounts from exact input or exact output swaps
/// @dev These functions are not marked view because they rely on calling non-view functions and reverting
/// to compute the result. They are also not gas efficient and should not be called on-chain.
interface IQuoter {
/// @notice Returns the amount out received for a given exact input swap without executing the swap
/// @param path The path of the swap, i.e. each token pair and the pool fee
/// @param amountIn The amount of the first token to swap
/// @return amountOut The amount of the last token that would be received
function quoteExactInput(bytes memory path, uint256 amountIn) external returns (uint256 amountOut);
/// @notice Returns the amount out received for a given exact input but for a swap of a single pool
/// @param tokenIn The token being swapped in
/// @param tokenOut The token being swapped out
/// @param fee The fee of the token pool to consider for the pair
/// @param amountIn The desired input amount
/// @param sqrtPriceLimitX96 The price limit of the pool that cannot be exceeded by the swap
/// @return amountOut The amount of `tokenOut` that would be received
function quoteExactInputSingle(
address tokenIn,
address tokenOut,
uint24 fee,
uint256 amountIn,
uint160 sqrtPriceLimitX96
) external returns (uint256 amountOut);
/// @notice Returns the amount in required for a given exact output swap without executing the swap
/// @param path The path of the swap, i.e. each token pair and the pool fee. Path must be provided in reverse order
/// @param amountOut The amount of the last token to receive
/// @return amountIn The amount of first token required to be paid
function quoteExactOutput(bytes memory path, uint256 amountOut) external returns (uint256 amountIn);
/// @notice Returns the amount in required to receive the given exact output amount but for a swap of a single pool
/// @param tokenIn The token being swapped in
/// @param tokenOut The token being swapped out
/// @param fee The fee of the token pool to consider for the pair
/// @param amountOut The desired output amount
/// @param sqrtPriceLimitX96 The price limit of the pool that cannot be exceeded by the swap
/// @return amountIn The amount required as the input for the swap in order to receive `amountOut`
function quoteExactOutputSingle(
address tokenIn,
address tokenOut,
uint24 fee,
uint256 amountOut,
uint160 sqrtPriceLimitX96
) external returns (uint256 amountIn);
}
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity >=0.7.5;
pragma abicoder v2;
import "./IUniswapV3SwapCallback.sol";
/// @title Router token swapping functionality
/// @notice Functions for swapping tokens via Uniswap V3
interface ISwapRouter is IUniswapV3SwapCallback {
struct ExactInputSingleParams {
address tokenIn;
address tokenOut;
uint24 fee;
address recipient;
uint256 deadline;
uint256 amountIn;
uint256 amountOutMinimum;
uint160 sqrtPriceLimitX96;
}
/// @notice Swaps `amountIn` of one token for as much as possible of another token
/// @param params The parameters necessary for the swap, encoded as `ExactInputSingleParams` in calldata
/// @return amountOut The amount of the received token
function exactInputSingle(ExactInputSingleParams calldata params)
external
payable
returns (uint256 amountOut);
struct ExactInputParams {
bytes path;
address recipient;
uint256 deadline;
uint256 amountIn;
uint256 amountOutMinimum;
}
/// @notice Swaps `amountIn` of one token for as much as possible of another along the specified path
/// @param params The parameters necessary for the multi-hop swap, encoded as `ExactInputParams` in calldata
/// @return amountOut The amount of the received token
function exactInput(ExactInputParams calldata params)
external
payable
returns (uint256 amountOut);
struct ExactOutputSingleParams {
address tokenIn;
address tokenOut;
uint24 fee;
address recipient;
uint256 deadline;
uint256 amountOut;
uint256 amountInMaximum;
uint160 sqrtPriceLimitX96;
}
/// @notice Swaps as little as possible of one token for `amountOut` of another token
/// @param params The parameters necessary for the swap, encoded as `ExactOutputSingleParams` in calldata
/// @return amountIn The amount of the input token
function exactOutputSingle(ExactOutputSingleParams calldata params)
external
payable
returns (uint256 amountIn);
struct ExactOutputParams {
bytes path;
address recipient;
uint256 deadline;
uint256 amountOut;
uint256 amountInMaximum;
}
/// @notice Swaps as little as possible of one token for `amountOut` of another along the specified path (reversed)
/// @param params The parameters necessary for the multi-hop swap, encoded as `ExactOutputParams` in calldata
/// @return amountIn The amount of the input token
function exactOutput(ExactOutputParams calldata params)
external
payable
returns (uint256 amountIn);
/// @notice Refunds any ETH balance held by this contract to the `msg.sender`
/// @dev Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps
/// that use ether for the input amount
function refundETH() external payable;
}
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity >=0.5.0;
/// @title Callback for IUniswapV3PoolActions#swap
/// @notice Any contract that calls IUniswapV3PoolActions#swap must implement this interface
interface IUniswapV3SwapCallback {
/// @notice Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap.
/// @dev In the implementation you must pay the pool tokens owed for the swap.
/// The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory.
/// amount0Delta and amount1Delta can both be 0 if no tokens were swapped.
/// @param amount0Delta The amount of token0 that was sent (negative) or must be received (positive) by the pool by
/// the end of the swap. If positive, the callback must send that amount of token0 to the pool.
/// @param amount1Delta The amount of token1 that was sent (negative) or must be received (positive) by the pool by
/// the end of the swap. If positive, the callback must send that amount of token1 to the pool.
/// @param data Any data passed through by the caller via the IUniswapV3PoolActions#swap call
function uniswapV3SwapCallback(
int256 amount0Delta,
int256 amount1Delta,
bytes calldata data
) external;
}
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
interface IWyvernExchange {
function atomicMatch_(
address[14] memory addrs,
uint256[18] memory uints,
uint8[8] memory feeMethodsSidesKindsHowToCalls,
bytes memory calldataBuy,
bytes memory calldataSell,
bytes memory replacementPatternBuy,
bytes memory replacementPatternSell,
bytes memory staticExtradataBuy,
bytes memory staticExtradataSell,
uint8[2] memory vs,
bytes32[5] memory rssMetadata
) external payable;
}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"paper","type":"uint256"}],"name":"estimate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"maker","type":"address"},{"internalType":"uint8","name":"vs","type":"uint8"},{"internalType":"bytes32[2]","name":"rss","type":"bytes32[2]"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"uint256","name":"listing","type":"uint256"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"bytes","name":"calldataSell","type":"bytes"},{"internalType":"bytes","name":"calldataBuy","type":"bytes"}],"internalType":"struct Initiator.Order","name":"order","type":"tuple"},{"internalType":"uint256","name":"id","type":"uint256"},{"components":[{"internalType":"bytes4","name":"color","type":"bytes4"},{"internalType":"bytes4","name":"background","type":"bytes4"},{"internalType":"bytes2","name":"options","type":"bytes2"},{"internalType":"uint8[4]","name":"viewbox","type":"uint8[4]"},{"internalType":"uint8[4]","name":"body","type":"uint8[4]"},{"internalType":"uint8[10]","name":"order","type":"uint8[10]"},{"internalType":"bytes2","name":"mask","type":"bytes2"},{"internalType":"string","name":"name","type":"string"}],"internalType":"struct IHustlerActions.SetMetadata","name":"meta","type":"tuple"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"openseaEth","type":"uint256"},{"internalType":"uint256","name":"paperEth","type":"uint256"},{"internalType":"uint256","name":"paperOut","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"initiate","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60e060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2608052737ae1d57b58fa6411f32948314badd83583ee0e8c60a05261271060c05234801561004657600080fd5b5060a05160405163095ea7b360e01b8152737aa8e897d712cfb9c7cb6b37634a1c4d21181c8b600482015260001960248201526001600160a01b039091169063095ea7b3906044016020604051808303816000875af11580156100ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d191906100d7565b50610100565b6000602082840312156100e957600080fd5b815180151581146100f957600080fd5b9392505050565b60805160a05160c051610f0a61014b6000396000818161037001526107b701526000818161017e01528181610345015261078901526000818161031d01526107640152610f0a6000f3fe60806040526004361061002d5760003560e01c80633d9230bd146100395780639c7929381461004e57600080fd5b3661003457005b600080fd5b61004c610047366004610959565b610073565b005b61006161005c366004610a04565b610306565b60405190815260200160405180910390f35b61007d848961040e565b61008883838361074f565b6040516321b0236f60e11b8152737aa8e897d712cfb9c7cb6b37634a1c4d21181c8b9063436046de906100c8908a9089908b90620f424190600401610b36565b600060405180830381600087803b1580156100e257600080fd5b505af11580156100f6573d6000803e3d6000fd5b5050604051632142170760e11b8152306004820152336024820152604481018a9052738707276df042e89669d69a177d3da7dc78bd872392506342842e0e9150606401600060405180830381600087803b15801561015357600080fd5b505af1158015610167573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063a9059cbb9150339083906370a08231906024016020604051808303816000875af11580156101db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ff9190610c3e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561024a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061026e9190610c57565b50604051600090339047908381818185875af1925050503d80600081146102b1576040519150601f19603f3d011682016040523d82523d6000602084013e6102b6565b606091505b50509050806102fb5760405162461bcd60e51b815260206004820152600d60248201526c1c99599d5b990819985a5b1959609a1b604482015260640160405180910390fd5b505050505050505050565b6040516330d07f2160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016602482015262ffffff7f0000000000000000000000000000000000000000000000000000000000000000166044820152606481018290526000608482018190529073b27308f9f90d607463bb33ea1bebb41c27ce5ab6906330d07f219060a4016020604051808303816000875af11580156103e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104089190610c3e565b92915050565b604080516101c081018252737be8076f4ea4a4ad08075c2508e481d6c946d12b80825230602080840191909152909263ab834bab928692909182019061045690870187610c80565b6001600160a01b0316815260006020808301829052738707276df042e89669d69a177d3da7dc78bd87236040840152606083018290526080830191909152737be8076f4ea4a4ad08075c2508e481d6c946d12b60a083015260c0909101906104c090870187610c80565b6001600160a01b03166001600160a01b0316815260200160006001600160a01b03166001600160a01b03168152602001735b3256965e7c3cf26e11fcaf296dfc8807c010736001600160a01b03166001600160a01b03168152602001738707276df042e89669d69a177d3da7dc78bd87236001600160a01b03166001600160a01b0316815260200160006001600160a01b03166001600160a01b0316815260200160006001600160a01b03166001600160a01b0316815250604051806102400160405280866080013581526020016000815260200160008152602001600081526020018660a00135815260200160008152602001600081526020016000815260200160008152602001866080013581526020016000815260200160008152602001600081526020018660a001358152602001600081526020018660e0013581526020018660c001358152602001866101000135815250604051806101000160405280600160ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600160ff168152602001600160ff168152602001600060ff168152602001600060ff16815250868061014001906106819190610c9b565b61068f6101208a018a610c9b565b6040518060400160405280600060ff1681526020018c60200160208101906106b79190610ce2565b60ff1690526040805160a081018252600080825260208201528d82018035928201929092529060608201906001602002013581526020016000801b8152506040518b63ffffffff1660e01b815260040161071999989796959493929190610d8f565b6000604051808303818588803b15801561073257600080fd5b505af1158015610746573d6000803e3d6000fd5b50505050505050565b60408051610100810182526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811682527f000000000000000000000000000000000000000000000000000000000000000081166020830190815262ffffff7f0000000000000000000000000000000000000000000000000000000000000000811684860190815230606086019081526080860188815260a087018b815260c088018b8152600060e08a01908152995163414bf38960e01b815289518916600482015296518816602488015293519094166044860152905185166064850152516084840152905160a48301525160c482015292511660e48301529073e592427a0aece92de3edee1f18e0157c058615649063414bf3899086906101040160206040518083038185885af1158015610891573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108b69190610c3e565b5073e592427a0aece92de3edee1f18e0157c058615646001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090657600080fd5b505af115801561091a573d6000803e3d6000fd5b5050505050505050565b60006102e0828403121561093757600080fd5b50919050565b80356001600160a01b038116811461095457600080fd5b919050565b600080600080600080600080610100898b03121561097657600080fd5b883567ffffffffffffffff8082111561098e57600080fd5b908a0190610160828d0312156109a357600080fd5b90985060208a0135975060408a013590808211156109c057600080fd5b506109cd8b828c01610924565b9650506109dc60608a0161093d565b979a969950949760808101359660a0820135965060c0820135955060e0909101359350915050565b600060208284031215610a1657600080fd5b5035919050565b80356001600160e01b03198116811461095457600080fd5b80356001600160f01b03198116811461095457600080fd5b803560ff8116811461095457600080fd5b8060005b6004811015610a8c5760ff610a7683610a4d565b1684526020938401939190910190600101610a62565b50505050565b8060005b600a811015610a8c5760ff610aaa83610a4d565b1684526020938401939190910190600101610a96565b6000808335601e19843603018112610ad757600080fd5b830160208101925035905067ffffffffffffffff811115610af757600080fd5b803603831315610b0657600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8481526001600160a01b038416602082015260a0604082015260006001600160e01b031980610b6486610a1d565b1660a084015280610b7760208701610a1d565b1660c0840152506001600160f01b0319610b9360408601610a35565b1660e0830152610baa610100830160608601610a5e565b610bbb610180830160e08601610a5e565b610bcd61020083016101608601610a92565b610bda6102a08501610a35565b6001600160f01b031916610340830152610bf86102c0850185610ac0565b6102e0610360850152610c1061038085018284610b0d565b84810360608601526000815263ffffffff861660808601526020019250610c35915050565b95945050505050565b600060208284031215610c5057600080fd5b5051919050565b600060208284031215610c6957600080fd5b81518015158114610c7957600080fd5b9392505050565b600060208284031215610c9257600080fd5b610c798261093d565b6000808335601e19843603018112610cb257600080fd5b83018035915067ffffffffffffffff821115610ccd57600080fd5b602001915036819003821315610b0657600080fd5b600060208284031215610cf457600080fd5b610c7982610a4d565b8060005b6012811015610a8c578151845260209384019390910190600101610d01565b8060005b6008811015610a8c57815160ff16845260209384019390910190600101610d24565b8060005b6002811015610a8c57815160ff16845260209384019390910190600101610d4a565b8060005b6005811015610a8c578151845260209384019390910190600101610d70565b60006106a0828c835b600e811015610dc05781516001600160a01b0316835260209283019290910190600101610d98565b505050610dd16101c084018c610cfd565b610ddf61040084018b610d20565b80610500840152610df3818401898b610b0d565b9050828103610520840152610e09818789610b0d565b838103610540850152606481526001600160e01b0360208201526001600160e01b031960408201526000606082018190526080820152905060a08101838103610560850152606481526000602082018190526001600160e01b0360408301526001600160e01b031960608301526080820152905060a08101838103610580850152600081529050602081018381036105a085015260008152905060208101915050610eb86105c0830185610d46565b610ec6610600830184610d6c565b9a995050505050505050505056fea26469706673582212203fdd406351d1bb56e69553c64ad62d33ec99131006e1f189f749036eb62b2c1d64736f6c634300080b0033
Deployed Bytecode
0x60806040526004361061002d5760003560e01c80633d9230bd146100395780639c7929381461004e57600080fd5b3661003457005b600080fd5b61004c610047366004610959565b610073565b005b61006161005c366004610a04565b610306565b60405190815260200160405180910390f35b61007d848961040e565b61008883838361074f565b6040516321b0236f60e11b8152737aa8e897d712cfb9c7cb6b37634a1c4d21181c8b9063436046de906100c8908a9089908b90620f424190600401610b36565b600060405180830381600087803b1580156100e257600080fd5b505af11580156100f6573d6000803e3d6000fd5b5050604051632142170760e11b8152306004820152336024820152604481018a9052738707276df042e89669d69a177d3da7dc78bd872392506342842e0e9150606401600060405180830381600087803b15801561015357600080fd5b505af1158015610167573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201527f0000000000000000000000007ae1d57b58fa6411f32948314badd83583ee0e8c6001600160a01b0316925063a9059cbb9150339083906370a08231906024016020604051808303816000875af11580156101db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ff9190610c3e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561024a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061026e9190610c57565b50604051600090339047908381818185875af1925050503d80600081146102b1576040519150601f19603f3d011682016040523d82523d6000602084013e6102b6565b606091505b50509050806102fb5760405162461bcd60e51b815260206004820152600d60248201526c1c99599d5b990819985a5b1959609a1b604482015260640160405180910390fd5b505050505050505050565b6040516330d07f2160e01b81526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2811660048301527f0000000000000000000000007ae1d57b58fa6411f32948314badd83583ee0e8c16602482015262ffffff7f0000000000000000000000000000000000000000000000000000000000002710166044820152606481018290526000608482018190529073b27308f9f90d607463bb33ea1bebb41c27ce5ab6906330d07f219060a4016020604051808303816000875af11580156103e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104089190610c3e565b92915050565b604080516101c081018252737be8076f4ea4a4ad08075c2508e481d6c946d12b80825230602080840191909152909263ab834bab928692909182019061045690870187610c80565b6001600160a01b0316815260006020808301829052738707276df042e89669d69a177d3da7dc78bd87236040840152606083018290526080830191909152737be8076f4ea4a4ad08075c2508e481d6c946d12b60a083015260c0909101906104c090870187610c80565b6001600160a01b03166001600160a01b0316815260200160006001600160a01b03166001600160a01b03168152602001735b3256965e7c3cf26e11fcaf296dfc8807c010736001600160a01b03166001600160a01b03168152602001738707276df042e89669d69a177d3da7dc78bd87236001600160a01b03166001600160a01b0316815260200160006001600160a01b03166001600160a01b0316815260200160006001600160a01b03166001600160a01b0316815250604051806102400160405280866080013581526020016000815260200160008152602001600081526020018660a00135815260200160008152602001600081526020016000815260200160008152602001866080013581526020016000815260200160008152602001600081526020018660a001358152602001600081526020018660e0013581526020018660c001358152602001866101000135815250604051806101000160405280600160ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600160ff168152602001600160ff168152602001600060ff168152602001600060ff16815250868061014001906106819190610c9b565b61068f6101208a018a610c9b565b6040518060400160405280600060ff1681526020018c60200160208101906106b79190610ce2565b60ff1690526040805160a081018252600080825260208201528d82018035928201929092529060608201906001602002013581526020016000801b8152506040518b63ffffffff1660e01b815260040161071999989796959493929190610d8f565b6000604051808303818588803b15801561073257600080fd5b505af1158015610746573d6000803e3d6000fd5b50505050505050565b60408051610100810182526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2811682527f0000000000000000000000007ae1d57b58fa6411f32948314badd83583ee0e8c81166020830190815262ffffff7f0000000000000000000000000000000000000000000000000000000000002710811684860190815230606086019081526080860188815260a087018b815260c088018b8152600060e08a01908152995163414bf38960e01b815289518916600482015296518816602488015293519094166044860152905185166064850152516084840152905160a48301525160c482015292511660e48301529073e592427a0aece92de3edee1f18e0157c058615649063414bf3899086906101040160206040518083038185885af1158015610891573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108b69190610c3e565b5073e592427a0aece92de3edee1f18e0157c058615646001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090657600080fd5b505af115801561091a573d6000803e3d6000fd5b5050505050505050565b60006102e0828403121561093757600080fd5b50919050565b80356001600160a01b038116811461095457600080fd5b919050565b600080600080600080600080610100898b03121561097657600080fd5b883567ffffffffffffffff8082111561098e57600080fd5b908a0190610160828d0312156109a357600080fd5b90985060208a0135975060408a013590808211156109c057600080fd5b506109cd8b828c01610924565b9650506109dc60608a0161093d565b979a969950949760808101359660a0820135965060c0820135955060e0909101359350915050565b600060208284031215610a1657600080fd5b5035919050565b80356001600160e01b03198116811461095457600080fd5b80356001600160f01b03198116811461095457600080fd5b803560ff8116811461095457600080fd5b8060005b6004811015610a8c5760ff610a7683610a4d565b1684526020938401939190910190600101610a62565b50505050565b8060005b600a811015610a8c5760ff610aaa83610a4d565b1684526020938401939190910190600101610a96565b6000808335601e19843603018112610ad757600080fd5b830160208101925035905067ffffffffffffffff811115610af757600080fd5b803603831315610b0657600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8481526001600160a01b038416602082015260a0604082015260006001600160e01b031980610b6486610a1d565b1660a084015280610b7760208701610a1d565b1660c0840152506001600160f01b0319610b9360408601610a35565b1660e0830152610baa610100830160608601610a5e565b610bbb610180830160e08601610a5e565b610bcd61020083016101608601610a92565b610bda6102a08501610a35565b6001600160f01b031916610340830152610bf86102c0850185610ac0565b6102e0610360850152610c1061038085018284610b0d565b84810360608601526000815263ffffffff861660808601526020019250610c35915050565b95945050505050565b600060208284031215610c5057600080fd5b5051919050565b600060208284031215610c6957600080fd5b81518015158114610c7957600080fd5b9392505050565b600060208284031215610c9257600080fd5b610c798261093d565b6000808335601e19843603018112610cb257600080fd5b83018035915067ffffffffffffffff821115610ccd57600080fd5b602001915036819003821315610b0657600080fd5b600060208284031215610cf457600080fd5b610c7982610a4d565b8060005b6012811015610a8c578151845260209384019390910190600101610d01565b8060005b6008811015610a8c57815160ff16845260209384019390910190600101610d24565b8060005b6002811015610a8c57815160ff16845260209384019390910190600101610d4a565b8060005b6005811015610a8c578151845260209384019390910190600101610d70565b60006106a0828c835b600e811015610dc05781516001600160a01b0316835260209283019290910190600101610d98565b505050610dd16101c084018c610cfd565b610ddf61040084018b610d20565b80610500840152610df3818401898b610b0d565b9050828103610520840152610e09818789610b0d565b838103610540850152606481526001600160e01b0360208201526001600160e01b031960408201526000606082018190526080820152905060a08101838103610560850152606481526000602082018190526001600160e01b0360408301526001600160e01b031960608301526080820152905060a08101838103610580850152600081529050602081018381036105a085015260008152905060208101915050610eb86105c0830185610d46565b610ec6610600830184610d6c565b9a995050505050505050505056fea26469706673582212203fdd406351d1bb56e69553c64ad62d33ec99131006e1f189f749036eb62b2c1d64736f6c634300080b0033
Deployed Bytecode Sourcemap
671:4605:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3876:664;;;;;;:::i;:::-;;:::i;:::-;;5068:171;;;;;;:::i;:::-;;:::i;:::-;;;1757:25:6;;;1745:2;1730:18;5068:171:5;;;;;;;3876:664;4154:22;4158:10;4170:5;4154:3;:22::i;:::-;4186:34;4191:8;4201;4211;4186:4;:34::i;:::-;4230:51;;-1:-1:-1;;;4230:51:5;;969:42;;4230:24;;:51;;4255:2;;4259;;4263:4;;4273:7;;4230:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4291:52:5;;-1:-1:-1;;;4291:52:5;;4321:4;4291:52;;;5989:34:6;4328:10:5;6039:18:6;;;6032:43;6091:18;;;6084:34;;;1180:42:5;;-1:-1:-1;4291:21:5;;-1:-1:-1;5924:18:6;;4291:52:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4380:30:5;;-1:-1:-1;;;4380:30:5;;4404:4;4380:30;;;6275:51:6;4353:5:5;-1:-1:-1;;;;;4353:14:5;;-1:-1:-1;4353:14:5;;-1:-1:-1;4368:10:5;;4353:14;;4380:15;;6248:18:6;;4380:30:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4353:58;;-1:-1:-1;;;;;;4353:58:5;;;;;;;-1:-1:-1;;;;;6718:32:6;;;4353:58:5;;;6700:51:6;6767:18;;;6760:34;6673:18;;4353:58:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4441:49:5;;4423:12;;4441:10;;4464:21;;4423:12;4441:49;4423:12;4441:49;4464:21;4441:10;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4422:68;;;4508:7;4500:33;;;;-1:-1:-1;;;4500:33:5;;7499:2:6;4500:33:5;;;7481:21:6;7538:2;7518:18;;;7511:30;-1:-1:-1;;;7557:18:6;;;7550:43;7610:18;;4500:33:5;;;;;;;;4144:396;3876:664;;;;;;;;:::o;5068:171::-;5165:67;;-1:-1:-1;;;5165:67:5;;-1:-1:-1;;;;;5195:5:5;7960:15:6;;5165:67:5;;;7942:34:6;5210:5:5;8012:15:6;7992:18;;;7985:43;8076:8;5218:3:5;8064:21:6;8044:18;;;8037:49;8102:18;;;8095:34;;;5127:7:5;8145:19:6;;;8138:44;;;5127:7:5;860:42;;5165:29;;7876:19:6;;5165:67:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5146:86;5068:171;-1:-1:-1;;5068:171:5:o;1811:2059::-;1885:1978;;;;;;;;1084:42;1885:1978;;;1996:4;1885:1978;;;;;;;;1084:42;;1885:19;;1912:10;;1885:1978;;;;;2019:11;;;;:5;:11;:::i;:::-;-1:-1:-1;;;;;1885:1978:5;;;2048:42;1885:1978;;;;;;;1180:42;1885:1978;;;;;;;;;;;;;;;;;1084:42;1885:1978;;;;;;;;;2292:11;;;;:5;:11;:::i;:::-;-1:-1:-1;;;;;1885:1978:5;-1:-1:-1;;;;;1885:1978:5;;;;;2321:42;-1:-1:-1;;;;;1885:1978:5;-1:-1:-1;;;;;1885:1978:5;;;;;2381:42;-1:-1:-1;;;;;1885:1978:5;-1:-1:-1;;;;;1885:1978:5;;;;;1180:42;-1:-1:-1;;;;;1885:1978:5;-1:-1:-1;;;;;1885:1978:5;;;;;2472:42;-1:-1:-1;;;;;1885:1978:5;-1:-1:-1;;;;;1885:1978:5;;;;;2532:42;-1:-1:-1;;;;;1885:1978:5;-1:-1:-1;;;;;1885:1978:5;;;;;;;;;;;;2620:5;:9;;;1885:1978;;;;2666:1;1885:1978;;;;2704:1;1885:1978;;;;2743:1;1885:1978;;;;2782:5;:11;;;1885:1978;;;;2824:1;1885:1978;;;;2870:1;1885:1978;;;;2904:1;1885:1978;;;;2941:1;1885:1978;;;;2968:5;:9;;;1885:1978;;;;2995:1;1885:1978;;;;3014:1;1885:1978;;;;3033:1;1885:1978;;;;3052:5;:11;;;1885:1978;;;;3081:1;1885:1978;;;;3100:5;:13;;;1885:1978;;;;3131:5;:16;;;1885:1978;;;;3165:5;:10;;;1885:1978;;;;;;;;;;;3204:1;1885:1978;;;;;;3207:1;1885:1978;;;;;;3210:1;1885:1978;;;;;;3213:1;1885:1978;;;;;;3216:1;1885:1978;;;;;;3219:1;1885:1978;;;;;;3222:1;1885:1978;;;;;;3225:1;1885:1978;;;;;3241:5;:17;;;;;;;;:::i;:::-;3272:18;;;;:5;:18;:::i;:::-;1885:1978;;;;;;;;3775:1;1885:1978;;;;;;3778:5;:8;;;;;;;;;;:::i;:::-;1885:1978;;;;;;;;;;;;-1:-1:-1;1885:1978:5;;;;;;;3821:9;;;:12;;1885:1978;;;;;;;;;;;;3845:1;3835:12;;;;1885:1978;;;;3849:3;1885:1978;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1811:2059;;:::o;4546:516::-;4704:255;;;;;;;;-1:-1:-1;;;;;4769:5:5;4704:255;;;;4800:5;4704:255;;;;;;;;;4824:3;4704:255;;;;;;;;4853:4;4704:255;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4704:255:5;;;;;;4970:50;;-1:-1:-1;;;4970:50:5;;13770:13:6;;13766:22;;4970:50:5;;;13748:41:6;13831:24;;13827:33;;13805:20;;;13798:63;13903:24;;13899:39;;;13877:20;;;13870:69;13981:24;;13977:33;;13955:20;;;13948:63;14049:24;14027:20;;;14020:54;14112:24;;14090:20;;;14083:54;14175:24;14153:20;;;14146:54;14242:24;;14238:33;14216:20;;;14209:63;4704:255:5;761:42;;4970:30;;4704:255;;13682:19:6;;4970:50:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;761:42;-1:-1:-1;;;;;5030:23:5;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4643:419;4546:516;;;:::o;14:160:6:-;78:5;123:3;114:6;109:3;105:16;101:26;98:46;;;140:1;137;130:12;98:46;-1:-1:-1;162:6:6;14:160;-1:-1:-1;14:160:6:o;179:173::-;247:20;;-1:-1:-1;;;;;296:31:6;;286:42;;276:70;;342:1;339;332:12;276:70;179:173;;;:::o;357:1064::-;532:6;540;548;556;564;572;580;588;641:3;629:9;620:7;616:23;612:33;609:53;;;658:1;655;648:12;609:53;698:9;685:23;727:18;768:2;760:6;757:14;754:34;;;784:1;781;774:12;754:34;807:22;;;;863:3;845:16;;;841:26;838:46;;;880:1;877;870:12;838:46;903:2;;-1:-1:-1;952:2:6;937:18;;924:32;;-1:-1:-1;1009:2:6;994:18;;981:32;;1025:16;;;1022:36;;;1054:1;1051;1044:12;1022:36;;1077:73;1142:7;1131:8;1120:9;1116:24;1077:73;:::i;:::-;1067:83;;;1169:38;1203:2;1192:9;1188:18;1169:38;:::i;:::-;357:1064;;;;-1:-1:-1;357:1064:6;;1254:3;1239:19;;1226:33;;1306:3;1291:19;;1278:33;;-1:-1:-1;1358:3:6;1343:19;;1330:33;;-1:-1:-1;1410:3:6;1395:19;;;1382:33;;-1:-1:-1;357:1064:6;-1:-1:-1;;357:1064:6:o;1426:180::-;1485:6;1538:2;1526:9;1517:7;1513:23;1509:32;1506:52;;;1554:1;1551;1544:12;1506:52;-1:-1:-1;1577:23:6;;1426:180;-1:-1:-1;1426:180:6:o;1793:173::-;1860:20;;-1:-1:-1;;;;;;1909:32:6;;1899:43;;1889:71;;1956:1;1953;1946:12;1971:168;2038:20;;-1:-1:-1;;;;;;2087:27:6;;2077:38;;2067:66;;2129:1;2126;2119:12;2248:156;2314:20;;2374:4;2363:16;;2353:27;;2343:55;;2394:1;2391;2384:12;2409:355;2509:5;2532:1;2542:216;2556:4;2553:1;2550:11;2542:216;;;2645:4;2619:24;2636:6;2619:24;:::i;:::-;2615:35;2603:48;;2674:4;2698:12;;;;2733:15;;;;;2576:1;2569:9;2542:216;;;2546:3;;2409:355;;:::o;2769:359::-;2873:5;2896:1;2906:216;2920:4;2917:1;2914:11;2906:216;;;3009:4;2983:24;3000:6;2983:24;:::i;:::-;2979:35;2967:48;;3038:4;3062:12;;;;3097:15;;;;;2940:1;2933:9;2906:216;;3133:504;3192:5;3199:6;3259:3;3246:17;3345:2;3341:7;3330:8;3314:14;3310:29;3306:43;3286:18;3282:68;3272:96;;3364:1;3361;3354:12;3272:96;3392:33;;3496:4;3483:18;;;-1:-1:-1;3444:21:6;;-1:-1:-1;3524:18:6;3513:30;;3510:50;;;3556:1;3553;3546:12;3510:50;3606:6;3590:14;3586:27;3576:8;3572:42;3569:62;;;3627:1;3624;3617:12;3569:62;3133:504;;;;;:::o;3784:267::-;3873:6;3868:3;3861:19;3925:6;3918:5;3911:4;3906:3;3902:14;3889:43;-1:-1:-1;3977:1:6;3952:16;;;3970:4;3948:27;;;3941:38;;;;4033:2;4012:15;;;-1:-1:-1;;4008:29:6;3999:39;;;3995:50;;3784:267::o;4160:1584::-;4524:25;;;-1:-1:-1;;;;;4585:32:6;;4580:2;4565:18;;4558:60;4605:3;4649:2;4634:18;;4627:31;-1:-1:-1;;;;;;;4677:20:6;4738:25;4756:6;4738:25;:::i;:::-;4734:34;4728:3;4717:9;4713:19;4706:63;4846:2;4810:34;4840:2;4832:6;4828:15;4810:34;:::i;:::-;4806:43;4800:3;4785:19;;4778:72;-1:-1:-1;;;;;;;4891:34:6;4921:2;4909:15;;4891:34;:::i;:::-;4887:56;4881:3;4870:9;4866:19;4859:85;4953:71;5019:3;5008:9;5004:19;4997:4;4989:6;4985:17;4953:71;:::i;:::-;5033:70;5098:3;5087:9;5083:19;5077:3;5069:6;5065:16;5033:70;:::i;:::-;5112:77;5184:3;5173:9;5169:19;5160:6;5152;5148:19;5112:77;:::i;:::-;5218:38;5248:6;5240;5236:19;5218:38;:::i;:::-;-1:-1:-1;;;;;;2209:27:6;5312:3;5297:19;;2197:40;5362:60;5414:6;5402:19;;5406:6;5362:60;:::i;:::-;5459:6;5453:3;5442:9;5438:19;5431:35;5486:77;5558:3;5547:9;5543:19;5529:12;5513:14;5486:77;:::i;:::-;5601:19;;;5594:4;5579:20;;5572:49;3733:1;3721:14;;4137:10;4126:22;;5733:3;5718:19;;4114:35;3768:4;3759:14;;-1:-1:-1;5687:51:6;;-1:-1:-1;;4056:99:6;5687:51;4160:1584;;;;;;;:::o;6337:184::-;6407:6;6460:2;6448:9;6439:7;6435:23;6431:32;6428:52;;;6476:1;6473;6466:12;6428:52;-1:-1:-1;6499:16:6;;6337:184;-1:-1:-1;6337:184:6:o;6805:277::-;6872:6;6925:2;6913:9;6904:7;6900:23;6896:32;6893:52;;;6941:1;6938;6931:12;6893:52;6973:9;6967:16;7026:5;7019:13;7012:21;7005:5;7002:32;6992:60;;7048:1;7045;7038:12;6992:60;7071:5;6805:277;-1:-1:-1;;;6805:277:6:o;8193:186::-;8252:6;8305:2;8293:9;8284:7;8280:23;8276:32;8273:52;;;8321:1;8318;8311:12;8273:52;8344:29;8363:9;8344:29;:::i;8384:521::-;8461:4;8467:6;8527:11;8514:25;8621:2;8617:7;8606:8;8590:14;8586:29;8582:43;8562:18;8558:68;8548:96;;8640:1;8637;8630:12;8548:96;8667:33;;8719:20;;;-1:-1:-1;8762:18:6;8751:30;;8748:50;;;8794:1;8791;8784:12;8748:50;8827:4;8815:17;;-1:-1:-1;8858:14:6;8854:27;;;8844:38;;8841:58;;;8895:1;8892;8885:12;8910:182;8967:6;9020:2;9008:9;8999:7;8995:23;8991:32;8988:52;;;9036:1;9033;9026:12;8988:52;9059:27;9076:9;9059:27;:::i;9229:326::-;9322:5;9345:1;9355:194;9369:4;9366:1;9363:11;9355:194;;;9428:13;;9416:26;;9465:4;9489:12;;;;9524:15;;;;9389:1;9382:9;9355:194;;9560:335;9651:5;9674:1;9684:205;9698:4;9695:1;9692:11;9684:205;;;9761:13;;9776:4;9757:24;9745:37;;9805:4;9829:12;;;;9864:15;;;;9718:1;9711:9;9684:205;;10478:346;10580:5;10603:1;10613:205;10627:4;10624:1;10621:11;10613:205;;;10690:13;;10705:4;10686:24;10674:37;;10734:4;10758:12;;;;10793:15;;;;10647:1;10640:9;10613:205;;10829:326;10922:5;10945:1;10955:194;10969:4;10966:1;10963:11;10955:194;;;11028:13;;11016:26;;11065:4;11089:12;;;;11124:15;;;;10989:1;10982:9;10955:194;;11160:2320;12102:4;12131;12155:9;12212:6;12102:4;12246:220;12260:4;12257:1;12254:11;12246:220;;;12323:13;;-1:-1:-1;;;;;12319:39:6;12307:52;;12382:4;12406:12;;;;12441:15;;;;12355:1;12273:9;12246:220;;;12250:3;;;12475:53;12523:3;12512:9;12508:19;12500:6;12475:53;:::i;:::-;12537:52;12583:4;12572:9;12568:20;12560:6;12537:52;:::i;:::-;12627:2;12620:4;12609:9;12605:20;12598:32;12653:62;12711:2;12700:9;12696:18;12688:6;12680;12653:62;:::i;:::-;12639:76;;12765:9;12757:6;12753:22;12746:4;12735:9;12731:20;12724:52;12799:50;12842:6;12834;12826;12799:50;:::i;:::-;12887:22;;;12880:4;12865:20;;12858:52;9977:3;9965:16;;-1:-1:-1;;;;;10006:4:6;9997:14;;9990:43;-1:-1:-1;;;;;;10058:2:6;10049:12;;10042:42;-1:-1:-1;10109:2:6;10100:12;;10093:23;;;10141:3;10132:13;;10125:24;12785:64;-1:-1:-1;10174:3:6;10165:13;;13008:22;;;13001:4;12986:20;;12979:52;10266:3;10254:16;;10302:1;10295:4;10286:14;;10279:25;;;-1:-1:-1;;;;;10329:2:6;10320:12;;10313:41;-1:-1:-1;;;;;;10379:2:6;10370:12;;10363:42;10430:3;10421:13;;10414:24;12919:51;-1:-1:-1;10463:3:6;10454:13;;13129:22;;;13122:4;13107:20;;13100:52;3733:1;3721:14;;13040:51;-1:-1:-1;3768:4:6;3759:14;;13256:22;;;13249:4;13234:20;;13227:52;3733:1;3721:14;;13161:57;-1:-1:-1;3768:4:6;3759:14;;13288:51;;;13348:63;13405:4;13394:9;13390:20;13382:6;13348:63;:::i;:::-;13420:54;13468:4;13457:9;13453:20;13445:6;13420:54;:::i;:::-;11160:2320;;;;;;;;;;;;:::o
Swarm Source
ipfs://3fdd406351d1bb56e69553c64ad62d33ec99131006e1f189f749036eb62b2c1d
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.