NAME

    Blockchain::Ethereum::Transaction - Ethereum transaction abstraction

VERSION

    version 0.009

SYNOPSIS

    Ethereum transaction abstraction for signing and generating raw
    transactions

        # parameters can be hexadecimal strings or Math::BigInt instances
        my $transaction = Blockchain::Ethereum::Transaction::EIP1559->new(
            nonce                    => '0x0',
            max_fee_per_gas          => '0x9',
            max_priority_fee_per_gas => '0x0',
            gas_limit                => '0x1DE2B9',
            to                       => '0x3535353535353535353535353535353535353535'
            value                    => Math::BigInt->new('1000000000000000000'),
            data                     => '0x',
            chain_id                 => '0x539'
        );
    
        # github.com/refeco/perl-ethereum-keystore
        my $key = Blockchain::Ethereum::Keystore::Key->new(
            private_key => pack "H*",
            '4646464646464646464646464646464646464646464646464646464646464646'
        );
    
        $key->sign_transaction($transaction);
    
        my $raw_transaction = $transaction->serialize;
    
        print unpack("H*", $raw_transaction);

    Standalone version:

        ethereum-raw-tx --tx-type=legacy --chain-id=0x1 --nonce=0x9 --gas-price=0x4A817C800 --gas-limit=0x5208 --to=0x3535353535353535353535353535353535353535 --value=0xDE0B6B3A7640000 --pk=0x4646464646464646464646464646464646464646464646464646464646464646

    Supported transaction types:

      * Legacy

      * EIP1559 Fee Market

METHODS

 serialize

    To be implemented by the child classes, encodes the given transaction
    parameters to RLP

    Returns the RLP encoded transaction bytes

 generate_v

    Generate the transaction v field using the given y-parity

      * $y_parity y-parity

    Returns the v hexadecimal value also sets the v fields from transaction

 hash

    SHA3 Hash the serialized transaction object

    Returns the SHA3 transaction hash bytes

AUTHOR

    Reginaldo Costa <refeco@cpan.org>

COPYRIGHT AND LICENSE

    This software is Copyright (c) 2023 by REFECO.

    This is free software, licensed under:

      The MIT (X11) License

