Contracts
ContractMetadata
¶
__init__(metadata_dict: dict, substrate: SubstrateInterface)
¶
Class using the generated metadata.json file to represent the metadata of a contract. The metadata_dict is parsed and the used types are extracted, composed and added to the type registry of the runtime
Parameters:
Name | Type | Description | Default |
---|---|---|---|
metadata_dict
|
dict
|
|
required |
substrate
|
SubstrateInterface
|
|
required |
create_from_file(metadata_file: str, substrate: SubstrateInterface) -> ContractMetadata
classmethod
¶
Create a new ContractMetadata object using the provided metadata_file, usually generated by the command "cargo +nightly contract generate-metadata" in an ink! project
Parameters:
Name | Type | Description | Default |
---|---|---|---|
metadata_file
|
str
|
|
required |
substrate
|
SubstrateInterface
|
|
required |
Returns:
Type | Description |
---|---|
ContractMetadata
|
|
generate_constructor_data(name, args: dict = None) -> ScaleBytes
¶
Compose the data field used in the "Contracts.instantiate" call, finding the selectors and encoded the args of given constructor
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name
|
|
required | |
args
|
dict
|
|
None
|
Returns:
Type | Description |
---|---|
ScaleBytes
|
|
get_type_string_for_metadata_type(type_id: int) -> str
¶
Adds a type included in the metadata (represented by an index in the type list) to the type registry and
produces a type string that can be used in the scope of the RuntimeConfigurationObject
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
type_id
|
int
|
|
required |
Returns:
Type | Description |
---|---|
str
|
|
generate_message_data(name, args: dict = None) -> ScaleBytes
¶
Compose the data field used in the "Contracts.call" call, finding the selector and encoded the args of provided message name
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name
|
|
required | |
args
|
dict
|
|
None
|
Returns:
Type | Description |
---|---|
ScaleBytes
|
|
get_event_data(event_id: int) -> dict
¶
Looks up the event data for given 0-based event_id
Parameters:
Name | Type | Description | Default |
---|---|---|---|
event_id
|
int
|
|
required |
ContractEvent
¶
Bases: ScaleType
__init__(*args, contract_metadata: ContractMetadata = None, **kwargs)
¶
ScaleType class containing information about a specific Contract Event, it decodes the "data" field in the generic "Contracts.ContractExecution" event that is triggered after a successfull "Contracts.call" call.
ContractExecutionReceipt
¶
Bases: ExtrinsicReceipt
__init__(*args, **kwargs)
¶
Object extending the ExtrinsicReceipt
containing more information about the result after submitting a
"Contracts.call" extrinsic.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
args
|
|
()
|
|
kwargs
|
|
{}
|
create_from_extrinsic_receipt(receipt: ExtrinsicReceipt, contract_metadata: ContractMetadata, contract_address: str = None) -> ContractExecutionReceipt
classmethod
¶
Promotes a ExtrinsicReceipt object to a ContractExecutionReceipt. It uses the provided ContractMetadata to decode "ContractExecution" events
Parameters:
Name | Type | Description | Default |
---|---|---|---|
receipt
|
ExtrinsicReceipt
|
|
required |
contract_metadata
|
ContractMetadata
|
|
required |
Returns:
Type | Description |
---|---|
ContractExecutionReceipt
|
|
ContractCode
¶
__init__(code_hash: bytes = None, metadata: ContractMetadata = None, wasm_bytes: bytes = None, substrate: SubstrateInterface = None)
¶
Object representing the blueprint of the contract, combining either the code hash and metadata of a contract, or the WASM bytes and metadata
Parameters:
Name | Type | Description | Default |
---|---|---|---|
code_hash
|
bytes
|
|
None
|
metadata
|
ContractMetadata
|
|
None
|
wasm_bytes
|
bytes
|
|
None
|
substrate
|
SubstrateInterface
|
|
None
|
create_from_contract_files(wasm_file: str, metadata_file: str, substrate: SubstrateInterface) -> ContractCode
classmethod
¶
Create a ContractCode providing paths for the WASM binary file and metadata JSON file generated by the ink! project
Parameters:
Name | Type | Description | Default |
---|---|---|---|
wasm_file
|
str
|
|
required |
metadata_file
|
str
|
|
required |
substrate
|
SubstrateInterface
|
|
required |
Returns:
Type | Description |
---|---|
ContractCode
|
|
create_from_code_hash(code_hash: bytes, metadata_file: str, substrate: SubstrateInterface) -> ContractCode
classmethod
¶
Create a ContractCode providing an existing contract code hash and a path to the metadata JSON file
Parameters:
Name | Type | Description | Default |
---|---|---|---|
code_hash
|
bytes
|
|
required |
metadata_file
|
str
|
|
required |
substrate
|
SubstrateInterface
|
|
required |
Returns:
Type | Description |
---|---|
ContractCode
|
|
upload_wasm(keypair: Keypair, storage_deposit_limit: int = None) -> ExtrinsicReceipt
¶
Created and submits an "Contracts.upload_code" extrinsic containing the WASM binary
Parameters:
Name | Type | Description | Default |
---|---|---|---|
keypair
|
Keypair
|
|
required |
storage_deposit_limit
|
int
|
|
None
|
Returns:
Type | Description |
---|---|
ExtrinsicReceipt
|
|
deploy(keypair: Keypair, constructor: str, args: dict = None, value: int = 0, gas_limit: dict = None, deployment_salt: str = None, upload_code: bool = False, storage_deposit_limit: int = None) -> ContractInstance
¶
Deploys a new instance of the contract after it has been uploaded on-chain, with provided constructor and constructor arguments
Parameters:
Name | Type | Description | Default |
---|---|---|---|
keypair
|
Keypair
|
|
required |
constructor
|
str
|
|
required |
args
|
dict
|
|
None
|
value
|
int
|
|
0
|
gas_limit
|
dict
|
|
None
|
deployment_salt
|
str
|
|
None
|
upload_code
|
bool
|
|
False
|
storage_deposit_limit
|
int
|
|
None
|
Returns:
Type | Description |
---|---|
ContractInstance
|
|
ContractInstance
¶
create_from_address(contract_address: str, metadata_file: str, substrate: SubstrateInterface = None) -> ContractInstance
classmethod
¶
Create a ContractInstance object that already exists on-chain providing a SS58-address and the path to the metadata JSON of that contract
Parameters:
Name | Type | Description | Default |
---|---|---|---|
contract_address
|
str
|
|
required |
metadata_file
|
str
|
|
required |
substrate
|
SubstrateInterface
|
|
None
|
Returns:
Type | Description |
---|---|
ContractInstance
|
|
read(keypair: Keypair, method: str, args: dict = None, value: int = 0, gas_limit: int = None, block_hash: str = None) -> GenericContractExecResult
¶
Used to execute non-mutable messages to for example read data from the contract using getters. Can also be used to predict gas limits and 'dry-run' the execution when a mutable message is used. This method does not submit an extrinsic.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
keypair
|
Keypair
|
|
required |
method
|
str
|
|
required |
args
|
dict
|
|
None
|
value
|
int
|
|
0
|
gas_limit
|
int
|
|
None
|
block_hash
|
str
|
|
None
|
Returns:
Type | Description |
---|---|
GenericContractExecResult
|
|
exec(keypair: Keypair, method: str, args: dict = None, value: int = 0, gas_limit: Optional[dict] = None, storage_deposit_limit: int = None, wait_for_inclusion: bool = True, wait_for_finalization: bool = False) -> ContractExecutionReceipt
¶
Executes provided message by creating and submitting an extrinsic. To get a gas prediction or perform a
'dry-run' of executing this message, see ContractInstance.read
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
keypair
|
Keypair
|
|
required |
method
|
str
|
|
required |
args
|
dict
|
|
None
|
value
|
int
|
|
0
|
gas_limit
|
Optional[dict]
|
|
None
|
storage_deposit_limit
|
int
|
|
None
|
wait_for_inclusion
|
bool
|
|
True
|
wait_for_finalization
|
bool
|
|
False
|
Returns:
Type | Description |
---|---|
ContractExecutionReceipt
|
|