Blockchain-Ethereum-Transaction
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
t/eip1559.t view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
use Blockchain::Ethereum::Transaction::EIP1559;
use Blockchain::Ethereum::Keystore::Key;
subtest "contract deployment => remix storage contract" => sub {
# storage contract from remix
my $compiled_contract =
'0x608060405234801561001057600080fd5b50610150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100a1565b6040518091039...
my $transaction = Blockchain::Ethereum::Transaction::EIP1559->new(
nonce => '0x0',
max_fee_per_gas => '0x9',
max_priority_fee_per_gas => '0x0',
gas_limit => '0x1DE2B9',
value => '0x0',
data => $compiled_contract,
chain_id => '0x539'
);
my $key = Blockchain::Ethereum::Keystore::Key->new(
private_key => pack "H*",
'4646464646464646464646464646464646464646464646464646464646464646'
);
$key->sign_transaction($transaction);
my $raw_transaction = $transaction->serialize;
is(unpack("H*", $raw_transaction),
'02f901c3820539808009831de2b98080b90170608060405234801561001057600080fd5b50610150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b604...
);
my $rlp = Blockchain::Ethereum::RLP->new();
# substring to remove the 02
my $decoded = $rlp->decode(substr($raw_transaction, 1));
is hex $decoded->[-3], 0, 'correct eip155 v value for contract creation transaction';
};
subtest "eth transfer" => sub {
my $transaction = Blockchain::Ethereum::Transaction::EIP1559->new(
nonce => '0x1',
max_fee_per_gas => '0x9',
max_priority_fee_per_gas => '0x0',
gas_limit => '0x5208',
to => '0x3535353535353535353535353535353535353535',
value => '0xDE0B6B3A7640000',
chain_id => '0x539'
);
my $key = Blockchain::Ethereum::Keystore::Key->new(
private_key => pack "H*",
'4646464646464646464646464646464646464646464646464646464646464646'
);
$key->sign_transaction($transaction);
my $raw_transaction = $transaction->serialize;
is(unpack("H*", $raw_transaction),
'02f86c820539018009825208943535353535353535353535353535353535353535880de0b6b3a764000080c080a070816c3d026c13a53e98e5dc414398e9dcdf23e440e777114a3e04810e0dfb5da07d732e6b7f847b06d2baed033772d78407da8f4010fa9300df79f2209ba4c7a0'
);
my $rlp = Blockchain::Ethereum::RLP->new();
# substring to remove the 02
my $decoded = $rlp->decode(substr($raw_transaction, 1));
is hex $decoded->[-3], 0, 'correct eip155 v value for contract creation transaction';
};
done_testing;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.536 second using v1.00-cache-2.02-grep-82fe00e-cpan-2cc899e4a130 )