Overview
ETH Balance
ETH Value
$0.00Latest 25 from a total of 192 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Token Swap F... | 9005108 | 508 days ago | IN | 0 ETH | 0.00000202 | ||||
| Set Token Swap F... | 9005101 | 508 days ago | IN | 0 ETH | 0.00000202 | ||||
| Set Token Swap F... | 8980892 | 509 days ago | IN | 0 ETH | 0.00000202 | ||||
| Set Token Swap F... | 8980864 | 509 days ago | IN | 0 ETH | 0.00000202 | ||||
| Set Token Swap F... | 8884767 | 511 days ago | IN | 0 ETH | 0.00000198 | ||||
| Set Token Swap F... | 8884761 | 511 days ago | IN | 0 ETH | 0.00000198 | ||||
| Set Token Swap F... | 8884694 | 511 days ago | IN | 0 ETH | 0.00000198 | ||||
| Set Token Swap F... | 8884687 | 511 days ago | IN | 0 ETH | 0.00000198 | ||||
| Set Token Swap F... | 8884659 | 511 days ago | IN | 0 ETH | 0.00000198 | ||||
| Set Token Swap F... | 8884655 | 511 days ago | IN | 0 ETH | 0.00000198 | ||||
| Set Token Swap F... | 8884402 | 511 days ago | IN | 0 ETH | 0.00000198 | ||||
| Set Token Swap F... | 8884397 | 511 days ago | IN | 0 ETH | 0.00000198 | ||||
| Set Token Swap F... | 6991914 | 555 days ago | IN | 0 ETH | 0.00000192 | ||||
| Set Token Swap F... | 6991884 | 555 days ago | IN | 0 ETH | 0.00000192 | ||||
| Set Token Swap F... | 5130322 | 601 days ago | IN | 0 ETH | 0.00000268 | ||||
| Set Token Swap F... | 5130316 | 601 days ago | IN | 0 ETH | 0.00000268 | ||||
| Set Token Swap F... | 5104087 | 602 days ago | IN | 0 ETH | 0.0000036 | ||||
| Set Token Swap F... | 5104080 | 602 days ago | IN | 0 ETH | 0.0000036 | ||||
| Set Pool Protoco... | 5017060 | 605 days ago | IN | 0 ETH | 0.00000467 | ||||
| Set Token Swap F... | 5017040 | 605 days ago | IN | 0 ETH | 0.00000477 | ||||
| Set Token Swap F... | 5017028 | 605 days ago | IN | 0 ETH | 0.00000478 | ||||
| Set Pool Protoco... | 4964213 | 607 days ago | IN | 0 ETH | 0.00000221 | ||||
| Set Pool Protoco... | 4964201 | 607 days ago | IN | 0 ETH | 0.00000221 | ||||
| Set Pool Protoco... | 4964196 | 607 days ago | IN | 0 ETH | 0.00000221 | ||||
| Set Pool Protoco... | 4964192 | 607 days ago | IN | 0 ETH | 0.00000222 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 9560424 | 496 days ago | 0 ETH | ||||
| 9560417 | 496 days ago | 0 ETH | ||||
| 9560415 | 496 days ago | 0 ETH | ||||
| 9560393 | 496 days ago | 0 ETH | ||||
| 9560375 | 496 days ago | 0 ETH | ||||
| 9560375 | 496 days ago | 0 ETH | ||||
| 9560350 | 496 days ago | 0 ETH | ||||
| 9560349 | 496 days ago | 0 ETH | ||||
| 9560349 | 496 days ago | 0 ETH | ||||
| 9560349 | 496 days ago | 0 ETH | ||||
| 9560342 | 496 days ago | 0 ETH | ||||
| 9560331 | 496 days ago | 0 ETH | ||||
| 9560322 | 496 days ago | 0 ETH | ||||
| 9560317 | 496 days ago | 0 ETH | ||||
| 9560317 | 496 days ago | 0 ETH | ||||
| 9560317 | 496 days ago | 0 ETH | ||||
| 9560317 | 496 days ago | 0 ETH | ||||
| 9560315 | 496 days ago | 0 ETH | ||||
| 9560259 | 496 days ago | 0 ETH | ||||
| 9560250 | 496 days ago | 0 ETH | ||||
| 9560244 | 496 days ago | 0 ETH | ||||
| 9560234 | 496 days ago | 0 ETH | ||||
| 9560228 | 496 days ago | 0 ETH | ||||
| 9560228 | 496 days ago | 0 ETH | ||||
| 9560228 | 496 days ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SyncSwapFeeManager
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.0;
import "../interfaces/pool/IPool.sol";
import "../interfaces/master/IFeeManager.sol";
import "../libraries/Ownable.sol";
/// @notice The fee manager manages swap fees for pools and protocol fee.
/// The contract is an independent module and can be replaced in the future.
///
contract SyncSwapFeeManager is IFeeManager, Ownable {
uint24 private constant MAX_PROTOCOL_FEE = 1e5; /// @dev 100%.
uint24 private constant MAX_SWAP_FEE = 10000; /// @dev 10%.
uint24 private constant ZERO_CUSTOM_FEE = type(uint24).max;
/// @dev The default swap fee by pool type.
mapping(uint16 => uint24) public defaultSwapFee; /// @dev `300` for 0.3%.
/// @dev The custom swap fee by pool address, use `ZERO_CUSTOM_FEE` for zero fee.
//mapping(address => uint24) public poolSwapFee;
/// @dev The custom swap fee by tokens, use `ZERO_CUSTOM_FEE` for zero fee.
mapping(address => mapping(address => uint24)) public tokenSwapFee;
/// @dev The protocol fee of swap fee by pool type.
mapping(uint16 => uint24) public defaultProtocolFee; /// @dev `30000` for 30%.
/// @dev The custom protocol fee by pool address, use `ZERO_CUSTOM_FEE` for zero fee.
mapping(address => uint24) public poolProtocolFee;
/// @dev The recipient of protocol fees.
address public feeRecipient;
// Events
event SetDefaultSwapFee(uint16 indexed poolType, uint24 fee);
event SetTokenSwapFee(address indexed tokenIn, address indexed tokenOut, uint24 fee);
event SetDefaultProtocolFee(uint16 indexed poolType, uint24 fee);
event SetPoolProtocolFee(address indexed pool, uint24 fee);
event SetFeeRecipient(address indexed previousFeeRecipient, address indexed newFeeRecipient);
constructor(address _feeRecipient) {
feeRecipient = _feeRecipient;
// Prefill fees for known pool types.
// 1 Classic Pools
defaultSwapFee[1] = 1000; // 1%.
defaultProtocolFee[1] = 50000; // 50%.
// 2 Stable Pools
defaultSwapFee[2] = 50; // 0.05%.
defaultProtocolFee[2] = 50000; // 50%.
}
// Getters
function getSwapFee(
address pool,
address /*sender*/,
address tokenIn,
address tokenOut,
bytes calldata /*data*/
) external view override returns (uint24 fee) {
fee = tokenSwapFee[tokenIn][tokenOut];
if (fee == 0) {
// not set, use default fee of the pool type.
fee = defaultSwapFee[IPool(pool).poolType()];
} else {
// has a pool swap fee.
fee = (fee == ZERO_CUSTOM_FEE ? 0 : fee);
}
}
function getProtocolFee(address pool) external view override returns (uint24 fee) {
fee = poolProtocolFee[pool];
if (fee == 0) {
// not set, use default fee of the pool type.
fee = defaultProtocolFee[IPool(pool).poolType()];
} else {
// has a pool protocol fee.
fee = (fee == ZERO_CUSTOM_FEE ? 0 : fee);
}
}
function getFeeRecipient() external view override returns (address) {
return feeRecipient;
}
// Setters
function setDefaultSwapFee(uint16 poolType, uint24 fee) external onlyOwner {
require(
fee <= MAX_SWAP_FEE,
"Invalid fee"
);
defaultSwapFee[poolType] = fee;
emit SetDefaultSwapFee(poolType, fee);
}
function setTokenSwapFee(address tokenIn, address tokenOut, uint24 fee) external onlyOwner {
require(
fee == ZERO_CUSTOM_FEE ||
fee <= MAX_SWAP_FEE,
"Invalid fee"
);
tokenSwapFee[tokenIn][tokenOut] = fee;
emit SetTokenSwapFee(tokenIn, tokenOut, fee);
}
function setDefaultProtocolFee(uint16 poolType, uint24 fee) external onlyOwner {
require(
fee <= MAX_PROTOCOL_FEE,
"Invalid fee"
);
defaultProtocolFee[poolType] = fee;
emit SetDefaultProtocolFee(poolType, fee);
}
function setPoolProtocolFee(address pool, uint24 fee) external onlyOwner {
require(
fee == ZERO_CUSTOM_FEE ||
fee <= MAX_PROTOCOL_FEE,
"Invalid fee"
);
poolProtocolFee[pool] = fee;
emit SetPoolProtocolFee(pool, fee);
}
function setFeeRecipient(address _feeRecipient) external onlyOwner {
// Emit here to avoid caching the previous recipient.
emit SetFeeRecipient(feeRecipient, _feeRecipient);
feeRecipient = _feeRecipient;
}
}// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity >=0.5.0;
/// @notice The manager contract to control fees.
/// Management functions are omitted.
interface IFeeManager {
function getSwapFee(
address pool,
address sender,
address tokenIn,
address tokenOut,
bytes calldata data) external view returns (uint24);
function getProtocolFee(address pool) external view returns (uint24);
function getFeeRecipient() external view returns (address);
}// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity >=0.5.0;
interface IPool {
struct TokenAmount {
address token;
uint amount;
}
/// @dev Returns the address of pool master.
function master() external view returns (address);
/// @dev Returns the vault.
function vault() external view returns (address);
/// @dev Returns the pool type.
function poolType() external view returns (uint16);
/// @dev Returns the assets of the pool.
function getAssets() external view returns (address[] memory assets);
/// @dev Returns the swap fee of the pool.
function getSwapFee(address sender, address tokenIn, address tokenOut, bytes calldata data) external view returns (uint24 swapFee);
/// @dev Returns the protocol fee of the pool.
function getProtocolFee() external view returns (uint24 protocolFee);
/// @dev Mints liquidity.
function mint(
bytes calldata data,
address sender,
address callback,
bytes calldata callbackData
) external returns (uint liquidity);
/// @dev Burns liquidity.
function burn(
bytes calldata data,
address sender,
address callback,
bytes calldata callbackData
) external returns (TokenAmount[] memory tokenAmounts);
/// @dev Burns liquidity with single output token.
function burnSingle(
bytes calldata data,
address sender,
address callback,
bytes calldata callbackData
) external returns (TokenAmount memory tokenAmount);
/// @dev Swaps between tokens.
function swap(
bytes calldata data,
address sender,
address callback,
bytes calldata callbackData
) external returns (TokenAmount memory tokenAmount);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(msg.sender);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == msg.sender, "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}{
"optimizer": {
"enabled": true,
"runs": 200,
"details": {
"yul": false
}
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"poolType","type":"uint16"},{"indexed":false,"internalType":"uint24","name":"fee","type":"uint24"}],"name":"SetDefaultProtocolFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"poolType","type":"uint16"},{"indexed":false,"internalType":"uint24","name":"fee","type":"uint24"}],"name":"SetDefaultSwapFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousFeeRecipient","type":"address"},{"indexed":true,"internalType":"address","name":"newFeeRecipient","type":"address"}],"name":"SetFeeRecipient","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"uint24","name":"fee","type":"uint24"}],"name":"SetPoolProtocolFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenIn","type":"address"},{"indexed":true,"internalType":"address","name":"tokenOut","type":"address"},{"indexed":false,"internalType":"uint24","name":"fee","type":"uint24"}],"name":"SetTokenSwapFee","type":"event"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"defaultProtocolFee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"defaultSwapFee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"getProtocolFee","outputs":[{"internalType":"uint24","name":"fee","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"getSwapFee","outputs":[{"internalType":"uint24","name":"fee","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"poolProtocolFee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"poolType","type":"uint16"},{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"setDefaultProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"poolType","type":"uint16"},{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"setDefaultSwapFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeRecipient","type":"address"}],"name":"setFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"setPoolProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"setTokenSwapFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"tokenSwapFee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50604051610d82380380610d8283398101604081905261002f916101a0565b6100383361011b565b600580546001600160a01b039092166001600160a01b03199092169190911790557fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f805462ffffff199081166103e8179091557fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c8054821661c35090811790915560026000527fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f80548316603217905560036020527fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d80549092161790556101c9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6101878161016b565b811461019257600080fd5b50565b80516101788161017e565b6000602082840312156101b5576101b5600080fd5b60006101c18484610195565b949350505050565b610baa806101d86000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806353561915116100975780638da5cb5b116100665780638da5cb5b14610242578063d4de871c14610253578063e74b981b14610278578063f2fde38b1461028b57600080fd5b80635356191514610201578063546a3c9e146102145780635f137b3f14610227578063715018a61461023a57600080fd5b80634190a660116100d35780634190a660146101a85780634625a94d146101bd57806346904840146101d05780634ccb20c0146101f057600080fd5b80630a992e0c1461010557806313809b831461012e5780632fa5752014610153578063389feeab14610178575b600080fd5b610118610113366004610816565b61029e565b604051610125919061084c565b60405180910390f35b61011861013c366004610816565b60046020526000908152604090205462ffffff1681565b61011861016136600461086f565b60016020526000908152604090205462ffffff1681565b610118610186366004610890565b600260209081526000928352604080842090915290825290205462ffffff1681565b6101bb6101b63660046108e3565b610365565b005b6101186101cb366004610968565b6103fe565b6005546101e3906001600160a01b031681565b6040516101259190610a07565b6005546001600160a01b03166101e3565b6101bb61020f366004610a15565b6104dc565b6101bb610222366004610a37565b610574565b6101bb6102353660046108e3565b610628565b6101bb6106ab565b6000546001600160a01b03166101e3565b61011861026136600461086f565b60036020526000908152604090205462ffffff1681565b6101bb610286366004610816565b6106bf565b6101bb610299366004610816565b610723565b6001600160a01b03811660009081526004602052604081205462ffffff169081900361034a5760036000836001600160a01b031663b1dd61b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032a9190610a92565b61ffff16815260208101919091526040016000205462ffffff1692915050565b62ffffff8181161461035c578061035f565b60005b92915050565b61036d61075d565b620186a062ffffff8216111561039e5760405162461bcd60e51b815260040161039590610ad8565b60405180910390fd5b61ffff821660008181526003602052604090819020805462ffffff191662ffffff8516179055517f61872494e8d71fce11c9bbe3dccd1397924c2286652fd1df919466e097a91c29906103f290849061084c565b60405180910390a25050565b6001600160a01b03808516600090815260026020908152604080832093871683529290529081205462ffffff16908190036104ba5760016000886001600160a01b031663b1dd61b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104999190610a92565b61ffff16815260208101919091526040016000205462ffffff1690506104d2565b62ffffff818116146104cc57806104cf565b60005b90505b9695505050505050565b6104e461075d565b62ffffff81811614806104ff5750620186a062ffffff821611155b61051b5760405162461bcd60e51b815260040161039590610ad8565b6001600160a01b03821660008181526004602052604090819020805462ffffff191662ffffff8516179055517fbe5efbf26461d15e902f8139b0c620e154419b084f850bfd44a5f47de8b4e936906103f290849061084c565b61057c61075d565b62ffffff8181161480610596575061271062ffffff821611155b6105b25760405162461bcd60e51b815260040161039590610ad8565b6001600160a01b0383811660008181526002602090815260408083209487168084529490915290819020805462ffffff191662ffffff8616179055517faea7118d3afc16a09b2f7431f1541737392de863febea6ad2a5688da86fb91f09061061b90859061084c565b60405180910390a3505050565b61063061075d565b61271062ffffff821611156106575760405162461bcd60e51b815260040161039590610ad8565b61ffff821660008181526001602052604090819020805462ffffff191662ffffff8516179055517f3720b8426e46454f51262d464ce706a163ff74ddb8fe1cc7793e246be2cfdd97906103f290849061084c565b6106b361075d565b6106bd6000610796565b565b6106c761075d565b6005546040516001600160a01b038084169216907fd9d6b85b6d670cd443496fc6d03390f739bbff47f96a8e33fb0cdd52ad26f5c290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b61072b61075d565b6001600160a01b0381166107515760405162461bcd60e51b815260040161039590610ae8565b61075a81610796565b50565b336107706000546001600160a01b031690565b6001600160a01b0316146106bd5760405162461bcd60e51b815260040161039590610b64565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b03821661035f565b610800816107e6565b811461075a57600080fd5b803561035f816107f7565b60006020828403121561082b5761082b600080fd5b6000610837848461080b565b949350505050565b62ffffff81165b82525050565b6020810161035f828461083f565b61ffff8116610800565b803561035f8161085a565b60006020828403121561088457610884600080fd5b60006108378484610864565b600080604083850312156108a6576108a6600080fd5b60006108b2858561080b565b92505060206108c38582860161080b565b9150509250929050565b62ffffff8116610800565b803561035f816108cd565b600080604083850312156108f9576108f9600080fd5b60006109058585610864565b92505060206108c3858286016108d8565b60008083601f84011261092b5761092b600080fd5b50813567ffffffffffffffff81111561094657610946600080fd5b60208301915083600182028301111561096157610961600080fd5b9250929050565b60008060008060008060a0878903121561098457610984600080fd5b6000610990898961080b565b96505060206109a189828a0161080b565b95505060406109b289828a0161080b565b94505060606109c389828a0161080b565b935050608087013567ffffffffffffffff8111156109e3576109e3600080fd5b6109ef89828a01610916565b92509250509295509295509295565b610846816107e6565b6020810161035f82846109fe565b60008060408385031215610a2b57610a2b600080fd5b6000610905858561080b565b600080600060608486031215610a4f57610a4f600080fd5b6000610a5b868661080b565b9350506020610a6c8682870161080b565b9250506040610a7d868287016108d8565b9150509250925092565b805161035f8161085a565b600060208284031215610aa757610aa7600080fd5b60006108378484610a87565b600b81526000602082016a496e76616c69642066656560a81b815291505b5060200190565b6020808252810161035f81610ab3565b6020808252810161035f81602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000610ad1565b6020808252810161035f81610b3256fea26469706673582212204dfa76eed177d716368dce4f9889aedb52e399635145a171bb445d14b732c80864736f6c634300080f0033000000000000000000000000a2a09f15c2ec6af1b8f9413c148334b231410bd8
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c806353561915116100975780638da5cb5b116100665780638da5cb5b14610242578063d4de871c14610253578063e74b981b14610278578063f2fde38b1461028b57600080fd5b80635356191514610201578063546a3c9e146102145780635f137b3f14610227578063715018a61461023a57600080fd5b80634190a660116100d35780634190a660146101a85780634625a94d146101bd57806346904840146101d05780634ccb20c0146101f057600080fd5b80630a992e0c1461010557806313809b831461012e5780632fa5752014610153578063389feeab14610178575b600080fd5b610118610113366004610816565b61029e565b604051610125919061084c565b60405180910390f35b61011861013c366004610816565b60046020526000908152604090205462ffffff1681565b61011861016136600461086f565b60016020526000908152604090205462ffffff1681565b610118610186366004610890565b600260209081526000928352604080842090915290825290205462ffffff1681565b6101bb6101b63660046108e3565b610365565b005b6101186101cb366004610968565b6103fe565b6005546101e3906001600160a01b031681565b6040516101259190610a07565b6005546001600160a01b03166101e3565b6101bb61020f366004610a15565b6104dc565b6101bb610222366004610a37565b610574565b6101bb6102353660046108e3565b610628565b6101bb6106ab565b6000546001600160a01b03166101e3565b61011861026136600461086f565b60036020526000908152604090205462ffffff1681565b6101bb610286366004610816565b6106bf565b6101bb610299366004610816565b610723565b6001600160a01b03811660009081526004602052604081205462ffffff169081900361034a5760036000836001600160a01b031663b1dd61b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032a9190610a92565b61ffff16815260208101919091526040016000205462ffffff1692915050565b62ffffff8181161461035c578061035f565b60005b92915050565b61036d61075d565b620186a062ffffff8216111561039e5760405162461bcd60e51b815260040161039590610ad8565b60405180910390fd5b61ffff821660008181526003602052604090819020805462ffffff191662ffffff8516179055517f61872494e8d71fce11c9bbe3dccd1397924c2286652fd1df919466e097a91c29906103f290849061084c565b60405180910390a25050565b6001600160a01b03808516600090815260026020908152604080832093871683529290529081205462ffffff16908190036104ba5760016000886001600160a01b031663b1dd61b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104999190610a92565b61ffff16815260208101919091526040016000205462ffffff1690506104d2565b62ffffff818116146104cc57806104cf565b60005b90505b9695505050505050565b6104e461075d565b62ffffff81811614806104ff5750620186a062ffffff821611155b61051b5760405162461bcd60e51b815260040161039590610ad8565b6001600160a01b03821660008181526004602052604090819020805462ffffff191662ffffff8516179055517fbe5efbf26461d15e902f8139b0c620e154419b084f850bfd44a5f47de8b4e936906103f290849061084c565b61057c61075d565b62ffffff8181161480610596575061271062ffffff821611155b6105b25760405162461bcd60e51b815260040161039590610ad8565b6001600160a01b0383811660008181526002602090815260408083209487168084529490915290819020805462ffffff191662ffffff8616179055517faea7118d3afc16a09b2f7431f1541737392de863febea6ad2a5688da86fb91f09061061b90859061084c565b60405180910390a3505050565b61063061075d565b61271062ffffff821611156106575760405162461bcd60e51b815260040161039590610ad8565b61ffff821660008181526001602052604090819020805462ffffff191662ffffff8516179055517f3720b8426e46454f51262d464ce706a163ff74ddb8fe1cc7793e246be2cfdd97906103f290849061084c565b6106b361075d565b6106bd6000610796565b565b6106c761075d565b6005546040516001600160a01b038084169216907fd9d6b85b6d670cd443496fc6d03390f739bbff47f96a8e33fb0cdd52ad26f5c290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b61072b61075d565b6001600160a01b0381166107515760405162461bcd60e51b815260040161039590610ae8565b61075a81610796565b50565b336107706000546001600160a01b031690565b6001600160a01b0316146106bd5760405162461bcd60e51b815260040161039590610b64565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b03821661035f565b610800816107e6565b811461075a57600080fd5b803561035f816107f7565b60006020828403121561082b5761082b600080fd5b6000610837848461080b565b949350505050565b62ffffff81165b82525050565b6020810161035f828461083f565b61ffff8116610800565b803561035f8161085a565b60006020828403121561088457610884600080fd5b60006108378484610864565b600080604083850312156108a6576108a6600080fd5b60006108b2858561080b565b92505060206108c38582860161080b565b9150509250929050565b62ffffff8116610800565b803561035f816108cd565b600080604083850312156108f9576108f9600080fd5b60006109058585610864565b92505060206108c3858286016108d8565b60008083601f84011261092b5761092b600080fd5b50813567ffffffffffffffff81111561094657610946600080fd5b60208301915083600182028301111561096157610961600080fd5b9250929050565b60008060008060008060a0878903121561098457610984600080fd5b6000610990898961080b565b96505060206109a189828a0161080b565b95505060406109b289828a0161080b565b94505060606109c389828a0161080b565b935050608087013567ffffffffffffffff8111156109e3576109e3600080fd5b6109ef89828a01610916565b92509250509295509295509295565b610846816107e6565b6020810161035f82846109fe565b60008060408385031215610a2b57610a2b600080fd5b6000610905858561080b565b600080600060608486031215610a4f57610a4f600080fd5b6000610a5b868661080b565b9350506020610a6c8682870161080b565b9250506040610a7d868287016108d8565b9150509250925092565b805161035f8161085a565b600060208284031215610aa757610aa7600080fd5b60006108378484610a87565b600b81526000602082016a496e76616c69642066656560a81b815291505b5060200190565b6020808252810161035f81610ab3565b6020808252810161035f81602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000610ad1565b6020808252810161035f81610b3256fea26469706673582212204dfa76eed177d716368dce4f9889aedb52e399635145a171bb445d14b732c80864736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a2a09f15c2ec6af1b8f9413c148334b231410bd8
-----Decoded View---------------
Arg [0] : _feeRecipient (address): 0xa2A09f15c2ec6aF1b8f9413c148334b231410bd8
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a2a09f15c2ec6af1b8f9413c148334b231410bd8
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
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.