Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save OnahProsperity/84a74bf4d5f08186140027b98d1a8a56 to your computer and use it in GitHub Desktop.
Save OnahProsperity/84a74bf4d5f08186140027b98d1a8a56 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.6.12+commit.27d51765.js&optimize=false&runs=200&gist=
/** This example code is designed to quickly deploy an example contract using Remix.
* If you have never used Remix, try our example walkthrough: https://docs.chain.link/docs/example-walkthrough
* You will need testnet ETH and LINK.
* - Kovan ETH faucet: https://faucet.kovan.network/
* - Kovan LINK faucet: https://kovan.chain.link/
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
// import "https://raw.githubusercontent.com/smartcontractkit/chainlink/develop/evm-contracts/src/v0.6/ChainlinkClient.sol";
import "https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/ChainlinkClient.sol";
interface IERC20 {
function balanceOf(address owner) external view returns (uint);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
interface ISmartSwapRouter02 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
contract AlarmClockSample is ChainlinkClient, Context {
IERC20 token;
ISmartSwapRouter02 smartSwap;
bool public alarmDone;
uint256 public number;
address owner;
address _reciver;
address private oracle;
bytes32 private jobId;
uint256 private fee;
struct userData {
uint amountIn;
uint amountOutMin;
address[] path;
uint expectedTime;
address to;
}
mapping(address => userData) public Data;
mapping(uint => mapping(address => userData)) getUserData;
/**
* Network: Kovan
* Oracle: Chainlink - 0xAA1DC356dc4B18f30C347798FD5379F3D77ABC5b
* Job ID: Chainlink - 982105d690504c5d9ce374d040c08654
* Fee: 0.1 LINK
*/
constructor() public {
smartSwap = ISmartSwapRouter02(0x00749e00Af4359Df5e8C156aF6dfbDf30dD53F44);
/*
setPublicChainlinkToken();
oracle = 0xF405B99ACa8578B9eb989ee2b69D518aaDb90c1F;
jobId = "a13ad0518c9d4ffdbdbd5bf745aefe02";
*/
setChainlinkToken(0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06);
oracle = 0x46cC5EbBe7DA04b45C0e40c061eD2beD20ca7755;
jobId = "842e5f3cbcd34f76bf416d92b47ed416";
fee = 0.1 * 10 ** 18; // 0.1 LINK
number = 5;
alarmDone = false;
owner = msg.sender;
token = IERC20(0x9f0227A21987c1fFab1785BA3eBa60578eC1501B);
_reciver = 0xC972e9F6dA0C31cD50957F3244a9F822551e0616;
}
/**
* Create a Chainlink request to start an alarm and after
* the time in seconds is up, return throught the fulfillAlarm
* function
*/
function requestAlarmClock(uint256 durationInSeconds) public returns (bytes32 requestId)
{
Chainlink.Request memory request = buildChainlinkRequest(jobId, address(this), this.fulfillAlarm.selector);
// This will return in 90 seconds
request.addUint("until", block.timestamp + durationInSeconds);
return sendChainlinkRequestTo(oracle, request, fee);
}
function setPeriodToswapETHForTokens(uint256 _amountIn, uint _timeOf) payable external returns (bytes32 requestId){
userData storage _userData = Data[_msgSender()];
address[] memory path = new address[](2);
path[0] = smartSwap.WETH();
path[1] = address(token);
_userData.path = [path[0], path[1]];
_userData.amountIn = _amountIn;
_userData.expectedTime = block.timestamp + (_timeOf);
_userData.to = _msgSender();
Chainlink.Request memory request = buildChainlinkRequest(jobId, address(this), this.fulfillAlarm.selector);
// This will return in 90 seconds
request.addUint("until", block.timestamp + _timeOf);
return sendChainlinkRequestTo(oracle, request, fee);
// token.transferFrom(_msgSender(), address(this), eventsCharges);
}
function fulfillAlarm(bytes32 _requestId, uint256 _volume) public recordChainlinkFulfillment(_requestId) {
userData storage userCall = Data[0x2289Bc372bc6a46DD3eBC070FC5B7b7A49597A4E];
smartSwap.swapExactETHForTokens{value: userCall.amountIn}(
1,
userCall.path,
address(userCall.to),
block.timestamp + 360
);
}
function withdrawETH() public {
payable(_msgSender()).transfer(address(this).balance);
}
function withdrawLink() external {
LinkTokenInterface linkToken = LinkTokenInterface(chainlinkTokenAddress());
require(linkToken.transfer(msg.sender, linkToken.balanceOf(address(this))), "Unable to transfer");
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052600160045534801561001557600080fd5b5072749e00af4359df5e8c156af6dfbdf30dd53f44600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061008d7384b9b910527ad5c03a9ca831909e21e236ea7b0661022b60201b60201c565b7346cc5ebbe7da04b45c0e40c061ed2bed20ca7755600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f3834326535663363626364333466373662663431366439326234376564343136600c8190555067016345785d8a0000600d8190555060056008819055506000600760146101000a81548160ff02191690831515021790555033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739f0227a21987c1ffab1785ba3eba60578ec1501b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c972e9f6da0c31cd50957f3244a9f822551e0616600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061026f565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117c28061027e6000396000f3fe60806040526004361061007b5760003560e01c80638dc654a21161004e5780638dc654a214610169578063ab73c39114610180578063ca8ca80a14610210578063e086e5ec1461025f5761007b565b806301e13b511461008057806311503e08146100c55780636d97c828146101115780638381f58a1461013e575b600080fd5b34801561008c57600080fd5b506100c3600480360360408110156100a357600080fd5b810190808035906020019092919080359060200190929190505050610276565b005b6100fb600480360360408110156100db57600080fd5b81019080803590602001909291908035906020019092919050505061060c565b6040518082815260200191505060405180910390f35b34801561011d57600080fd5b506101266109a1565b60405180821515815260200191505060405180910390f35b34801561014a57600080fd5b506101536109b4565b6040518082815260200191505060405180910390f35b34801561017557600080fd5b5061017e6109ba565b005b34801561018c57600080fd5b506101cf600480360360208110156101a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b88565b604051808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34801561021c57600080fd5b506102496004803603602081101561023357600080fd5b8101908080359060200190929190505050610bd8565b6040518082815260200191505060405180910390f35b34801561026b57600080fd5b50610274610c7b565b005b816005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461032e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806117656028913960400191505060405180910390fd5b6005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055807f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a60405160405180910390a26000600e6000732289bc372bc6a46dd3ebc070fc5b7b7a49597a4e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab582600001546001846002018560040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661016842016040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818154815260200191508054801561050d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116104c3575b5050955050505050506000604051808303818588803b15801561052f57600080fd5b505af1158015610543573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250602081101561056e57600080fd5b810190808051604051939291908464010000000082111561058e57600080fd5b838201915060208201858111156105a457600080fd5b82518660208202830111640100000000821117156105c157600080fd5b8083526020830192505050908051906020019060200280838360005b838110156105f85780820151818401526020810190506105dd565b505050509050016040525050505050505050565b600080600e600061061b610ccb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506060600267ffffffffffffffff8111801561067157600080fd5b506040519080825280602002602001820160405280156106a05781602001602082028036833780820191505090505b509050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561070b57600080fd5b505afa15801561071f573d6000803e3d6000fd5b505050506040513d602081101561073557600080fd5b81019080805190602001909291905050508160008151811061075357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106107bd57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060405180604001604052808260008151811061080f57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018260018151811061085557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508260020190600261089e9291906115f5565b5084826000018190555083420182600301819055506108bb610ccb565b8260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061090561167f565b610919600c54306301e13b5160e01b610cd3565b90506109676040518060400160405280600581526020017f756e74696c00000000000000000000000000000000000000000000000000000081525086420183610d049092919063ffffffff16565b610996600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600d54610d37565b935050505092915050565b600760149054906101000a900460ff1681565b60085481565b60006109c4610fc0565b90508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a4a57600080fd5b505afa158015610a5e573d6000803e3d6000fd5b505050506040513d6020811015610a7457600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ad857600080fd5b505af1158015610aec573d6000803e3d6000fd5b505050506040513d6020811015610b0257600080fd5b8101908080519060200190929190505050610b85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e61626c6520746f207472616e73666572000000000000000000000000000081525060200191505060405180910390fd5b50565b600e6020528060005260406000206000915090508060000154908060010154908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6000610be261167f565b610bf6600c54306301e13b5160e01b610cd3565b9050610c446040518060400160405280600581526020017f756e74696c00000000000000000000000000000000000000000000000000000081525084420183610d049092919063ffffffff16565b610c73600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600d54610d37565b915050919050565b610c83610ccb565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610cc8573d6000803e3d6000fd5b50565b600033905090565b610cdb61167f565b610ce361167f565b610cfa85858584610fea909392919063ffffffff16565b9150509392505050565b610d1b82846080015161109a90919063ffffffff16565b610d328184608001516110bf90919063ffffffff16565b505050565b600030600454604051602001808373ffffffffffffffffffffffffffffffffffffffff1660601b815260140182815260200192505050604051602081830303815290604052805190602001209050600454836060018181525050836005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550807fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af960405160405180910390a2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634000aea08584610e59876110cf565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610eca578082015181840152602081019050610eaf565b50505050905090810190601f168015610ef75780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610f1857600080fd5b505af1158015610f2c573d6000803e3d6000fd5b505050506040513d6020811015610f4257600080fd5b8101908080519060200190929190505050610fa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806117426023913960400191505060405180910390fd5b60016004600082825401925050819055509392505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ff261167f565b6110028560800151610100611250565b508385600001818152505082856020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508185604001907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050849050949350505050565b6110a782600383516112a4565b6110ba81836113e990919063ffffffff16565b505050565b6110cb826000836112a4565b5050565b6060634042994660e01b60008084600001518560200151866040015187606001516001896080015160000151604051602401808973ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff168152602001857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156111b3578082015181840152602081019050611198565b50505050905090810190601f1680156111e05780820380516001836020036101000a031916815260200191505b509950505050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050919050565b6112586116ec565b60006020838161126457fe5b061461127d576020828161127457fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b601781116112d1576112cb8160058460ff16901b60ff16178461140b90919063ffffffff16565b506113e4565b60ff8111611313576112f6601860058460ff16901b178461140b90919063ffffffff16565b5061130d8160018561142b9092919063ffffffff16565b506113e3565b61ffff811161135657611339601960058460ff16901b178461140b90919063ffffffff16565b506113508160028561142b9092919063ffffffff16565b506113e2565b63ffffffff811161139b5761137e601a60058460ff16901b178461140b90919063ffffffff16565b506113958160048561142b9092919063ffffffff16565b506113e1565b67ffffffffffffffff81116113e0576113c7601b60058460ff16901b178461140b90919063ffffffff16565b506113de8160088561142b9092919063ffffffff16565b505b5b5b5b5b505050565b6113f16116ec565b6114038384600001515184855161144d565b905092915050565b6114136116ec565b6114238384600001515184611506565b905092915050565b6114336116ec565b611444848560000151518585611554565b90509392505050565b6114556116ec565b825182111561146357600080fd5b8460200151828501111561148e5761148d85600261148788602001518887016115b5565b026115d1565b5b6000808651805187602083010193508088870111156114ad5787860182525b60208701925050505b602084106114d957805182526020820191506020810190506020840393506114b6565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b61150e6116ec565b8360200151831061152b5761152a8460028660200151026115d1565b5b8351805160208583010184815381861415611547576001820183525b5050508390509392505050565b61155c6116ec565b8460200151848301111561157a57611579856002868501026115d1565b5b60006001836101000a03905085518386820101858319825116178152815185880111156115a75784870182525b505085915050949350505050565b6000818311156115c7578290506115cb565b8190505b92915050565b6060826000015190506115e48383611250565b506115ef83826113e9565b50505050565b82805482825590600052602060002090810192821561166e579160200282015b8281111561166d5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611615565b5b50905061167b9190611706565b5090565b6040518060a0016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001600081526020016116e66116ec565b81525090565b604051806040016040528060608152602001600081525090565b5b8082111561173d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611707565b509056fe756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374a2646970667358221220d5e540adb8261d64e28abbde9d31cee513b8b805d83d93e71db9d3eb3386169a64736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH19 0x749E00AF4359DF5E8C156AF6DFBDF30DD53F44 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x8D PUSH20 0x84B9B910527AD5C03A9CA831909E21E236EA7B06 PUSH2 0x22B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0x46CC5EBBE7DA04B45C0E40C061ED2BED20CA7755 PUSH1 0xB PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x3834326535663363626364333466373662663431366439326234376564343136 PUSH1 0xC DUP2 SWAP1 SSTORE POP PUSH8 0x16345785D8A0000 PUSH1 0xD DUP2 SWAP1 SSTORE POP PUSH1 0x5 PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x7 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP CALLER PUSH1 0x9 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0x9F0227A21987C1FFAB1785BA3EBA60578EC1501B PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0xC972E9F6DA0C31CD50957F3244A9F822551E0616 PUSH1 0xA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x26F JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x17C2 DUP1 PUSH2 0x27E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DC654A2 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0xAB73C391 EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0xCA8CA80A EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xE086E5EC EQ PUSH2 0x25F JUMPI PUSH2 0x7B JUMP JUMPDEST DUP1 PUSH4 0x1E13B51 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x11503E08 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x6D97C828 EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x8381F58A EQ PUSH2 0x13E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x276 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x60C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x126 PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH2 0x9B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17E PUSH2 0x9BA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xB88 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xBD8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x274 PUSH2 0xC7B JUMP JUMPDEST STOP JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x32E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1765 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE DUP1 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH1 0xE PUSH1 0x0 PUSH20 0x2289BC372BC6A46DD3EBC070FC5B7B7A49597A4E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x7FF36AB5 DUP3 PUSH1 0x0 ADD SLOAD PUSH1 0x1 DUP5 PUSH1 0x2 ADD DUP6 PUSH1 0x4 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x168 TIMESTAMP ADD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 SLOAD DUP1 ISZERO PUSH2 0x50D JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x4C3 JUMPI JUMPDEST POP POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x543 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x58E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x5A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x5C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP POP POP SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5F8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5DD JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xE PUSH1 0x0 PUSH2 0x61B PUSH2 0xCCB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x60 PUSH1 0x2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x6A0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x70B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x71F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x753 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x7BD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x80F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x855 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP DUP3 PUSH1 0x2 ADD SWAP1 PUSH1 0x2 PUSH2 0x89E SWAP3 SWAP2 SWAP1 PUSH2 0x15F5 JUMP JUMPDEST POP DUP5 DUP3 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP DUP4 TIMESTAMP ADD DUP3 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x8BB PUSH2 0xCCB JUMP JUMPDEST DUP3 PUSH1 0x4 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x905 PUSH2 0x167F JUMP JUMPDEST PUSH2 0x919 PUSH1 0xC SLOAD ADDRESS PUSH4 0x1E13B51 PUSH1 0xE0 SHL PUSH2 0xCD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x967 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E74696C000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP7 TIMESTAMP ADD DUP4 PUSH2 0xD04 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x996 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0xD SLOAD PUSH2 0xD37 JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C4 PUSH2 0xFC0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA5E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xB85 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBE2 PUSH2 0x167F JUMP JUMPDEST PUSH2 0xBF6 PUSH1 0xC SLOAD ADDRESS PUSH4 0x1E13B51 PUSH1 0xE0 SHL PUSH2 0xCD3 JUMP JUMPDEST SWAP1 POP PUSH2 0xC44 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E74696C000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP5 TIMESTAMP ADD DUP4 PUSH2 0xD04 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xC73 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0xD SLOAD PUSH2 0xD37 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC83 PUSH2 0xCCB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xCDB PUSH2 0x167F JUMP JUMPDEST PUSH2 0xCE3 PUSH2 0x167F JUMP JUMPDEST PUSH2 0xCFA DUP6 DUP6 DUP6 DUP5 PUSH2 0xFEA SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xD1B DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x109A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xD32 DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x10BF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x4 SLOAD DUP4 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP DUP4 PUSH1 0x5 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4000AEA0 DUP6 DUP5 PUSH2 0xE59 DUP8 PUSH2 0x10CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xECA JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEAF JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xEF7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF2C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xF42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xFA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1742 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xFF2 PUSH2 0x167F JUMP JUMPDEST PUSH2 0x1002 DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x1250 JUMP JUMPDEST POP DUP4 DUP6 PUSH1 0x0 ADD DUP2 DUP2 MSTORE POP POP DUP3 DUP6 PUSH1 0x20 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 DUP6 PUSH1 0x40 ADD SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP POP DUP5 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x10A7 DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x12A4 JUMP JUMPDEST PUSH2 0x10BA DUP2 DUP4 PUSH2 0x13E9 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x10CB DUP3 PUSH1 0x0 DUP4 PUSH2 0x12A4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH4 0x40429946 PUSH1 0xE0 SHL PUSH1 0x0 DUP1 DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD PUSH1 0x1 DUP10 PUSH1 0x80 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11B3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1198 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x11E0 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP10 POP POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1258 PUSH2 0x16EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 DUP2 PUSH2 0x1264 JUMPI INVALID JUMPDEST MOD EQ PUSH2 0x127D JUMPI PUSH1 0x20 DUP3 DUP2 PUSH2 0x1274 JUMPI INVALID JUMPDEST MOD PUSH1 0x20 SUB DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP4 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x40 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 DUP2 MSTORE DUP3 DUP2 ADD PUSH1 0x20 ADD PUSH1 0x40 MSTORE POP DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x17 DUP2 GT PUSH2 0x12D1 JUMPI PUSH2 0x12CB DUP2 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL PUSH1 0xFF AND OR DUP5 PUSH2 0x140B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x13E4 JUMP JUMPDEST PUSH1 0xFF DUP2 GT PUSH2 0x1313 JUMPI PUSH2 0x12F6 PUSH1 0x18 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0x140B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x130D DUP2 PUSH1 0x1 DUP6 PUSH2 0x142B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x13E3 JUMP JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0x1356 JUMPI PUSH2 0x1339 PUSH1 0x19 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0x140B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x1350 DUP2 PUSH1 0x2 DUP6 PUSH2 0x142B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x13E2 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0x139B JUMPI PUSH2 0x137E PUSH1 0x1A PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0x140B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x1395 DUP2 PUSH1 0x4 DUP6 PUSH2 0x142B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x13E1 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x13E0 JUMPI PUSH2 0x13C7 PUSH1 0x1B PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0x140B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x13DE DUP2 PUSH1 0x8 DUP6 PUSH2 0x142B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x13F1 PUSH2 0x16EC JUMP JUMPDEST PUSH2 0x1403 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0x144D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1413 PUSH2 0x16EC JUMP JUMPDEST PUSH2 0x1423 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x1506 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1433 PUSH2 0x16EC JUMP JUMPDEST PUSH2 0x1444 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1554 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1455 PUSH2 0x16EC JUMP JUMPDEST DUP3 MLOAD DUP3 GT ISZERO PUSH2 0x1463 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP3 DUP6 ADD GT ISZERO PUSH2 0x148E JUMPI PUSH2 0x148D DUP6 PUSH1 0x2 PUSH2 0x1487 DUP9 PUSH1 0x20 ADD MLOAD DUP9 DUP8 ADD PUSH2 0x15B5 JUMP JUMPDEST MUL PUSH2 0x15D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0x14AD JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST PUSH1 0x20 DUP8 ADD SWAP3 POP POP POP JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0x14D9 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP6 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB SWAP1 POP DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP2 DUP2 OR DUP6 MSTORE POP POP DUP8 SWAP4 POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x150E PUSH2 0x16EC JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x152B JUMPI PUSH2 0x152A DUP5 PUSH1 0x2 DUP7 PUSH1 0x20 ADD MLOAD MUL PUSH2 0x15D1 JUMP JUMPDEST JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 DUP2 DUP7 EQ ISZERO PUSH2 0x1547 JUMPI PUSH1 0x1 DUP3 ADD DUP4 MSTORE JUMPDEST POP POP POP DUP4 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x155C PUSH2 0x16EC JUMP JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP4 ADD GT ISZERO PUSH2 0x157A JUMPI PUSH2 0x1579 DUP6 PUSH1 0x2 DUP7 DUP6 ADD MUL PUSH2 0x15D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH2 0x100 EXP SUB SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE DUP2 MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x15A7 JUMPI DUP5 DUP8 ADD DUP3 MSTORE JUMPDEST POP POP DUP6 SWAP2 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x15C7 JUMPI DUP3 SWAP1 POP PUSH2 0x15CB JUMP JUMPDEST DUP2 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0x15E4 DUP4 DUP4 PUSH2 0x1250 JUMP JUMPDEST POP PUSH2 0x15EF DUP4 DUP3 PUSH2 0x13E9 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x166E JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x166D JUMPI DUP3 MLOAD DUP3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1615 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x167B SWAP2 SWAP1 PUSH2 0x1706 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16E6 PUSH2 0x16EC JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x173D JUMPI PUSH1 0x0 DUP2 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1707 JUMP JUMPDEST POP SWAP1 JUMP INVALID PUSH22 0x6E61626C6520746F207472616E73666572416E644361 PUSH13 0x6C20746F206F7261636C65536F PUSH22 0x726365206D75737420626520746865206F7261636C65 KECCAK256 PUSH16 0x66207468652072657175657374A26469 PUSH17 0x667358221220D5E540ADB8261D64E28ABB 0xDE SWAP14 BALANCE 0xCE 0xE5 SGT 0xB8 0xB8 SDIV 0xD8 RETURNDATASIZE SWAP4 0xE7 SAR 0xB9 0xD3 0xEB CALLER DUP7 AND SWAP11 PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
"sourceMap": "5943:3767:0:-:0;;;1163:1:2;1132:32;;6712:759:0;;;;;;;;;;6783:42;6752:9;;:74;;;;;;;;;;;;;;;;;;7024:61;7042:42;7024:17;;;:61;;:::i;:::-;7104:42;7095:6;;:51;;;;;;;;;;;;;;;;;;7156:42;:5;:42;;;;7223:14;7217:3;:20;;;;7268:1;7259:6;:10;;;;7291:5;7279:9;;:17;;;;;;;;;;;;;;;;;;7323:10;7315:5;;:18;;;;;;;;;;;;;;;;;;7358:42;7343:5;;:58;;;;;;;;;;;;;;;;;;7422:42;7411:8;;:53;;;;;;;;;;;;;;;;;;5943:3767;;4834:94:2;4917:5;4891:4;;:32;;;;;;;;;;;;;;;;;;4834:94;:::o;5943:3767:0:-;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061007b5760003560e01c80638dc654a21161004e5780638dc654a214610169578063ab73c39114610180578063ca8ca80a14610210578063e086e5ec1461025f5761007b565b806301e13b511461008057806311503e08146100c55780636d97c828146101115780638381f58a1461013e575b600080fd5b34801561008c57600080fd5b506100c3600480360360408110156100a357600080fd5b810190808035906020019092919080359060200190929190505050610276565b005b6100fb600480360360408110156100db57600080fd5b81019080803590602001909291908035906020019092919050505061060c565b6040518082815260200191505060405180910390f35b34801561011d57600080fd5b506101266109a1565b60405180821515815260200191505060405180910390f35b34801561014a57600080fd5b506101536109b4565b6040518082815260200191505060405180910390f35b34801561017557600080fd5b5061017e6109ba565b005b34801561018c57600080fd5b506101cf600480360360208110156101a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b88565b604051808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34801561021c57600080fd5b506102496004803603602081101561023357600080fd5b8101908080359060200190929190505050610bd8565b6040518082815260200191505060405180910390f35b34801561026b57600080fd5b50610274610c7b565b005b816005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461032e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806117656028913960400191505060405180910390fd5b6005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055807f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a60405160405180910390a26000600e6000732289bc372bc6a46dd3ebc070fc5b7b7a49597a4e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab582600001546001846002018560040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661016842016040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818154815260200191508054801561050d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116104c3575b5050955050505050506000604051808303818588803b15801561052f57600080fd5b505af1158015610543573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250602081101561056e57600080fd5b810190808051604051939291908464010000000082111561058e57600080fd5b838201915060208201858111156105a457600080fd5b82518660208202830111640100000000821117156105c157600080fd5b8083526020830192505050908051906020019060200280838360005b838110156105f85780820151818401526020810190506105dd565b505050509050016040525050505050505050565b600080600e600061061b610ccb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506060600267ffffffffffffffff8111801561067157600080fd5b506040519080825280602002602001820160405280156106a05781602001602082028036833780820191505090505b509050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561070b57600080fd5b505afa15801561071f573d6000803e3d6000fd5b505050506040513d602081101561073557600080fd5b81019080805190602001909291905050508160008151811061075357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106107bd57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060405180604001604052808260008151811061080f57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018260018151811061085557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508260020190600261089e9291906115f5565b5084826000018190555083420182600301819055506108bb610ccb565b8260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061090561167f565b610919600c54306301e13b5160e01b610cd3565b90506109676040518060400160405280600581526020017f756e74696c00000000000000000000000000000000000000000000000000000081525086420183610d049092919063ffffffff16565b610996600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600d54610d37565b935050505092915050565b600760149054906101000a900460ff1681565b60085481565b60006109c4610fc0565b90508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a4a57600080fd5b505afa158015610a5e573d6000803e3d6000fd5b505050506040513d6020811015610a7457600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ad857600080fd5b505af1158015610aec573d6000803e3d6000fd5b505050506040513d6020811015610b0257600080fd5b8101908080519060200190929190505050610b85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e61626c6520746f207472616e73666572000000000000000000000000000081525060200191505060405180910390fd5b50565b600e6020528060005260406000206000915090508060000154908060010154908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6000610be261167f565b610bf6600c54306301e13b5160e01b610cd3565b9050610c446040518060400160405280600581526020017f756e74696c00000000000000000000000000000000000000000000000000000081525084420183610d049092919063ffffffff16565b610c73600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600d54610d37565b915050919050565b610c83610ccb565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610cc8573d6000803e3d6000fd5b50565b600033905090565b610cdb61167f565b610ce361167f565b610cfa85858584610fea909392919063ffffffff16565b9150509392505050565b610d1b82846080015161109a90919063ffffffff16565b610d328184608001516110bf90919063ffffffff16565b505050565b600030600454604051602001808373ffffffffffffffffffffffffffffffffffffffff1660601b815260140182815260200192505050604051602081830303815290604052805190602001209050600454836060018181525050836005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550807fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af960405160405180910390a2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634000aea08584610e59876110cf565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610eca578082015181840152602081019050610eaf565b50505050905090810190601f168015610ef75780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610f1857600080fd5b505af1158015610f2c573d6000803e3d6000fd5b505050506040513d6020811015610f4257600080fd5b8101908080519060200190929190505050610fa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806117426023913960400191505060405180910390fd5b60016004600082825401925050819055509392505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ff261167f565b6110028560800151610100611250565b508385600001818152505082856020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508185604001907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050849050949350505050565b6110a782600383516112a4565b6110ba81836113e990919063ffffffff16565b505050565b6110cb826000836112a4565b5050565b6060634042994660e01b60008084600001518560200151866040015187606001516001896080015160000151604051602401808973ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff168152602001857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156111b3578082015181840152602081019050611198565b50505050905090810190601f1680156111e05780820380516001836020036101000a031916815260200191505b509950505050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050919050565b6112586116ec565b60006020838161126457fe5b061461127d576020828161127457fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b601781116112d1576112cb8160058460ff16901b60ff16178461140b90919063ffffffff16565b506113e4565b60ff8111611313576112f6601860058460ff16901b178461140b90919063ffffffff16565b5061130d8160018561142b9092919063ffffffff16565b506113e3565b61ffff811161135657611339601960058460ff16901b178461140b90919063ffffffff16565b506113508160028561142b9092919063ffffffff16565b506113e2565b63ffffffff811161139b5761137e601a60058460ff16901b178461140b90919063ffffffff16565b506113958160048561142b9092919063ffffffff16565b506113e1565b67ffffffffffffffff81116113e0576113c7601b60058460ff16901b178461140b90919063ffffffff16565b506113de8160088561142b9092919063ffffffff16565b505b5b5b5b5b505050565b6113f16116ec565b6114038384600001515184855161144d565b905092915050565b6114136116ec565b6114238384600001515184611506565b905092915050565b6114336116ec565b611444848560000151518585611554565b90509392505050565b6114556116ec565b825182111561146357600080fd5b8460200151828501111561148e5761148d85600261148788602001518887016115b5565b026115d1565b5b6000808651805187602083010193508088870111156114ad5787860182525b60208701925050505b602084106114d957805182526020820191506020810190506020840393506114b6565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b61150e6116ec565b8360200151831061152b5761152a8460028660200151026115d1565b5b8351805160208583010184815381861415611547576001820183525b5050508390509392505050565b61155c6116ec565b8460200151848301111561157a57611579856002868501026115d1565b5b60006001836101000a03905085518386820101858319825116178152815185880111156115a75784870182525b505085915050949350505050565b6000818311156115c7578290506115cb565b8190505b92915050565b6060826000015190506115e48383611250565b506115ef83826113e9565b50505050565b82805482825590600052602060002090810192821561166e579160200282015b8281111561166d5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611615565b5b50905061167b9190611706565b5090565b6040518060a0016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001600081526020016116e66116ec565b81525090565b604051806040016040528060608152602001600081525090565b5b8082111561173d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611707565b509056fe756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374a2646970667358221220d5e540adb8261d64e28abbde9d31cee513b8b805d83d93e71db9d3eb3386169a64736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DC654A2 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0xAB73C391 EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0xCA8CA80A EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xE086E5EC EQ PUSH2 0x25F JUMPI PUSH2 0x7B JUMP JUMPDEST DUP1 PUSH4 0x1E13B51 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x11503E08 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x6D97C828 EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x8381F58A EQ PUSH2 0x13E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x276 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x60C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x126 PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH2 0x9B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17E PUSH2 0x9BA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xB88 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xBD8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x274 PUSH2 0xC7B JUMP JUMPDEST STOP JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x32E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1765 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE DUP1 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH1 0xE PUSH1 0x0 PUSH20 0x2289BC372BC6A46DD3EBC070FC5B7B7A49597A4E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x7FF36AB5 DUP3 PUSH1 0x0 ADD SLOAD PUSH1 0x1 DUP5 PUSH1 0x2 ADD DUP6 PUSH1 0x4 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x168 TIMESTAMP ADD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 SLOAD DUP1 ISZERO PUSH2 0x50D JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x4C3 JUMPI JUMPDEST POP POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x543 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x58E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x5A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x5C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP POP POP SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5F8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5DD JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xE PUSH1 0x0 PUSH2 0x61B PUSH2 0xCCB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x60 PUSH1 0x2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x6A0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x70B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x71F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x753 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x7BD JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x80F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x855 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP DUP3 PUSH1 0x2 ADD SWAP1 PUSH1 0x2 PUSH2 0x89E SWAP3 SWAP2 SWAP1 PUSH2 0x15F5 JUMP JUMPDEST POP DUP5 DUP3 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP DUP4 TIMESTAMP ADD DUP3 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x8BB PUSH2 0xCCB JUMP JUMPDEST DUP3 PUSH1 0x4 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x905 PUSH2 0x167F JUMP JUMPDEST PUSH2 0x919 PUSH1 0xC SLOAD ADDRESS PUSH4 0x1E13B51 PUSH1 0xE0 SHL PUSH2 0xCD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x967 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E74696C000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP7 TIMESTAMP ADD DUP4 PUSH2 0xD04 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x996 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0xD SLOAD PUSH2 0xD37 JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C4 PUSH2 0xFC0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA5E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xB85 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBE2 PUSH2 0x167F JUMP JUMPDEST PUSH2 0xBF6 PUSH1 0xC SLOAD ADDRESS PUSH4 0x1E13B51 PUSH1 0xE0 SHL PUSH2 0xCD3 JUMP JUMPDEST SWAP1 POP PUSH2 0xC44 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E74696C000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP5 TIMESTAMP ADD DUP4 PUSH2 0xD04 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xC73 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0xD SLOAD PUSH2 0xD37 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC83 PUSH2 0xCCB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xCDB PUSH2 0x167F JUMP JUMPDEST PUSH2 0xCE3 PUSH2 0x167F JUMP JUMPDEST PUSH2 0xCFA DUP6 DUP6 DUP6 DUP5 PUSH2 0xFEA SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xD1B DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x109A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xD32 DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x10BF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x4 SLOAD DUP4 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP DUP4 PUSH1 0x5 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4000AEA0 DUP6 DUP5 PUSH2 0xE59 DUP8 PUSH2 0x10CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xECA JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEAF JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xEF7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF2C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xF42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xFA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1742 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xFF2 PUSH2 0x167F JUMP JUMPDEST PUSH2 0x1002 DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x1250 JUMP JUMPDEST POP DUP4 DUP6 PUSH1 0x0 ADD DUP2 DUP2 MSTORE POP POP DUP3 DUP6 PUSH1 0x20 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 DUP6 PUSH1 0x40 ADD SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP POP DUP5 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x10A7 DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x12A4 JUMP JUMPDEST PUSH2 0x10BA DUP2 DUP4 PUSH2 0x13E9 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x10CB DUP3 PUSH1 0x0 DUP4 PUSH2 0x12A4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH4 0x40429946 PUSH1 0xE0 SHL PUSH1 0x0 DUP1 DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD PUSH1 0x1 DUP10 PUSH1 0x80 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11B3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1198 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x11E0 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP10 POP POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1258 PUSH2 0x16EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 DUP2 PUSH2 0x1264 JUMPI INVALID JUMPDEST MOD EQ PUSH2 0x127D JUMPI PUSH1 0x20 DUP3 DUP2 PUSH2 0x1274 JUMPI INVALID JUMPDEST MOD PUSH1 0x20 SUB DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP4 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x40 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 DUP2 MSTORE DUP3 DUP2 ADD PUSH1 0x20 ADD PUSH1 0x40 MSTORE POP DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x17 DUP2 GT PUSH2 0x12D1 JUMPI PUSH2 0x12CB DUP2 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL PUSH1 0xFF AND OR DUP5 PUSH2 0x140B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x13E4 JUMP JUMPDEST PUSH1 0xFF DUP2 GT PUSH2 0x1313 JUMPI PUSH2 0x12F6 PUSH1 0x18 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0x140B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x130D DUP2 PUSH1 0x1 DUP6 PUSH2 0x142B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x13E3 JUMP JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0x1356 JUMPI PUSH2 0x1339 PUSH1 0x19 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0x140B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x1350 DUP2 PUSH1 0x2 DUP6 PUSH2 0x142B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x13E2 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0x139B JUMPI PUSH2 0x137E PUSH1 0x1A PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0x140B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x1395 DUP2 PUSH1 0x4 DUP6 PUSH2 0x142B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x13E1 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x13E0 JUMPI PUSH2 0x13C7 PUSH1 0x1B PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0x140B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x13DE DUP2 PUSH1 0x8 DUP6 PUSH2 0x142B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x13F1 PUSH2 0x16EC JUMP JUMPDEST PUSH2 0x1403 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0x144D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1413 PUSH2 0x16EC JUMP JUMPDEST PUSH2 0x1423 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x1506 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1433 PUSH2 0x16EC JUMP JUMPDEST PUSH2 0x1444 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1554 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1455 PUSH2 0x16EC JUMP JUMPDEST DUP3 MLOAD DUP3 GT ISZERO PUSH2 0x1463 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP3 DUP6 ADD GT ISZERO PUSH2 0x148E JUMPI PUSH2 0x148D DUP6 PUSH1 0x2 PUSH2 0x1487 DUP9 PUSH1 0x20 ADD MLOAD DUP9 DUP8 ADD PUSH2 0x15B5 JUMP JUMPDEST MUL PUSH2 0x15D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0x14AD JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST PUSH1 0x20 DUP8 ADD SWAP3 POP POP POP JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0x14D9 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP6 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB SWAP1 POP DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP2 DUP2 OR DUP6 MSTORE POP POP DUP8 SWAP4 POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x150E PUSH2 0x16EC JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x152B JUMPI PUSH2 0x152A DUP5 PUSH1 0x2 DUP7 PUSH1 0x20 ADD MLOAD MUL PUSH2 0x15D1 JUMP JUMPDEST JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 DUP2 DUP7 EQ ISZERO PUSH2 0x1547 JUMPI PUSH1 0x1 DUP3 ADD DUP4 MSTORE JUMPDEST POP POP POP DUP4 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x155C PUSH2 0x16EC JUMP JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP4 ADD GT ISZERO PUSH2 0x157A JUMPI PUSH2 0x1579 DUP6 PUSH1 0x2 DUP7 DUP6 ADD MUL PUSH2 0x15D1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH2 0x100 EXP SUB SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE DUP2 MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x15A7 JUMPI DUP5 DUP8 ADD DUP3 MSTORE JUMPDEST POP POP DUP6 SWAP2 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x15C7 JUMPI DUP3 SWAP1 POP PUSH2 0x15CB JUMP JUMPDEST DUP2 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0x15E4 DUP4 DUP4 PUSH2 0x1250 JUMP JUMPDEST POP PUSH2 0x15EF DUP4 DUP3 PUSH2 0x13E9 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x166E JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x166D JUMPI DUP3 MLOAD DUP3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1615 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x167B SWAP2 SWAP1 PUSH2 0x1706 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16E6 PUSH2 0x16EC JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x173D JUMPI PUSH1 0x0 DUP2 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1707 JUMP JUMPDEST POP SWAP1 JUMP INVALID PUSH22 0x6E61626C6520746F207472616E73666572416E644361 PUSH13 0x6C20746F206F7261636C65536F PUSH22 0x726365206D75737420626520746865206F7261636C65 KECCAK256 PUSH16 0x66207468652072657175657374A26469 PUSH17 0x667358221220D5E540ADB8261D64E28ABB 0xDE SWAP14 BALANCE 0xCE 0xE5 SGT 0xB8 0xB8 SDIV 0xD8 RETURNDATASIZE SWAP4 0xE7 SAR 0xB9 0xD3 0xEB CALLER DUP7 AND SWAP11 PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
"sourceMap": "5943:3767:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8945:412;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8043:893;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6060:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6087;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9477:231;;;;;;;;;;;;;:::i;:::-;;6409:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7642:391;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9367:100;;;;;;;;;;;;;:::i;:::-;;8945:412;9038:10;8743:15:2;:27;8759:10;8743:27;;;;;;;;;;;;;;;;;;;;;8729:41;;:10;:41;;;8721:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8840:15;:27;8856:10;8840:27;;;;;;;;;;;;8833:34;;;;;;;;;;;8897:10;8878:30;;;;;;;;;;9060:25:0::1;9088:4;:48;9093:42;9088:48;;;;;;;;;;;;;;;9060:76;;9155:9;;;;;;;;;;;:31;;;9194:8;:17;;;9226:1;9241:8;:13;;9276:8;:11;;;;;;;;;;;;9320:3;9302:15;:21;9155:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;8914:1:2;8945:412:0::0;;;:::o;8043:893::-;8140:17;8177:26;8206:4;:18;8211:12;:10;:12::i;:::-;8206:18;;;;;;;;;;;;;;;8177:47;;8234:21;8272:1;8258:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8234:40;;8303:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8293:4;8298:1;8293:7;;;;;;;;;;;;;:26;;;;;;;;;;;8347:5;;;;;;;;;;;8329:4;8334:1;8329:7;;;;;;;;;;;;;:24;;;;;;;;;;;8372:35;;;;;;;;8390:4;8395:1;8390:7;;;;;;;;;;;;;;8372:35;;;;;;;;8399:4;8404:1;8399:7;;;;;;;;;;;;;;8372:35;;;;;;;:9;:14;;:35;;;;;;;:::i;:::-;;8438:9;8417;:18;;:30;;;;8501:7;8482:15;:27;8457:9;:22;;:52;;;;8534:12;:10;:12::i;:::-;8519:9;:12;;;:27;;;;;;;;;;;;;;;;;;8566:32;;:::i;:::-;8601:71;8623:5;;8638:4;8645:26;;;8601:21;:71::i;:::-;8566:106;;8733:51;;;;;;;;;;;;;;;;;;8776:7;8758:15;:25;8733:7;:15;;:51;;;;;:::i;:::-;8801:44;8824:6;;;;;;;;;;;8832:7;8841:3;;8801:22;:44::i;:::-;8794:51;;;;;8043:893;;;;:::o;6060:21::-;;;;;;;;;;;;;:::o;6087:::-;;;;:::o;9477:231::-;9520:28;9570:23;:21;:23::i;:::-;9520:74;;9612:9;:18;;;9631:10;9643:9;:19;;;9671:4;9643:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9612:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9604:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9477:231;:::o;6409:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7642:391::-;7712:17;7746:32;;:::i;:::-;7781:71;7803:5;;7818:4;7825:26;;;7781:21;:71::i;:::-;7746:106;;7904:61;;;;;;;;;;;;;;;;;;7947:17;7929:15;:35;7904:7;:15;;:61;;;;;:::i;:::-;7982:44;8005:6;;;;;;;;;;;8013:7;8022:3;;7982:22;:44::i;:::-;7975:51;;;7642:391;;;:::o;9367:100::-;9415:12;:10;:12::i;:::-;9407:30;;:53;9438:21;9407:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9367:100::o;926:96::-;979:7;1005:10;998:17;;926:96;:::o;1767:295:2:-;1915:24;;:::i;:::-;1947:28;;:::i;:::-;1988:69;2003:7;2012:16;2030:26;1988:3;:14;;:69;;;;;;:::i;:::-;1981:76;;;1767:295;;;;;:::o;3112:165:1:-;3212:27;3234:4;3212;:8;;;:21;;:27;;;;:::i;:::-;3245;3265:6;3245:4;:8;;;:19;;:27;;;;:::i;:::-;3112:165;;;:::o;3072:488:2:-;3196:17;3262:4;3268:12;;3245:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3235:47;;;;;;3223:59;;3301:12;;3288:4;:10;;:25;;;;;3348:7;3319:15;:26;3335:9;3319:26;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;3385:9;3366:29;;;;;;;;;;3409:4;;;;;;;;;;;:20;;;3430:7;3439:8;3449:19;3463:4;3449:13;:19::i;:::-;3409:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3401:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3531:1;3515:12;;:17;;;;;;;;;;;3072:488;;;;;:::o;5293:110::-;5361:7;5393:4;;;;;;;;;;;5378:20;;5293:110;:::o;998:365:1:-;1147:24;;:::i;:::-;1179:49;1200:4;:8;;;365:3;1179:20;:49::i;:::-;;1244:3;1234:4;:7;;:13;;;;;1276:16;1253:4;:20;;:39;;;;;;;;;;;1324:17;1298:4;:23;;:43;;;;;;;;;;;;;1354:4;1347:11;;998:365;;;;;;:::o;2793:210:8:-;2913:55;2924:3;386:1;2954:5;2948:19;2913:10;:55::i;:::-;2974:24;2991:5;2974:3;:10;;:24;;;;:::i;:::-;;2793:210;;:::o;1534:152::-;1643:38;1654:3;237:1;1675:5;1643:10;:38::i;:::-;1534:152;;:::o;7564:527:2:-;7652:12;7711:29;;;719:1;663;7961:4;:7;;;7976:4;:20;;;8004:4;:23;;;8035:4;:10;;;765:1;8073:4;:8;;;:12;;;7681:405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7674:412;;7564:527;;;:::o;982:395:7:-;1052:13;;:::i;:::-;1094:1;1088:2;1077:8;:13;;;;;;:18;1073:71;;1134:2;1123:8;:13;;;;;;1117:2;:20;1105:32;;;;1073:71;1206:8;1191:3;:12;;:23;;;;;1254:4;1248:11;1278:3;1273;1266:16;1301:1;1296:3;1289:14;1340:8;1335:3;1331:18;1327:2;1323:27;1317:4;1310:41;1229:128;1369:3;1362:10;;982:395;;;;:::o;685:670:8:-;822:2;813:5;:11;810:541;;834:44;871:5;866:1;857:5;:10;;;;856:20;;;834:3;:15;;:44;;;;:::i;:::-;;810:541;;;903:4;894:5;:13;891:460;;917:41;954:2;949:1;940:5;:10;;;;939:17;917:3;:15;;:41;;;;:::i;:::-;;966:23;980:5;987:1;966:3;:13;;:23;;;;;:::i;:::-;;891:460;;;1014:6;1005:5;:15;1002:349;;1030:41;1067:2;1062:1;1053:5;:10;;;;1052:17;1030:3;:15;;:41;;;;:::i;:::-;;1079:23;1093:5;1100:1;1079:3;:13;;:23;;;;;:::i;:::-;;1002:349;;;1127:10;1118:5;:19;1115:236;;1147:41;1184:2;1179:1;1170:5;:10;;;;1169:17;1147:3;:15;;:41;;;;:::i;:::-;;1196:23;1210:5;1217:1;1196:3;:13;;:23;;;;;:::i;:::-;;1115:236;;;1244:18;1235:5;:27;1232:119;;1272:41;1309:2;1304:1;1295:5;:10;;;;1294:17;1272:3;:15;;:41;;;;:::i;:::-;;1321:23;1335:5;1342:1;1321:3;:13;;:23;;;;;:::i;:::-;;1232:119;1115:236;1002:349;891:460;810:541;685:670;;;:::o;4536:155:7:-;4613:13;;:::i;:::-;4641:45;4647:3;4652;:7;;;:14;4668:4;4674;:11;4641:5;:45::i;:::-;4634:52;;4536:155;;;;:::o;5851:144::-;5925:13;;:::i;:::-;5953:37;5964:3;5969;:7;;;:14;5985:4;5953:10;:37::i;:::-;5946:44;;5851:144;;;;:::o;9543:154::-;9624:13;;:::i;:::-;9652:40;9661:3;9666;:7;;;:14;9682:4;9688:3;9652:8;:40::i;:::-;9645:47;;9543:154;;;;;:::o;2691:1140::-;2786:13;;:::i;:::-;2822:4;:11;2815:3;:18;;2807:27;;;;;;2857:3;:12;;;2851:3;2845;:9;:24;2841:90;;;2879:45;2886:3;2922:1;2891:28;2895:3;:12;;;2915:3;2909;:9;2891:3;:28::i;:::-;:32;2879:6;:45::i;:::-;2841:90;2937:9;2952:8;3046:3;3040:10;3117:6;3111:13;3233:3;3228:2;3220:6;3216:15;3212:25;3204:33;;3317:6;3311:3;3306;3302:13;3299:25;3296:2;;;3359:3;3354;3350:13;3342:6;3335:29;3296:2;3396;3390:4;3386:13;3379:20;;2975:430;;3457:129;3471:2;3464:3;:9;3457:129;;3532:3;3526:10;3520:4;3513:24;3560:2;3552:10;;;;3577:2;3570:9;;;;3482:2;3475:9;;;;3457:129;;;3620:9;3652:1;3645:3;3640:2;:8;3632:3;:17;:21;3620:33;;3711:4;3707:9;3701:3;3695:10;3691:26;3757:4;3750;3744:11;3740:22;3795:7;3785:8;3782:21;3776:4;3769:35;3668:142;;3823:3;3816:10;;;;;2691:1140;;;;;;:::o;4985:619::-;5068:13;;:::i;:::-;5100:3;:12;;;5093:3;:19;5089:69;;5122:29;5129:3;5149:1;5134:3;:12;;;:16;5122:6;:29::i;:::-;5089:69;5244:3;5238:10;5315:6;5309:13;5427:2;5421:3;5413:6;5409:16;5405:25;5451:4;5445;5437:19;5522:6;5517:3;5514:15;5511:2;;;5567:1;5559:6;5555:14;5547:6;5540:30;5511:2;5173:411;;;5596:3;5589:10;;4985:619;;;;;:::o;8650:642::-;8739:13;;:::i;:::-;8776:3;:12;;;8770:3;8764;:9;:24;8760:73;;;8798:28;8805:3;8824:1;8817:3;8811;:9;8810:15;8798:6;:28::i;:::-;8760:73;8839:9;8864:1;8858:3;8851;:10;:14;8839:26;;8951:3;8945:10;9066:3;9060;9052:6;9048:16;9044:26;9122:4;9114;9110:9;9103:4;9097:11;9093:27;9090:37;9084:4;9077:51;9210:6;9204:13;9198:3;9193;9189:13;9186:32;9183:2;;;9253:3;9248;9244:13;9236:6;9229:29;9183:2;8880:392;;9284:3;9277:10;;;8650:642;;;;;;:::o;1929:114::-;1979:4;1999:1;1995;:5;1991:34;;;2017:1;2010:8;;;;1991:34;2037:1;2030:8;;1929:114;;;;;:::o;1772:153::-;1841:19;1863:3;:7;;;1841:29;;1876:19;1881:3;1886:8;1876:4;:19::i;:::-;;1901;1908:3;1913:6;1901;:19::i;:::-;;1772:153;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "1216400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"Data(address)": "3743",
"alarmDone()": "1142",
"fulfillAlarm(bytes32,uint256)": "infinite",
"number()": "1072",
"requestAlarmClock(uint256)": "infinite",
"setPeriodToswapETHForTokens(uint256,uint256)": "infinite",
"withdrawETH()": "infinite",
"withdrawLink()": "infinite"
}
},
"methodIdentifiers": {
"Data(address)": "ab73c391",
"alarmDone()": "6d97c828",
"fulfillAlarm(bytes32,uint256)": "01e13b51",
"number()": "8381f58a",
"requestAlarmClock(uint256)": "ca8ca80a",
"setPeriodToswapETHForTokens(uint256,uint256)": "11503e08",
"withdrawETH()": "e086e5ec",
"withdrawLink()": "8dc654a2"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkCancelled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkFulfilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkRequested",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "Data",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expectedTime",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "alarmDone",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_volume",
"type": "uint256"
}
],
"name": "fulfillAlarm",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "number",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "durationInSeconds",
"type": "uint256"
}
],
"name": "requestAlarmClock",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_timeOf",
"type": "uint256"
}
],
"name": "setPeriodToswapETHForTokens",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkCancelled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkFulfilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkRequested",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "Data",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expectedTime",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "alarmDone",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_volume",
"type": "uint256"
}
],
"name": "fulfillAlarm",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "number",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "durationInSeconds",
"type": "uint256"
}
],
"name": "requestAlarmClock",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_timeOf",
"type": "uint256"
}
],
"name": "setPeriodToswapETHForTokens",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"constructor": "Network: Kovan Oracle: Chainlink - 0xAA1DC356dc4B18f30C347798FD5379F3D77ABC5b Job ID: Chainlink - 982105d690504c5d9ce374d040c08654 Fee: 0.1 LINK",
"requestAlarmClock(uint256)": {
"notice": "Create a Chainlink request to start an alarm and after the time in seconds is up, return throught the fulfillAlarm function"
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-e71aab73726c5a2f99ee00c1a70cfef8/AlarmClockSample.sol": "AlarmClockSample"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"gist-e71aab73726c5a2f99ee00c1a70cfef8/AlarmClockSample.sol": {
"keccak256": "0x7117df9c260edabce0bc665b05bc1ec5764b56ff0d2d497a986d82b775ff3f72",
"license": "MIT",
"urls": [
"bzz-raw://c68e3bb84e60a914c7150824fc7f6cc0c1a81978efabba2299049622f01e8adf",
"dweb:/ipfs/QmTgaXVG3AWvQpZDidQvro5s4Be7ramVk12nnghJhYWS5i"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/Chainlink.sol": {
"keccak256": "0x7bef34fd97f611103c6113025e3d6af755f326069767e72266698f64258e62b6",
"license": "MIT",
"urls": [
"bzz-raw://82125916319b872093aa8599d2c00bd07d363386a74a4d0268c6edf25c366f82",
"dweb:/ipfs/QmXTnVy1XEw387NduvHHFQNmnzYTwFUhVz95kRvRrcwdHd"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/ChainlinkClient.sol": {
"keccak256": "0x9f8883b8b5b76bba151e5f30d4c353b8a3f15ee3d97117deee4cccd91fe8640f",
"license": "MIT",
"urls": [
"bzz-raw://ee9b132779ac24df4f8a5e45dfc256acc70eb5e43f715de36593e488f20a44ff",
"dweb:/ipfs/QmagJ1htVpP2ZYLAdHEpSEMx1Xd3csbUHAhLctryVDsNFg"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/ChainlinkRequestInterface.sol": {
"keccak256": "0xe513c0f60edf13da7d82625489cf2008c7b66170f3b1ed1606b84c73f95b17ad",
"license": "MIT",
"urls": [
"bzz-raw://78e083ef252b80bb63a5aa126bc7283cd9b88767dfdf0190d46802bc32756ecf",
"dweb:/ipfs/QmdTyEQwX5ecoXR1rBh8DLDJpCYVDM85JjjR2sEJdE9wAA"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/ENSInterface.sol": {
"keccak256": "0xdef864af6e516477773ea246b73531b1836de5bea4ac1cfd8be6e7f4b3f3c3fd",
"license": "MIT",
"urls": [
"bzz-raw://ad3346f5a393cd62d8de678a77d8dc323d8f9e21f0aaa504d0d0b990c8b61477",
"dweb:/ipfs/QmQ2n8329Fzb7Zbzk5wqYvAfKJ9QPwTdCUmm9zUqhL67a1"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/LinkTokenInterface.sol": {
"keccak256": "0xe245a7be950c94d87bb775ae9ee9fbd693fbe2987778e6ce0b04605ea44b7b68",
"license": "MIT",
"urls": [
"bzz-raw://bd2c3165d949fc66fe407b96eb3dc2092c7e800f4c073b411bf7b96de3e156c9",
"dweb:/ipfs/QmcfJhR1Np4GsLWnww2Duqks2wEzYk8VDTvCAYy7MisG1r"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/PointerInterface.sol": {
"keccak256": "0x08aed19c3bef1ae2d90fc0d9d28a497fd7f312991ed08fedfe545de6b9a476e4",
"license": "MIT",
"urls": [
"bzz-raw://b2e7b4acfbd4cfbd4c3e266011955954ec0f5a2323647e81b936c66cb35e1b5e",
"dweb:/ipfs/QmXVrpdo76r2WhxE7gJPj3dGycZYKKvK39VNVaB7HyhAbT"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/BufferChainlink.sol": {
"keccak256": "0x14f13139229a2fef8f705f29f91de0bc81bcd5070ec75b4bd3fd82c1536ca685",
"license": "MIT",
"urls": [
"bzz-raw://9a403d7f17b316c7b8837a25df0563de2a1c3121b7cd43473abce8ce6742bd29",
"dweb:/ipfs/QmWZYi4xJGjPt1pEM7mS7XsA1eF2zpcxiiuGHuiTndXHo7"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/CBORChainlink.sol": {
"keccak256": "0xe7c6e4290ac2a41a138e6bd89d89a2779f66847a5ee6fb5a6f2a3386e5ce589d",
"license": "MIT",
"urls": [
"bzz-raw://1eb0e7821c4963b125b47c93e31cd6e073d2b87550651054fc526e63915d92ab",
"dweb:/ipfs/QmVJq2sNTzX4Hfyway8JiY4RoQw4vQRSbzJWbsC7JsiyUs"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/ENSResolver.sol": {
"keccak256": "0xfd992937d215ad669f69e91fefbe62cad8973ae329b4e810ca9b26a1ae0b6bb7",
"license": "MIT",
"urls": [
"bzz-raw://afb189e69fb705795bf41dea9ff20bab191164fc4876803168372f9bf1a1a0f1",
"dweb:/ipfs/QmUBbNkFiJh9BrPepNVYMpxnEk1a5xqun8VT6Zb2jC3FtV"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-e71aab73726c5a2f99ee00c1a70cfef8/AlarmClockSample.sol": "Context"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"gist-e71aab73726c5a2f99ee00c1a70cfef8/AlarmClockSample.sol": {
"keccak256": "0x7117df9c260edabce0bc665b05bc1ec5764b56ff0d2d497a986d82b775ff3f72",
"license": "MIT",
"urls": [
"bzz-raw://c68e3bb84e60a914c7150824fc7f6cc0c1a81978efabba2299049622f01e8adf",
"dweb:/ipfs/QmTgaXVG3AWvQpZDidQvro5s4Be7ramVk12nnghJhYWS5i"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/Chainlink.sol": {
"keccak256": "0x7bef34fd97f611103c6113025e3d6af755f326069767e72266698f64258e62b6",
"license": "MIT",
"urls": [
"bzz-raw://82125916319b872093aa8599d2c00bd07d363386a74a4d0268c6edf25c366f82",
"dweb:/ipfs/QmXTnVy1XEw387NduvHHFQNmnzYTwFUhVz95kRvRrcwdHd"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/ChainlinkClient.sol": {
"keccak256": "0x9f8883b8b5b76bba151e5f30d4c353b8a3f15ee3d97117deee4cccd91fe8640f",
"license": "MIT",
"urls": [
"bzz-raw://ee9b132779ac24df4f8a5e45dfc256acc70eb5e43f715de36593e488f20a44ff",
"dweb:/ipfs/QmagJ1htVpP2ZYLAdHEpSEMx1Xd3csbUHAhLctryVDsNFg"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/ChainlinkRequestInterface.sol": {
"keccak256": "0xe513c0f60edf13da7d82625489cf2008c7b66170f3b1ed1606b84c73f95b17ad",
"license": "MIT",
"urls": [
"bzz-raw://78e083ef252b80bb63a5aa126bc7283cd9b88767dfdf0190d46802bc32756ecf",
"dweb:/ipfs/QmdTyEQwX5ecoXR1rBh8DLDJpCYVDM85JjjR2sEJdE9wAA"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/ENSInterface.sol": {
"keccak256": "0xdef864af6e516477773ea246b73531b1836de5bea4ac1cfd8be6e7f4b3f3c3fd",
"license": "MIT",
"urls": [
"bzz-raw://ad3346f5a393cd62d8de678a77d8dc323d8f9e21f0aaa504d0d0b990c8b61477",
"dweb:/ipfs/QmQ2n8329Fzb7Zbzk5wqYvAfKJ9QPwTdCUmm9zUqhL67a1"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/LinkTokenInterface.sol": {
"keccak256": "0xe245a7be950c94d87bb775ae9ee9fbd693fbe2987778e6ce0b04605ea44b7b68",
"license": "MIT",
"urls": [
"bzz-raw://bd2c3165d949fc66fe407b96eb3dc2092c7e800f4c073b411bf7b96de3e156c9",
"dweb:/ipfs/QmcfJhR1Np4GsLWnww2Duqks2wEzYk8VDTvCAYy7MisG1r"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/PointerInterface.sol": {
"keccak256": "0x08aed19c3bef1ae2d90fc0d9d28a497fd7f312991ed08fedfe545de6b9a476e4",
"license": "MIT",
"urls": [
"bzz-raw://b2e7b4acfbd4cfbd4c3e266011955954ec0f5a2323647e81b936c66cb35e1b5e",
"dweb:/ipfs/QmXVrpdo76r2WhxE7gJPj3dGycZYKKvK39VNVaB7HyhAbT"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/BufferChainlink.sol": {
"keccak256": "0x14f13139229a2fef8f705f29f91de0bc81bcd5070ec75b4bd3fd82c1536ca685",
"license": "MIT",
"urls": [
"bzz-raw://9a403d7f17b316c7b8837a25df0563de2a1c3121b7cd43473abce8ce6742bd29",
"dweb:/ipfs/QmWZYi4xJGjPt1pEM7mS7XsA1eF2zpcxiiuGHuiTndXHo7"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/CBORChainlink.sol": {
"keccak256": "0xe7c6e4290ac2a41a138e6bd89d89a2779f66847a5ee6fb5a6f2a3386e5ce589d",
"license": "MIT",
"urls": [
"bzz-raw://1eb0e7821c4963b125b47c93e31cd6e073d2b87550651054fc526e63915d92ab",
"dweb:/ipfs/QmVJq2sNTzX4Hfyway8JiY4RoQw4vQRSbzJWbsC7JsiyUs"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/ENSResolver.sol": {
"keccak256": "0xfd992937d215ad669f69e91fefbe62cad8973ae329b4e810ca9b26a1ae0b6bb7",
"license": "MIT",
"urls": [
"bzz-raw://afb189e69fb705795bf41dea9ff20bab191164fc4876803168372f9bf1a1a0f1",
"dweb:/ipfs/QmUBbNkFiJh9BrPepNVYMpxnEk1a5xqun8VT6Zb2jC3FtV"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60a060405234801561001057600080fd5b5060405161039c38038061039c8339818101604052602081101561003357600080fd5b8101908080519060200190929190505050806080818152505042600181905550600080819055505060805161032261007a6000398061025352806102ca52506103226000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633f3b3b271461005c5780634585e33b1461007a57806361bc221a146100f35780636e04ff0d14610111578063947a36fb1461020c575b600080fd5b61006461022a565b6040518082815260200191505060405180910390f35b6100f16004803603602081101561009057600080fd5b81019080803590602001906401000000008111156100ad57600080fd5b8201836020820111156100bf57600080fd5b803590602001918460018302840111640100000000831117156100e157600080fd5b9091929391929390505050610230565b005b6100fb610247565b6040518082815260200191505060405180910390f35b6101886004803603602081101561012757600080fd5b810190808035906020019064010000000081111561014457600080fd5b82018360208201111561015657600080fd5b8035906020019184600183028401116401000000008311171561017857600080fd5b909192939192939050505061024d565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101d05780820151818401526020810190506101b5565b50505050905090810190601f1680156101fd5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6102146102c8565b6040518082815260200191505060405180910390f35b60015481565b426001819055506001600054016000819055505050565b60005481565b600060607f0000000000000000000000000000000000000000000000000000000000000000600154420311915083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090509250929050565b7f00000000000000000000000000000000000000000000000000000000000000008156fea26469706673582212202f09a7bfa7cd286295a03ff6493789ded39cad419dcfdb56d813f58c8b38a24964736f6c634300060c0033",
"opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x39C CODESIZE SUB DUP1 PUSH2 0x39C DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP DUP1 PUSH1 0x80 DUP2 DUP2 MSTORE POP POP TIMESTAMP PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP POP PUSH1 0x80 MLOAD PUSH2 0x322 PUSH2 0x7A PUSH1 0x0 CODECOPY DUP1 PUSH2 0x253 MSTORE DUP1 PUSH2 0x2CA MSTORE POP PUSH2 0x322 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3F3B3B27 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x4585E33B EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0xF3 JUMPI DUP1 PUSH4 0x6E04FF0D EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x947A36FB EQ PUSH2 0x20C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP2 SWAP3 SWAP4 SWAP2 SWAP3 SWAP4 SWAP1 POP POP POP PUSH2 0x230 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFB PUSH2 0x247 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x188 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP2 SWAP3 SWAP4 SWAP2 SWAP3 SWAP4 SWAP1 POP POP POP PUSH2 0x24D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP4 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D0 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1B5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1FD JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x214 PUSH2 0x2C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 SLOAD ADD PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH32 0x0 PUSH1 0x1 SLOAD TIMESTAMP SUB GT SWAP2 POP DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F MULMOD 0xA7 0xBF 0xA7 0xCD 0x28 PUSH3 0x95A03F 0xF6 0x49 CALLDATACOPY DUP10 0xDE 0xD3 SWAP13 0xAD COINBASE SWAP14 0xCF 0xDB JUMP 0xD8 SGT CREATE2 DUP13 DUP12 CODESIZE LOG2 0x49 PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
"sourceMap": "324:1118:1:-:0;;;613:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;672:14;661:25;;;;;;710:15;694:13;:31;;;;744:1;734:7;:11;;;;613:139;324:1118;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {
"71": [
{
"length": 32,
"start": 595
},
{
"length": 32,
"start": 714
}
]
},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100575760003560e01c80633f3b3b271461005c5780634585e33b1461007a57806361bc221a146100f35780636e04ff0d14610111578063947a36fb1461020c575b600080fd5b61006461022a565b6040518082815260200191505060405180910390f35b6100f16004803603602081101561009057600080fd5b81019080803590602001906401000000008111156100ad57600080fd5b8201836020820111156100bf57600080fd5b803590602001918460018302840111640100000000831117156100e157600080fd5b9091929391929390505050610230565b005b6100fb610247565b6040518082815260200191505060405180910390f35b6101886004803603602081101561012757600080fd5b810190808035906020019064010000000081111561014457600080fd5b82018360208201111561015657600080fd5b8035906020019184600183028401116401000000008311171561017857600080fd5b909192939192939050505061024d565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101d05780820151818401526020810190506101b5565b50505050905090810190601f1680156101fd5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6102146102c8565b6040518082815260200191505060405180910390f35b60015481565b426001819055506001600054016000819055505050565b60005481565b600060607f0000000000000000000000000000000000000000000000000000000000000000600154420311915083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090509250929050565b7f00000000000000000000000000000000000000000000000000000000000000008156fea26469706673582212202f09a7bfa7cd286295a03ff6493789ded39cad419dcfdb56d813f58c8b38a24964736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3F3B3B27 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x4585E33B EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0xF3 JUMPI DUP1 PUSH4 0x6E04FF0D EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x947A36FB EQ PUSH2 0x20C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP2 SWAP3 SWAP4 SWAP2 SWAP3 SWAP4 SWAP1 POP POP POP PUSH2 0x230 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFB PUSH2 0x247 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x188 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP2 SWAP3 SWAP4 SWAP2 SWAP3 SWAP4 SWAP1 POP POP POP PUSH2 0x24D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP4 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D0 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1B5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1FD JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x214 PUSH2 0x2C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 SLOAD ADD PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH32 0x0 PUSH1 0x1 SLOAD TIMESTAMP SUB GT SWAP2 POP DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F MULMOD 0xA7 0xBF 0xA7 0xCD 0x28 PUSH3 0x95A03F 0xF6 0x49 CALLDATACOPY DUP10 0xDE 0xD3 SWAP13 0xAD COINBASE SWAP14 0xCF 0xDB JUMP 0xD8 SGT CREATE2 DUP13 DUP12 CODESIZE LOG2 0x49 PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
"sourceMap": "324:1118:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;576:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1112:323;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;421:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;759:347;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;540:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;576:25;;;;:::o;1112:323::-;1207:15;1191:13;:31;;;;1252:1;1242:7;;:11;1232:7;:21;;;;1112:323;;:::o;421:19::-;;;;:::o;759:347::-;833:17;852:24;939:8;922:13;;904:15;:31;903:44;888:59;;1090:9;;1076:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;759:347;;;;;:::o;540:30::-;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "160400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"checkUpkeep(bytes)": "infinite",
"counter()": "1027",
"interval()": "infinite",
"lastTimeStamp()": "983",
"performUpkeep(bytes)": "41212"
}
},
"methodIdentifiers": {
"checkUpkeep(bytes)": "6e04ff0d",
"counter()": "61bc221a",
"interval()": "947a36fb",
"lastTimeStamp()": "3f3b3b27",
"performUpkeep(bytes)": "4585e33b"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "updateInterval",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "checkData",
"type": "bytes"
}
],
"name": "checkUpkeep",
"outputs": [
{
"internalType": "bool",
"name": "upkeepNeeded",
"type": "bool"
},
{
"internalType": "bytes",
"name": "performData",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "counter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "interval",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastTimeStamp",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "performData",
"type": "bytes"
}
],
"name": "performUpkeep",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "updateInterval",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "checkData",
"type": "bytes"
}
],
"name": "checkUpkeep",
"outputs": [
{
"internalType": "bool",
"name": "upkeepNeeded",
"type": "bool"
},
{
"internalType": "bytes",
"name": "performData",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "counter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "interval",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastTimeStamp",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "performData",
"type": "bytes"
}
],
"name": "performUpkeep",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"counter()": {
"notice": "Public counter variable"
},
"interval()": {
"notice": "Use an interval in seconds and a timestamp to slow execution of Upkeep"
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-62587a7f0885c4cbdbd587ca0dc74a12/Counter.sol": "Counter"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol": {
"keccak256": "0x8895ce4f46aba18ee3cdb7b1d180f79edb868225781f60993c7b2181e2ee2583",
"license": "MIT",
"urls": [
"bzz-raw://4472c14df5f311d7a2eff1dfa55d9b4d39a21b0a0ff905fcbbf6913551086a4c",
"dweb:/ipfs/QmQvwFk1SBaLMm4pmZCz7UEhfaXM8kUWu5VG71VFFuMxjF"
]
},
"gist-62587a7f0885c4cbdbd587ca0dc74a12/Counter.sol": {
"keccak256": "0x198a7d7e1c5c3a8f63bdeae97c8b7ffa6c440f2cbce93ebb9ac115e795bc58eb",
"urls": [
"bzz-raw://b7005a2ceda0235dea0a2194bfafbbe116012cc89296b8430f24c2e01733fb01",
"dweb:/ipfs/QmP4GGcJfC7dmPGbFH4StJRBGSn4djpCoBzKqU77GK4zXC"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"balanceOf(address)": "70a08231",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"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"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"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"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-e71aab73726c5a2f99ee00c1a70cfef8/AlarmClockSample.sol": "IERC20"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"gist-e71aab73726c5a2f99ee00c1a70cfef8/AlarmClockSample.sol": {
"keccak256": "0x7117df9c260edabce0bc665b05bc1ec5764b56ff0d2d497a986d82b775ff3f72",
"license": "MIT",
"urls": [
"bzz-raw://c68e3bb84e60a914c7150824fc7f6cc0c1a81978efabba2299049622f01e8adf",
"dweb:/ipfs/QmTgaXVG3AWvQpZDidQvro5s4Be7ramVk12nnghJhYWS5i"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/Chainlink.sol": {
"keccak256": "0x7bef34fd97f611103c6113025e3d6af755f326069767e72266698f64258e62b6",
"license": "MIT",
"urls": [
"bzz-raw://82125916319b872093aa8599d2c00bd07d363386a74a4d0268c6edf25c366f82",
"dweb:/ipfs/QmXTnVy1XEw387NduvHHFQNmnzYTwFUhVz95kRvRrcwdHd"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/ChainlinkClient.sol": {
"keccak256": "0x9f8883b8b5b76bba151e5f30d4c353b8a3f15ee3d97117deee4cccd91fe8640f",
"license": "MIT",
"urls": [
"bzz-raw://ee9b132779ac24df4f8a5e45dfc256acc70eb5e43f715de36593e488f20a44ff",
"dweb:/ipfs/QmagJ1htVpP2ZYLAdHEpSEMx1Xd3csbUHAhLctryVDsNFg"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/ChainlinkRequestInterface.sol": {
"keccak256": "0xe513c0f60edf13da7d82625489cf2008c7b66170f3b1ed1606b84c73f95b17ad",
"license": "MIT",
"urls": [
"bzz-raw://78e083ef252b80bb63a5aa126bc7283cd9b88767dfdf0190d46802bc32756ecf",
"dweb:/ipfs/QmdTyEQwX5ecoXR1rBh8DLDJpCYVDM85JjjR2sEJdE9wAA"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/ENSInterface.sol": {
"keccak256": "0xdef864af6e516477773ea246b73531b1836de5bea4ac1cfd8be6e7f4b3f3c3fd",
"license": "MIT",
"urls": [
"bzz-raw://ad3346f5a393cd62d8de678a77d8dc323d8f9e21f0aaa504d0d0b990c8b61477",
"dweb:/ipfs/QmQ2n8329Fzb7Zbzk5wqYvAfKJ9QPwTdCUmm9zUqhL67a1"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/LinkTokenInterface.sol": {
"keccak256": "0xe245a7be950c94d87bb775ae9ee9fbd693fbe2987778e6ce0b04605ea44b7b68",
"license": "MIT",
"urls": [
"bzz-raw://bd2c3165d949fc66fe407b96eb3dc2092c7e800f4c073b411bf7b96de3e156c9",
"dweb:/ipfs/QmcfJhR1Np4GsLWnww2Duqks2wEzYk8VDTvCAYy7MisG1r"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/PointerInterface.sol": {
"keccak256": "0x08aed19c3bef1ae2d90fc0d9d28a497fd7f312991ed08fedfe545de6b9a476e4",
"license": "MIT",
"urls": [
"bzz-raw://b2e7b4acfbd4cfbd4c3e266011955954ec0f5a2323647e81b936c66cb35e1b5e",
"dweb:/ipfs/QmXVrpdo76r2WhxE7gJPj3dGycZYKKvK39VNVaB7HyhAbT"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/BufferChainlink.sol": {
"keccak256": "0x14f13139229a2fef8f705f29f91de0bc81bcd5070ec75b4bd3fd82c1536ca685",
"license": "MIT",
"urls": [
"bzz-raw://9a403d7f17b316c7b8837a25df0563de2a1c3121b7cd43473abce8ce6742bd29",
"dweb:/ipfs/QmWZYi4xJGjPt1pEM7mS7XsA1eF2zpcxiiuGHuiTndXHo7"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/CBORChainlink.sol": {
"keccak256": "0xe7c6e4290ac2a41a138e6bd89d89a2779f66847a5ee6fb5a6f2a3386e5ce589d",
"license": "MIT",
"urls": [
"bzz-raw://1eb0e7821c4963b125b47c93e31cd6e073d2b87550651054fc526e63915d92ab",
"dweb:/ipfs/QmVJq2sNTzX4Hfyway8JiY4RoQw4vQRSbzJWbsC7JsiyUs"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/ENSResolver.sol": {
"keccak256": "0xfd992937d215ad669f69e91fefbe62cad8973ae329b4e810ca9b26a1ae0b6bb7",
"license": "MIT",
"urls": [
"bzz-raw://afb189e69fb705795bf41dea9ff20bab191164fc4876803168372f9bf1a1a0f1",
"dweb:/ipfs/QmUBbNkFiJh9BrPepNVYMpxnEk1a5xqun8VT6Zb2jC3FtV"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"WETH()": "ad5c4648",
"addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700",
"addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719",
"factory()": "c45a0155",
"getAmountIn(uint256,uint256,uint256)": "85f8c259",
"getAmountOut(uint256,uint256,uint256)": "054d50d4",
"getAmountsIn(uint256,address[])": "1f00ca74",
"getAmountsOut(uint256,address[])": "d06ca61f",
"quote(uint256,uint256,uint256)": "ad615dec",
"removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde",
"removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec",
"removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)": "af2979eb",
"removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a",
"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "5b0d5984",
"removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c",
"swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41",
"swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5",
"swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)": "b6f9de95",
"swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5",
"swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "791ac947",
"swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739",
"swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "5c11d795",
"swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a",
"swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee"
}
},
"abi": [
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETHSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETHSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-e71aab73726c5a2f99ee00c1a70cfef8/AlarmClockSample.sol": "ISmartSwapRouter02"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"gist-e71aab73726c5a2f99ee00c1a70cfef8/AlarmClockSample.sol": {
"keccak256": "0x7117df9c260edabce0bc665b05bc1ec5764b56ff0d2d497a986d82b775ff3f72",
"license": "MIT",
"urls": [
"bzz-raw://c68e3bb84e60a914c7150824fc7f6cc0c1a81978efabba2299049622f01e8adf",
"dweb:/ipfs/QmTgaXVG3AWvQpZDidQvro5s4Be7ramVk12nnghJhYWS5i"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/Chainlink.sol": {
"keccak256": "0x7bef34fd97f611103c6113025e3d6af755f326069767e72266698f64258e62b6",
"license": "MIT",
"urls": [
"bzz-raw://82125916319b872093aa8599d2c00bd07d363386a74a4d0268c6edf25c366f82",
"dweb:/ipfs/QmXTnVy1XEw387NduvHHFQNmnzYTwFUhVz95kRvRrcwdHd"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/ChainlinkClient.sol": {
"keccak256": "0x9f8883b8b5b76bba151e5f30d4c353b8a3f15ee3d97117deee4cccd91fe8640f",
"license": "MIT",
"urls": [
"bzz-raw://ee9b132779ac24df4f8a5e45dfc256acc70eb5e43f715de36593e488f20a44ff",
"dweb:/ipfs/QmagJ1htVpP2ZYLAdHEpSEMx1Xd3csbUHAhLctryVDsNFg"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/ChainlinkRequestInterface.sol": {
"keccak256": "0xe513c0f60edf13da7d82625489cf2008c7b66170f3b1ed1606b84c73f95b17ad",
"license": "MIT",
"urls": [
"bzz-raw://78e083ef252b80bb63a5aa126bc7283cd9b88767dfdf0190d46802bc32756ecf",
"dweb:/ipfs/QmdTyEQwX5ecoXR1rBh8DLDJpCYVDM85JjjR2sEJdE9wAA"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/ENSInterface.sol": {
"keccak256": "0xdef864af6e516477773ea246b73531b1836de5bea4ac1cfd8be6e7f4b3f3c3fd",
"license": "MIT",
"urls": [
"bzz-raw://ad3346f5a393cd62d8de678a77d8dc323d8f9e21f0aaa504d0d0b990c8b61477",
"dweb:/ipfs/QmQ2n8329Fzb7Zbzk5wqYvAfKJ9QPwTdCUmm9zUqhL67a1"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/LinkTokenInterface.sol": {
"keccak256": "0xe245a7be950c94d87bb775ae9ee9fbd693fbe2987778e6ce0b04605ea44b7b68",
"license": "MIT",
"urls": [
"bzz-raw://bd2c3165d949fc66fe407b96eb3dc2092c7e800f4c073b411bf7b96de3e156c9",
"dweb:/ipfs/QmcfJhR1Np4GsLWnww2Duqks2wEzYk8VDTvCAYy7MisG1r"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/interfaces/PointerInterface.sol": {
"keccak256": "0x08aed19c3bef1ae2d90fc0d9d28a497fd7f312991ed08fedfe545de6b9a476e4",
"license": "MIT",
"urls": [
"bzz-raw://b2e7b4acfbd4cfbd4c3e266011955954ec0f5a2323647e81b936c66cb35e1b5e",
"dweb:/ipfs/QmXVrpdo76r2WhxE7gJPj3dGycZYKKvK39VNVaB7HyhAbT"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/BufferChainlink.sol": {
"keccak256": "0x14f13139229a2fef8f705f29f91de0bc81bcd5070ec75b4bd3fd82c1536ca685",
"license": "MIT",
"urls": [
"bzz-raw://9a403d7f17b316c7b8837a25df0563de2a1c3121b7cd43473abce8ce6742bd29",
"dweb:/ipfs/QmWZYi4xJGjPt1pEM7mS7XsA1eF2zpcxiiuGHuiTndXHo7"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/CBORChainlink.sol": {
"keccak256": "0xe7c6e4290ac2a41a138e6bd89d89a2779f66847a5ee6fb5a6f2a3386e5ce589d",
"license": "MIT",
"urls": [
"bzz-raw://1eb0e7821c4963b125b47c93e31cd6e073d2b87550651054fc526e63915d92ab",
"dweb:/ipfs/QmVJq2sNTzX4Hfyway8JiY4RoQw4vQRSbzJWbsC7JsiyUs"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.6/vendor/ENSResolver.sol": {
"keccak256": "0xfd992937d215ad669f69e91fefbe62cad8973ae329b4e810ca9b26a1ae0b6bb7",
"license": "MIT",
"urls": [
"bzz-raw://afb189e69fb705795bf41dea9ff20bab191164fc4876803168372f9bf1a1a0f1",
"dweb:/ipfs/QmUBbNkFiJh9BrPepNVYMpxnEk1a5xqun8VT6Zb2jC3FtV"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"checkUpkeep(bytes)": "6e04ff0d",
"performUpkeep(bytes)": "4585e33b"
}
},
"abi": [
{
"inputs": [
{
"internalType": "bytes",
"name": "checkData",
"type": "bytes"
}
],
"name": "checkUpkeep",
"outputs": [
{
"internalType": "bool",
"name": "upkeepNeeded",
"type": "bool"
},
{
"internalType": "bytes",
"name": "performData",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "performData",
"type": "bytes"
}
],
"name": "performUpkeep",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "bytes",
"name": "checkData",
"type": "bytes"
}
],
"name": "checkUpkeep",
"outputs": [
{
"internalType": "bool",
"name": "upkeepNeeded",
"type": "bool"
},
{
"internalType": "bytes",
"name": "performData",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "performData",
"type": "bytes"
}
],
"name": "performUpkeep",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-62587a7f0885c4cbdbd587ca0dc74a12/Counter.sol": "KeeperCompatibleInterface"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol": {
"keccak256": "0x8895ce4f46aba18ee3cdb7b1d180f79edb868225781f60993c7b2181e2ee2583",
"license": "MIT",
"urls": [
"bzz-raw://4472c14df5f311d7a2eff1dfa55d9b4d39a21b0a0ff905fcbbf6913551086a4c",
"dweb:/ipfs/QmQvwFk1SBaLMm4pmZCz7UEhfaXM8kUWu5VG71VFFuMxjF"
]
},
"gist-62587a7f0885c4cbdbd587ca0dc74a12/Counter.sol": {
"keccak256": "0x198a7d7e1c5c3a8f63bdeae97c8b7ffa6c440f2cbce93ebb9ac115e795bc58eb",
"urls": [
"bzz-raw://b7005a2ceda0235dea0a2194bfafbbe116012cc89296b8430f24c2e01733fb01",
"dweb:/ipfs/QmP4GGcJfC7dmPGbFH4StJRBGSn4djpCoBzKqU77GK4zXC"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50739326bfa02add2366b30bacb125260af6410313316000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061016b806100746000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638e15f47314610030575b600080fd5b61003861004e565b6040518082815260200191505060405180910390f35b60008060008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156100bd57600080fd5b505afa1580156100d1573d6000803e3d6000fd5b505050506040513d60a08110156100e757600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509450945094509450945083955050505050509056fea26469706673582212205bfd3ee0ad57dcb3c3b1148c061b2a9b0a8fb1c2be9abf4bf4baf780dfd54a2464736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0x9326BFA02ADD2366B30BACB125260AF641031331 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x16B DUP1 PUSH2 0x74 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8E15F473 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP DUP4 SWAP6 POP POP POP POP POP POP SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST REVERT RETURNDATACOPY 0xE0 0xAD JUMPI 0xDC 0xB3 0xC3 0xB1 EQ DUP13 MOD SHL 0x2A SWAP12 EXP DUP16 0xB1 0xC2 0xBE SWAP11 0xBF 0x4B DELEGATECALL 0xBA 0xF7 DUP1 0xDF 0xD5 0x4A 0x24 PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
"sourceMap": "219:649:1:-:0;;;422:115;;;;;;;;;;487:42;453:9;;:77;;;;;;;;;;;;;;;;;;219:649;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80638e15f47314610030575b600080fd5b61003861004e565b6040518082815260200191505060405180910390f35b60008060008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156100bd57600080fd5b505afa1580156100d1573d6000803e3d6000fd5b505050506040513d60a08110156100e757600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509450945094509450945083955050505050509056fea26469706673582212205bfd3ee0ad57dcb3c3b1148c061b2a9b0a8fb1c2be9abf4bf4baf780dfd54a2464736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8E15F473 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP DUP4 SWAP6 POP POP POP POP POP POP SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST REVERT RETURNDATACOPY 0xE0 0xAD JUMPI 0xDC 0xB3 0xC3 0xB1 EQ DUP13 MOD SHL 0x2A SWAP12 EXP DUP16 0xB1 0xC2 0xBE SWAP11 0xBF 0x4B DELEGATECALL 0xBA 0xF7 DUP1 0xDF 0xD5 0x4A 0x24 PUSH5 0x736F6C6343 STOP MOD 0xC STOP CALLER ",
"sourceMap": "219:649:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;591:275;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;638:3;667:14;696:9;719:14;747;775:22;810:9;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;653:184;;;;;;;;;;854:5;847:12;;;;;;;591:275;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "72600",
"executionCost": "20990",
"totalCost": "93590"
},
"external": {
"getLatestPrice()": "infinite"
}
},
"methodIdentifiers": {
"getLatestPrice()": "8e15f473"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getLatestPrice",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getLatestPrice",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"constructor": "Network: Kovan Aggregator: ETH/USD Address: 0x9326BFA02ADD2366b30bacB125260Af641031331",
"getLatestPrice()": {
"notice": "Returns the latest price"
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-a90779ce7087be3379a2b5cee0ea2858/PriceConsumerV3.sol": "PriceConsumerV3"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol": {
"keccak256": "0x8895ce4f46aba18ee3cdb7b1d180f79edb868225781f60993c7b2181e2ee2583",
"license": "MIT",
"urls": [
"bzz-raw://4472c14df5f311d7a2eff1dfa55d9b4d39a21b0a0ff905fcbbf6913551086a4c",
"dweb:/ipfs/QmQvwFk1SBaLMm4pmZCz7UEhfaXM8kUWu5VG71VFFuMxjF"
]
},
"gist-a90779ce7087be3379a2b5cee0ea2858/PriceConsumerV3.sol": {
"keccak256": "0xa3d345d337af95b2ed08611bb5c34bd3e566e2551b6e0a2cca681d4f6181a302",
"license": "MIT",
"urls": [
"bzz-raw://cd3bedd16d3677e675564679eee109b126c896011b3875f72a318aebf3f72d3c",
"dweb:/ipfs/QmXgXzZJf7D5AJkXLoTm25L51XF2UM4gnoLFtGQUPptSvF"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60c060405234801561001057600080fd5b5073dd3782915140c8f3b190b5d67eac6dc5760c46e973a36085f69e2889c224210f603d836748e7dc00888173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505050507f6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f460001b60018190555067016345785d8a000060028190555060805160601c60a05160601c6108ca61012060003980610304528061056252508060d7528061011452806103d8528061052652506108ca6000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806342619f66146100515780638dc654a21461006f57806394985ddd14610079578063dbdff2c1146100b1575b600080fd5b6100596100cf565b6040518082815260200191505060405180910390f35b6100776100d5565b005b6100af6004803603604081101561008f57600080fd5b810190808035906020019092919080359060200190929190505050610302565b005b6100b96103d1565b6040518082815260200191505060405180910390f35b60035481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156101af57600080fd5b505afa1580156101c3573d6000803e3d6000fd5b505050506040513d60208110156101d957600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b505050506040513d602081101561027d57600080fd5b8101908080519060200190929190505050610300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e61626c6520746f207472616e73666572000000000000000000000000000081525060200191505060405180910390fd5b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c0081525060200191505060405180910390fd5b6103cd8282610517565b5050565b60006002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561047357600080fd5b505afa158015610487573d6000803e3d6000fd5b505050506040513d602081101561049d57600080fd5b810190808051906020019092919050505011610504576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061086a602b913960400191505060405180910390fd5b610512600154600254610522565b905090565b806003819055505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634000aea07f00000000000000000000000000000000000000000000000000000000000000008486600060405160200180838152602001828152602001925050506040516020818303038152906040526040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610632578082015181840152602081019050610617565b50505050905090810190601f16801561065f5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561068057600080fd5b505af1158015610694573d6000803e3d6000fd5b505050506040513d60208110156106aa57600080fd5b81019080805190602001909291905050505060006106dd846000306000808981526020019081526020016000205461072e565b90506107056001600080878152602001908152602001600020546107a890919063ffffffff16565b600080868152602001908152602001600020819055506107258482610830565b91505092915050565b600084848484604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019450505050506040516020818303038152906040528051906020012060001c9050949350505050565b600080828401905083811015610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000828260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090509291505056fe4e6f7420656e6f756768204c494e4b202d2066696c6c20636f6e7472616374207769746820666175636574a2646970667358221220dad5b411ae1ecce7cd7ca4e1205a76e7101e8a607fab55fa202f1360f4cde69d64736f6c63430006060033",
"opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xDD3782915140C8F3B190B5D67EAC6DC5760C46E9 PUSH20 0xA36085F69E2889C224210F603D836748E7DC0088 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE POP POP POP POP PUSH32 0x6C3699283BDA56AD74F6B855546325B68D482E983852A7A82979CC4807B641F4 PUSH1 0x0 SHL PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH8 0x16345785D8A0000 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x8CA PUSH2 0x120 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x304 MSTORE DUP1 PUSH2 0x562 MSTORE POP DUP1 PUSH1 0xD7 MSTORE DUP1 PUSH2 0x114 MSTORE DUP1 PUSH2 0x3D8 MSTORE DUP1 PUSH2 0x526 MSTORE POP PUSH2 0x8CA PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42619F66 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x94985DDD EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xDBDFF2C1 EQ PUSH2 0xB1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xCF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x302 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB9 PUSH2 0x3D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x267 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x300 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F6E6C7920565246436F6F7264696E61746F722063616E2066756C66696C6C00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3CD DUP3 DUP3 PUSH2 0x517 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x473 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x487 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x49D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP GT PUSH2 0x504 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x86A PUSH1 0x2B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x512 PUSH1 0x1 SLOAD PUSH1 0x2 SLOAD PUSH2 0x522 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4000AEA0 PUSH32 0x0 DUP5 DUP7 PUSH1 0x0 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x632 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x617 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x65F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x694 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP POP PUSH1 0x0 PUSH2 0x6DD DUP5 PUSH1 0x0 ADDRESS PUSH1 0x0 DUP1 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x72E JUMP JUMPDEST SWAP1 POP PUSH2 0x705 PUSH1 0x1 PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x7A8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x725 DUP5 DUP3 PUSH2 0x830 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 SHR SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID 0x4E PUSH16 0x7420656E6F756768204C494E4B202D20 PUSH7 0x696C6C20636F6E PUSH21 0x72616374207769746820666175636574A264697066 PUSH20 0x58221220DAD5B411AE1ECCE7CD7CA4E1205A76E7 LT 0x1E DUP11 PUSH1 0x7F 0xAB SSTORE STATICCALL KECCAK256 0x2F SGT PUSH1 0xF4 0xCD 0xE6 SWAP14 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ",
"sourceMap": "470:1644:4:-:0;;;973:341;5:9:-1;2:2;;;27:1;24;17:12;2:2;973:341:4;1025:42;1100;9422:15:0;9405:32;;;;;;;;;;;;9469:5;9443:32;;;;;;;;;;;;9340:140;;1199:66:4::1;1189:76;;:7;:76;;;;1281:14;1275:3;:20;;;;470:1644:::0;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {
"76": [
{
"length": 32,
"start": 215
},
{
"length": 32,
"start": 276
},
{
"length": 32,
"start": 984
},
{
"length": 32,
"start": 1318
}
],
"78": [
{
"length": 32,
"start": 772
},
{
"length": 32,
"start": 1378
}
]
},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c806342619f66146100515780638dc654a21461006f57806394985ddd14610079578063dbdff2c1146100b1575b600080fd5b6100596100cf565b6040518082815260200191505060405180910390f35b6100776100d5565b005b6100af6004803603604081101561008f57600080fd5b810190808035906020019092919080359060200190929190505050610302565b005b6100b96103d1565b6040518082815260200191505060405180910390f35b60035481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156101af57600080fd5b505afa1580156101c3573d6000803e3d6000fd5b505050506040513d60208110156101d957600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b505050506040513d602081101561027d57600080fd5b8101908080519060200190929190505050610300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e61626c6520746f207472616e73666572000000000000000000000000000081525060200191505060405180910390fd5b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c0081525060200191505060405180910390fd5b6103cd8282610517565b5050565b60006002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561047357600080fd5b505afa158015610487573d6000803e3d6000fd5b505050506040513d602081101561049d57600080fd5b810190808051906020019092919050505011610504576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061086a602b913960400191505060405180910390fd5b610512600154600254610522565b905090565b806003819055505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634000aea07f00000000000000000000000000000000000000000000000000000000000000008486600060405160200180838152602001828152602001925050506040516020818303038152906040526040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610632578082015181840152602081019050610617565b50505050905090810190601f16801561065f5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561068057600080fd5b505af1158015610694573d6000803e3d6000fd5b505050506040513d60208110156106aa57600080fd5b81019080805190602001909291905050505060006106dd846000306000808981526020019081526020016000205461072e565b90506107056001600080878152602001908152602001600020546107a890919063ffffffff16565b600080868152602001908152602001600020819055506107258482610830565b91505092915050565b600084848484604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019450505050506040516020818303038152906040528051906020012060001c9050949350505050565b600080828401905083811015610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000828260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090509291505056fe4e6f7420656e6f756768204c494e4b202d2066696c6c20636f6e7472616374207769746820666175636574a2646970667358221220dad5b411ae1ecce7cd7ca4e1205a76e7101e8a607fab55fa202f1360f4cde69d64736f6c63430006060033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42619F66 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x94985DDD EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xDBDFF2C1 EQ PUSH2 0xB1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xCF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x302 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB9 PUSH2 0x3D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x267 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x300 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F6E6C7920565246436F6F7264696E61746F722063616E2066756C66696C6C00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3CD DUP3 DUP3 PUSH2 0x517 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x473 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x487 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x49D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP GT PUSH2 0x504 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x86A PUSH1 0x2B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x512 PUSH1 0x1 SLOAD PUSH1 0x2 SLOAD PUSH2 0x522 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4000AEA0 PUSH32 0x0 DUP5 DUP7 PUSH1 0x0 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x632 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x617 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x65F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x694 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP POP PUSH1 0x0 PUSH2 0x6DD DUP5 PUSH1 0x0 ADDRESS PUSH1 0x0 DUP1 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x72E JUMP JUMPDEST SWAP1 POP PUSH2 0x705 PUSH1 0x1 PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x7A8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x725 DUP5 DUP3 PUSH2 0x830 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 SHR SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID 0x4E PUSH16 0x7420656E6F756768204C494E4B202D20 PUSH7 0x696C6C20636F6E PUSH21 0x72616374207769746820666175636574A264697066 PUSH20 0x58221220DAD5B411AE1ECCE7CD7CA4E1205A76E7 LT 0x1E DUP11 PUSH1 0x7F 0xAB SSTORE STATICCALL KECCAK256 0x2F SGT PUSH1 0xF4 0xCD 0xE6 SWAP14 PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ",
"sourceMap": "470:1644:4:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;470:1644:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;591:27:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1975:137;;;:::i;:::-;;9675:207:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9675:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1369:218:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;591:27;;;;:::o;1975:137::-;2026:4;:13;;;2040:10;2052:4;:14;;;2075:4;2052:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2052:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2052:29:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2052:29:4;;;;;;;;;;;;;;;;2026:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2026:56:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2026:56:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2026:56:4;;;;;;;;;;;;;;;;2018:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1975:137::o;9675:207:0:-;9781:14;9767:28;;:10;:28;;;9759:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9837:40;9855:9;9866:10;9837:17;:40::i;:::-;9675:207;;:::o;1369:218:4:-;1412:17;1481:3;;1449:4;:14;;;1472:4;1449:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1449:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1449:29:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1449:29:4;;;;;;;;;;;;;;;;:35;1441:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1549:31;1567:7;;1576:3;;1549:17;:31::i;:::-;1542:38;;1369:218;:::o;1658:126::-;1767:10;1752:12;:25;;;;1658:126;;:::o;7818:1030:0:-;7899:17;7926:4;:20;;;7947:14;7963:4;7980:8;6675:1;7969:43;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7969:43:0;;;7926:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7926:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7926:87:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7926:87:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7926:87:0;;;;;;;;;;;;;;;;;8244:15;8263:82;8280:8;6675:1;8321:4;8328:6;:16;8335:8;8328:16;;;;;;;;;;;;8263;:82::i;:::-;8244:101;;8775:23;8796:1;8775:6;:16;8782:8;8775:16;;;;;;;;;;;;:20;;:23;;;;:::i;:::-;8756:6;:16;8763:8;8756:16;;;;;;;;;;;:42;;;;8811:32;8825:8;8835:7;8811:13;:32::i;:::-;8804:39;;;7818:1030;;;;:::o;797:231:1:-;927:7;981:8;991:9;1002:10;1014:6;970:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;970:51:1;;;960:62;;;;;;952:71;;944:79;;797:231;;;;;;:::o;863:162:3:-;921:7;936:9;952:1;948;:5;936:17;;972:1;967;:6;;959:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1019:1;1012:8;;;863:162;;;;:::o;1408:171:1:-;1500:7;1549:8;1559:13;1532:41;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1532:41:1;;;1522:52;;;;;;1515:59;;1408:171;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "450000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"getRandomNumber()": "infinite",
"randomResult()": "983",
"rawFulfillRandomness(bytes32,uint256)": "infinite",
"withdrawLink()": "infinite"
},
"internal": {
"fulfillRandomness(bytes32,uint256)": "20027"
}
},
"methodIdentifiers": {
"getRandomNumber()": "dbdff2c1",
"randomResult()": "42619f66",
"rawFulfillRandomness(bytes32,uint256)": "94985ddd",
"withdrawLink()": "8dc654a2"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getRandomNumber",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "randomResult",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "randomness",
"type": "uint256"
}
],
"name": "rawFulfillRandomness",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.6+commit.6c089d02"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getRandomNumber",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "randomResult",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "randomness",
"type": "uint256"
}
],
"name": "rawFulfillRandomness",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {
"constructor": "Constructor inherits VRFConsumerBase * Network: Kovan Chainlink VRF Coordinator address: 0xdD3782915140c8f3b190B5D67eAc6dc5760C46E9 LINK token address: 0xa36085F69e2889c224210F603D836748e7dC0088 Key Hash: 0x6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f4",
"getRandomNumber()": {
"notice": "Requests randomness "
},
"withdrawLink()": {
"notice": "Withdraw LINK from this contract * DO NOT USE THIS IN PRODUCTION AS IT CAN BE CALLED BY ANY ADDRESS. THIS IS PURELY FOR EXAMPLE PURPOSES."
}
}
}
},
"settings": {
"compilationTarget": {
"gist-81aaa1ef3897ec2812f314a3a79618d9/RandomNumberConsumer.sol": "RandomNumberConsumer"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@chainlink/contracts/src/v0.6/VRFConsumerBase.sol": {
"keccak256": "0x0631170c6f92cfe43a3305379788214a60175d2aa9b4c6716f0c66515e878129",
"urls": [
"bzz-raw://86f11fdc9eaa2819cc2405d8137fd6c3338526c8ebc4cb140775b2d4e5500160",
"dweb:/ipfs/QmUerSsz6Rfiw83SnJbxerEZsL6C8cv3krfcAxnverKtfk"
]
},
"@chainlink/contracts/src/v0.6/VRFRequestIDBase.sol": {
"keccak256": "0x0c3bd40c63dac8398a979b1228c8ecb1c269c157dd16f2dce2086d2270b65b22",
"urls": [
"bzz-raw://ed9db87be9dfb0f763a556d8d80356b08282b8ea48484838cdf470a5c3cd15d5",
"dweb:/ipfs/QmPLhwDAS3TPDiEQmTyqXnWBqwEMBSbXtjEiQDSGejoiPt"
]
},
"@chainlink/contracts/src/v0.6/interfaces/LinkTokenInterface.sol": {
"keccak256": "0xe245a7be950c94d87bb775ae9ee9fbd693fbe2987778e6ce0b04605ea44b7b68",
"urls": [
"bzz-raw://bd2c3165d949fc66fe407b96eb3dc2092c7e800f4c073b411bf7b96de3e156c9",
"dweb:/ipfs/QmcfJhR1Np4GsLWnww2Duqks2wEzYk8VDTvCAYy7MisG1r"
]
},
"@chainlink/contracts/src/v0.6/vendor/SafeMathChainlink.sol": {
"keccak256": "0x105f5e9491f3d0bbdd4f1c7627eb839d69b944bfd803028a01cc083597692c1f",
"urls": [
"bzz-raw://ec45a2748a024a947a921183d4102d5e206808588501d85ddc4f5668a009bc73",
"dweb:/ipfs/QmRNAMpq7LdWFnJ7wWKGbUuAcURaGSS42PMxtQ4vjrHmp9"
]
},
"gist-81aaa1ef3897ec2812f314a3a79618d9/RandomNumberConsumer.sol": {
"keccak256": "0x812136156b0170f55f9f8b3626dd7c4e34baafdc42b5d0c54011284c9a7a1cc5",
"urls": [
"bzz-raw://d2ba5176cd5a43633e902202a6d8661c0ccfc4fb7f1736af841ccca65f9d850b",
"dweb:/ipfs/QmeJuhHJPY6U2d6cmcon6KR7GKMbkjyjr5aAMN8Q3unoKu"
]
}
},
"version": 1
}
pragma solidity ^0.6.7;
import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
interface KeeperCompatibleInterface {
function checkUpkeep(bytes calldata checkData) external returns (bool upkeepNeeded, bytes memory performData);
function performUpkeep(bytes calldata performData) external;
}
contract Counter is KeeperCompatibleInterface {
/**
* Public counter variable
*/
uint public counter;
/**
* Use an interval in seconds and a timestamp to slow execution of Upkeep
*/
uint public immutable interval;
uint public lastTimeStamp;
constructor(uint updateInterval) public {
interval = updateInterval;
lastTimeStamp = block.timestamp;
counter = 0;
}
function checkUpkeep(bytes calldata checkData) external override returns (bool upkeepNeeded, bytes memory performData) {
upkeepNeeded = (block.timestamp - lastTimeStamp) > interval;
// We don't use the checkData in this example
// checkData was defined when the Upkeep was registered
performData = checkData;
}
function performUpkeep(bytes calldata performData) external override {
lastTimeStamp = block.timestamp;
counter = counter + 1;
// We don't use the performData in this example
// performData is generated by the Keeper's call to your `checkUpkeep` function
performData;
}
}
/**
* Copyright 2017-2021, bZeroX, LLC. All Rights Reserved.
* Licensed under the Apache License, Version 2.0.
*/
pragma solidity 0.5.17;
// import "@openzeppelin-2.5.0/math/SafeMath.sol";
// import "@openzeppelin-2.5.0/ownership/Ownable.sol";
// import "@openzeppelin-2.5.0/token/ERC20/IERC20.sol";
// import "../interfaces/IERC20Detailed.sol";
// import "../core/Constants.sol";
import "./IPriceFeedsExt.sol";
contract PriceFeeds_BSC is IPriceFeedsExt {
// using SafeMath for uint256;
event GlobalPricingPaused(
address indexed sender,
bool isPaused
);
mapping (address => IPriceFeedsExt) public pricesFeeds; // token => pricefeed
mapping (address => uint256) public decimals; // decimals of supported tokens
bool public globalPricingPaused = false;
constructor()
public
{
// set decimals for ether
decimals[address(wethToken)] = 18;
}
function queryRate(
address sourceToken,
address destToken)
public
view
returns (uint256 rate, uint256 precision)
{
require(!globalPricingPaused, "pricing is paused");
return _queryRate(
sourceToken,
destToken
);
}
function queryPrecision(
address sourceToken,
address destToken)
public
view
returns (uint256)
{
return sourceToken != destToken ?
_getDecimalPrecision(sourceToken, destToken) :
WEI_PRECISION;
}
//// NOTE: This function returns 0 during a pause, rather than a revert. Ensure calling contracts handle correctly. ///
function queryReturn(
address sourceToken,
address destToken,
uint256 sourceAmount)
public
view
returns (uint256 destAmount)
{
if (globalPricingPaused) {
return 0;
}
(uint256 rate, uint256 precision) = _queryRate(
sourceToken,
destToken
);
destAmount = sourceAmount
.mul(rate)
.div(precision);
}
function checkPriceDisagreement(
address sourceToken,
address destToken,
uint256 sourceAmount,
uint256 destAmount,
uint256 maxSlippage)
public
view
returns (uint256 sourceToDestSwapRate)
{
require(!globalPricingPaused, "pricing is paused");
(uint256 rate, uint256 precision) = _queryRate(
sourceToken,
destToken
);
rate = rate
.mul(WEI_PRECISION)
.div(precision);
sourceToDestSwapRate = destAmount
.mul(WEI_PRECISION)
.div(sourceAmount);
uint256 spreadValue = sourceToDestSwapRate > rate ?
sourceToDestSwapRate - rate :
rate - sourceToDestSwapRate;
if (spreadValue != 0) {
spreadValue = spreadValue
.mul(WEI_PERCENT_PRECISION)
.div(sourceToDestSwapRate);
require(
spreadValue <= maxSlippage,
"price disagreement"
);
}
}
function amountInEth(
address tokenAddress,
uint256 amount)
public
view
returns (uint256 ethAmount)
{
if (tokenAddress == address(wethToken)) {
ethAmount = amount;
} else {
(uint toEthRate, uint256 toEthPrecision) = queryRate(
tokenAddress,
address(wethToken)
);
ethAmount = amount
.mul(toEthRate)
.div(toEthPrecision);
}
}
function getMaxDrawdown(
address loanToken,
address collateralToken,
uint256 loanAmount,
uint256 collateralAmount,
uint256 margin)
public
view
returns (uint256 maxDrawdown)
{
uint256 loanToCollateralAmount;
if (collateralToken == loanToken) {
loanToCollateralAmount = loanAmount;
} else {
(uint256 rate, uint256 precision) = queryRate(
loanToken,
collateralToken
);
loanToCollateralAmount = loanAmount
.mul(rate)
.div(precision);
}
uint256 combined = loanToCollateralAmount
.add(
loanToCollateralAmount
.mul(margin)
.div(WEI_PERCENT_PRECISION)
);
maxDrawdown = collateralAmount > combined ?
collateralAmount - combined :
0;
}
function getCurrentMarginAndCollateralSize(
address loanToken,
address collateralToken,
uint256 loanAmount,
uint256 collateralAmount)
public
view
returns (uint256 currentMargin, uint256 collateralInEthAmount)
{
(currentMargin,) = getCurrentMargin(
loanToken,
collateralToken,
loanAmount,
collateralAmount
);
collateralInEthAmount = amountInEth(
collateralToken,
collateralAmount
);
}
function getCurrentMargin(
address loanToken,
address collateralToken,
uint256 loanAmount,
uint256 collateralAmount)
public
view
returns (uint256 currentMargin, uint256 collateralToLoanRate)
{
uint256 collateralToLoanAmount;
if (collateralToken == loanToken) {
collateralToLoanAmount = collateralAmount;
collateralToLoanRate = WEI_PRECISION;
} else {
uint256 collateralToLoanPrecision;
(collateralToLoanRate, collateralToLoanPrecision) = queryRate(
collateralToken,
loanToken
);
collateralToLoanRate = collateralToLoanRate
.mul(WEI_PRECISION)
.div(collateralToLoanPrecision);
collateralToLoanAmount = collateralAmount
.mul(collateralToLoanRate)
.div(WEI_PRECISION);
}
if (loanAmount != 0 && collateralToLoanAmount >= loanAmount) {
currentMargin = collateralToLoanAmount
.sub(loanAmount)
.mul(WEI_PERCENT_PRECISION)
.div(loanAmount);
}
}
function shouldLiquidate(
address loanToken,
address collateralToken,
uint256 loanAmount,
uint256 collateralAmount,
uint256 maintenanceMargin)
public
view
returns (bool)
{
(uint256 currentMargin,) = getCurrentMargin(
loanToken,
collateralToken,
loanAmount,
collateralAmount
);
return currentMargin <= maintenanceMargin;
}
// returns per unit gas cost denominated in payToken * 1e36
function getFastGasPrice(
address payToken)
external
view
returns (uint256)
{
uint256 gasPrice = _getFastGasPrice()
.mul(WEI_PRECISION * WEI_PRECISION);
if (payToken != address(wethToken) && payToken != address(0)) {
require(!globalPricingPaused, "pricing is paused");
(uint256 rate, uint256 precision) = _queryRate(
address(wethToken),
payToken
);
gasPrice = gasPrice
.mul(rate)
.div(precision);
}
return gasPrice;
}
/*
* Owner functions
*/
function setPriceFeed(
address[] calldata tokens,
IPriceFeedsExt[] calldata feeds)
external
onlyOwner
{
require(tokens.length == feeds.length, "count mismatch");
for (uint256 i = 0; i < tokens.length; i++) {
pricesFeeds[tokens[i]] = feeds[i];
}
}
function setDecimals(
IERC20Detailed[] calldata tokens)
external
onlyOwner
{
for (uint256 i = 0; i < tokens.length; i++) {
decimals[address(tokens[i])] = tokens[i].decimals();
}
}
function setGlobalPricingPaused(
bool isPaused)
external
onlyOwner
{
globalPricingPaused = isPaused;
emit GlobalPricingPaused(
msg.sender,
isPaused
);
}
/*
* Internal functions
*/
function _queryRate(
address sourceToken,
address destToken)
internal
view
returns (uint256 rate, uint256 precision)
{
if (sourceToken != destToken) {
uint256 sourceRate = _queryRateCall(sourceToken);
uint256 destRate = _queryRateCall(destToken);
rate = sourceRate
.mul(WEI_PRECISION)
.div(destRate);
precision = _getDecimalPrecision(sourceToken, destToken);
} else {
rate = WEI_PRECISION;
precision = WEI_PRECISION;
}
}
function _queryRateCall(
address token)
internal
view
returns (uint256 rate)
{
IPriceFeedsExt _Feed = pricesFeeds[token];
require(address(_Feed) != address(0), "unsupported price feed");
rate = uint256(_Feed.latestAnswer());
require(rate != 0 && (rate >> 128) == 0, "price error");
}
function _getDecimalPrecision(
address sourceToken,
address destToken)
internal
view
returns(uint256)
{
if (sourceToken == destToken) {
return WEI_PRECISION;
} else {
uint256 sourceTokenDecimals = decimals[sourceToken];
if (sourceTokenDecimals == 0)
sourceTokenDecimals = IERC20Detailed(sourceToken).decimals();
uint256 destTokenDecimals = decimals[destToken];
if (destTokenDecimals == 0)
destTokenDecimals = IERC20Detailed(destToken).decimals();
if (destTokenDecimals >= sourceTokenDecimals)
return 10**(SafeMath.sub(18, destTokenDecimals-sourceTokenDecimals));
else
return 10**(SafeMath.add(18, sourceTokenDecimals-destTokenDecimals));
}
}
function _getFastGasPrice()
internal
view
returns (uint256 gasPrice)
{
return 10e9;
}
}
// SPDX-License-Identifier: MIT
// This example code is designed to quickly deploy an example contract using Remix.
pragma solidity ^0.6.7;
import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
contract PriceConsumerV3 {
AggregatorV3Interface internal priceFeed;
/**
* Network: Kovan
* Aggregator: ETH/USD
* Address: 0x9326BFA02ADD2366b30bacB125260Af641031331
*/
constructor() public {
priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);
}
/**
* Returns the latest price
*/
function getLatestPrice() public view returns (int) {
(
uint80 roundID,
int price,
uint startedAt,
uint timeStamp,
uint80 answeredInRound
) = priceFeed.latestRoundData();
return price;
}
}
// SPDX-License-Identifier: MIT
/** This example code is designed to quickly deploy an example contract using Remix.
* If you have never used Remix, try our example walkthrough: https://docs.chain.link/docs/example-walkthrough
* You will need testnet ETH and LINK.
* - Kovan ETH faucet: https://faucet.kovan.network/
* - Kovan LINK faucet: https://kovan.chain.link/
*/
pragma solidity 0.6.6;
import "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol";
contract RandomNumberConsumer is VRFConsumerBase {
bytes32 internal keyHash;
uint256 internal fee;
uint256 public randomResult;
/**
* Constructor inherits VRFConsumerBase
*
* Network: Kovan
* Chainlink VRF Coordinator address: 0xdD3782915140c8f3b190B5D67eAc6dc5760C46E9
* LINK token address: 0xa36085F69e2889c224210F603D836748e7dC0088
* Key Hash: 0x6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f4
*/
constructor()
VRFConsumerBase(
0xdD3782915140c8f3b190B5D67eAc6dc5760C46E9, // VRF Coordinator
0xa36085F69e2889c224210F603D836748e7dC0088 // LINK Token
) public
{
keyHash = 0x6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f4;
fee = 0.1 * 10 ** 18; // 0.1 LINK
}
/**
* Requests randomness
*/
function getRandomNumber() public returns (bytes32 requestId) {
require(LINK.balanceOf(address(this)) > fee, "Not enough LINK - fill contract with faucet");
return requestRandomness(keyHash, fee);
}
/**
* Callback function used by VRF Coordinator
*/
function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
randomResult = randomness;
}
/**
* Withdraw LINK from this contract
*
* DO NOT USE THIS IN PRODUCTION AS IT CAN BE CALLED BY ANY ADDRESS.
* THIS IS PURELY FOR EXAMPLE PURPOSES.
*/
function withdrawLink() external {
require(LINK.transfer(msg.sender, LINK.balanceOf(address(this))), "Unable to transfer");
}
}
/**
*Submitted for verification at BscScan.com on 2021-07-21
*/
/**
*Submitted for verification at BscScan.com on 2021-06-10
*/
/**
*Submitted for verification at BscScan.com on 2021-06-07
*/
/**
*Submitted for verification at BscScan.com on 2021-06-05
*/
/**
*Submitted for verification at BscScan.com on 2021-06-04
*/
// SPDX-License-Identifier: MIT
interface IERC20 {
function balanceOf(address owner) external view returns (uint);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
}
contract Context {
// Empty internal constructor, to prevent people from mistakenly deploying
// an instance of this contract, which should be used via inheritance.
constructor() internal {}
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
// pragma solidity ^0.7.0;
library SafeMathChainlink {
function add( uint256 a, uint256 b) internal pure returns ( uint256 ) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub( uint256 a, uint256 b ) internal pure returns ( uint256) {
require(b <= a, "SafeMath: subtraction overflow");
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (
uint256
)
{
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(
uint256 a,
uint256 b
)
internal
pure
returns (
uint256
)
{
// Solidity only automatically asserts when dividing by 0
require(b > 0, "SafeMath: division by zero");
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(
uint256 a,
uint256 b
)
internal
pure
returns (
uint256
)
{
require(b != 0, "SafeMath: modulo by zero");
return a % b;
}
}
// @dev using 0.8.0.
// Note: If changing this, Safe Math has to be implemented!
pragma solidity 0.6.12;
// pragma experimental ABIEncoderV2;
// pragma solidity >=0.7.0 <0.9.0;
// import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.7/dev/VRFConsumerBase.sol";
contract rigelSmartBidContract is Context{
using SafeMathChainlink for uint256;
IERC20 rigel;
struct biddersInfo {
uint256 _bidAmount;
uint timeOut;
address user;
}
struct CreateBid {
IERC20 token;
address highestBidder;
uint256 bidAmount;
uint timeOut;
uint256 totalBidding;
uint256 highestbid;
}
mapping (uint256 => mapping (address => biddersInfo)) public bidders;
mapping (uint256 => address[]) public projBidders;
mapping (address => bool) public isAdminAddress;
// mapping ()
// mapping (uint256 => mapping(bytes32 => address[])) allBiddersInEachBid;
address public owner;
address private devAddress;
uint256 public fee;
uint256 public randomresult;
CreateBid[] public createBid;
uint256[] public random;
uint256 public numberOfRandomAddess;
uint256 amountToBeShare;
event bidding(
address indexed userAddress,
uint256 stakedAmount,
uint256 Time
);
event luckyWinner(
address indexed lWinner,
uint256 amount,
uint time
);
event oneRand(
address indexed oneWinner,
uint256 amountWin,
uint time
);
event claimer(
address indexed userAddress,
uint256 stakedAmount,
uint256 Time
);
// 0xd9145CCE52D386f254917e481eB44e9943F39138
// 5000000000000000000
// constructor( IERC20 bidToken, uint _bidTimeOut, uint256 _bidAmount) {
// uint bidTimeOut = block.timestamp + _bidTimeOut;
// owner = msg.sender;
// createBid.push(CreateBid({
// token : bidToken,
// timeOut: bidTimeOut,
// bidAmount: _bidAmount,
// totalBidding: 0
// }));
// }
// 35000000000000000000
/*
100000000000000000
rigel token: 0x9f0227A21987c1fFab1785BA3eBa60578eC1501B
VRF Coordinator: 0xa555fC018435bef5A13C6c6870a9d4C11DEC329C
LINK TOKEN: 0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06
KEYHASH: 0xcaf3c3727e033261d383b315559476f48034c13b18f8cafed4d871abe5049186
*/
// CreateBid store;
constructor(IERC20 bidToken) public {
uint bidTimeOut = block.timestamp.add(600);
owner = _msgSender();
isAdminAddress[_msgSender()] = true;
address dummyAddress = 0x0000000000000000000000000000000000000000;
numberOfRandomAddess = 3;
amountToBeShare = 10E18;
// address[] memory path;
// path[0] = dummyAddress;
createBid.push(CreateBid({
token : bidToken,
highestBidder: dummyAddress,
timeOut: bidTimeOut,
bidAmount: 5e18,
totalBidding: 0,
highestbid: 0
// status: true
}));
}
// Only allow the owner to do specific tasks
modifier onlyOwner() {
require(_msgSender() == owner,"RGP: YOU ARE NOT THE OWNER.");
_;
}
// Only allow the dev to do specific tasks
modifier onlydev() {
require(_msgSender() == devAddress,"RGP: YOU ARE NOT THE DEV.");
_;
}
// only allow admin addresses to do specific
modifier onlyAdmin() {
require(isAdminAddress[_msgSender()]);
_;
}
function bidLength() external view returns (uint256) {
return createBid.length;
}
function multipleAdmin(address[] calldata _adminAddress, bool status) external onlyOwner {
if (status == true) {
for(uint256 i = 0; i < _adminAddress.length; i++) {
isAdminAddress[_adminAddress[i]] = status;
}
} else{
for(uint256 i = 0; i < _adminAddress.length; i++) {
delete(isAdminAddress[_adminAddress[i]]);
}
}
}
function addBid(uint256 _bidAmount, IERC20 bidToken, uint _bidTimeOut) public onlyAdmin {
uint bidTimeOut = block.timestamp.add(_bidTimeOut);
address dummyAddress = 0x0000000000000000000000000000000000000000;
address[] memory path;
path[0] = dummyAddress;
createBid.push(CreateBid({
token : bidToken,
highestBidder : 0x0000000000000000000000000000000000000000,
timeOut: bidTimeOut,
bidAmount : _bidAmount,
totalBidding : 0,
highestbid : 0
// status : true
}));
}
function submitBid(uint256 _pid, uint256 _quantity) public returns(bytes32 _userHash){
CreateBid storage bid = createBid[_pid];
biddersInfo storage bidder = bidders[_pid][_msgSender()];
// if (block.timestamp > bid.timeOut) {
// bid.status = false;
// }
if (bid.totalBidding == 0) {
require(_quantity >= bid.bidAmount, "BID AMOUNT MUST BE GREATER THAN 5");
}
if (bid.totalBidding > 0) {
require(_quantity > bid.highestbid, "BID MUST BE GREATER THAN HIGHEST BID");
require(_quantity <= (bid.highestbid.add(2E18)), "BID AMOUNT MUST BE LESS THAN OR EQUAL TO 2RGP");
require(block.timestamp < bid.timeOut, "RGP: BIDDING TIME ELLAPSE");
}
if (bidder.user == _msgSender()) {
UPBid(_pid, _quantity);
} else {
bid.token.transferFrom(_msgSender(), address(this), _quantity);
updatePool(_pid, _quantity);
projBidders[_pid].push(_msgSender());
}
emit bidding(_msgSender(), _quantity, block.timestamp);
return _userHash;
}
/// Withdraw a bid that was overbid.
// function claim(uint256 _pid) public {
// CreateBid storage bid = createBid[_pid];
// require(block.timestamp > bid.timeOut, "RGP: BIDDING IS STILL ON PROGRESS");
// require(bid.highestBidder != 0x0000000000000000000000000000000000000000, "SORRY, INVALID ADDRESS");
// require(bid.highestBidder != address(0), "SORRY, INVALID ADDRESS");
// require(bid.highestBidder == _msgSender(), "SORRY, YOU ARE NOT THE TOP BIDDER");
// uint _amount = bid.totalBidding.mul(30E18).div(100E18);
// bid.token.transfer(_msgSender(), _amount);
// bid.totalBidding = bid.totalBidding.sub(_amount);
// expand();
// emit claimer(_msgSender(), _amount, block.timestamp);
// }
function claim() internal returns (uint256[] memory expandedValues) {
uint256 length = createBid.length;
for (uint256 pid = 0; pid < length; ++pid){
CreateBid storage bid = createBid[pid];
if(block.timestamp >= bid.timeOut){
uint256 projLength = projBidders[pid].length;
for (uint256 i = projLength.sub(numberOfRandomAddess); i < projLength; i++) {
expandedValues[i] = projLength;
address wallet = projBidders[pid][expandedValues[i]];
uint256 _amount = bid.totalBidding.mul(amountToBeShare).div(100E18);
bid.token.transfer(wallet, _amount);
emit luckyWinner(wallet, _amount, block.timestamp);
}
}
}
random = expandedValues;
return expandedValues;
}
function amountShareAmongBidders(uint256 _newAmount) public onlydev {
amountToBeShare = _newAmount;
}
function changeNumberOfandAddress(uint256 newNumber) public onlydev {
numberOfRandomAddess = newNumber;
}
function getBidTimeOut(uint256 _pid) public view returns(uint256 _timeout) {
CreateBid storage bid = createBid[_pid];
return bid.timeOut;
}
function projID(uint256 _pid) public view returns(uint256) {
return projBidders[_pid].length;
}
function devClaimer(uint256 _pid) public onlydev(){
CreateBid storage bid = createBid[_pid];
uint256 devAmount = bid.totalBidding.mul(20E18).div(100E18);
bid.token.transfer(devAddress, devAmount);
emit claimer(_msgSender(), devAmount, block.timestamp);
}
function getTopBid(uint256 _pid) public view returns (address, uint256, uint) {
CreateBid storage bid = createBid[_pid];
return (bid.highestBidder, bid.highestbid, bid.timeOut);
}
function totalBid(uint256 _pid) public view returns (uint256 _bidAmount) {
CreateBid storage bid = createBid[_pid];
return (bid.totalBidding);
}
function UPBid(uint256 _pid, uint256 _quantity) internal {
biddersInfo storage bidder = bidders[_pid][msg.sender];
CreateBid storage bid = createBid[_pid];
bidder._bidAmount = bidder._bidAmount.add(_quantity);
bidder.timeOut = block.timestamp;
bidder.user = _msgSender();
bid.highestbid = bidder._bidAmount.add(_quantity);
bid.highestBidder = _msgSender();
bid.totalBidding = bid.totalBidding.add(_quantity);
}
function updatePool(uint256 _pid, uint256 _quantity) internal {
CreateBid storage bid = createBid[_pid];
biddersInfo storage bidder = bidders[_pid][_msgSender()];
bid.highestbid = _quantity;
bid.highestBidder = _msgSender();
bid.totalBidding = bid.totalBidding.add(_quantity);
bidder._bidAmount = _quantity;
bidder.timeOut = block.timestamp;
bidder.user = _msgSender();
}
function withdrawBidToken(uint256 _pid, address _to, uint256 _amount) onlyOwner external {
CreateBid storage bid = createBid[_pid];
uint256 Balalance = bid.token.balanceOf(address(this));
if (_amount > Balalance) {
bid.token.transfer(_to, Balalance);
} else {
bid.token.transfer(_to, _amount);
}
}
function withdrawBNB() external onlyOwner {
_msgSender().transfer(address(this).balance);
}
function setDev( address _devAddress) external onlyOwner () {
devAddress = _devAddress;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment