Contract Overview
My Name Tag:
Not Available, login to update
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0x5f55dce7511614a49004db019a8e3d2654a5362de433ca22f089de552de0b9c4 | Send Many | 25770415 | 77 days 4 hrs ago | MicroBuddies: Deployer | IN | 0x6dcba000866060971d3e0bc820dc7ddcbd90b597 | 0 MATIC | 0.9728524 | |
0x4f8f4496f0d58ebe5914bfd579bc995c289b74517056220b790afa2f61cb343a | Send Many | 25770236 | 77 days 4 hrs ago | MicroBuddies: Deployer | IN | 0x6dcba000866060971d3e0bc820dc7ddcbd90b597 | 0 MATIC | 1.2536876 | |
0x7f8737ce80a2865318892b4c81c21c404cbaaeef6d46c812b0298fb03907d4af | Send | 24980440 | 99 days 1 hr ago | MicroBuddies: Deployer | IN | 0x6dcba000866060971d3e0bc820dc7ddcbd90b597 | 0 MATIC | 0.00615155 | |
0x44bd0088dbe4cddfb79a8e107eebf7729770860a16649c3d45b99229f95f5e92 | Set Master | 24968780 | 99 days 8 hrs ago | MicroBuddies: Deployer | IN | 0x6dcba000866060971d3e0bc820dc7ddcbd90b597 | 0 MATIC | 0.001354617131 | |
0xf42d49b559d91e4ba2210cfbc4a2b27500b3e4b9b101a0a441413f045b507552 | 0x60806040 | 24968356 | 99 days 8 hrs ago | MicroBuddies: Deployer | IN | Create: BuddyMasters | 0 MATIC | 0.06979074 |
[ Download CSV Export ]
Contract Name:
BuddyMasters
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
Yes with 25 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.11; // ____ _ _ __ __ _ // | _ \ | | | | | \/ | | | // | |_) |_ _ __| | __| |_ _ | \ / | __ _ ___| |_ ___ _ __ ___ // | _ <| | | |/ _` |/ _` | | | | | |\/| |/ _` / __| __/ _ \ '__/ __| // | |_) | |_| | (_| | (_| | |_| | | | | | (_| \__ \ || __/ | \__ \ // |____/ \__,_|\__,_|\__,_|\__, | |_| |_|\__,_|___/\__\___|_| |___/2022 // __/ | // |___/ import "@openzeppelin/contracts/security/Pausable.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol"; import "./IBuddyCore.sol"; contract BuddyMasters is Ownable, Pausable, ERC721Holder { IBuddyCore public buddyContract; uint8 public t1reps = 2; uint8 public t2reps = 1; uint24 public t1gen = 11; uint24 public t2gen = 21; mapping(address => uint256) public masters; BuddyDetails[] public buddyDetails; struct BuddyDetails { uint256 tokenId; uint8 tier; } constructor(address _buddyCoreAddr) { buddyContract = IBuddyCore(_buddyCoreAddr); } function setBuddyContract(address _buddyCoreAddr) external onlyOwner { buddyContract = IBuddyCore(_buddyCoreAddr); } function pause() external onlyOwner { _pause(); } function unpause() external onlyOwner { _unpause(); } function setMaster(address _wallet, uint256 amount) external onlyOwner { masters[_wallet] = amount; } function setTierCriteria( uint8 _t1reps, uint8 _t2reps, uint24 _t1gen, uint24 _t2gen ) external onlyOwner { t1reps = _t1reps; t2reps = _t2reps; t1gen = _t1gen; t2gen = _t2gen; } function onERC721Received( address op, address from, uint256 tokenId, bytes memory data ) public override returns (bytes4) { require( msg.sender == address(buddyContract), "Not sent from BuddyCore!" ); ( uint8 species, uint8 repMax, uint8 repCur, uint8 special, uint24 gen, uint256 dna, uint256 birth, uint256 totalProduced, uint256 lastRewardTime, uint256 parent, uint256 lock ) = buddyContract.getBuddy(tokenId); BuddyDetails memory bd; bd.tokenId = tokenId; if (repMax - repCur > t1reps && gen < t1gen) { bd.tier = 1; } else if (repMax - repCur > t2reps && gen < t2gen) { bd.tier = 2; } else { bd.tier = 3; } buddyDetails.push(bd); return this.onERC721Received.selector; } // Tier 4 = all tiers function count(uint8 tier) public view returns (uint256 amount) { require(tier > 0, "Tier cannot be 0"); for (uint256 x = 0; x < buddyDetails.length; x++) { if ( buddyDetails[x].tier == tier || (tier == 4 && buddyDetails[x].tier > 0) ) { amount++; } } } function send( uint8 tier, uint256 amount, address receiver ) external { require(count(tier) >= amount, "Insufficient buddies at tier"); require(masters[msg.sender] >= amount, "Unauthorized amount"); unchecked { masters[msg.sender] -= amount; } uint256 index = 0; uint256 length = buddyDetails.length; for (uint256 x = 0; x < length; x++) { if ( buddyDetails[x].tier == tier || (tier == 4 && buddyDetails[x].tier > 0) ) { buddyContract.safeTransferFrom( address(this), receiver, buddyDetails[x].tokenId ); delete buddyDetails[x]; index++; } if (index >= amount) { break; } } } function sendMany(uint8 tier, address[] calldata receivers) external { uint256 amount = receivers.length; require(count(tier) >= amount, "Insufficient buddies at tier"); require(masters[msg.sender] >= amount, "Unauthorized amount"); unchecked { masters[msg.sender] -= amount; } uint256 index = 0; uint256 length = buddyDetails.length; for (uint256 x = 0; x < length; x++) { if ( buddyDetails[x].tier == tier || (tier == 4 && buddyDetails[x].tier > 0) ) { buddyContract.safeTransferFrom( address(this), receivers[index], buddyDetails[x].tokenId ); delete buddyDetails[x]; index++; } if (index >= amount) { break; } } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (security/Pausable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @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. * * By default, the owner account will be the one that deploys the contract. 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; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing 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 { require(newOwner != address(0), "Ownable: new owner is the zero address"); _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); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/utils/ERC721Holder.sol) pragma solidity ^0.8.0; import "../IERC721Receiver.sol"; /** * @dev Implementation of the {IERC721Receiver} interface. * * Accepts all token transfers. * Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}. */ contract ERC721Holder is IERC721Receiver { /** * @dev See {IERC721Receiver-onERC721Received}. * * Always returns `IERC721Receiver.onERC721Received.selector`. */ function onERC721Received( address, address, uint256, bytes memory ) public virtual override returns (bytes4) { return this.onERC721Received.selector; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol) pragma solidity 0.8.11; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IBuddyCore is IERC721 { function getBuddy(uint256 _tokdenI) external view returns ( uint8, uint8, uint8, uint8, uint24, uint256, uint256, uint256, uint256, uint256, uint256 ); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @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; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721Receiver.sol) pragma solidity ^0.8.0; /** * @title ERC721 token receiver interface * @dev Interface for any contract that wants to support safeTransfers * from ERC721 asset contracts. */ interface IERC721Receiver { /** * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} * by `operator` from `from`, this function is called. * * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. */ function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
{ "optimizer": { "enabled": true, "runs": 25 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_buddyCoreAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"buddyContract","outputs":[{"internalType":"contract IBuddyCore","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"buddyDetails","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint8","name":"tier","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"tier","type":"uint8"}],"name":"count","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"masters","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"op","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"tier","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"tier","type":"uint8"},{"internalType":"address[]","name":"receivers","type":"address[]"}],"name":"sendMany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_buddyCoreAddr","type":"address"}],"name":"setBuddyContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaster","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_t1reps","type":"uint8"},{"internalType":"uint8","name":"_t2reps","type":"uint8"},{"internalType":"uint24","name":"_t1gen","type":"uint24"},{"internalType":"uint24","name":"_t2gen","type":"uint24"}],"name":"setTierCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"t1gen","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"t1reps","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"t2gen","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"t2reps","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260018054600160a01b600160e01b031916650a800005808160a11b17905534801561002e57600080fd5b5060405161143f38038061143f83398101604081905261004d916100d8565b61005633610088565b6000805460ff60a01b19169055600180546001600160a01b0319166001600160a01b0392909216919091179055610108565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100ea57600080fd5b81516001600160a01b038116811461010157600080fd5b9392505050565b611328806101176000396000f3fe608060405234801561001057600080fd5b50600436106100fc5760003560e01c80630eeb849914610101578063150b7a0214610116578063286a62f21461014757806332868f751461016d5780633a82fd5e146101975780633f4ba83a146101b85780633f5e672e146101c05780635c975abb146101d65780636394da4c146101ee578063715018a61461020157806378a3b980146102095780637a38a1061461021c5780638147e01e1461023c5780638456cb591461025c5780638da5cb5b146102645780639d828b9b1461026c578063a1dab81a14610280578063e526103814610293578063e87a6ae2146102bd578063f2fde38b146102d0575b600080fd5b61011461010f366004610e56565b6102e3565b005b610129610124366004610ee4565b610383565b6040516001600160e01b031990911681526020015b60405180910390f35b60015461015b90600160a81b900460ff1681565b60405160ff909116815260200161013e565b60015461018390600160b01b900462ffffff1681565b60405162ffffff909116815260200161013e565b6101aa6101a5366004610fbf565b6105c4565b60405190815260200161013e565b6101146106b4565b60015461018390600160c81b900462ffffff1681565b6101de6106ed565b604051901515815260200161013e565b6101146101fc366004610fe3565b6106fd565b610114610748565b61011461021736600461100d565b610781565b6101aa61022a36600461100d565b60026020526000908152604090205481565b60015461024f906001600160a01b031681565b60405161013e9190611028565b6101146107d2565b61024f610809565b60015461015b90600160a01b900460ff1681565b61011461028e36600461103c565b610818565b6102a66102a13660046110c3565b610a1c565b6040805192835260ff90911660208301520161013e565b6101146102cb3660046110dc565b610a4d565b6101146102de36600461100d565b610c31565b336102ec610809565b6001600160a01b03161461031b5760405162461bcd60e51b81526004016103129061111a565b60405180910390fd5b6001805461ffff60a01b1916600160a01b60ff9687160260ff60a81b191617600160a81b94909516939093029390931765ffffffffffff60b01b1916600160b01b62ffffff9283160262ffffff60c81b191617600160c81b9390911692909202919091179055565b6001546000906001600160a01b031633146103db5760405162461bcd60e51b81526020600482015260186024820152774e6f742073656e742066726f6d204275646479436f72652160401b6044820152606401610312565b600154604051636bf6969960e01b81526004810185905260009182918291829182918291829182918291829182916001600160a01b031690636bf696999060240161016060405180830381865afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e919061114f565b9a509a509a509a509a509a509a509a509a509a509a50610494604051806040016040528060008152602001600060ff1681525090565b8e8152600154600160a01b900460ff166104ae8b8d611217565b60ff161180156104cf575060015462ffffff600160b01b9091048116908916105b156104e05760016020820152610531565b600154600160a81b900460ff166104f78b8d611217565b60ff16118015610518575060015462ffffff600160c81b9091048116908916105b156105295760026020820152610531565b600360208201525b6003805460018101825560009190915281517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6002909202918201556020909101517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c909101805460ff191660ff90921691909117905550630a85bd0160e11b9f9e505050505050505050505050505050565b6000808260ff161161060b5760405162461bcd60e51b815260206004820152601060248201526f0546965722063616e6e6f7420626520360841b6044820152606401610312565b60005b6003548110156106ae578260ff166003828154811061062f5761062f61123a565b600091825260209091206001600290920201015460ff16148061068957508260ff16600414801561068957506000600382815481106106705761067061123a565b600091825260209091206001600290920201015460ff16115b1561069c578161069881611250565b9250505b806106a681611250565b91505061060e565b50919050565b336106bd610809565b6001600160a01b0316146106e35760405162461bcd60e51b81526004016103129061111a565b6106eb610cd1565b565b600054600160a01b900460ff1690565b33610706610809565b6001600160a01b03161461072c5760405162461bcd60e51b81526004016103129061111a565b6001600160a01b03909116600090815260026020526040902055565b33610751610809565b6001600160a01b0316146107775760405162461bcd60e51b81526004016103129061111a565b6106eb6000610d63565b3361078a610809565b6001600160a01b0316146107b05760405162461bcd60e51b81526004016103129061111a565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b336107db610809565b6001600160a01b0316146108015760405162461bcd60e51b81526004016103129061111a565b6106eb610db3565b6000546001600160a01b031690565b8080610823856105c4565b10156108415760405162461bcd60e51b81526004016103129061126b565b336000908152600260205260409020548111156108705760405162461bcd60e51b8152600401610312906112a1565b33600090815260026020526040812080548390039055600354815b81811015610a13578660ff16600382815481106108aa576108aa61123a565b600091825260209091206001600290920201015460ff16148061090457508660ff16600414801561090457506000600382815481106108eb576108eb61123a565b600091825260209091206001600290920201015460ff16115b156109f5576001546001600160a01b03166342842e0e3088888781811061092d5761092d61123a565b9050602002016020810190610942919061100d565b600385815481106109555761095561123a565b9060005260206000209060020201600001546040518463ffffffff1660e01b8152600401610985939291906112ce565b600060405180830381600087803b15801561099f57600080fd5b505af11580156109b3573d6000803e3d6000fd5b50505050600381815481106109ca576109ca61123a565b600091825260208220600290910201908155600101805460ff19169055826109f181611250565b9350505b838310610a0157610a13565b80610a0b81611250565b91505061088b565b50505050505050565b60038181548110610a2c57600080fd5b60009182526020909120600290910201805460019091015490915060ff1682565b81610a57846105c4565b1015610a755760405162461bcd60e51b81526004016103129061126b565b33600090815260026020526040902054821115610aa45760405162461bcd60e51b8152600401610312906112a1565b33600090815260026020526040812080548490039055600354815b81811015610c29578560ff1660038281548110610ade57610ade61123a565b600091825260209091206001600290920201015460ff161480610b3857508560ff166004148015610b385750600060038281548110610b1f57610b1f61123a565b600091825260209091206001600290920201015460ff16115b15610c0b57600154600380546001600160a01b03909216916342842e0e91309188919086908110610b6b57610b6b61123a565b9060005260206000209060020201600001546040518463ffffffff1660e01b8152600401610b9b939291906112ce565b600060405180830381600087803b158015610bb557600080fd5b505af1158015610bc9573d6000803e3d6000fd5b5050505060038181548110610be057610be061123a565b600091825260208220600290910201908155600101805460ff1916905582610c0781611250565b9350505b848310610c1757610c29565b80610c2181611250565b915050610abf565b505050505050565b33610c3a610809565b6001600160a01b031614610c605760405162461bcd60e51b81526004016103129061111a565b6001600160a01b038116610cc55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610312565b610cce81610d63565b50565b610cd96106ed565b610d1c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610312565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610d599190611028565b60405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610dbb6106ed565b15610dfb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610312565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610d4c3390565b60ff81168114610cce57600080fd5b62ffffff81168114610cce57600080fd5b60008060008060808587031215610e6c57600080fd5b8435610e7781610e36565b93506020850135610e8781610e36565b92506040850135610e9781610e45565b91506060850135610ea781610e45565b939692955090935050565b80356001600160a01b0381168114610ec957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610efa57600080fd5b610f0385610eb2565b9350610f1160208601610eb2565b92506040850135915060608501356001600160401b0380821115610f3457600080fd5b818701915087601f830112610f4857600080fd5b813581811115610f5a57610f5a610ece565b604051601f8201601f19908116603f01168101908382118183101715610f8257610f82610ece565b816040528281528a6020848701011115610f9b57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600060208284031215610fd157600080fd5b8135610fdc81610e36565b9392505050565b60008060408385031215610ff657600080fd5b610fff83610eb2565b946020939093013593505050565b60006020828403121561101f57600080fd5b610fdc82610eb2565b6001600160a01b0391909116815260200190565b60008060006040848603121561105157600080fd5b833561105c81610e36565b925060208401356001600160401b038082111561107857600080fd5b818601915086601f83011261108c57600080fd5b81358181111561109b57600080fd5b8760208260051b85010111156110b057600080fd5b6020830194508093505050509250925092565b6000602082840312156110d557600080fd5b5035919050565b6000806000606084860312156110f157600080fd5b83356110fc81610e36565b92506020840135915061111160408501610eb2565b90509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060008060008060008060008060006101608c8e03121561117157600080fd5b8b5161117c81610e36565b60208d0151909b5061118d81610e36565b60408d0151909a5061119e81610e36565b60608d01519099506111af81610e36565b60808d01519098506111c081610e45565b8097505060a08c0151955060c08c0151945060e08c015193506101008c015192506101208c015191506101408c015190509295989b509295989b9093969950565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168082101561123157611231611201565b90039392505050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561126457611264611201565b5060010190565b6020808252601c908201527b24b739bab33334b1b4b2b73a10313ab23234b2b99030ba103a34b2b960211b604082015260600190565b602080825260139082015272155b985d5d1a1bdc9a5e995908185b5bdd5b9d606a1b604082015260600190565b6001600160a01b03938416815291909216602082015260408101919091526060019056fea2646970667358221220e0bc8284f989e873ecb75cee1e612362fb531ec549e2c6fa07b370900ffe8c5564736f6c634300080b003300000000000000000000000058a15701ed1ad95bba625a05f41e50dce62aa14e
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000058a15701ed1ad95bba625a05f41e50dce62aa14e
-----Decoded View---------------
Arg [0] : _buddyCoreAddr (address): 0x58a15701ed1ad95bba625a05f41e50dce62aa14e
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000058a15701ed1ad95bba625a05f41e50dce62aa14e
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.