Precompiles
A precompile is a common functionality used in smart contracts that has been compiled in advance, so Ethereum nodes can run it more efficiently. From a contract's perspective, this is a single command like an opcode.
The Frontier EVM used on Astar network provides several useful precompiled contracts. These contracts are implemented in our ecosystem as a native implementation. The precompiled contracts 0x01
through 0x08
are the same as those in Ethereum (see list below). Additionally, Astar implements precompiled contracts starting from 0x5001
, that support new Astar features.
Ethereum Native Precompiles
Precompile | Address |
---|
ECRecover | 0x0000000000000000000000000000000000000001 |
Sha256 | 0x0000000000000000000000000000000000000002 |
Ripemd160 | 0x0000000000000000000000000000000000000003 |
Identity | 0x0000000000000000000000000000000000000004 |
Modexp | 0x0000000000000000000000000000000000000005 |
Bn128Add | 0x0000000000000000000000000000000000000006 |
Bn128Mul | 0x0000000000000000000000000000000000000007 |
Bn128Pairing | 0x0000000000000000000000000000000000000008 |
Non-Ethereum Native Precompiles
Precompile | Address |
---|
Sha3FIPS256 | 0x0000000000000000000000000000000000000400 |
Dispatch | 0x0000000000000000000000000000000000000401 |
ECRecoverPublicKey | 0x0000000000000000000000000000000000000402 |
Ed25519Verify | 0x0000000000000000000000000000000000000403 |
Astar Specific Precompiles
Precompile | Address |
---|
DappsStaking | 0x0000000000000000000000000000000000005001 |
Sr25519 | 0x0000000000000000000000000000000000005002 |
SubstrateEcdsa | 0x0000000000000000000000000000000000005003 |
XCM | 0x0000000000000000000000000000000000005004 |
assets-erc20 | ASSET_PRECOMPILE_ADDRESS_PREFIX |
The interface descriptions for these precompiles can be found in the precompiles
folder: Astar repo.
The Addresses can be checked in the Astar repo for each runtime in precompile.rs
files.
Usage Example