Developer Interface¶
This part of the documentation covers all the interfaces of TS4.
Main Interface¶
- 
init(path, verbose=False, time=None)[source]¶
- Initializes the library. - Parameters
- path (str) – Directory where the artifacts of the used contracts are located 
- verbose (bool) – Toggle to print additional execution info 
- time (num) – Time in seconds (unixtime). TS4 uses either real-clock or virtual time. Once you set time you switch to the virtual time mode. 
 
 
- 
set_verbose(verbose=True)[source]¶
- Sets verbosity mode. When verbosity is enabled all the messages and some additional stuff is printed to console. Useful for debugging. - Parameters
- verbose (bool) – Toggle to print additional execution info 
 
- 
set_stop_at_crash(do_stop)[source]¶
- Sets G_STOP_AT_CRASH global flag. By default the system stops at the first exception (unexpected exit code) raised by a contract. Use expect_ec parameter if you expected an exception in a given call. When G_STOP_AT_CRASH is disabled the system only warns user and does not stop. - Parameters
- do_stop (bool) – Toggle for crash stop mode 
 
- 
set_config_param(index, value)[source]¶
- Sets global config parameter. - Parameters
- index (num) – Parameter index 
- value (Cell) – Cell object containing desired value. 
 
 
- 
verbose_(msg)[source]¶
- Helper function to show text colored red in console. Useful when debugging. - Parameters
- msg (str) – String message to be printed 
 
- 
verbose(msg, show_always=False, color_red=False)[source]¶
- Helper function to print text message in verbose mode. - Parameters
- msg (str) – String message to be printed 
- show_always (bool) – When enabled forces to show message even when verbose mode is off 
- color_red (bool) – Emphasize the message in color 
 
 
Address helpers¶
Account balance¶
- 
ensure_balance(expected, got, dismiss=False, epsilon=0, msg=None)[source]¶
- Checks the contract balance for exact match. In case of mismatch prints the difference in a convenient form. - Parameters
- expected (num) – Expected balance value 
- got (num) – Сurrent balance value 
- dismiss (bool) – When False don’t stop the execution in case of mismatch 
- epsilon (num) – Allowed difference between requested and actual balances 
- msg (str) – Optional message to print in case of mismatch 
 
 
Work with ABI¶
- 
fix_abi(name, abi, callback)[source]¶
- Travels through given ABI calling a callback function for each node - Parameters
- name (str) – Contract name 
- abi (dict) – Contract ABI 
- callback – Transformation function called for each node 
 
 
- 
register_abi(contract_name)[source]¶
- Loads an ABI for a given contract without its construction. Useful when some contracts are deployed indirectly (i.e. from other contracts). - Parameters
- contract_name (str) – The contract name the ABI of which should be uploaded 
 
- 
set_contract_abi(contract, new_abi_name)[source]¶
- Sets new ABI for a given contract. Useful when contract code was upgraded. - Parameters
- contract (BaseContract) – An instance of the contract where the ABI will be set 
- new_abi_name (str) – Name of the file containing the ABI 
 
 
Messages¶
- 
pop_msg()[source]¶
- Removes first message from the unprocessed messages g.QUEUE and returns it. - Returns
- Object 
- Return type
 
- 
peek_msg()[source]¶
- Returns first message from the unprocessed messages g.QUEUE and leaves the g.QUEUE unchanged. - Returns
- Object 
- Return type
 
- 
pop_event()[source]¶
- Removes first event from the unprocessed events g.QUEUE and returns it. - Returns
- Object 
- Return type
 
- 
peek_event()[source]¶
- Returns first event from the unprocessed events g.QUEUE and leaves the g.QUEUE unchanged. - Returns
- Object 
- Return type
 
- 
queue_length()[source]¶
- Returns the size of the unprocessed messages g.QUEUE. - Returns
- g.QUEUE length 
- Return type
- num 
 
- 
ensure_queue_empty()[source]¶
- Checks if the unprocessed messages g.QUEUE is empty and raises an error if it is not. Useful for debugging. 
Dispatching¶
- 
dispatch_one_message(expect_ec=0)[source]¶
- Takes first unprocessed message from the queue and dispatches it. Use expect_ec parameter if you expect non-zero exit code. - Parameters
- expect_ec (num) – Expected exit code 
- Returns
- The amount of gas spent on the execution of the transaction 
- Return type
- num 
 
- 
dispatch_messages(callback=None, limit=None, expect_ec=[0])[source]¶
- Dispatches all messages in the queue one by one until the queue becomes empty. - Parameters
- callback – Callback to be called for each processed message. If callback returns False then the given message is skipped. 
- limit (num) – Limit the number of processed messages by a given value. 
- expect_ec (num) – List of expected exit codes 
 
- Returns
- False if queue was empty, True otherwise 
- Return type
- bool 
 
Artifacts¶
- 
load_tvc(fn)[source]¶
- Loads a compiled contract image (.tvc) with a given name. - Parameters
- fn (str) – The file name 
- Returns
- Cell object loaded from a given file 
- Return type
 
