Пример #1
0
    (apply_formatter_to_array(to_hexbytes(32)), is_array_of_strings),
))

TRANSACTION_PARAM_FORMATTERS = {
    'chainId': apply_formatter_if(is_integer, str),
}


transaction_param_formatter = compose(
    remove_key_if('to', lambda txn: txn['to'] in {'', b'', None}),
    apply_formatters_to_dict(TRANSACTION_PARAM_FORMATTERS),
)

estimate_gas_without_block_id = apply_formatter_at_index(transaction_param_formatter, 0)
estimate_gas_with_block_id = combine_argument_formatters(
    transaction_param_formatter,
    block_number_formatter,
)


pythonic_middleware = construct_formatting_middleware(
    request_formatters={
        # Eth
        'eth_getBalance': apply_formatter_at_index(block_number_formatter, 1),
        'eth_getBlockByNumber': apply_formatter_at_index(block_number_formatter, 0),
        'eth_getBlockTransactionCountByNumber': apply_formatter_at_index(
            block_number_formatter,
            0,
        ),
        'eth_getCode': apply_formatter_at_index(block_number_formatter, 1),
        'eth_getStorageAt': apply_formatter_at_index(block_number_formatter, 2),
        'eth_getTransactionByBlockNumberAndIndex': compose(
Пример #2
0
 'platon_getStorageAt': apply_formatter_at_index(block_number_formatter, 2),
 'platon_getTransactionByBlockNumberAndIndex': compose(
     apply_formatter_at_index(block_number_formatter, 0),
     apply_formatter_at_index(integer_to_hex, 1),
 ),
 'platon_getTransactionCount': apply_formatter_at_index(block_number_formatter, 1),
 'platon_getUncleCountByBlockNumber': apply_formatter_at_index(block_number_formatter, 0),
 'platon_getUncleByBlockNumberAndIndex': compose(
     apply_formatter_at_index(block_number_formatter, 0),
     apply_formatter_at_index(integer_to_hex, 1),
 ),
 'platon_getUncleByBlockHashAndIndex': apply_formatter_at_index(integer_to_hex, 1),
 'platon_newFilter': apply_formatter_at_index(filter_params_formatter, 0),
 'platon_getLogs': apply_formatter_at_index(filter_params_formatter, 0),
 'platon_call': combine_argument_formatters(
     transaction_param_formatter,
     block_number_formatter,
 ),
 'platon_estimateGas': apply_formatter_at_index(transaction_param_formatter, 0),
 'platon_sendTransaction': apply_formatter_at_index(transaction_param_formatter, 0),
 # personal
 'personal_importRawKey': apply_formatter_at_index(
     compose(remove_0x_prefix, hexstr_if_str(to_hex)),
     0,
 ),
 'personal_sign': apply_formatter_at_index(text_if_str(to_hex), 0),
 'personal_ecRecover': apply_formatter_at_index(text_if_str(to_hex), 0),
 'personal_sendTransaction': apply_formatter_at_index(transaction_param_formatter, 0),
 # Snapshot and Revert
 'evm_revert': apply_formatter_at_index(integer_to_hex, 0),
 'trace_replayBlockTransactions': apply_formatter_at_index(block_number_formatter, 0),
 'trace_block': apply_formatter_at_index(block_number_formatter, 0),
Пример #3
0
    (apply_formatter_to_array(to_hexbytes(32)), is_array_of_strings),
))

TRANSACTION_PARAM_FORMATTERS = {
    'chainId': apply_formatter_if(is_integer, str),
}


transaction_param_formatter = compose(
    remove_key_if('to', lambda txn: txn['to'] in {'', b'', None}),
    apply_formatters_to_dict(TRANSACTION_PARAM_FORMATTERS),
)

estimate_gas_without_block_id = apply_formatter_at_index(transaction_param_formatter, 0)
estimate_gas_with_block_id = combine_argument_formatters(
    transaction_param_formatter,
    block_number_formatter,
)


pythonic_middleware = construct_formatting_middleware(
    request_formatters={
        # Eth
        'eth_getBalance': apply_formatter_at_index(block_number_formatter, 1),
        'eth_getBlockByNumber': apply_formatter_at_index(block_number_formatter, 0),
        'eth_getBlockTransactionCountByNumber': apply_formatter_at_index(
            block_number_formatter,
            0,
        ),
        'eth_getCode': apply_formatter_at_index(block_number_formatter, 1),
        'eth_getStorageAt': apply_formatter_at_index(block_number_formatter, 2),
        'eth_getTransactionByBlockNumberAndIndex': compose(