You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
2 years ago | |
---|---|---|
funga | 2 years ago | |
scripts | 2 years ago | |
.gitignore | 3 years ago | |
.gitlab-ci.yml | 2 years ago | |
CHANGELOG | 2 years ago | |
LICENSE | 2 years ago | |
LICENSE.txt | 3 years ago | |
MANIFEST.in | 2 years ago | |
README.md | 3 years ago | |
TODO | 2 years ago | |
requirements.txt | 2 years ago | |
run_tests.sh | 2 years ago | |
setup.cfg | 3 years ago | |
setup.py | 2 years ago | |
test_requirements.txt | 3 years ago |
README.md
CRYPTO DEV SIGNER
This package is written because at the time no good solution seemed to exist for solving the following combined requirements and issues:
- A service has custody of its users' private keys.
- The are a large number of private keys involved (hundreds of thousands and up).
- Need to sign transactions conforming to EIP-155, with the ability to arbitrarily specify the "chain id".
- Do not want to store the keys inside an ethereum node, especially not the one connected to the network.
- Want to use the "standard" web3 JSON-RPC interface, so that the component can be easily replaced later.
- Multiple providers don't work on either web3.js and/or web3.py.
- As a bonus, provide a practical keystore solution for testing in general for web3 projects.
TECHNICAL OVERVIEW
Scripts
When installed with pip/setuptools, this package provides a Unix socket IPC server as crypto-dev-daemon
implementing the following web3 json-rpc methods:
- web3.eth.personal.newAccount
- web3.eth.personal.signTransaction
- web3.eth.signTransaction
Classes
The classes and packages provided are:
keystore
- Keystore: Interface definition
- ReferenceKeystore: Implements the
Keystore
interface, with a postgresql backend expecting sql schema as defined inReferenceKeystore.schema
transaction
- Transaction: Interface definition.
- EIP155Transaction: Creates transaction serializations appropriate for EIP155 replay protected signatures. Accepts a web3 format transaction dict as constructor argument together with nonce and optional chainId.
signer
- Signer: Interface definition. Its
signTransaction
method expects an object implementing theTransaction
interface. - ReferenceSigner Implements
Signer
, accepting a single argument of typeKeystore
interface.
VERSION
This software is in alpha state.
Current version is 0.2.5
LICENSE
GPLv3
LEGAL MUMBO-JUMBO
No responsibility assumed for any use of this software. You're on your own, as usual.