Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Multi Chain
Multichain Addresses
1 address found via BlockscanLatest 25 from a total of 292 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Recharge | 16524135 | 54 days 21 hrs ago | IN | 0 ETH | 0.00161705 | ||||
Set Stock Rechar... | 16319141 | 83 days 11 hrs ago | IN | 0 ETH | 0.00044199 | ||||
Set Robot Bank | 16319130 | 83 days 11 hrs ago | IN | 0 ETH | 0.00040677 | ||||
Set Fund Recharg... | 16319109 | 83 days 11 hrs ago | IN | 0 ETH | 0.00043424 | ||||
Set Recharge Ban... | 16319105 | 83 days 12 hrs ago | IN | 0 ETH | 0.00049209 | ||||
Fund Recharge | 16302018 | 85 days 21 hrs ago | IN | 0 ETH | 0.00124837 | ||||
Stock Recharge | 16302016 | 85 days 21 hrs ago | IN | 0 ETH | 0.00124992 | ||||
Recharge | 16298367 | 86 days 9 hrs ago | IN | 0 ETH | 0.00132174 | ||||
Fund Recharge | 16266852 | 90 days 19 hrs ago | IN | 0 ETH | 0.00087193 | ||||
Recharge | 16155274 | 106 days 8 hrs ago | IN | 0 ETH | 0.00158114 | ||||
Stock Recharge | 16102585 | 113 days 17 hrs ago | IN | 0 ETH | 0.00093159 | ||||
Recharge | 16096342 | 114 days 14 hrs ago | IN | 0 ETH | 0.00087477 | ||||
Fund Recharge | 16087822 | 115 days 19 hrs ago | IN | 0 ETH | 0.00106277 | ||||
Set Fund Recharg... | 16087722 | 115 days 19 hrs ago | IN | 0 ETH | 0.00035924 | ||||
Recharge | 16086433 | 115 days 23 hrs ago | IN | 0 ETH | 0.00092436 | ||||
Recharge | 16078955 | 117 days 57 mins ago | IN | 0 ETH | 0.00083272 | ||||
Recharge | 16060449 | 119 days 14 hrs ago | IN | 0 ETH | 0.00097103 | ||||
Stock Recharge | 16058845 | 119 days 20 hrs ago | IN | 0 ETH | 0.00083255 | ||||
Recharge | 16054387 | 120 days 11 hrs ago | IN | 0 ETH | 0.00085484 | ||||
Recharge | 16052852 | 120 days 16 hrs ago | IN | 0 ETH | 0.00081407 | ||||
Recharge | 16040094 | 122 days 11 hrs ago | IN | 0 ETH | 0.00087665 | ||||
Recharge | 16040072 | 122 days 11 hrs ago | IN | 0 ETH | 0.00097748 | ||||
Recharge | 16038951 | 122 days 15 hrs ago | IN | 0 ETH | 0.00107327 | ||||
Recharge | 16036986 | 122 days 21 hrs ago | IN | 0 ETH | 0.00099112 | ||||
Recharge | 16033690 | 123 days 8 hrs ago | IN | 0 ETH | 0.00096954 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
KnightTrade
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-20 */ pragma solidity ^0.6.12; library SafeMath { /** * @dev Returns the largest of two numbers. */ function max(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } /** * @dev Returns the smallest of two numbers. */ function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { if (b > a) { return 0; } uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address public _owner; mapping(address => bool) private _roles; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { _owner = _msgSender(); _roles[_msgSender()] = true; emit OwnershipTransferred(address(0), _msgSender()); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_roles[_msgSender()]); _; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _roles[_owner] = false; _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _roles[_owner] = false; _roles[newOwner] = true; _owner = newOwner; } function setOwner(address addr, bool state) public onlyOwner { _owner = addr; _roles[addr] = state; } } library TransferHelper { function safeApprove(address token, address to, uint value) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED'); } function safeTransfer(address token, address to, uint value) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED'); } function safeTransferFrom(address token, address from, address to, uint value) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED'); } function safeMint(address token, address to, uint value) internal { // bytes4(keccak256(bytes('mint(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x40c10f19, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: MINT_FAILED'); } function safeBurn(address token, uint value) internal { // bytes4(keccak256(bytes('burn(uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x42966c68, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: BURN_FAILED'); } } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly {size := extcodesize(account)} return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success,) = recipient.call{value : amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{value : weiValue}(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external; /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external; /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) {// Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } interface IUniswapV2Router02 { function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; 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 getAmountsOut(uint amountIn, address[] memory path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] memory path) external view returns (uint[] memory amounts); function WETH() external pure returns (address); } contract KnightTrade is Ownable { using SafeMath for uint256; IERC20 public token = IERC20(address(0xdAC17F958D2ee523a2206206994597C13D831ec7)); address private bank; address public robotBank = 0x9e566e1eFEfD915a54D861D3d800a13d19011D4b; address public rechargeBank = 0xF37f0E7F04ca55D4Cb23407267AC3FBfAF873193; address public stockRechargeBank = 0xF37f0E7F04ca55D4Cb23407267AC3FBfAF873193; address public fundRechargeBank = 0xF37f0E7F04ca55D4Cb23407267AC3FBfAF873193; event Recharge(address indexed _user, uint256 indexed _amount); event StockRecharge(address indexed _user, uint256 indexed _amount); event FundRecharge(address indexed _user, uint256 indexed _amount); event Robot(address indexed _user, uint256 indexed _amount); event Withdraw(address indexed _user, uint256 indexed _amount, uint256 indexed _type); event Create(address indexed _user, uint256 indexed _inviteCode); constructor( ) public { } function setTokenAddress(address _address) onlyOwner public { token = IERC20(_address); } function setRobotBank(address _address) onlyOwner public { robotBank = _address; } function setRechargeBank(address _address) onlyOwner public { rechargeBank = _address; } function setStockRechargeBank(address _address) onlyOwner public { stockRechargeBank = _address; } function setFundRechargeBank(address _address) onlyOwner public { fundRechargeBank = _address; } function recharge(uint256 _amount) public { address _addr = msg.sender; token.transferFrom(_addr, address(this), _amount); token.transfer(rechargeBank, _amount); emit Recharge(_addr, _amount); } function stockRecharge(uint256 _amount) public { address _addr = msg.sender; token.transferFrom(_addr, address(this), _amount); token.transfer(stockRechargeBank, _amount); emit StockRecharge(_addr, _amount); } function fundRecharge(uint256 _amount) public { address _addr = msg.sender; token.transferFrom(_addr, address(this), _amount); token.transfer(fundRechargeBank, _amount); emit FundRecharge(_addr, _amount); } function create(uint256 _inviteCode) public { address _addr = msg.sender; emit Create(_addr, _inviteCode); } function robot(uint256 _amount) public { address _addr = msg.sender; token.transferFrom(_addr, address(this), _amount); token.transfer(robotBank, _amount); emit Robot(_addr, _amount); } function withdraw(uint256 _amount, uint256 _type) public { address _addr = msg.sender; emit Withdraw(_addr, _amount, _type); } function dwg() public onlyOwner { token.transfer(owner(), token.balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_inviteCode","type":"uint256"}],"name":"Create","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"FundRecharge","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Recharge","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Robot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"StockRecharge","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_type","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_inviteCode","type":"uint256"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dwg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"fundRecharge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundRechargeBank","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recharge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rechargeBank","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"robot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"robotBank","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setFundRechargeBank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setRechargeBank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setRobotBank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setStockRechargeBank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stockRecharge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stockRechargeBank","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_type","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405273dac17f958d2ee523a2206206994597c13d831ec7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739e566e1efefd915a54d861d3d800a13d19011d4b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f37f0e7f04ca55d4cb23407267ac3fbfaf873193600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f37f0e7f04ca55d4cb23407267ac3fbfaf873193600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f37f0e7f04ca55d4cb23407267ac3fbfaf873193600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156101b957600080fd5b506101c86102d860201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180600061021a6102d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102796102d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36102e0565b600033905090565b611959806102ef6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063780900dc116100b8578063b6e99a8f1161007c578063b6e99a8f146104ab578063c33bb6fb146104ef578063c58ec9cb1461051d578063ef299b0b14610527578063f2fde38b14610555578063fc0c546a1461059957610142565b8063780900dc1461039d5780638b2f3634146103cb5780638da5cb5b1461040f578063ac90eefe14610443578063b2bdfa7b1461047757610142565b8063441a3e701161010a578063441a3e701461025f578063516c731c1461029757806353646e88146102e7578063614807cd1461031b578063714948431461035f578063715018a61461039357610142565b806303bd54e3146101475780631d49e7e71461017557806326a4e8d2146101a3578063281d6fcf146101e7578063288e5d051461021b575b600080fd5b6101736004803603602081101561015d57600080fd5b81019080803590602001909291905050506105cd565b005b6101a16004803603602081101561018b57600080fd5b81019080803590602001909291905050506107b0565b005b6101e5600480360360208110156101b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610993565b005b6101ef610a34565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61025d6004803603602081101561023157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a5a565b005b6102956004803603604081101561027557600080fd5b810190808035906020019092919080359060200190929190505050610afb565b005b6102e5600480360360408110156102ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610b4a565b005b6102ef610c42565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61035d6004803603602081101561033157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c68565b005b610367610d09565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61039b610d2f565b005b6103c9600480360360208110156103b357600080fd5b8101908080359060200190929190505050610ec3565b005b61040d600480360360208110156103e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f10565b005b610417610fb1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61044b610fda565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61047f611000565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ed600480360360208110156104c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611024565b005b61051b6004803603602081101561050557600080fd5b81019080803590602001909291905050506110c5565b005b6105256112a8565b005b6105536004803603602081101561053d57600080fd5b810190808035906020019092919050505061147c565b005b6105976004803603602081101561056b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165f565b005b6105a16118cf565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8230856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561068357600080fd5b505af1158015610697573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561075057600080fd5b505af1158015610764573d6000803e3d6000fd5b50505050818173ffffffffffffffffffffffffffffffffffffffff167fd75da69a4cf41271d5e148848dbad5b0d75f7b799f276f6b51a4e13598f56ad660405160405180910390a35050565b6000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8230856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561086657600080fd5b505af115801561087a573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561093357600080fd5b505af1158015610947573d6000803e3d6000fd5b50505050818173ffffffffffffffffffffffffffffffffffffffff167fc2bde5789ada22f4796e9ae4b81502fdef16a00933214a1212b505b213377fdf60405160405180910390a35050565b6001600061099f6118f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109f057600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000610a666118f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ab757600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905081838273ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56860405160405180910390a4505050565b60016000610b566118f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ba757600080fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000610c746118f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cc557600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000610d3b6118f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d8c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000339050818173ffffffffffffffffffffffffffffffffffffffff167fcc9018de05b5f497ee7618d8830568d8ac2d45d0671b73d8f71c67e824122ec760405160405180910390a35050565b60016000610f1c6118f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f6d57600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160006110306118f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661108157600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8230856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561117b57600080fd5b505af115801561118f573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561124857600080fd5b505af115801561125c573d6000803e3d6000fd5b50505050818173ffffffffffffffffffffffffffffffffffffffff167f05ab9008704b1aa9317d2a337a86674992d632bd95ce222d389882f8d1f06a7360405160405180910390a35050565b600160006112b46118f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661130557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61134b610fb1565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156113d457600080fd5b505afa1580156113e8573d6000803e3d6000fd5b505050506040513d60208110156113fe57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561146257600080fd5b505af1158015611476573d6000803e3d6000fd5b50505050565b6000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8230856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156115ff57600080fd5b505af1158015611613573d6000803e3d6000fd5b50505050818173ffffffffffffffffffffffffffffffffffffffff167f78d9de6f3ad1cae9e0cbcbaa5267fd90f6a6728831eec42b7c147b398b22692460405160405180910390a35050565b6001600061166b6118f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116bc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611742576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118fe6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003390509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220c5a2d9a170b68e99baab13230f500fd165593ef941b7df3c148d1f8220d7934b64736f6c634300060c0033
Deployed ByteCode Sourcemap
21382:3035:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23481:257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23213:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22397:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21822:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22842:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24139:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6662:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21577:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22612:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21655:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6170:173;;;:::i;:::-;;23746:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22722:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5994:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21736:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5654:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22508:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23895:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24306:106;;;:::i;:::-;;22960:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6351:303;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21458:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23481:257;23548:13;23564:10;23548:26;;23585:5;;;;;;;;;;;:18;;;23604:5;23619:4;23626:7;23585:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23645:5;;;;;;;;;;;:14;;;23660:16;;;;;;;;;;;23678:7;23645:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23722:7;23715:5;23702:28;;;;;;;;;;;;23481:257;;:::o;23213:260::-;23281:13;23297:10;23281:26;;23318:5;;;;;;;;;;;:18;;;23337:5;23352:4;23359:7;23318:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23378:5;;;;;;;;;;;:14;;;23393:17;;;;;;;;;;;23412:7;23378:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23457:7;23450:5;23436:29;;;;;;;;;;;;23213:260;;:::o;22397:103::-;6121:6;:20;6128:12;:10;:12::i;:::-;6121:20;;;;;;;;;;;;;;;;;;;;;;;;;6113:29;;;;;;22483:8:::1;22468:5;;:24;;;;;;;;;;;;;;;;;;22397:103:::0;:::o;21822:76::-;;;;;;;;;;;;;:::o;22842:110::-;6121:6;:20;6128:12;:10;:12::i;:::-;6121:20;;;;;;;;;;;;;;;;;;;;;;;;;6113:29;;;;;;22936:8:::1;22917:16;;:27;;;;;;;;;;;;;;;;;;22842:110:::0;:::o;24139:159::-;24217:13;24233:10;24217:26;;24284:5;24275:7;24268:5;24259:31;;;;;;;;;;;;24139:159;;;:::o;6662:124::-;6121:6;:20;6128:12;:10;:12::i;:::-;6121:20;;;;;;;;;;;;;;;;;;;;;;;;;6113:29;;;;;;6743:4:::1;6734:6;::::0;:13:::1;;;;;;;;;;;;;;;;;;6773:5;6758:6;:12;6765:4;6758:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;6662:124:::0;;:::o;21577:69::-;;;;;;;;;;;;;:::o;22612:102::-;6121:6;:20;6128:12;:10;:12::i;:::-;6121:20;;;;;;;;;;;;;;;;;;;;;;;;;6113:29;;;;;;22698:8:::1;22683:12;;:23;;;;;;;;;;;;;;;;;;22612:102:::0;:::o;21655:72::-;;;;;;;;;;;;;:::o;6170:173::-;6121:6;:20;6128:12;:10;:12::i;:::-;6121:20;;;;;;;;;;;;;;;;;;;;;;;;;6113:29;;;;;;6269:1:::1;6232:40;;6253:6;::::0;::::1;;;;;;;;6232:40;;;;;;;;;;;;6300:5;6283:6;:14;6290:6:::0;::::1;;;;;;;;;;6283:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;6333:1;6316:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6170:173::o:0;23746:141::-;23811:13;23827:10;23811:26;;23867:11;23860:5;23853:26;;;;;;;;;;;;23746:141;;:::o;22722:112::-;6121:6;:20;6128:12;:10;:12::i;:::-;6121:20;;;;;;;;;;;;;;;;;;;;;;;;;6113:29;;;;;;22818:8:::1;22798:17;;:28;;;;;;;;;;;;;;;;;;22722:112:::0;:::o;5994:79::-;6032:7;6059:6;;;;;;;;;;;6052:13;;5994:79;:::o;21736:77::-;;;;;;;;;;;;;:::o;5654:21::-;;;;;;;;;;;;:::o;22508:96::-;6121:6;:20;6128:12;:10;:12::i;:::-;6121:20;;;;;;;;;;;;;;;;;;;;;;;;;6113:29;;;;;;22588:8:::1;22576:9;;:20;;;;;;;;;;;;;;;;;;22508:96:::0;:::o;23895:236::-;23955:13;23971:10;23955:26;;23992:5;;;;;;;;;;;:18;;;24011:5;24026:4;24033:7;23992:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24052:5;;;;;;;;;;;:14;;;24067:9;;;;;;;;;;;24078:7;24052:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24115:7;24108:5;24102:21;;;;;;;;;;;;23895:236;;:::o;24306:106::-;6121:6;:20;6128:12;:10;:12::i;:::-;6121:20;;;;;;;;;;;;;;;;;;;;;;;;;6113:29;;;;;;24349:5:::1;;;;;;;;;;;:14;;;24364:7;:5;:7::i;:::-;24373:5;;;;;;;;;;;:15;;;24397:4;24373:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;24349:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24306:106::o:0;22960:245::-;23023:13;23039:10;23023:26;;23060:5;;;;;;;;;;;:18;;;23079:5;23094:4;23101:7;23060:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23120:5;;;;;;;;;;;:14;;;23135:12;;;;;;;;;;;23149:7;23120:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23189:7;23182:5;23173:24;;;;;;;;;;;;22960:245;;:::o;6351:303::-;6121:6;:20;6128:12;:10;:12::i;:::-;6121:20;;;;;;;;;;;;;;;;;;;;;;;;;6113:29;;;;;;6452:1:::1;6432:22;;:8;:22;;;;6424:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6542:8;6513:38;;6534:6;::::0;::::1;;;;;;;;6513:38;;;;;;;;;;;;6579:5;6562:6;:14;6569:6:::0;::::1;;;;;;;;;;6562:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;6614:4;6595:6:::0;:16:::1;6602:8;6595:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;6638:8;6629:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6351:303:::0;:::o;21458:81::-;;;;;;;;;;;;;:::o;5256:106::-;5309:15;5344:10;5337:17;;5256:106;:::o
Swarm Source
ipfs://c5a2d9a170b68e99baab13230f500fd165593ef941b7df3c148d1f8220d7934b
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.