Contract Overview
My Name Tag:
Not Available, login to update
Txn Hash |
Method
|
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0x9001f91f0468f5edc87955ea40accf5082dd44414ba0d0cd0d674e792c9b5330 | Withdraw | 26461303 | 358 days 2 hrs ago | 0x1b4fbfb1fd99d00128afeb4dc25fc1d6608b1134 | IN | 0xe66785d7fc838c887c798c1df28b18f808a19175 | 0 MATIC | 0.001346992693 | |
0x058b46c0be1ae73ca140be6a192e433c1009d074f160bb11e3c6f7114619ce68 | Create Order | 26459707 | 358 days 3 hrs ago | 0x4c3b9e5be57f24a773febec4e67a831de41a6087 | IN | 0xe66785d7fc838c887c798c1df28b18f808a19175 | 0 MATIC | 0.0239051 | |
0xd88d8d88e3504a4f3664c991cfc5fd38b6be1cd416b7c853aee020fde5c0718c | 0x60e06040 | 26459070 | 358 days 3 hrs ago | 0xffe2d4125d1187a682864629ed548bb4828226f2 | IN | Create: Orders | 0 MATIC | 0.074506928754 |
[ Download CSV Export ]
Contract Name:
Orders
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-03-28 */ // File: IOrders.sol //SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface IOrders { struct Order { address recipient; address orderBy; uint256 timestamp; uint256 nftId; } error InsufficientBalance(uint256 sent, uint256 required); error ExistingOrder(bytes32 hash); error InvalidHash(bytes32 provided, bytes32 expected); error InvalidCollection(address provided, address expected); error InvalidDestination(uint provided); error InvalidMerchant(address provided, address expected); error InvalidToken(address provided); event OrderCreated( bytes32 hash, address sender, address collection, uint256 nftId, uint256 timestamp, address orderBy, uint256 totalAmount, uint256 orderPrice, uint256 additionalCost, uint256 printingPrice, address token ); } // File: @openzeppelin/contracts/utils/Context.sol // 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; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external 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 `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @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); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, _allowances[owner][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = _allowances[owner][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Spend `amount` form the allowance of `owner` toward `spender`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: Orders.sol pragma solidity 0.8.10; contract Orders is Ownable, IOrders { address private immutable merchant; address private immutable paymentSplitter; address private immutable collection; uint256 private initialPrice; uint256 private printingPrice = 9_390_000; mapping(bytes32 => Order) public order; mapping(uint256 => uint256) public nftSoldTimes; mapping(uint => uint256) public shippingFee; mapping(uint => uint256) public merchantCosts; mapping(address => bool) public supportedTokens; constructor( address _paymentSplitter, address _merchant, address _collection, uint256 _initialPrice ) { paymentSplitter = _paymentSplitter; merchant = _merchant; collection = _collection; initialPrice = _initialPrice; supportedTokens[0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174] = true; supportedTokens[0xc2132D05D31c914a87C6611C10748AEb04B58e8F] = true; shippingFee[0] = 0; shippingFee[1] = 27_000_000; shippingFee[2] = 28_000_000; shippingFee[3] = 24_000_000; shippingFee[4] = 38_000_000; shippingFee[5] = 25_000_000; shippingFee[6] = 71_000_000; merchantCosts[0] = 6_000_000; merchantCosts[1] = 37_000_000; merchantCosts[2] = 38_000_000; merchantCosts[3] = 34_000_000; merchantCosts[4] = 48_000_000; merchantCosts[5] = 35_000_000; merchantCosts[6] = 81_000_000; } function createOrder(bytes32 _hash, address _recipient, address _collection, uint256 _nftId, uint256 _timestamp, address _token, uint256 _amount, uint _destination) public { address _orderBy = msg.sender; validateOrderData(_hash, _recipient, _collection, _nftId, _timestamp, _orderBy, _destination); validateTokenAmount(_token, _amount, _nftId, _destination); uint256 orderPrice = deposit(_token, _amount, _nftId, _destination); order[_hash] = Order({ recipient: _recipient, orderBy: _orderBy, timestamp: _timestamp, nftId: _nftId }); emit OrderCreated( _hash, _recipient, _collection, _nftId, _timestamp, _orderBy, _amount, orderPrice, shippingFee[_destination], printingPrice, _token ); } function deposit(address _token, uint256 _amount, uint256 _nftId, uint _destination) private returns(uint256 orderPrice) { nftSoldTimes[_nftId] = nftSoldTimes[_nftId] + 1; IERC20(_token).transferFrom(msg.sender, address(this), _amount); orderPrice = _amount - (merchantCosts[_destination] + printingPrice); IERC20(_token).transfer(paymentSplitter, orderPrice); return orderPrice; } function withdraw(address _token) public { if (msg.sender != merchant) { revert InvalidMerchant({ provided: msg.sender, expected: merchant }); } uint256 balance = IERC20(_token).balanceOf(address(this)); IERC20(_token).transfer(address(this), balance); } function getTotalPrice(uint256 _nftId, uint _destination) public view returns (uint256 totalAmount, uint256 additionalTax, uint256) { uint256 multiplier = nftSoldTimes[_nftId]; additionalTax = initialPrice * (multiplier * 1000) / 10000; totalAmount = initialPrice + additionalTax + shippingFee[_destination]; return (totalAmount, additionalTax, shippingFee[_destination]); } function updateInitialPrice(uint256 _initialPrice) public onlyOwner { initialPrice = _initialPrice; } function updatePrintingPrice(uint256 _printingPrice) public onlyOwner { printingPrice = _printingPrice; } function updateShippingFee(uint _destination, uint256 _cost) public onlyOwner { shippingFee[_destination] = _cost; } function updateMerchantCosts(uint _destination, uint256 _cost) public onlyOwner { merchantCosts[_destination] = _cost; } function updateTokenList(address _token, bool _enable) public onlyOwner { supportedTokens[_token] = _enable; } function validateOrderData( bytes32 _hash, address _recipient, address _collection, uint256 _nftId, uint256 _timestamp, address _orderBy, uint _destination ) private view { bytes32 hash = keccak256( abi.encodePacked(_recipient, _collection, _nftId, _timestamp, _orderBy) ); if (_hash != hash) { revert InvalidHash({ provided: _hash, expected: hash }); } if (order[_hash].recipient != address(0x0)) { revert ExistingOrder({ hash: hash }); } if (_collection != collection) { revert InvalidCollection({ provided: _collection, expected: collection }); } if (_destination != 0 && shippingFee[_destination] == 0) { revert InvalidDestination({ provided: _destination }); } } function validateTokenAmount(address _token, uint256 _amount, uint256 _nftId, uint _destination) private view { if (supportedTokens[_token] == false) { revert InvalidToken({ provided: _token }); } (uint256 totalAmount,,) = getTotalPrice(_nftId, _destination); if (_amount < totalAmount) { revert InsufficientBalance({ sent: _amount, required: totalAmount }); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_paymentSplitter","type":"address"},{"internalType":"address","name":"_merchant","type":"address"},{"internalType":"address","name":"_collection","type":"address"},{"internalType":"uint256","name":"_initialPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"ExistingOrder","type":"error"},{"inputs":[{"internalType":"uint256","name":"sent","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"provided","type":"address"},{"internalType":"address","name":"expected","type":"address"}],"name":"InvalidCollection","type":"error"},{"inputs":[{"internalType":"uint256","name":"provided","type":"uint256"}],"name":"InvalidDestination","type":"error"},{"inputs":[{"internalType":"bytes32","name":"provided","type":"bytes32"},{"internalType":"bytes32","name":"expected","type":"bytes32"}],"name":"InvalidHash","type":"error"},{"inputs":[{"internalType":"address","name":"provided","type":"address"},{"internalType":"address","name":"expected","type":"address"}],"name":"InvalidMerchant","type":"error"},{"inputs":[{"internalType":"address","name":"provided","type":"address"}],"name":"InvalidToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"hash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"collection","type":"address"},{"indexed":false,"internalType":"uint256","name":"nftId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"orderBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"totalAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"orderPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"additionalCost","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"printingPrice","type":"uint256"},{"indexed":false,"internalType":"address","name":"token","type":"address"}],"name":"OrderCreated","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":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"address","name":"_collection","type":"address"},{"internalType":"uint256","name":"_nftId","type":"uint256"},{"internalType":"uint256","name":"_timestamp","type":"uint256"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_destination","type":"uint256"}],"name":"createOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nftId","type":"uint256"},{"internalType":"uint256","name":"_destination","type":"uint256"}],"name":"getTotalPrice","outputs":[{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"uint256","name":"additionalTax","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"merchantCosts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"nftSoldTimes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"order","outputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"orderBy","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"nftId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"shippingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"supportedTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_initialPrice","type":"uint256"}],"name":"updateInitialPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_destination","type":"uint256"},{"internalType":"uint256","name":"_cost","type":"uint256"}],"name":"updateMerchantCosts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_printingPrice","type":"uint256"}],"name":"updatePrintingPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_destination","type":"uint256"},{"internalType":"uint256","name":"_cost","type":"uint256"}],"name":"updateShippingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"bool","name":"_enable","type":"bool"}],"name":"updateTokenList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e0604052628f47b06002553480156200001857600080fd5b50604051620021493803806200214983398181016040528101906200003e9190620004e4565b6200005e620000526200037360201b60201c565b6200037b60201b60201c565b8373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505080600181905550600160076000732791bca1f2de4661ed88a30c99a7a9449aa8417473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073c2132d05d31c914a87c6611c10748aeb04b58e8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600560008081526020019081526020016000208190555063019bfcc06005600060018152602001908152602001600020819055506301ab3f0060056000600281526020019081526020016000208190555063016e3600600560006003815260200190815260200160002081905550630243d58060056000600481526020019081526020016000208190555063017d784060056000600581526020019081526020016000208190555063043b5fc0600560006006815260200190815260200160002081905550625b8d8060066000808152602001908152602001600020819055506302349340600660006001815260200190815260200160002081905550630243d580600660006002815260200190815260200160002081905550630206cc806006600060038152602001908152602001600020819055506302dc6c006006600060048152602001908152602001600020819055506302160ec06006600060058152602001908152602001600020819055506304d3f6406006600060068152602001908152602001600020819055505050505062000556565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004718262000444565b9050919050565b620004838162000464565b81146200048f57600080fd5b50565b600081519050620004a38162000478565b92915050565b6000819050919050565b620004be81620004a9565b8114620004ca57600080fd5b50565b600081519050620004de81620004b3565b92915050565b600080600080608085870312156200050157620005006200043f565b5b6000620005118782880162000492565b9450506020620005248782880162000492565b9350506040620005378782880162000492565b92505060606200054a87828801620004cd565b91505092959194509250565b60805160a05160c051611bb56200059460003960008181610ddc0152610e30015260006110f601526000818161047c01526104d00152611bb56000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a6116100975780639b7a0ee3116100665780639b7a0ee3146102ab578063e70126e3146102c7578063e80160ab146102e3578063f2fde38b1461031657610100565b8063715018a614610237578063782e6466146102415780638da5cb5b1461025d578063991aeefe1461027b57610100565b806354d0cfa1116100d357806354d0cfa11461019f57806365f77900146101bb57806367eafa2a146101d757806368c4ac261461020757610100565b8063100a005014610105578063126a86ea146101355780631eaf73c91461016757806351cff8d914610183575b600080fd5b61011f600480360381019061011a919061127e565b610332565b60405161012c91906112ba565b60405180910390f35b61014f600480360381019061014a91906112d5565b61034a565b60405161015e93929190611315565b60405180910390f35b610181600480360381019061017c91906112d5565b6103e2565b005b61019d600480360381019061019891906113aa565b61047a565b005b6101b960048036038101906101b4919061127e565b61062d565b005b6101d560048036038101906101d0919061140d565b6106b3565b005b6101f160048036038101906101ec919061127e565b610854565b6040516101fe91906112ba565b60405180910390f35b610221600480360381019061021c91906113aa565b61086c565b60405161022e91906114de565b60405180910390f35b61023f61088c565b005b61025b6004803603810190610256919061127e565b610914565b005b61026561099a565b6040516102729190611508565b60405180910390f35b6102956004803603810190610290919061127e565b6109c3565b6040516102a291906112ba565b60405180910390f35b6102c560048036038101906102c0919061154f565b6109db565b005b6102e160048036038101906102dc91906112d5565b610ab2565b005b6102fd60048036038101906102f8919061158f565b610b4a565b60405161030d94939291906115bc565b60405180910390f35b610330600480360381019061032b91906113aa565b610bba565b005b60066020528060005260406000206000915090505481565b600080600080600460008781526020019081526020016000205490506127106103e8826103779190611630565b6001546103849190611630565b61038e91906116b9565b92506005600086815260200190815260200160002054836001546103b291906116ea565b6103bc91906116ea565b935083836005600088815260200190815260200160002054935093509350509250925092565b6103ea610cb2565b73ffffffffffffffffffffffffffffffffffffffff1661040861099a565b73ffffffffffffffffffffffffffffffffffffffff161461045e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104559061179d565b60405180910390fd5b8060066000848152602001908152602001600020819055505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461052c57337f00000000000000000000000000000000000000000000000000000000000000006040517f5db3619c0000000000000000000000000000000000000000000000000000000081526004016105239291906117bd565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105679190611508565b602060405180830381865afa158015610584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a891906117fb565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb30836040518363ffffffff1660e01b81526004016105e5929190611828565b6020604051808303816000875af1158015610604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106289190611866565b505050565b610635610cb2565b73ffffffffffffffffffffffffffffffffffffffff1661065361099a565b73ffffffffffffffffffffffffffffffffffffffff16146106a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a09061179d565b60405180910390fd5b8060018190555050565b60003390506106c789898989898688610cba565b6106d384848885610efc565b60006106e185858986610ff0565b905060405180608001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200187815260200188815250600360008c815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301559050507fd45160ac790973fd64a7b5872082eb1bdce53022e2220392df33cb0a7ac155608a8a8a8a8a878a88600560008d8152602001908152602001600020546002548f6040516108409b9a999897969594939291906118a2565b60405180910390a150505050505050505050565b60056020528060005260406000206000915090505481565b60076020528060005260406000206000915054906101000a900460ff1681565b610894610cb2565b73ffffffffffffffffffffffffffffffffffffffff166108b261099a565b73ffffffffffffffffffffffffffffffffffffffff1614610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff9061179d565b60405180910390fd5b610912600061117f565b565b61091c610cb2565b73ffffffffffffffffffffffffffffffffffffffff1661093a61099a565b73ffffffffffffffffffffffffffffffffffffffff1614610990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109879061179d565b60405180910390fd5b8060028190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60046020528060005260406000206000915090505481565b6109e3610cb2565b73ffffffffffffffffffffffffffffffffffffffff16610a0161099a565b73ffffffffffffffffffffffffffffffffffffffff1614610a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4e9061179d565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610aba610cb2565b73ffffffffffffffffffffffffffffffffffffffff16610ad861099a565b73ffffffffffffffffffffffffffffffffffffffff1614610b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b259061179d565b60405180910390fd5b8060056000848152602001908152602001600020819055505050565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b610bc2610cb2565b73ffffffffffffffffffffffffffffffffffffffff16610be061099a565b73ffffffffffffffffffffffffffffffffffffffff1614610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d9061179d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d906119bf565b60405180910390fd5b610caf8161117f565b50565b600033905090565b60008686868686604051602001610cd5959493929190611a48565b604051602081830303815290604052805190602001209050808814610d335787816040517ff2032aed000000000000000000000000000000000000000000000000000000008152600401610d2a929190611aa7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360008a815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dda57806040517f413d3fa0000000000000000000000000000000000000000000000000000000008152600401610dd19190611ad0565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610e8c57857f00000000000000000000000000000000000000000000000000000000000000006040517fa0cb6aa3000000000000000000000000000000000000000000000000000000008152600401610e839291906117bd565b60405180910390fd5b60008214158015610eb0575060006005600084815260200190815260200160002054145b15610ef257816040517f31a66e8c000000000000000000000000000000000000000000000000000000008152600401610ee991906112ba565b60405180910390fd5b5050505050505050565b60001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610f9257836040517f961c9a4f000000000000000000000000000000000000000000000000000000008152600401610f899190611508565b60405180910390fd5b6000610f9e838361034a565b5050905080841015610fe95783816040517fcf479181000000000000000000000000000000000000000000000000000000008152600401610fe0929190611aeb565b60405180910390fd5b5050505050565b60006001600460008581526020019081526020016000205461101291906116ea565b60046000858152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b815260040161106693929190611b14565b6020604051808303816000875af1158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190611866565b5060025460066000848152602001908152602001600020546110cb91906116ea565b846110d69190611b4b565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b8152600401611133929190611828565b6020604051808303816000875af1158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190611866565b50949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b61125b81611248565b811461126657600080fd5b50565b60008135905061127881611252565b92915050565b60006020828403121561129457611293611243565b5b60006112a284828501611269565b91505092915050565b6112b481611248565b82525050565b60006020820190506112cf60008301846112ab565b92915050565b600080604083850312156112ec576112eb611243565b5b60006112fa85828601611269565b925050602061130b85828601611269565b9150509250929050565b600060608201905061132a60008301866112ab565b61133760208301856112ab565b61134460408301846112ab565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113778261134c565b9050919050565b6113878161136c565b811461139257600080fd5b50565b6000813590506113a48161137e565b92915050565b6000602082840312156113c0576113bf611243565b5b60006113ce84828501611395565b91505092915050565b6000819050919050565b6113ea816113d7565b81146113f557600080fd5b50565b600081359050611407816113e1565b92915050565b600080600080600080600080610100898b03121561142e5761142d611243565b5b600061143c8b828c016113f8565b985050602061144d8b828c01611395565b975050604061145e8b828c01611395565b965050606061146f8b828c01611269565b95505060806114808b828c01611269565b94505060a06114918b828c01611395565b93505060c06114a28b828c01611269565b92505060e06114b38b828c01611269565b9150509295985092959890939650565b60008115159050919050565b6114d8816114c3565b82525050565b60006020820190506114f360008301846114cf565b92915050565b6115028161136c565b82525050565b600060208201905061151d60008301846114f9565b92915050565b61152c816114c3565b811461153757600080fd5b50565b60008135905061154981611523565b92915050565b6000806040838503121561156657611565611243565b5b600061157485828601611395565b92505060206115858582860161153a565b9150509250929050565b6000602082840312156115a5576115a4611243565b5b60006115b3848285016113f8565b91505092915050565b60006080820190506115d160008301876114f9565b6115de60208301866114f9565b6115eb60408301856112ab565b6115f860608301846112ab565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061163b82611248565b915061164683611248565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561167f5761167e611601565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006116c482611248565b91506116cf83611248565b9250826116df576116de61168a565b5b828204905092915050565b60006116f582611248565b915061170083611248565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561173557611734611601565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611787602083611740565b915061179282611751565b602082019050919050565b600060208201905081810360008301526117b68161177a565b9050919050565b60006040820190506117d260008301856114f9565b6117df60208301846114f9565b9392505050565b6000815190506117f581611252565b92915050565b60006020828403121561181157611810611243565b5b600061181f848285016117e6565b91505092915050565b600060408201905061183d60008301856114f9565b61184a60208301846112ab565b9392505050565b60008151905061186081611523565b92915050565b60006020828403121561187c5761187b611243565b5b600061188a84828501611851565b91505092915050565b61189c816113d7565b82525050565b6000610160820190506118b8600083018e611893565b6118c5602083018d6114f9565b6118d2604083018c6114f9565b6118df606083018b6112ab565b6118ec608083018a6112ab565b6118f960a08301896114f9565b61190660c08301886112ab565b61191360e08301876112ab565b6119216101008301866112ab565b61192f6101208301856112ab565b61193d6101408301846114f9565b9c9b505050505050505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006119a9602683611740565b91506119b48261194d565b604082019050919050565b600060208201905081810360008301526119d88161199c565b9050919050565b60008160601b9050919050565b60006119f7826119df565b9050919050565b6000611a09826119ec565b9050919050565b611a21611a1c8261136c565b6119fe565b82525050565b6000819050919050565b611a42611a3d82611248565b611a27565b82525050565b6000611a548288611a10565b601482019150611a648287611a10565b601482019150611a748286611a31565b602082019150611a848285611a31565b602082019150611a948284611a10565b6014820191508190509695505050505050565b6000604082019050611abc6000830185611893565b611ac96020830184611893565b9392505050565b6000602082019050611ae56000830184611893565b92915050565b6000604082019050611b0060008301856112ab565b611b0d60208301846112ab565b9392505050565b6000606082019050611b2960008301866114f9565b611b3660208301856114f9565b611b4360408301846112ab565b949350505050565b6000611b5682611248565b9150611b6183611248565b925082821015611b7457611b73611601565b5b82820390509291505056fea26469706673582212209bc6a0e97a0c02b17ffad53090dab2fcde11619f39852539bda75d0d1bad1eea64736f6c634300080a00330000000000000000000000001b4fbfb1fd99d00128afeb4dc25fc1d6608b11340000000000000000000000001b4fbfb1fd99d00128afeb4dc25fc1d6608b1134000000000000000000000000d13a6031f450bc2755e76123098e5d4331ed56430000000000000000000000000000000000000000000000000000000004b571c0
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001b4fbfb1fd99d00128afeb4dc25fc1d6608b11340000000000000000000000001b4fbfb1fd99d00128afeb4dc25fc1d6608b1134000000000000000000000000d13a6031f450bc2755e76123098e5d4331ed56430000000000000000000000000000000000000000000000000000000004b571c0
-----Decoded View---------------
Arg [0] : _paymentSplitter (address): 0x1b4fbfb1fd99d00128afeb4dc25fc1d6608b1134
Arg [1] : _merchant (address): 0x1b4fbfb1fd99d00128afeb4dc25fc1d6608b1134
Arg [2] : _collection (address): 0xd13a6031f450bc2755e76123098e5d4331ed5643
Arg [3] : _initialPrice (uint256): 79000000
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000001b4fbfb1fd99d00128afeb4dc25fc1d6608b1134
Arg [1] : 0000000000000000000000001b4fbfb1fd99d00128afeb4dc25fc1d6608b1134
Arg [2] : 000000000000000000000000d13a6031f450bc2755e76123098e5d4331ed5643
Arg [3] : 0000000000000000000000000000000000000000000000000000000004b571c0
Deployed ByteCode Sourcemap
21028:6035:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21447:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24377:421;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;25196:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24010:359;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24808:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22566:989;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21397:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21499:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3583:103;;;:::i;:::-;;24931:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2932:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21343:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25338:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25058:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21298:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3841:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21447:45;;;;;;;;;;;;;;;;;:::o;24377:421::-;24456:19;24477:21;24500:7;24520:18;24541:12;:20;24554:6;24541:20;;;;;;;;;;;;24520:41;;24627:5;24619:4;24606:10;:17;;;;:::i;:::-;24590:12;;:34;;;;:::i;:::-;:42;;;;:::i;:::-;24574:58;;24690:11;:25;24702:12;24690:25;;;;;;;;;;;;24674:13;24659:12;;:28;;;;:::i;:::-;:56;;;;:::i;:::-;24645:70;;24736:11;24749:13;24764:11;:25;24776:12;24764:25;;;;;;;;;;;;24728:62;;;;;;;24377:421;;;;;:::o;25196:134::-;3163:12;:10;:12::i;:::-;3152:23;;:7;:5;:7::i;:::-;:23;;;3144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25317:5:::1;25287:13;:27;25301:12;25287:27;;;;;;;;;;;:35;;;;25196:134:::0;;:::o;24010:359::-;24080:8;24066:22;;:10;:22;;;24062:170;;24157:10;24196:8;24112:108;;;;;;;;;;;;:::i;:::-;;;;;;;;24062:170;24244:15;24269:6;24262:24;;;24295:4;24262:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24244:57;;24321:6;24314:23;;;24346:4;24353:7;24314:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24051:318;24010:359;:::o;24808:115::-;3163:12;:10;:12::i;:::-;3152:23;;:7;:5;:7::i;:::-;:23;;;3144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24902:13:::1;24887:12;:28;;;;24808:115:::0;:::o;22566:989::-;22750:16;22769:10;22750:29;;22792:93;22810:5;22817:10;22829:11;22842:6;22850:10;22862:8;22872:12;22792:17;:93::i;:::-;22906:58;22926:6;22934:7;22943:6;22951:12;22906:19;:58::i;:::-;22977:18;22998:46;23006:6;23014:7;23023:6;23031:12;22998:7;:46::i;:::-;22977:67;;23080:150;;;;;;;;23112:10;23080:150;;;;;;23146:8;23080:150;;;;;;23180:10;23080:150;;;;23212:6;23080:150;;;23065:5;:12;23071:5;23065:12;;;;;;;;;;;:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23248:299;23275:5;23295:10;23320:11;23346:6;23367:10;23392:8;23415:7;23437:10;23462:11;:25;23474:12;23462:25;;;;;;;;;;;;23502:13;;23530:6;23248:299;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;22739:816;;22566:989;;;;;;;;:::o;21397:43::-;;;;;;;;;;;;;;;;;:::o;21499:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;3583:103::-;3163:12;:10;:12::i;:::-;3152:23;;:7;:5;:7::i;:::-;:23;;;3144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3648:30:::1;3675:1;3648:18;:30::i;:::-;3583:103::o:0;24931:119::-;3163:12;:10;:12::i;:::-;3152:23;;:7;:5;:7::i;:::-;:23;;;3144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25028:14:::1;25012:13;:30;;;;24931:119:::0;:::o;2932:87::-;2978:7;3005:6;;;;;;;;;;;2998:13;;2932:87;:::o;21343:47::-;;;;;;;;;;;;;;;;;:::o;25338:124::-;3163:12;:10;:12::i;:::-;3152:23;;:7;:5;:7::i;:::-;:23;;;3144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25447:7:::1;25421:15;:23;25437:6;25421:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;25338:124:::0;;:::o;25058:130::-;3163:12;:10;:12::i;:::-;3152:23;;:7;:5;:7::i;:::-;:23;;;3144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25175:5:::1;25147:11;:25;25159:12;25147:25;;;;;;;;;;;:33;;;;25058:130:::0;;:::o;21298:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3841:201::-;3163:12;:10;:12::i;:::-;3152:23;;:7;:5;:7::i;:::-;:23;;;3144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3950:1:::1;3930:22;;:8;:22;;;;3922:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4006:28;4025:8;4006:18;:28::i;:::-;3841:201:::0;:::o;1656:98::-;1709:7;1736:10;1729:17;;1656:98;:::o;25470:1063::-;25726:12;25782:10;25794:11;25807:6;25815:10;25827:8;25765:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;25741:106;;;;;;25726:121;;25873:4;25864:5;:13;25860:148;;25942:5;25976:4;25901:95;;;;;;;;;;;;:::i;:::-;;;;;;;;25860:148;26058:3;26024:38;;:5;:12;26030:5;26024:12;;;;;;;;;;;:22;;;;;;;;;;;;:38;;;26020:137;;26125:4;26086:59;;;;;;;;;;;:::i;:::-;;;;;;;;26020:137;26188:10;26173:25;;:11;:25;;;26169:178;;26269:11;26309:10;26222:113;;;;;;;;;;;;:::i;:::-;;;;;;;;26169:178;26379:1;26363:12;:17;;:51;;;;;26413:1;26384:11;:25;26396:12;26384:25;;;;;;;;;;;;:30;26363:51;26359:167;;;26486:12;26438:76;;;;;;;;;;;:::i;:::-;;;;;;;;26359:167;25715:818;25470:1063;;;;;;;:::o;26541:519::-;26693:5;26666:32;;:15;:23;26682:6;26666:23;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;26662:136;;;26764:6;26722:64;;;;;;;;;;;:::i;:::-;;;;;;;;26662:136;26811:19;26836:35;26850:6;26858:12;26836:13;:35::i;:::-;26810:61;;;;26898:11;26888:7;:21;26884:169;;;26978:7;27014:11;26933:108;;;;;;;;;;;;:::i;:::-;;;;;;;;26884:169;26651:409;26541:519;;;;:::o;23563:439::-;23664:18;23741:1;23718:12;:20;23731:6;23718:20;;;;;;;;;;;;:24;;;;:::i;:::-;23695:12;:20;23708:6;23695:20;;;;;;;;;;;:47;;;;23762:6;23755:27;;;23783:10;23803:4;23810:7;23755:63;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23885:13;;23855;:27;23869:12;23855:27;;;;;;;;;;;;:43;;;;:::i;:::-;23844:7;:55;;;;:::i;:::-;23831:68;;23919:6;23912:23;;;23936:15;23953:10;23912:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23563:439;;;;;;:::o;4202:191::-;4276:16;4295:6;;;;;;;;;;;4276:25;;4321:8;4312:6;;:17;;;;;;;;;;;;;;;;;;4376:8;4345:40;;4366:8;4345:40;;;;;;;;;;;;4265:128;4202:191;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:474::-;1445:6;1453;1502:2;1490:9;1481:7;1477:23;1473:32;1470:119;;;1508:79;;:::i;:::-;1470:119;1628:1;1653:53;1698:7;1689:6;1678:9;1674:22;1653:53;:::i;:::-;1643:63;;1599:117;1755:2;1781:53;1826:7;1817:6;1806:9;1802:22;1781:53;:::i;:::-;1771:63;;1726:118;1377:474;;;;;:::o;1857:442::-;2006:4;2044:2;2033:9;2029:18;2021:26;;2057:71;2125:1;2114:9;2110:17;2101:6;2057:71;:::i;:::-;2138:72;2206:2;2195:9;2191:18;2182:6;2138:72;:::i;:::-;2220;2288:2;2277:9;2273:18;2264:6;2220:72;:::i;:::-;1857:442;;;;;;:::o;2305:126::-;2342:7;2382:42;2375:5;2371:54;2360:65;;2305:126;;;:::o;2437:96::-;2474:7;2503:24;2521:5;2503:24;:::i;:::-;2492:35;;2437:96;;;:::o;2539:122::-;2612:24;2630:5;2612:24;:::i;:::-;2605:5;2602:35;2592:63;;2651:1;2648;2641:12;2592:63;2539:122;:::o;2667:139::-;2713:5;2751:6;2738:20;2729:29;;2767:33;2794:5;2767:33;:::i;:::-;2667:139;;;;:::o;2812:329::-;2871:6;2920:2;2908:9;2899:7;2895:23;2891:32;2888:119;;;2926:79;;:::i;:::-;2888:119;3046:1;3071:53;3116:7;3107:6;3096:9;3092:22;3071:53;:::i;:::-;3061:63;;3017:117;2812:329;;;;:::o;3147:77::-;3184:7;3213:5;3202:16;;3147:77;;;:::o;3230:122::-;3303:24;3321:5;3303:24;:::i;:::-;3296:5;3293:35;3283:63;;3342:1;3339;3332:12;3283:63;3230:122;:::o;3358:139::-;3404:5;3442:6;3429:20;3420:29;;3458:33;3485:5;3458:33;:::i;:::-;3358:139;;;;:::o;3503:1349::-;3625:6;3633;3641;3649;3657;3665;3673;3681;3730:3;3718:9;3709:7;3705:23;3701:33;3698:120;;;3737:79;;:::i;:::-;3698:120;3857:1;3882:53;3927:7;3918:6;3907:9;3903:22;3882:53;:::i;:::-;3872:63;;3828:117;3984:2;4010:53;4055:7;4046:6;4035:9;4031:22;4010:53;:::i;:::-;4000:63;;3955:118;4112:2;4138:53;4183:7;4174:6;4163:9;4159:22;4138:53;:::i;:::-;4128:63;;4083:118;4240:2;4266:53;4311:7;4302:6;4291:9;4287:22;4266:53;:::i;:::-;4256:63;;4211:118;4368:3;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4339:119;4497:3;4524:53;4569:7;4560:6;4549:9;4545:22;4524:53;:::i;:::-;4514:63;;4468:119;4626:3;4653:53;4698:7;4689:6;4678:9;4674:22;4653:53;:::i;:::-;4643:63;;4597:119;4755:3;4782:53;4827:7;4818:6;4807:9;4803:22;4782:53;:::i;:::-;4772:63;;4726:119;3503:1349;;;;;;;;;;;:::o;4858:90::-;4892:7;4935:5;4928:13;4921:21;4910:32;;4858:90;;;:::o;4954:109::-;5035:21;5050:5;5035:21;:::i;:::-;5030:3;5023:34;4954:109;;:::o;5069:210::-;5156:4;5194:2;5183:9;5179:18;5171:26;;5207:65;5269:1;5258:9;5254:17;5245:6;5207:65;:::i;:::-;5069:210;;;;:::o;5285:118::-;5372:24;5390:5;5372:24;:::i;:::-;5367:3;5360:37;5285:118;;:::o;5409:222::-;5502:4;5540:2;5529:9;5525:18;5517:26;;5553:71;5621:1;5610:9;5606:17;5597:6;5553:71;:::i;:::-;5409:222;;;;:::o;5637:116::-;5707:21;5722:5;5707:21;:::i;:::-;5700:5;5697:32;5687:60;;5743:1;5740;5733:12;5687:60;5637:116;:::o;5759:133::-;5802:5;5840:6;5827:20;5818:29;;5856:30;5880:5;5856:30;:::i;:::-;5759:133;;;;:::o;5898:468::-;5963:6;5971;6020:2;6008:9;5999:7;5995:23;5991:32;5988:119;;;6026:79;;:::i;:::-;5988:119;6146:1;6171:53;6216:7;6207:6;6196:9;6192:22;6171:53;:::i;:::-;6161:63;;6117:117;6273:2;6299:50;6341:7;6332:6;6321:9;6317:22;6299:50;:::i;:::-;6289:60;;6244:115;5898:468;;;;;:::o;6372:329::-;6431:6;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6372:329;;;;:::o;6707:553::-;6884:4;6922:3;6911:9;6907:19;6899:27;;6936:71;7004:1;6993:9;6989:17;6980:6;6936:71;:::i;:::-;7017:72;7085:2;7074:9;7070:18;7061:6;7017:72;:::i;:::-;7099;7167:2;7156:9;7152:18;7143:6;7099:72;:::i;:::-;7181;7249:2;7238:9;7234:18;7225:6;7181:72;:::i;:::-;6707:553;;;;;;;:::o;7266:180::-;7314:77;7311:1;7304:88;7411:4;7408:1;7401:15;7435:4;7432:1;7425:15;7452:348;7492:7;7515:20;7533:1;7515:20;:::i;:::-;7510:25;;7549:20;7567:1;7549:20;:::i;:::-;7544:25;;7737:1;7669:66;7665:74;7662:1;7659:81;7654:1;7647:9;7640:17;7636:105;7633:131;;;7744:18;;:::i;:::-;7633:131;7792:1;7789;7785:9;7774:20;;7452:348;;;;:::o;7806:180::-;7854:77;7851:1;7844:88;7951:4;7948:1;7941:15;7975:4;7972:1;7965:15;7992:185;8032:1;8049:20;8067:1;8049:20;:::i;:::-;8044:25;;8083:20;8101:1;8083:20;:::i;:::-;8078:25;;8122:1;8112:35;;8127:18;;:::i;:::-;8112:35;8169:1;8166;8162:9;8157:14;;7992:185;;;;:::o;8183:305::-;8223:3;8242:20;8260:1;8242:20;:::i;:::-;8237:25;;8276:20;8294:1;8276:20;:::i;:::-;8271:25;;8430:1;8362:66;8358:74;8355:1;8352:81;8349:107;;;8436:18;;:::i;:::-;8349:107;8480:1;8477;8473:9;8466:16;;8183:305;;;;:::o;8494:169::-;8578:11;8612:6;8607:3;8600:19;8652:4;8647:3;8643:14;8628:29;;8494:169;;;;:::o;8669:182::-;8809:34;8805:1;8797:6;8793:14;8786:58;8669:182;:::o;8857:366::-;8999:3;9020:67;9084:2;9079:3;9020:67;:::i;:::-;9013:74;;9096:93;9185:3;9096:93;:::i;:::-;9214:2;9209:3;9205:12;9198:19;;8857:366;;;:::o;9229:419::-;9395:4;9433:2;9422:9;9418:18;9410:26;;9482:9;9476:4;9472:20;9468:1;9457:9;9453:17;9446:47;9510:131;9636:4;9510:131;:::i;:::-;9502:139;;9229:419;;;:::o;9654:332::-;9775:4;9813:2;9802:9;9798:18;9790:26;;9826:71;9894:1;9883:9;9879:17;9870:6;9826:71;:::i;:::-;9907:72;9975:2;9964:9;9960:18;9951:6;9907:72;:::i;:::-;9654:332;;;;;:::o;9992:143::-;10049:5;10080:6;10074:13;10065:22;;10096:33;10123:5;10096:33;:::i;:::-;9992:143;;;;:::o;10141:351::-;10211:6;10260:2;10248:9;10239:7;10235:23;10231:32;10228:119;;;10266:79;;:::i;:::-;10228:119;10386:1;10411:64;10467:7;10458:6;10447:9;10443:22;10411:64;:::i;:::-;10401:74;;10357:128;10141:351;;;;:::o;10498:332::-;10619:4;10657:2;10646:9;10642:18;10634:26;;10670:71;10738:1;10727:9;10723:17;10714:6;10670:71;:::i;:::-;10751:72;10819:2;10808:9;10804:18;10795:6;10751:72;:::i;:::-;10498:332;;;;;:::o;10836:137::-;10890:5;10921:6;10915:13;10906:22;;10937:30;10961:5;10937:30;:::i;:::-;10836:137;;;;:::o;10979:345::-;11046:6;11095:2;11083:9;11074:7;11070:23;11066:32;11063:119;;;11101:79;;:::i;:::-;11063:119;11221:1;11246:61;11299:7;11290:6;11279:9;11275:22;11246:61;:::i;:::-;11236:71;;11192:125;10979:345;;;;:::o;11330:118::-;11417:24;11435:5;11417:24;:::i;:::-;11412:3;11405:37;11330:118;;:::o;11454:1332::-;11828:4;11866:3;11855:9;11851:19;11843:27;;11880:71;11948:1;11937:9;11933:17;11924:6;11880:71;:::i;:::-;11961:72;12029:2;12018:9;12014:18;12005:6;11961:72;:::i;:::-;12043;12111:2;12100:9;12096:18;12087:6;12043:72;:::i;:::-;12125;12193:2;12182:9;12178:18;12169:6;12125:72;:::i;:::-;12207:73;12275:3;12264:9;12260:19;12251:6;12207:73;:::i;:::-;12290;12358:3;12347:9;12343:19;12334:6;12290:73;:::i;:::-;12373;12441:3;12430:9;12426:19;12417:6;12373:73;:::i;:::-;12456;12524:3;12513:9;12509:19;12500:6;12456:73;:::i;:::-;12539;12607:3;12596:9;12592:19;12583:6;12539:73;:::i;:::-;12622;12690:3;12679:9;12675:19;12666:6;12622:73;:::i;:::-;12705:74;12774:3;12763:9;12759:19;12749:7;12705:74;:::i;:::-;11454:1332;;;;;;;;;;;;;;:::o;12792:225::-;12932:34;12928:1;12920:6;12916:14;12909:58;13001:8;12996:2;12988:6;12984:15;12977:33;12792:225;:::o;13023:366::-;13165:3;13186:67;13250:2;13245:3;13186:67;:::i;:::-;13179:74;;13262:93;13351:3;13262:93;:::i;:::-;13380:2;13375:3;13371:12;13364:19;;13023:366;;;:::o;13395:419::-;13561:4;13599:2;13588:9;13584:18;13576:26;;13648:9;13642:4;13638:20;13634:1;13623:9;13619:17;13612:47;13676:131;13802:4;13676:131;:::i;:::-;13668:139;;13395:419;;;:::o;13820:94::-;13853:8;13901:5;13897:2;13893:14;13872:35;;13820:94;;;:::o;13920:::-;13959:7;13988:20;14002:5;13988:20;:::i;:::-;13977:31;;13920:94;;;:::o;14020:100::-;14059:7;14088:26;14108:5;14088:26;:::i;:::-;14077:37;;14020:100;;;:::o;14126:157::-;14231:45;14251:24;14269:5;14251:24;:::i;:::-;14231:45;:::i;:::-;14226:3;14219:58;14126:157;;:::o;14289:79::-;14328:7;14357:5;14346:16;;14289:79;;;:::o;14374:157::-;14479:45;14499:24;14517:5;14499:24;:::i;:::-;14479:45;:::i;:::-;14474:3;14467:58;14374:157;;:::o;14537:820::-;14761:3;14776:75;14847:3;14838:6;14776:75;:::i;:::-;14876:2;14871:3;14867:12;14860:19;;14889:75;14960:3;14951:6;14889:75;:::i;:::-;14989:2;14984:3;14980:12;14973:19;;15002:75;15073:3;15064:6;15002:75;:::i;:::-;15102:2;15097:3;15093:12;15086:19;;15115:75;15186:3;15177:6;15115:75;:::i;:::-;15215:2;15210:3;15206:12;15199:19;;15228:75;15299:3;15290:6;15228:75;:::i;:::-;15328:2;15323:3;15319:12;15312:19;;15348:3;15341:10;;14537:820;;;;;;;;:::o;15363:332::-;15484:4;15522:2;15511:9;15507:18;15499:26;;15535:71;15603:1;15592:9;15588:17;15579:6;15535:71;:::i;:::-;15616:72;15684:2;15673:9;15669:18;15660:6;15616:72;:::i;:::-;15363:332;;;;;:::o;15701:222::-;15794:4;15832:2;15821:9;15817:18;15809:26;;15845:71;15913:1;15902:9;15898:17;15889:6;15845:71;:::i;:::-;15701:222;;;;:::o;15929:332::-;16050:4;16088:2;16077:9;16073:18;16065:26;;16101:71;16169:1;16158:9;16154:17;16145:6;16101:71;:::i;:::-;16182:72;16250:2;16239:9;16235:18;16226:6;16182:72;:::i;:::-;15929:332;;;;;:::o;16267:442::-;16416:4;16454:2;16443:9;16439:18;16431:26;;16467:71;16535:1;16524:9;16520:17;16511:6;16467:71;:::i;:::-;16548:72;16616:2;16605:9;16601:18;16592:6;16548:72;:::i;:::-;16630;16698:2;16687:9;16683:18;16674:6;16630:72;:::i;:::-;16267:442;;;;;;:::o;16715:191::-;16755:4;16775:20;16793:1;16775:20;:::i;:::-;16770:25;;16809:20;16827:1;16809:20;:::i;:::-;16804:25;;16848:1;16845;16842:8;16839:34;;;16853:18;;:::i;:::-;16839:34;16898:1;16895;16891:9;16883:17;;16715:191;;;;:::o
Swarm Source
ipfs://9bc6a0e97a0c02b17ffad53090dab2fcde11619f39852539bda75d0d1bad1eea
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.