Plato Data Intelligence.
Vertical Search & Ai.

blocksec2go-ethereum added to PyPI

Date:

Project description

This repository contains the source code of blocksec2go-ethereum Python package which wraps the blocksec2go package to allow easier interaction with Ethereum blockchain.

If you’re unsure what Blockchain Security 2 Go is, you can find more info here.

Installation

pip install blocksec2go-ethereum

Usage

After creating an instance of Blocksec2Go you can use it to generate signatures for transaction dicts. When passed raw tx, sign_transaction() will return a hex string of RLP-encoded signed transaction that can be directly consumed by web3.eth.sendRawTransaction().

Transfer Ether

Below you will find an example of signing a simple Ether transfer:

from blocksec2go_ethereum import Blocksec2GoSigner
from web3 import Web3 WEB3_ENDPOINT = 'YOUR_ENDPOINT_HERE' web3 = Web3(Web3.HTTPProvider(WEB3_ENDPOINT))
chain_id = web3.eth.chainId signer = Blocksec2GoSigner(chain_id=chain_id, key_id=1)
address = signer.get_address() nonce = web3.eth.getTransactionCount(address)
raw_tx = { 'to': '0xBaBC446aee039E99d624058b0875E519190C6758', 'nonce': nonce, 'value': Web3.toWei(0.00005, 'ether'), 'gas': 21000, 'gasPrice': Web3.toWei(5, 'gwei'),
}
signed_tx = signer.sign_transaction(raw_tx) tx_hash = web3.eth.sendRawTransaction(signed_tx)
print(f'Sent transaction with hash: {tx_hash.hex()}')

Call a contract function

You can also sign any contract calls/creation transactions by leveraging buildTransaction().

Please note that for some contracts buildTransaction() may require explicitly setting from field to properly estimate gas.

import json from blocksec2go_ethereum import Blocksec2GoSigner
from web3 import Web3 WEB3_ENDPOINT = 'YOUR_ENDPOINT_HERE' web3 = Web3(Web3.HTTPProvider(WEB3_ENDPOINT))
chain_id = web3.eth.chainId signer = Blocksec2GoSigner(chain_id=chain_id, key_id=1)
address = signer.get_address() with open('artifact.json', 'r') as artifact_file: artifact = json.loads(artifact_file.read()) contract = web3.eth.contract(address=artifact['address'], abi=artifact['abi']) nonce = web3.eth.getTransactionCount(address)
raw_tx = contract.functions.setValue(42).buildTransaction({'nonce': nonce, 'from': address})
signed_tx = signer.sign_transaction(raw_tx) tx_hash = web3.eth.sendRawTransaction(signed_tx)
print(f'Sent transaction with hash: {tx_hash.hex()}')

License

ISC © 2020 rexs.io

Download files

Download the file for your platform. If you’re not sure which to choose, learn more about installing packages.

Source: https://pypi.org/project/blocksec2go-ethereum/

spot_img

Latest Intelligence

spot_img

Chat with us

Hi there! How can I help you?