Skip to main content

Python library to aid DApp-Server development on VeChain Thor.

Project description

- [Contract](#contract)
- [`get_events(start_block_num, to_block_num, event_id)`](#get_eventsstart_block_num-to_block_num-event_id)
- [FunctionCoder](#functioncoder)
- [`encode_function(function_name, *args)`](#encode_functionfunction_name-args)
- [`decode_result(self, function_name, data)`](#decode_resultself-function_name-data)
- [EventDecoder](#eventdecoder)
- [`decode_event(log)`](#decode_eventlog)

# Contract

```py
from vecha import Contract

contract = Contract(endpoint, address, abi_list)
```

**Parameters**:

- **endpoint**: `str`, thor restful server
- **address**: `str`, contract address
- **abi_list**: `List[Dict]`, contract abi

Then you can call the function directly on the contract instance via the function name in abi.

The `get_events` function names are built in, so the same name function in the smart contract will not be called.

In a smart contract, the function can be a call or a transaction. A transaction must provide private key.

```py
contract.you_name(*args, caller=None, value=0) # a call

contract.you_name(*args, pk, value) # a transaction
```

You can display the transaction as a call, this may help you debug smart contract.

```py
contract.you_name.call(*args, caller=None, value=0)
```

## `get_events(start_block_num, to_block_num, event_id)`

**Parameters**:

- **start_block_num** (optional): `int`, default is from genesis block
- **to_block_num** (optional): `int`, default is to best block
- **event_id** (optional): `str`, the signature of the event you want to filter out, default is all events of this contract

**Returns**:

- `List[Event]`, A list of Events. Event is a `namedtuple`, and it has three fields:
- event.name: `str`
- event.args: `Dict`, actual parameters when the event is emited
- event.block: `int`, the block number when the event is emited

> If you want to parse a log directly, please use [`EventDecoder.decode_event`](#decode_eventlog).<br>
> If you want to get an unsigned transaction data, you can use [`FunctionCoder.encode_function`](#encode_functionfunction_name-args).

# FunctionCoder

```py
from vecha import FunctionCoder

fn_coder = FunctionCoder(*fn_abi_list)
```

## `encode_function(function_name, *args)`

**Parameters**:

- **function_name**: `str`
- **args**: variable-length argument list of actual parameters

**Returns**:

- `str`, the data of a transaction that has not been signed

## `decode_result(self, function_name, data)`


# EventDecoder

```py
from vecha import EventDecoder

ev_decoder = EventDecoder(*event_abi_list)
```

## `decode_event(log)`

**Parameters**:

- **log**: `Dict`, the result of thor restful api `/logs/event`

**Returns**:

- `Event`, Event is a `namedtuple`, and it has three fields:
- event.name: `str`
- event.args: `Dict`, actual parameters when the event is emited
- event.block: `int`, the block number when the event is emited


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

vecha-0.0.1.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

vecha-0.0.1-py36-none-any.whl (17.9 kB view details)

Uploaded Python 3.6

File details

Details for the file vecha-0.0.1.tar.gz.

File metadata

  • Download URL: vecha-0.0.1.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for vecha-0.0.1.tar.gz
Algorithm Hash digest
SHA256 5afc2cebe03096136942f7599153d014163d1c3b84ba37e73b216f0bcffd7a1a
MD5 58076dd3ea38885db5d0e478e5ac8b03
BLAKE2b-256 f56323131b3ac31bc2c1c53cae6202568f5d0dc6767793270cdfd047ee39d8c6

See more details on using hashes here.

File details

Details for the file vecha-0.0.1-py36-none-any.whl.

File metadata

  • Download URL: vecha-0.0.1-py36-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3.6
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for vecha-0.0.1-py36-none-any.whl
Algorithm Hash digest
SHA256 8bd2db8eb9023de976dff7f71a66977c59492f0bd09ef64bd573063746e12f61
MD5 b5c759571aedf7e630c5575449c5cb84
BLAKE2b-256 023988923a4f159156fd59152fe5595e519116b7809cc4c4ba3a908f55aca897

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