Skip to main content

Ambisafe KeyServer client library

Project description

Install

Use pip

pip install ambisafe

Usage

Create client

Import Client and create client object

from ambisafe import Client

client = Client(ambisafe_server_url, secret, api_key, api_secret)

You can set prefix for account id

client = Client(ambisafe_server_url, secret, api_key, api_secret, account_id_prefix='prefix')

You can provide read and connect timeout (in seconds)

client = Client(ambisafe_server_url, secret, api_key, api_secret, connect_timeout=2.5, read_timeout=5)

Create account

Simple security schema

account = client.create_simple_account(account_id, currency='BTC')

Wallet4 security schema

Generate operator container using secret and create user container from public_key, data (encrypted private key), iv and salt

from ambisafe import Container

operator_container = Container.generate(client.secret)
user_container = Container(public_key, data, iv, salt)

Create account for security schema “Wallet4” and “BTC” currency

account = client.create_wallet4_account(account_id, user_container=user_container,
                                        operator_container=operator_container,
                                        currency='BTC')

Update Wallet4 account

Create new containers and update account

account = client.update_wallet4_account(account_id, user_container=user_container,
                                        operator_container=operator_container,
                                        currency='BTC')

Get balance

Get balance in float

balance = client.get_balance(account_id, 'BTC')

Get account

account = client.get_account(account_id, 'BTC')

Make payment

For Simple account

Build and submit transaction

transaction = client.build_transaction(account_id, 'BTC', address, amount)
result = client.submit(account_id, transaction, 'BTC')

For Wallet4 accounts

Build transaction

transaction = client.build_transaction(account_id, 'BTC', address, amount)

Sign this transaction by user, then sing by operator and submit it

transaction = client.sign_wallet4_transaction(transaction, account_id, 'BTC')
client.submit(account_id, transaction, 'BTC')

# or

result = client.cosign_wallet4_and_submit(transaction, account_id, 'BTC')

Build recovery transaction

transaction = client.build_recovery_transaction(account_id, currency, old_address)

Disclaimer

The library still in BETA. There can be changes without backward compatibility.

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

ambisafe-0.28.2.tar.gz (12.7 kB view details)

Uploaded Source

File details

Details for the file ambisafe-0.28.2.tar.gz.

File metadata

  • Download URL: ambisafe-0.28.2.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.15

File hashes

Hashes for ambisafe-0.28.2.tar.gz
Algorithm Hash digest
SHA256 8bf683b951ebc25d3a7e4cb7c20dfff24f38a2bd9f07c4ced33c3dc9082d39c3
MD5 f94b46824374580c1b66f8ff2b6d2b06
BLAKE2b-256 2eba677ca8fe3c33272f0c7aadc7c9eee2283cad4f8341414a3fb82e57a20858

See more details on using hashes here.

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