當前位置: 首頁>>代碼示例>>Python>>正文


Python hexbytes.HexBytes方法代碼示例

本文整理匯總了Python中hexbytes.HexBytes方法的典型用法代碼示例。如果您正苦於以下問題:Python hexbytes.HexBytes方法的具體用法?Python hexbytes.HexBytes怎麽用?Python hexbytes.HexBytes使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在hexbytes的用法示例。


在下文中一共展示了hexbytes.HexBytes方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: _reset

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def _reset(self) -> None:
        self._accounts.clear()
        try:
            self._accounts = [Account(i) for i in web3.eth.accounts]
        except Exception:
            pass

        # Check if accounts were manually unlocked and add them
        try:
            unlocked_accounts = CONFIG.active_network["cmd_settings"]["unlock"]
            if not isinstance(unlocked_accounts, list):
                unlocked_accounts = [unlocked_accounts]
            for address in unlocked_accounts:
                if isinstance(address, int):
                    address = HexBytes(address.to_bytes(20, "big")).hex()
                account = Account(address)
                if account not in self._accounts:
                    self._accounts.append(account)
        except (ConnectionError, ValueError, KeyError):
            pass

        if self.default not in self._accounts:
            self.default = None 
開發者ID:eth-brownie,項目名稱:brownie,代碼行數:25,代碼來源:account.py

示例2: _to_wei

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def _to_wei(value: WeiInputTypes) -> int:
    original = value
    if value is None:
        return 0
    if isinstance(value, bytes):
        value = HexBytes(value).hex()
    if isinstance(value, float) and "e+" in str(value):
        num_str, dec = str(value).split("e+")
        num = num_str.split(".") if "." in num_str else [num_str, ""]
        return int(num[0] + num[1][: int(dec)] + "0" * (int(dec) - len(num[1])))
    if not isinstance(value, str):
        return _return_int(original, value)
    if value[:2] == "0x":
        return int(value, 16)
    for unit, dec in UNITS.items():
        if " " + unit not in value:
            continue
        num_str = value.split(" ")[0]
        num = num_str.split(".") if "." in num_str else [num_str, ""]
        return int(num[0] + num[1][: int(dec)] + "0" * (int(dec) - len(num[1])))
    return _return_int(original, value) 
開發者ID:eth-brownie,項目名稱:brownie,代碼行數:23,代碼來源:datatypes.py

示例3: web3_request_side_effect

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def web3_request_side_effect(method, params):
    if method == 'eth_gasPrice':
        return 20000000000
    elif method == 'eth_estimateGas':
        return 125000
    elif method == 'eth_getTransactionCount':
        return 1
    elif method == 'net_version':
        return 42
    elif method == 'eth_blockNumber':
        return 8400000
    elif method == 'eth_call':
        encoded_abi = encode_abi(abi_swaps_types, non_zero_balance_abi_contract)
        return encoded_abi.hex()
    elif method == 'eth_getFilterLogs':
        return [
            {
                'data': '0xbc2424e1dcdd2e425c555bcea35a54fd27cf540e60f18366e153e3fb7cf4490c',
                'transactionHash': HexBytes('0x65320e57b9d18ec08388896b029ad1495beb7a57c547440253a1dde01b4485f1'),
            }
        ]
    return None 
開發者ID:Lamden,項目名稱:clove,代碼行數:24,代碼來源:conftest.py

示例4: add_abi

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def add_abi(self, abi) -> int:
        """
        Add ABI array into the decoder collection, in this step the method id is generated from:
        sha3(function_name + '(' + param_type1 + ... + param_typeN + ')')
        :param abi: Array of dictionaries
        :return: Items added
        :rtype: int
        """
        added = 0
        abi_sha3 = sha3(str(abi))
        # Check that abi was not processed before
        if abi_sha3 not in self.added_abis:
            for item in abi:
                if item.get('name'):
                    method_id = self.get_method_id(item)
                    self.methods[method_id] = item
                    added += 1
                if item.get('type') == 'event':
                    self.events.add(HexBytes(method_id).hex())
            self.added_abis[abi_sha3] = None
        return added 
開發者ID:gnosis,項目名稱:django-eth-events,代碼行數:23,代碼來源:decoder.py

