27 lines
586 B
Solidity
27 lines
586 B
Solidity
|
// SPDX-License-Identifier: CC0-1.0
|
||
|
|
||
|
pragma solidity ^0.8.0;
|
||
|
|
||
|
abstract contract Extsload {
|
||
|
function extsload(bytes32[] memory slots)
|
||
|
external
|
||
|
view
|
||
|
returns (bytes32[] memory)
|
||
|
{
|
||
|
for (uint256 i; i < slots.length; i++) {
|
||
|
bytes32 slot = slots[i];
|
||
|
bytes32 val;
|
||
|
assembly {
|
||
|
val := sload(slot)
|
||
|
}
|
||
|
slots[i] = val;
|
||
|
}
|
||
|
return slots;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// A contract who can make their state publicly accessible without EIP-2330
|
||
|
contract DeFiProtocol is Extsload {
|
||
|
// code
|
||
|
}
|