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
- [`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
Release history Release notifications | RSS feed
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)
Built Distribution
vecha-0.0.1-py36-none-any.whl
(17.9 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5afc2cebe03096136942f7599153d014163d1c3b84ba37e73b216f0bcffd7a1a |
|
MD5 | 58076dd3ea38885db5d0e478e5ac8b03 |
|
BLAKE2b-256 | f56323131b3ac31bc2c1c53cae6202568f5d0dc6767793270cdfd047ee39d8c6 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bd2db8eb9023de976dff7f71a66977c59492f0bd09ef64bd573063746e12f61 |
|
MD5 | b5c759571aedf7e630c5575449c5cb84 |
|
BLAKE2b-256 | 023988923a4f159156fd59152fe5595e519116b7809cc4c4ba3a908f55aca897 |