Other¶
- 
register_nickname(addr, nickname)[source]¶
- Registers human readable name for a given address. This name is used in verbose output. - Parameters
- addr (Address) – An address of the account 
- nickname (str) – A nickname for the account 
 
 
- 
decode_int(v)[source]¶
- Decodes integer value from hex string. Helper function useful when decoding data from contracts. - Parameters
- v (str) – Hexadecimal string 
- Returns
- Decoded number 
- Return type
- num 
 
- 
make_keypair(seed=None)[source]¶
- Generates random keypair. - Parameters
- seed (str) – Seed to be used to generate keys. Useful when constant keypair is needed 
- Returns
- The key pair 
- Return type
- (str, str) 
 
- 
eq(v1, v2, dismiss=False, msg=None, xtra='')[source]¶
- Helper function to check that two values are equal. Prints the message in case of mismatch, and optionally stops tests execution. - Parameters
- v1 (Any) – Expected value 
- v2 (Any) – Actual value 
- dismiss (bool) – When False stops the entire execution in case of mismatch. When True only error message is shown 
- msg (str) – Optional additional message to be printed in case of mismatch 
- xtra (str) – Another optional additional message to be printed 
 
- Returns
- Result of check 
- Return type
- bool 
 
- 
set_tests_path(path)[source]¶
- Sets the directory where the system will look for compiled contracts. - Parameters
- path (str) – The path to contract artifacts 
 
- 
str2bytes(s: str) → str[source]¶
- Converts string to hex representations. - Parameters
- s (str) – A string to convert 
- Returns
- Hexadecimal string 
- Return type
- str 
 
Classes¶
BaseContract¶
- 
class BaseContract(name, ctor_params, wc=0, initial_data=None, address=None, override_address=None, pubkey=None, private_key=None, keypair=None, balance=None, nickname=None)[source]¶
- The - BaseContractobject, which is responsible for deploying contracts and interaction with deployed contracts.- 
__init__(name, ctor_params, wc=0, initial_data=None, address=None, override_address=None, pubkey=None, private_key=None, keypair=None, balance=None, nickname=None)[source]¶
- Constructs - BaseContractobject.- Parameters
- name (str) – Name used to load contract’s bytecode and ABI 
- ctor_params (dict) – Parameters for offchain constructor call If None, constructor is not called and can be called with separate call_method() call (onchain constructed) 
- wc (num) – workchain_id to deploy contract to 
- initial_data (dict) – Initial data for the contract (static members) 
- address (Address) – If this parameter is specified no new contract is created but instead a wrapper for an existing contract is created 
- override_address (Address) – When specified this address will be used for deploying the contract. Otherwise the address is generated according to real blockchain rules 
- pubkey (str) – Public key used in contract construction 
- private_key (str) – Private key used to sign construction message 
- keypair – Keypair containing private and public keys 
- balance (num) – Desired contract balance 
- nickname (str) – Nickname of the contract used in verbose output 
 
 
 - 
property abi_path¶
- Returns path to contract ABI file. - Returns
- Path to ABI file 
- Return type
- str 
 
 - 
property tvc_path¶
- Returns path to contract TVC file. - Returns
- Path to TVC file 
- Return type
- str 
 
 - 
property balance¶
- Retreives balance of a given contract. - Returns
- Account balance 
- Return type
- num 
 
 - 
property address¶
- Returns address of a given contract. - Returns
- Address of contract 
- Return type
 
 - 
property addr¶
- Returns address of a given contract. Shorter version of address. - Returns
- Address of contract 
- Return type
 
 - 
call_getter_raw(method, params={}, expect_ec=0)[source]¶
- Calls a given getter and returns an answer in raw JSON format. - Parameters
- method (str) – Name of a getter 
- params (dict) – A dictionary with getter parameters 
- expect_ec (num) – Expected exit code. Use non-zero value if you expect a getter to raise an exception 
 
- Returns
- Message parameters 
- Return type
- JSON 
 
 - 
call_getter(method, params={}, key=None, expect_ec=0, decode=False, decoder=None, decode_ints=None, decode_tuples=None, dont_decode_fields=None)[source]¶
- Calls a given getter and decodes an answer. - Parameters
- method (str) – Name of a getter 
- params (dict) – A dictionary with getter parameters 
- key (str) – (optional) If function returns tuple this parameter forces to return only one value under the desired key. 
- expect_ec (num) – Expected exit code. Use non-zero value if you expect a getter to raise an exception 
- decoder (Decoder) – Use this parameter to override decoding parameters 
 
- Returns
- A returned value in decoded form (exact type depends on the type of getter) 
- Return type
- type 
 
 - 
decode_event(event_msg)[source]¶
- Experimental feature. Decodes event parameters - Parameters
- event_msg (Msg) – An event message 
- Returns
- Event parameters in decoded form 
- Return type
- Params 
 
 - 
