Precompiles
Call Mercury EVM precompiles from Python
Quick Start
import os
from seismic_web3 import PrivateKey, create_public_client
from seismic_web3.crypto.secp import private_key_to_compressed_public_key
from seismic_web3 import precompiles as sp
w3 = create_public_client("https://gcp-1.seismictest.net/rpc")
# 1) Random bytes as int
random_val = sp.rng(w3, num_bytes=32)
# 2) Shared key from ECDH
my_sk = PrivateKey(os.urandom(32))
peer_sk = PrivateKey(os.urandom(32))
peer_pk = private_key_to_compressed_public_key(peer_sk)
shared_key = sp.ecdh(w3, sk=my_sk, pk=peer_pk)
# 3) AES-GCM encrypt/decrypt
ciphertext = sp.aes_gcm_encrypt(
w3,
aes_key=shared_key,
nonce=1,
plaintext=b"secret",
)
plaintext = sp.aes_gcm_decrypt(
w3,
aes_key=shared_key,
nonce=1,
ciphertext=bytes(ciphertext),
)
# 4) HKDF derivation
derived_key = sp.hkdf(w3, b"input key material")
# 5) secp256k1 signing
signature = sp.secp256k1_sign(w3, sk=my_sk, message="hello")Reference
Precompile
Address
Function
Returns
Last updated

