def deploy(self, permission=None, dont_broadcast=None, payer=None): '''Deploy the contract. ''' if not self.is_built(): raise errors.Error(''' Contract needs to be built before deployment. ''') return if dont_broadcast is None: dont_broadcast = self.dont_broadcast try: result = cleos_set.SetContract(self.account, self.contract_dir, self.wasm_file, self.abi_file, permission, self.expiration_sec, self.skip_sign, dont_broadcast, self.force_unique, self.max_cpu_usage, self.max_net_usage, self.ref_block, self.delay_sec, is_verbose=False, json=False) except errors.LowRamError as e: logger.TRACE(''' * RAM needed is {}.kByte, buying RAM {}.kByte. '''.format(e.needs_kbyte, e.deficiency_kbyte)) buy_ram_kbytes = str(e.deficiency_kbyte + 1) if not payer: payer = self.account payer.buy_ram(buy_ram_kbytes, self.account) result = cleos_set.SetContract(self.account, self.contract_dir, self.wasm_file, self.abi_file, permission, self.expiration_sec, self.skip_sign, dont_broadcast, self.force_unique, self.max_cpu_usage, self.max_net_usage, self.ref_block, self.delay_sec, is_verbose=False, json=False) logger.INFO(''' * Contract {} is deployed. '''.format(self.contract_dir)) self.contract = result
def clear(self): '''Remove contract on an account ''' result = cleos_set.SetContract(self.account, self.contract_dir, self.wasm_file, self.abi_file, True, json=False) self.contract = result
def set_contract(self, contract_dir, wasm_file="", abi_file="", clear=False, permission=None, expiration_sec=None, skip_sign=0, dont_broadcast=0, force_unique=0, max_cpu_usage=0, max_net_usage=0, ref_block=None, delay_sec=0): '''Create or update the contract. Call *EOSIO cleos* with the *set contract* command. Store the result, which is an object of the class :class:`.cleos_set.SetContract`, as the value of the *set_contract* attribute. Args: contract_dir (str): A path to a directory. wasm_file (str): The WASM file relative to the contract_dir. abi_file (str): The ABI file for the contract, relative to the contract-dir. clear (bool): Remove contract on an account. Default is False. See definitions of the remaining parameters: \ :func:`.cleos.common_parameters`. ''' stop_if_account_is_not_set(self) result = cleos_set.SetContract(self, contract_dir, wasm_file, abi_file, clear, permission, expiration_sec, skip_sign, dont_broadcast, force_unique, max_cpu_usage, max_net_usage, ref_block, delay_sec, is_verbose=False, json=True) logger.OUT(result) self.set_contract = result