Skip to content

diem/client-sdk-python

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