Source Code
Latest 25 from a total of 8,443 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Claim | 13820459 | 403 days ago | IN | 0 FRAX | 0.00000365 | ||||
| Claim | 2835281 | 657 days ago | IN | 0 FRAX | 0.00000141 | ||||
| Claim | 2257305 | 670 days ago | IN | 0 FRAX | 0.00000195 | ||||
| Claim | 2257168 | 670 days ago | IN | 0 FRAX | 0.00000179 | ||||
| Mint | 1945494 | 678 days ago | IN | 0 FRAX | 0.00000369 | ||||
| Claim | 1918998 | 678 days ago | IN | 0 FRAX | 0.00000225 | ||||
| Claim | 1850694 | 680 days ago | IN | 0 FRAX | 0.00000441 | ||||
| Claim | 1832256 | 680 days ago | IN | 0 FRAX | 0.00000486 | ||||
| Claim | 1832241 | 680 days ago | IN | 0 FRAX | 0.00000455 | ||||
| Claim | 1813955 | 681 days ago | IN | 0 FRAX | 0.00005269 | ||||
| Claim | 1796632 | 681 days ago | IN | 0 FRAX | 0.00005686 | ||||
| Claim | 1790033 | 681 days ago | IN | 0 FRAX | 0.0000441 | ||||
| Claim | 1779675 | 682 days ago | IN | 0 FRAX | 0.00005726 | ||||
| Claim | 1769756 | 682 days ago | IN | 0 FRAX | 0.00006197 | ||||
| Claim | 1753880 | 682 days ago | IN | 0 FRAX | 0.00019205 | ||||
| Claim | 1750925 | 682 days ago | IN | 0 FRAX | 0.00018292 | ||||
| Claim | 1699658 | 683 days ago | IN | 0 FRAX | 0.0001962 | ||||
| Claim | 1686350 | 684 days ago | IN | 0 FRAX | 0.00021317 | ||||
| Claim | 1679907 | 684 days ago | IN | 0 FRAX | 0.00024609 | ||||
| Claim | 1678711 | 684 days ago | IN | 0 FRAX | 0.00023405 | ||||
| Claim | 1673443 | 684 days ago | IN | 0 FRAX | 0.00020728 | ||||
| Claim | 1665113 | 684 days ago | IN | 0 FRAX | 0.00018624 | ||||
| Claim | 1665101 | 684 days ago | IN | 0 FRAX | 0.00018975 | ||||
| Claim | 1663760 | 684 days ago | IN | 0 FRAX | 0.00018393 | ||||
| Claim | 1662633 | 684 days ago | IN | 0 FRAX | 0.00017909 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MintWar
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
Yes with 999 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.4;
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "@openzeppelin/contracts/interfaces/IERC20.sol";
import "../interfaces/IUniswapV2Router02.sol";
import "../libraries/TransferHelper.sol";
contract MintWar is ReentrancyGuard{
address public constant delegationRegistry = 0x4392dC16867D53DBFE227076606455634d4c2795;
uint256 public constant PRECISION = 100000;
address public feeTo;
address public token;
IUniswapV2Router02 public router;
uint256 public minFee;
mapping(address => uint256) public accountTotalMint;
mapping(address => uint256) public accountSuccessMint;
mapping(address => uint256) public accountFailMint;
mapping(address => uint256) public pointsOf;
mapping(address => bool) public isClaimed;
uint256 public totalPoints;
uint256 public totalSuccessValue;
uint256 public totalFailValue;
uint256 public totalMintValue;
uint256 public totalMintTimes;
uint256 public totalSuccessMints;
uint256 public totalFailMints;
uint256 public maxPointsPerMint;
bool public mintEnd;
uint256 public mintStartAt;
uint256 public mintEndAt;
event Mint(address account,bool success,uint256 value,uint256 rate,uint256 points);
event EndWar();
event Claim(address account, uint256 value);
constructor(address _router, address _token,uint256 _mintStartAt, uint256 _mintEndAt) {
router = IUniswapV2Router02(_router);
feeTo = msg.sender;
token = _token;
minFee = 0.0001e18;
maxPointsPerMint = 100e18;
require(_mintStartAt>block.timestamp && _mintEndAt>_mintStartAt, "Mint time error");
mintStartAt = _mintStartAt;
mintEndAt = _mintEndAt;
delegationRegistry.call(abi.encodeWithSignature("setDelegationForSelf(address)", msg.sender));
delegationRegistry.call(abi.encodeWithSignature("disableSelfManagingDelegations()"));
}
function mint(uint256 rate) external payable nonReentrant{
require(block.timestamp >= mintStartAt, "Mint not started");
require(block.timestamp<mintEndAt && !mintEnd, "Mint ended");
require(msg.sender == tx.origin , "Must from EOA");
require(rate>0 && rate<=PRECISION, "Invalid rate");
require(msg.value>=minFee, "insufficient fee");
uint256 points = msg.value*PRECISION/rate;
require(points<=maxPointsPerMint, "max points exceeded");
accountTotalMint[msg.sender] += msg.value;
totalMintValue += msg.value;
totalMintTimes += 1;
if (_random() < rate) {
totalSuccessMints += 1;
totalSuccessValue += msg.value;
accountSuccessMint[msg.sender] += msg.value;
totalPoints += points;
pointsOf[msg.sender] += points;
emit Mint(msg.sender, true, msg.value, rate, points);
} else {
totalFailMints += 1;
totalFailValue += msg.value;
accountFailMint[msg.sender] += msg.value;
emit Mint(msg.sender, false, msg.value, rate, 0);
}
}
function endWar() external {
require(!mintEnd, "Claim started");
_endWar();
}
function _endWar() private {
require(mintEndAt<block.timestamp, "Mint War not ended");
if(mintEnd){
return;
}
mintEnd = true;
uint256 fee = totalMintValue * 10/100; //10% fee
uint256 afterFee = address(this).balance - fee;
TransferHelper.safeTransferETH(feeTo, fee);
uint256 totalToken = IERC20(token).balanceOf(address(this));
require(totalToken == IERC20(token).totalSupply(), "Insufficient token amount");
uint256 liquidityAmount = totalToken/2;
IERC20(token).approve(address(router), liquidityAmount);
router.addLiquidityETH{value:afterFee}(
address(token),
liquidityAmount,
0,
0,
address(this),
block.timestamp
);
emit EndWar();
}
function claim() external nonReentrant{
require(mintEndAt<block.timestamp, "Mint War not ended");
require(!isClaimed[msg.sender], "Account claimed");
_endWar();
uint256 claimAmount = getAccountClaimableAmount(msg.sender);
require(claimAmount>0, "Insufficient claimable amount");
TransferHelper.safeTransfer(token, msg.sender, claimAmount);
isClaimed[msg.sender] = true;
emit Claim(msg.sender, claimAmount);
}
function getAccountClaimableAmount(address account) public view returns(uint256){
if(totalPoints == 0){
return 0;
}
uint256 tokenMintTotal = IERC20(token).totalSupply()/2;
return tokenMintTotal * pointsOf[account]/totalPoints;
}
function _random() private view returns(uint256){
uint256 random = uint256(keccak256(abi.encodePacked(msg.sender,blockhash(block.number-1),block.timestamp,totalMintTimes,totalMintValue)));
return random % PRECISION;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20.sol)
pragma solidity ^0.8.20;
import {IERC20} from "../token/ERC20/IERC20.sol";// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/ReentrancyGuard.sol)
pragma solidity ^0.8.20;
/**
* @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
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant NOT_ENTERED = 1;
uint256 private constant ENTERED = 2;
uint256 private _status;
/**
* @dev Unauthorized reentrant call.
*/
error ReentrancyGuardReentrantCall();
constructor() {
_status = NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and making it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
_nonReentrantBefore();
_;
_nonReentrantAfter();
}
function _nonReentrantBefore() private {
// On the first call to nonReentrant, _status will be NOT_ENTERED
if (_status == ENTERED) {
revert ReentrancyGuardReentrantCall();
}
// Any calls to nonReentrant after this point will fail
_status = ENTERED;
}
function _nonReentrantAfter() private {
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = NOT_ENTERED;
}
/**
* @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
* `nonReentrant` function in the call stack.
*/
function _reentrancyGuardEntered() internal view returns (bool) {
return _status == ENTERED;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (
uint256 amountA,
uint256 amountB,
uint256 liquidity
);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
function removeLiquidity(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETH(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountToken, uint256 amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETHWithPermit(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountToken, uint256 amountETH);
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapTokensForExactTokens(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactETHForTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function swapTokensForExactETH(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactTokensForETH(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapETHForExactTokens(
uint256 amountOut,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function quote(
uint256 amountA,
uint256 reserveA,
uint256 reserveB
) external pure returns (uint256 amountB);
function getAmountOut(
uint256 amountIn,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountOut);
function getAmountIn(
uint256 amountOut,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountIn);
function getAmountsOut(uint256 amountIn, address[] calldata path)
external
view
returns (uint256[] memory amounts);
function getAmountsIn(uint256 amountOut, address[] calldata path)
external
view
returns (uint256[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.21;
// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
library TransferHelper {
function safeApprove(
address token,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('approve(address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
require(
success && (data.length == 0 || abi.decode(data, (bool))),
'TransferHelper::safeApprove: approve failed'
);
}
function safeTransfer(
address token,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('transfer(address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
require(
success && (data.length == 0 || abi.decode(data, (bool))),
'TransferHelper::safeTransfer: transfer failed'
);
}
function safeTransferFrom(
address token,
address from,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
require(
success && (data.length == 0 || abi.decode(data, (bool))),
'TransferHelper::transferFrom: transferFrom failed'
);
}
function safeTransferETH(address to, uint256 value) internal {
(bool success, ) = to.call{value: value}(new bytes(0));
require(success, 'TransferHelper::safeTransferETH: ETH transfer failed');
}
}{
"optimizer": {
"enabled": true,
"runs": 999
},
"evmVersion": "paris",
"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","name":"_router","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_mintStartAt","type":"uint256"},{"internalType":"uint256","name":"_mintEndAt","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[],"name":"EndWar","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"points","type":"uint256"}],"name":"Mint","type":"event"},{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"accountFailMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"accountSuccessMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"accountTotalMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delegationRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endWar","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getAccountClaimableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPointsPerMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintEnd","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintEndAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintStartAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pointsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFailMints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFailValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMintTimes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMintValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSuccessMints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSuccessValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b50604051620016ca380380620016ca83398101604081905262000034916200023e565b60016000819055600380546001600160a01b038088166001600160a01b0319928316179092558254811633179092556002805491861691909216179055655af3107a400060045568056bc75e2d6310000060115542821180156200009757508181115b620000da5760405162461bcd60e51b815260206004820152600f60248201526e26b4b73a103a34b6b29032b93937b960891b604482015260640160405180910390fd5b60138290556014819055604051336024820152734392dc16867d53dbfe227076606455634d4c27959060440160408051601f198184030181529181526020820180516001600160e01b03166302b8a21d60e01b179052516200013d919062000286565b6000604051808303816000865af19150503d80600081146200017c576040519150601f19603f3d011682016040523d82523d6000602084013e62000181565b606091505b505060408051600481526024810182526020810180516001600160e01b03166325ce9a3760e01b1790529051734392dc16867d53dbfe227076606455634d4c27959250620001d0919062000286565b6000604051808303816000865af19150503d80600081146200020f576040519150601f19603f3d011682016040523d82523d6000602084013e62000214565b606091505b50505050505050620002b7565b80516001600160a01b03811681146200023957600080fd5b919050565b600080600080608085870312156200025557600080fd5b620002608562000221565b9350620002706020860162000221565b6040860151606090960151949790965092505050565b6000825160005b81811015620002a957602081860181015185830152016200028d565b506000920191825250919050565b61140380620002c76000396000f3fe6080604052600436106101a15760003560e01c8063a32b5e48116100e1578063ba3fcd9d1161008a578063ea2b4ab211610064578063ea2b4ab214610460578063f67d69911461047a578063f887ea401461048f578063fc0c546a146104af57600080fd5b8063ba3fcd9d146103f0578063ca68a9d61461041d578063cf6a44031461043357600080fd5b8063aaf5eb68116100bb578063aaf5eb68146103ad578063ad614714146103c4578063ae149b20146103da57600080fd5b8063a32b5e481461033d578063aabf1a0314610353578063aad9c5771461038057600080fd5b80634e71d92d1161014e578063620500831161012857806362050083146102be57806377c06fb5146102d45780638cc08025146102ea578063a0712d681461032a57600080fd5b80634e71d92d1461027b578063559135f414610292578063567142be146102a857600080fd5b806324ec75901161017f57806324ec75901461022f57806336326c7f146102455780633e6fccec1461026557600080fd5b8063017e7e58146101a65780630625a8a2146101e35780631fbdd72d14610207575b600080fd5b3480156101b257600080fd5b506001546101c6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ef57600080fd5b506101f9600f5481565b6040519081526020016101da565b34801561021357600080fd5b506101c6734392dc16867d53dbfe227076606455634d4c279581565b34801561023b57600080fd5b506101f960045481565b34801561025157600080fd5b506101f961026036600461125c565b6104cf565b34801561027157600080fd5b506101f9600d5481565b34801561028757600080fd5b506102906105b1565b005b34801561029e57600080fd5b506101f960105481565b3480156102b457600080fd5b506101f9600a5481565b3480156102ca57600080fd5b506101f9600e5481565b3480156102e057600080fd5b506101f9600c5481565b3480156102f657600080fd5b5061031a61030536600461125c565b60096020526000908152604090205460ff1681565b60405190151581526020016101da565b610290610338366004611285565b61074b565b34801561034957600080fd5b506101f960115481565b34801561035f57600080fd5b506101f961036e36600461125c565b60066020526000908152604090205481565b34801561038c57600080fd5b506101f961039b36600461125c565b60076020526000908152604090205481565b3480156103b957600080fd5b506101f9620186a081565b3480156103d057600080fd5b506101f960135481565b3480156103e657600080fd5b506101f9600b5481565b3480156103fc57600080fd5b506101f961040b36600461125c565b60056020526000908152604090205481565b34801561042957600080fd5b506101f960145481565b34801561043f57600080fd5b506101f961044e36600461125c565b60086020526000908152604090205481565b34801561046c57600080fd5b5060125461031a9060ff1681565b34801561048657600080fd5b50610290610b6f565b34801561049b57600080fd5b506003546101c6906001600160a01b031681565b3480156104bb57600080fd5b506002546101c6906001600160a01b031681565b6000600a546000036104e357506000919050565b60028054604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600093926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056c919061129e565b61057691906112e3565b600a546001600160a01b038516600090815260086020526040902054919250906105a090836112f7565b6105aa91906112e3565b9392505050565b6105b9610bca565b426014541061060f5760405162461bcd60e51b815260206004820152601260248201527f4d696e7420576172206e6f7420656e646564000000000000000000000000000060448201526064015b60405180910390fd5b3360009081526009602052604090205460ff161561066f5760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e7420636c61696d656400000000000000000000000000000000006044820152606401610606565b610677610c0d565b6000610682336104cf565b9050600081116106d45760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420636c61696d61626c6520616d6f756e740000006044820152606401610606565b6002546106eb906001600160a01b03163383610f8c565b33600081815260096020908152604091829020805460ff19166001179055815192835282018390527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4910160405180910390a1506107496001600055565b565b610753610bca565b6013544210156107a55760405162461bcd60e51b815260206004820152601060248201527f4d696e74206e6f742073746172746564000000000000000000000000000000006044820152606401610606565b601454421080156107b9575060125460ff16155b6108055760405162461bcd60e51b815260206004820152600a60248201527f4d696e7420656e646564000000000000000000000000000000000000000000006044820152606401610606565b3332146108545760405162461bcd60e51b815260206004820152600d60248201527f4d7573742066726f6d20454f41000000000000000000000000000000000000006044820152606401610606565b6000811180156108675750620186a08111155b6108b35760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964207261746500000000000000000000000000000000000000006044820152606401610606565b6004543410156109055760405162461bcd60e51b815260206004820152601060248201527f696e73756666696369656e7420666565000000000000000000000000000000006044820152606401610606565b600081610915620186a0346112f7565b61091f91906112e3565b90506011548111156109735760405162461bcd60e51b815260206004820152601360248201527f6d617820706f696e7473206578636565646564000000000000000000000000006044820152606401610606565b3360009081526005602052604081208054349290610992908490611314565b9250508190555034600d60008282546109ab9190611314565b925050819055506001600e60008282546109c59190611314565b909155508290506109d46110fb565b1015610abe576001600f60008282546109ed9190611314565b9250508190555034600b6000828254610a069190611314565b90915550503360009081526006602052604081208054349290610a2a908490611314565b9250508190555080600a6000828254610a439190611314565b90915550503360009081526008602052604081208054839290610a67908490611314565b909155505060408051338152600160208201523481830152606081018490526080810183905290517f98b6b9c2f570ec1d2dd6dbd4743d1d3f912af590c9017670b4c223ee4536e9199181900360a00190a1610b61565b600160106000828254610ad19190611314565b9250508190555034600c6000828254610aea9190611314565b90915550503360009081526007602052604081208054349290610b0e908490611314565b909155505060408051338152600060208201819052348284015260608201859052608082015290517f98b6b9c2f570ec1d2dd6dbd4743d1d3f912af590c9017670b4c223ee4536e9199181900360a00190a15b50610b6c6001600055565b50565b60125460ff1615610bc25760405162461bcd60e51b815260206004820152600d60248201527f436c61696d2073746172746564000000000000000000000000000000000000006044820152606401610606565b610749610c0d565b600260005403610c06576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b4260145410610c5e5760405162461bcd60e51b815260206004820152601260248201527f4d696e7420576172206e6f7420656e64656400000000000000000000000000006044820152606401610606565b60125460ff1615610c6b57565b6012805460ff19166001179055600d54600090606490610c8c90600a6112f7565b610c9691906112e3565b90506000610ca48247611327565b600154909150610cbd906001600160a01b031683611174565b6002546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d43919061129e565b9050600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbc919061129e565b8114610e0a5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e7420746f6b656e20616d6f756e74000000000000006044820152606401610606565b6000610e176002836112e3565b6002546003546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101849052929350169063095ea7b3906044016020604051808303816000875af1158015610e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eab919061133a565b506003546002546040517ff305d7190000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810184905260006044820181905260648201523060848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015610f35573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f5a919061135c565b50506040517fe0ce9ff53de9afa53a319443c3e3a923739fe70946c893fc49ec7987828879dc9150600090a150505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790529151600092839290871691611016919061138a565b6000604051808303816000865af19150503d8060008114611053576040519150601f19603f3d011682016040523d82523d6000602084013e611058565b606091505b5091509150818015611082575080511580611082575080806020019051810190611082919061133a565b6110f45760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c6564000000000000000000000000000000000000006064820152608401610606565b5050505050565b6000803361110a600143611327565b600e54600d5460405160609490941b6bffffffffffffffffffffffff19166020850152914060348401524260548401526074830152609482015260b40160408051601f198184030181529190528051602090910120905061116e620186a0826113b9565b91505090565b604080516000808252602082019092526001600160a01b03841690839060405161119e919061138a565b60006040518083038185875af1925050503d80600081146111db576040519150601f19603f3d011682016040523d82523d6000602084013e6111e0565b606091505b50509050806112575760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c65640000000000000000000000006064820152608401610606565b505050565b60006020828403121561126e57600080fd5b81356001600160a01b03811681146105aa57600080fd5b60006020828403121561129757600080fd5b5035919050565b6000602082840312156112b057600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826112f2576112f26112b7565b500490565b808202811582820484141761130e5761130e6112cd565b92915050565b8082018082111561130e5761130e6112cd565b8181038181111561130e5761130e6112cd565b60006020828403121561134c57600080fd5b815180151581146105aa57600080fd5b60008060006060848603121561137157600080fd5b8351925060208401519150604084015190509250925092565b6000825160005b818110156113ab5760208186018101518583015201611391565b506000920191825250919050565b6000826113c8576113c86112b7565b50069056fea264697066735822122017f5452481617f652c963c500f31c7ca094e25e46eced22d8c87fd1c038ce4e264736f6c634300081700330000000000000000000000002dd1b4d4548accea497050619965f91f78b3b532000000000000000000000000cc15f0f1e81e4a90cc2faa918842e19f2ea2ee030000000000000000000000000000000000000000000000000000000065ea55000000000000000000000000000000000000000000000000000000000065ecf800
Deployed Bytecode
0x6080604052600436106101a15760003560e01c8063a32b5e48116100e1578063ba3fcd9d1161008a578063ea2b4ab211610064578063ea2b4ab214610460578063f67d69911461047a578063f887ea401461048f578063fc0c546a146104af57600080fd5b8063ba3fcd9d146103f0578063ca68a9d61461041d578063cf6a44031461043357600080fd5b8063aaf5eb68116100bb578063aaf5eb68146103ad578063ad614714146103c4578063ae149b20146103da57600080fd5b8063a32b5e481461033d578063aabf1a0314610353578063aad9c5771461038057600080fd5b80634e71d92d1161014e578063620500831161012857806362050083146102be57806377c06fb5146102d45780638cc08025146102ea578063a0712d681461032a57600080fd5b80634e71d92d1461027b578063559135f414610292578063567142be146102a857600080fd5b806324ec75901161017f57806324ec75901461022f57806336326c7f146102455780633e6fccec1461026557600080fd5b8063017e7e58146101a65780630625a8a2146101e35780631fbdd72d14610207575b600080fd5b3480156101b257600080fd5b506001546101c6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ef57600080fd5b506101f9600f5481565b6040519081526020016101da565b34801561021357600080fd5b506101c6734392dc16867d53dbfe227076606455634d4c279581565b34801561023b57600080fd5b506101f960045481565b34801561025157600080fd5b506101f961026036600461125c565b6104cf565b34801561027157600080fd5b506101f9600d5481565b34801561028757600080fd5b506102906105b1565b005b34801561029e57600080fd5b506101f960105481565b3480156102b457600080fd5b506101f9600a5481565b3480156102ca57600080fd5b506101f9600e5481565b3480156102e057600080fd5b506101f9600c5481565b3480156102f657600080fd5b5061031a61030536600461125c565b60096020526000908152604090205460ff1681565b60405190151581526020016101da565b610290610338366004611285565b61074b565b34801561034957600080fd5b506101f960115481565b34801561035f57600080fd5b506101f961036e36600461125c565b60066020526000908152604090205481565b34801561038c57600080fd5b506101f961039b36600461125c565b60076020526000908152604090205481565b3480156103b957600080fd5b506101f9620186a081565b3480156103d057600080fd5b506101f960135481565b3480156103e657600080fd5b506101f9600b5481565b3480156103fc57600080fd5b506101f961040b36600461125c565b60056020526000908152604090205481565b34801561042957600080fd5b506101f960145481565b34801561043f57600080fd5b506101f961044e36600461125c565b60086020526000908152604090205481565b34801561046c57600080fd5b5060125461031a9060ff1681565b34801561048657600080fd5b50610290610b6f565b34801561049b57600080fd5b506003546101c6906001600160a01b031681565b3480156104bb57600080fd5b506002546101c6906001600160a01b031681565b6000600a546000036104e357506000919050565b60028054604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600093926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056c919061129e565b61057691906112e3565b600a546001600160a01b038516600090815260086020526040902054919250906105a090836112f7565b6105aa91906112e3565b9392505050565b6105b9610bca565b426014541061060f5760405162461bcd60e51b815260206004820152601260248201527f4d696e7420576172206e6f7420656e646564000000000000000000000000000060448201526064015b60405180910390fd5b3360009081526009602052604090205460ff161561066f5760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e7420636c61696d656400000000000000000000000000000000006044820152606401610606565b610677610c0d565b6000610682336104cf565b9050600081116106d45760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420636c61696d61626c6520616d6f756e740000006044820152606401610606565b6002546106eb906001600160a01b03163383610f8c565b33600081815260096020908152604091829020805460ff19166001179055815192835282018390527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4910160405180910390a1506107496001600055565b565b610753610bca565b6013544210156107a55760405162461bcd60e51b815260206004820152601060248201527f4d696e74206e6f742073746172746564000000000000000000000000000000006044820152606401610606565b601454421080156107b9575060125460ff16155b6108055760405162461bcd60e51b815260206004820152600a60248201527f4d696e7420656e646564000000000000000000000000000000000000000000006044820152606401610606565b3332146108545760405162461bcd60e51b815260206004820152600d60248201527f4d7573742066726f6d20454f41000000000000000000000000000000000000006044820152606401610606565b6000811180156108675750620186a08111155b6108b35760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964207261746500000000000000000000000000000000000000006044820152606401610606565b6004543410156109055760405162461bcd60e51b815260206004820152601060248201527f696e73756666696369656e7420666565000000000000000000000000000000006044820152606401610606565b600081610915620186a0346112f7565b61091f91906112e3565b90506011548111156109735760405162461bcd60e51b815260206004820152601360248201527f6d617820706f696e7473206578636565646564000000000000000000000000006044820152606401610606565b3360009081526005602052604081208054349290610992908490611314565b9250508190555034600d60008282546109ab9190611314565b925050819055506001600e60008282546109c59190611314565b909155508290506109d46110fb565b1015610abe576001600f60008282546109ed9190611314565b9250508190555034600b6000828254610a069190611314565b90915550503360009081526006602052604081208054349290610a2a908490611314565b9250508190555080600a6000828254610a439190611314565b90915550503360009081526008602052604081208054839290610a67908490611314565b909155505060408051338152600160208201523481830152606081018490526080810183905290517f98b6b9c2f570ec1d2dd6dbd4743d1d3f912af590c9017670b4c223ee4536e9199181900360a00190a1610b61565b600160106000828254610ad19190611314565b9250508190555034600c6000828254610aea9190611314565b90915550503360009081526007602052604081208054349290610b0e908490611314565b909155505060408051338152600060208201819052348284015260608201859052608082015290517f98b6b9c2f570ec1d2dd6dbd4743d1d3f912af590c9017670b4c223ee4536e9199181900360a00190a15b50610b6c6001600055565b50565b60125460ff1615610bc25760405162461bcd60e51b815260206004820152600d60248201527f436c61696d2073746172746564000000000000000000000000000000000000006044820152606401610606565b610749610c0d565b600260005403610c06576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b4260145410610c5e5760405162461bcd60e51b815260206004820152601260248201527f4d696e7420576172206e6f7420656e64656400000000000000000000000000006044820152606401610606565b60125460ff1615610c6b57565b6012805460ff19166001179055600d54600090606490610c8c90600a6112f7565b610c9691906112e3565b90506000610ca48247611327565b600154909150610cbd906001600160a01b031683611174565b6002546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d43919061129e565b9050600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbc919061129e565b8114610e0a5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e7420746f6b656e20616d6f756e74000000000000006044820152606401610606565b6000610e176002836112e3565b6002546003546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101849052929350169063095ea7b3906044016020604051808303816000875af1158015610e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eab919061133a565b506003546002546040517ff305d7190000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810184905260006044820181905260648201523060848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015610f35573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f5a919061135c565b50506040517fe0ce9ff53de9afa53a319443c3e3a923739fe70946c893fc49ec7987828879dc9150600090a150505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790529151600092839290871691611016919061138a565b6000604051808303816000865af19150503d8060008114611053576040519150601f19603f3d011682016040523d82523d6000602084013e611058565b606091505b5091509150818015611082575080511580611082575080806020019051810190611082919061133a565b6110f45760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c6564000000000000000000000000000000000000006064820152608401610606565b5050505050565b6000803361110a600143611327565b600e54600d5460405160609490941b6bffffffffffffffffffffffff19166020850152914060348401524260548401526074830152609482015260b40160408051601f198184030181529190528051602090910120905061116e620186a0826113b9565b91505090565b604080516000808252602082019092526001600160a01b03841690839060405161119e919061138a565b60006040518083038185875af1925050503d80600081146111db576040519150601f19603f3d011682016040523d82523d6000602084013e6111e0565b606091505b50509050806112575760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c65640000000000000000000000006064820152608401610606565b505050565b60006020828403121561126e57600080fd5b81356001600160a01b03811681146105aa57600080fd5b60006020828403121561129757600080fd5b5035919050565b6000602082840312156112b057600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826112f2576112f26112b7565b500490565b808202811582820484141761130e5761130e6112cd565b92915050565b8082018082111561130e5761130e6112cd565b8181038181111561130e5761130e6112cd565b60006020828403121561134c57600080fd5b815180151581146105aa57600080fd5b60008060006060848603121561137157600080fd5b8351925060208401519150604084015190509250925092565b6000825160005b818110156113ab5760208186018101518583015201611391565b506000920191825250919050565b6000826113c8576113c86112b7565b50069056fea264697066735822122017f5452481617f652c963c500f31c7ca094e25e46eced22d8c87fd1c038ce4e264736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002dd1b4d4548accea497050619965f91f78b3b532000000000000000000000000cc15f0f1e81e4a90cc2faa918842e19f2ea2ee030000000000000000000000000000000000000000000000000000000065ea55000000000000000000000000000000000000000000000000000000000065ecf800
-----Decoded View---------------
Arg [0] : _router (address): 0x2Dd1B4D4548aCCeA497050619965f91f78b3b532
Arg [1] : _token (address): 0xCC15F0F1e81E4A90CC2fAA918842E19F2ea2EE03
Arg [2] : _mintStartAt (uint256): 1709856000
Arg [3] : _mintEndAt (uint256): 1710028800
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000002dd1b4d4548accea497050619965f91f78b3b532
Arg [1] : 000000000000000000000000cc15f0f1e81e4a90cc2faa918842e19f2ea2ee03
Arg [2] : 0000000000000000000000000000000000000000000000000000000065ea5500
Arg [3] : 0000000000000000000000000000000000000000000000000000000065ecf800
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
Multichain Portfolio | 35 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.