async def send_neo_vm_tx_pre_exec(self, contract_address: Union[str, bytes, bytearray], func: Union[AbiFunction, InvokeFunction], signer: Account = None, is_full: bool = False): contract_address = ensure_bytearray_contract_address(contract_address) tx = NeoVm.make_invoke_transaction(contract_address, func) if signer is not None: tx.sign_transaction(signer) return await self.send_raw_transaction_pre_exec(tx, is_full)
def send_neo_vm_tx_pre_exec(self, contract_address: str or bytes or bytearray, func: AbiFunction or NeoInvokeFunction, signer: Account = None, is_full: bool = False): contract_address = ensure_bytearray_contract_address(contract_address) tx = NeoVm.make_invoke_transaction(contract_address, func, b'', 0, 0) if signer is not None: tx.sign_transaction(signer) return self.send_raw_transaction_pre_exec(tx, is_full)
def __init__(self, rpc_address: str = '', restful_address: str = '', ws_address: str = '', default_signature_scheme: SignatureScheme = SignatureScheme.SHA256withECDSA): if not isinstance(default_signature_scheme, SignatureScheme): raise SDKException(ErrorCode.param_err('SignatureScheme object is required.')) self.__rpc = Rpc(rpc_address) self.__aio_rpc = AioRpc(rpc_address) self.__restful = Restful(restful_address) self.__aio_restful = AioRestful(restful_address) self.__websocket = Websocket(ws_address) self.__default_network = self.__rpc self.__default_aio_network = self.__aio_rpc self.__native_vm = NativeVm(self) self.__neo_vm = NeoVm(self) self.__service = Service(self) self.__wallet_manager = WalletManager() self.__default_signature_scheme = default_signature_scheme
async def send_neo_vm_tx_pre_exec(self, contract_address: Union[str, bytes, bytearray], func: Union[AbiFunction, InvokeFunction], signer: Account = None, is_full: bool = False): if isinstance(func, AbiFunction): params = BuildParams.serialize_abi_function(func) elif isinstance(func, InvokeFunction): params = func.create_invoke_code() else: raise SDKException( ErrorCode.other_error('the type of func is error.')) contract_address = ensure_bytearray_contract_address(contract_address) tx = NeoVm.make_invoke_transaction(contract_address, params) if signer is not None: tx.sign_transaction(signer) return await self.send_raw_transaction_pre_exec(tx, is_full)