Overview
ETH Balance
ETH Value
$0.00Latest 8 from a total of 8 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw Funds | 11647996 | 431 days ago | IN | 0 ETH | 0.00000024 | ||||
| Withdraw Funds | 11346304 | 438 days ago | IN | 0 ETH | 0.00000019 | ||||
| Withdraw Funds | 10969305 | 447 days ago | IN | 0 ETH | 0.00000014 | ||||
| Withdraw Funds | 10804598 | 451 days ago | IN | 0 ETH | 0.0000002 | ||||
| Withdraw Funds | 10801060 | 451 days ago | IN | 0 ETH | 0.00000019 | ||||
| Withdraw Funds | 10738285 | 452 days ago | IN | 0 ETH | 0.00000041 | ||||
| Withdraw Funds | 10141047 | 466 days ago | IN | 0 ETH | 0.00000033 | ||||
| Set Game Address... | 10139412 | 466 days ago | IN | 0 ETH | 0.00000029 |
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Contract Source Code (Solidity)
/**
*Submitted for verification at blastscan.io on 2024-10-16
*/
// File: @openzeppelin/contracts/utils/Context.sol
// 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;
}
}
// File: @openzeppelin/contracts/access/Ownable.sol
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* The initial owner is set to the address provided by the deployer. This can
* later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @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);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @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 a `value` amount of tokens 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 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
* https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
*
* Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
* presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't
* need to send a transaction, and thus is not required to hold Ether at all.
*
* ==== Security Considerations
*
* There are two important considerations concerning the use of `permit`. The first is that a valid permit signature
* expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be
* considered as an intention to spend the allowance in any specific way. The second is that because permits have
* built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should
* take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be
* generally recommended is:
*
* ```solidity
* function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {
* try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}
* doThing(..., value);
* }
*
* function doThing(..., uint256 value) public {
* token.safeTransferFrom(msg.sender, address(this), value);
* ...
* }
* ```
*
* Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of
* `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also
* {SafeERC20-safeTransferFrom}).
*
* Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so
* contracts should have entry points that don't rely on permit.
*/
interface IERC20Permit {
/**
* @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,
* given ``owner``'s signed approval.
*
* IMPORTANT: The same issues {IERC20-approve} has related to transaction
* ordering also apply here.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `deadline` must be a timestamp in the future.
* - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`
* over the EIP712-formatted function arguments.
* - the signature must use ``owner``'s current nonce (see {nonces}).
*
* For more information on the signature format, see the
* https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP
* section].
*
* CAUTION: See Security Considerations above.
*/
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
/**
* @dev Returns the current nonce for `owner`. This value must be
* included whenever a signature is generated for {permit}.
*
* Every successful call to {permit} increases ``owner``'s nonce by one. This
* prevents a signature from being used multiple times.
*/
function nonces(address owner) external view returns (uint256);
/**
* @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.
*/
// solhint-disable-next-line func-name-mixedcase
function DOMAIN_SEPARATOR() external view returns (bytes32);
}
// File: @openzeppelin/contracts/utils/Address.sol
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)
pragma solidity ^0.8.20;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev The ETH balance of the account is not enough to perform the operation.
*/
error AddressInsufficientBalance(address account);
/**
* @dev There's no code at `target` (it is not a contract).
*/
error AddressEmptyCode(address target);
/**
* @dev A call to an address target failed. The target may have reverted.
*/
error FailedInnerCall();
/**
* @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 AddressInsufficientBalance(address(this));
}
(bool success, ) = recipient.call{value: amount}("");
if (!success) {
revert FailedInnerCall();
}
}
/**
* @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
* {FailedInnerCall} 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 AddressInsufficientBalance(address(this));
}
(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 {FailedInnerCall}) 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 {FailedInnerCall} 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 {FailedInnerCall}.
*/
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
/// @solidity memory-safe-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert FailedInnerCall();
}
}
}
// File: @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)
pragma solidity ^0.8.20;
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using Address for address;
/**
* @dev An operation with an ERC20 token failed.
*/
error SafeERC20FailedOperation(address token);
/**
* @dev Indicates a failed `decreaseAllowance` request.
*/
error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);
/**
* @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,
* non-reverting calls are assumed to be successful.
*/
function safeTransfer(IERC20 token, address to, uint256 value) internal {
_callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));
}
/**
* @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the
* calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.
*/
function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
_callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));
}
/**
* @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,
* non-reverting calls are assumed to be successful.
*/
function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
uint256 oldAllowance = token.allowance(address(this), spender);
forceApprove(token, spender, oldAllowance + value);
}
/**
* @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no
* value, non-reverting calls are assumed to be successful.
*/
function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {
unchecked {
uint256 currentAllowance = token.allowance(address(this), spender);
if (currentAllowance < requestedDecrease) {
revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);
}
forceApprove(token, spender, currentAllowance - requestedDecrease);
}
}
/**
* @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,
* non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval
* to be set to zero before setting it to a non-zero value, such as USDT.
*/
function forceApprove(IERC20 token, address spender, uint256 value) internal {
bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));
if (!_callOptionalReturnBool(token, approvalCall)) {
_callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));
_callOptionalReturn(token, approvalCall);
}
}
/**
* @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);
if (returndata.length != 0 && !abi.decode(returndata, (bool))) {
revert SafeERC20FailedOperation(address(token));
}
}
/**
* @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).
*
* This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.
*/
function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {
// 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 cannot use {Address-functionCall} here since this should return false
// and not revert is the subcall reverts.
(bool success, bytes memory returndata) = address(token).call(data);
return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;
}
}
// File: IBlastPoints.sol
pragma solidity ^0.8.7;
interface IBlastPoints {
function configurePointsOperator(address operator) external;
function configurePointsOperatorOnBehalf(address contractAddress, address operator) external;
}
// File: House.sol
pragma solidity ^0.8.7;
contract House is Ownable {
event PayoutEvent(address winner, uint amount);
enum State {
CLOSED,
OPEN
}
using SafeERC20 for IERC20;
IERC20 public gameToken;
State public bettingState;
uint private coinLimit;
address public roulette;
modifier betting(State state) {
require(
state == bettingState,
"current betting state does not allow this"
);
_;
}
modifier onlyGame() {
require(msg.sender == roulette, "only roulette can call this function");
_;
}
constructor(
address initialOwner,
address _pointsOperator,
address _BlastPointsAddress,
address tokenAddress
) Ownable(initialOwner) {
gameToken = IERC20(tokenAddress);
bettingState = State.OPEN;
// be sure to use the appropriate testnet/mainnet BlastPoints address
// BlastPoints Testnet address: 0x2fc95838c71e76ec69ff817983BFf17c710F34E0
// BlastPoints Mainnet address: 0x2536FE9ab3F511540F2f9e2eC2A805005C3Dd800
IBlastPoints(_BlastPointsAddress).configurePointsOperator(
_pointsOperator
);
}
function setGameAddresses(address _roulette) external onlyOwner {
roulette = _roulette;
}
function payout(
address winner,
uint amount
) external onlyGame betting(State.OPEN) {
gameToken.safeTransfer(winner, amount);
if (gameToken.balanceOf(address(this)) <= coinLimit) {
bettingState = State.CLOSED;
}
emit PayoutEvent(winner, amount);
}
function openBetting() external onlyOwner betting(State.CLOSED) {
bettingState = State.OPEN;
}
function closeBetting() external onlyOwner betting(State.OPEN) {
bettingState = State.CLOSED;
}
function setCoinLimit(uint newLimit) external onlyOwner {
coinLimit = newLimit;
}
function withdrawFunds(uint amount) external onlyOwner {
gameToken.safeTransfer(owner(), amount);
}
function getCoinLimit() external view onlyOwner returns (uint) {
return coinLimit;
}
function _transferOwner(address newOwner) external onlyOwner {
transferOwnership(newOwner);
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"address","name":"_pointsOperator","type":"address"},{"internalType":"address","name":"_BlastPointsAddress","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"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":false,"internalType":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PayoutEvent","type":"event"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"_transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bettingState","outputs":[{"internalType":"enum House.State","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"closeBetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gameToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoinLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openBetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"winner","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"payout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"roulette","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setCoinLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_roulette","type":"address"}],"name":"setGameAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561000f575f80fd5b50604051611522380380611522833981810160405281019061003191906102aa565b835f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610099919061031d565b60405180910390fd5b6100b18161018b60201b60201c565b508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060146101000a81548160ff0219169083600181111561011757610116610336565b5b02179055508173ffffffffffffffffffffffffffffffffffffffff166336b91f2b846040518263ffffffff1660e01b8152600401610155919061031d565b5f604051808303815f87803b15801561016c575f80fd5b505af115801561017e573d5f803e3d5ffd5b5050505050505050610363565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61027982610250565b9050919050565b6102898161026f565b8114610293575f80fd5b50565b5f815190506102a481610280565b92915050565b5f805f80608085870312156102c2576102c161024c565b5b5f6102cf87828801610296565b94505060206102e087828801610296565b93505060406102f187828801610296565b925050606061030287828801610296565b91505092959194509250565b6103178161026f565b82525050565b5f6020820190506103305f83018461030e565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6111b2806103705f395ff3fe6080604052600436106100e0575f3560e01c80639a6e9c4e1161007e578063e10b020c11610058578063e10b020c1461025f578063e713f12714610275578063f04eb1bc1461029f578063f2fde38b146102c7576100e7565b80639a6e9c4e146101e3578063b703668b1461020b578063c3dfdae614610235576100e7565b806315ac534d116100ba57806315ac534d1461016357806363ee553814610179578063715018a6146101a35780638da5cb5b146101b9576100e7565b806301e7e893146100eb578063117de2fd14610113578063155dd5ee1461013b576100e7565b366100e757005b5f80fd5b3480156100f6575f80fd5b50610111600480360381019061010c9190610d0b565b6102ef565b005b34801561011e575f80fd5b5061013960048036038101906101349190610d69565b610303565b005b348015610146575f80fd5b50610161600480360381019061015c9190610da7565b61055e565b005b34801561016e575f80fd5b506101776105bc565b005b348015610184575f80fd5b5061018d610667565b60405161019a9190610de1565b60405180910390f35b3480156101ae575f80fd5b506101b7610678565b005b3480156101c4575f80fd5b506101cd61068b565b6040516101da9190610e09565b60405180910390f35b3480156101ee575f80fd5b5061020960048036038101906102049190610da7565b6106b2565b005b348015610216575f80fd5b5061021f6106c4565b60405161022c9190610e95565b60405180910390f35b348015610240575f80fd5b506102496106d7565b6040516102569190610f09565b60405180910390f35b34801561026a575f80fd5b506102736106fc565b005b348015610280575f80fd5b506102896107a7565b6040516102969190610e09565b60405180910390f35b3480156102aa575f80fd5b506102c560048036038101906102c09190610d0b565b6107cc565b005b3480156102d2575f80fd5b506102ed60048036038101906102e89190610d0b565b610817565b005b6102f761089b565b61030081610817565b50565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038990610fa2565b60405180910390fd5b60018060149054906101000a900460ff1660018111156103b5576103b4610e22565b5b8160018111156103c8576103c7610e22565b5b14610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90611030565b60405180910390fd5b610454838360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109229092919063ffffffff16565b60025460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b19190610e09565b602060405180830381865afa1580156104cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f09190611062565b11610520575f600160146101000a81548160ff0219169083600181111561051a57610519610e22565b5b02179055505b7f80e009436f30a4f32133e25b51b5349f2842ea9e93ea4fb6cdaaa4b4e518c687838360405161055192919061108d565b60405180910390a1505050565b61056661089b565b6105b961057161068b565b8260015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109229092919063ffffffff16565b50565b6105c461089b565b60018060149054906101000a900460ff1660018111156105e7576105e6610e22565b5b8160018111156105fa576105f9610e22565b5b1461063a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063190611030565b60405180910390fd5b5f600160146101000a81548160ff0219169083600181111561065f5761065e610e22565b5b021790555050565b5f61067061089b565b600254905090565b61068061089b565b6106895f6109a1565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106ba61089b565b8060028190555050565b600160149054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61070461089b565b5f600160149054906101000a900460ff16600181111561072757610726610e22565b5b81600181111561073a57610739610e22565b5b1461077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190611030565b60405180910390fd5b60018060146101000a81548160ff0219169083600181111561079f5761079e610e22565b5b021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107d461089b565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61081f61089b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361088f575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016108869190610e09565b60405180910390fd5b610898816109a1565b50565b6108a3610a62565b73ffffffffffffffffffffffffffffffffffffffff166108c161068b565b73ffffffffffffffffffffffffffffffffffffffff1614610920576108e4610a62565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109179190610e09565b60405180910390fd5b565b61099c838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858560405160240161095592919061108d565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610a69565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f610a93828473ffffffffffffffffffffffffffffffffffffffff16610afe90919063ffffffff16565b90505f815114158015610ab7575080806020019051810190610ab591906110e9565b155b15610af957826040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401610af09190610e09565b60405180910390fd5b505050565b6060610b0b83835f610b13565b905092915050565b606081471015610b5a57306040517fcd786059000000000000000000000000000000000000000000000000000000008152600401610b519190610e09565b60405180910390fd5b5f808573ffffffffffffffffffffffffffffffffffffffff168486604051610b829190611166565b5f6040518083038185875af1925050503d805f8114610bbc576040519150601f19603f3d011682016040523d82523d5f602084013e610bc1565b606091505b5091509150610bd1868383610bdc565b925050509392505050565b606082610bf157610bec82610c69565b610c61565b5f8251148015610c1757505f8473ffffffffffffffffffffffffffffffffffffffff163b145b15610c5957836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401610c509190610e09565b60405180910390fd5b819050610c62565b5b9392505050565b5f81511115610c7b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610cda82610cb1565b9050919050565b610cea81610cd0565b8114610cf4575f80fd5b50565b5f81359050610d0581610ce1565b92915050565b5f60208284031215610d2057610d1f610cad565b5b5f610d2d84828501610cf7565b91505092915050565b5f819050919050565b610d4881610d36565b8114610d52575f80fd5b50565b5f81359050610d6381610d3f565b92915050565b5f8060408385031215610d7f57610d7e610cad565b5b5f610d8c85828601610cf7565b9250506020610d9d85828601610d55565b9150509250929050565b5f60208284031215610dbc57610dbb610cad565b5b5f610dc984828501610d55565b91505092915050565b610ddb81610d36565b82525050565b5f602082019050610df45f830184610dd2565b92915050565b610e0381610cd0565b82525050565b5f602082019050610e1c5f830184610dfa565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110610e6057610e5f610e22565b5b50565b5f819050610e7082610e4f565b919050565b5f610e7f82610e63565b9050919050565b610e8f81610e75565b82525050565b5f602082019050610ea85f830184610e86565b92915050565b5f819050919050565b5f610ed1610ecc610ec784610cb1565b610eae565b610cb1565b9050919050565b5f610ee282610eb7565b9050919050565b5f610ef382610ed8565b9050919050565b610f0381610ee9565b82525050565b5f602082019050610f1c5f830184610efa565b92915050565b5f82825260208201905092915050565b7f6f6e6c7920726f756c657474652063616e2063616c6c20746869732066756e635f8201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b5f610f8c602483610f22565b9150610f9782610f32565b604082019050919050565b5f6020820190508181035f830152610fb981610f80565b9050919050565b7f63757272656e742062657474696e6720737461746520646f6573206e6f7420615f8201527f6c6c6f7720746869730000000000000000000000000000000000000000000000602082015250565b5f61101a602983610f22565b915061102582610fc0565b604082019050919050565b5f6020820190508181035f8301526110478161100e565b9050919050565b5f8151905061105c81610d3f565b92915050565b5f6020828403121561107757611076610cad565b5b5f6110848482850161104e565b91505092915050565b5f6040820190506110a05f830185610dfa565b6110ad6020830184610dd2565b9392505050565b5f8115159050919050565b6110c8816110b4565b81146110d2575f80fd5b50565b5f815190506110e3816110bf565b92915050565b5f602082840312156110fe576110fd610cad565b5b5f61110b848285016110d5565b91505092915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61114082611114565b61114a818561111e565b935061115a818560208601611128565b80840191505092915050565b5f6111718284611136565b91508190509291505056fea2646970667358221220a02c02c26e195c1d94c048ae9ef2638005cde781aae2d740f3024db3ccd6b58864736f6c634300081a003300000000000000000000000051d789cfd37d1ddd44661dbd39a456d77c95d01c0000000000000000000000002612c6c8bad9a8fe35450850c215822c7fbfde400000000000000000000000002536fe9ab3f511540f2f9e2ec2a805005c3dd800000000000000000000000000b1a5700fa2358173fe465e6ea4ff52e36e88e2ad
Deployed Bytecode
0x6080604052600436106100e0575f3560e01c80639a6e9c4e1161007e578063e10b020c11610058578063e10b020c1461025f578063e713f12714610275578063f04eb1bc1461029f578063f2fde38b146102c7576100e7565b80639a6e9c4e146101e3578063b703668b1461020b578063c3dfdae614610235576100e7565b806315ac534d116100ba57806315ac534d1461016357806363ee553814610179578063715018a6146101a35780638da5cb5b146101b9576100e7565b806301e7e893146100eb578063117de2fd14610113578063155dd5ee1461013b576100e7565b366100e757005b5f80fd5b3480156100f6575f80fd5b50610111600480360381019061010c9190610d0b565b6102ef565b005b34801561011e575f80fd5b5061013960048036038101906101349190610d69565b610303565b005b348015610146575f80fd5b50610161600480360381019061015c9190610da7565b61055e565b005b34801561016e575f80fd5b506101776105bc565b005b348015610184575f80fd5b5061018d610667565b60405161019a9190610de1565b60405180910390f35b3480156101ae575f80fd5b506101b7610678565b005b3480156101c4575f80fd5b506101cd61068b565b6040516101da9190610e09565b60405180910390f35b3480156101ee575f80fd5b5061020960048036038101906102049190610da7565b6106b2565b005b348015610216575f80fd5b5061021f6106c4565b60405161022c9190610e95565b60405180910390f35b348015610240575f80fd5b506102496106d7565b6040516102569190610f09565b60405180910390f35b34801561026a575f80fd5b506102736106fc565b005b348015610280575f80fd5b506102896107a7565b6040516102969190610e09565b60405180910390f35b3480156102aa575f80fd5b506102c560048036038101906102c09190610d0b565b6107cc565b005b3480156102d2575f80fd5b506102ed60048036038101906102e89190610d0b565b610817565b005b6102f761089b565b61030081610817565b50565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038990610fa2565b60405180910390fd5b60018060149054906101000a900460ff1660018111156103b5576103b4610e22565b5b8160018111156103c8576103c7610e22565b5b14610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90611030565b60405180910390fd5b610454838360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109229092919063ffffffff16565b60025460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b19190610e09565b602060405180830381865afa1580156104cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f09190611062565b11610520575f600160146101000a81548160ff0219169083600181111561051a57610519610e22565b5b02179055505b7f80e009436f30a4f32133e25b51b5349f2842ea9e93ea4fb6cdaaa4b4e518c687838360405161055192919061108d565b60405180910390a1505050565b61056661089b565b6105b961057161068b565b8260015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109229092919063ffffffff16565b50565b6105c461089b565b60018060149054906101000a900460ff1660018111156105e7576105e6610e22565b5b8160018111156105fa576105f9610e22565b5b1461063a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063190611030565b60405180910390fd5b5f600160146101000a81548160ff0219169083600181111561065f5761065e610e22565b5b021790555050565b5f61067061089b565b600254905090565b61068061089b565b6106895f6109a1565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106ba61089b565b8060028190555050565b600160149054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61070461089b565b5f600160149054906101000a900460ff16600181111561072757610726610e22565b5b81600181111561073a57610739610e22565b5b1461077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190611030565b60405180910390fd5b60018060146101000a81548160ff0219169083600181111561079f5761079e610e22565b5b021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107d461089b565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61081f61089b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361088f575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016108869190610e09565b60405180910390fd5b610898816109a1565b50565b6108a3610a62565b73ffffffffffffffffffffffffffffffffffffffff166108c161068b565b73ffffffffffffffffffffffffffffffffffffffff1614610920576108e4610a62565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109179190610e09565b60405180910390fd5b565b61099c838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858560405160240161095592919061108d565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610a69565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f610a93828473ffffffffffffffffffffffffffffffffffffffff16610afe90919063ffffffff16565b90505f815114158015610ab7575080806020019051810190610ab591906110e9565b155b15610af957826040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401610af09190610e09565b60405180910390fd5b505050565b6060610b0b83835f610b13565b905092915050565b606081471015610b5a57306040517fcd786059000000000000000000000000000000000000000000000000000000008152600401610b519190610e09565b60405180910390fd5b5f808573ffffffffffffffffffffffffffffffffffffffff168486604051610b829190611166565b5f6040518083038185875af1925050503d805f8114610bbc576040519150601f19603f3d011682016040523d82523d5f602084013e610bc1565b606091505b5091509150610bd1868383610bdc565b925050509392505050565b606082610bf157610bec82610c69565b610c61565b5f8251148015610c1757505f8473ffffffffffffffffffffffffffffffffffffffff163b145b15610c5957836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401610c509190610e09565b60405180910390fd5b819050610c62565b5b9392505050565b5f81511115610c7b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610cda82610cb1565b9050919050565b610cea81610cd0565b8114610cf4575f80fd5b50565b5f81359050610d0581610ce1565b92915050565b5f60208284031215610d2057610d1f610cad565b5b5f610d2d84828501610cf7565b91505092915050565b5f819050919050565b610d4881610d36565b8114610d52575f80fd5b50565b5f81359050610d6381610d3f565b92915050565b5f8060408385031215610d7f57610d7e610cad565b5b5f610d8c85828601610cf7565b9250506020610d9d85828601610d55565b9150509250929050565b5f60208284031215610dbc57610dbb610cad565b5b5f610dc984828501610d55565b91505092915050565b610ddb81610d36565b82525050565b5f602082019050610df45f830184610dd2565b92915050565b610e0381610cd0565b82525050565b5f602082019050610e1c5f830184610dfa565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110610e6057610e5f610e22565b5b50565b5f819050610e7082610e4f565b919050565b5f610e7f82610e63565b9050919050565b610e8f81610e75565b82525050565b5f602082019050610ea85f830184610e86565b92915050565b5f819050919050565b5f610ed1610ecc610ec784610cb1565b610eae565b610cb1565b9050919050565b5f610ee282610eb7565b9050919050565b5f610ef382610ed8565b9050919050565b610f0381610ee9565b82525050565b5f602082019050610f1c5f830184610efa565b92915050565b5f82825260208201905092915050565b7f6f6e6c7920726f756c657474652063616e2063616c6c20746869732066756e635f8201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b5f610f8c602483610f22565b9150610f9782610f32565b604082019050919050565b5f6020820190508181035f830152610fb981610f80565b9050919050565b7f63757272656e742062657474696e6720737461746520646f6573206e6f7420615f8201527f6c6c6f7720746869730000000000000000000000000000000000000000000000602082015250565b5f61101a602983610f22565b915061102582610fc0565b604082019050919050565b5f6020820190508181035f8301526110478161100e565b9050919050565b5f8151905061105c81610d3f565b92915050565b5f6020828403121561107757611076610cad565b5b5f6110848482850161104e565b91505092915050565b5f6040820190506110a05f830185610dfa565b6110ad6020830184610dd2565b9392505050565b5f8115159050919050565b6110c8816110b4565b81146110d2575f80fd5b50565b5f815190506110e3816110bf565b92915050565b5f602082840312156110fe576110fd610cad565b5b5f61110b848285016110d5565b91505092915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61114082611114565b61114a818561111e565b935061115a818560208601611128565b80840191505092915050565b5f6111718284611136565b91508190509291505056fea2646970667358221220a02c02c26e195c1d94c048ae9ef2638005cde781aae2d740f3024db3ccd6b58864736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000051d789cfd37d1ddd44661dbd39a456d77c95d01c0000000000000000000000002612c6c8bad9a8fe35450850c215822c7fbfde400000000000000000000000002536fe9ab3f511540f2f9e2ec2a805005c3dd800000000000000000000000000b1a5700fa2358173fe465e6ea4ff52e36e88e2ad
-----Decoded View---------------
Arg [0] : initialOwner (address): 0x51D789cfD37D1DDD44661DBd39a456d77C95d01c
Arg [1] : _pointsOperator (address): 0x2612C6c8BaD9a8FE35450850C215822c7fbFDe40
Arg [2] : _BlastPointsAddress (address): 0x2536FE9ab3F511540F2f9e2eC2A805005C3Dd800
Arg [3] : tokenAddress (address): 0xb1a5700fA2358173Fe465e6eA4Ff52E36e88E2ad
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000051d789cfd37d1ddd44661dbd39a456d77c95d01c
Arg [1] : 0000000000000000000000002612c6c8bad9a8fe35450850c215822c7fbfde40
Arg [2] : 0000000000000000000000002536fe9ab3f511540f2f9e2ec2a805005c3dd800
Arg [3] : 000000000000000000000000b1a5700fa2358173fe465e6ea4ff52e36e88e2ad
Deployed Bytecode Sourcemap
23551:2405:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25809:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24909:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25582:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25362:109;;;;;;;;;;;;;:::i;:::-;;25703:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3361:103;;;;;;;;;;;;;:::i;:::-;;2686:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25479:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23762:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23732:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25246:108;;;;;;;;;;;;;:::i;:::-;;23825:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24798:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3619:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25809:107;2572:13;:11;:13::i;:::-;25881:27:::1;25899:8;25881:17;:27::i;:::-;25809:107:::0;:::o;24909:329::-;24091:8;;;;;;;;;;;24077:22;;:10;:22;;;24069:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;25005:10:::1;23929:12:::0;::::1;;;;;;;;;;23920:21;;;;;;;;:::i;:::-;;:5;:21;;;;;;;;:::i;:::-;;;23898:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;25028:38:::2;25051:6;25059;25028:9;;;;;;;;;;;:22;;;;:38;;;;;:::i;:::-;25121:9;;25083;;;;;;;;;;;:19;;;25111:4;25083:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;25079:107;;25162:12;25147;;:27;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;25079:107;25203:27;25215:6;25223;25203:27;;;;;;;:::i;:::-;;;;;;;;24151:1:::1;24909:329:::0;;:::o;25582:113::-;2572:13;:11;:13::i;:::-;25648:39:::1;25671:7;:5;:7::i;:::-;25680:6;25648:9;;;;;;;;;;;:22;;;;:39;;;;;:::i;:::-;25582:113:::0;:::o;25362:109::-;2572:13;:11;:13::i;:::-;25413:10:::1;23929:12:::0;::::1;;;;;;;;;;23920:21;;;;;;;;:::i;:::-;;:5;:21;;;;;;;;:::i;:::-;;;23898:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;25451:12:::2;25436;;:27;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2596:1:::1;25362:109::o:0;25703:98::-;25760:4;2572:13;:11;:13::i;:::-;25784:9:::1;;25777:16;;25703:98:::0;:::o;3361:103::-;2572:13;:11;:13::i;:::-;3426:30:::1;3453:1;3426:18;:30::i;:::-;3361:103::o:0;2686:87::-;2732:7;2759:6;;;;;;;;;;;2752:13;;2686:87;:::o;25479:95::-;2572:13;:11;:13::i;:::-;25558:8:::1;25546:9;:20;;;;25479:95:::0;:::o;23762:25::-;;;;;;;;;;;;;:::o;23732:23::-;;;;;;;;;;;;;:::o;25246:108::-;2572:13;:11;:13::i;:::-;25296:12:::1;23929;;;;;;;;;;;23920:21;;;;;;;;:::i;:::-;;:5;:21;;;;;;;;:::i;:::-;;;23898:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;25336:10:::2;25321:12:::0;::::2;:25;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2596:1:::1;25246:108::o:0;23825:23::-;;;;;;;;;;;;;:::o;24798:103::-;2572:13;:11;:13::i;:::-;24884:9:::1;24873:8;;:20;;;;;;;;;;;;;;;;;;24798:103:::0;:::o;3619:220::-;2572:13;:11;:13::i;:::-;3724:1:::1;3704:22;;:8;:22;;::::0;3700:93:::1;;3778:1;3750:31;;;;;;;;;;;:::i;:::-;;;;;;;;3700:93;3803:28;3822:8;3803:18;:28::i;:::-;3619:220:::0;:::o;2851:166::-;2922:12;:10;:12::i;:::-;2911:23;;:7;:5;:7::i;:::-;:23;;;2907:103;;2985:12;:10;:12::i;:::-;2958:40;;;;;;;;;;;:::i;:::-;;;;;;;;2907:103;2851:166::o;18696:162::-;18779:71;18799:5;18821;:14;;;18838:2;18842:5;18806:43;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18779:19;:71::i;:::-;18696:162;;;:::o;3999:191::-;4073:16;4092:6;;;;;;;;;;;4073:25;;4118:8;4109:6;;:17;;;;;;;;;;;;;;;;;;4173:8;4142:40;;4163:8;4142:40;;;;;;;;;;;;4062:128;3999:191;:::o;695:98::-;748:7;775:10;768:17;;695:98;:::o;21507:638::-;21931:23;21957:33;21985:4;21965:5;21957:27;;;;:33;;;;:::i;:::-;21931:59;;22026:1;22005:10;:17;:22;;:57;;;;;22043:10;22032:30;;;;;;;;;;;;:::i;:::-;22031:31;22005:57;22001:137;;;22119:5;22086:40;;;;;;;;;;;:::i;:::-;;;;;;;;22001:137;21577:568;21507:638;;:::o;13822:153::-;13897:12;13929:38;13951:6;13959:4;13965:1;13929:21;:38::i;:::-;13922:45;;13822:153;;;;:::o;14310:398::-;14409:12;14462:5;14438:21;:29;14434:110;;;14526:4;14491:41;;;;;;;;;;;:::i;:::-;;;;;;;;14434:110;14555:12;14569:23;14596:6;:11;;14615:5;14622:4;14596:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14554:73;;;;14645:55;14672:6;14680:7;14689:10;14645:26;:55::i;:::-;14638:62;;;;14310:398;;;;;:::o;15786:597::-;15934:12;15964:7;15959:417;;15988:19;15996:10;15988:7;:19::i;:::-;15959:417;;;16237:1;16216:10;:17;:22;:49;;;;;16264:1;16242:6;:18;;;:23;16216:49;16212:121;;;16310:6;16293:24;;;;;;;;;;;:::i;:::-;;;;;;;;16212:121;16354:10;16347:17;;;;15959:417;15786:597;;;;;;:::o;16936:528::-;17089:1;17069:10;:17;:21;17065:392;;;17301:10;17295:17;17358:15;17345:10;17341:2;17337:19;17330:44;17065:392;17428:17;;;;;;;;;;;;;;88:117:1;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:122::-;1332:24;1350:5;1332:24;:::i;:::-;1325:5;1322:35;1312:63;;1371:1;1368;1361:12;1312:63;1259:122;:::o;1387:139::-;1433:5;1471:6;1458:20;1449:29;;1487:33;1514:5;1487:33;:::i;:::-;1387:139;;;;:::o;1532:474::-;1600:6;1608;1657:2;1645:9;1636:7;1632:23;1628:32;1625:119;;;1663:79;;:::i;:::-;1625:119;1783:1;1808:53;1853:7;1844:6;1833:9;1829:22;1808:53;:::i;:::-;1798:63;;1754:117;1910:2;1936:53;1981:7;1972:6;1961:9;1957:22;1936:53;:::i;:::-;1926:63;;1881:118;1532:474;;;;;:::o;2012:329::-;2071:6;2120:2;2108:9;2099:7;2095:23;2091:32;2088:119;;;2126:79;;:::i;:::-;2088:119;2246:1;2271:53;2316:7;2307:6;2296:9;2292:22;2271:53;:::i;:::-;2261:63;;2217:117;2012:329;;;;:::o;2347:118::-;2434:24;2452:5;2434:24;:::i;:::-;2429:3;2422:37;2347:118;;:::o;2471:222::-;2564:4;2602:2;2591:9;2587:18;2579:26;;2615:71;2683:1;2672:9;2668:17;2659:6;2615:71;:::i;:::-;2471:222;;;;:::o;2699:118::-;2786:24;2804:5;2786:24;:::i;:::-;2781:3;2774:37;2699:118;;:::o;2823:222::-;2916:4;2954:2;2943:9;2939:18;2931:26;;2967:71;3035:1;3024:9;3020:17;3011:6;2967:71;:::i;:::-;2823:222;;;;:::o;3051:180::-;3099:77;3096:1;3089:88;3196:4;3193:1;3186:15;3220:4;3217:1;3210:15;3237:114;3319:1;3312:5;3309:12;3299:46;;3325:18;;:::i;:::-;3299:46;3237:114;:::o;3357:129::-;3403:7;3432:5;3421:16;;3438:42;3474:5;3438:42;:::i;:::-;3357:129;;;:::o;3492:::-;3549:9;3582:33;3609:5;3582:33;:::i;:::-;3569:46;;3492:129;;;:::o;3627:145::-;3721:44;3759:5;3721:44;:::i;:::-;3716:3;3709:57;3627:145;;:::o;3778:236::-;3878:4;3916:2;3905:9;3901:18;3893:26;;3929:78;4004:1;3993:9;3989:17;3980:6;3929:78;:::i;:::-;3778:236;;;;:::o;4020:60::-;4048:3;4069:5;4062:12;;4020:60;;;:::o;4086:142::-;4136:9;4169:53;4187:34;4196:24;4214:5;4196:24;:::i;:::-;4187:34;:::i;:::-;4169:53;:::i;:::-;4156:66;;4086:142;;;:::o;4234:126::-;4284:9;4317:37;4348:5;4317:37;:::i;:::-;4304:50;;4234:126;;;:::o;4366:140::-;4430:9;4463:37;4494:5;4463:37;:::i;:::-;4450:50;;4366:140;;;:::o;4512:159::-;4613:51;4658:5;4613:51;:::i;:::-;4608:3;4601:64;4512:159;;:::o;4677:250::-;4784:4;4822:2;4811:9;4807:18;4799:26;;4835:85;4917:1;4906:9;4902:17;4893:6;4835:85;:::i;:::-;4677:250;;;;:::o;4933:169::-;5017:11;5051:6;5046:3;5039:19;5091:4;5086:3;5082:14;5067:29;;4933:169;;;;:::o;5108:223::-;5248:34;5244:1;5236:6;5232:14;5225:58;5317:6;5312:2;5304:6;5300:15;5293:31;5108:223;:::o;5337:366::-;5479:3;5500:67;5564:2;5559:3;5500:67;:::i;:::-;5493:74;;5576:93;5665:3;5576:93;:::i;:::-;5694:2;5689:3;5685:12;5678:19;;5337:366;;;:::o;5709:419::-;5875:4;5913:2;5902:9;5898:18;5890:26;;5962:9;5956:4;5952:20;5948:1;5937:9;5933:17;5926:47;5990:131;6116:4;5990:131;:::i;:::-;5982:139;;5709:419;;;:::o;6134:228::-;6274:34;6270:1;6262:6;6258:14;6251:58;6343:11;6338:2;6330:6;6326:15;6319:36;6134:228;:::o;6368:366::-;6510:3;6531:67;6595:2;6590:3;6531:67;:::i;:::-;6524:74;;6607:93;6696:3;6607:93;:::i;:::-;6725:2;6720:3;6716:12;6709:19;;6368:366;;;:::o;6740:419::-;6906:4;6944:2;6933:9;6929:18;6921:26;;6993:9;6987:4;6983:20;6979:1;6968:9;6964:17;6957:47;7021:131;7147:4;7021:131;:::i;:::-;7013:139;;6740:419;;;:::o;7165:143::-;7222:5;7253:6;7247:13;7238:22;;7269:33;7296:5;7269:33;:::i;:::-;7165:143;;;;:::o;7314:351::-;7384:6;7433:2;7421:9;7412:7;7408:23;7404:32;7401:119;;;7439:79;;:::i;:::-;7401:119;7559:1;7584:64;7640:7;7631:6;7620:9;7616:22;7584:64;:::i;:::-;7574:74;;7530:128;7314:351;;;;:::o;7671:332::-;7792:4;7830:2;7819:9;7815:18;7807:26;;7843:71;7911:1;7900:9;7896:17;7887:6;7843:71;:::i;:::-;7924:72;7992:2;7981:9;7977:18;7968:6;7924:72;:::i;:::-;7671:332;;;;;:::o;8009:90::-;8043:7;8086:5;8079:13;8072:21;8061:32;;8009:90;;;:::o;8105:116::-;8175:21;8190:5;8175:21;:::i;:::-;8168:5;8165:32;8155:60;;8211:1;8208;8201:12;8155:60;8105:116;:::o;8227:137::-;8281:5;8312:6;8306:13;8297:22;;8328:30;8352:5;8328:30;:::i;:::-;8227:137;;;;:::o;8370:345::-;8437:6;8486:2;8474:9;8465:7;8461:23;8457:32;8454:119;;;8492:79;;:::i;:::-;8454:119;8612:1;8637:61;8690:7;8681:6;8670:9;8666:22;8637:61;:::i;:::-;8627:71;;8583:125;8370:345;;;;:::o;8721:98::-;8772:6;8806:5;8800:12;8790:22;;8721:98;;;:::o;8825:147::-;8926:11;8963:3;8948:18;;8825:147;;;;:::o;8978:139::-;9067:6;9062:3;9057;9051:23;9108:1;9099:6;9094:3;9090:16;9083:27;8978:139;;;:::o;9123:386::-;9227:3;9255:38;9287:5;9255:38;:::i;:::-;9309:88;9390:6;9385:3;9309:88;:::i;:::-;9302:95;;9406:65;9464:6;9459:3;9452:4;9445:5;9441:16;9406:65;:::i;:::-;9496:6;9491:3;9487:16;9480:23;;9231:278;9123:386;;;;:::o;9515:271::-;9645:3;9667:93;9756:3;9747:6;9667:93;:::i;:::-;9660:100;;9777:3;9770:10;;9515:271;;;;:::o
Swarm Source
ipfs://a02c02c26e195c1d94c048ae9ef2638005cde781aae2d740f3024db3ccd6b588
Net Worth in USD
Net Worth in ETH
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.