My Name Tag:
Not Available
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0x7773493da2e295c1e12f8a37e33026c9aebf865561f7c39324c36d02134b0710 | 0x60806040 | 10950304 | 698 days 13 hrs ago | 0xde485812e28824e542b9c2270b6b8ed9232b7d0b | IN | Create: SsovV3Viewer | 0 ETH | 0.011025477179 ETH |
[ Download CSV Export ]
Latest 9 internal transactions
[ Download CSV Export ]
Contract Name:
SsovV3Viewer
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol) pragma solidity ^0.8.0; import "../IERC721.sol"; /** * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface IERC721Enumerable is IERC721 { /** * @dev Returns the total amount of tokens stored by the contract. */ function totalSupply() external view returns (uint256); /** * @dev Returns a token ID owned by `owner` at a given `index` of its token list. * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256); /** * @dev Returns a token ID at a given `index` of all the tokens stored by the contract. * Use along with {totalSupply} to enumerate all tokens. */ function tokenByIndex(uint256 index) external view returns (uint256); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
//SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; import {IERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol"; import {IERC20} from "../external/interfaces/IERC20.sol"; /// @title SSOV V3 interface interface ISsovV3 is IERC721Enumerable { struct Addresses { address feeStrategy; address stakingStrategy; address optionPricing; address priceOracle; address volatilityOracle; address feeDistributor; address optionsTokenImplementation; } struct VaultCheckpoint { uint256 premiumCollectedCumulative; uint256 activeCollateral; uint256 totalCollateral; uint256 activeCollateralRatio; uint256 premiumDistributionRatio; uint256[] rewardDistributionRatios; } struct EpochData { uint256 startTime; uint256 expiry; uint256 settlementPrice; uint256 totalCollateralBalance; uint256 collateralExchangeRate; uint256[] totalRewardsCollected; uint256[] rewardDistributionRatios; address[] rewardTokensToDistribute; uint256[] strikes; bool expired; } struct EpochStrikeData { address strikeToken; VaultCheckpoint lastVaultCheckpoint; uint256[] rewardsStoredForPremiums; uint256[] rewardsDistributionRatiosForPremiums; } function currentEpoch() external returns (uint256); function addresses() external returns (Addresses memory); function collateralToken() external returns (IERC20); function deposit( uint256 strikeIndex, uint256 amount, address user ) external returns (uint256 tokenId); function purchase( uint256 strikeIndex, uint256 amount, address user ) external returns (uint256 premium, uint256 totalFee); function settle( uint256 strikeIndex, uint256 amount, uint256 epoch ) external returns (uint256 pnl); function withdraw(uint256 tokenId, address to) external returns ( uint256 collateralTokenWithdrawAmount, uint256[] memory rewardTokenWithdrawAmounts ); function getUnderlyingPrice() external view returns (uint256); function getCollateralPrice() external view returns (uint256); function getVolatility(uint256 _strike) external view returns (uint256); function calculatePremium( uint256 _strike, uint256 _amount, uint256 _expiry ) external view returns (uint256 premium); function calculatePnl( uint256 price, uint256 strike, uint256 amount ) external view returns (uint256); function calculatePurchaseFees(uint256 strike, uint256 amount) external view returns (uint256); function calculateSettlementFees(uint256 pnl) external view returns (uint256); function getEpochTimes(uint256 epoch) external view returns (uint256 start, uint256 end); function getEpochStrikes(uint256 epoch) external view returns (uint256[] memory); function writePosition(uint256 tokenId) external view returns ( uint256 epoch, uint256 strike, uint256 collateralAmount, VaultCheckpoint memory vaultCheckpoint ); function getEpochData(uint256 epoch) external view returns (EpochData memory); function getEpochStrikeData(uint256 epoch, uint256 strike) external view returns (EpochStrikeData memory); }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. * NOTE: Modified to include symbols and decimals. */ interface IERC20 { function totalSupply() external view returns (uint256); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; import {ISsovV3} from "../core/ISsovV3.sol"; import {IERC20} from "../external/interfaces/IERC20.sol"; contract SsovV3Viewer { /// @notice Returns the strike token addresses for an epoch /// @param epoch target epoch /// @param ssov target ssov function getEpochStrikeTokens(uint256 epoch, ISsovV3 ssov) public view returns (address[] memory strikeTokens) { uint256[] memory strikes = ssov.getEpochStrikes(epoch); strikeTokens = new address[](strikes.length); for (uint256 i = 0; i < strikes.length; i++) { ISsovV3.EpochStrikeData memory _temp = ssov.getEpochStrikeData( epoch, strikes[i] ); strikeTokens[i] = _temp.strikeToken; } } /// @notice Returns total epoch strike deposits array for an epoch /// @param epoch target epoch /// @param ssov target ssov function getTotalEpochStrikeDeposits(uint256 epoch, ISsovV3 ssov) external view returns (uint256[] memory totalEpochStrikeDeposits) { uint256[] memory strikes = ssov.getEpochStrikes(epoch); totalEpochStrikeDeposits = new uint256[](strikes.length); for (uint256 i = 0; i < strikes.length; i++) { uint256 strike = strikes[i]; totalEpochStrikeDeposits[i] = ssov .getEpochStrikeData(epoch, strike) .lastVaultCheckpoint .totalCollateral; } } /// @notice Returns total epoch options purchased array for an epoch /// @param epoch target epoch /// @param ssov target ssov function getTotalEpochOptionsPurchased(uint256 epoch, ISsovV3 ssov) external view returns (uint256[] memory _totalEpochOptionsPurchased) { address[] memory strikeTokens = getEpochStrikeTokens(epoch, ssov); _totalEpochOptionsPurchased = new uint256[](strikeTokens.length); for (uint256 i = 0; i < strikeTokens.length; i++) { _totalEpochOptionsPurchased[i] = IERC20(strikeTokens[i]) .totalSupply(); } } /// @notice Returns the total epoch premium for each strike for an epoch /// @param epoch target epoch /// @param ssov target ssov function getTotalEpochPremium(uint256 epoch, ISsovV3 ssov) external view returns (uint256[] memory _totalEpochPremium) { uint256[] memory strikes = ssov.getEpochStrikes(epoch); _totalEpochPremium = new uint256[](strikes.length); uint256 strike; for (uint256 i = 0; i < strikes.length; i++) { strike = strikes[i]; ISsovV3.EpochStrikeData memory _temp = ssov.getEpochStrikeData( epoch, strike ); _totalEpochPremium[i] = _temp .lastVaultCheckpoint .premiumCollectedCumulative; } } /// @notice Returns the premium & rewards collected for a write position /// @param tokenId token id of the write position /// @param ssov target ssov function getWritePositionValue(uint256 tokenId, ISsovV3 ssov) external view returns ( uint256 collateralTokenWithdrawAmount, uint256[] memory rewardTokenWithdrawAmounts ) { ( uint256 epoch, uint256 strike, uint256 collateralAmount, ISsovV3.VaultCheckpoint memory vaultCheckpoint ) = ssov.writePosition(tokenId); ISsovV3.EpochStrikeData memory epochStrikeData = ssov .getEpochStrikeData(epoch, strike); ISsovV3.EpochData memory epochData = ssov.getEpochData(epoch); uint256 premiumCollected = ((collateralAmount * (epochStrikeData.lastVaultCheckpoint.premiumDistributionRatio - vaultCheckpoint.premiumDistributionRatio)) / 1e18); collateralTokenWithdrawAmount = collateralAmount + premiumCollected; rewardTokenWithdrawAmounts = new uint256[]( epochData.rewardTokensToDistribute.length ); for (uint256 i = 0; i < rewardTokenWithdrawAmounts.length; i++) { rewardTokenWithdrawAmounts[i] += ((epochData.rewardDistributionRatios[i] - vaultCheckpoint.rewardDistributionRatios[i]) * collateralAmount) / 1e18; if ( epochStrikeData.lastVaultCheckpoint.premiumCollectedCumulative > 0 ) rewardTokenWithdrawAmounts[i] += (premiumCollected * epochStrikeData.rewardsStoredForPremiums[i]) / epochStrikeData .lastVaultCheckpoint .premiumCollectedCumulative; } } /// @notice Returns the tokenIds owned by a wallet of a particular ssov /// @param owner wallet owner /// @param ssov target ssov function walletOfOwner(address owner, ISsovV3 ssov) public view returns (uint256[] memory tokenIds) { uint256 ownerTokenCount = ssov.balanceOf(owner); tokenIds = new uint256[](ownerTokenCount); for (uint256 i; i < ownerTokenCount; i++) { tokenIds[i] = ssov.tokenOfOwnerByIndex(owner, i); } } }
{ "evmVersion": "london", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
[{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"contract ISsovV3","name":"ssov","type":"address"}],"name":"getEpochStrikeTokens","outputs":[{"internalType":"address[]","name":"strikeTokens","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"contract ISsovV3","name":"ssov","type":"address"}],"name":"getTotalEpochOptionsPurchased","outputs":[{"internalType":"uint256[]","name":"_totalEpochOptionsPurchased","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"contract ISsovV3","name":"ssov","type":"address"}],"name":"getTotalEpochPremium","outputs":[{"internalType":"uint256[]","name":"_totalEpochPremium","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"contract ISsovV3","name":"ssov","type":"address"}],"name":"getTotalEpochStrikeDeposits","outputs":[{"internalType":"uint256[]","name":"totalEpochStrikeDeposits","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"contract ISsovV3","name":"ssov","type":"address"}],"name":"getWritePositionValue","outputs":[{"internalType":"uint256","name":"collateralTokenWithdrawAmount","type":"uint256"},{"internalType":"uint256[]","name":"rewardTokenWithdrawAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"contract ISsovV3","name":"ssov","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061131e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630334266d146100675780632da1b36714610091578063770b478a146100b15780637d5468bd146100d1578063b081efec146100e4578063bd763a17146100f7575b600080fd5b61007a610075366004610c52565b61010a565b604051610088929190610cbd565b60405180910390f35b6100a461009f366004610c52565b610461565b6040516100889190610cde565b6100c46100bf366004610d2b565b610628565b6040516100889190610d59565b6100c46100df366004610c52565b6107a7565b6100c46100f2366004610c52565b61095d565b6100c4610105366004610c52565b610a77565b60006060600080600080866001600160a01b031663a624ec63896040518263ffffffff1660e01b815260040161014291815260200190565b60006040518083038186803b15801561015a57600080fd5b505afa15801561016e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101969190810190610f28565b604051630d3c76e960e31b81526004810185905260248101849052939750919550935091506000906001600160a01b038916906369e3b7489060440160006040518083038186803b1580156101ea57600080fd5b505afa1580156101fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102269190810190610f81565b6040516342cf3e9960e11b8152600481018790529091506000906001600160a01b038a169063859e7d329060240160006040518083038186803b15801561026c57600080fd5b505afa158015610280573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102a891908101906110c1565b90506000670de0b6b3a764000084608001518460200151608001516102cd91906111fa565b6102d79087611211565b6102e19190611230565b90506102ed8186611252565b98508160e00151516001600160401b0381111561030c5761030c610d73565b604051908082528060200260200182016040528015610335578160200160208202803683370190505b50975060005b885181101561045257670de0b6b3a7640000868660a0015183815181106103645761036461126a565b60200260200101518560c0015184815181106103825761038261126a565b602002602001015161039491906111fa565b61039e9190611211565b6103a89190611230565b8982815181106103ba576103ba61126a565b602002602001018181516103ce9190611252565b905250602084015151156104405760208401515160408501518051839081106103f9576103f961126a565b60200260200101518361040c9190611211565b6104169190611230565b8982815181106104285761042861126a565b6020026020010181815161043c9190611252565b9052505b8061044a81611280565b91505061033b565b50505050505050509250929050565b6040516315943b9960e01b8152600481018390526060906000906001600160a01b038416906315943b999060240160006040518083038186803b1580156104a757600080fd5b505afa1580156104bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104e3919081019061129b565b905080516001600160401b038111156104fe576104fe610d73565b604051908082528060200260200182016040528015610527578160200160208202803683370190505b50915060005b8151811015610620576000846001600160a01b03166369e3b7488785858151811061055a5761055a61126a565b60200260200101516040518363ffffffff1660e01b8152600401610588929190918252602082015260400190565b60006040518083038186803b1580156105a057600080fd5b505afa1580156105b4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105dc9190810190610f81565b905080600001518483815181106105f5576105f561126a565b6001600160a01b0390921660209283029190910190910152508061061881611280565b91505061052d565b505092915050565b6040516370a0823160e01b81526001600160a01b0383811660048301526060916000918416906370a082319060240160206040518083038186803b15801561066f57600080fd5b505afa158015610683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a791906112cf565b9050806001600160401b038111156106c1576106c1610d73565b6040519080825280602002602001820160405280156106ea578160200160208202803683370190505b50915060005b8181101561062057604051632f745c5960e01b81526001600160a01b03868116600483015260248201839052851690632f745c599060440160206040518083038186803b15801561074057600080fd5b505afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077891906112cf565b83828151811061078a5761078a61126a565b60209081029190910101528061079f81611280565b9150506106f0565b6040516315943b9960e01b8152600481018390526060906000906001600160a01b038416906315943b999060240160006040518083038186803b1580156107ed57600080fd5b505afa158015610801573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610829919081019061129b565b905080516001600160401b0381111561084457610844610d73565b60405190808252806020026020018201604052801561086d578160200160208202803683370190505b50915060005b81518110156106205760008282815181106108905761089061126a565b60200260200101519050846001600160a01b03166369e3b74887836040518363ffffffff1660e01b81526004016108d1929190918252602082015260400190565b60006040518083038186803b1580156108e957600080fd5b505afa1580156108fd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109259190810190610f81565b602001516040015184838151811061093f5761093f61126a565b6020908102919091010152508061095581611280565b915050610873565b6060600061096b8484610461565b905080516001600160401b0381111561098657610986610d73565b6040519080825280602002602001820160405280156109af578160200160208202803683370190505b50915060005b8151811015610620578181815181106109d0576109d061126a565b60200260200101516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1057600080fd5b505afa158015610a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4891906112cf565b838281518110610a5a57610a5a61126a565b602090810291909101015280610a6f81611280565b9150506109b5565b6040516315943b9960e01b8152600481018390526060906000906001600160a01b038416906315943b999060240160006040518083038186803b158015610abd57600080fd5b505afa158015610ad1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610af9919081019061129b565b905080516001600160401b03811115610b1457610b14610d73565b604051908082528060200260200182016040528015610b3d578160200160208202803683370190505b5091506000805b8251811015610c3157828181518110610b5f57610b5f61126a565b602002602001015191506000856001600160a01b03166369e3b74888856040518363ffffffff1660e01b8152600401610ba2929190918252602082015260400190565b60006040518083038186803b158015610bba57600080fd5b505afa158015610bce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bf69190810190610f81565b9050806020015160000151858381518110610c1357610c1361126a565b60209081029190910101525080610c2981611280565b915050610b44565b50505092915050565b6001600160a01b0381168114610c4f57600080fd5b50565b60008060408385031215610c6557600080fd5b823591506020830135610c7781610c3a565b809150509250929050565b600081518084526020808501945080840160005b83811015610cb257815187529582019590820190600101610c96565b509495945050505050565b828152604060208201526000610cd66040830184610c82565b949350505050565b6020808252825182820181905260009190848201906040850190845b81811015610d1f5783516001600160a01b031683529284019291840191600101610cfa565b50909695505050505050565b60008060408385031215610d3e57600080fd5b8235610d4981610c3a565b91506020830135610c7781610c3a565b602081526000610d6c6020830184610c82565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715610dab57610dab610d73565b60405290565b60405161014081016001600160401b0381118282101715610dab57610dab610d73565b604051601f8201601f191681016001600160401b0381118282101715610dfc57610dfc610d73565b604052919050565b60006001600160401b03821115610e1d57610e1d610d73565b5060051b60200190565b600082601f830112610e3857600080fd5b81516020610e4d610e4883610e04565b610dd4565b82815260059290921b84018101918181019086841115610e6c57600080fd5b8286015b84811015610e875780518352918301918301610e70565b509695505050505050565b600060c08284031215610ea457600080fd5b60405160c081016001600160401b038282108183111715610ec757610ec7610d73565b81604052829350845183526020850151602084015260408501516040840152606085015160608401526080850151608084015260a0850151915080821115610f0e57600080fd5b50610f1b85828601610e27565b60a0830152505092915050565b60008060008060808587031215610f3e57600080fd5b84519350602085015192506040850151915060608501516001600160401b03811115610f6957600080fd5b610f7587828801610e92565b91505092959194509250565b600060208284031215610f9357600080fd5b81516001600160401b0380821115610faa57600080fd5b9083019060808286031215610fbe57600080fd5b610fc6610d89565b8251610fd181610c3a565b8152602083015182811115610fe557600080fd5b610ff187828601610e92565b60208301525060408301518281111561100957600080fd5b61101587828601610e27565b60408301525060608301518281111561102d57600080fd5b61103987828601610e27565b60608301525095945050505050565b600082601f83011261105957600080fd5b81516020611069610e4883610e04565b82815260059290921b8401810191818101908684111561108857600080fd5b8286015b84811015610e8757805161109f81610c3a565b835291830191830161108c565b805180151581146110bc57600080fd5b919050565b6000602082840312156110d357600080fd5b81516001600160401b03808211156110ea57600080fd5b9083019061014082860312156110ff57600080fd5b611107610db1565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a08301518281111561114557600080fd5b61115187828601610e27565b60a08301525060c08301518281111561116957600080fd5b61117587828601610e27565b60c08301525060e08301518281111561118d57600080fd5b61119987828601611048565b60e08301525061010080840151838111156111b357600080fd5b6111bf88828701610e27565b82840152505061012091506111d58284016110ac565b91810191909152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561120c5761120c6111e4565b500390565b600081600019048311821515161561122b5761122b6111e4565b500290565b60008261124d57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611265576112656111e4565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611294576112946111e4565b5060010190565b6000602082840312156112ad57600080fd5b81516001600160401b038111156112c357600080fd5b610cd684828501610e27565b6000602082840312156112e157600080fd5b505191905056fea264697066735822122022eaca56d6d31a4a65a54f9a651be7146f9b56d87c59c146f0766efa736692cb64736f6c63430008090033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100625760003560e01c80630334266d146100675780632da1b36714610091578063770b478a146100b15780637d5468bd146100d1578063b081efec146100e4578063bd763a17146100f7575b600080fd5b61007a610075366004610c52565b61010a565b604051610088929190610cbd565b60405180910390f35b6100a461009f366004610c52565b610461565b6040516100889190610cde565b6100c46100bf366004610d2b565b610628565b6040516100889190610d59565b6100c46100df366004610c52565b6107a7565b6100c46100f2366004610c52565b61095d565b6100c4610105366004610c52565b610a77565b60006060600080600080866001600160a01b031663a624ec63896040518263ffffffff1660e01b815260040161014291815260200190565b60006040518083038186803b15801561015a57600080fd5b505afa15801561016e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101969190810190610f28565b604051630d3c76e960e31b81526004810185905260248101849052939750919550935091506000906001600160a01b038916906369e3b7489060440160006040518083038186803b1580156101ea57600080fd5b505afa1580156101fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102269190810190610f81565b6040516342cf3e9960e11b8152600481018790529091506000906001600160a01b038a169063859e7d329060240160006040518083038186803b15801561026c57600080fd5b505afa158015610280573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102a891908101906110c1565b90506000670de0b6b3a764000084608001518460200151608001516102cd91906111fa565b6102d79087611211565b6102e19190611230565b90506102ed8186611252565b98508160e00151516001600160401b0381111561030c5761030c610d73565b604051908082528060200260200182016040528015610335578160200160208202803683370190505b50975060005b885181101561045257670de0b6b3a7640000868660a0015183815181106103645761036461126a565b60200260200101518560c0015184815181106103825761038261126a565b602002602001015161039491906111fa565b61039e9190611211565b6103a89190611230565b8982815181106103ba576103ba61126a565b602002602001018181516103ce9190611252565b905250602084015151156104405760208401515160408501518051839081106103f9576103f961126a565b60200260200101518361040c9190611211565b6104169190611230565b8982815181106104285761042861126a565b6020026020010181815161043c9190611252565b9052505b8061044a81611280565b91505061033b565b50505050505050509250929050565b6040516315943b9960e01b8152600481018390526060906000906001600160a01b038416906315943b999060240160006040518083038186803b1580156104a757600080fd5b505afa1580156104bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104e3919081019061129b565b905080516001600160401b038111156104fe576104fe610d73565b604051908082528060200260200182016040528015610527578160200160208202803683370190505b50915060005b8151811015610620576000846001600160a01b03166369e3b7488785858151811061055a5761055a61126a565b60200260200101516040518363ffffffff1660e01b8152600401610588929190918252602082015260400190565b60006040518083038186803b1580156105a057600080fd5b505afa1580156105b4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105dc9190810190610f81565b905080600001518483815181106105f5576105f561126a565b6001600160a01b0390921660209283029190910190910152508061061881611280565b91505061052d565b505092915050565b6040516370a0823160e01b81526001600160a01b0383811660048301526060916000918416906370a082319060240160206040518083038186803b15801561066f57600080fd5b505afa158015610683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a791906112cf565b9050806001600160401b038111156106c1576106c1610d73565b6040519080825280602002602001820160405280156106ea578160200160208202803683370190505b50915060005b8181101561062057604051632f745c5960e01b81526001600160a01b03868116600483015260248201839052851690632f745c599060440160206040518083038186803b15801561074057600080fd5b505afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077891906112cf565b83828151811061078a5761078a61126a565b60209081029190910101528061079f81611280565b9150506106f0565b6040516315943b9960e01b8152600481018390526060906000906001600160a01b038416906315943b999060240160006040518083038186803b1580156107ed57600080fd5b505afa158015610801573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610829919081019061129b565b905080516001600160401b0381111561084457610844610d73565b60405190808252806020026020018201604052801561086d578160200160208202803683370190505b50915060005b81518110156106205760008282815181106108905761089061126a565b60200260200101519050846001600160a01b03166369e3b74887836040518363ffffffff1660e01b81526004016108d1929190918252602082015260400190565b60006040518083038186803b1580156108e957600080fd5b505afa1580156108fd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109259190810190610f81565b602001516040015184838151811061093f5761093f61126a565b6020908102919091010152508061095581611280565b915050610873565b6060600061096b8484610461565b905080516001600160401b0381111561098657610986610d73565b6040519080825280602002602001820160405280156109af578160200160208202803683370190505b50915060005b8151811015610620578181815181106109d0576109d061126a565b60200260200101516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1057600080fd5b505afa158015610a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4891906112cf565b838281518110610a5a57610a5a61126a565b602090810291909101015280610a6f81611280565b9150506109b5565b6040516315943b9960e01b8152600481018390526060906000906001600160a01b038416906315943b999060240160006040518083038186803b158015610abd57600080fd5b505afa158015610ad1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610af9919081019061129b565b905080516001600160401b03811115610b1457610b14610d73565b604051908082528060200260200182016040528015610b3d578160200160208202803683370190505b5091506000805b8251811015610c3157828181518110610b5f57610b5f61126a565b602002602001015191506000856001600160a01b03166369e3b74888856040518363ffffffff1660e01b8152600401610ba2929190918252602082015260400190565b60006040518083038186803b158015610bba57600080fd5b505afa158015610bce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bf69190810190610f81565b9050806020015160000151858381518110610c1357610c1361126a565b60209081029190910101525080610c2981611280565b915050610b44565b50505092915050565b6001600160a01b0381168114610c4f57600080fd5b50565b60008060408385031215610c6557600080fd5b823591506020830135610c7781610c3a565b809150509250929050565b600081518084526020808501945080840160005b83811015610cb257815187529582019590820190600101610c96565b509495945050505050565b828152604060208201526000610cd66040830184610c82565b949350505050565b6020808252825182820181905260009190848201906040850190845b81811015610d1f5783516001600160a01b031683529284019291840191600101610cfa565b50909695505050505050565b60008060408385031215610d3e57600080fd5b8235610d4981610c3a565b91506020830135610c7781610c3a565b602081526000610d6c6020830184610c82565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715610dab57610dab610d73565b60405290565b60405161014081016001600160401b0381118282101715610dab57610dab610d73565b604051601f8201601f191681016001600160401b0381118282101715610dfc57610dfc610d73565b604052919050565b60006001600160401b03821115610e1d57610e1d610d73565b5060051b60200190565b600082601f830112610e3857600080fd5b81516020610e4d610e4883610e04565b610dd4565b82815260059290921b84018101918181019086841115610e6c57600080fd5b8286015b84811015610e875780518352918301918301610e70565b509695505050505050565b600060c08284031215610ea457600080fd5b60405160c081016001600160401b038282108183111715610ec757610ec7610d73565b81604052829350845183526020850151602084015260408501516040840152606085015160608401526080850151608084015260a0850151915080821115610f0e57600080fd5b50610f1b85828601610e27565b60a0830152505092915050565b60008060008060808587031215610f3e57600080fd5b84519350602085015192506040850151915060608501516001600160401b03811115610f6957600080fd5b610f7587828801610e92565b91505092959194509250565b600060208284031215610f9357600080fd5b81516001600160401b0380821115610faa57600080fd5b9083019060808286031215610fbe57600080fd5b610fc6610d89565b8251610fd181610c3a565b8152602083015182811115610fe557600080fd5b610ff187828601610e92565b60208301525060408301518281111561100957600080fd5b61101587828601610e27565b60408301525060608301518281111561102d57600080fd5b61103987828601610e27565b60608301525095945050505050565b600082601f83011261105957600080fd5b81516020611069610e4883610e04565b82815260059290921b8401810191818101908684111561108857600080fd5b8286015b84811015610e8757805161109f81610c3a565b835291830191830161108c565b805180151581146110bc57600080fd5b919050565b6000602082840312156110d357600080fd5b81516001600160401b03808211156110ea57600080fd5b9083019061014082860312156110ff57600080fd5b611107610db1565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a08301518281111561114557600080fd5b61115187828601610e27565b60a08301525060c08301518281111561116957600080fd5b61117587828601610e27565b60c08301525060e08301518281111561118d57600080fd5b61119987828601611048565b60e08301525061010080840151838111156111b357600080fd5b6111bf88828701610e27565b82840152505061012091506111d58284016110ac565b91810191909152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561120c5761120c6111e4565b500390565b600081600019048311821515161561122b5761122b6111e4565b500290565b60008261124d57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611265576112656111e4565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611294576112946111e4565b5060010190565b6000602082840312156112ad57600080fd5b81516001600160401b038111156112c357600080fd5b610cd684828501610e27565b6000602082840312156112e157600080fd5b505191905056fea264697066735822122022eaca56d6d31a4a65a54f9a651be7146f9b56d87c59c146f0766efa736692cb64736f6c63430008090033
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.