示例5: test_reorg_ok

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def test_reorg_ok(self):
        # Last block hash haven't changed
        block_hash_0 = remove_0x_head(HexBytes('0x000000000000000000000000'))
        cache.set('0x0', block_hash_0)
        cache.set('block_number', '0x1')
        Block.objects.create(block_hash=block_hash_0, block_number=0, timestamp=0)
        Daemon.objects.all().update(block_number=0)
        (had_reorg, _) = check_reorg(Daemon.get_solo().block_number)
        self.assertFalse(had_reorg)

        block_hash_1 = remove_0x_head(HexBytes('0x111111111111111111111111'))
        cache.set('0x1', block_hash_1)
        cache.set('block_number', '0x2')
        Block.objects.create(block_hash=block_hash_1, block_number=1, timestamp=0)
        Daemon.objects.all().update(block_number=1)
        (had_reorg, _) = check_reorg(Daemon.get_solo().block_number)
        self.assertFalse(had_reorg) 
開發者ID:gnosis,項目名稱:django-eth-events,代碼行數:19,代碼來源:test_reorg_detector.py

示例6: test_reorg_happened

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def test_reorg_happened(self):
        # Last block hash haven't changed
        block_hash_0 = remove_0x_head(HexBytes('0x000000000000000000000000'))
        cache.set('0x0', block_hash_0)
        cache.set('block_number', '0x1')
        Block.objects.create(block_hash=block_hash_0, block_number=0, timestamp=0)
        Daemon.objects.all().update(block_number=0)
        (had_reorg, _) = check_reorg(Daemon.get_solo().block_number)
        self.assertFalse(had_reorg)

        # Last block hash changed
        block_hash_1 = remove_0x_head(HexBytes('0x111111111111111111111111'))
        cache.set('0x1', block_hash_1)
        cache.set('block_number', '0x2')
        block_hash_reorg = '{:040d}'.format(1313)
        Block.objects.create(block_hash=block_hash_reorg, block_number=1, timestamp=0)
        Daemon.objects.all().update(block_number=1)
        (had_reorg, block_number) = check_reorg(Daemon.get_solo().block_number)
        self.assertTrue(had_reorg)
        self.assertEqual(block_number, 0)

        Block.objects.filter(block_number=1).update(block_hash=block_hash_1, timestamp=0)
        (had_reorg, _) = check_reorg(Daemon.get_solo().block_number)
        self.assertFalse(had_reorg) 
開發者ID:gnosis,項目名稱:django-eth-events,代碼行數:26,代碼來源:test_reorg_detector.py

示例7: test_reorg_mined_multiple_blocks_ok

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def test_reorg_mined_multiple_blocks_ok(self):
        # Last block hash haven't changed
        block_hash_0 = remove_0x_head(HexBytes('0x000000000000000000000000'))
        cache.set('0x0', block_hash_0)
        cache.set('block_number', '0x1')
        Block.objects.create(block_hash=block_hash_0, block_number=0, timestamp=0)
        Daemon.objects.all().update(block_number=0)
        (had_reorg, _) = check_reorg(Daemon.get_solo().block_number)
        self.assertFalse(had_reorg)

        # new block number changed more than one unit
        block_hash_1 = remove_0x_head(HexBytes('0x111111111111111111111111'))
        cache.set('0x1', block_hash_1)  # set_mocked_testrpc_block_hash
        cache.set('block_number', '0x9')
        Block.objects.create(block_hash=block_hash_1, block_number=1, timestamp=0)
        Daemon.objects.all().update(block_number=1)
        (had_reorg, _) = check_reorg(Daemon.get_solo().block_number)
        self.assertFalse(had_reorg) 
開發者ID:gnosis,項目名稱:django-eth-events,代碼行數:20,代碼來源:test_reorg_detector.py

