Skip to main content

A Circle Platform Services Python Client

Project description

Circle Platform Services - Python Client

PyPI version

WARNING: work in progress and subject to change

A python client and CLI for working with Circle Platform Services.

Installation

pip install cps-client

Usage

cps-client uses an enviroment variable to fetch your API key.

export CPS_API_KEY="<api-key>"

CLI

Installation provides a command line interface for interacting with CPS.

Usage: cps [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  configuration-get           Get global CPS configuration.
  subscription-create         Create a subscription.
  subscription-delete         Delete a subscription.
  subscriptions-get           Get a collection of subscriptions.
  transfer-create-blockchain  Create transfers from a wallet to blockchain...
  transfer-create-wallet      Create transfers from a wallet to another...
  transfer-get                Get info about transfers.
  transfers-get               Get collection of transfers.
  wallet-address-create       Create a new wallet address.
  wallet-addresses-get        Get a collection of wallet addresses.
  wallet-create               Create a new wallet.
  wallet-get                  Get a wallet.
  wallets-get                 Get a collection of wallets.

Library

You can also use cps-client as a library.

from cps_client import api

# you can get your own at https://my-sandbox.circle.com/
API_KEY="my-circle-sanbox-api-key" 

source = api.WalletLocation(walletid)
destination = api.BlockchainLocation(address, chain)
amount = api.Money(amount, currency)

cpsAPI = api.Client("https://api-sandbox.circle.com", API_KEY)
transfer = cpsAPI.create_transfer(source, destination, amount)

print(transfer)

"""
Output:

{
    "id": "b08478d5-a110-4b0e-9136-4b9d94601c65",
    "source": {
        "type": "wallet",
        "id": "1000004286"
    },
    "destination": {
        "type": "blockchain",
        "address": "0x71715Da6ADa699e3a1a5C2664A55fF3D179c86EE",
        "chain": "ETH"
    },
    "amount": {
        "amount": "0.05",
        "currency": "USD"
    },
    "status": "complete",
    "transactionHash": "0x52176702740c8720d77ade3f20014396a4a2eb13d09dd1e6bffcc6f209a45326"
}
"""

Development

Fork this repo and do the following to get setup:

# clone the repository and add upstream so you can fetch the latest changes
git clone git@github.com:<your-username>/cps-client-python.git
git remote add upstream git@github.com:belljustin/cps-client-python.git

# create a virtualenv
cd cps-client-python
virtualenv -p python3 venv
source venv/bin/activate

# install the project in editable mode
pip install -e .

Now, as long as you're using the virtualenv, you can use cps-client with all the edits you've made including running the cli tool.

To test, you'll need a CPS API key. You can get this by signing up for the sandbox here: https://my-sandbox.circle.com/. To run the cli and integration tests, this needs to exist as an environment variable named $CPS_API_KEY

You can then run all the integration tests via the make file:

make integration

or run individual tests with the python unittest command, e.g:

python -m unittest tests.integration.test_integration.TestBasic.test_get_wallet_addresses

To submit a contribution, open a pull request against the master branch on upstream.

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

cps_client-0.1.11.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

cps_client-0.1.11-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file cps_client-0.1.11.tar.gz.

File metadata

  • Download URL: cps_client-0.1.11.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for cps_client-0.1.11.tar.gz
Algorithm Hash digest
SHA256 844c8151cb2351c15bc6ed032ada5984f64afc35dd4e76f1cb5fd1ade19e4fc0
MD5 5e58c9c839b4ebc7d7104c7c599c21e0
BLAKE2b-256 1ab46348a1cc9c79f4c6e01287e608edaf96d0aaa1b87b3d9faf945628792601

See more details on using hashes here.

File details

Details for the file cps_client-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: cps_client-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for cps_client-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 43b4711a7b25d16a9bfdf4c88b5b32567d7893d4562f3357660f1dd03bf4b22c
MD5 85a7b9e1a671f3537488356848f73f7d
BLAKE2b-256 57eb9fbfb4df78d6807145ff44097724e834c3e38b35b9719ca43b9a7cfb87a9

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