Skip to content

diem/client-sdk-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

The official Diem Client SDK for Python.

pypi Apache V2 License Python versoins

API Reference

Pypi package

https://pypi.org/project/diem/

Examples

>>> from diem.jsonrpc import AsyncClient
>>> from diem.testing import JSON_RPC_URL
>>> import asyncio
>>>
>>> async def main():
...     # Use with statement to close client after usage
...     # or call client.close() when initialized without with statement
...     with AsyncClient(JSON_RPC_URL) as client:
...         print(await client.get_metadata())
...
>>> asyncio.run(main())

version: 3300304
timestamp: 1601492912847973
chain_id: 2
......

You can find more examples under the examples directory:

For building a wallet application, see MiniWallet Application for example.

Off-chain service example

Checkout MiniWallet implementation for off-chain service implementation example.

MiniWallet and MiniWallet Test Suite

See mini_wallet.md

Build & Test

make init
make test

run specific test:

make test t=<test file / test name match pattern>

run with local docker testnet (requires initializing diem submodule):

make test t=<test file / test name match pattern> dt=1

Re-generate diem_types, stdlib, jsonrpc response data structures

git submodule update --init diem
cd diem
git pull origin main
cd ..
make gen

Modules Overview

SPEC = specification

DIP-X = Diem Improvement Protocol

Root module name: diem

Sub-modules:

  • jsonrpc: diem JSON-RPC APIs client and API response types. SPEC
  • stdlib: generated code, move stdlib script utils for constructing transaction script playload.
  • diem_types: generated code, Diem on-chain data structure types for encoding and decoding BCS data.
  • utils: utility functions, account address utils, currency code, hashing, hex encoding / decoding, transaction utils.
  • AuthKey | auth_key: auth key utils
  • identifier: Diem Account Identifier and Diem Intent Identifier. DIP-5
  • txnmetadata: utils for creating peer to peer transaction metadata. DIP-4
  • testnet: Testnet utility, minting coins, create Testnet client, chain id, Testnet JSON-RPC URL.
  • testing: Testing utility, MiniWallet application, MiniWallet test suites, LocalAccount for managing local account keys and generating random local account.
  • chain_ids: list of static chain ids

About

Python client library for Diem

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Languages