Skip to main content

Jasmine Project Ethereum SDK (Python)

Project description

Jasmine Project Ethereum SDK (Python)

This SDK provides the following functionalities:

  1. Create/retrieve new/existing Ethereum accounts
  2. Transfer ETH and query ETH balance
  3. Deploy TFCManager smart contracts along with TFCToken ERC20 contracts.
  4. 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.
  5. 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)

Uploaded Source

Built Distribution

jasmine_eth-0.0.5-py3-none-any.whl (22.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page