Overview
ETH Balance
ETH Value
$0.00Multichain Info
Latest 25 from a total of 2,913 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Forward Call | 15912855 | 23 mins ago | IN | 0 ETH | 0.00000203 | ||||
| Process Report | 15902014 | 3 hrs ago | IN | 0 ETH | 0.0000015 | ||||
| Process Report | 15902010 | 3 hrs ago | IN | 0 ETH | 0.0000015 | ||||
| Harvest Strategy | 15902008 | 3 hrs ago | IN | 0 ETH | 0.00000188 | ||||
| Harvest Strategy | 15902005 | 3 hrs ago | IN | 0 ETH | 0.00000153 | ||||
| Forward Call | 15898820 | 4 hrs ago | IN | 0 ETH | 0.00000186 | ||||
| Forward Call | 15895202 | 5 hrs ago | IN | 0 ETH | 0.00000172 | ||||
| Forward Call | 15895200 | 5 hrs ago | IN | 0 ETH | 0.0000019 | ||||
| Forward Call | 15889790 | 6 hrs ago | IN | 0 ETH | 0.00000186 | ||||
| Forward Call | 15886171 | 7 hrs ago | IN | 0 ETH | 0.00000203 | ||||
| Forward Call | 15886168 | 7 hrs ago | IN | 0 ETH | 0.0000019 | ||||
| Harvest Strategy | 15878946 | 9 hrs ago | IN | 0 ETH | 0.00000173 | ||||
| Forward Call | 15878937 | 9 hrs ago | IN | 0 ETH | 0.00000203 | ||||
| Forward Call | 15871415 | 11 hrs ago | IN | 0 ETH | 0.0000019 | ||||
| Forward Call | 15863400 | 14 hrs ago | IN | 0 ETH | 0.00000203 | ||||
| Forward Call | 15863398 | 14 hrs ago | IN | 0 ETH | 0.0000019 | ||||
| Forward Call | 15853540 | 16 hrs ago | IN | 0 ETH | 0.00000203 | ||||
| Forward Call | 15853538 | 16 hrs ago | IN | 0 ETH | 0.0000019 | ||||
| Harvest Strategy | 15853534 | 16 hrs ago | IN | 0 ETH | 0.00000171 | ||||
| Forward Call | 15843822 | 19 hrs ago | IN | 0 ETH | 0.00000203 | ||||
| Forward Call | 15843820 | 19 hrs ago | IN | 0 ETH | 0.00000172 | ||||
| Forward Call | 15843818 | 19 hrs ago | IN | 0 ETH | 0.0000019 | ||||
| Forward Call | 15836592 | 21 hrs ago | IN | 0 ETH | 0.00000205 | ||||
| Forward Call | 15836589 | 21 hrs ago | IN | 0 ETH | 0.0000019 | ||||
| Harvest Strategy | 15828239 | 23 hrs ago | IN | 0 ETH | 0.00000157 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | ||||
|---|---|---|---|---|---|---|---|
| 15912855 | 23 mins ago | 0 ETH | |||||
| 15902014 | 3 hrs ago | 0 ETH | |||||
| 15902010 | 3 hrs ago | 0 ETH | |||||
| 15902008 | 3 hrs ago | 0 ETH | |||||
| 15902005 | 3 hrs ago | 0 ETH | |||||
| 15898820 | 4 hrs ago | 0 ETH | |||||
| 15895202 | 5 hrs ago | 0 ETH | |||||
| 15895200 | 5 hrs ago | 0 ETH | |||||
| 15889790 | 6 hrs ago | 0 ETH | |||||
| 15886171 | 7 hrs ago | 0 ETH | |||||
| 15886168 | 7 hrs ago | 0 ETH | |||||
| 15878946 | 9 hrs ago | 0 ETH | |||||
| 15878937 | 9 hrs ago | 0 ETH | |||||
| 15871415 | 11 hrs ago | 0 ETH | |||||
| 15863400 | 14 hrs ago | 0 ETH | |||||
| 15863398 | 14 hrs ago | 0 ETH | |||||
| 15853540 | 16 hrs ago | 0 ETH | |||||
| 15853538 | 16 hrs ago | 0 ETH | |||||
| 15853534 | 16 hrs ago | 0 ETH | |||||
| 15843822 | 19 hrs ago | 0 ETH | |||||
| 15843820 | 19 hrs ago | 0 ETH | |||||
| 15843818 | 19 hrs ago | 0 ETH | |||||
| 15836592 | 21 hrs ago | 0 ETH | |||||
| 15836589 | 21 hrs ago | 0 ETH | |||||
| 15828239 | 23 hrs ago | 0 ETH |
Cross-Chain Transactions
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
import {Multicall} from "../lib/openzeppelin/contracts/utils/Multicall.sol";
interface StrategyAPI {
function tend() external;
function report() external returns (uint256 _profit, uint256 _loss);
}
interface VaultAPI {
function process_report(
address
) external returns (uint256 _gain, uint256 _loss);
}
contract TKSRelayer is Multicall {
address public owner;
address public governance;
mapping(address => bool) public keepers;
constructor(address _owner) {
owner = _owner;
governance = _owner;
}
function harvestStrategy(
address _strategyAddress
) public onlyKeepers returns (uint256 profit, uint256 loss) {
(profit, loss) = StrategyAPI(_strategyAddress).report();
}
function tendStrategy(address _strategyAddress) public onlyKeepers {
StrategyAPI(_strategyAddress).tend();
}
function processReport(
address _vaultAddress,
address _strategyAddress
) public onlyKeepers returns (uint256 gain, uint256 loss) {
(gain, loss) = VaultAPI(_vaultAddress).process_report(_strategyAddress);
}
function forwardCall(
address debtAllocatorAddress,
bytes memory data
) public onlyKeepers returns (bool success) {
(success, ) = debtAllocatorAddress.call(data);
require(success, "forwardCall failed");
}
function setKeeper(
address _address,
bool _allowed
) external virtual onlyAuthorized {
keepers[_address] = _allowed;
}
/**
@notice Changes the `owner` address.
@param _owner The new address to assign as `owner`.
*/
function setOwner(address _owner) external onlyAuthorized {
require(_owner != address(0));
owner = _owner;
}
/**
@notice Changes the `governance` address.
@param _governance The new address to assign as `governance`.
*/
function setGovernance(address _governance) external onlyGovernance {
require(_governance != address(0));
governance = _governance;
}
modifier onlyKeepers() {
require(
msg.sender == owner ||
keepers[msg.sender] == true ||
msg.sender == governance,
"!keeper yHaaSProxy"
);
_;
}
modifier onlyAuthorized() {
require(msg.sender == owner || msg.sender == governance, "!authorized");
_;
}
modifier onlyGovernance() {
require(msg.sender == governance, "!governance");
_;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0-rc.0) (utils/Address.sol)
pragma solidity ^0.8.20;
import {Errors} from "./Errors.sol";
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev There's no code at `target` (it is not a contract).
*/
error AddressEmptyCode(address target);
/**
* @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://consensys.net/diligence/blog/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.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
if (address(this).balance < amount) {
revert Errors.InsufficientBalance(address(this).balance, amount);
}
(bool success, bytes memory returndata) = recipient.call{value: amount}("");
if (!success) {
_revert(returndata);
}
}
/**
* @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 or custom error, it is bubbled
* up by this function (like regular Solidity function calls). However, if
* the call reverted with no returned reason, this function reverts with a
* {Errors.FailedCall} error.
*
* 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.
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0);
}
/**
* @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`.
*/
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
if (address(this).balance < value) {
revert Errors.InsufficientBalance(address(this).balance, value);
}
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResultFromTarget(target, success, returndata);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResultFromTarget(target, success, returndata);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResultFromTarget(target, success, returndata);
}
/**
* @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target
* was not a contract or bubbling up the revert reason (falling back to {Errors.FailedCall}) in case
* of an unsuccessful call.
*/
function verifyCallResultFromTarget(
address target,
bool success,
bytes memory returndata
) internal view returns (bytes memory) {
if (!success) {
_revert(returndata);
} else {
// only check if target is a contract if the call was successful and the return data is empty
// otherwise we already know that it was a contract
if (returndata.length == 0 && target.code.length == 0) {
revert AddressEmptyCode(target);
}
return returndata;
}
}
/**
* @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the
* revert reason or with a default {Errors.FailedCall} error.
*/
function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {
if (!success) {
_revert(returndata);
} else {
return returndata;
}
}
/**
* @dev Reverts with returndata if present. Otherwise reverts with {Errors.FailedCall}.
*/
function _revert(bytes memory returndata) private pure {
// 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
assembly ("memory-safe") {
revert(add(returndata, 0x20), mload(returndata))
}
} else {
revert Errors.FailedCall();
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.1.0) (utils/Errors.sol)
pragma solidity ^0.8.20;
/**
* @dev Collection of common custom errors used in multiple contracts
*
* IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.
* It is recommended to avoid relying on the error API for critical functionality.
*
* _Available since v5.1._
*/
library Errors {
/**
* @dev The ETH balance of the account is not enough to perform the operation.
*/
error InsufficientBalance(uint256 balance, uint256 needed);
/**
* @dev A call to an address target failed. The target may have reverted.
*/
error FailedCall();
/**
* @dev The deployment failed.
*/
error FailedDeployment();
/**
* @dev A necessary precompile is missing.
*/
error MissingPrecompile(address);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.3.0) (utils/Multicall.sol)
pragma solidity ^0.8.20;
import {Address} from "./Address.sol";
import {Context} from "./Context.sol";
/**
* @dev Provides a function to batch together multiple calls in a single external call.
*
* Consider any assumption about calldata validation performed by the sender may be violated if it's not especially
* careful about sending transactions invoking {multicall}. For example, a relay address that filters function
* selectors won't filter calls nested within a {multicall} operation.
*
* NOTE: Since 5.0.1 and 4.9.4, this contract identifies non-canonical contexts (i.e. `msg.sender` is not {Context-_msgSender}).
* If a non-canonical context is identified, the following self `delegatecall` appends the last bytes of `msg.data`
* to the subcall. This makes it safe to use with {ERC2771Context}. Contexts that don't affect the resolution of
* {Context-_msgSender} are not propagated to subcalls.
*/
abstract contract Multicall is Context {
/**
* @dev Receives and executes a batch of function calls on this contract.
* @custom:oz-upgrades-unsafe-allow-reachable delegatecall
*/
function multicall(bytes[] calldata data) external virtual returns (bytes[] memory results) {
bytes memory context = msg.sender == _msgSender()
? new bytes(0)
: msg.data[msg.data.length - _contextSuffixLength():];
results = new bytes[](data.length);
for (uint256 i = 0; i < data.length; i++) {
results[i] = Address.functionDelegateCall(address(this), bytes.concat(data[i], context));
}
return results;
}
}{
"evmVersion": "shanghai",
"libraries": {},
"metadata": {
"appendCBOR": true,
"bytecodeHash": "ipfs",
"useLiteralContent": false
},
"optimizer": {
"enabled": true,
"runs": 1000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": [
"@openzeppelin/contracts/=lib/openzeppelin/contracts/",
"createx-forge/=lib/createx-forge/",
"ds-test/=lib/createx-forge/lib/forge-std/lib/ds-test/src/",
"erc4626-tests/=lib/openzeppelin/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"halmos-cheatcodes/=lib/openzeppelin/lib/halmos-cheatcodes/src/",
"openzeppelin/=lib/openzeppelin/"
],
"viaIR": true
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[{"internalType":"address","name":"debtAllocatorAddress","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"forwardCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_strategyAddress","type":"address"}],"name":"harvestStrategy","outputs":[{"internalType":"uint256","name":"profit","type":"uint256"},{"internalType":"uint256","name":"loss","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"keepers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultAddress","type":"address"},{"internalType":"address","name":"_strategyAddress","type":"address"}],"name":"processReport","outputs":[{"internalType":"uint256","name":"gain","type":"uint256"},{"internalType":"uint256","name":"loss","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_allowed","type":"bool"}],"name":"setKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_strategyAddress","type":"address"}],"name":"tendStrategy","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60803461007857601f610b9338819003918201601f19168301916001600160401b0383118484101761007c5780849260209460405283398101031261007857516001600160a01b038116908190036100785760018060a01b031981815f5416175f556001541617600155604051610b0290816100918239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60406080815260049081361015610014575f80fd5b5f91823560e01c90816313af403514610824578163216269461461075d57816322bee494146106315783826328071d9614610546575081633bbd64bc1461050a5781635aa6e675146104e257816361f13e00146103f45781638da5cb5b146103ce578163ab033ea91461032d578163ac9650d814610110575063d1b9e8531461009b575f80fd5b3461010c578060031936011261010c576100b3610891565b9060243591821515809303610108576001600160a01b039081855416331480156100fb575b6100e1906109ae565b168352600260205282209060ff8019835416911617905580f35b50600154821633146100d8565b8380fd5b5080fd5b82843461032a576020918260031936011261010c5783359267ffffffffffffffff9283851161032a573660238601121561032a57848601359484861161010c576024906005973683898b1b840101116101085785519685880197808910828a11176103185788889796989b9a949b5287815261018b846109f9565b9861019888519a8b6108ab565b848a52601f199b8c6101a9876109f9565b018a5b8181106103095750503681900360421901908a5b87811061023e575050505050505050508151948180870193818852865180955284818901931b880101950193965b8388106101fb5786860387f35b9091929394838080600193603f198b820301875285601f8b51610229815180928187528780880191016108fd565b011601019701930197019690939291936101ee565b888e9f9e82909d9b9c9d1b8301013583811215610305578201898101359087821161030157604401908036038213610301578e6102c78f8f8f91956102a76102b384938a988f8f6102d79c5195838794868601998a37840191858301938a8552519384916108fd565b010380845201826108ab565b5190305af46102c061097f565b9030610a39565b6102d18383610a11565b52610a11565b505f1981146102ef576001019d9c9d9a99989a6101c0565b888a601189634e487b7160e01b835252fd5b8b80fd5b8a80fd5b60608d82018b015289016101ac565b84604184634e487b7160e01b5f52525ffd5b80fd5b9190503461038757602036600319011261038757610349610891565b600154926001600160a01b0392838516330361038b575050169081156103875773ffffffffffffffffffffffffffffffffffffffff19161760015580f35b8280fd5b906020606492519162461bcd60e51b8352820152600b60248201527f21676f7665726e616e63650000000000000000000000000000000000000000006044820152fd5b50503461010c578160031936011261010c576001600160a01b0360209254169051908152f35b8391503461010c57602036600319011261010c57828291610413610891565b906001600160a01b039182855416331480156104c8575b80156104bb575b61043a9061091e565b835194859384927f2606a10b000000000000000000000000000000000000000000000000000000008452165af19081156104b1578291610482575b5082519182526020820152f35b90506104a49150823d84116104aa575b61049c81836108ab565b810190610969565b83610475565b503d610492565b83513d84823e3d90fd5b5060015483163314610431565b503385526002602052600160ff858720541615151461042a565b50503461010c578160031936011261010c576020906001600160a01b03600154169051908152f35b50503461010c57602036600319011261010c5760ff816020936001600160a01b03610533610891565b1681526002855220541690519015158152f35b9291503461062d57602036600319011261062d57610562610891565b6001600160a01b03908185541633148015610613575b8015610606575b6105889061091e565b16803b15610601578390828451809681937f440368a30000000000000000000000000000000000000000000000000000000083525af180156105f7576105cc578380f35b67ffffffffffffffff83116105e45750525f80808380f35b836041602492634e487b7160e01b835252fd5b82513d86823e3d90fd5b505050fd5b506001548216331461057f565b503385526002602052600160ff8587205416151514610578565b5050fd5b90503461038757816003193601126103875761064b610891565b926024359367ffffffffffffffff851161010c573660238601121561010c578483013594610678866108e1565b610684865191826108ab565b868152602081019136602489830101116107595790846020898298999a60248496018737830101526106d26001600160a01b0380845416331490811561073e575b8115610730575b5061091e565b51925af16106de61097f565b50156106ee576020825160018152f35b6020606492519162461bcd60e51b8352820152601260248201527f666f727761726443616c6c206661696c656400000000000000000000000000006044820152fd5b90506001541633145f6106cc565b33855260026020528a85205460ff16151560011491506106c5565b8480fd5b8391503461010c578260031936011261010c57610778610891565b90602435906001600160a01b038083168093036107595785929185826024938254163314801561080a575b80156107fd575b6107b39061091e565b855196879586947f6ec2b8d4000000000000000000000000000000000000000000000000000000008652850152165af19081156104b1578291610482575082519182526020820152f35b50600154811633146107aa565b503382526002602052600160ff87842054161515146107a3565b833461032a57602036600319011261032a5761083e610891565b8154906001600160a01b039081831633148015610884575b61085f906109ae565b169081156103875773ffffffffffffffffffffffffffffffffffffffff191617815580f35b5060015482163314610856565b600435906001600160a01b03821682036108a757565b5f80fd5b90601f8019910116810190811067ffffffffffffffff8211176108cd57604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116108cd57601f01601f191660200190565b5f5b83811061090e5750505f910152565b81810151838201526020016108ff565b1561092557565b606460405162461bcd60e51b815260206004820152601260248201527f216b656570657220794861615350726f787900000000000000000000000000006044820152fd5b91908260409103126108a7576020825192015190565b3d156109a9573d90610990826108e1565b9161099e60405193846108ab565b82523d5f602084013e565b606090565b156109b557565b606460405162461bcd60e51b815260206004820152600b60248201527f21617574686f72697a65640000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff81116108cd5760051b60200190565b8051821015610a255760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90610a785750805115610a4e57602081519101fd5b60046040517fd6bda275000000000000000000000000000000000000000000000000000000008152fd5b81511580610ac3575b610a89575090565b6024906001600160a01b03604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15610a8156fea26469706673582212203bdd9ba2301ac4e5f2f076e0175919edc5d4d1db17d7266e883c4446cfdb7df364736f6c63430008140033000000000000000000000000623d4a04e19328244924d1dee48252987c02fc0a
Deployed Bytecode
0x60406080815260049081361015610014575f80fd5b5f91823560e01c90816313af403514610824578163216269461461075d57816322bee494146106315783826328071d9614610546575081633bbd64bc1461050a5781635aa6e675146104e257816361f13e00146103f45781638da5cb5b146103ce578163ab033ea91461032d578163ac9650d814610110575063d1b9e8531461009b575f80fd5b3461010c578060031936011261010c576100b3610891565b9060243591821515809303610108576001600160a01b039081855416331480156100fb575b6100e1906109ae565b168352600260205282209060ff8019835416911617905580f35b50600154821633146100d8565b8380fd5b5080fd5b82843461032a576020918260031936011261010c5783359267ffffffffffffffff9283851161032a573660238601121561032a57848601359484861161010c576024906005973683898b1b840101116101085785519685880197808910828a11176103185788889796989b9a949b5287815261018b846109f9565b9861019888519a8b6108ab565b848a52601f199b8c6101a9876109f9565b018a5b8181106103095750503681900360421901908a5b87811061023e575050505050505050508151948180870193818852865180955284818901931b880101950193965b8388106101fb5786860387f35b9091929394838080600193603f198b820301875285601f8b51610229815180928187528780880191016108fd565b011601019701930197019690939291936101ee565b888e9f9e82909d9b9c9d1b8301013583811215610305578201898101359087821161030157604401908036038213610301578e6102c78f8f8f91956102a76102b384938a988f8f6102d79c5195838794868601998a37840191858301938a8552519384916108fd565b010380845201826108ab565b5190305af46102c061097f565b9030610a39565b6102d18383610a11565b52610a11565b505f1981146102ef576001019d9c9d9a99989a6101c0565b888a601189634e487b7160e01b835252fd5b8b80fd5b8a80fd5b60608d82018b015289016101ac565b84604184634e487b7160e01b5f52525ffd5b80fd5b9190503461038757602036600319011261038757610349610891565b600154926001600160a01b0392838516330361038b575050169081156103875773ffffffffffffffffffffffffffffffffffffffff19161760015580f35b8280fd5b906020606492519162461bcd60e51b8352820152600b60248201527f21676f7665726e616e63650000000000000000000000000000000000000000006044820152fd5b50503461010c578160031936011261010c576001600160a01b0360209254169051908152f35b8391503461010c57602036600319011261010c57828291610413610891565b906001600160a01b039182855416331480156104c8575b80156104bb575b61043a9061091e565b835194859384927f2606a10b000000000000000000000000000000000000000000000000000000008452165af19081156104b1578291610482575b5082519182526020820152f35b90506104a49150823d84116104aa575b61049c81836108ab565b810190610969565b83610475565b503d610492565b83513d84823e3d90fd5b5060015483163314610431565b503385526002602052600160ff858720541615151461042a565b50503461010c578160031936011261010c576020906001600160a01b03600154169051908152f35b50503461010c57602036600319011261010c5760ff816020936001600160a01b03610533610891565b1681526002855220541690519015158152f35b9291503461062d57602036600319011261062d57610562610891565b6001600160a01b03908185541633148015610613575b8015610606575b6105889061091e565b16803b15610601578390828451809681937f440368a30000000000000000000000000000000000000000000000000000000083525af180156105f7576105cc578380f35b67ffffffffffffffff83116105e45750525f80808380f35b836041602492634e487b7160e01b835252fd5b82513d86823e3d90fd5b505050fd5b506001548216331461057f565b503385526002602052600160ff8587205416151514610578565b5050fd5b90503461038757816003193601126103875761064b610891565b926024359367ffffffffffffffff851161010c573660238601121561010c578483013594610678866108e1565b610684865191826108ab565b868152602081019136602489830101116107595790846020898298999a60248496018737830101526106d26001600160a01b0380845416331490811561073e575b8115610730575b5061091e565b51925af16106de61097f565b50156106ee576020825160018152f35b6020606492519162461bcd60e51b8352820152601260248201527f666f727761726443616c6c206661696c656400000000000000000000000000006044820152fd5b90506001541633145f6106cc565b33855260026020528a85205460ff16151560011491506106c5565b8480fd5b8391503461010c578260031936011261010c57610778610891565b90602435906001600160a01b038083168093036107595785929185826024938254163314801561080a575b80156107fd575b6107b39061091e565b855196879586947f6ec2b8d4000000000000000000000000000000000000000000000000000000008652850152165af19081156104b1578291610482575082519182526020820152f35b50600154811633146107aa565b503382526002602052600160ff87842054161515146107a3565b833461032a57602036600319011261032a5761083e610891565b8154906001600160a01b039081831633148015610884575b61085f906109ae565b169081156103875773ffffffffffffffffffffffffffffffffffffffff191617815580f35b5060015482163314610856565b600435906001600160a01b03821682036108a757565b5f80fd5b90601f8019910116810190811067ffffffffffffffff8211176108cd57604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116108cd57601f01601f191660200190565b5f5b83811061090e5750505f910152565b81810151838201526020016108ff565b1561092557565b606460405162461bcd60e51b815260206004820152601260248201527f216b656570657220794861615350726f787900000000000000000000000000006044820152fd5b91908260409103126108a7576020825192015190565b3d156109a9573d90610990826108e1565b9161099e60405193846108ab565b82523d5f602084013e565b606090565b156109b557565b606460405162461bcd60e51b815260206004820152600b60248201527f21617574686f72697a65640000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff81116108cd5760051b60200190565b8051821015610a255760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90610a785750805115610a4e57602081519101fd5b60046040517fd6bda275000000000000000000000000000000000000000000000000000000008152fd5b81511580610ac3575b610a89575090565b6024906001600160a01b03604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15610a8156fea26469706673582212203bdd9ba2301ac4e5f2f076e0175919edc5d4d1db17d7266e883c4446cfdb7df364736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000623d4a04e19328244924d1dee48252987c02fc0a
-----Decoded View---------------
Arg [0] : _owner (address): 0x623d4A04e19328244924D1dee48252987C02fC0a
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000623d4a04e19328244924d1dee48252987c02fc0a
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.