KMS signer for Ethereum
Project description
eth_kms_signer
AWS KMS Signer for ETH transactions(EIP 155/EIP 1559/ EIP 2930)
Dependencies
- Python 3.5+
QuickStart
This library is available on PyPI. Install via pip as:
pip install eth-kms-signer
Usage
- Instantiate eth kms signer client
from eth_kms_signer import EthKmsClient
client = EthKmsClient(region_name="{aws-kms-region}")
- Initailize web3
from web3 import Web3
w3 = Web3(Web3.HTTPProvider(endpoint_uri="{rpc_url}"))
- Sign a EIP 155 transaction
tx = {
"nonce": nonce,
"to": "0x7EeD368F105a6eaC9Ac645bC3440fEa9A6C3D531",
"value": w3.toWei(12, "wei"),
"gas": 21000,
"gasPrice": w3.toWei(1, "gwei"),
"chainId": "0x4",
}
signed_tx = client.sign_transaction(tx, key_id)
tx_hash = w3.eth.sendRawTransaction(signed_tx)
- Sign a EIP 1559 Dynamic Fee transaction
tx = {
"nonce": nonce,
"to": "0x7EeD368F105a6eaC9Ac645bC3440fEa9A6C3D531",
"value": w3.toWei(12, "wei"),
"gas": 21000,
"maxFeePerGas": w3.toWei(1, "gwei"),
"maxPriorityFeePerGas": w3.toWei(1, "gwei"),
"type": "0x2",
"chainId": "0x4",
}
signed_tx = client.sign_transaction(tx, key_id)
tx_hash = w3.eth.sendRawTransaction(signed_tx)
Examples
Choose one of the following for a fully detailed example:
- EIP 155 legacy transfer transaction
- EIP 155 legacy contract invocation
- EIP 1559 transfer transaction
- EIP 1559 contract invocation
Terraform to provision AWS KMS Key
The following example makes use of the CloudPosse Terraform Module:
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
eth_kms_signer-0.1.5.tar.gz
(6.2 kB
view details)
File details
Details for the file eth_kms_signer-0.1.5.tar.gz
.
File metadata
- Download URL: eth_kms_signer-0.1.5.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73b39ca3bb60b33e535de66b597526e70227997e3ee123cab87171ec6da47680 |
|
MD5 | 548ff07e59953192ba16756a3fd73564 |
|
BLAKE2b-256 | b2e7de6ed713c4cb116dbd6222f3e2b5eaf2e41b451addea39c52522e4471c37 |