Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Loading...
Loading
Contract Name:
Events
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 800 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
import {ICopyWallet, IEvents} from "./interfaces/IEvents.sol";
import {IFactory} from "./interfaces/IFactory.sol";
contract Events is IEvents {
address public immutable factory;
modifier onlyCopyWallets() {
if (!IFactory(factory).accounts(msg.sender)) {
revert OnlyCopyWallets();
}
_;
}
constructor(address _factory) {
factory = _factory;
}
function emitDeposit(
address user,
uint256 amount
) external override onlyCopyWallets {
emit Deposit({user: user, account: msg.sender, amount: amount});
}
function emitWithdraw(
address user,
uint256 amount
) external override onlyCopyWallets {
emit Withdraw({user: user, account: msg.sender, amount: amount});
}
function emitEthWithdraw(
address user,
uint256 amount
) external override onlyCopyWallets {
emit EthWithdraw({user: user, account: msg.sender, amount: amount});
}
function emitChargeExecutorFee(
address executor,
address receiver,
uint256 fee,
uint256 feeUsd
) external override onlyCopyWallets {
emit ChargeExecutorFee({
executor: executor,
receiver: receiver,
copyWallet: msg.sender,
fee: fee,
feeUsd: feeUsd
});
}
function emitChargeProtocolFee(
address receiver,
uint256 sizeDelta,
uint256 price,
uint256 feeUsd
) external override onlyCopyWallets {
emit ChargeProtocolFee({
receiver: receiver,
copyWallet: msg.sender,
sizeDelta: sizeDelta,
price: price,
feeUsd: feeUsd
});
}
function emitCreateGelatoTask(
uint256 taskId,
bytes32 gelatoTaskId,
ICopyWallet.TaskCommand command,
address source,
uint256 market,
int256 collateralDelta,
int256 sizeDelta,
uint256 triggerPrice,
uint256 acceptablePrice,
address referrer
) external override onlyCopyWallets {
emit CreateGelatoTask({
copyWallet: msg.sender,
taskId: taskId,
gelatoTaskId: gelatoTaskId,
command: command,
source: source,
market: market,
collateralDelta: collateralDelta,
sizeDelta: sizeDelta,
triggerPrice: triggerPrice,
acceptablePrice: acceptablePrice,
referrer: referrer
});
}
function emitUpdateGelatoTask(
uint256 taskId,
bytes32 gelatoTaskId,
int256 collateralDelta,
int256 sizeDelta,
uint256 triggerPrice,
uint256 acceptablePrice
) external override onlyCopyWallets {
emit UpdateGelatoTask({
copyWallet: msg.sender,
taskId: taskId,
gelatoTaskId: gelatoTaskId,
collateralDelta: collateralDelta,
sizeDelta: sizeDelta,
triggerPrice: triggerPrice,
acceptablePrice: acceptablePrice
});
}
function emitCancelGelatoTask(
uint256 taskId,
bytes32 gelatoTaskId,
bytes32 reason
) external override onlyCopyWallets {
emit CancelGelatoTask({
copyWallet: msg.sender,
taskId: taskId,
gelatoTaskId: gelatoTaskId,
reason: reason
});
}
function emitGelatoTaskRunned(
uint256 taskId,
bytes32 gelatoTaskId,
uint256 fillPrice,
uint256 fee
) external override onlyCopyWallets {
emit GelatoTaskRunned({
account: msg.sender,
taskId: taskId,
gelatoTaskId: gelatoTaskId,
fillPrice: fillPrice,
fee: fee
});
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
import {ICopyWallet} from "./ICopyWallet.sol";
interface IEvents {
error OnlyCopyWallets();
function factory() external view returns (address);
function emitDeposit(address user, uint256 amount) external;
event Deposit(
address indexed user,
address indexed account,
uint256 amount
);
function emitWithdraw(address user, uint256 amount) external;
event Withdraw(
address indexed user,
address indexed account,
uint256 amount
);
function emitEthWithdraw(address user, uint256 amount) external;
event EthWithdraw(
address indexed user,
address indexed account,
uint256 amount
);
function emitChargeExecutorFee(
address executor,
address receiver,
uint256 fee,
uint256 feeUsd
) external;
event ChargeExecutorFee(
address indexed executor,
address indexed receiver,
address indexed copyWallet,
uint256 fee,
uint256 feeUsd
);
function emitChargeProtocolFee(
address receiver,
uint256 sizeDelta,
uint256 price,
uint256 feeUsd
) external;
event ChargeProtocolFee(
address indexed receiver,
address indexed copyWallet,
uint256 sizeDelta,
uint256 price,
uint256 feeUsd
);
function emitCreateGelatoTask(
uint256 taskId,
bytes32 gelatoTaskId,
ICopyWallet.TaskCommand command,
address source,
uint256 market,
int256 collateralDelta,
int256 sizeDelta,
uint256 triggerPrice,
uint256 acceptablePrice,
address referrer
) external;
event CreateGelatoTask(
address indexed copyWallet,
uint256 indexed taskId,
bytes32 indexed gelatoTaskId,
ICopyWallet.TaskCommand command,
address source,
uint256 market,
int256 collateralDelta,
int256 sizeDelta,
uint256 triggerPrice,
uint256 acceptablePrice,
address referrer
);
function emitUpdateGelatoTask(
uint256 taskId,
bytes32 gelatoTaskId,
int256 collateralDelta,
int256 sizeDelta,
uint256 triggerPrice,
uint256 acceptablePrice
) external;
event UpdateGelatoTask(
address indexed copyWallet,
uint256 indexed taskId,
bytes32 indexed gelatoTaskId,
int256 collateralDelta,
int256 sizeDelta,
uint256 triggerPrice,
uint256 acceptablePrice
);
function emitCancelGelatoTask(
uint256 taskId,
bytes32 gelatoTaskId,
bytes32 reason
) external;
event CancelGelatoTask(
address indexed copyWallet,
uint256 indexed taskId,
bytes32 indexed gelatoTaskId,
bytes32 reason
);
function emitGelatoTaskRunned(
uint256 taskId,
bytes32 gelatoTaskId,
uint256 fillPrice,
uint256 fee
) external;
event GelatoTaskRunned(
address indexed account,
uint256 indexed taskId,
bytes32 indexed gelatoTaskId,
uint256 fillPrice,
uint256 fee
);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
interface IFactory {
event NewCopyWallet(
address indexed creator,
address indexed account,
bytes32 version
);
event CopyWalletImplementationUpgraded(address implementation);
error FailedToInitCopyWallet(bytes data);
error CopyWalletFailedToFetchVersion(bytes data);
error CannotUpgrade();
error CopyWalletDoesNotExist();
function canUpgrade() external view returns (bool);
function implementation() external view returns (address);
function accounts(address _account) external view returns (bool);
function getCopyWalletOwner(
address _account
) external view returns (address);
function getCopyWalletsOwnedBy(
address _owner
) external view returns (address[] memory);
function updateCopyWalletOwnership(
address _newOwner,
address _oldOwner
) external;
function newCopyWallet(
address initialExecutor
) external returns (address payable accountAddress);
/// @dev this *will* impact all existing accounts
/// @dev future accounts will also point to this new implementation (until
/// upgradeCopyWalletImplementation() is called again with a newer implementation)
/// @dev *DANGER* this function does not check the new implementation for validity,
/// thus, a bad upgrade could result in severe consequences.
function upgradeCopyWalletImplementation(address _implementation) external;
/// @dev cannot be undone
function removeUpgradability() external;
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
interface ICopyWallet {
enum Command {
OWNER_MODIFY_FUND, //0
OWNER_WITHDRAW_ETH, //1
OWNER_WITHDRAW_TOKEN, //2
PERP_CREATE_ACCOUNT, //3
PERP_MODIFY_COLLATERAL, //4
PERP_PLACE_ORDER, //5
PERP_CLOSE_ORDER, //6
PERP_CANCEL_ORDER, //7
PERP_WITHDRAW_ALL_MARGIN, //8
GELATO_CREATE_TASK, //9
GELATO_UPDATE_TASK, //10
GELETO_CANCEL_TASK //11
}
enum TaskCommand {
STOP_ORDER, //0
LIMIT_ORDER //1
}
struct CopyWalletConstructorParams {
address factory;
address events;
address configs;
address usdAsset;
address automate;
address taskCreator;
}
struct Position {
address source;
uint256 lastSize;
uint256 lastSizeDelta;
uint256 lastPrice;
uint256 lastFees;
}
struct Task {
bytes32 gelatoTaskId;
TaskCommand command;
address source;
uint256 market;
int256 collateralDelta;
int256 sizeDelta;
uint256 triggerPrice;
uint256 acceptablePrice;
address referrer;
}
error LengthMismatch();
error InvalidCommandType(uint256 commandType);
error ZeroSizeDelta();
error InsufficientAvailableFund(uint256 available, uint256 required);
error EthWithdrawalFailed();
error NoOrderFound();
error NoTaskFound();
error CannotExecuteTask(uint256 taskId, address executor);
function VERSION() external view returns (bytes32);
function lockedFund() external view returns (uint256);
function lockedFundD18() external view returns (uint256);
function executorUsdFee(uint256 _fee) external view returns (uint256);
function availableFund() external view returns (uint256);
function availableFundD18() external view returns (uint256);
function checker(
uint256 _taskId
) external view returns (bool canExec, bytes memory execPayload);
function getTask(uint256 _taskId) external view returns (Task memory);
function init(address _owner, address _executor) external;
function execute(
Command[] calldata _commands,
bytes[] calldata _inputs
) external payable;
function executeTask(uint256 _taskId) external;
}{
"optimizer": {
"enabled": true,
"runs": 800
},
"metadata": {
"bytecodeHash": "none"
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract ABI
API[{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"OnlyCopyWallets","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"copyWallet","type":"address"},{"indexed":true,"internalType":"uint256","name":"taskId","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"gelatoTaskId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"reason","type":"bytes32"}],"name":"CancelGelatoTask","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"copyWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeUsd","type":"uint256"}],"name":"ChargeExecutorFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"copyWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"sizeDelta","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeUsd","type":"uint256"}],"name":"ChargeProtocolFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"copyWallet","type":"address"},{"indexed":true,"internalType":"uint256","name":"taskId","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"gelatoTaskId","type":"bytes32"},{"indexed":false,"internalType":"enum ICopyWallet.TaskCommand","name":"command","type":"uint8"},{"indexed":false,"internalType":"address","name":"source","type":"address"},{"indexed":false,"internalType":"uint256","name":"market","type":"uint256"},{"indexed":false,"internalType":"int256","name":"collateralDelta","type":"int256"},{"indexed":false,"internalType":"int256","name":"sizeDelta","type":"int256"},{"indexed":false,"internalType":"uint256","name":"triggerPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"acceptablePrice","type":"uint256"},{"indexed":false,"internalType":"address","name":"referrer","type":"address"}],"name":"CreateGelatoTask","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EthWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"taskId","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"gelatoTaskId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"fillPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"GelatoTaskRunned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"copyWallet","type":"address"},{"indexed":true,"internalType":"uint256","name":"taskId","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"gelatoTaskId","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"collateralDelta","type":"int256"},{"indexed":false,"internalType":"int256","name":"sizeDelta","type":"int256"},{"indexed":false,"internalType":"uint256","name":"triggerPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"acceptablePrice","type":"uint256"}],"name":"UpdateGelatoTask","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"bytes32","name":"gelatoTaskId","type":"bytes32"},{"internalType":"bytes32","name":"reason","type":"bytes32"}],"name":"emitCancelGelatoTask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"executor","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"feeUsd","type":"uint256"}],"name":"emitChargeExecutorFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"sizeDelta","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"feeUsd","type":"uint256"}],"name":"emitChargeProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"bytes32","name":"gelatoTaskId","type":"bytes32"},{"internalType":"enum ICopyWallet.TaskCommand","name":"command","type":"uint8"},{"internalType":"address","name":"source","type":"address"},{"internalType":"uint256","name":"market","type":"uint256"},{"internalType":"int256","name":"collateralDelta","type":"int256"},{"internalType":"int256","name":"sizeDelta","type":"int256"},{"internalType":"uint256","name":"triggerPrice","type":"uint256"},{"internalType":"uint256","name":"acceptablePrice","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"}],"name":"emitCreateGelatoTask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitEthWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"bytes32","name":"gelatoTaskId","type":"bytes32"},{"internalType":"uint256","name":"fillPrice","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"emitGelatoTaskRunned","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"bytes32","name":"gelatoTaskId","type":"bytes32"},{"internalType":"int256","name":"collateralDelta","type":"int256"},{"internalType":"int256","name":"sizeDelta","type":"int256"},{"internalType":"uint256","name":"triggerPrice","type":"uint256"},{"internalType":"uint256","name":"acceptablePrice","type":"uint256"}],"name":"emitUpdateGelatoTask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60a060405234801561001057600080fd5b50604051610d73380380610d7383398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610ca96100ca60003960008181610162015281816101c8015281816102b7015281816103b00152818161049b0152818161058501528181610680015281816107620152818161084f01526109310152610ca96000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806379a4952711610076578063b014da211161005b578063b014da211461014a578063c45a01551461015d578063dc8b5094146101a057600080fd5b806379a49527146101245780639f4db6951461013757600080fd5b806325711414116100a757806325711414146100eb57806328ba84ca146100fe578063558adfb41461011157600080fd5b80630657e982146100c35780631e012c16146100d8575b600080fd5b6100d66100d1366004610a1e565b6101b3565b005b6100d66100e6366004610a66565b6102a2565b6100d66100f9366004610a9f565b61039b565b6100d661010c366004610ad1565b610486565b6100d661011f366004610afb565b610570565b6100d6610132366004610ad1565b61066b565b6100d6610145366004610b3e565b61074d565b6100d6610158366004610ad1565b61083a565b6101847f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100d66101ae366004610b80565b61091c565b604051632f2e037160e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635e5c06e290602401602060405180830381865afa158015610217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023b9190610c0f565b61025857604051631247dd1b60e21b815260040160405180910390fd5b8183336001600160a01b03167fd92e7da6aabdcd2662af1be839e328a696ee3e8fa3113b58054d7260d4ad82558460405161029591815260200190565b60405180910390a4505050565b604051632f2e037160e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635e5c06e290602401602060405180830381865afa158015610306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032a9190610c0f565b61034757604051631247dd1b60e21b815260040160405180910390fd5b604080518481526020810184905290810182905233906001600160a01b038616907fc7d95d0476b259a9aeae5d7b0c266e1a9fa1ada5906fc101efffe54aa0ec404b9060600160405180910390a350505050565b604051632f2e037160e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635e5c06e290602401602060405180830381865afa1580156103ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104239190610c0f565b61044057604051631247dd1b60e21b815260040160405180910390fd5b60408051838152602081018390528491869133917fc19a88a669aef35650456490f17dc765992bcb6a63f510226099ec8f51df2d0491015b60405180910390a450505050565b604051632f2e037160e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635e5c06e290602401602060405180830381865afa1580156104ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050e9190610c0f565b61052b57604051631247dd1b60e21b815260040160405180910390fd5b60405181815233906001600160a01b038416907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f62906020015b60405180910390a35050565b604051632f2e037160e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635e5c06e290602401602060405180830381865afa1580156105d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f89190610c0f565b61061557604051631247dd1b60e21b815260040160405180910390fd5b6040805185815260208101859052908101839052606081018290528590879033907f7e4a393b04124adf34c016848cf6716b7acfc2ebc1def7f91095b1704c3f549d9060800160405180910390a4505050505050565b604051632f2e037160e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635e5c06e290602401602060405180830381865afa1580156106cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f39190610c0f565b61071057604051631247dd1b60e21b815260040160405180910390fd5b60405181815233906001600160a01b038416907f4ffc5e5909c5e9b0ea91efeaddb04bf70a58475f0c5f62d0314e6636ddb9ae9690602001610564565b604051632f2e037160e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635e5c06e290602401602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610c0f565b6107f257604051631247dd1b60e21b815260040160405180910390fd5b604080518381526020810183905233916001600160a01b0386811692908816917f0bca2ce0f1a4a417caa2829bfdaa144d9c0add7356d4436e7d2606eac45fe2e19101610478565b604051632f2e037160e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635e5c06e290602401602060405180830381865afa15801561089e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c29190610c0f565b6108df57604051631247dd1b60e21b815260040160405180910390fd5b60405181815233906001600160a01b038416907f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb90602001610564565b604051632f2e037160e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635e5c06e290602401602060405180830381865afa158015610980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a49190610c0f565b6109c157604051631247dd1b60e21b815260040160405180910390fd5b888a336001600160a01b03167fb43286d1d3d57183f0362c8b308b0a008a305813bb629485a2028a24bf695e3e8b8b8b8b8b8b8b8b604051610a0a989796959493929190610c38565b60405180910390a450505050505050505050565b600080600060608486031215610a3357600080fd5b505081359360208301359350604090920135919050565b80356001600160a01b0381168114610a6157600080fd5b919050565b60008060008060808587031215610a7c57600080fd5b610a8585610a4a565b966020860135965060408601359560600135945092505050565b60008060008060808587031215610ab557600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215610ae457600080fd5b610aed83610a4a565b946020939093013593505050565b60008060008060008060c08789031215610b1457600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060008060808587031215610b5457600080fd5b610b5d85610a4a565b9350610b6b60208601610a4a565b93969395505050506040820135916060013590565b6000806000806000806000806000806101408b8d031215610ba057600080fd5b8a35995060208b0135985060408b013560028110610bbd57600080fd5b9750610bcb60608c01610a4a565b965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b01359150610bfe6101208c01610a4a565b90509295989b9194979a5092959850565b600060208284031215610c2157600080fd5b81518015158114610c3157600080fd5b9392505050565b610100810160028a10610c5b57634e487b7160e01b600052602160045260246000fd5b9881526001600160a01b03978816602082015260408101969096526060860194909452608085019290925260a084015260c083015290911660e0909101529056fea164736f6c6343000812000a000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100be5760003560e01c806379a4952711610076578063b014da211161005b578063b014da211461014a578063c45a01551461015d578063dc8b5094146101a057600080fd5b806379a49527146101245780639f4db6951461013757600080fd5b806325711414116100a757806325711414146100eb57806328ba84ca146100fe578063558adfb41461011157600080fd5b80630657e982146100c35780631e012c16146100d8575b600080fd5b6100d66100d1366004610a1e565b6101b3565b005b6100d66100e6366004610a66565b6102a2565b6100d66100f9366004610a9f565b61039b565b6100d661010c366004610ad1565b610486565b6100d661011f366004610afb565b610570565b6100d6610132366004610ad1565b61066b565b6100d6610145366004610b3e565b61074d565b6100d6610158366004610ad1565b61083a565b6101847f000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b81565b6040516001600160a01b03909116815260200160405180910390f35b6100d66101ae366004610b80565b61091c565b604051632f2e037160e11b81523360048201527f000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b6001600160a01b031690635e5c06e290602401602060405180830381865afa158015610217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023b9190610c0f565b61025857604051631247dd1b60e21b815260040160405180910390fd5b8183336001600160a01b03167fd92e7da6aabdcd2662af1be839e328a696ee3e8fa3113b58054d7260d4ad82558460405161029591815260200190565b60405180910390a4505050565b604051632f2e037160e11b81523360048201527f000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b6001600160a01b031690635e5c06e290602401602060405180830381865afa158015610306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032a9190610c0f565b61034757604051631247dd1b60e21b815260040160405180910390fd5b604080518481526020810184905290810182905233906001600160a01b038616907fc7d95d0476b259a9aeae5d7b0c266e1a9fa1ada5906fc101efffe54aa0ec404b9060600160405180910390a350505050565b604051632f2e037160e11b81523360048201527f000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b6001600160a01b031690635e5c06e290602401602060405180830381865afa1580156103ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104239190610c0f565b61044057604051631247dd1b60e21b815260040160405180910390fd5b60408051838152602081018390528491869133917fc19a88a669aef35650456490f17dc765992bcb6a63f510226099ec8f51df2d0491015b60405180910390a450505050565b604051632f2e037160e11b81523360048201527f000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b6001600160a01b031690635e5c06e290602401602060405180830381865afa1580156104ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050e9190610c0f565b61052b57604051631247dd1b60e21b815260040160405180910390fd5b60405181815233906001600160a01b038416907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f62906020015b60405180910390a35050565b604051632f2e037160e11b81523360048201527f000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b6001600160a01b031690635e5c06e290602401602060405180830381865afa1580156105d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f89190610c0f565b61061557604051631247dd1b60e21b815260040160405180910390fd5b6040805185815260208101859052908101839052606081018290528590879033907f7e4a393b04124adf34c016848cf6716b7acfc2ebc1def7f91095b1704c3f549d9060800160405180910390a4505050505050565b604051632f2e037160e11b81523360048201527f000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b6001600160a01b031690635e5c06e290602401602060405180830381865afa1580156106cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f39190610c0f565b61071057604051631247dd1b60e21b815260040160405180910390fd5b60405181815233906001600160a01b038416907f4ffc5e5909c5e9b0ea91efeaddb04bf70a58475f0c5f62d0314e6636ddb9ae9690602001610564565b604051632f2e037160e11b81523360048201527f000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b6001600160a01b031690635e5c06e290602401602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610c0f565b6107f257604051631247dd1b60e21b815260040160405180910390fd5b604080518381526020810183905233916001600160a01b0386811692908816917f0bca2ce0f1a4a417caa2829bfdaa144d9c0add7356d4436e7d2606eac45fe2e19101610478565b604051632f2e037160e11b81523360048201527f000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b6001600160a01b031690635e5c06e290602401602060405180830381865afa15801561089e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c29190610c0f565b6108df57604051631247dd1b60e21b815260040160405180910390fd5b60405181815233906001600160a01b038416907f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb90602001610564565b604051632f2e037160e11b81523360048201527f000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b6001600160a01b031690635e5c06e290602401602060405180830381865afa158015610980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a49190610c0f565b6109c157604051631247dd1b60e21b815260040160405180910390fd5b888a336001600160a01b03167fb43286d1d3d57183f0362c8b308b0a008a305813bb629485a2028a24bf695e3e8b8b8b8b8b8b8b8b604051610a0a989796959493929190610c38565b60405180910390a450505050505050505050565b600080600060608486031215610a3357600080fd5b505081359360208301359350604090920135919050565b80356001600160a01b0381168114610a6157600080fd5b919050565b60008060008060808587031215610a7c57600080fd5b610a8585610a4a565b966020860135965060408601359560600135945092505050565b60008060008060808587031215610ab557600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215610ae457600080fd5b610aed83610a4a565b946020939093013593505050565b60008060008060008060c08789031215610b1457600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060008060808587031215610b5457600080fd5b610b5d85610a4a565b9350610b6b60208601610a4a565b93969395505050506040820135916060013590565b6000806000806000806000806000806101408b8d031215610ba057600080fd5b8a35995060208b0135985060408b013560028110610bbd57600080fd5b9750610bcb60608c01610a4a565b965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b01359150610bfe6101208c01610a4a565b90509295989b9194979a5092959850565b600060208284031215610c2157600080fd5b81518015158114610c3157600080fd5b9392505050565b610100810160028a10610c5b57634e487b7160e01b600052602160045260246000fd5b9881526001600160a01b03978816602082015260408101969096526060860194909452608085019290925260a084015260c083015290911660e0909101529056fea164736f6c6343000812000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b
-----Decoded View---------------
Arg [0] : _factory (address): 0x329b3599e51B992879349C0388D29a5B06861B0B
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000329b3599e51b992879349c0388d29a5b06861b0b
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.