call_method(method, params={}, private_key=None, expect_ec=0, is_debot=False)[source]¶
- Calls a given method. - Parameters
- method (str) – Name of the method to be called 
- params (dict) – A dictionary with parameters for calling the contract function 
- private_key (str) – A private key to be used to sign the message 
- expect_ec (num) – Expected exit code. Use non-zero value if you expect a method to raise an exception 
 
- Returns
- Value in decoded form (if method returns something) 
- Return type
- dict 
 
 - 
call_method_signed(method, params={}, expect_ec=0)[source]¶
- Calls a given method using contract’s private key. - Parameters
- method (str) – Name of the method to be called 
- params (dict) – A dictionary with parameters for calling the contract function 
- expect_ec (num) – Expected exit code. Use non-zero value if you expect a method to raise an exception 
 
- Returns
- Value in decoded form (if method returns something) 
- Return type
- dict 
 
 - 
ticktock(is_tock)[source]¶
- Simulates tick-tock call. - Parameters
- is_tock (bool) – False for Tick and True for Tock 
- Returns
- The amount of gas spent on the execution of the transaction 
- Return type
- num 
 
 - 
property keypair¶
- Returns keypair assigned to the contract. - Returns
- Account keypair 
- Return type
- (str, str) 
 
 
- 
Address¶
- 
class Address(addr)[source]¶
- The - Addressobject, which contains an Address entity.- 
__init__(addr)[source]¶
- Constructs - Addressobject.- Parameters
- addr (str) – A string representing the address or None 
 
 - 
str()[source]¶
- Returns string representing given address. - Returns
- A string representing the address 
- Return type
- str 
 
 
- 
Bytes¶
Cell¶
Msg¶
- 
class Msg(data)[source]¶
- The - Msgobject, which represents a blockchain message.- Variables
- id (str) – Message ID 
- src (Address) – Source address 
- dst (Address) – Destionation address 
- type (str) – Type of message (empty, unknown, bounced, event, answer, external_call, call_getter) 
- value – The value attached to an internal message 
- method (str) – Called method/getter 
- params (dict) – A dictionary with parameters of the called method/getter 
 
 - 
__init__(data)[source]¶
- Constructs Msg object. - Parameters
- data (dict) – Dictionary with message data 
 
 - 
is_type(type1, type2=None, type3=None, type4=None, type5=None)[source]¶
- Checks if a given message has one of requested types. - Parameters
- type1 (str) – A name of desired type 
- type2 (str) – optional - A name of desired type 
- type3 (str) – optional - A name of desired type 
- type4 (str) – optional - A name of desired type 
- type5 (str) – optional - A name of desired type 
 
- Returns
- Result of check 
- Return type
- bool 
 
 - 
is_type_in(types)[source]¶
- Checks if a given message is one of requested types. - Parameters
- types (list) – A list of strings of type names 
- Returns
- Result of check 
- Return type
- bool 
 
 - 
is_answer(method=None)[source]¶
- Checks if a given message is of an answer type. - Parameters
- method (str) – optional - Desired name of a function answered 
- Returns
- Result of check 
- Return type
- bool 
 
 - 
is_call(method=None)[source]¶
- Checks if a given message is of a call type. - Parameters
- method (str) – optional - Desired name of a function called 
- Returns
- Result of check 
- Return type
- bool 
 
 - 
is_empty()[source]¶
- Checks if a given message is of an empty type. - Returns
- Result of check 
- Return type
- bool 
 
 - 
is_event(name=None, src=None, dst=None)[source]¶
- Checks if a given message is of an event type. - Parameters
- name (str) – Desired name of event to check 
- src (str) – Desired source address of event to check 
- dst (str) – Desired destination address of event to check 
 
- Returns
- Result of check 
- Return type
- bool 
 
 - 
is_unknown()[source]¶
- Checks if a current message is of an unknown type. - Returns
- Result of check 
- Return type
- bool 
 
 - 
is_bounced()[source]¶
- Checks if the given message is bounced. - Returns
- Result of check 
- Return type
- bool 
 
 
Decoder¶
- 
class Decoder(ints=None, strings=None, tuples=None, skip_fields=[])[source]¶
- The - Decoderobject, which contains decoder settings.- Variables
- ints (bool) – Whether decode integers or not 
- strings (bool) – Decode string or leave it as Bytes object 
- tuples (bool) – When getter returns tuple whether to return it as tuple or if no return as a map/dict 
- skip_fields (list) – The list of the field names to be skipped during decoding stage 
 
 - 
__init__(ints=None, strings=None, tuples=None, skip_fields=[])[source]¶
- Constructs - Decoderobject.- Parameters
- ints (bool) – Whether decode integers or not 
- strings (bool) – Decode string or leave it as Bytes object 
- tuples (bool) – When getter returns tuple whether to return it as tuple or if no return as a map/dict 
- skip_fields (list) – The list of the field names to be skipped during decoding stage