Polygon Sponsored slots available. Book your slot here!
Contract Overview
Balance:
0 MATIC
MATIC Value:
$0.00
My Name Tag:
Not Available, login to update
Txn Hash |
Method
|
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0xccf6a374736fa2845df61d5235879f7c75fae15bff2502ac0c20643fba99640c | 0x60806040 | 38511197 | 2 days 7 hrs ago | 0xe3c601b1fc6564ebf5603fcad7956697761e39db | IN | Create: OrderExecutor | 0 MATIC | 0.050845839682 |
[ Download CSV Export ]
Contract Name:
OrderExecutor
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2023-01-25 */ // SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IVaultUtils { function updateCumulativeFundingRate(address _collateralToken, address _indexToken) external returns (bool); function validateIncreasePosition(address _account, address _collateralToken, address _indexToken, uint256 _sizeDelta, bool _isLong) external view; function validateDecreasePosition(address _account, address _collateralToken, address _indexToken, uint256 _collateralDelta, uint256 _sizeDelta, bool _isLong, address _receiver) external view; function validateLiquidation(address _account, address _collateralToken, address _indexToken, bool _isLong, bool _raise) external view returns (uint256, uint256); function getEntryFundingRate(address _collateralToken, address _indexToken, bool _isLong) external view returns (uint256); function getPositionFee(address _account, address _collateralToken, address _indexToken, bool _isLong, uint256 _sizeDelta) external view returns (uint256); function getFundingFee(address _account, address _collateralToken, address _indexToken, bool _isLong, uint256 _size, uint256 _entryFundingRate) external view returns (uint256); function getBuyUsdgFeeBasisPoints(address _token, uint256 _usdgAmount) external view returns (uint256); function getSellUsdgFeeBasisPoints(address _token, uint256 _usdgAmount) external view returns (uint256); function getSwapFeeBasisPoints(address _tokenIn, address _tokenOut, uint256 _usdgAmount) external view returns (uint256); function getFeeBasisPoints(address _token, uint256 _usdgDelta, uint256 _feeBasisPoints, uint256 _taxBasisPoints, bool _increment) external view returns (uint256); } pragma solidity 0.6.12; interface ITimelock { function setAdmin(address _admin) external; function setIsLeverageEnabled(address _vault, bool _isLeverageEnabled) external; function managedSetHandler(address _target, address _handler, bool _isActive) external; function managedSetMinter(address _target, address _minter, bool _isActive) external; } pragma solidity 0.6.12; interface IOrderBook { function getSwapOrder(address _account, uint256 _orderIndex) external view returns ( address path0, address path1, address path2, uint256 amountIn, uint256 minOut, uint256 triggerRatio, bool triggerAboveThreshold, bool shouldUnwrap, uint256 executionFee ); function getIncreaseOrder(address _account, uint256 _orderIndex) external view returns ( address purchaseToken, uint256 purchaseTokenAmount, address collateralToken, address indexToken, uint256 sizeDelta, bool isLong, uint256 triggerPrice, bool triggerAboveThreshold, uint256 executionFee ); function getDecreaseOrder(address _account, uint256 _orderIndex) external view returns ( address collateralToken, uint256 collateralDelta, address indexToken, uint256 sizeDelta, bool isLong, uint256 triggerPrice, bool triggerAboveThreshold, uint256 executionFee ); function executeSwapOrder(address, uint256, address payable) external; function executeDecreaseOrder(address, uint256, address payable) external; function executeIncreaseOrder(address, uint256, address payable) external; } pragma solidity 0.6.12; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } pragma solidity 0.6.12; interface IVault { function isInitialized() external view returns (bool); function isSwapEnabled() external view returns (bool); function isLeverageEnabled() external view returns (bool); function setVaultUtils(IVaultUtils _vaultUtils) external; function setError(uint256 _errorCode, string calldata _error) external; function router() external view returns (address); function usdg() external view returns (address); function gov() external view returns (address); function whitelistedTokenCount() external view returns (uint256); function maxLeverage() external view returns (uint256); function minProfitTime() external view returns (uint256); function hasDynamicFees() external view returns (bool); function fundingInterval() external view returns (uint256); function totalTokenWeights() external view returns (uint256); function getTargetUsdgAmount(address _token) external view returns (uint256); function inManagerMode() external view returns (bool); function inPrivateLiquidationMode() external view returns (bool); function maxGasPrice() external view returns (uint256); function approvedRouters(address _account, address _router) external view returns (bool); function isLiquidator(address _account) external view returns (bool); function isManager(address _account) external view returns (bool); function minProfitBasisPoints(address _token) external view returns (uint256); function tokenBalances(address _token) external view returns (uint256); function lastFundingTimes(address _token) external view returns (uint256); function setMaxLeverage(uint256 _maxLeverage) external; function setInManagerMode(bool _inManagerMode) external; function setManager(address _manager, bool _isManager) external; function setIsSwapEnabled(bool _isSwapEnabled) external; function setIsLeverageEnabled(bool _isLeverageEnabled) external; function setMaxGasPrice(uint256 _maxGasPrice) external; function setUsdgAmount(address _token, uint256 _amount) external; function setBufferAmount(address _token, uint256 _amount) external; function setMaxGlobalShortSize(address _token, uint256 _amount) external; function setInPrivateLiquidationMode(bool _inPrivateLiquidationMode) external; function setLiquidator(address _liquidator, bool _isActive) external; function setFundingRate(uint256 _fundingInterval, uint256 _fundingRateFactor, uint256 _stableFundingRateFactor) external; function setFees( uint256 _taxBasisPoints, uint256 _stableTaxBasisPoints, uint256 _mintBurnFeeBasisPoints, uint256 _swapFeeBasisPoints, uint256 _stableSwapFeeBasisPoints, uint256 _marginFeeBasisPoints, uint256 _liquidationFeeUsd, uint256 _minProfitTime, bool _hasDynamicFees ) external; function setTokenConfig( address _token, uint256 _tokenDecimals, uint256 _redemptionBps, uint256 _minProfitBps, uint256 _maxUsdgAmount, bool _isStable, bool _isShortable ) external; function setPriceFeed(address _priceFeed) external; function withdrawFees(address _token, address _receiver) external returns (uint256); function directPoolDeposit(address _token) external; function buyUSDG(address _token, address _receiver) external returns (uint256); function sellUSDG(address _token, address _receiver) external returns (uint256); function swap(address _tokenIn, address _tokenOut, address _receiver) external returns (uint256); function increasePosition(address _account, address _collateralToken, address _indexToken, uint256 _sizeDelta, bool _isLong) external; function decreasePosition(address _account, address _collateralToken, address _indexToken, uint256 _collateralDelta, uint256 _sizeDelta, bool _isLong, address _receiver) external returns (uint256); function tokenToUsdMin(address _token, uint256 _tokenAmount) external view returns (uint256); function priceFeed() external view returns (address); function fundingRateFactor() external view returns (uint256); function stableFundingRateFactor() external view returns (uint256); function cumulativeFundingRates(address _token) external view returns (uint256); function getNextFundingRate(address _token) external view returns (uint256); function getFeeBasisPoints(address _token, uint256 _usdgDelta, uint256 _feeBasisPoints, uint256 _taxBasisPoints, bool _increment) external view returns (uint256); function liquidationFeeUsd() external view returns (uint256); function taxBasisPoints() external view returns (uint256); function stableTaxBasisPoints() external view returns (uint256); function mintBurnFeeBasisPoints() external view returns (uint256); function swapFeeBasisPoints() external view returns (uint256); function stableSwapFeeBasisPoints() external view returns (uint256); function marginFeeBasisPoints() external view returns (uint256); function allWhitelistedTokensLength() external view returns (uint256); function allWhitelistedTokens(uint256) external view returns (address); function whitelistedTokens(address _token) external view returns (bool); function stableTokens(address _token) external view returns (bool); function shortableTokens(address _token) external view returns (bool); function feeReserves(address _token) external view returns (uint256); function globalShortSizes(address _token) external view returns (uint256); function globalShortAveragePrices(address _token) external view returns (uint256); function maxGlobalShortSizes(address _token) external view returns (uint256); function tokenDecimals(address _token) external view returns (uint256); function tokenWeights(address _token) external view returns (uint256); function guaranteedUsd(address _token) external view returns (uint256); function poolAmounts(address _token) external view returns (uint256); function bufferAmounts(address _token) external view returns (uint256); function reservedAmounts(address _token) external view returns (uint256); function usdgAmounts(address _token) external view returns (uint256); function maxUsdgAmounts(address _token) external view returns (uint256); function getRedemptionAmount(address _token, uint256 _usdgAmount) external view returns (uint256); function getMaxPrice(address _token) external view returns (uint256); function getMinPrice(address _token) external view returns (uint256); function getDelta(address _indexToken, uint256 _size, uint256 _averagePrice, bool _isLong, uint256 _lastIncreasedTime) external view returns (bool, uint256); function getPosition(address _account, address _collateralToken, address _indexToken, bool _isLong) external view returns (uint256, uint256, uint256, uint256, uint256, uint256, bool, uint256); } pragma solidity ^0.6.0; contract OrderExecutor { using SafeMath for uint256; uint256 public constant BASIS_POINTS_DIVISOR = 10000; address public vault; address public orderBook; constructor(address _vault, address _orderBook) public { require(_vault != address(0) && _orderBook != address(0), "OrderExecutor: invalid address"); vault = _vault; orderBook = _orderBook; } function executeSwapOrder(address _account, uint256 _orderIndex, address payable _feeReceiver) external { IOrderBook(orderBook).executeSwapOrder(_account, _orderIndex, _feeReceiver); } function executeIncreaseOrder(address _address, uint256 _orderIndex, address payable _feeReceiver) external { _validateIncreaseOrder(_address, _orderIndex); address timelock = IVault(vault).gov(); ITimelock(timelock).setIsLeverageEnabled(vault, true); IOrderBook(orderBook).executeIncreaseOrder(_address, _orderIndex, _feeReceiver); ITimelock(timelock).setIsLeverageEnabled(vault, false); } function executeDecreaseOrder(address _address, uint256 _orderIndex, address payable _feeReceiver) external { IOrderBook(orderBook).executeDecreaseOrder(_address, _orderIndex, _feeReceiver); } function _validateIncreaseOrder(address _account, uint256 _orderIndex) internal view { ( address _purchaseToken, uint256 _purchaseTokenAmount, address _collateralToken, address _indexToken, uint256 _sizeDelta, bool _isLong, , // triggerPrice , // triggerAboveThreshold // executionFee ) = IOrderBook(orderBook).getIncreaseOrder(_account, _orderIndex); // shorts are okay if (!_isLong) { return; } // if the position size is not increasing, this is a collateral deposit require(_sizeDelta > 0, "OrderExecutor: long deposit"); IVault _vault = IVault(vault); (uint256 size, uint256 collateral, , , , , , ) = _vault.getPosition(_account, _collateralToken, _indexToken, _isLong); // if there is no existing position, do not charge a fee if (size == 0) { return; } uint256 nextSize = size.add(_sizeDelta); uint256 collateralDelta = _vault.tokenToUsdMin(_purchaseToken, _purchaseTokenAmount); uint256 nextCollateral = collateral.add(collateralDelta); uint256 prevLeverage = size.mul(BASIS_POINTS_DIVISOR).div(collateral); // add 100 to allow for a maximum of a 1% decrease since there might be some swap fees taken from the collateral uint256 nextLeverageWithBuffer = nextSize.mul(BASIS_POINTS_DIVISOR + 100).div(nextCollateral); require(nextLeverageWithBuffer >= prevLeverage, "OrderExecutor: long leverage decrease"); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_orderBook","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BASIS_POINTS_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_orderIndex","type":"uint256"},{"internalType":"address payable","name":"_feeReceiver","type":"address"}],"name":"executeDecreaseOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_orderIndex","type":"uint256"},{"internalType":"address payable","name":"_feeReceiver","type":"address"}],"name":"executeIncreaseOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_orderIndex","type":"uint256"},{"internalType":"address payable","name":"_feeReceiver","type":"address"}],"name":"executeSwapOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"orderBook","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610a10380380610a108339818101604052604081101561003357600080fd5b5080516020909101516001600160a01b0382161580159061005c57506001600160a01b03811615155b6100ad576040805162461bcd60e51b815260206004820152601e60248201527f4f726465724578656375746f723a20696e76616c696420616464726573730000604482015290519081900360640190fd5b600080546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055610928806100e86000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806307c7edc31461006757806311d9444a1461009f578063126082cf146100d5578063776af5ba146100ef578063d38ab51914610113578063fbfa77cf14610149575b600080fd5b61009d6004803603606081101561007d57600080fd5b506001600160a01b03813581169160208101359160409091013516610151565b005b61009d600480360360608110156100b557600080fd5b506001600160a01b038135811691602081013591604090910135166101cb565b6100dd610228565b60408051918252519081900360200190f35b6100f761022e565b604080516001600160a01b039092168252519081900360200190f35b61009d6004803603606081101561012957600080fd5b506001600160a01b0381358116916020810135916040909101351661023d565b6100f7610415565b600154604080516307c7edc360e01b81526001600160a01b038681166004830152602482018690528481166044830152915191909216916307c7edc391606480830192600092919082900301818387803b1580156101ae57600080fd5b505af11580156101c2573d6000803e3d6000fd5b50505050505050565b600154604080516308eca22560e11b81526001600160a01b038681166004830152602482018690528481166044830152915191909216916311d9444a91606480830192600092919082900301818387803b1580156101ae57600080fd5b61271081565b6001546001600160a01b031681565b6102478383610424565b60008060009054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561029657600080fd5b505afa1580156102aa573d6000803e3d6000fd5b505050506040513d60208110156102c057600080fd5b50516000805460408051630cd2b12360e41b81526001600160a01b0392831660048201526001602482015290519394509084169263cd2b12309260448084019391929182900301818387803b15801561031857600080fd5b505af115801561032c573d6000803e3d6000fd5b50506001546040805163d38ab51960e01b81526001600160a01b038981166004830152602482018990528781166044830152915191909216935063d38ab5199250606480830192600092919082900301818387803b15801561038d57600080fd5b505af11580156103a1573d6000803e3d6000fd5b50506000805460408051630cd2b12360e41b81526001600160a01b039283166004820152602481018490529051918616945063cd2b12309350604480820193929182900301818387803b1580156103f757600080fd5b505af115801561040b573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031681565b6001546040805163d3bab1d160e01b81526001600160a01b03858116600483015260248201859052915160009384938493849384938493169163d3bab1d191604480830192610120929190829003018186803b15801561048357600080fd5b505afa158015610497573d6000803e3d6000fd5b505050506040513d6101208110156104ae57600080fd5b508051602082015160408301516060840151608085015160a090950151939a50919850965094509092509050806104ea57505050505050610712565b6000821161053d576040805162461bcd60e51b815260206004820152601b60248201527a13dc99195c915e1958dd5d1bdc8e881b1bdb99c819195c1bdcda5d602a1b604482015290519081900360640190fd5b6000805460408051634a3f088d60e01b81526001600160a01b038c81166004830152888116602483015287811660448301528515156064830152915191909216929182918491634a3f088d91608480830192610100929190829003018186803b1580156105a957600080fd5b505afa1580156105bd573d6000803e3d6000fd5b505050506040513d6101008110156105d457600080fd5b5080516020909101519092509050816105f557505050505050505050610712565b60006106018387610716565b90506000846001600160a01b0316630a48d5a98c8c6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561065a57600080fd5b505afa15801561066e573d6000803e3d6000fd5b505050506040513d602081101561068457600080fd5b5051905060006106948483610716565b905060006106ae856106a888612710610777565b906107d0565b905060006106c2836106a887612774610777565b9050818110156107035760405162461bcd60e51b81526004018080602001828103825260258152602001806108ce6025913960400191505060405180910390fd5b50505050505050505050505050505b5050565b60008282018381101561076e576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b90505b92915050565b60008261078657506000610771565b8282028284828161079357fe5b041461076e5760405162461bcd60e51b81526004018080602001828103825260218152602001806108ad6021913960400191505060405180910390fd5b600061076e83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250600081836108965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561085b578181015183820152602001610843565b50505050905090810190601f1680156108885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816108a257fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f726465724578656375746f723a206c6f6e67206c65766572616765206465637265617365a264697066735822122032f9a9de42c3a0013553cecef669b2ce528b5abe65b747f9ab92d811655ff12f64736f6c634300060c003300000000000000000000000024afb3b27156e71e68e292e4ad71db827f83f05c000000000000000000000000ab770aa6ce1fd9305c25e0c3ab03fd8c53e4c880
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000024afb3b27156e71e68e292e4ad71db827f83f05c000000000000000000000000ab770aa6ce1fd9305c25e0c3ab03fd8c53e4c880
-----Decoded View---------------
Arg [0] : _vault (address): 0x24afb3b27156e71e68e292e4ad71db827f83f05c
Arg [1] : _orderBook (address): 0xab770aa6ce1fd9305c25e0c3ab03fd8c53e4c880
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000024afb3b27156e71e68e292e4ad71db827f83f05c
Arg [1] : 000000000000000000000000ab770aa6ce1fd9305c25e0c3ab03fd8c53e4c880
Deployed ByteCode Sourcemap
15938:2889:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16353:198;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16353:198:0;;;;;;;;;;;;;;;;;:::i;:::-;;17007:206;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17007:206:0;;;;;;;;;;;;;;;;;:::i;16003:52::-;;;:::i;:::-;;;;;;;;;;;;;;;;16089:24;;;:::i;:::-;;;;-1:-1:-1;;;;;16089:24:0;;;;;;;;;;;;;;16559:440;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16559:440:0;;;;;;;;;;;;;;;;;:::i;16062:20::-;;;:::i;16353:198::-;16479:9;;16468:75;;;-1:-1:-1;;;16468:75:0;;-1:-1:-1;;;;;16468:75:0;;;;;;;;;;;;;;;;;;;;;;16479:9;;;;;16468:38;;:75;;;;;16479:9;;16468:75;;;;;;;16479:9;;16468:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16353:198;;;:::o;17007:206::-;17137:9;;17126:79;;;-1:-1:-1;;;17126:79:0;;-1:-1:-1;;;;;17126:79:0;;;;;;;;;;;;;;;;;;;;;;17137:9;;;;;17126:42;;:79;;;;;17137:9;;17126:79;;;;;;;17137:9;;17126:79;;;;;;;;;;16003:52;16050:5;16003:52;:::o;16089:24::-;;;-1:-1:-1;;;;;16089:24:0;;:::o;16559:440::-;16678:45;16701:8;16711:11;16678:22;:45::i;:::-;16734:16;16760:5;;;;;;;;;-1:-1:-1;;;;;16760:5:0;-1:-1:-1;;;;;16753:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16753:19:0;16824:5;;;16783:53;;;-1:-1:-1;;;16783:53:0;;-1:-1:-1;;;;;16824:5:0;;;16783:53;;;;16824:5;16783:53;;;;;;16753:19;;-1:-1:-1;16783:40:0;;;;;;:53;;;;;16824:5;;16783:53;;;;;;16824:5;16783:40;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16858:9:0;;16847:79;;;-1:-1:-1;;;16847:79:0;;-1:-1:-1;;;;;16847:79:0;;;;;;;;;;;;;;;;;;;;;;16858:9;;;;;-1:-1:-1;16847:42:0;;-1:-1:-1;16847:79:0;;;;;16858:9;;16847:79;;;;;;;16858:9;;16847:79;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16978:5:0;;;16937:54;;;-1:-1:-1;;;16937:54:0;;-1:-1:-1;;;;;16978:5:0;;;16937:54;;;;;;;;;;;;:40;;;;-1:-1:-1;16937:40:0;;-1:-1:-1;16937:54:0;;;;;16978:5;16937:54;;;;;;16978:5;16937:40;:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16559:440;;;;:::o;16062:20::-;;;-1:-1:-1;;;;;16062:20:0;;:::o;17221:1603::-;17656:9;;17645:61;;;-1:-1:-1;;;17645:61:0;;-1:-1:-1;;;;;17645:61:0;;;;;;;;;;;;;;;17332:22;;;;;;;;;;;;17656:9;;17645:38;;:61;;;;;;;;;;;;;;17656:9;17645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17645:61:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17645:61:0;;-1:-1:-1;17645:61:0;-1:-1:-1;17645:61:0;-1:-1:-1;17645:61:0;;-1:-1:-1;17645:61:0;-1:-1:-1;17645:61:0;17747:25;;17763:7;;;;;;;;17747:25;17886:1;17873:10;:14;17865:54;;;;;-1:-1:-1;;;17865:54:0;;;;;;;;;;;;-1:-1:-1;;;17865:54:0;;;;;;;;;;;;;;;17932:13;17955:5;;18021:68;;;-1:-1:-1;;;18021:68:0;;-1:-1:-1;;;;;18021:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17955:5;;;;;17932:13;;;17955:5;;18021:18;;:68;;;;;17955:5;;18021:68;;;;;;;17955:5;18021:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18021:68:0;;;;;;;;;-1:-1:-1;18021:68:0;-1:-1:-1;18172:9:0;18168:26;;18185:7;;;;;;;;;;;18168:26;18206:16;18225:20;:4;18234:10;18225:8;:20::i;:::-;18206:39;;18256:23;18282:6;-1:-1:-1;;;;;18282:20:0;;18303:14;18319:20;18282:58;;;;;;;;;;;;;-1:-1:-1;;;;;18282:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18282:58:0;;-1:-1:-1;18351:22:0;18376:31;:10;18282:58;18376:14;:31::i;:::-;18351:56;-1:-1:-1;18420:20:0;18443:46;18478:10;18443:30;:4;16050:5;18443:8;:30::i;:::-;:34;;:46::i;:::-;18420:69;-1:-1:-1;18622:30:0;18655:60;18700:14;18655:40;:8;18668:26;18655:12;:40::i;:60::-;18622:93;;18762:12;18736:22;:38;;18728:88;;;;-1:-1:-1;;;18728:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17221:1603;;;;;;;;;;;;;;;;;:::o;4326:181::-;4384:7;4416:5;;;4440:6;;;;4432:46;;;;;-1:-1:-1;;;4432:46:0;;;;;;;;;;;;-1:-1:-1;;;4432:46:0;;;;;;;;;;;;;;;4498:1;-1:-1:-1;4326:181:0;;;;;:::o;5680:471::-;5738:7;5983:6;5979:47;;-1:-1:-1;6013:1:0;6006:8;;5979:47;6050:5;;;6054:1;6050;:5;:1;6074:5;;;;;:10;6066:56;;;;-1:-1:-1;;;6066:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6627:132;6685:7;6712:39;6716:1;6719;6712:39;;;;;;;;;;;;;-1:-1:-1;;;6712:39:0;;;7341:7;7376:12;7369:5;7361:28;;;;-1:-1:-1;;;7361:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7400:9;7416:1;7412;:5;;;;;;;7255:278;-1:-1:-1;;;;;7255:278:0:o
Swarm Source
ipfs://32f9a9de42c3a0013553cecef669b2ce528b5abe65b747f9ab92d811655ff12f
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.