Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 3,173 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 23760949 | 24 hrs ago | IN | 0 ETH | 0.00003187 | ||||
| Approve | 23760946 | 24 hrs ago | IN | 0 ETH | 0.00005283 | ||||
| Approve | 23749781 | 2 days ago | IN | 0 ETH | 0.00013652 | ||||
| Approve | 23746625 | 3 days ago | IN | 0 ETH | 0.00004451 | ||||
| Transfer | 23728889 | 5 days ago | IN | 0 ETH | 0.00016474 | ||||
| Approve | 23709536 | 8 days ago | IN | 0 ETH | 0.00000362 | ||||
| Transfer | 23709316 | 8 days ago | IN | 0 ETH | 0.00000194 | ||||
| Approve | 23694149 | 10 days ago | IN | 0 ETH | 0.00005421 | ||||
| Transfer | 23674122 | 13 days ago | IN | 0 ETH | 0.00003173 | ||||
| Transfer | 23672521 | 13 days ago | IN | 0 ETH | 0.00000267 | ||||
| Approve | 23664846 | 14 days ago | IN | 0 ETH | 0.00005425 | ||||
| Approve | 23648632 | 16 days ago | IN | 0 ETH | 0.00003432 | ||||
| Approve | 23644190 | 17 days ago | IN | 0 ETH | 0.00000554 | ||||
| Approve | 23643545 | 17 days ago | IN | 0 ETH | 0.00005342 | ||||
| Approve | 23626996 | 19 days ago | IN | 0 ETH | 0.00006932 | ||||
| Approve | 23606309 | 22 days ago | IN | 0 ETH | 0.00000884 | ||||
| Transfer | 23602138 | 23 days ago | IN | 0 ETH | 0.00000721 | ||||
| Transfer | 23597178 | 23 days ago | IN | 0 ETH | 0.00010507 | ||||
| Transfer | 23596195 | 24 days ago | IN | 0 ETH | 0.00032302 | ||||
| Transfer | 23587619 | 25 days ago | IN | 0 ETH | 0.00003601 | ||||
| Approve | 23587523 | 25 days ago | IN | 0 ETH | 0.00005694 | ||||
| Transfer | 23580581 | 26 days ago | IN | 0 ETH | 0.00003284 | ||||
| Approve | 23558589 | 29 days ago | IN | 0 ETH | 0.0000607 | ||||
| Approve | 23539063 | 32 days ago | IN | 0 ETH | 0.00003769 | ||||
| Approve | 23539060 | 32 days ago | IN | 0 ETH | 0.00003809 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x3d602d80 | 16131295 | 1069 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Minimal Proxy Contract for 0x7290367aa694703220516a35e68e3d339ee7d193
Contract Name:
SwapsPair
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: BCOM
pragma solidity =0.8.14;
import "./IERC20.sol";
import "./ISwapsFactory.sol";
import "./ISwapsCallee.sol";
import "./SwapsERC20.sol";
contract SwapsPair is SwapsERC20 {
uint224 constant Q112 = 2 ** 112;
uint112 constant UINT112_MAX = type(uint112).max;
uint256 public constant MINIMUM_LIQUIDITY = 10 ** 3;
bytes4 private constant SELECTOR = bytes4(
keccak256(bytes('transfer(address,uint256)'))
);
address public factory;
address public token0;
address public token1;
uint112 private reserve0;
uint112 private reserve1;
uint32 private blockTimestampLast;
uint256 public price0CumulativeLast;
uint256 public price1CumulativeLast;
uint256 public kLast;
uint256 private unlocked;
modifier lock() {
require(
unlocked == 1,
"SwapsPair: LOCKED"
);
unlocked = 0;
_;
unlocked = 1;
}
event Mint(
address indexed sender,
uint256 amount0,
uint256 amount1
);
event Burn(
address indexed sender,
uint256 amount0,
uint256 amount1,
address indexed to
);
event Swap(
address indexed sender,
uint256 amount0In,
uint256 amount1In,
uint256 amount0Out,
uint256 amount1Out,
address indexed to
);
event Sync(
uint112 reserve0,
uint112 reserve1
);
function initialize(
address _token0,
address _token1
)
external
{
require(
factory == ZERO_ADDRESS,
"SwapsPair: ALREADY_INITIALIZED"
);
token0 = _token0;
token1 = _token1;
factory = msg.sender;
unlocked = 1;
}
function getReserves()
public
view
returns (
uint112,
uint112,
uint32
)
{
return (
reserve0,
reserve1,
blockTimestampLast
);
}
function _update(
uint256 _balance0,
uint256 _balance1,
uint112 _reserve0,
uint112 _reserve1
)
private
{
require(
_balance0 <= UINT112_MAX &&
_balance1 <= UINT112_MAX,
"SwapsPair: OVERFLOW"
);
uint32 blockTimestamp = uint32(block.timestamp % 2 ** 32);
unchecked {
uint32 timeElapsed = blockTimestamp - blockTimestampLast;
if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
price0CumulativeLast += uint256(uqdiv(encode(_reserve1), _reserve0)) * timeElapsed;
price1CumulativeLast += uint256(uqdiv(encode(_reserve0), _reserve1)) * timeElapsed;
}
}
reserve0 = uint112(_balance0);
reserve1 = uint112(_balance1);
blockTimestampLast = blockTimestamp;
emit Sync(
reserve0,
reserve1
);
}
function _mintFee(
uint112 _reserve0,
uint112 _reserve1,
uint256 _kLast
)
private
{
if (_kLast == 0) return;
uint256 rootK = sqrt(uint256(_reserve0) * _reserve1);
uint256 rootKLast = sqrt(_kLast);
if (rootK > rootKLast) {
uint256 liquidity = totalSupply
* (rootK - rootKLast)
/ (rootK * 5 + rootKLast);
if (liquidity == 0) return;
_mint(
ISwapsFactory(factory).feeTo(),
liquidity
);
}
}
function mint(
address _to
)
external
lock
returns (uint256 liquidity)
{
(
uint112 _reserve0,
uint112 _reserve1,
) = getReserves();
uint256 balance0 = IERC20(token0).balanceOf(address(this));
uint256 balance1 = IERC20(token1).balanceOf(address(this));
uint256 amount0 = balance0 - _reserve0;
uint256 amount1 = balance1 - _reserve1;
_mintFee(
_reserve0,
_reserve1,
kLast
);
uint256 _totalSupply = totalSupply;
if (_totalSupply == 0) {
liquidity = sqrt(
amount0 * amount1
) - MINIMUM_LIQUIDITY;
_mint(
ZERO_ADDRESS,
MINIMUM_LIQUIDITY
);
} else {
liquidity = min(
amount0 * _totalSupply / _reserve0,
amount1 * _totalSupply / _reserve1
);
}
require(
liquidity > 0,
"INSUFFICIENT_LIQUIDITY_MINTED"
);
_mint(
_to,
liquidity
);
_update(
balance0,
balance1,
_reserve0,
_reserve1
);
kLast = uint256(reserve0) * reserve1;
emit Mint(
msg.sender,
amount0,
amount1
);
}
function burn(
address _to
)
external
lock
returns (
uint256 amount0,
uint256 amount1
)
{
(
uint112 _reserve0,
uint112 _reserve1,
) = getReserves();
address _token0 = token0;
address _token1 = token1;
uint256 balance0 = IERC20(_token0).balanceOf(address(this));
uint256 balance1 = IERC20(_token1).balanceOf(address(this));
uint256 liquidity = balanceOf[address(this)];
_mintFee(
_reserve0,
_reserve1,
kLast
);
uint256 _totalSupply = totalSupply;
amount0 = liquidity * balance0 / _totalSupply;
amount1 = liquidity * balance1 / _totalSupply;
require(
amount0 > 0 &&
amount1 > 0,
"INSUFFICIENT_LIQUIDITY_BURNED"
);
_burn(
address(this),
liquidity
);
_safeTransfer(
_token0,
_to,
amount0
);
_safeTransfer(
_token1,
_to,
amount1
);
balance0 = IERC20(_token0).balanceOf(address(this));
balance1 = IERC20(_token1).balanceOf(address(this));
_update(
balance0,
balance1,
_reserve0,
_reserve1
);
kLast = uint256(reserve0) * reserve1;
emit Burn(
msg.sender,
amount0,
amount1,
_to
);
}
function swap(
uint256 _amount0Out,
uint256 _amount1Out,
address _to,
bytes calldata _data
)
external
lock
{
require(
_amount0Out > 0 ||
_amount1Out > 0,
"INSUFFICIENT_OUTPUT_AMOUNT"
);
(
uint112 _reserve0,
uint112 _reserve1,
) = getReserves();
require(
_amount0Out < _reserve0 &&
_amount1Out < _reserve1,
"INSUFFICIENT_LIQUIDITY"
);
uint256 balance0;
uint256 balance1;
{
address _token0 = token0;
address _token1 = token1;
if (_amount0Out > 0) _safeTransfer(_token0, _to, _amount0Out);
if (_amount1Out > 0) _safeTransfer(_token1, _to, _amount1Out);
if (_data.length > 0) ISwapsCallee(_to).swapsCall(
msg.sender,
_amount0Out,
_amount1Out,
_data
);
balance0 = IERC20(_token0).balanceOf(address(this));
balance1 = IERC20(_token1).balanceOf(address(this));
}
uint256 _amount0In =
balance0 > _reserve0 - _amount0Out ?
balance0 - (_reserve0 - _amount0Out) : 0;
uint256 _amount1In =
balance1 > _reserve1 - _amount1Out ?
balance1 - (_reserve1 - _amount1Out) : 0;
require(
_amount0In > 0 ||
_amount1In > 0,
"INSUFFICIENT_INPUT_AMOUNT"
);
{
uint256 balance0Adjusted = balance0 * 1000 - (_amount0In * 3);
uint256 balance1Adjusted = balance1 * 1000 - (_amount1In * 3);
require(
balance0Adjusted * balance1Adjusted >=
uint256(_reserve0)
* _reserve1
* (1000 ** 2)
);
}
_update(
balance0,
balance1,
_reserve0,
_reserve1
);
emit Swap(
msg.sender,
_amount0In,
_amount1In,
_amount0Out,
_amount1Out,
_to
);
}
function skim()
external
lock
{
address _token0 = token0;
address _token1 = token1;
address _feesTo = ISwapsFactory(factory).feeTo();
_safeTransfer(
_token0,
_feesTo,
IERC20(_token0).balanceOf(address(this)) - reserve0
);
_safeTransfer(
_token1,
_feesTo,
IERC20(_token1).balanceOf(address(this)) - reserve1
);
}
function sync()
external
lock
{
_update(
IERC20(token0).balanceOf(address(this)),
IERC20(token1).balanceOf(address(this)),
reserve0,
reserve1
);
}
function encode(
uint112 _y
)
pure
internal
returns (uint224 z)
{
unchecked {
z = uint224(_y) * Q112;
}
}
function uqdiv(
uint224 _x,
uint112 _y
)
pure
internal
returns (uint224 z)
{
unchecked {
z = _x / uint224(_y);
}
}
function min(
uint256 _x,
uint256 _y
)
internal
pure
returns (uint256 z)
{
z = _x < _y ? _x : _y;
}
function sqrt(
uint256 _y
)
internal
pure
returns (uint256 z)
{
unchecked {
if (_y > 3) {
z = _y;
uint256 x = _y / 2 + 1;
while (x < z) {
z = x;
x = (_y / x + x) / 2;
}
} else if (_y != 0) {
z = 1;
}
}
}
function _safeTransfer(
address _token,
address _to,
uint256 _value
)
internal
{
(bool success, bytes memory data) = _token.call(
abi.encodeWithSelector(
SELECTOR,
_to,
_value
)
);
require(
success && (
data.length == 0 || abi.decode(
data, (bool)
)
),
"SwapsPair: TRANSFER_FAILED"
);
}
}
File 2 of 5: IERC20.sol
// SPDX-License-Identifier: BCOM
pragma solidity =0.8.14;
interface IERC20 {
function balanceOf(
address _owner
)
external
view
returns (uint256);
}
File 3 of 5: ISwapsCallee.sol
// SPDX-License-Identifier: BCOM
pragma solidity =0.8.14;
interface ISwapsCallee {
function swapsCall(
address _sender,
uint256 _amount0,
uint256 _amount1,
bytes calldata _data
)
external;
}
File 4 of 5: ISwapsFactory.sol
// SPDX-License-Identifier: BCOM
pragma solidity =0.8.14;
interface ISwapsFactory {
function feeTo()
external
view
returns (address);
function feeToSetter()
external
view
returns (address);
function getPair(
address _tokenA,
address _tokenB
)
external
view
returns (address pair);
function allPairs(uint256)
external
view
returns (address pair);
function allPairsLength()
external
view
returns (uint256);
function createPair(
address _tokenA,
address _tokenB
)
external
returns (address pair);
function setFeeTo(
address
)
external;
function setFeeToSetter(
address
)
external;
function cloneTarget()
external
view
returns (address target);
}
File 5 of 5: SwapsERC20.sol
// SPDX-License-Identifier: BCOM
pragma solidity =0.8.14;
contract SwapsERC20 {
string public constant name = "Verse Exchange";
string public constant symbol = "VERSE-X";
uint8 public constant decimals = 18;
address constant ZERO_ADDRESS = address(0);
uint256 constant UINT256_MAX = type(uint256).max;
uint256 public totalSupply;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
mapping(address => uint256) public nonces;
bytes32 public immutable DOMAIN_SEPARATOR;
bytes32 public constant PERMIT_TYPEHASH = keccak256(
"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
event Transfer(
address indexed from,
address indexed to,
uint256 value
);
constructor() {
DOMAIN_SEPARATOR = keccak256(
abi.encode(
keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
keccak256(bytes(name)),
keccak256(bytes("1")),
block.chainid,
address(this)
)
);
}
function _mint(
address _to,
uint256 _value
)
internal
{
totalSupply =
totalSupply + _value;
unchecked {
balanceOf[_to] =
balanceOf[_to] + _value;
}
emit Transfer(
ZERO_ADDRESS,
_to,
_value
);
}
function _burn(
address _from,
uint256 _value
)
internal
{
unchecked {
totalSupply =
totalSupply - _value;
}
balanceOf[_from] =
balanceOf[_from] - _value;
emit Transfer(
_from,
ZERO_ADDRESS,
_value
);
}
function _approve(
address _owner,
address _spender,
uint256 _value
)
private
{
allowance[_owner][_spender] = _value;
emit Approval(
_owner,
_spender,
_value
);
}
function _transfer(
address _from,
address _to,
uint256 _value
)
private
{
balanceOf[_from] =
balanceOf[_from] - _value;
unchecked {
balanceOf[_to] =
balanceOf[_to] + _value;
}
emit Transfer(
_from,
_to,
_value
);
}
function approve(
address _spender,
uint256 _value
)
external
returns (bool)
{
_approve(
msg.sender,
_spender,
_value
);
return true;
}
function transfer(
address _to,
uint256 _value
)
external
returns (bool)
{
_transfer(
msg.sender,
_to,
_value
);
return true;
}
function transferFrom(
address _from,
address _to,
uint256 _value
)
external
returns (bool)
{
if (allowance[_from][msg.sender] != UINT256_MAX) {
allowance[_from][msg.sender] -= _value;
}
_transfer(
_from,
_to,
_value
);
return true;
}
function permit(
address _owner,
address _spender,
uint256 _value,
uint256 _deadline,
uint8 _v,
bytes32 _r,
bytes32 _s
)
external
{
require(
_deadline >= block.timestamp,
"SwapsERC20: PERMIT_CALL_EXPIRED"
);
bytes32 digest = keccak256(
abi.encodePacked(
"\x19\x01",
DOMAIN_SEPARATOR,
keccak256(
abi.encode(
PERMIT_TYPEHASH,
_owner,
_spender,
_value,
nonces[_owner]++,
_deadline
)
)
)
);
if (uint256(_s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {
revert("SwapsERC20: INVALID_SIGNATURE");
}
address recoveredAddress = ecrecover(
digest,
_v,
_r,
_s
);
require(
recoveredAddress != ZERO_ADDRESS &&
recoveredAddress == _owner,
"SwapsERC20: INVALID_SIGNATURE"
);
_approve(
_owner,
_spender,
_value
);
}
}
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"","type":"uint112"},{"internalType":"uint112","name":"","type":"uint112"},{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"skim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount0Out","type":"uint256"},{"internalType":"uint256","name":"_amount1Out","type":"uint256"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]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.