Latest 25 from a total of 1,820 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Deposit | 61069337 | 5 hrs ago | IN | 0 S | 0.00645546 | ||||
| Get Reward | 61069304 | 5 hrs ago | IN | 0 S | 0.00649566 | ||||
| Deposit | 61022697 | 26 hrs ago | IN | 0 S | 0.00748385 | ||||
| Get Reward | 61022652 | 26 hrs ago | IN | 0 S | 0.00759121 | ||||
| Deposit | 60973322 | 42 hrs ago | IN | 0 S | 0.00772211 | ||||
| Get Reward | 60973312 | 42 hrs ago | IN | 0 S | 0.00759121 | ||||
| Get Reward | 60930481 | 2 days ago | IN | 0 S | 0.00732363 | ||||
| Get Reward | 60900249 | 2 days ago | IN | 0 S | 0.00649566 | ||||
| Deposit | 60900217 | 2 days ago | IN | 0 S | 0.00748313 | ||||
| Get Reward | 60900188 | 2 days ago | IN | 0 S | 0.00759121 | ||||
| Get Reward | 60893940 | 2 days ago | IN | 0 S | 0.00785994 | ||||
| Get Reward | 60887420 | 3 days ago | IN | 0 S | 0.00672571 | ||||
| Get Reward | 60887072 | 3 days ago | IN | 0 S | 0.00683381 | ||||
| Deposit | 60885671 | 3 days ago | IN | 0 S | 0.01157946 | ||||
| Deposit | 60869977 | 3 days ago | IN | 0 S | 0.0060715 | ||||
| Get Reward | 60869945 | 3 days ago | IN | 0 S | 0.0069011 | ||||
| Deposit | 60640643 | 6 days ago | IN | 0 S | 0.00689381 | ||||
| Deposit | 60613434 | 6 days ago | IN | 0 S | 0.00772211 | ||||
| Get Reward | 60613322 | 6 days ago | IN | 0 S | 0.0026323 | ||||
| Get Reward | 60613317 | 6 days ago | IN | 0 S | 0.00759121 | ||||
| Deposit | 60525034 | 8 days ago | IN | 0 S | 0.00455609 | ||||
| Get Reward | 60524979 | 8 days ago | IN | 0 S | 0.00759121 | ||||
| Get Reward | 60490207 | 8 days ago | IN | 0 S | 0.00759121 | ||||
| Deposit | 60474406 | 9 days ago | IN | 0 S | 0.00823141 | ||||
| Deposit | 60427761 | 9 days ago | IN | 0 S | 0.00748313 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Proxy
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
Yes with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
import {UpgradeableProxy} from "../base/UpgradeableProxy.sol";
import {IControllable} from "../../interfaces/IControllable.sol";
import {IProxy} from "../../interfaces/IProxy.sol";
/// @title Proxy for Stability Platform core contracts.
/// @dev ERC-1967: Proxy Storage Slots used.
/// @author JodsMigel (https://github.com/JodsMigel)
contract Proxy is UpgradeableProxy, IProxy {
/// @inheritdoc IProxy
function initProxy(address logic) external override {
_init(logic);
}
/// @inheritdoc IProxy
function upgrade(address newImplementation) external override {
require(IControllable(address(this)).platform() == msg.sender, IControllable.NotPlatform());
_upgradeTo(newImplementation);
// the new contract must have the same ABI and you must have the power to change it again
require(IControllable(address(this)).platform() == msg.sender, IControllable.NotPlatform());
}
/// @inheritdoc IProxy
function implementation() external view override returns (address) {
return _implementation();
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
/// @title Simple ERC-1967 upgradeable proxy implementation
abstract contract UpgradeableProxy {
error ImplementationIsNotContract();
/// @dev This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
bytes32 private constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
/// @dev Emitted when the implementation is upgraded.
event Upgraded(address indexed implementation);
constructor() {
assert(_IMPLEMENTATION_SLOT == bytes32(uint(keccak256("eip1967.proxy.implementation")) - 1));
}
/// @dev Post deploy initialisation for compatability with EIP-1167 factory
function _init(address logic) internal {
require(_implementation() == address(0), "Already inited");
_setImplementation(logic);
}
/// @dev Returns the current implementation address.
function _implementation() internal view virtual returns (address impl) {
bytes32 slot = _IMPLEMENTATION_SLOT;
// solhint-disable-next-line no-inline-assembly
//slither-disable-next-line assembly
assembly {
impl := sload(slot)
}
}
/// @dev Upgrades the proxy to a new implementation.
function _upgradeTo(address newImplementation) internal virtual {
_setImplementation(newImplementation);
emit Upgraded(newImplementation);
}
/// @dev Stores a new address in the EIP1967 implementation slot.
function _setImplementation(address newImplementation) private {
if (newImplementation.code.length == 0) revert ImplementationIsNotContract();
bytes32 slot = _IMPLEMENTATION_SLOT;
//slither-disable-next-line assembly
assembly {
sstore(slot, newImplementation)
}
}
/**
* @dev Delegates the current call to `implementation`.
*
* This function does not return to its internal call site, it will return directly to the external caller.
*/
function _delegate(address implementation) internal virtual {
//slither-disable-next-line assembly
assembly {
// Copy msg.data. We take full control of memory in this inline assembly
// block because it will not return to Solidity code. We overwrite the
// Solidity scratch pad at memory position 0.
calldatacopy(0, 0, calldatasize())
// Call the implementation.
// out and outsize are 0 because we don't know the size yet.
let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)
// Copy the returned data.
returndatacopy(0, 0, returndatasize())
switch result
// delegatecall returns 0 on error.
case 0 { revert(0, returndatasize()) }
default { return(0, returndatasize()) }
}
}
/**
* @dev Delegates the current call to the address returned by `_implementation()`.
*
* This function does not return to its internal call site, it will return directly to the external caller.
*/
function _fallback() internal virtual {
_delegate(_implementation());
}
/// @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
/// function in the contract matches the call data.
//slither-disable-next-line locked-ether
fallback() external payable virtual {
_fallback();
}
/// @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
/// is empty.
//slither-disable-next-line locked-ether
receive() external payable virtual {
_fallback();
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
/// @dev Base core interface implemented by most platform contracts.
/// Inherited contracts store an immutable Platform proxy address in the storage,
/// which provides authorization capabilities and infrastructure contract addresses.
/// @author Alien Deployer (https://github.com/a17)
/// @author JodsMigel (https://github.com/JodsMigel)
interface IControllable {
//region ----- Custom Errors -----
error IncorrectZeroArgument();
error IncorrectMsgSender();
error NotGovernance();
error NotMultisig();
error NotGovernanceAndNotMultisig();
error NotOperator();
error NotFactory();
error NotPlatform();
error NotVault();
error IncorrectArrayLength();
error AlreadyExist();
error NotExist();
error NotTheOwner();
error ETHTransferFailed();
error IncorrectInitParams();
//endregion -- Custom Errors -----
event ContractInitialized(address platform, uint ts, uint block);
/// @notice Stability Platform main contract address
function platform() external view returns (address);
/// @notice Version of contract implementation
/// @dev SemVer scheme MAJOR.MINOR.PATCH
//slither-disable-next-line naming-convention
function VERSION() external view returns (string memory);
/// @notice Block number when contract was initialized
function createdBlock() external view returns (uint);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
/// @dev Proxy of core contract implementation
interface IProxy {
/// @dev Initialize proxy logic. Need to call after deploy new proxy.
/// @param logic Address of core contract implementation
function initProxy(address logic) external;
/// @notice Upgrade proxy implementation (contract logic).
/// @dev Upgrade execution allowed only for Platform contract.
/// An upgrade of any core contract proxy is always part of a platform time locked upgrade,
/// with a change in the platform version.
/// @param newImplementation New implementation address
function upgrade(address newImplementation) external;
/// @notice Return current logic implementation
/// @return Address of implementation contract
function implementation() external view returns (address);
}{
"remappings": [
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
"@solady/=lib/solady/src/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
"openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/",
"solady/=lib/solady/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "cancun",
"viaIR": false,
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"name":"ImplementationIsNotContract","type":"error"},{"inputs":[],"name":"NotPlatform","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"logic","type":"address"}],"name":"initProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052348015600e575f5ffd5b50603860017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6067565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146063576063608b565b609f565b81810381811115608557634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52600160045260245ffd5b6103d2806100ac5f395ff3fe608060405260043610610037575f3560e01c80630900f0101461004e5780635c60da1b1461006d5780639c0200611461009d57610046565b36610046576100446100bc565b005b6100446100bc565b348015610059575f5ffd5b5061004461006836600461033f565b6100db565b348015610078575f5ffd5b50610081610209565b6040516001600160a01b03909116815260200160405180910390f35b3480156100a8575f5ffd5b506100446100b736600461033f565b610224565b6100d96100d45f51602061037d5f395f51905f525490565b61022d565b565b336001600160a01b0316306001600160a01b0316634bde38c86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610121573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101459190610361565b6001600160a01b03161461016c5760405163016bdfed60e71b815260040160405180910390fd5b6101758161024b565b336001600160a01b0316306001600160a01b0316634bde38c86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101df9190610361565b6001600160a01b0316146102065760405163016bdfed60e71b815260040160405180910390fd5b50565b5f61021f5f51602061037d5f395f51905f525490565b905090565b6102068161028a565b365f5f375f5f365f845af43d5f5f3e808015610247573d5ff35b3d5ffd5b610254816102f0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f6102a05f51602061037d5f395f51905f525490565b6001600160a01b0316146102eb5760405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481a5b9a5d195960921b604482015260640160405180910390fd5b610206815b806001600160a01b03163b5f0361031a5760405163e84f0f9960e01b815260040160405180910390fd5b5f51602061037d5f395f51905f5255565b6001600160a01b0381168114610206575f5ffd5b5f6020828403121561034f575f5ffd5b813561035a8161032b565b9392505050565b5f60208284031215610371575f5ffd5b815161035a8161032b56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220da21f1345d87d64ac93948209dd64a048f159bd639cc7d6c2a9d99038cd4000e64736f6c634300081c0033
Deployed Bytecode
0x608060405260043610610037575f3560e01c80630900f0101461004e5780635c60da1b1461006d5780639c0200611461009d57610046565b36610046576100446100bc565b005b6100446100bc565b348015610059575f5ffd5b5061004461006836600461033f565b6100db565b348015610078575f5ffd5b50610081610209565b6040516001600160a01b03909116815260200160405180910390f35b3480156100a8575f5ffd5b506100446100b736600461033f565b610224565b6100d96100d45f51602061037d5f395f51905f525490565b61022d565b565b336001600160a01b0316306001600160a01b0316634bde38c86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610121573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101459190610361565b6001600160a01b03161461016c5760405163016bdfed60e71b815260040160405180910390fd5b6101758161024b565b336001600160a01b0316306001600160a01b0316634bde38c86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101df9190610361565b6001600160a01b0316146102065760405163016bdfed60e71b815260040160405180910390fd5b50565b5f61021f5f51602061037d5f395f51905f525490565b905090565b6102068161028a565b365f5f375f5f365f845af43d5f5f3e808015610247573d5ff35b3d5ffd5b610254816102f0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f6102a05f51602061037d5f395f51905f525490565b6001600160a01b0316146102eb5760405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481a5b9a5d195960921b604482015260640160405180910390fd5b610206815b806001600160a01b03163b5f0361031a5760405163e84f0f9960e01b815260040160405180910390fd5b5f51602061037d5f395f51905f5255565b6001600160a01b0381168114610206575f5ffd5b5f6020828403121561034f575f5ffd5b813561035a8161032b565b9392505050565b5f60208284031215610371575f5ffd5b815161035a8161032b56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220da21f1345d87d64ac93948209dd64a048f159bd639cc7d6c2a9d99038cd4000e64736f6c634300081c0033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in S
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
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.