Jasmine Project Ethereum SDK (Python)
Project description
Jasmine Project Ethereum SDK (Python)
This SDK provides the following functionalities:
- Create/retrieve new/existing Ethereum accounts
- Transfer ETH and query ETH balance
- Deploy TFCManager smart contracts along with TFCToken ERC20 contracts.
- Claim TFC token through TFCManager using a signature signed by the TFCManager deployer account. Signing functionality is not provided in this SDK by now. Alternatively, use Golang SDK or JavaScript SDK.
- Perform ERC20 standard actions on TFC ERC20 token, including transfer, transferFrom and approve.
Installation
Requires Python >=3.6
pip install jasmine_eth
Usage
Instantiate an SDK object using Ethereum endpoint:
from jasmine_eth import SDK
sdk = SDK("http://localhost:8545")
Create/retrieve an Ethereum account
private_key = "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d"
account = sdk.retrieve_account(private_key) # retrieve account using private key
account = sdk.create_account() # create a new account
print(account.address) # Ethereum address
print(account.private_key) # account private key
Deploy TFCManager contract, which will implicitly deploy TFCToken ERC20 contract.
# make sure the account have enough ETH balance to deploy contracts
manager_address = await sdk.deploy_tfc_manager(account)
Get the TFCManager contract instance and TFCToken contract instance:
manager = sdk.get_tfc_manager(manager_address)
tfc_erc20_address = manager.tfc_token_address()
tfc = sdk.get_tfc_token(tfc_erc20_address)
Claim TFC:
amount: int = 1000000000000000000 # 1 TFC
nonce: int = 0
signature: str = "0x6b04573d9a5b813e65b7afc77ca931bf1a5787ed1732622034355c75b39fe934194501f3431b2fed46581eaa486cdb636eebcb7f852d2105af4a4b53a25dd27e1c"
# account claim the amount of TFC using signature signed by TFCManager deployer
await manager.claim_tfc(amount, nonce, signature, account)
Get TFC balance
balance: int = tfc.balance_of(account.address)
Transfer TFC
amount: int = 1000000000000000000 # 1 TFC
await tfc.transfer(recipient_account.address, amount, account)
await tfc.approve(spender_account.address, amount, account)
await tfc.transfer_from(account.address, recipient_account.address, amount, spender_account)
Note: All methods that involve sending transactions are async
functions and should be awaited.
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
jasmine_eth-0.0.5.tar.gz
(14.3 kB
view hashes)
Built Distribution
Close
Hashes for jasmine_eth-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1e02cadfc8a4ff1d14c7bbeca6523c63a68b0b51a124af8af0aca15978d8477 |
|
MD5 | 6df051dc75e3874ac859c75e8aaae6a0 |
|
BLAKE2b-256 | ce1880827c4aca46e84f8971c3077c370f1c0b8c62e1d3c6f15aa40148b8c538 |