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.13.tar.gz (9.4 kB view hashes)

Uploaded Source

Built Distribution

cps_client-0.1.13-py3-none-any.whl (11.0 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