/// @dev Adheres to chainlink's AggregatorV3Interface `latestRoundData()`/// @return _roundId The l1Block corresponding to the last time the oracle was proofed/// @return _answer The price of Sfrax in frax/// @return _startedAt The L1 timestamp corresponding to most recent proof/// @return _updatedAt Equivalent to `_startedAt`/// @return _answeredInRound Equivalent to `_roundId`functionlatestRoundData()externalviewreturns (uint80_roundId,int256_answer,uint256_startedAt,uint256_updatedAt,uint80_answeredInRound )
/// @return _pricePerShare The current exchange rate of the vault token /// denominated in the underlying vault assetfunctionpricePerShare() publicview
let blockToProof ="0x"+blockL1.toHexString().substring(2).replace(/^0+/,"");let sfrax_proof =awaitmainnetProvider.send("eth_getProof", [// L1 address to generate proofs forSFRAX_MAINNET,// Slots to proof ["0x0000000000000000000000000000000000000000000000000000000000000002","0x0000000000000000000000000000000000000000000000000000000000000009","0x0000000000000000000000000000000000000000000000000000000000000008","0x0000000000000000000000000000000000000000000000000000000000000006","0x0000000000000000000000000000000000000000000000000000000000000007" ], blockToProof ]);// Format the proof info returned from `eth_getProof`let proof:Proof= {} asProof;proof._accountProofSfrax =sfrax_proof.accountProof;proof._storageProofTotalSupply =sfrax_proof.storageProof[0].proof;proof._storageProofTotalAssets =sfrax_proof.storageProof[1].proof;proof._storageProofLastDist =sfrax_proof.storageProof[2].proof;proof._storageProofRewardsPacked =sfrax_proof.storageProof[3].proof;proof._storageProofRewardsCycleAmount =sfrax_proof.storageProof[4].proof;let txn =awaitproover.addRoundDataSfrax(SFRAX_L2_ORACLE,blockL1.toString(), proof )