Overview
S Balance
0 S
S Value
-More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
BeefyPositionMulticall
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.23; interface IStrategy { function lastPositionAdjustment() external view returns (uint256); function currentTick() external view returns (int24); function positionMain() external view returns (int24 lowerTick, int24 upperTick); function pool() external view returns (address); function twap() external view returns (int56); function positionWidth() external view returns (int24); function isCalm() external view returns (bool); function moveTicks() external; function maxTickDeviation() external view returns (int56); } interface IStrategyVelodrome { function currentTick() external view returns (int24); function positionMain() external view returns (int24 baseLower, int24 lowerTick, int24 upperTick); function pool() external view returns (address); function nftManager() external view returns (address); } interface IPool { function tickSpacing() external view returns (int24); function observe(uint32[] calldata secondsAgos) external view returns (int56[] memory tickCumulatives, int160[] memory secondsPerLiquidityCumulativeX128s); } interface IAlgebraPool { function getTimepoints(uint32[] calldata secondsAgos) external view returns ( int56[] memory tickCumulatives, uint160[] memory secondsPerLiquidityCumulatives, uint112[] memory volatilityCumulatives, uint256[] memory volumePerAvgLiquiditys ); } // Beefy Position Mulicall // Contract that returns needed data for our position adjuster contract BeefyPositionMulticall { // Gelato address to that is authorized to move the ticks address public gelato = address(0x035066D430e5ca34e7BdB0756FCe82186CAfe1F0); error NotAuthorized(); /** * @notice Check if the position of the strategy is in range * @param _strategies an array of strategies to check * @return inRange an array of booleans indicating if the position is in tickspacing of range */ function positionNeedsTickAdjustment(address[] memory _strategies) external view returns (bool[] memory inRange) { inRange = new bool[](_strategies.length); for (uint256 i; i < _strategies.length;) { IStrategy _strategy = IStrategy(_strategies[i]); address pool = _strategy.pool(); int56 twapTick = _strategy.twap(); int24 width = _strategy.positionWidth(); int56 deviation = _strategy.maxTickDeviation(); int24 tickSpacing = IPool(pool).tickSpacing(); try IStrategyVelodrome(address(_strategy)).nftManager() returns (address) { IStrategyVelodrome _veloStrategy = IStrategyVelodrome(_strategies[i]); (,int24 lowerTick, int24 upperTick) = _veloStrategy.positionMain(); // Check if the current tick is in range or in need of adjustment inRange[i] = _inRange(int24(twapTick), lowerTick, upperTick, width, tickSpacing, deviation); } catch { (int24 lowerTick, int24 upperTick) = _strategy.positionMain(); // Check if the current tick is in range or in need of adjustment inRange[i] = _inRange(int24(twapTick), lowerTick, upperTick, width, tickSpacing, deviation); } unchecked { ++i; } } return inRange; } /// @notice Check if the current tick is in range or in need of adjustment function _inRange(int24 twapTick, int24 lowerTick, int24 upperTick, int24 width, int24 tickSpacing, int56 deviation) internal pure returns (bool) { int24 bound = (width * tickSpacing) / 2; if (deviation <= 2) { // If we end up +5% out range, do nothing return true. int24 extremeBound = 500; if (twapTick <= (lowerTick - extremeBound) || twapTick >= (upperTick + extremeBound)) return true; return twapTick >= (lowerTick + bound) && twapTick <= (upperTick - bound); } else { return twapTick >= (lowerTick + bound) && twapTick <= (upperTick - bound); } } /** * @notice Check the last time the positions were adjusted * @param _strategies an array of strategies to check * @return lastAdjustments an array of uint256 indicating the last time the position was adjusted */ function lastPositionAdjustments(address[] memory _strategies) external view returns (uint256[] memory) { uint256[] memory lastAdjustments = new uint256[](_strategies.length); for (uint256 i; i < _strategies.length;) { IStrategy _strategy = IStrategy(_strategies[i]); lastAdjustments[i] = _strategy.lastPositionAdjustment(); unchecked { ++i; } } return lastAdjustments; } /// encode some data function encodeData(address one, address two, address three, uint num) external pure returns (bytes memory) { if (num == 1) { return abi.encode(one); } else if (num == 2) { return abi.encode(one, two); } else { return abi.encode(one, two, three); } } /// decode some data function decodeData(bytes memory _data, uint num) internal pure returns (address[] memory) { if (num == 1) { address[] memory strats = new address[](num); address decodedAddress = abi.decode(_data, (address)); strats[0] = decodedAddress; return strats; } else if (num == 2) { address[] memory strats = new address[](num); (address one, address two) = abi.decode(_data, (address, address)); strats[0] = one; strats[1] = two; return strats; } else { (address one, address two, address three) = abi.decode(_data, (address, address, address)); address[] memory strats = new address[](num); strats[0] = one; strats[1] = two; strats[2] = three; return strats; } } /// @notice Move the ticks of the strategies that are calm, called only by gelato function moveTicks(bytes memory _data, uint num) external { if (msg.sender != gelato) { revert NotAuthorized(); } address[] memory strats = decodeData(_data, num); for (uint i; i < strats.length;) { bool calm = IStrategy(strats[i]).isCalm(); if (calm) { try IStrategy(strats[i]).moveTicks() { unchecked { ++i; } } catch { unchecked { ++i; } } } } } /// Check if the strategy is calm function isCalm(address[] memory _strategies) external view returns (bool[] memory) { bool[] memory calm = new bool[](_strategies.length); for (uint256 i; i < _strategies.length;) { calm[i] = IStrategy(_strategies[i]).isCalm(); unchecked { ++i; } } return calm; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"NotAuthorized","type":"error"},{"inputs":[{"internalType":"address","name":"one","type":"address"},{"internalType":"address","name":"two","type":"address"},{"internalType":"address","name":"three","type":"address"},{"internalType":"uint256","name":"num","type":"uint256"}],"name":"encodeData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"gelato","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_strategies","type":"address[]"}],"name":"isCalm","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_strategies","type":"address[]"}],"name":"lastPositionAdjustments","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint256","name":"num","type":"uint256"}],"name":"moveTicks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_strategies","type":"address[]"}],"name":"positionNeedsTickAdjustment","outputs":[{"internalType":"bool[]","name":"inRange","type":"bool[]"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600080546001600160a01b03191673035066d430e5ca34e7bdb0756fce82186cafe1f017905534801561003657600080fd5b50611239806100466000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632396bd03146100675780632a70972214610090578063573ea575146100b057806368d2c7c1146100db5780638aae2cf7146100fb5780638e855f6714610110575b600080fd5b61007a610075366004610d0a565b610123565b6040516100879190610dbc565b60405180910390f35b6100a361009e366004610d0a565b610226565b6040516100879190610e00565b6000546100c3906001600160a01b031681565b6040516001600160a01b039091168152602001610087565b6100ee6100e9366004610e3a565b610321565b6040516100879190610e8b565b61010e610109366004610eda565b6103b9565b005b6100a361011e366004610d0a565b61050a565b60606000825167ffffffffffffffff81111561014157610141610cab565b60405190808252806020026020018201604052801561016a578160200160208202803683370190505b50905060005b835181101561021f57600084828151811061018d5761018d610f74565b60200260200101519050806001600160a01b031663865238d46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f99190610f8a565b83838151811061020b5761020b610f74565b602090810291909101015250600101610170565b5092915050565b60606000825167ffffffffffffffff81111561024457610244610cab565b60405190808252806020026020018201604052801561026d578160200160208202803683370190505b50905060005b835181101561021f5783818151811061028e5761028e610f74565b60200260200101516001600160a01b0316639bdde46b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f79190610fa3565b82828151811061030957610309610f74565b91151560209283029190910190910152600101610273565b60608160010361035657604080516001600160a01b0387166020820152015b60405160208183030381529060405290506103b1565b8160020361038357604080516001600160a01b038088166020830152861691810191909152606001610340565b604080516001600160a01b038088166020830152808716928201929092529084166060820152608001610340565b949350505050565b6000546001600160a01b031633146103e45760405163ea8e4eb560e01b815260040160405180910390fd5b60006103f0838361094d565b905060005b815181101561050457600082828151811061041257610412610f74565b60200260200101516001600160a01b0316639bdde46b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047b9190610fa3565b905080156104fe5782828151811061049557610495610f74565b60200260200101516001600160a01b031663c7d541326040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104d757600080fd5b505af19250505080156104e8575060015b6104f7578160010191506104fe565b8160010191505b506103f5565b50505050565b6060815167ffffffffffffffff81111561052657610526610cab565b60405190808252806020026020018201604052801561054f578160200160208202803683370190505b50905060005b825181101561094757600083828151811061057257610572610f74565b602002602001015190506000816001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190610fcc565b90506000826001600160a01b0316631208aa186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190610fe9565b90506000836001600160a01b0316638097e2496040518163ffffffff1660e01b8152600401602060405180830381865afa158015610688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ac9190611023565b90506000846001600160a01b031663696c58e56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107129190610fe9565b90506000846001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190611023565b9050856001600160a01b031663e88b91ea6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156107d4575060408051601f3d908101601f191682019092526107d191810190610fcc565b60015b61087957600080876001600160a01b031663bc415d8a6040518163ffffffff1660e01b81526004016040805180830381865afa158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c919061103e565b9150915061084e868383888789610bd2565b8a8a8151811061086057610860610f74565b6020026020010190151590811515815250505050610936565b60008a898151811061088d5761088d610f74565b60200260200101519050600080826001600160a01b031663bc415d8a6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156108d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fc9190611071565b925092505061090f8883838a898b610bd2565b8c8c8151811061092157610921610f74565b91151560209283029190910190910152505050505b866001019650505050505050610555565b50919050565b6060816001036109ea5760008267ffffffffffffffff81111561097257610972610cab565b60405190808252806020026020018201604052801561099b578160200160208202803683370190505b5090506000848060200190518101906109b49190610fcc565b905080826000815181106109ca576109ca610f74565b6001600160a01b0390921660209283029190910190910152509050610bcc565b81600203610ac75760008267ffffffffffffffff811115610a0d57610a0d610cab565b604051908082528060200260200182016040528015610a36578160200160208202803683370190505b50905060008085806020019051810190610a5091906110b4565b915091508183600081518110610a6857610a68610f74565b60200260200101906001600160a01b031690816001600160a01b0316815250508083600181518110610a9c57610a9c610f74565b60200260200101906001600160a01b031690816001600160a01b031681525050829350505050610bcc565b600080600085806020019051810190610ae091906110ee565b92509250925060008567ffffffffffffffff811115610b0157610b01610cab565b604051908082528060200260200182016040528015610b2a578160200160208202803683370190505b5090508381600081518110610b4157610b41610f74565b60200260200101906001600160a01b031690816001600160a01b0316815250508281600181518110610b7557610b75610f74565b60200260200101906001600160a01b031690816001600160a01b0316815250508181600281518110610ba957610ba9610f74565b6001600160a01b03909216602092830291909101909101529350610bcc92505050565b92915050565b6000806002610be18587611151565b610beb9190611171565b905060028360060b13610c6f576101f4610c0581896111b9565b60020b8960020b131580610c285750610c1e81886111de565b60020b8960020b12155b15610c3857600192505050610ca1565b610c4282896111de565b60020b8960020b12158015610c665750610c5c82886111b9565b60020b8960020b13155b92505050610ca1565b610c7981886111de565b60020b8860020b12158015610c9d5750610c9381876111b9565b60020b8860020b13155b9150505b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610cea57610cea610cab565b604052919050565b6001600160a01b0381168114610d0757600080fd5b50565b60006020808385031215610d1d57600080fd5b823567ffffffffffffffff80821115610d3557600080fd5b818501915085601f830112610d4957600080fd5b813581811115610d5b57610d5b610cab565b8060051b9150610d6c848301610cc1565b8181529183018401918481019088841115610d8657600080fd5b938501935b83851015610db05784359250610da083610cf2565b8282529385019390850190610d8b565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610df457835183529284019291840191600101610dd8565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610df4578351151583529284019291840191600101610e1c565b60008060008060808587031215610e5057600080fd5b8435610e5b81610cf2565b93506020850135610e6b81610cf2565b92506040850135610e7b81610cf2565b9396929550929360600135925050565b60006020808352835180602085015260005b81811015610eb957858101830151858201604001528201610e9d565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215610eed57600080fd5b823567ffffffffffffffff80821115610f0557600080fd5b818501915085601f830112610f1957600080fd5b8135602082821115610f2d57610f2d610cab565b610f3f601f8301601f19168201610cc1565b92508183528781838601011115610f5557600080fd5b8181850182850137600091830181019190915290969401359450505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610f9c57600080fd5b5051919050565b600060208284031215610fb557600080fd5b81518015158114610fc557600080fd5b9392505050565b600060208284031215610fde57600080fd5b8151610fc581610cf2565b600060208284031215610ffb57600080fd5b81518060060b8114610fc557600080fd5b8051600281900b811461101e57600080fd5b919050565b60006020828403121561103557600080fd5b610fc58261100c565b6000806040838503121561105157600080fd5b61105a8361100c565b91506110686020840161100c565b90509250929050565b60008060006060848603121561108657600080fd5b61108f8461100c565b925061109d6020850161100c565b91506110ab6040850161100c565b90509250925092565b600080604083850312156110c757600080fd5b82516110d281610cf2565b60208401519092506110e381610cf2565b809150509250929050565b60008060006060848603121561110357600080fd5b835161110e81610cf2565b602085015190935061111f81610cf2565b604085015190925061113081610cf2565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b60008260020b8260020b028060020b915080821461021f5761021f61113b565b60008160020b8360020b8061119657634e487b7160e01b600052601260045260246000fd5b627fffff198214600019821416156111b0576111b061113b565b90059392505050565b600282810b9082900b03627fffff198112627fffff82131715610bcc57610bcc61113b565b600281810b9083900b01627fffff8113627fffff1982121715610bcc57610bcc61113b56fea26469706673582212201e4676065f4ac9215aa4ad4fa05b5c2c03bfc59faa7776267dd62ae59106baf464736f6c63430008170033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100625760003560e01c80632396bd03146100675780632a70972214610090578063573ea575146100b057806368d2c7c1146100db5780638aae2cf7146100fb5780638e855f6714610110575b600080fd5b61007a610075366004610d0a565b610123565b6040516100879190610dbc565b60405180910390f35b6100a361009e366004610d0a565b610226565b6040516100879190610e00565b6000546100c3906001600160a01b031681565b6040516001600160a01b039091168152602001610087565b6100ee6100e9366004610e3a565b610321565b6040516100879190610e8b565b61010e610109366004610eda565b6103b9565b005b6100a361011e366004610d0a565b61050a565b60606000825167ffffffffffffffff81111561014157610141610cab565b60405190808252806020026020018201604052801561016a578160200160208202803683370190505b50905060005b835181101561021f57600084828151811061018d5761018d610f74565b60200260200101519050806001600160a01b031663865238d46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f99190610f8a565b83838151811061020b5761020b610f74565b602090810291909101015250600101610170565b5092915050565b60606000825167ffffffffffffffff81111561024457610244610cab565b60405190808252806020026020018201604052801561026d578160200160208202803683370190505b50905060005b835181101561021f5783818151811061028e5761028e610f74565b60200260200101516001600160a01b0316639bdde46b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f79190610fa3565b82828151811061030957610309610f74565b91151560209283029190910190910152600101610273565b60608160010361035657604080516001600160a01b0387166020820152015b60405160208183030381529060405290506103b1565b8160020361038357604080516001600160a01b038088166020830152861691810191909152606001610340565b604080516001600160a01b038088166020830152808716928201929092529084166060820152608001610340565b949350505050565b6000546001600160a01b031633146103e45760405163ea8e4eb560e01b815260040160405180910390fd5b60006103f0838361094d565b905060005b815181101561050457600082828151811061041257610412610f74565b60200260200101516001600160a01b0316639bdde46b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047b9190610fa3565b905080156104fe5782828151811061049557610495610f74565b60200260200101516001600160a01b031663c7d541326040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104d757600080fd5b505af19250505080156104e8575060015b6104f7578160010191506104fe565b8160010191505b506103f5565b50505050565b6060815167ffffffffffffffff81111561052657610526610cab565b60405190808252806020026020018201604052801561054f578160200160208202803683370190505b50905060005b825181101561094757600083828151811061057257610572610f74565b602002602001015190506000816001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190610fcc565b90506000826001600160a01b0316631208aa186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190610fe9565b90506000836001600160a01b0316638097e2496040518163ffffffff1660e01b8152600401602060405180830381865afa158015610688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ac9190611023565b90506000846001600160a01b031663696c58e56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107129190610fe9565b90506000846001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190611023565b9050856001600160a01b031663e88b91ea6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156107d4575060408051601f3d908101601f191682019092526107d191810190610fcc565b60015b61087957600080876001600160a01b031663bc415d8a6040518163ffffffff1660e01b81526004016040805180830381865afa158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c919061103e565b9150915061084e868383888789610bd2565b8a8a8151811061086057610860610f74565b6020026020010190151590811515815250505050610936565b60008a898151811061088d5761088d610f74565b60200260200101519050600080826001600160a01b031663bc415d8a6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156108d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fc9190611071565b925092505061090f8883838a898b610bd2565b8c8c8151811061092157610921610f74565b91151560209283029190910190910152505050505b866001019650505050505050610555565b50919050565b6060816001036109ea5760008267ffffffffffffffff81111561097257610972610cab565b60405190808252806020026020018201604052801561099b578160200160208202803683370190505b5090506000848060200190518101906109b49190610fcc565b905080826000815181106109ca576109ca610f74565b6001600160a01b0390921660209283029190910190910152509050610bcc565b81600203610ac75760008267ffffffffffffffff811115610a0d57610a0d610cab565b604051908082528060200260200182016040528015610a36578160200160208202803683370190505b50905060008085806020019051810190610a5091906110b4565b915091508183600081518110610a6857610a68610f74565b60200260200101906001600160a01b031690816001600160a01b0316815250508083600181518110610a9c57610a9c610f74565b60200260200101906001600160a01b031690816001600160a01b031681525050829350505050610bcc565b600080600085806020019051810190610ae091906110ee565b92509250925060008567ffffffffffffffff811115610b0157610b01610cab565b604051908082528060200260200182016040528015610b2a578160200160208202803683370190505b5090508381600081518110610b4157610b41610f74565b60200260200101906001600160a01b031690816001600160a01b0316815250508281600181518110610b7557610b75610f74565b60200260200101906001600160a01b031690816001600160a01b0316815250508181600281518110610ba957610ba9610f74565b6001600160a01b03909216602092830291909101909101529350610bcc92505050565b92915050565b6000806002610be18587611151565b610beb9190611171565b905060028360060b13610c6f576101f4610c0581896111b9565b60020b8960020b131580610c285750610c1e81886111de565b60020b8960020b12155b15610c3857600192505050610ca1565b610c4282896111de565b60020b8960020b12158015610c665750610c5c82886111b9565b60020b8960020b13155b92505050610ca1565b610c7981886111de565b60020b8860020b12158015610c9d5750610c9381876111b9565b60020b8860020b13155b9150505b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610cea57610cea610cab565b604052919050565b6001600160a01b0381168114610d0757600080fd5b50565b60006020808385031215610d1d57600080fd5b823567ffffffffffffffff80821115610d3557600080fd5b818501915085601f830112610d4957600080fd5b813581811115610d5b57610d5b610cab565b8060051b9150610d6c848301610cc1565b8181529183018401918481019088841115610d8657600080fd5b938501935b83851015610db05784359250610da083610cf2565b8282529385019390850190610d8b565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610df457835183529284019291840191600101610dd8565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610df4578351151583529284019291840191600101610e1c565b60008060008060808587031215610e5057600080fd5b8435610e5b81610cf2565b93506020850135610e6b81610cf2565b92506040850135610e7b81610cf2565b9396929550929360600135925050565b60006020808352835180602085015260005b81811015610eb957858101830151858201604001528201610e9d565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215610eed57600080fd5b823567ffffffffffffffff80821115610f0557600080fd5b818501915085601f830112610f1957600080fd5b8135602082821115610f2d57610f2d610cab565b610f3f601f8301601f19168201610cc1565b92508183528781838601011115610f5557600080fd5b8181850182850137600091830181019190915290969401359450505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610f9c57600080fd5b5051919050565b600060208284031215610fb557600080fd5b81518015158114610fc557600080fd5b9392505050565b600060208284031215610fde57600080fd5b8151610fc581610cf2565b600060208284031215610ffb57600080fd5b81518060060b8114610fc557600080fd5b8051600281900b811461101e57600080fd5b919050565b60006020828403121561103557600080fd5b610fc58261100c565b6000806040838503121561105157600080fd5b61105a8361100c565b91506110686020840161100c565b90509250929050565b60008060006060848603121561108657600080fd5b61108f8461100c565b925061109d6020850161100c565b91506110ab6040850161100c565b90509250925092565b600080604083850312156110c757600080fd5b82516110d281610cf2565b60208401519092506110e381610cf2565b809150509250929050565b60008060006060848603121561110357600080fd5b835161110e81610cf2565b602085015190935061111f81610cf2565b604085015190925061113081610cf2565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b60008260020b8260020b028060020b915080821461021f5761021f61113b565b60008160020b8360020b8061119657634e487b7160e01b600052601260045260246000fd5b627fffff198214600019821416156111b0576111b061113b565b90059392505050565b600282810b9082900b03627fffff198112627fffff82131715610bcc57610bcc61113b565b600281810b9083900b01627fffff8113627fffff1982121715610bcc57610bcc61113b56fea26469706673582212201e4676065f4ac9215aa4ad4fa05b5c2c03bfc59faa7776267dd62ae59106baf464736f6c63430008170033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.