Overview
xDAI Balance
0 xDAI
xDAI Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 11,070 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Send Message | 38054217 | 6 days ago | IN | 0.00001 xDAI | 0.00019735 | ||||
Send Message | 38052770 | 6 days ago | IN | 0.00001 xDAI | 0.00019747 | ||||
Pop Next Message | 38039915 | 6 days ago | IN | 0 xDAI | 0.00005498 | ||||
Send Message | 38022630 | 7 days ago | IN | 0.00001 xDAI | 0.00022046 | ||||
Pop Next Message | 38022623 | 7 days ago | IN | 0 xDAI | 0.00005498 | ||||
Pop Next Message | 38022622 | 7 days ago | IN | 0 xDAI | 0.00005498 | ||||
Send Message | 38022613 | 7 days ago | IN | 0.00001 xDAI | 0.00022042 | ||||
Send Message | 38022609 | 7 days ago | IN | 0.00001 xDAI | 0.00022022 | ||||
Pop Next Message | 38022589 | 7 days ago | IN | 0 xDAI | 0.00005939 | ||||
Send Message | 38022580 | 7 days ago | IN | 0.00001 xDAI | 0.00022046 | ||||
Send Message | 38022577 | 7 days ago | IN | 0.00001 xDAI | 0.00022027 | ||||
Pop Next Message | 38022556 | 7 days ago | IN | 0 xDAI | 0.00005498 | ||||
Send Message | 38022545 | 7 days ago | IN | 0.00001 xDAI | 0.00024334 | ||||
Send Message | 38022529 | 8 days ago | IN | 0.00001 xDAI | 0.00022046 | ||||
Pop Next Message | 38022522 | 8 days ago | IN | 0 xDAI | 0.00005498 | ||||
Pop Next Message | 38022521 | 8 days ago | IN | 0 xDAI | 0.00005498 | ||||
Send Message | 38022510 | 8 days ago | IN | 0.00001 xDAI | 0.00022022 | ||||
Send Message | 38022494 | 8 days ago | IN | 0.00001 xDAI | 0.00022037 | ||||
Send Message | 38022459 | 8 days ago | IN | 0.00001 xDAI | 0.00022046 | ||||
Pop Next Message | 38022446 | 8 days ago | IN | 0 xDAI | 0.00005498 | ||||
Send Message | 38022433 | 8 days ago | IN | 0.00001 xDAI | 0.00022032 | ||||
Send Message | 38022423 | 8 days ago | IN | 0.00001 xDAI | 0.00022038 | ||||
Pop Next Message | 38022402 | 8 days ago | IN | 0 xDAI | 0.00005939 | ||||
Send Message | 38022389 | 8 days ago | IN | 0.00001 xDAI | 0.00022042 | ||||
Send Message | 38022389 | 8 days ago | IN | 0.00001 xDAI | 0.00022025 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
38054217 | 6 days ago | 0.000003 xDAI | ||||
38054217 | 6 days ago | 0.000007 xDAI | ||||
38052770 | 6 days ago | 0.000003 xDAI | ||||
38052770 | 6 days ago | 0.000007 xDAI | ||||
38022630 | 7 days ago | 0.000003 xDAI | ||||
38022630 | 7 days ago | 0.000007 xDAI | ||||
38022613 | 7 days ago | 0.000003 xDAI | ||||
38022613 | 7 days ago | 0.000007 xDAI | ||||
38022609 | 7 days ago | 0.000003 xDAI | ||||
38022609 | 7 days ago | 0.000007 xDAI | ||||
38022580 | 7 days ago | 0.000003 xDAI | ||||
38022580 | 7 days ago | 0.000007 xDAI | ||||
38022577 | 7 days ago | 0.000003 xDAI | ||||
38022577 | 7 days ago | 0.000007 xDAI | ||||
38022545 | 7 days ago | 0.000003 xDAI | ||||
38022545 | 7 days ago | 0.000007 xDAI | ||||
38022529 | 8 days ago | 0.000003 xDAI | ||||
38022529 | 8 days ago | 0.000007 xDAI | ||||
38022510 | 8 days ago | 0.000003 xDAI | ||||
38022510 | 8 days ago | 0.000007 xDAI | ||||
38022494 | 8 days ago | 0.000003 xDAI | ||||
38022494 | 8 days ago | 0.000007 xDAI | ||||
38022459 | 8 days ago | 0.000003 xDAI | ||||
38022459 | 8 days ago | 0.000007 xDAI | ||||
38022433 | 8 days ago | 0.000003 xDAI |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
AgentCommunication
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.22; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import "./DoubleEndedStructQueue.sol"; contract AgentCommunication is Ownable { address payable public treasury; uint256 public pctToTreasuryInBasisPoints; //70% becomes 7000 error MessageNotSentByAgent(); mapping(address => DoubleEndedStructQueue.Bytes32Deque) public queues; uint256 public minimumValueForSendingMessageInWei; event LogMessage(address indexed sender, address indexed agentAddress, bytes message, uint256 value); constructor(address payable _treasury, uint256 _pctToTreasuryInBasisPoints) Ownable(msg.sender) { treasury = _treasury; pctToTreasuryInBasisPoints = _pctToTreasuryInBasisPoints; minimumValueForSendingMessageInWei = 10000000000000; // 0.00001 xDAI } modifier mustPayMoreThanMinimum() { require(msg.value >= minimumValueForSendingMessageInWei, "Insufficient message value"); _; } function adjustMinimumValueForSendingMessage(uint256 newValue) public onlyOwner { minimumValueForSendingMessageInWei = newValue; } function countMessages(address agentAddress) public view returns (uint256) { return DoubleEndedStructQueue.length(queues[agentAddress]); } // Private function to calculate the amounts function _calculateAmounts(uint256 totalValue) private view returns (uint256, uint256) { uint256 amountForTreasury = (totalValue * pctToTreasuryInBasisPoints) / 10000; // 10000 since basis points are used uint256 amountForAgent = totalValue - amountForTreasury; return (amountForTreasury, amountForAgent); } function sendMessage(address agentAddress, bytes memory message) public payable mustPayMoreThanMinimum { // split message value between treasury and agent (uint256 amountForTreasury, uint256 amountForAgent) = _calculateAmounts(msg.value); // Transfer the amounts (bool sentTreasury,) = treasury.call{value: amountForTreasury}(""); require(sentTreasury, "Failed to send Ether"); (bool sentAgent,) = payable(agentAddress).call{value: amountForAgent}(""); require(sentAgent, "Failed to send Ether"); DoubleEndedStructQueue.MessageContainer memory messageContainer = DoubleEndedStructQueue.MessageContainer(msg.sender, agentAddress, message, msg.value); DoubleEndedStructQueue.pushBack(queues[agentAddress], messageContainer); emit LogMessage(msg.sender, agentAddress, messageContainer.message, msg.value); } function getAtIndex(address agentAddress, uint256 idx) public view returns (DoubleEndedStructQueue.MessageContainer memory) { return DoubleEndedStructQueue.at(queues[agentAddress], idx); } function popNextMessage(address agentAddress) public returns (DoubleEndedStructQueue.MessageContainer memory) { if (msg.sender != agentAddress) { revert MessageNotSentByAgent(); } DoubleEndedStructQueue.MessageContainer memory message = DoubleEndedStructQueue.popFront(queues[agentAddress]); emit LogMessage(message.sender, agentAddress, message.message, message.value); return message; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; import {Context} from "../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. * * 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); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import {Panic} from "@openzeppelin/contracts/utils/Panic.sol"; // Based on OpenZeppelin's DoubleEndedQueue, but with a custom struct as data type instead of bytes32. // See https://docs.openzeppelin.com/contracts/5.x/api/utils#DoubleEndedQueue library DoubleEndedStructQueue { struct MessageContainer { address sender; address recipient; bytes message; uint256 value; } struct Bytes32Deque { uint128 _begin; uint128 _end; mapping(uint128 index => MessageContainer) _data; } function pushBack(Bytes32Deque storage deque, MessageContainer memory container) internal { unchecked { uint128 backIndex = deque._end; if (backIndex + 1 == deque._begin) Panic.panic(Panic.RESOURCE_ERROR); deque._data[backIndex] = container; deque._end = backIndex + 1; } } function popBack(Bytes32Deque storage deque) internal returns (MessageContainer memory value) { unchecked { uint128 backIndex = deque._end; if (backIndex == deque._begin) Panic.panic(Panic.EMPTY_ARRAY_POP); --backIndex; value = deque._data[backIndex]; delete deque._data[backIndex]; deque._end = backIndex; } } function pushFront(Bytes32Deque storage deque, MessageContainer memory value) internal { unchecked { uint128 frontIndex = deque._begin - 1; if (frontIndex == deque._end) Panic.panic(Panic.RESOURCE_ERROR); deque._data[frontIndex] = value; deque._begin = frontIndex; } } function popFront(Bytes32Deque storage deque) internal returns (MessageContainer memory value) { unchecked { uint128 frontIndex = deque._begin; if (frontIndex == deque._end) Panic.panic(Panic.EMPTY_ARRAY_POP); value = deque._data[frontIndex]; delete deque._data[frontIndex]; deque._begin = frontIndex + 1; } } function front(Bytes32Deque storage deque) internal view returns (MessageContainer memory value) { if (empty(deque)) Panic.panic(Panic.ARRAY_OUT_OF_BOUNDS); return deque._data[deque._begin]; } function back(Bytes32Deque storage deque) internal view returns (MessageContainer memory value) { if (empty(deque)) Panic.panic(Panic.ARRAY_OUT_OF_BOUNDS); unchecked { return deque._data[deque._end - 1]; } } function at(Bytes32Deque storage deque, uint256 index) internal view returns (MessageContainer memory value) { if (index >= length(deque)) Panic.panic(Panic.ARRAY_OUT_OF_BOUNDS); // By construction, length is a uint128, so the check above ensures that index can be safely downcast to uint128 unchecked { return deque._data[deque._begin + uint128(index)]; } } function clear(Bytes32Deque storage deque) internal { deque._begin = 0; deque._end = 0; } function length(Bytes32Deque storage deque) internal view returns (uint256) { unchecked { return uint256(deque._end - deque._begin); } } function empty(Bytes32Deque storage deque) internal view returns (bool) { return deque._end == deque._begin; } }
// 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 pragma solidity ^0.8.20; /** * @dev Helper library for emitting standardized panic codes. * * ```solidity * contract Example { * using Panic for uint256; * * // Use any of the declared internal constants * function foo() { Panic.GENERIC.panic(); } * * // Alternatively * function foo() { Panic.panic(Panic.GENERIC); } * } * ``` * * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. */ // slither-disable-next-line unused-state library Panic { /// @dev generic / unspecified error uint256 internal constant GENERIC = 0x00; /// @dev used by the assert() builtin uint256 internal constant ASSERT = 0x01; /// @dev arithmetic underflow or overflow uint256 internal constant UNDER_OVERFLOW = 0x11; /// @dev division or modulo by zero uint256 internal constant DIVISION_BY_ZERO = 0x12; /// @dev enum conversion error uint256 internal constant ENUM_CONVERSION_ERROR = 0x21; /// @dev invalid encoding in storage uint256 internal constant STORAGE_ENCODING_ERROR = 0x22; /// @dev empty array pop uint256 internal constant EMPTY_ARRAY_POP = 0x31; /// @dev array out of bounds access uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32; /// @dev resource error (too large allocation or too large array) uint256 internal constant RESOURCE_ERROR = 0x41; /// @dev calling invalid internal function uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51; /// @dev Reverts with a panic code. Recommended to use with /// the internal constants with predefined codes. function panic(uint256 code) internal pure { /// @solidity memory-safe-assembly assembly { mstore(0x00, 0x4e487b71) mstore(0x20, code) revert(0x1c, 0x24) } } }
{ "remappings": [ "forge-std/=lib/forge-std/src/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"_treasury","type":"address"},{"internalType":"uint256","name":"_pctToTreasuryInBasisPoints","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"MessageNotSentByAgent","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"agentAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"LogMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"adjustMinimumValueForSendingMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"agentAddress","type":"address"}],"name":"countMessages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"agentAddress","type":"address"},{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getAtIndex","outputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct DoubleEndedStructQueue.MessageContainer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumValueForSendingMessageInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pctToTreasuryInBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"agentAddress","type":"address"}],"name":"popNextMessage","outputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct DoubleEndedStructQueue.MessageContainer","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"queues","outputs":[{"internalType":"uint128","name":"_begin","type":"uint128"},{"internalType":"uint128","name":"_end","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"agentAddress","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"}],"name":"sendMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161102038038061102083398101604081905261002f916100e2565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610092565b50600180546001600160a01b0319166001600160a01b0393909316929092179091556002556509184e72a00060045561011c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080604083850312156100f557600080fd5b82516001600160a01b038116811461010c57600080fd5b6020939093015192949293505050565b610ef58061012b6000396000f3fe6080604052600436106100a75760003560e01c8063b30286ca11610064578063b30286ca146101d0578063baeb0b32146101f0578063bb5ddb0f14610210578063c7cb248014610223578063d4c94a6314610239578063f2fde38b1461025957600080fd5b806305380f3a146100ac57806361d027b3146100d5578063715018a61461010d5780638911ac64146101245780638b9c8565146101855780638da5cb5b146101b2575b600080fd5b3480156100b857600080fd5b506100c260025481565b6040519081526020015b60405180910390f35b3480156100e157600080fd5b506001546100f5906001600160a01b031681565b6040516001600160a01b0390911681526020016100cc565b34801561011957600080fd5b50610122610279565b005b34801561013057600080fd5b5061016561013f366004610b1b565b6003602052600090815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016100cc565b34801561019157600080fd5b506101a56101a0366004610b1b565b61028d565b6040516100cc9190610b7c565b3480156101be57600080fd5b506000546001600160a01b03166100f5565b3480156101dc57600080fd5b506100c26101eb366004610b1b565b610340565b3480156101fc57600080fd5b506101a561020b366004610bd0565b61037a565b61012261021e366004610c10565b6103ab565b34801561022f57600080fd5b506100c260045481565b34801561024557600080fd5b50610122610254366004610cda565b6105e6565b34801561026557600080fd5b50610122610274366004610b1b565b6105f3565b610281610631565b61028b600061065e565b565b610295610a77565b336001600160a01b038316146102be57604051630522bd7b60e51b815260040160405180910390fd5b6001600160a01b03821660009081526003602052604081206102df906106ae565b9050826001600160a01b031681600001516001600160a01b03167ff8885fb552e2e52d7d1e7c73573c443a1ece5ad931dcc158cafe3489d84cc5db83604001518460600151604051610332929190610cf3565b60405180910390a392915050565b6001600160a01b0381166000908152600360205260408120546001600160801b03808216600160801b909204811691909103165b92915050565b610382610a77565b6001600160a01b03831660009081526003602052604090206103a49083610841565b9392505050565b6004543410156104025760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74206d6573736167652076616c756500000000000060448201526064015b60405180910390fd5b60008061040e3461096a565b6001546040519294509092506000916001600160a01b039091169084908381818185875af1925050503d8060008114610463576040519150601f19603f3d011682016040523d82523d6000602084013e610468565b606091505b50509050806104b05760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064016103f9565b6000856001600160a01b03168360405160006040518083038185875af1925050503d80600081146104fd576040519150601f19603f3d011682016040523d82523d6000602084013e610502565b606091505b505090508061054a5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064016103f9565b604080516080810182523381526001600160a01b03881660208083018290528284018990523460608401526000918252600390529190912061058c90826109a4565b866001600160a01b0316336001600160a01b03167ff8885fb552e2e52d7d1e7c73573c443a1ece5ad931dcc158cafe3489d84cc5db8360400151346040516105d5929190610cf3565b60405180910390a350505050505050565b6105ee610631565b600455565b6105fb610631565b6001600160a01b03811661062557604051631e4fbdf760e01b8152600060048201526024016103f9565b61062e8161065e565b50565b6000546001600160a01b0316331461028b5760405163118cdaa760e01b81523360048201526024016103f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106b6610a77565b81546001600160801b0380821691600160801b90041681036106dc576106dc6031610a65565b6001600160801b038116600090815260018085016020908152604092839020835160808101855281546001600160a01b0390811682529382015490931691830191909152600281018054929391929184019161073790610d15565b80601f016020809104026020016040519081016040528092919081815260200182805461076390610d15565b80156107b05780601f10610785576101008083540402835291602001916107b0565b820191906000526020600020905b81548152906001019060200180831161079357829003601f168201915b5050509183525050600391909101546020918201526001600160801b038316600090815260018087019092526040812080546001600160a01b0319908116825592810180549093169092559193509061080c6002830182610ab1565b5060006003919091015582546fffffffffffffffffffffffffffffffff19166001919091016001600160801b03161790915590565b610849610a77565b82546001600160801b03808216600160801b909204811691909103168210610875576108756032610a65565b82546001600160801b03908116830116600090815260018085016020908152604092839020835160808101855281546001600160a01b039081168252938201549093169183019190915260028101805492939192918401916108d690610d15565b80601f016020809104026020016040519081016040528092919081815260200182805461090290610d15565b801561094f5780601f106109245761010080835404028352916020019161094f565b820191906000526020600020905b81548152906001019060200180831161093257829003601f168201915b50505050508152602001600382015481525050905092915050565b6000806000612710600254856109809190610d65565b61098a9190610d7c565b905060006109988286610d9e565b91959194509092505050565b81546001600160801b03600160801b8204811691811660018301909116036109d0576109d06041610a65565b6001600160801b038116600090815260018481016020908152604092839020855181546001600160a01b03199081166001600160a01b039283161783559287015193820180549093169316929092179055908301518391906002820190610a379082610e00565b506060919091015160039091015582546001600160801b0360019092018216600160801b0291161790915550565b634e487b71600052806020526024601cfd5b604051806080016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160608152602001600081525090565b508054610abd90610d15565b6000825580601f10610acd575050565b601f01602090049060005260206000209081019061062e91905b80821115610afb5760008155600101610ae7565b5090565b80356001600160a01b0381168114610b1657600080fd5b919050565b600060208284031215610b2d57600080fd5b6103a482610aff565b6000815180845260005b81811015610b5c57602081850181015186830182015201610b40565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282516001600160a01b0390811683830152908301511660408083019190915282015160806060830152600090610bba60a0840182610b36565b9050606084015160808401528091505092915050565b60008060408385031215610be357600080fd5b610bec83610aff565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610c2357600080fd5b610c2c83610aff565b9150602083013567ffffffffffffffff811115610c4857600080fd5b8301601f81018513610c5957600080fd5b803567ffffffffffffffff811115610c7357610c73610bfa565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610ca257610ca2610bfa565b604052818152828201602001871015610cba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215610cec57600080fd5b5035919050565b604081526000610d066040830185610b36565b90508260208301529392505050565b600181811c90821680610d2957607f821691505b602082108103610d4957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761037457610374610d4f565b600082610d9957634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561037457610374610d4f565b601f821115610dfb57806000526020600020601f840160051c81016020851015610dd85750805b601f840160051c820191505b81811015610df85760008155600101610de4565b50505b505050565b815167ffffffffffffffff811115610e1a57610e1a610bfa565b610e2e81610e288454610d15565b84610db1565b6020601f821160018114610e625760008315610e4a5750848201515b600019600385901b1c1916600184901b178455610df8565b600084815260208120601f198516915b82811015610e925787850151825560209485019460019092019101610e72565b5084821015610eb05786840151600019600387901b60f8161c191681555b50505050600190811b0190555056fea26469706673582212205e788e0d836464dbf207b7a6897bf159dc490a92a4a2f65e0aa2e379b06950e164736f6c634300081a0033000000000000000000000000d1a54fd7a200c2ca76b6d06437795d660d37fe280000000000000000000000000000000000000000000000000000000000001b58
Deployed Bytecode
0x6080604052600436106100a75760003560e01c8063b30286ca11610064578063b30286ca146101d0578063baeb0b32146101f0578063bb5ddb0f14610210578063c7cb248014610223578063d4c94a6314610239578063f2fde38b1461025957600080fd5b806305380f3a146100ac57806361d027b3146100d5578063715018a61461010d5780638911ac64146101245780638b9c8565146101855780638da5cb5b146101b2575b600080fd5b3480156100b857600080fd5b506100c260025481565b6040519081526020015b60405180910390f35b3480156100e157600080fd5b506001546100f5906001600160a01b031681565b6040516001600160a01b0390911681526020016100cc565b34801561011957600080fd5b50610122610279565b005b34801561013057600080fd5b5061016561013f366004610b1b565b6003602052600090815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016100cc565b34801561019157600080fd5b506101a56101a0366004610b1b565b61028d565b6040516100cc9190610b7c565b3480156101be57600080fd5b506000546001600160a01b03166100f5565b3480156101dc57600080fd5b506100c26101eb366004610b1b565b610340565b3480156101fc57600080fd5b506101a561020b366004610bd0565b61037a565b61012261021e366004610c10565b6103ab565b34801561022f57600080fd5b506100c260045481565b34801561024557600080fd5b50610122610254366004610cda565b6105e6565b34801561026557600080fd5b50610122610274366004610b1b565b6105f3565b610281610631565b61028b600061065e565b565b610295610a77565b336001600160a01b038316146102be57604051630522bd7b60e51b815260040160405180910390fd5b6001600160a01b03821660009081526003602052604081206102df906106ae565b9050826001600160a01b031681600001516001600160a01b03167ff8885fb552e2e52d7d1e7c73573c443a1ece5ad931dcc158cafe3489d84cc5db83604001518460600151604051610332929190610cf3565b60405180910390a392915050565b6001600160a01b0381166000908152600360205260408120546001600160801b03808216600160801b909204811691909103165b92915050565b610382610a77565b6001600160a01b03831660009081526003602052604090206103a49083610841565b9392505050565b6004543410156104025760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74206d6573736167652076616c756500000000000060448201526064015b60405180910390fd5b60008061040e3461096a565b6001546040519294509092506000916001600160a01b039091169084908381818185875af1925050503d8060008114610463576040519150601f19603f3d011682016040523d82523d6000602084013e610468565b606091505b50509050806104b05760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064016103f9565b6000856001600160a01b03168360405160006040518083038185875af1925050503d80600081146104fd576040519150601f19603f3d011682016040523d82523d6000602084013e610502565b606091505b505090508061054a5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064016103f9565b604080516080810182523381526001600160a01b03881660208083018290528284018990523460608401526000918252600390529190912061058c90826109a4565b866001600160a01b0316336001600160a01b03167ff8885fb552e2e52d7d1e7c73573c443a1ece5ad931dcc158cafe3489d84cc5db8360400151346040516105d5929190610cf3565b60405180910390a350505050505050565b6105ee610631565b600455565b6105fb610631565b6001600160a01b03811661062557604051631e4fbdf760e01b8152600060048201526024016103f9565b61062e8161065e565b50565b6000546001600160a01b0316331461028b5760405163118cdaa760e01b81523360048201526024016103f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106b6610a77565b81546001600160801b0380821691600160801b90041681036106dc576106dc6031610a65565b6001600160801b038116600090815260018085016020908152604092839020835160808101855281546001600160a01b0390811682529382015490931691830191909152600281018054929391929184019161073790610d15565b80601f016020809104026020016040519081016040528092919081815260200182805461076390610d15565b80156107b05780601f10610785576101008083540402835291602001916107b0565b820191906000526020600020905b81548152906001019060200180831161079357829003601f168201915b5050509183525050600391909101546020918201526001600160801b038316600090815260018087019092526040812080546001600160a01b0319908116825592810180549093169092559193509061080c6002830182610ab1565b5060006003919091015582546fffffffffffffffffffffffffffffffff19166001919091016001600160801b03161790915590565b610849610a77565b82546001600160801b03808216600160801b909204811691909103168210610875576108756032610a65565b82546001600160801b03908116830116600090815260018085016020908152604092839020835160808101855281546001600160a01b039081168252938201549093169183019190915260028101805492939192918401916108d690610d15565b80601f016020809104026020016040519081016040528092919081815260200182805461090290610d15565b801561094f5780601f106109245761010080835404028352916020019161094f565b820191906000526020600020905b81548152906001019060200180831161093257829003601f168201915b50505050508152602001600382015481525050905092915050565b6000806000612710600254856109809190610d65565b61098a9190610d7c565b905060006109988286610d9e565b91959194509092505050565b81546001600160801b03600160801b8204811691811660018301909116036109d0576109d06041610a65565b6001600160801b038116600090815260018481016020908152604092839020855181546001600160a01b03199081166001600160a01b039283161783559287015193820180549093169316929092179055908301518391906002820190610a379082610e00565b506060919091015160039091015582546001600160801b0360019092018216600160801b0291161790915550565b634e487b71600052806020526024601cfd5b604051806080016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160608152602001600081525090565b508054610abd90610d15565b6000825580601f10610acd575050565b601f01602090049060005260206000209081019061062e91905b80821115610afb5760008155600101610ae7565b5090565b80356001600160a01b0381168114610b1657600080fd5b919050565b600060208284031215610b2d57600080fd5b6103a482610aff565b6000815180845260005b81811015610b5c57602081850181015186830182015201610b40565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282516001600160a01b0390811683830152908301511660408083019190915282015160806060830152600090610bba60a0840182610b36565b9050606084015160808401528091505092915050565b60008060408385031215610be357600080fd5b610bec83610aff565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610c2357600080fd5b610c2c83610aff565b9150602083013567ffffffffffffffff811115610c4857600080fd5b8301601f81018513610c5957600080fd5b803567ffffffffffffffff811115610c7357610c73610bfa565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610ca257610ca2610bfa565b604052818152828201602001871015610cba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215610cec57600080fd5b5035919050565b604081526000610d066040830185610b36565b90508260208301529392505050565b600181811c90821680610d2957607f821691505b602082108103610d4957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761037457610374610d4f565b600082610d9957634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561037457610374610d4f565b601f821115610dfb57806000526020600020601f840160051c81016020851015610dd85750805b601f840160051c820191505b81811015610df85760008155600101610de4565b50505b505050565b815167ffffffffffffffff811115610e1a57610e1a610bfa565b610e2e81610e288454610d15565b84610db1565b6020601f821160018114610e625760008315610e4a5750848201515b600019600385901b1c1916600184901b178455610df8565b600084815260208120601f198516915b82811015610e925787850151825560209485019460019092019101610e72565b5084821015610eb05786840151600019600387901b60f8161c191681555b50505050600190811b0190555056fea26469706673582212205e788e0d836464dbf207b7a6897bf159dc490a92a4a2f65e0aa2e379b06950e164736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d1a54fd7a200c2ca76b6d06437795d660d37fe280000000000000000000000000000000000000000000000000000000000001b58
-----Decoded View---------------
Arg [0] : _treasury (address): 0xd1A54FD7a200C2ca76B6D06437795d660d37FE28
Arg [1] : _pctToTreasuryInBasisPoints (uint256): 7000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d1a54fd7a200c2ca76b6d06437795d660d37fe28
Arg [1] : 0000000000000000000000000000000000000000000000000000000000001b58
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.