Source Code
Latest 1 from a total of 1 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Price_w | 9147258 | 512 days ago | IN | 0 FRAX | 0.00000022 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
OracleVaultWrapper
Compiler Version
vyper:0.3.10
Contract Source Code (Vyper language format)
# @version 0.3.10
"""
@title OracleVaultWrapper
@notice Wraps an external price oracle to be vault-aware (pricePerShare) and invertible
@author Curve.Fi
@license MIT
"""
interface Oracle:
def price() -> uint256: view
def price_w() -> uint256: nonpayable
interface Vault:
def pricePerShare() -> uint256: view
ORACLE: public(immutable(Oracle))
VAULT: public(immutable(Vault))
IS_INVERTED: public(immutable(bool))
PPS_MAX_SPEED: constant(uint256) = 10**16 / 60 # Max speed of pricePerShare change
cached_price_per_share: public(uint256)
cached_timestamp: public(uint256)
@external
def __init__(
oracle: Oracle,
vault: Vault,
is_inverted: bool
):
ORACLE = oracle
VAULT = vault
IS_INVERTED = is_inverted
self.cached_price_per_share = VAULT.pricePerShare()
self.cached_timestamp = block.timestamp
@internal
@view
def _pps() -> uint256:
return min(VAULT.pricePerShare(), self.cached_price_per_share * (10**18 + PPS_MAX_SPEED * (block.timestamp - self.cached_timestamp)) / 10**18)
@internal
def _pps_w() -> uint256:
pps: uint256 = min(VAULT.pricePerShare(), self.cached_price_per_share * (10**18 + PPS_MAX_SPEED * (block.timestamp - self.cached_timestamp)) / 10**18)
self.cached_price_per_share = pps
self.cached_timestamp = block.timestamp
return pps
@internal
@view
def _raw_price(p: uint256, pps: uint256) -> uint256:
if IS_INVERTED:
return pps * 10**18 / p
else:
return p * pps / 10**18
@external
@view
def price() -> uint256:
return self._raw_price(ORACLE.price(), self._pps())
@external
def price_w() -> uint256:
return self._raw_price(ORACLE.price_w(), self._pps_w())Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"oracle","type":"address"},{"name":"vault","type":"address"},{"name":"is_inverted","type":"bool"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"price","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"price_w","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"ORACLE","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"VAULT","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"IS_INVERTED","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"cached_price_per_share","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"cached_timestamp","inputs":[],"outputs":[{"name":"","type":"uint256"}]}]Contract Creation Code
6103e85150346100a25760206104635f395f518060a01c6100a25760405260206104835f395f518060a01c6100a25760605260206104a35f395f518060011c6100a2576080526040516103a8526060516103c8526080516103e8526103c8516399530b0660a052602060a0600460bc845afa61007d573d5f5f3e3d5ffd5b60203d106100a25760a09050515f55426001556103a86100a661000039610408610000f35b5f80fd5f3560e01c60026005820660011b61039e01601e395f51565b6338013f028118610036573461039a5760206103a860403960206040f35b63411557d181186101ac573461039a5760206103c860403960206040f36101ac565b634b766a3481186101ac573461039a5760206103e860403960206040f36101ac565b63e92774518118610095573461039a575f5460405260206040f35b63a035b1fe81186101ac573461039a57602060206103a85f395f5163a035b1fe608052602060806004609c845afa6100cf573d5f5f3e3d5ffd5b60203d1061039a576080905051610100526100ea60c06101b0565b60c05161012052610100516040526101205160605261010960e0610323565b60e0f36101ac565b63e7c222d181186101ac573461039a5760015460405260206040f36101ac565b63ceb7f75981186101ac573461039a57602060206103a85f395f5163ceb7f75960a052602060a0600460bc5f855af161016c573d5f5f3e3d5ffd5b60203d1061039a5760a09050516101205261018760e0610262565b60e0516101405261012051604052610140516060526101a7610100610323565b610100f35b5f5ffd5b60206103c85f395f516399530b06604052602060406004605c845afa6101d8573d5f5f3e3d5ffd5b60203d1061039a5760409050515f544260015480820382811161039a57905090506597951b766aaa8102816597951b766aaa82041861039a57905080670de0b6b3a764000001670de0b6b3a7640000811061039a57905080820281158383830414171561039a5790509050670de0b6b3a76400008104905080828118828410021890509050815250565b60206103c85f395f516399530b06606052602060606004607c845afa61028a573d5f5f3e3d5ffd5b60203d1061039a5760609050515f544260015480820382811161039a57905090506597951b766aaa8102816597951b766aaa82041861039a57905080670de0b6b3a764000001670de0b6b3a7640000811061039a57905080820281158383830414171561039a5790509050670de0b6b3a764000081049050808281188284100218905090506040526040515f5542600155604051815250565b60206103e85f395f516103635760405160605180820281158383830414171561039a5790509050670de0b6b3a76400008104905081525061039856610398565b606051670de0b6b3a7640000810281670de0b6b3a764000082041861039a579050604051801561039a57808204905090508152505b565b5f80fd0131005800180111007a841903a8810a1860a16576797065728300030a00150000000000000000000000002f0af8ec2f5893392843a0f647a30a141dba9daf000000000000000000000000bfc4d34db83553725ec6c768da71d2d9c1456b550000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x5f3560e01c60026005820660011b61039e01601e395f51565b6338013f028118610036573461039a5760206103a860403960206040f35b63411557d181186101ac573461039a5760206103c860403960206040f36101ac565b634b766a3481186101ac573461039a5760206103e860403960206040f36101ac565b63e92774518118610095573461039a575f5460405260206040f35b63a035b1fe81186101ac573461039a57602060206103a85f395f5163a035b1fe608052602060806004609c845afa6100cf573d5f5f3e3d5ffd5b60203d1061039a576080905051610100526100ea60c06101b0565b60c05161012052610100516040526101205160605261010960e0610323565b60e0f36101ac565b63e7c222d181186101ac573461039a5760015460405260206040f36101ac565b63ceb7f75981186101ac573461039a57602060206103a85f395f5163ceb7f75960a052602060a0600460bc5f855af161016c573d5f5f3e3d5ffd5b60203d1061039a5760a09050516101205261018760e0610262565b60e0516101405261012051604052610140516060526101a7610100610323565b610100f35b5f5ffd5b60206103c85f395f516399530b06604052602060406004605c845afa6101d8573d5f5f3e3d5ffd5b60203d1061039a5760409050515f544260015480820382811161039a57905090506597951b766aaa8102816597951b766aaa82041861039a57905080670de0b6b3a764000001670de0b6b3a7640000811061039a57905080820281158383830414171561039a5790509050670de0b6b3a76400008104905080828118828410021890509050815250565b60206103c85f395f516399530b06606052602060606004607c845afa61028a573d5f5f3e3d5ffd5b60203d1061039a5760609050515f544260015480820382811161039a57905090506597951b766aaa8102816597951b766aaa82041861039a57905080670de0b6b3a764000001670de0b6b3a7640000811061039a57905080820281158383830414171561039a5790509050670de0b6b3a764000081049050808281188284100218905090506040526040515f5542600155604051815250565b60206103e85f395f516103635760405160605180820281158383830414171561039a5790509050670de0b6b3a76400008104905081525061039856610398565b606051670de0b6b3a7640000810281670de0b6b3a764000082041861039a579050604051801561039a57808204905090508152505b565b5f80fd0131005800180111007a0000000000000000000000002f0af8ec2f5893392843a0f647a30a141dba9daf000000000000000000000000bfc4d34db83553725ec6c768da71d2d9c1456b550000000000000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002f0af8ec2f5893392843a0f647a30a141dba9daf000000000000000000000000bfc4d34db83553725ec6c768da71d2d9c1456b550000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : oracle (address): 0x2F0AF8eC2f5893392843a0F647A30A141dba9DaF
Arg [1] : vault (address): 0xBFc4D34Db83553725eC6c768da71D2D9c1456B55
Arg [2] : is_inverted (bool): False
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000002f0af8ec2f5893392843a0f647a30a141dba9daf
Arg [1] : 000000000000000000000000bfc4d34db83553725ec6c768da71d2d9c1456b55
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$843,986.85
Net Worth in FRAX
1,066,642.168307
Token Allocations
WETH
33.29%
WBTC
33.15%
USD₮0
32.91%
Others
0.65%
Multichain Portfolio | 35 Chains
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.