示例8: test_remove_0x_head

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def test_remove_0x_head(self):
        self.assertEqual('b58d5491D17ebF46E9DB7F18CeA7C556AE80d53B',
                         remove_0x_head('0xb58d5491D17ebF46E9DB7F18CeA7C556AE80d53B'))

        self.assertEqual('b58d5491d17ebf46e9db7f18cea7c556ae80d53b',
                         remove_0x_head('0xb58d5491d17ebf46e9db7f18cea7c556ae80d53b'))

        self.assertEqual('b58d5491d17ebf46e9db7f18cea7c556ae80d53B',
                         remove_0x_head('0xb58d5491d17ebf46e9db7f18cea7c556ae80d53B'))

        self.assertEqual('b58d5491d17ebf46e9db7f18cea7c556ae80d53b',
                         remove_0x_head(HexBytes('0xb58d5491D17ebF46E9DB7F18CeA7C556AE80d53B')))

        self.assertEqual('b58d5491d17ebf46e9db7f18cea7c556ae80d53b',
                         remove_0x_head(HexBytes('0xb58d5491d17ebf46e9db7f18cea7c556ae80d53B')))

        self.assertEqual('b58d5491d17ebf46e9db7f18cea7c556ae80d53b',
                         remove_0x_head(HexBytes('0xb58d5491d17ebf46e9db7f18cea7c556ae80d53B')))

        self.assertEqual('b58d5491d17ebf46e9db7f18cea7c556ae80d53b',
                         remove_0x_head(HexBytes('b58d5491d17ebf46e9db7f18cea7c556ae80d53B'))) 
開發者ID:gnosis,項目名稱:django-eth-events,代碼行數:23,代碼來源:test_utils.py

示例9: test_json_encoder

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def test_json_encoder(self):
        base_address = 'b58d5491d17ebf46e9db7f18cea7c556ae80d53B'
        ipfs_hash_string = 'Qme4GBhwNJharbu83iNEsd5WnUhQYM1rBAgCgsSuFMdjcS'
        ipfs_hash_bytes = ipfs_hash_string.encode()  # b'...'

        json = {'ipfs_hash': ipfs_hash_bytes}
        # Simulate string encoding and convert back to dict
        encoded_json = loads(dumps(json, cls=JsonBytesEncoder))
        self.assertEqual(ipfs_hash_bytes.decode(), encoded_json['ipfs_hash'])

        json = {'ipfs_hash': ipfs_hash_string}
        # Simulate string encoding and convert back to dict
        encoded_json = loads(dumps(json, cls=JsonBytesEncoder))
        self.assertEqual(ipfs_hash_string, encoded_json['ipfs_hash'])

        hex_bytes_address = HexBytes(base_address)
        json = {'address': hex_bytes_address}
        encoded_json = loads(dumps(json, cls=JsonBytesEncoder))
        self.assertEqual(hex_bytes_address.hex(), encoded_json['address'])

        bytes_address = bytes.fromhex(base_address)
        json = {'address': bytes_address}
        encoded_json = loads(dumps(json, cls=JsonBytesEncoder))
        self.assertEqual('0x' + bytes_address.hex(), encoded_json['address']) 
開發者ID:gnosis,項目名稱:django-eth-events,代碼行數:26,代碼來源:test_utils.py

示例10: _serialize

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def _serialize(self, mixed):
        """Serializes mixed to JSON."""
        if isinstance(mixed, str):
            # serialize to validate is JSON
            mixed = json.loads(mixed)
        elif isinstance(mixed, dict):
            # web3 3.x -> 4.x: bytes() is not serializable
            # also pandas sometimes returns int64
            # first-degree HexBytes and np.int64 check as a final trap
            for attr, value in mixed.items():
                if isinstance(value, HexBytes):
                    mixed[attr] = value.hex().lower()
                elif isinstance(value, np.int64):
                    mixed[attr] = int(value)

        return json.dumps(mixed) 
開發者ID:ethgasstation,項目名稱:ethgasstation-backend,代碼行數:18,代碼來源:jsonexporter.py

示例11: has_matching_signatures

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def has_matching_signatures(self) -> bool:
        """
        Check that the signatures match the terms of trade.

        :return: True if the transaction has been signed by both parties
        """
        w3 = Web3()
        singable_message = encode_defunct(primitive=self.sender_hash)
        result = (
            w3.eth.account.recover_message(  # pylint: disable=no-member
                signable_message=singable_message,
                signature=HexBytes(self.sender_signature),
            )
            == self.sender_addr
        )
        counterparty_signable_message = encode_defunct(primitive=self.counterparty_hash)
        result = (
            result
            and w3.eth.account.recover_message(  # pylint: disable=no-member
                signable_message=counterparty_signable_message,
                signature=HexBytes(self.counterparty_signature),
            )
            == self.counterparty_addr
        )
        return result 
