ETH Price: $3,069.13 (-6.04%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Update Price217021722025-01-25 14:39:357 days ago1737815975IN
0x2C1d3d35...C67f531E5
0 ETH0.006303857.11918962
Update Price215789912025-01-08 9:54:3525 days ago1736330075IN
0x2C1d3d35...C67f531E5
0 ETH0.003222345.00738301
Update Price215142822024-12-30 9:05:3534 days ago1735549535IN
0x2C1d3d35...C67f531E5
0 ETH0.002099293.49896907
Update Price214858482024-12-26 9:49:1138 days ago1735206551IN
0x2C1d3d35...C67f531E5
0 ETH0.00418797.43421092
Update Price214797212024-12-25 13:15:1138 days ago1735132511IN
0x2C1d3d35...C67f531E5
0 ETH0.002764994.9068355

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StoneOracle

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
shanghai EvmVersion, BSL 1.1 license
File 1 of 3 : StoneOracle.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.26;

import {Oracle} from "./Oracle.sol";
import "../Errors.sol";

interface IStoneVault {
    function currentSharePrice() external returns (uint256 price);
}

contract StoneOracle is Oracle {
    uint256 public constant D18 = 1e18;

    IStoneVault public immutable stoneVault;

    uint256[] internal prices;

    constructor(
        address _token,
        string memory _name,
        address _stoneVault
    ) Oracle(_token, _name) {
        require(
            _token != address(0) && _stoneVault != address(0),
            "ZERO ADDRESS"
        );

        token = _token;
        name = _name;

        stoneVault = IStoneVault(_stoneVault);

        updatePrice();
    }

    function getPrice() external view override returns (uint256 price) {
        price = prices[prices.length - 1];
    }

    function updatePrice() public {
        uint256 price = stoneVault.currentSharePrice();
        if (price == 0) revert InvalidPrice();

        prices.push(price);
    }
}

File 2 of 3 : Oracle.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.26;

abstract contract Oracle {
    address public immutable token;

    string public name;

    constructor(address _token, string memory _name) {
        token = _token;
        name = _name;
    }

    function getPrice() external view virtual returns (uint256 price) {}
}

File 3 of 3 : Errors.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.26;

error InvalidToken();

error InvalidAsset();

error InsufficientBalance();

error InvalidOracle();

error InvalidPrice();

error InvalidArrayLength();

error DepositCapped();

error DepositPaused();

error ZeroShares();

error NoRequestingShares();

error NoClaimableRedeem();

error ZeroAddress();

error InvalidRequest();

error InvalidRequestToken();

error CannotRemove();

error InvalidDecimals();

error InvalidFeeRate();

error NoFeeRecipient();

Settings
{
  "remappings": [
    "@uniswap/v3-periphery/contracts/=lib/v3-periphery/contracts/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "v3-periphery/=lib/v3-periphery/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "evmVersion": "shanghai",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_stoneVault","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidPrice","type":"error"},{"inputs":[],"name":"D18","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stoneVault","outputs":[{"internalType":"contract IStoneVault","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updatePrice","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c060405234801561000f575f80fd5b506040516107d93803806107d983398101604081905261002e916101c7565b6001600160a01b03831660805282825f6100488282610331565b5050506001600160a01b0383161580159061006b57506001600160a01b03811615155b6100aa5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f204144445245535360a01b604482015260640160405180910390fd5b6001600160a01b0383166080525f6100c28382610331565b506001600160a01b03811660a0526100d86100e0565b505050610402565b5f60a0516001600160a01b03166328a795766040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610120573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014491906103eb565b9050805f036101655760405162bfc92160e01b815260040160405180910390fd5b6001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b80516001600160a01b03811681146101ae575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f805f606084860312156101d9575f80fd5b6101e284610198565b60208501519093506001600160401b038111156101fd575f80fd5b8401601f8101861361020d575f80fd5b80516001600160401b03811115610226576102266101b3565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610254576102546101b3565b60405281815282820160200188101561026b575f80fd5b5f5b828110156102895760208185018101518383018201520161026d565b505f602083830101528094505050506102a460408501610198565b90509250925092565b600181811c908216806102c157607f821691505b6020821081036102df57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561032c57805f5260205f20601f840160051c8101602085101561030a5750805b601f840160051c820191505b81811015610329575f8155600101610316565b50505b505050565b81516001600160401b0381111561034a5761034a6101b3565b61035e8161035884546102ad565b846102e5565b6020601f821160018114610390575f83156103795750848201515b5f19600385901b1c1916600184901b178455610329565b5f84815260208120601f198516915b828110156103bf578785015182556020948501946001909201910161039f565b50848210156103dc57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156103fb575f80fd5b5051919050565b60805160a0516103b16104285f395f818160a701526101a501525f60f501526103b15ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c806306fdde0314610064578063673a7e281461008257806398d5fdca1461008c578063ba93ec29146100a2578063e3f5aeb9146100e1578063fc0c546a146100f0575b5f80fd5b61006c610117565b60405161007991906102a8565b60405180910390f35b61008a6101a2565b005b610094610278565b604051908152602001610079565b6100c97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610079565b610094670de0b6b3a764000081565b6100c97f000000000000000000000000000000000000000000000000000000000000000081565b5f8054610123906102f3565b80601f016020809104026020016040519081016040528092919081815260200182805461014f906102f3565b801561019a5780601f106101715761010080835404028352916020019161019a565b820191905f5260205f20905b81548152906001019060200180831161017d57829003601f168201915b505050505081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166328a795766040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610200573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610224919061032b565b9050805f036102455760405162bfc92160e01b815260040160405180910390fd5b6001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b600180545f919061028a908290610342565b8154811061029a5761029a610367565b905f5260205f200154905090565b602081525f82518060208401525f5b818110156102d457602081860181015160408684010152016102b7565b505f604082850101526040601f19601f83011684010191505092915050565b600181811c9082168061030757607f821691505b60208210810361032557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121561033b575f80fd5b5051919050565b8181038181111561036157634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220423e8dcb0050e12d4a6f398eb58a55eaee831c00080d838dfbfe1f8dbb5fcca364736f6c634300081a00330000000000000000000000007122985656e38bdc0302db86685bb972b145bd3c0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a62f9c5af106feee069f38de51098d9d81b90572000000000000000000000000000000000000000000000000000000000000000c53544f4e45204f7261636c650000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610060575f3560e01c806306fdde0314610064578063673a7e281461008257806398d5fdca1461008c578063ba93ec29146100a2578063e3f5aeb9146100e1578063fc0c546a146100f0575b5f80fd5b61006c610117565b60405161007991906102a8565b60405180910390f35b61008a6101a2565b005b610094610278565b604051908152602001610079565b6100c97f000000000000000000000000a62f9c5af106feee069f38de51098d9d81b9057281565b6040516001600160a01b039091168152602001610079565b610094670de0b6b3a764000081565b6100c97f0000000000000000000000007122985656e38bdc0302db86685bb972b145bd3c81565b5f8054610123906102f3565b80601f016020809104026020016040519081016040528092919081815260200182805461014f906102f3565b801561019a5780601f106101715761010080835404028352916020019161019a565b820191905f5260205f20905b81548152906001019060200180831161017d57829003601f168201915b505050505081565b5f7f000000000000000000000000a62f9c5af106feee069f38de51098d9d81b905726001600160a01b03166328a795766040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610200573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610224919061032b565b9050805f036102455760405162bfc92160e01b815260040160405180910390fd5b6001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b600180545f919061028a908290610342565b8154811061029a5761029a610367565b905f5260205f200154905090565b602081525f82518060208401525f5b818110156102d457602081860181015160408684010152016102b7565b505f604082850101526040601f19601f83011684010191505092915050565b600181811c9082168061030757607f821691505b60208210810361032557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121561033b575f80fd5b5051919050565b8181038181111561036157634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220423e8dcb0050e12d4a6f398eb58a55eaee831c00080d838dfbfe1f8dbb5fcca364736f6c634300081a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007122985656e38bdc0302db86685bb972b145bd3c0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a62f9c5af106feee069f38de51098d9d81b90572000000000000000000000000000000000000000000000000000000000000000c53544f4e45204f7261636c650000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _token (address): 0x7122985656e38BDC0302Db86685bb972b145bD3C
Arg [1] : _name (string): STONE Oracle
Arg [2] : _stoneVault (address): 0xA62F9C5af106FeEE069F38dE51098D9d81B90572

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000007122985656e38bdc0302db86685bb972b145bd3c
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 000000000000000000000000a62f9c5af106feee069f38de51098d9d81b90572
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [4] : 53544f4e45204f7261636c650000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

218:822:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;130:18:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;869:169:2;;;:::i;:::-;;746:117;;;:::i;:::-;;;692:25:3;;;680:2;665:18;746:117:2;546:177:3;296:39:2;;;;;;;;-1:-1:-1;;;;;910:32:3;;;892:51;;880:2;865:18;296:39:2;728:221:3;255:34:2;;285:4;255:34;;93:30:1;;;;;130:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;869:169:2:-;909:13;925:10;-1:-1:-1;;;;;925:28:2;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;909:46;;969:5;978:1;969:10;965:37;;988:14;;-1:-1:-1;;;988:14:2;;;;;;;;;;;965:37;1013:6;:18;;;;;;;-1:-1:-1;1013:18:2;;;;;;;869:169::o;746:117::-;831:6;838:13;;798;;831:6;838:17;;831:6;;838:17;:::i;:::-;831:25;;;;;;;;:::i;:::-;;;;;;;;;823:33;;746:117;:::o;14:527:3:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;263:1;273:140;287:6;284:1;281:13;273:140;;;398:2;382:14;;;378:23;;372:30;367:2;348:17;;;344:26;337:66;302:10;273:140;;;277:3;462:1;457:2;448:6;437:9;433:22;429:31;422:42;532:2;525;521:7;516:2;508:6;504:15;500:29;489:9;485:45;481:54;473:62;;;14:527;;;;:::o;1162:380::-;1241:1;1237:12;;;;1284;;;1305:61;;1359:4;1351:6;1347:17;1337:27;;1305:61;1412:2;1404:6;1401:14;1381:18;1378:38;1375:161;;1458:10;1453:3;1449:20;1446:1;1439:31;1493:4;1490:1;1483:15;1521:4;1518:1;1511:15;1375:161;;1162:380;;;:::o;1547:184::-;1617:6;1670:2;1658:9;1649:7;1645:23;1641:32;1638:52;;;1686:1;1683;1676:12;1638:52;-1:-1:-1;1709:16:3;;1547:184;-1:-1:-1;1547:184:3:o;1736:225::-;1803:9;;;1824:11;;;1821:134;;;1877:10;1872:3;1868:20;1865:1;1858:31;1912:4;1909:1;1902:15;1940:4;1937:1;1930:15;1821:134;1736:225;;;;:::o;1966:127::-;2027:10;2022:3;2018:20;2015:1;2008:31;2058:4;2055:1;2048:15;2082:4;2079:1;2072:15

Swarm Source

ipfs://423e8dcb0050e12d4a6f398eb58a55eaee831c00080d838dfbfe1f8dbb5fcca3

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.