コード例 #1
0
ファイル: contract.py プロジェクト: xiaoqge/eosfactory
    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
コード例 #2
0
ファイル: contract.py プロジェクト: bcskill/eosfactory
    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
コード例 #3
0
ファイル: account.py プロジェクト: tianyalangzi/eosfactory
    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