Comments (3)
This is a problem with all of the precompiles, though. The upcoming hardhat precompiles will fix the problem when sapphire-hardhat is used, though not otherwise, but then that's just due to not following the instructions. I'd say for now we should wait for the hardhat precompiles. If you want, you could add a function like
function isSapphire() external view returns (bool) {
return block.chainid == 0x5aff || block.chainid == 0x5afe;
}
and then call that in your contract's constructor
from sapphire-paratime.
Thanks for the report. A precondition of Sapphire.sol
is that it's used in a Sapphire-like environment, so it's not a goal of this library to check that it's being called correctly. Do you know of a way to emit a compile-time error if it's not being used correctly? I would accept a change that avoids adding gas cost to each invocation.
from sapphire-paratime.
I don't think there's any way to perform a check at compile-time.
I ran into this same problem when first starting with Sapphire, and have seen it encountered again on Discord.
The gas cost of additional checks is minimal, instead of the existing "require()" with error message, both status & length check could be combined into a check, with a more generic per-function error?
if ( false == success || entropy.length != numBytes ) revert Precompile_RandomBytes_Error();
from sapphire-paratime.
Related Issues (20)
- contracts: verify multiple accounts can send TEST to each other in e2e tests HOT 1
- onchain-signer example runs thrice, with different Truffle versions HOT 1
- Vigil example doesn't work with docker dev network HOT 2
- TypeScript compile error when importing Sapphire in a CJS project with `nodenext` module resolution HOT 1
- Improve JS client testing for subcall delegation HOT 1
- .connect() doesn't change both the caller and signer
- Error importing JS library in a react TS project HOT 1
- Fix test flake (signing & verification precompile intermittent error) HOT 1
- Makefile
- Weird: eth_getBlockByHash retrieval, same block two blockhashes HOT 1
- JS Client beta release process
- Viem JSON-RPC + encrypted transactions HOT 1
- Web3.js + encrypted transactions HOT 2
- OpenZeppelin 5.x not compatible with OPL HOT 2
- Broken `@oasisprotocol/sapphire-hardhat` installation HOT 3
- Fix hardhat integration publish
- Highlight VRF in documentation HOT 1
- Tutorial on how to encrypt events
- Deterministic deployment proxy HOT 1
- Ensure support for Tenderly HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sapphire-paratime.