Contract 0xbe5fa9883a75f887c49f6d7cf32f8db0b6fe7b1c 1
Contract Overview
Balance:
0 ETH
ETH Value:
$0.00
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xD4147DfC2B2623062f28f931B39ECfA680DB5333 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Symbol
Compiler Version
v0.8.10+commit.fc410830
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; import './ISymbol.sol'; import './SymbolStorage.sol'; contract Symbol is SymbolStorage { constructor (string memory symbol_) { symbol = symbol_; } function setImplementation(address newImplementation) external _onlyAdmin_ { address oldImplementation = implementation; if (oldImplementation != address(0)) { require( ISymbol(oldImplementation).manager() == ISymbol(newImplementation).manager(), 'Symbol.setImplementation: wrong manager' ); require( ISymbol(oldImplementation).symbolId() == ISymbol(newImplementation).symbolId(), 'Symbol.setImplementation: wrong symbolId' ); } implementation = newImplementation; emit NewImplementation(newImplementation); } fallback() external { address imp = implementation; assembly { calldatacopy(0, 0, calldatasize()) let result := delegatecall(gas(), imp, 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; interface ISymbol { struct SettlementOnAddLiquidity { bool settled; int256 funding; int256 deltaTradersPnl; int256 deltaInitialMarginRequired; } struct SettlementOnRemoveLiquidity { bool settled; int256 funding; int256 deltaTradersPnl; int256 deltaInitialMarginRequired; int256 removeLiquidityPenalty; } struct SettlementOnTraderWithPosition { int256 funding; int256 deltaTradersPnl; int256 deltaInitialMarginRequired; int256 traderFunding; int256 traderPnl; int256 traderInitialMarginRequired; } struct SettlementOnTrade { int256 funding; int256 deltaTradersPnl; int256 deltaInitialMarginRequired; int256 indexPrice; int256 traderFunding; int256 traderPnl; int256 traderInitialMarginRequired; int256 tradeCost; int256 tradeFee; int256 tradeRealizedCost; int256 positionChangeStatus; // 1: new open (enter), -1: total close (exit), 0: others (not change) } struct SettlementOnLiquidate { int256 funding; int256 deltaTradersPnl; int256 deltaInitialMarginRequired; int256 indexPrice; int256 traderFunding; int256 traderPnl; int256 traderMaintenanceMarginRequired; int256 tradeVolume; int256 tradeCost; int256 tradeRealizedCost; } struct Position { int256 volume; int256 cost; int256 cumulativeFundingPerVolume; } function implementation() external view returns (address); function symbol() external view returns (string memory); function netVolume() external view returns (int256); function netCost() external view returns (int256); function indexPrice() external view returns (int256); function fundingTimestamp() external view returns (uint256); function cumulativeFundingPerVolume() external view returns (int256); function tradersPnl() external view returns (int256); function initialMarginRequired() external view returns (int256); function nPositionHolders() external view returns (uint256); function positions(uint256 pTokenId) external view returns (Position memory); function setImplementation(address newImplementation) external; function manager() external view returns (address); function oracleManager() external view returns (address); function symbolId() external view returns (bytes32); function feeRatio() external view returns (int256); // futures only function alpha() external view returns (int256); function fundingPeriod() external view returns (int256); function minTradeVolume() external view returns (int256); function initialMarginRatio() external view returns (int256); function maintenanceMarginRatio() external view returns (int256); function pricePercentThreshold() external view returns (int256); function timeThreshold() external view returns (uint256); function isCloseOnly() external view returns (bool); function priceId() external view returns (bytes32); // option only function volatilityId() external view returns (bytes32); // option only function feeRatioITM() external view returns (int256); // option only function feeRatioOTM() external view returns (int256); // option only function strikePrice() external view returns (int256); // option only function minInitialMarginRatio() external view returns (int256); // option only function isCall() external view returns (bool); // option only function hasPosition(uint256 pTokenId) external view returns (bool); function settleOnAddLiquidity(int256 liquidity) external returns (ISymbol.SettlementOnAddLiquidity memory s); function settleOnRemoveLiquidity(int256 liquidity, int256 removedLiquidity) external returns (ISymbol.SettlementOnRemoveLiquidity memory s); function settleOnTraderWithPosition(uint256 pTokenId, int256 liquidity) external returns (ISymbol.SettlementOnTraderWithPosition memory s); function settleOnTrade(uint256 pTokenId, int256 tradeVolume, int256 liquidity, int256 priceLimit) external returns (ISymbol.SettlementOnTrade memory s); function settleOnLiquidate(uint256 pTokenId, int256 liquidity) external returns (ISymbol.SettlementOnLiquidate memory s); }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; import '../utils/Admin.sol'; abstract contract SymbolStorage is Admin { // admin will be truned in to Timelock after deployment event NewImplementation(address newImplementation); address public implementation; string public symbol; int256 public netVolume; int256 public netCost; int256 public indexPrice; uint256 public fundingTimestamp; int256 public cumulativeFundingPerVolume; int256 public tradersPnl; int256 public initialMarginRequired; uint256 public nPositionHolders; struct Position { int256 volume; int256 cost; int256 cumulativeFundingPerVolume; } // pTokenId => Position mapping (uint256 => Position) public positions; // The recorded net volume at the beginning of current block // which only update once in one block and cannot be manipulated in one block int256 public lastNetVolume; // The block number in which lastNetVolume updated uint256 public lastNetVolumeBlock; }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; import './IAdmin.sol'; abstract contract Admin is IAdmin { address public admin; modifier _onlyAdmin_() { require(msg.sender == admin, 'Admin: only admin'); _; } constructor () { admin = msg.sender; emit NewAdmin(admin); } function setAdmin(address newAdmin) external _onlyAdmin_ { admin = newAdmin; emit NewAdmin(newAdmin); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; interface IAdmin { event NewAdmin(address indexed newAdmin); function admin() external view returns (address); function setAdmin(address newAdmin) external; }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
[{"inputs":[{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cumulativeFundingPerVolume","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundingTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"indexPrice","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialMarginRequired","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastNetVolume","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastNetVolumeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nPositionHolders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"netCost","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"netVolume","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"positions","outputs":[{"internalType":"int256","name":"volume","type":"int256"},{"internalType":"int256","name":"cost","type":"int256"},{"internalType":"int256","name":"cumulativeFundingPerVolume","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradersPnl","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063a073c48e11610097578063d7dee5f111610066578063d7dee5f114610234578063f5a05ca71461023d578063f851a44014610246578063f90900831461025957610100565b8063a073c48e14610206578063a456a8061461020f578063aa4089d114610218578063d784d4261461022157610100565b8063899d0340116100d3578063899d03401461019557806395d89b411461019e57806399fbab88146101b35780639c5006a9146101fd57610100565b806310bace8c1461013057806319a5b4b31461014c5780635c60da1b14610155578063704b6c0214610180575b6001546001600160a01b03163660008037600080366000845af43d6000803e80801561012b573d6000f35b3d6000fd5b61013960055481565b6040519081526020015b60405180910390f35b61013960085481565b600154610168906001600160a01b031681565b6040516001600160a01b039091168152602001610143565b61019361018e3660046106ad565b610262565b005b61013960095481565b6101a66102fd565b60405161014391906106d1565b6101e26101c1366004610726565b600b6020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610143565b610139600d5481565b61013960035481565b610139600c5481565b61013960045481565b61019361022f3660046106ad565b61038b565b61013960065481565b61013960075481565b600054610168906001600160a01b031681565b610139600a5481565b6000546001600160a01b031633146102b55760405162461bcd60e51b815260206004820152601160248201527020b236b4b71d1037b7363c9030b236b4b760791b60448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b038316908117825560405190917f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c91a250565b6002805461030a9061073f565b80601f01602080910402602001604051908101604052809291908181526020018280546103369061073f565b80156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b505050505081565b6000546001600160a01b031633146103d95760405162461bcd60e51b815260206004820152601160248201527020b236b4b71d1037b7363c9030b236b4b760791b60448201526064016102ac565b6001546001600160a01b0316801561064057816001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610429573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044d919061077a565b6001600160a01b0316816001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b8919061077a565b6001600160a01b03161461051e5760405162461bcd60e51b815260206004820152602760248201527f53796d626f6c2e736574496d706c656d656e746174696f6e3a2077726f6e672060448201526636b0b730b3b2b960c91b60648201526084016102ac565b816001600160a01b03166316b806546040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105809190610797565b816001600160a01b03166316b806546040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190610797565b146106405760405162461bcd60e51b815260206004820152602860248201527f53796d626f6c2e736574496d706c656d656e746174696f6e3a2077726f6e67206044820152671cde5b589bdb125960c21b60648201526084016102ac565b600180546001600160a01b0319166001600160a01b0384169081179091556040519081527f6b70829fcbe4891157f7a7496f9870927de3c8237adbe9cd39bae09b7382c4099060200160405180910390a15050565b6001600160a01b03811681146106aa57600080fd5b50565b6000602082840312156106bf57600080fd5b81356106ca81610695565b9392505050565b600060208083528351808285015260005b818110156106fe578581018301518582016040015282016106e2565b81811115610710576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561073857600080fd5b5035919050565b600181811c9082168061075357607f821691505b6020821081141561077457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561078c57600080fd5b81516106ca81610695565b6000602082840312156107a957600080fd5b505191905056fea26469706673582212201ab941684b2de4ae77f227a75872f99b74c1b62fc41bf8c0375c1d7e4eeefcfd64736f6c634300080a0033
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.