Skip to main content

A Python api wrapper for VSYS network.

Project description

[![version](https://img.shields.io/badge/version-2020.1-ff69b4.svg)](/vsyspy/version.py) [![license](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE) [![downloads](https://img.shields.io/github/downloads/Icermli/vsyspy/total.svg)](https://github.com/Icermli/vsyspy/releases) [![issues](https://img.shields.io/github/issues/Icermli/vsyspy.svg)](https://github.com/Icermli/vsyspy/issues)

# VSYSPY A python wrapper for vsys api.

## Install

### Install source code 1. clone the repo under you workspace `shell script git clone https://github.com/Icermli/vsyspy.git ` 2. install packages in vsyspy/requirement.txt by `shell script cd vsyspy pip install . ` Or, for developers, you may want to install the package with a symlink, `shell script pip install -e . ` 3. Then you can `import vsyspy` in your workspace

### Install via PyPi `shell script pip install vsyspy `

## Usage

### chain object 1. For testnet: `python import vsyspy as vpy ts_chain = vpy.testnet_chain() ` 2. For default chain: `python import vsyspy as vpy main_chain = vpy.default_chain() `

3. For custom api node: `python import vsyspy as vpy custom_wrapper = vpy.create_api_wrapper('http://<full node ip>:9922', api_key='') ts_chain = vpy.testnet_chain(custom_wrapper) `

4. For completely custom chain: `python import vsyspy as vpy custom_wrapper = vpy.create_api_wrapper('http://<full node ip>:9922', api_key='') t_chain = vpy.Chain(chain_name='testnet', chain_id='T', address_version=5, api_wrapper=custom_wrapper) custom_wrapper2 = vpy.create_api_wrapper('http://<full node ip>:9922', api_key='') m_chain = vpy.Chain(chain_name='mainnet', chain_id='M', address_version=5, api_wrapper=custom_wrapper2) custom_wrapper3 = vpy.create_api_wrapper('http://<full node ip>:9922', api_key='') c_chain = vpy.Chain(chain_name='mychain', chain_id='C', address_version=1, api_wrapper=custom_wrapper3) `

### chain api list 1. look up current block height of the chain: `python ts_chain.height() ` 2. look up the last block info of the chain: `python ts_chain.lastblock() ` 3. look up a block info at n in the chain: `python ts_chain.block(n) ` 4. Get a transaction info by transacion id in the chain: `python ts_chain.tx(tx_id) ` 5. Validate an address of the chain: `python ts_chain.validate_address(addr) `

### address object 1. constructed by seed `python from vsyspy import Account my_address = Account(chain=ts_chain, seed='<your seed>', nonce=0) ` 2. constructed by private key `python from vsyspy import Account my_address = Account(chain=ts_chain, private_key='<your base58 private key>') ` 3. constructed by public key `python from vsyspy import Account recipient = Account(chain=ts_chain, public_key='<base58 public key>') ` 4. constructed by wallet address `python from vsyspy import Account recipient = Account(chain=ts_chain, address='<base58 wallet address>') `

### address api list 1. Get balance `python # get balance balance = my_address.balance() print("The balance is {}".format(balance)) # get balance after 16 confirmations balance = my_address.balance(confirmations = 16) print("The balance is {}".format(balance)) ` 2. Send payment transaction `python # send payment (100000000 = 1 VSYS) my_address.send_payment(recipient, amount=100000000) ` 3. Send and cancel lease transaction `python # send lease (100000000 = 1 VSYS) response = my_address.lease(recipient, amount=100000000) tx_id = response["id"] # cancel lease my_address.lease_cancel(tx_id) `

### contract object 1. contructed by base58 string `python from vsyspy import Contract my_contract = Contract('<contract-base58-string>') ` or `python my_contract = Contract() my_contract.from_base58_string('<contract-base58-string>') `

2. contructed from scratch `python from vsyspy import Contract my_contract = Contract() my_contract.language_code = <language_code> my_contract.language_version = <language_version> my_contract.trigger = <trigger> my_contract.descriptor = <descriptor_without_split> my_contract.state_variable = <state_variable> my_contract.state_map = <state_map> my_contract.textual = <textual> `

3. default contract (token contract without split) `python import vsyspy as vpy my_contract = vpy.default_contract() `

### contract api list 1. Get json `python my_contract.json `

2. Get bytes `python my_contract.bytes `

3. Get base58 string `python my_contract.base58_string `

4. Register contract `python from vsyspy import DataEntry, Contract from vsyspy.contract import Type # register contract of max 1000000000000 and unit 1000000 contract = Contract('<contract-base58-string>') maximum = DataEntry(1000000000000, Type.amount) unit = DataEntry(1000000, Type.amount) short_txt = DataEntry('', Type.short_text) init_data_stack = [maximum, unit, short_txt] response = my_address.register_contract(contract, init_data_stack) contract_id = response["contractId"] ` 5. Execute contract `python # execute issue function of 1000000000 tokens amount = DataEntry(1000000000, Type.amount) issue_data_stack = [amount] my_address.execute_contract(contract_id, 1, issue_data_stack) `

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

vsyspy-2020.3.tar.gz (29.1 kB view details)

Uploaded Source

File details

Details for the file vsyspy-2020.3.tar.gz.

File metadata

  • Download URL: vsyspy-2020.3.tar.gz
  • Upload date:
  • Size: 29.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0.post20191030 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.5

File hashes

Hashes for vsyspy-2020.3.tar.gz
Algorithm Hash digest
SHA256 5919ba9692a337ea6c3088f042da7e67ce19b8504317eafb815f5e98ff17cc3a
MD5 700fecac4691081e3d6d32752cfe4456
BLAKE2b-256 f2050286ed0899f14e2f32e229cd5e28455be784d55a551bd9096e93781f146d

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