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.
Release files for jasmine-eth 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jasmine_eth-0.0.5.tar.gz | 14.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jasmine_eth-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.8 kB
Release files / jasmine_eth-0.0.5.tar.gz
| Download URL | jasmine_eth-0.0.5.tar.gz |
|---|---|
| Size | 14.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aae03518ab0d19d810c8dc482f0ec70b60f1f42cf5ab17226ae08a4e9d8008c6
|
|
BLAKE2b-256 checksum How to use checksums |
54d01773cca9b84d8e61969b0ad732ac99b330a4f5dbed3b505735329650c76f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0.post20201207 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.12
|
Release files / jasmine_eth-0.0.5-py3-none-any.whl
| Download URL | jasmine_eth-0.0.5-py3-none-any.whl |
|---|---|
| Size | 22.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d1e02cadfc8a4ff1d14c7bbeca6523c63a68b0b51a124af8af0aca15978d8477
|
|
BLAKE2b-256 checksum How to use checksums |
ce1880827c4aca46e84f8971c3077c370f1c0b8c62e1d3c6f15aa40148b8c538
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0.post20201207 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.12
|