開發者ID:fetchai,項目名稱:agents-aea,代碼行數:27,代碼來源:game.py

示例12: check_successful_tx

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def check_successful_tx(
    web3: Web3, txid: HexBytes, timeout: int = 180
) -> Tuple[TxReceipt, TxData]:
    """See if transaction went through (Solidity code did not throw).
    :return: Transaction receipt and transaction info
    """
    receipt = wait_for_transaction_receipt(web3=web3, txid=txid, timeout=timeout)
    if receipt is None:
        raise RuntimeError("Could not obtain a transaction receipt.")
    txinfo = web3.eth.getTransaction(txid)
    if "status" not in receipt:
        raise KeyError(
            'A transaction receipt does not contain the "status" field. '
            "Does your chain have Byzantium rules enabled?"
        )
    if receipt["status"] == 0:
        raise ValueError("Status 0 indicates failure")
    if txinfo["gas"] == receipt["gasUsed"]:
        raise ValueError(f'Gas is completely used ({txinfo["gas"]}). Failure?')
    return receipt, txinfo 
開發者ID:raiden-network,項目名稱:raiden-contracts,代碼行數:22,代碼來源:transaction.py

示例13: main

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def main(rpc_url: URI, private_key: Path, token_address: ChecksumAddress, amount: int) -> None:
    web3 = Web3(HTTPProvider(rpc_url))
    privkey = get_private_key(private_key)
    assert privkey is not None
    owner = private_key_to_address(privkey)
    web3.middleware_onion.add(construct_sign_and_send_raw_middleware(privkey))
    token_code = web3.eth.getCode(token_address, "latest")
    assert token_code != HexBytes("")
    token_contract = ContractManager(contracts_precompiled_path()).get_contract(
        CONTRACT_CUSTOM_TOKEN
    )
    token_proxy = web3.eth.contract(address=token_address, abi=token_contract["abi"])
    tx_hash = token_proxy.functions.mint(amount).transact({"from": owner})
    print(f"Minting tokens for address {owner}")
    print(f"Transaction hash {encode_hex(tx_hash)}")
    balance = token_proxy.functions.balanceOf(owner).call()
    print(f"Balance of {owner}: {balance}") 
開發者ID:raiden-network,項目名稱:raiden-contracts,代碼行數:19,代碼來源:mint_tokens.py

示例14: channel_deposit

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def channel_deposit(token_network: Contract, assign_tokens: Callable) -> Callable:
    def get(
        channel_identifier: int,
        participant: HexAddress,
        deposit: int,
        partner: HexAddress,
        tx_from: Optional[HexAddress] = None,
    ) -> HexBytes:
        tx_from = tx_from or participant
        assign_tokens(tx_from, deposit)

        txn_hash = call_and_transact(
            token_network.functions.setTotalDeposit(
                channel_identifier=channel_identifier,
                participant=participant,
                total_deposit=deposit,
                partner=partner,
            ),
            {"from": tx_from},
        )
        return txn_hash

    return get 
開發者ID:raiden-network,項目名稱:raiden-contracts,代碼行數:25,代碼來源:channel.py

示例15: __hash_event

# 需要導入模塊: import hexbytes [as 別名]
# 或者: from hexbytes import HexBytes [as 別名]
def __hash_event(self, event):
        """Returns the sha256 hash of an event dict.

        Args:
            event (dict): Event dict to hash.

        Returns:
            str: Hexadecimal hash string.
        """

        # HACK: Be able to JSON serialize the AttributeDict/HexBytes objects https://github.com/ethereum/web3.py/issues/782

        class CustomJsonEncoder(json.JSONEncoder):
            def default(self, obj):   # pylint: disable=E0202
                if isinstance(obj, AttributeDict):
                    return obj.__dict__
                if isinstance(obj, HexBytes):
                    return obj.hex()
                return super().default(obj)

        stringified_event = json.dumps(dict(event), sort_keys=True, cls=CustomJsonEncoder)
        return sha256(stringified_event.encode()).hexdigest() 
開發者ID:omgnetwork,項目名稱:plasma-mvp,代碼行數:24,代碼來源:root_event_listener.py


注:本文中的hexbytes.HexBytes方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。