# Python SDK

Open-api-sdk is a library for interaction with Open Platform.

# Installing

Using pip:

$ pip install open-api-sdk

# Get started

OPEN Platform uses OpenKeys to allow access to the API. You can register a new OpenKey at your Account.

OPEN Platform expects the OpenKey to be included in all API requests to the server in a header.

We assume that you have the OpenKey by this moment.

To access the library import an OpenPlatform class and call an instance with the OpenKey as following:

from openp_py import OpenPy

# Access API via instance of OpenPlatform class
op = OpenPy(open_key)

open_key - your open key.

In the following examples, it is assumed that op is a result of instantiating the OpenPlatform class with the open_key

# API

# Page request attributes

Attribute Type Description
offset Long Page offset
limit Int Page limit

# Page response attributes

Attribute Type Description
totalCount Long Total count of entities in a database
list [] List of entities with type T (T is generic)

# Scaffold

# Scaffold attributes

Attribute Type Description
address String Scaffold address
abi String Scaffold json interface
description String Scaffold description
fiatAmount String Scaffold fiat amount
currency String Fiat amount currency
conversionAmount String Fiat amount converted to ethereum
developerAddress String Scaffold developer address
webHook String Scaffold webhook for events
properties ScaffoldProperty[] Scaffold properties

# Scaffold properties attributes

Attribute Type Description
name String Property name
type PropertyType Property type
defaultValue String Property default value

# get_all()

scaffolds = op.scaffold.get_all()

# get_single(address)

address = '0x1c297f40beb075936d6dbe4b245b92738867ecb1' # an address of the scaffold (example)
scaffold = op.scaffold.get_single(address)

# Scaffold summary attributes

Attribute Type Description
scaffold Scaffold Scaffold
transactionIndex BigInteger Transaction index
tokenBalance BigInteger Scaffold token balance
enabled Boolean Scaffold enabled
currency String Fiat amount currency
shareHolders ShareHolder Scaffold shareholders

# get_summary(address)

summary = op.scaffold.get_summary(address)

# get_transactions(address)

transactions = op.scaffold.get_summary(address)

# Set web hook request data

Attribute Type Description
address String Scaffold address
webHook String Scaffold webhook for events

# example:

data = {'webHook': 'https://example.com'}

# set_webhook(address, data)

scaffold = op.scaffold.set_webhook(address, data)

# Deploy scaffold request data

Attribute Type Description
openKey String User open key
description String Scaffold description
fiatAmount String Scaffold fiat amount
currency String Fiat amount currency
conversionAmount String Fiat amount converted to ethereum
developerAddress String Scaffold developer address
webHook String Scaffold webhook for events
properties ScaffoldProperty[] Scaffold properties

# example:

data = {
    'openKey': open_key,
    'developerAddress': '0x0000000000000000000000000000000000000000',
    'description': "any_description",
    'fiatAmount': "123",
    'currency': "USD",
    'conversionAmount': '0.2139521163',
    'properties': [
      {
        'name': "property_name",
        'type': "STRING",
        'defaultValue': "property_value"
      }
    ]
  }

# deploy_scaffold(data)

scaffold = op.scaffold.deploy(data)

# deactivate_scaffold(address)

scaffold = op.scaffold.deactivate(address)

# Quota attributes

Attribute Type Description
currentCount Int Current deactivated scaffolds count
limitCount Int Limit of deactivated scaffolds count

# get_quota()

quota = op.scaffold.get_quota()

# Shareholder

# Shareholder attributes

Attribute Type Description
address String Shareholder address
percent Int Shareholder percent

# example:

# Shareholder attributes
data = {
    'address': '0x0000000000000000000000000000000000000000',
    'percent': 30
  }

# add(address, data)

summary = op.shareholder.create(address, data)

# Update shareholder request data

Attribute Type Description
percent Int Shareholder percent

# example:

data = {'percent': 50}

# update(address , holder_address , data)

shareholder_address = "0xDc29484cc9C02Ee01015f33BcA8bBb5C7293Fb54" # an example of shareholder's address
summary = op.shareholder.update(address, shareholder_address, data)

# remove(address, holder_address)

summary = op.shareholder.remove(address, shareholder_address)