From a41cec8f55a2bc9d14cdefc4708063e5e802e789 Mon Sep 17 00:00:00 2001 From: Alex Barnsley <8069294+alexbarnsley@users.noreply.github.com> Date: Fri, 11 Jul 2025 03:17:51 +0100 Subject: [PATCH 01/18] refactor: eip 155 support --- src/Enums/Constants.php | 10 ------- .../Builder/AbstractTransactionBuilder.php | 14 ++------- src/Transactions/Deserializer.php | 29 ++++++++++--------- .../Types/AbstractTransaction.php | 7 ++--- src/Utils/TransactionUtils.php | 25 +++++++++------- 5 files changed, 35 insertions(+), 50 deletions(-) delete mode 100644 src/Enums/Constants.php diff --git a/src/Enums/Constants.php b/src/Enums/Constants.php deleted file mode 100644 index af628c22..00000000 --- a/src/Enums/Constants.php +++ /dev/null @@ -1,10 +0,0 @@ - BigDecimal::zero(), 'senderPublicKey' => '', 'gasPrice' => '5', + 'gasLimit' => 1_000_000, 'nonce' => '1', - 'network' => Network::get()->chainId(), - 'gas' => 1_000_000, 'data' => '', ]); } @@ -36,9 +35,9 @@ public static function new(?array $data = null): static return new static($data); } - public function gas(BigDecimal $gas): static + public function gasLimit(BigDecimal $gasLimit): static { - $this->transaction->data['gas'] = $gas; + $this->transaction->data['gasLimit'] = $gasLimit; return $this; } @@ -64,13 +63,6 @@ public function nonce(string $nonce): static return $this; } - public function network(int $network): static - { - $this->transaction->data['network'] = $network; - - return $this; - } - public function sign(string $passphrase): static { $privateKey = PrivateKey::fromPassphrase($passphrase); diff --git a/src/Transactions/Deserializer.php b/src/Transactions/Deserializer.php index 567b2868..e6cb7c74 100644 --- a/src/Transactions/Deserializer.php +++ b/src/Transactions/Deserializer.php @@ -5,8 +5,8 @@ namespace ArkEcosystem\Crypto\Transactions; use ArkEcosystem\Crypto\ByteBuffer\ByteBuffer; +use ArkEcosystem\Crypto\Configuration\Network; use ArkEcosystem\Crypto\Enums\AbiFunction; -use ArkEcosystem\Crypto\Enums\Constants; use ArkEcosystem\Crypto\Enums\ContractAbiType; use ArkEcosystem\Crypto\Helpers; use ArkEcosystem\Crypto\Transactions\Types\AbstractTransaction; @@ -62,23 +62,24 @@ public function deserialize(): AbstractTransaction $data = []; - $data['network'] = $this->parseNumber($decodedRlp[0]); - $data['nonce'] = $this->parseBigNumber($decodedRlp[1]); - $data['gasPrice'] = $this->parseNumber($decodedRlp[3]); - $data['gas'] = $this->parseNumber($decodedRlp[4]); - $data['to'] = $this->parseAddress($decodedRlp[5]); - $data['value'] = $this->parseBigNumber($decodedRlp[6]); - $data['data'] = $this->parseHex($decodedRlp[7]); - - if (count($decodedRlp) === 12) { - $data['v'] = $this->parseNumber($decodedRlp[9]) + 27; - $data['r'] = $this->parseHex($decodedRlp[10]); - $data['s'] = $this->parseHex($decodedRlp[11]); + $data['nonce'] = $this->parseBigNumber($decodedRlp[0]); + $data['gasPrice'] = $this->parseNumber($decodedRlp[1]); + $data['gasLimit'] = $this->parseNumber($decodedRlp[2]); + $data['to'] = $this->parseAddress($decodedRlp[3]); + $data['value'] = $this->parseBigNumber($decodedRlp[4]); + $data['data'] = $this->parseHex($decodedRlp[5]); + + if (count($decodedRlp) >= 9) { + $data['v'] = $this->parseNumber($decodedRlp[6]) - (Network::get()->chainId() * 2 + 35); + $data['r'] = $this->parseHex($decodedRlp[7]); + $data['s'] = $this->parseHex($decodedRlp[8]); } + // TODO: second signature handling + $transaction = $this->guessTransactionFromData($data); - $serializedHex = sprintf('%s%s', Constants::EIP_1559_PREFIX, mb_substr($this->encodedRlp, 2)); + $serializedHex = mb_substr($this->encodedRlp, 2); $transaction->serialized = new Buffer(hex2bin($serializedHex)); diff --git a/src/Transactions/Types/AbstractTransaction.php b/src/Transactions/Types/AbstractTransaction.php index 784ee2ec..c740c8a5 100644 --- a/src/Transactions/Types/AbstractTransaction.php +++ b/src/Transactions/Types/AbstractTransaction.php @@ -52,7 +52,7 @@ public function sign(PrivateKey $privateKey): static // Extract the recovery ID (an integer between 0 and 3) from the signature $recoveryId = $signature->getRecoveryId(); - $this->data['v'] = $recoveryId + 27; + $this->data['v'] = $recoveryId; $this->data['r'] = Helpers::gmpToHex($signature->getR()); $this->data['s'] = Helpers::gmpToHex($signature->getS()); @@ -96,9 +96,8 @@ public function toArray(): array { return array_filter([ 'gasPrice' => $this->data['gasPrice'], - 'network' => $this->data['network'] ?? Network::get()->chainId(), + 'gasLimit' => $this->data['gasLimit'], 'hash' => $this->data['hash'], - 'gas' => $this->data['gas'], 'nonce' => $this->data['nonce'], 'senderPublicKey' => $this->data['senderPublicKey'], 'to' => $this->data['to'] ?? null, @@ -136,7 +135,7 @@ private function getSignature(): CompactSignatureInterface Bitcoin::getGenerator() ); - $recoverId = $this->data['v'] - 27; + $recoverId = $this->data['v']; $r = gmp_init($this->data['r'], 16); $s = gmp_init($this->data['s'], 16); diff --git a/src/Utils/TransactionUtils.php b/src/Utils/TransactionUtils.php index 77004670..d722d097 100644 --- a/src/Utils/TransactionUtils.php +++ b/src/Utils/TransactionUtils.php @@ -4,7 +4,7 @@ namespace ArkEcosystem\Crypto\Utils; -use ArkEcosystem\Crypto\Enums\Constants; +use ArkEcosystem\Crypto\Configuration\Network; use BI\BigInteger; use BitWasp\Buffertools\Buffer; use BitWasp\Buffertools\BufferInterface; @@ -22,32 +22,35 @@ class TransactionUtils public static function toBuffer(array $transaction, bool $skipSignature = false): Buffer { $fields = [ - self::toBeArray($transaction['network'] ?? 0), self::toBeArray(isset($transaction['nonce']) ? $transaction['nonce'] : 0), - self::toBeArray(0), self::toBeArray($transaction['gasPrice'] ?? 0), - self::toBeArray($transaction['gas'] ?? 0), + self::toBeArray($transaction['gasLimit'] ?? 0), $transaction['to'] ?? '0x', self::toBeArray(isset($transaction['value']) ? $transaction['value'] : 0), isset($transaction['data']) && str_starts_with($transaction['data'], '0x') ? $transaction['data'] : ('0x'.($transaction['data'] ?? '')), - [], ]; - if (! $skipSignature) { - if (isset($transaction['v'], $transaction['r'], $transaction['s'])) { - $fields[] = self::toBeArray($transaction['v'] - 27); - $fields[] = '0x'.$transaction['r']; - $fields[] = '0x'.$transaction['s']; + if (! $skipSignature && isset($transaction['v'], $transaction['r'], $transaction['s']) && ! empty($transaction['v'])) { + $fields[] = self::toBeArray($transaction['v'] + Network::get()->chainId() * 2 + 35); + $fields[] = '0x'.$transaction['r']; + $fields[] = '0x'.$transaction['s']; + } else { + // Push chainId + 0s for r and s + $fields[] = self::toBeArray(Network::get()->chainId()); + $fields[] = self::toBeArray(0); + $fields[] = self::toBeArray(0); } } + // TODO: second signature handling + $encoded = RlpEncoder::encode($fields); $payload = Constants::EIP_1559_PREFIX.substr($encoded, 2); - return new Buffer(hex2bin($payload)); + return new Buffer(hex2bin(substr($encoded, 2))); } /** From 7918eab99b57291323e21cb744e32b2e88bf12c2 Mon Sep 17 00:00:00 2001 From: Alex Barnsley <8069294+alexbarnsley@users.noreply.github.com> Date: Fri, 11 Jul 2025 03:19:17 +0100 Subject: [PATCH 02/18] test --- tests/TestCase.php | 3 +- .../Builder/EvmCallBuilderTest.php | 12 +++---- .../Builder/MultipaymentBuilderTest.php | 30 ++++++------------ .../Builder/TransferBuilderTest.php | 25 ++++++--------- .../Builder/UnvoteBuilderTest.php | 15 +++------ .../UsernameRegistrationBuilderTest.php | 18 ++++------- .../UsernameResignationBuilderTest.php | 15 +++------ .../ValidatorRegistrationBuilderTest.php | 15 +++------ .../ValidatorResignationBuilderTest.php | 15 +++------ .../Transactions/Builder/VoteBuilderTest.php | 15 +++------ tests/Unit/Transactions/Types/EvmCallTest.php | 9 ++---- .../Transactions/Types/MultipaymentTest.php | 15 +++------ .../Unit/Transactions/Types/TransferTest.php | 12 +++---- tests/Unit/Transactions/Types/UnvoteTest.php | 9 ++---- .../Types/UsernameRegistrationTest.php | 9 ++---- .../Types/UsernameResignationTest.php | 9 ++---- .../Types/ValidatorRegistrationTest.php | 9 ++---- .../Types/ValidatorResignationTest.php | 9 ++---- tests/Unit/Transactions/Types/VoteTest.php | 9 ++---- tests/fixtures/message-sign.json | 2 +- .../transactions/evm_call/evm-sign.json | 31 +++++++++---------- .../evm_call/multipayment-empty.json | 31 +++++++++---------- .../evm_call/multipayment-single.json | 31 +++++++++---------- .../transactions/evm_call/multipayment.json | 31 +++++++++---------- .../transactions/evm_call/transfer-0.json | 31 +++++++++---------- .../evm_call/transfer-large-amount.json | 31 +++++++++---------- .../transactions/evm_call/transfer.json | 31 +++++++++---------- .../transactions/evm_call/unvote.json | 31 +++++++++---------- .../evm_call/username-registration.json | 31 +++++++++---------- .../evm_call/username-resignation.json | 31 +++++++++---------- .../evm_call/validator-registration.json | 31 +++++++++---------- .../evm_call/validator-resignation.json | 31 +++++++++---------- .../fixtures/transactions/evm_call/vote.json | 31 +++++++++---------- 33 files changed, 281 insertions(+), 377 deletions(-) diff --git a/tests/TestCase.php b/tests/TestCase.php index 7688e76b..f05c90de 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -37,11 +37,10 @@ protected function assertTransaction(array $fixture): AbstractTransaction { $actual = $this->assertDeserialized($fixture, [ 'hash', - 'network', 'nonce', 'value', 'gasPrice', - 'gas', + 'gasLimit', 'contractId', 'senderPublicKey', 'from', diff --git a/tests/Unit/Transactions/Builder/EvmCallBuilderTest.php b/tests/Unit/Transactions/Builder/EvmCallBuilderTest.php index 3acdeae3..2e9f49e9 100644 --- a/tests/Unit/Transactions/Builder/EvmCallBuilderTest.php +++ b/tests/Unit/Transactions/Builder/EvmCallBuilderTest.php @@ -10,10 +10,9 @@ $builder = EvmCallBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) ->payload($fixture['data']['data']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->to('0xE536720791A7DaDBeBdBCD8c8546fb0791a11901') ->sign($this->passphrase); @@ -25,10 +24,9 @@ $builder = EvmCallBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) ->payload($fixture['data']['data']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->to('0xE536720791A7DaDBeBdBCD8c8546fb0791a11901') ->sign($this->passphrase); @@ -40,18 +38,16 @@ $builder = EvmCallBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) ->payload($fixture['data']['data']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->to('0xE536720791A7DaDBeBdBCD8c8546fb0791a11901') ->sign($this->passphrase); expect($builder->toArray())->toBe([ 'gasPrice' => $builder->transaction->data['gasPrice'], - 'network' => $builder->transaction->data['network'], + 'gasLimit' => $builder->transaction->data['gasLimit'], 'hash' => $builder->transaction->data['hash'], - 'gas' => $builder->transaction->data['gas'], 'nonce' => $builder->transaction->data['nonce'], 'senderPublicKey' => $builder->transaction->data['senderPublicKey'], 'to' => '0xE536720791A7DaDBeBdBCD8c8546fb0791a11901', diff --git a/tests/Unit/Transactions/Builder/MultipaymentBuilderTest.php b/tests/Unit/Transactions/Builder/MultipaymentBuilderTest.php index 5dfd70e2..1c9419e3 100644 --- a/tests/Unit/Transactions/Builder/MultipaymentBuilderTest.php +++ b/tests/Unit/Transactions/Builder/MultipaymentBuilderTest.php @@ -10,17 +10,15 @@ $builder = MultipaymentBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->pay('0x6f0182a0cc707b055322ccf6d4cb6a5aff1aeb22', UnitConverter::parseUnits('100000', 'wei')) ->pay('0xc3bbe9b1cee1ff85ad72b87414b0e9b7f2366763', UnitConverter::parseUnits('200000', 'wei')) ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); @@ -37,16 +35,14 @@ $builder = MultipaymentBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->pay('0x6f0182a0cc707b055322ccf6d4cb6a5aff1aeb22', UnitConverter::parseUnits('100000', 'wei')) ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); @@ -63,15 +59,13 @@ $builder = MultipaymentBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); @@ -90,8 +84,7 @@ // $payload = (new AbiEncoder(ContractAbiType::MULTIPAYMENT))->encodeFunctionCall('pay', [['0x8233F6Df6449D7655f4643D2E752DC8D2283fAd5'], ['1000000000000000000']]); // $tx = (new Multipayment(['data' => $payload])); // $tx->data['nonce'] = $fixture['data']['nonce']; -// $tx->data['network'] = $fixture['data']['network']; -// $tx->data['gas'] = $fixture['data']['gas']; +// $tx->data['gasLimit'] = $fixture['data']['gasLimit']; // $tx->data['gasPrice'] = $fixture['data']['gasPrice']; // $tx->sign(PrivateKey::fromPassphrase($this->passphrase)); // @@ -103,9 +96,8 @@ $builder = MultipaymentBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->pay('0x6f0182a0cc707b055322ccf6d4cb6a5aff1aeb22', UnitConverter::parseUnits('100000', 'wei')) ->pay('0xc3bbe9b1cee1ff85ad72b87414b0e9b7f2366763', UnitConverter::parseUnits('200000', 'wei')) ->sign($this->passphrase); @@ -118,18 +110,16 @@ $builder = MultipaymentBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->pay('0x6f0182a0cc707b055322ccf6d4cb6a5aff1aeb22', UnitConverter::parseUnits('100000', 'wei')) ->pay('0xc3bbe9b1cee1ff85ad72b87414b0e9b7f2366763', UnitConverter::parseUnits('200000', 'wei')) ->sign($this->passphrase); expect($builder->toArray())->toBe([ 'gasPrice' => $builder->transaction->data['gasPrice'], - 'network' => $builder->transaction->data['network'], + 'gasLimit' => $builder->transaction->data['gasLimit'], 'hash' => $builder->transaction->data['hash'], - 'gas' => $builder->transaction->data['gas'], 'nonce' => $builder->transaction->data['nonce'], 'senderPublicKey' => $builder->transaction->data['senderPublicKey'], 'to' => $builder->transaction->data['to'], diff --git a/tests/Unit/Transactions/Builder/TransferBuilderTest.php b/tests/Unit/Transactions/Builder/TransferBuilderTest.php index f4af9aab..d7f20489 100644 --- a/tests/Unit/Transactions/Builder/TransferBuilderTest.php +++ b/tests/Unit/Transactions/Builder/TransferBuilderTest.php @@ -10,17 +10,15 @@ $builder = TransferBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->to($fixture['data']['to']) ->value(UnitConverter::parseUnits($fixture['data']['value'], 'wei')) ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); expect($builder->transaction->data['to'])->toBe($fixture['data']['to']); expect((string) $builder->transaction->data['value'])->toBe((string) $fixture['data']['value']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); @@ -39,17 +37,15 @@ $builder = TransferBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->to($fixture['data']['to']) ->value(UnitConverter::parseUnits($fixture['data']['value'], 'wei')) ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); expect($builder->transaction->data['to'])->toBe($fixture['data']['to']); expect((string) $builder->transaction->data['value'])->toBe((string) $fixture['data']['value']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); @@ -66,15 +62,15 @@ it('should handle unit converter', function () { $builder = TransferBuilder::new() ->gasPrice(UnitConverter::parseUnits(5, 'gwei')) + ->gasLimit(UnitConverter::parseUnits(0.1, 'gwei')) ->nonce('1') - ->gas(UnitConverter::parseUnits(0.1, 'gwei')) ->to($this->address) ->value(UnitConverter::parseUnits(10, 'ark')) ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe('5000000000'); expect($builder->transaction->data['nonce'])->toBe('1'); - expect((string) $builder->transaction->data['gas'])->toBe('100000000'); + expect((string) $builder->transaction->data['gasLimit'])->toBe('100000000'); expect((string) $builder->transaction->data['value'])->toBe('10000000000000000000'); expect($builder->verify())->toBeTrue(); @@ -85,9 +81,8 @@ $builder = TransferBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->to($fixture['data']['to']) ->value(UnitConverter::parseUnits($fixture['data']['value'], 'wei')) ->sign($this->passphrase); @@ -100,18 +95,16 @@ $builder = TransferBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->to($fixture['data']['to']) ->value(UnitConverter::parseUnits($fixture['data']['value'], 'wei')) ->sign($this->passphrase); expect($builder->toArray())->toBe([ 'gasPrice' => $builder->transaction->data['gasPrice'], - 'network' => $builder->transaction->data['network'], + 'gasLimit' => $builder->transaction->data['gasLimit'], 'hash' => $builder->transaction->data['hash'], - 'gas' => $builder->transaction->data['gas'], 'nonce' => $builder->transaction->data['nonce'], 'senderPublicKey' => $builder->transaction->data['senderPublicKey'], 'to' => $fixture['data']['to'], diff --git a/tests/Unit/Transactions/Builder/UnvoteBuilderTest.php b/tests/Unit/Transactions/Builder/UnvoteBuilderTest.php index 6d353557..89a08617 100644 --- a/tests/Unit/Transactions/Builder/UnvoteBuilderTest.php +++ b/tests/Unit/Transactions/Builder/UnvoteBuilderTest.php @@ -10,15 +10,13 @@ $builder = UnvoteBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); @@ -35,9 +33,8 @@ $builder = UnvoteBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect((string) $builder)->toBe($builder->toJson()); @@ -48,16 +45,14 @@ $builder = UnvoteBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect($builder->toArray())->toBe([ 'gasPrice' => $builder->transaction->data['gasPrice'], - 'network' => $builder->transaction->data['network'], + 'gasLimit' => $builder->transaction->data['gasLimit'], 'hash' => $builder->transaction->data['hash'], - 'gas' => $builder->transaction->data['gas'], 'nonce' => $builder->transaction->data['nonce'], 'senderPublicKey' => $builder->transaction->data['senderPublicKey'], 'to' => $builder->transaction->data['to'], diff --git a/tests/Unit/Transactions/Builder/UsernameRegistrationBuilderTest.php b/tests/Unit/Transactions/Builder/UsernameRegistrationBuilderTest.php index 4780c22b..af00b657 100644 --- a/tests/Unit/Transactions/Builder/UsernameRegistrationBuilderTest.php +++ b/tests/Unit/Transactions/Builder/UsernameRegistrationBuilderTest.php @@ -11,16 +11,14 @@ $builder = UsernameRegistrationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->username('fixture') ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); @@ -38,9 +36,8 @@ UsernameRegistrationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->username('this_is_a_very_long_username_that_is_invalid') ->sign($this->passphrase); }; @@ -56,9 +53,8 @@ $builder = UsernameRegistrationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->username('fixture') ->sign($this->passphrase); @@ -70,17 +66,15 @@ $builder = UsernameRegistrationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->username('fixture') ->sign($this->passphrase); expect($builder->toArray())->toBe([ 'gasPrice' => $builder->transaction->data['gasPrice'], - 'network' => $builder->transaction->data['network'], + 'gasLimit' => $builder->transaction->data['gasLimit'], 'hash' => $builder->transaction->data['hash'], - 'gas' => $builder->transaction->data['gas'], 'nonce' => $builder->transaction->data['nonce'], 'senderPublicKey' => $builder->transaction->data['senderPublicKey'], 'to' => $builder->transaction->data['to'], diff --git a/tests/Unit/Transactions/Builder/UsernameResignationBuilderTest.php b/tests/Unit/Transactions/Builder/UsernameResignationBuilderTest.php index b2c9f1b1..3287bc73 100644 --- a/tests/Unit/Transactions/Builder/UsernameResignationBuilderTest.php +++ b/tests/Unit/Transactions/Builder/UsernameResignationBuilderTest.php @@ -10,15 +10,13 @@ $builder = UsernameResignationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); @@ -35,9 +33,8 @@ $builder = UsernameResignationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect((string) $builder)->toBe($builder->toJson()); @@ -48,16 +45,14 @@ $builder = UsernameResignationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect($builder->toArray())->toBe([ 'gasPrice' => $builder->transaction->data['gasPrice'], - 'network' => $builder->transaction->data['network'], + 'gasLimit' => $builder->transaction->data['gasLimit'], 'hash' => $builder->transaction->data['hash'], - 'gas' => $builder->transaction->data['gas'], 'nonce' => $builder->transaction->data['nonce'], 'senderPublicKey' => $builder->transaction->data['senderPublicKey'], 'to' => $builder->transaction->data['to'], diff --git a/tests/Unit/Transactions/Builder/ValidatorRegistrationBuilderTest.php b/tests/Unit/Transactions/Builder/ValidatorRegistrationBuilderTest.php index 515af0d4..2374db18 100644 --- a/tests/Unit/Transactions/Builder/ValidatorRegistrationBuilderTest.php +++ b/tests/Unit/Transactions/Builder/ValidatorRegistrationBuilderTest.php @@ -10,16 +10,14 @@ $builder = ValidatorRegistrationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->validatorPublicKey('30954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c0624') ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); @@ -36,9 +34,8 @@ $builder = ValidatorRegistrationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->validatorPublicKey('30954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c0624') ->sign($this->passphrase); @@ -50,17 +47,15 @@ $builder = ValidatorRegistrationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->validatorPublicKey('30954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c0624') ->sign($this->passphrase); expect($builder->toArray())->toBe([ 'gasPrice' => $builder->transaction->data['gasPrice'], - 'network' => $builder->transaction->data['network'], + 'gasLimit' => $builder->transaction->data['gasLimit'], 'hash' => $builder->transaction->data['hash'], - 'gas' => $builder->transaction->data['gas'], 'nonce' => $builder->transaction->data['nonce'], 'senderPublicKey' => $builder->transaction->data['senderPublicKey'], 'to' => $builder->transaction->data['to'], diff --git a/tests/Unit/Transactions/Builder/ValidatorResignationBuilderTest.php b/tests/Unit/Transactions/Builder/ValidatorResignationBuilderTest.php index 40409804..51b82d6a 100644 --- a/tests/Unit/Transactions/Builder/ValidatorResignationBuilderTest.php +++ b/tests/Unit/Transactions/Builder/ValidatorResignationBuilderTest.php @@ -10,15 +10,13 @@ $builder = ValidatorResignationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); @@ -35,9 +33,8 @@ $builder = ValidatorResignationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect((string) $builder)->toBe($builder->toJson()); @@ -49,15 +46,13 @@ $builder = ValidatorResignationBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->sign($this->passphrase); expect($builder->toArray())->toBe([ 'gasPrice' => $builder->transaction->data['gasPrice'], - 'network' => $builder->transaction->data['network'], + 'gasLimit' => $builder->transaction->data['gasLimit'], 'hash' => $builder->transaction->data['hash'], - 'gas' => $builder->transaction->data['gas'], 'nonce' => $builder->transaction->data['nonce'], 'senderPublicKey' => $builder->transaction->data['senderPublicKey'], 'to' => $builder->transaction->data['to'], diff --git a/tests/Unit/Transactions/Builder/VoteBuilderTest.php b/tests/Unit/Transactions/Builder/VoteBuilderTest.php index 993dee2e..cd331119 100644 --- a/tests/Unit/Transactions/Builder/VoteBuilderTest.php +++ b/tests/Unit/Transactions/Builder/VoteBuilderTest.php @@ -10,16 +10,14 @@ $builder = VoteBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) ->vote('0xC3bBE9B1CeE1ff85Ad72b87414B0E9B7F2366763') - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect($builder->transaction->data['network'])->toBe($fixture['data']['network']); - expect((string) $builder->transaction->data['gas'])->toBe((string) $fixture['data']['gas']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); @@ -36,10 +34,9 @@ $builder = VoteBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) ->vote('0xC3bBE9B1CeE1ff85Ad72b87414B0E9B7F2366763') - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect((string) $builder)->toBe($builder->toJson()); @@ -50,17 +47,15 @@ $builder = VoteBuilder::new() ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) ->nonce($fixture['data']['nonce']) - ->network($fixture['data']['network']) ->vote('0xC3bBE9B1CeE1ff85Ad72b87414B0E9B7F2366763') - ->gas(UnitConverter::parseUnits($fixture['data']['gas'], 'wei')) ->sign($this->passphrase); expect($builder->toArray())->toBe([ 'gasPrice' => $builder->transaction->data['gasPrice'], - 'network' => $builder->transaction->data['network'], + 'gasLimit' => $builder->transaction->data['gasLimit'], 'hash' => $builder->transaction->data['hash'], - 'gas' => $builder->transaction->data['gas'], 'nonce' => $builder->transaction->data['nonce'], 'senderPublicKey' => $builder->transaction->data['senderPublicKey'], 'to' => $builder->transaction->data['to'], diff --git a/tests/Unit/Transactions/Types/EvmCallTest.php b/tests/Unit/Transactions/Types/EvmCallTest.php index d68a028b..2265a34e 100644 --- a/tests/Unit/Transactions/Types/EvmCallTest.php +++ b/tests/Unit/Transactions/Types/EvmCallTest.php @@ -55,9 +55,8 @@ it('should convert to an array', function () { expect($this->subject->toArray())->toBe([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -72,10 +71,9 @@ it('should omit value if null when converting to array', function () { $this->subject->data['gasPrice'] = null; $this->subject->data['hash'] = null; - $this->subject->data['gas'] = null; + $this->subject->data['gasLimit'] = null; expect($this->subject->toArray())->toBe([ - 'network' => $this->subject->data['network'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -90,9 +88,8 @@ it('should convert to json', function () { expect($this->subject->toJson())->toBe(json_encode([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], diff --git a/tests/Unit/Transactions/Types/MultipaymentTest.php b/tests/Unit/Transactions/Types/MultipaymentTest.php index fc8f0ea2..343b5267 100644 --- a/tests/Unit/Transactions/Types/MultipaymentTest.php +++ b/tests/Unit/Transactions/Types/MultipaymentTest.php @@ -55,9 +55,8 @@ it('should convert to an array', function () { expect($this->subject->toArray())->toBe([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -72,10 +71,9 @@ it('should omit value if null when converting to array', function () { $this->subject->data['gasPrice'] = null; $this->subject->data['hash'] = null; - $this->subject->data['gas'] = null; + $this->subject->data['gasLimit'] = null; expect($this->subject->toArray())->toBe([ - 'network' => $this->subject->data['network'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -90,9 +88,8 @@ it('should convert to json', function () { expect($this->subject->toJson())->toBe(json_encode([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -120,9 +117,8 @@ $subject = new Multipayment($fixture['data']); expect((string) $subject->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $subject->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($subject->data['nonce'])->toBe($fixture['data']['nonce']); - expect($subject->data['network'])->toBe($fixture['data']['network']); - expect((string) $subject->data['gas'])->toBe((string) $fixture['data']['gas']); expect($subject->data['v'])->toBe($fixture['data']['v']); expect($subject->data['r'])->toBe($fixture['data']['r']); expect($subject->data['s'])->toBe($fixture['data']['s']); @@ -140,9 +136,8 @@ $subject = new Multipayment($fixture['data']); expect((string) $subject->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $subject->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($subject->data['nonce'])->toBe($fixture['data']['nonce']); - expect($subject->data['network'])->toBe($fixture['data']['network']); - expect((string) $subject->data['gas'])->toBe((string) $fixture['data']['gas']); expect($subject->data['v'])->toBe($fixture['data']['v']); expect($subject->data['r'])->toBe($fixture['data']['r']); expect($subject->data['s'])->toBe($fixture['data']['s']); diff --git a/tests/Unit/Transactions/Types/TransferTest.php b/tests/Unit/Transactions/Types/TransferTest.php index 76cfd523..05927369 100644 --- a/tests/Unit/Transactions/Types/TransferTest.php +++ b/tests/Unit/Transactions/Types/TransferTest.php @@ -55,9 +55,8 @@ it('should convert to an array', function () { expect($this->subject->toArray())->toBe([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -72,10 +71,9 @@ it('should omit value if null when converting to array', function () { $this->subject->data['gasPrice'] = null; $this->subject->data['hash'] = null; - $this->subject->data['gas'] = null; + $this->subject->data['gasLimit'] = null; expect($this->subject->toArray())->toBe([ - 'network' => $this->subject->data['network'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -90,9 +88,8 @@ it('should convert to json', function () { expect($this->subject->toJson())->toBe(json_encode([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -114,9 +111,8 @@ $subject = new Transfer($fixture['data']); expect((string) $subject->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $subject->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); expect($subject->data['nonce'])->toBe($fixture['data']['nonce']); - expect($subject->data['network'])->toBe($fixture['data']['network']); - expect((string) $subject->data['gas'])->toBe((string) $fixture['data']['gas']); expect($subject->data['to'])->toBe($fixture['data']['to']); expect((string) $subject->data['value'])->toBe((string) $fixture['data']['value']); expect($subject->data['v'])->toBe($fixture['data']['v']); diff --git a/tests/Unit/Transactions/Types/UnvoteTest.php b/tests/Unit/Transactions/Types/UnvoteTest.php index a3132b61..5dde8c85 100644 --- a/tests/Unit/Transactions/Types/UnvoteTest.php +++ b/tests/Unit/Transactions/Types/UnvoteTest.php @@ -55,9 +55,8 @@ it('should convert to an array', function () { expect($this->subject->toArray())->toBe([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -72,10 +71,9 @@ it('should omit value if null when converting to array', function () { $this->subject->data['gasPrice'] = null; $this->subject->data['hash'] = null; - $this->subject->data['gas'] = null; + $this->subject->data['gasLimit'] = null; expect($this->subject->toArray())->toBe([ - 'network' => $this->subject->data['network'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -90,9 +88,8 @@ it('should convert to json', function () { expect($this->subject->toJson())->toBe(json_encode([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], diff --git a/tests/Unit/Transactions/Types/UsernameRegistrationTest.php b/tests/Unit/Transactions/Types/UsernameRegistrationTest.php index 4523c037..3784261c 100644 --- a/tests/Unit/Transactions/Types/UsernameRegistrationTest.php +++ b/tests/Unit/Transactions/Types/UsernameRegistrationTest.php @@ -55,9 +55,8 @@ it('should convert to an array', function () { expect($this->subject->toArray())->toBe([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -72,10 +71,9 @@ it('should omit value if null when converting to array', function () { $this->subject->data['gasPrice'] = null; $this->subject->data['hash'] = null; - $this->subject->data['gas'] = null; + $this->subject->data['gasLimit'] = null; expect($this->subject->toArray())->toBe([ - 'network' => $this->subject->data['network'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -90,9 +88,8 @@ it('should convert to json', function () { expect($this->subject->toJson())->toBe(json_encode([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], diff --git a/tests/Unit/Transactions/Types/UsernameResignationTest.php b/tests/Unit/Transactions/Types/UsernameResignationTest.php index 2b8e7024..8fc8f806 100644 --- a/tests/Unit/Transactions/Types/UsernameResignationTest.php +++ b/tests/Unit/Transactions/Types/UsernameResignationTest.php @@ -55,9 +55,8 @@ it('should convert to an array', function () { expect($this->subject->toArray())->toBe([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -72,10 +71,9 @@ it('should omit value if null when converting to array', function () { $this->subject->data['gasPrice'] = null; $this->subject->data['hash'] = null; - $this->subject->data['gas'] = null; + $this->subject->data['gasLimit'] = null; expect($this->subject->toArray())->toBe([ - 'network' => $this->subject->data['network'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -90,9 +88,8 @@ it('should convert to json', function () { expect($this->subject->toJson())->toBe(json_encode([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], diff --git a/tests/Unit/Transactions/Types/ValidatorRegistrationTest.php b/tests/Unit/Transactions/Types/ValidatorRegistrationTest.php index f4ef37e5..355e3fbe 100644 --- a/tests/Unit/Transactions/Types/ValidatorRegistrationTest.php +++ b/tests/Unit/Transactions/Types/ValidatorRegistrationTest.php @@ -55,9 +55,8 @@ it('should convert to an array', function () { expect($this->subject->toArray())->toBe([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -72,10 +71,9 @@ it('should omit value if null when converting to array', function () { $this->subject->data['gasPrice'] = null; $this->subject->data['hash'] = null; - $this->subject->data['gas'] = null; + $this->subject->data['gasLimit'] = null; expect($this->subject->toArray())->toBe([ - 'network' => $this->subject->data['network'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -90,9 +88,8 @@ it('should convert to json', function () { expect($this->subject->toJson())->toBe(json_encode([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], diff --git a/tests/Unit/Transactions/Types/ValidatorResignationTest.php b/tests/Unit/Transactions/Types/ValidatorResignationTest.php index b17e1546..13724d16 100644 --- a/tests/Unit/Transactions/Types/ValidatorResignationTest.php +++ b/tests/Unit/Transactions/Types/ValidatorResignationTest.php @@ -55,9 +55,8 @@ it('should convert to an array', function () { expect($this->subject->toArray())->toBe([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -72,10 +71,9 @@ it('should omit value if null when converting to array', function () { $this->subject->data['gasPrice'] = null; $this->subject->data['hash'] = null; - $this->subject->data['gas'] = null; + $this->subject->data['gasLimit'] = null; expect($this->subject->toArray())->toBe([ - 'network' => $this->subject->data['network'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -90,9 +88,8 @@ it('should convert to json', function () { expect($this->subject->toJson())->toBe(json_encode([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], diff --git a/tests/Unit/Transactions/Types/VoteTest.php b/tests/Unit/Transactions/Types/VoteTest.php index fdbb51b9..e46a849b 100644 --- a/tests/Unit/Transactions/Types/VoteTest.php +++ b/tests/Unit/Transactions/Types/VoteTest.php @@ -55,9 +55,8 @@ it('should convert to an array', function () { expect($this->subject->toArray())->toBe([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -72,10 +71,9 @@ it('should omit value if null when converting to array', function () { $this->subject->data['gasPrice'] = null; $this->subject->data['hash'] = null; - $this->subject->data['gas'] = null; + $this->subject->data['gasLimit'] = null; expect($this->subject->toArray())->toBe([ - 'network' => $this->subject->data['network'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], @@ -90,9 +88,8 @@ it('should convert to json', function () { expect($this->subject->toJson())->toBe(json_encode([ 'gasPrice' => $this->subject->data['gasPrice'], - 'network' => $this->subject->data['network'], + 'gasLimit' => $this->subject->data['gasLimit'], 'hash' => $this->subject->data['hash'], - 'gas' => $this->subject->data['gas'], 'nonce' => $this->subject->data['nonce'], 'senderPublicKey' => $this->subject->data['senderPublicKey'], 'to' => $this->subject->data['to'], diff --git a/tests/fixtures/message-sign.json b/tests/fixtures/message-sign.json index 50bc350e..88ad8eaa 100644 --- a/tests/fixtures/message-sign.json +++ b/tests/fixtures/message-sign.json @@ -1,5 +1,5 @@ { "message": "Hello, world!", "publicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "signature": "0e2e53409be748834cac44052817ecef569b429a0492aa6bbc0d934eb71a09547e77aeef33d45669bbcba0498149f0e2b637fe8905186e08a5410c6f2b013bb41b" + "signature": "0e2e53409be748834cac44052817ecef569b429a0492aa6bbc0d934eb71a09547e77aeef33d45669bbcba0498149f0e2b637fe8905186e08a5410c6f2b013bb400" } diff --git a/tests/fixtures/transactions/evm_call/evm-sign.json b/tests/fixtures/transactions/evm_call/evm-sign.json index f4a4176b..4d532bf6 100644 --- a/tests/fixtures/transactions/evm_call/evm-sign.json +++ b/tests/fixtures/transactions/evm_call/evm-sign.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0xE536720791A7DaDBeBdBCD8c8546fb0791a11901", - "value": "0", - "data": "a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064", - "v": 28, - "r": "8cd7afafdfaaa6c4b6c97e49888dff89713c99f8b1324693ef4427ce88994bbe", - "s": "01c589bb8d3bc908aaee56d64ca35458f2cebf977bbc29180c574aba8bc12b0d", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "85cdc2ae6cd4569dd1b5b11df10fc409b3996864032d6acf87ff907286f40a03" - }, - "serialized": "02f8af822710018085012a05f20083030d4094e536720791a7dadbebdbcd8c8546fb0791a1190180b844a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064c001a08cd7afafdfaaa6c4b6c97e49888dff89713c99f8b1324693ef4427ce88994bbea001c589bb8d3bc908aaee56d64ca35458f2cebf977bbc29180c574aba8bc12b0d" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0xE536720791A7DaDBeBdBCD8c8546fb0791a11901", + "value": "0", + "data": "a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064", + "v": 0, + "r": "14060f3bca79284de0a4bc8b4cf85a3377b058e3d5ee90b11b36c1e7eb76b3e6", + "s": "77a5c3b2ab083a0ff73d81ac00c7e2fb2c6bcd51276151b8745ef771379e22f2", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "244ab0d2ee5ebf4d503dd8e5d81222eadba8b2299c12ecee1649fcd2dd6e4714" + }, + "serialized": "f8ac0185012a05f20083030d4094e536720791a7dadbebdbcd8c8546fb0791a1190180b844a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064825c6ba014060f3bca79284de0a4bc8b4cf85a3377b058e3d5ee90b11b36c1e7eb76b3e6a077a5c3b2ab083a0ff73d81ac00c7e2fb2c6bcd51276151b8745ef771379e22f2" } diff --git a/tests/fixtures/transactions/evm_call/multipayment-empty.json b/tests/fixtures/transactions/evm_call/multipayment-empty.json index a35a1edd..6c0add78 100644 --- a/tests/fixtures/transactions/evm_call/multipayment-empty.json +++ b/tests/fixtures/transactions/evm_call/multipayment-empty.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", - "value": "0", - "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "v": 27, - "r": "cbec73e1cba1177789adf44fcd3cea797d132563635fae211c350acd7c328046", - "s": "216eabb6cd1eb5c0000e7eb74f66595bd5b688f43dd646f15f33e3827c8c966b", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "555fcaca65f9319c638ebb15c5ffdee0a5e41b7dc3b171aca3707bc43f40ed57" - }, - "serialized": "02f8ef822710018085012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a852780b884084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cbec73e1cba1177789adf44fcd3cea797d132563635fae211c350acd7c328046a0216eabb6cd1eb5c0000e7eb74f66595bd5b688f43dd646f15f33e3827c8c966b" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", + "value": "0", + "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": 0, + "r": "40e02ce4215d78cc865d552c8f44f5a7c80cb9e671e626f1d519aa694bb4dd78", + "s": "7840c867134eba65bad3e100b4adaae41157ed89d7f5dee60a0b7846b1c341d2", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "e547e91308efade7ebf92b47f246f0df4effdbfbbc46e4954830aaba70c0f578" + }, + "serialized": "f8ec0185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a852780b884084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000825c6ba040e02ce4215d78cc865d552c8f44f5a7c80cb9e671e626f1d519aa694bb4dd78a07840c867134eba65bad3e100b4adaae41157ed89d7f5dee60a0b7846b1c341d2" } diff --git a/tests/fixtures/transactions/evm_call/multipayment-single.json b/tests/fixtures/transactions/evm_call/multipayment-single.json index 55a8b240..d08fbb41 100644 --- a/tests/fixtures/transactions/evm_call/multipayment-single.json +++ b/tests/fixtures/transactions/evm_call/multipayment-single.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", - "value": "100000", - "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0", - "v": 28, - "r": "e381eb89f21e450009706650346e3abfaee0c91c5685c8ec923d86b8212a2427", - "s": "5b3a7bfdec8ca69469e989805e7715f5d317bf62304f868a905224e7dabe7b37", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "1d0e3d567ffa39defba7904202941070b224f885f9399c817a58aeb36f4f3863" - }, - "serialized": "02f90132822710018085012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830186a0b8c4084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0c001a0e381eb89f21e450009706650346e3abfaee0c91c5685c8ec923d86b8212a2427a05b3a7bfdec8ca69469e989805e7715f5d317bf62304f868a905224e7dabe7b37" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", + "value": "100000", + "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0", + "v": 1, + "r": "49e0148931a5c7bdece9dfc1ee98192ad114d5c15545058ee7c3a8c232b3ba68", + "s": "62051ddcb47aefed5c6945dfb9a6ceb691a5d8d088d4a01275b9a24dfa174404", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "2f2ff06ba09315915d2ac86f12252a9a7ba1fa2a4b3ab0d732df5ee7d53b2e49" + }, + "serialized": "f9012f0185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830186a0b8c4084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0825c6ca049e0148931a5c7bdece9dfc1ee98192ad114d5c15545058ee7c3a8c232b3ba68a062051ddcb47aefed5c6945dfb9a6ceb691a5d8d088d4a01275b9a24dfa174404" } diff --git a/tests/fixtures/transactions/evm_call/multipayment.json b/tests/fixtures/transactions/evm_call/multipayment.json index e4cf64d4..15cea3fd 100644 --- a/tests/fixtures/transactions/evm_call/multipayment.json +++ b/tests/fixtures/transactions/evm_call/multipayment.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", - "value": "300000", - "data": "084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40", - "v": 27, - "r": "0c7cfc6e77249b44385decfd49b8d4deac3c4c49147a0a8d539d82d51da81581", - "s": "6af2959905394b401c87872f78ae321cf8cfdd03fe80a815a99bdd723cc90462", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "d2b7d9e8730de8ab788a37905974c11f6df1a7e5bea5f9a716bffbec17b1d3a8" - }, - "serialized": "02f90173822710018085012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830493e0b90104084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40c080a00c7cfc6e77249b44385decfd49b8d4deac3c4c49147a0a8d539d82d51da81581a06af2959905394b401c87872f78ae321cf8cfdd03fe80a815a99bdd723cc90462" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", + "value": "300000", + "data": "084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40", + "v": 1, + "r": "9720cd5959af4fc513ec8f9c55a3f3b53a1f24a3a577e8132cadd81c116c6c82", + "s": "3411570db14d5e1a6673b2e80fe6cc22bf67752808ac4752c8bcfd9732e33dc8", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "f603e0b5fe0743021d2879ffe53ace7b40c9d823edbf058bd25a045753c82aa9" + }, + "serialized": "f901700185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830493e0b90104084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40825c6ca09720cd5959af4fc513ec8f9c55a3f3b53a1f24a3a577e8132cadd81c116c6c82a03411570db14d5e1a6673b2e80fe6cc22bf67752808ac4752c8bcfd9732e33dc8" } diff --git a/tests/fixtures/transactions/evm_call/transfer-0.json b/tests/fixtures/transactions/evm_call/transfer-0.json index 57ffd702..9f2aa50e 100644 --- a/tests/fixtures/transactions/evm_call/transfer-0.json +++ b/tests/fixtures/transactions/evm_call/transfer-0.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 21000, - "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", - "value": "0", - "data": "", - "v": 27, - "r": "2c42ef45cb01b01c0a59b61a7e82d37c8566e0fc0f0f47c2a2825d1cbc8abefc", - "s": "455bb2aec9d8d038db506d5a964728c78eaa4f237e0d40666742e4d5d686f576", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "241ce787680623dea7b9acf2951e2f8b8afac5f92b33b9909ab2bfbadf4be92c" - }, - "serialized": "02f869822710018085012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228080c080a02c42ef45cb01b01c0a59b61a7e82d37c8566e0fc0f0f47c2a2825d1cbc8abefca0455bb2aec9d8d038db506d5a964728c78eaa4f237e0d40666742e4d5d686f576" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "21000", + "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", + "value": "0", + "data": "", + "v": 1, + "r": "a645cd813052b8a317bbd4f5ae99cfbaf99e15ea96b74d1a971eefb7341cd16b", + "s": "5008e178fe9f6226815af300aebc68fbb1e5e906f1a989f8ee35138a3614d4cb", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "73570e6c367ee1b23339c6df4ba79b23fd12af3811c2c8f23fa578d7ced2a95c" + }, + "serialized": "f8660185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228080825c6ca0a645cd813052b8a317bbd4f5ae99cfbaf99e15ea96b74d1a971eefb7341cd16ba05008e178fe9f6226815af300aebc68fbb1e5e906f1a989f8ee35138a3614d4cb" } diff --git a/tests/fixtures/transactions/evm_call/transfer-large-amount.json b/tests/fixtures/transactions/evm_call/transfer-large-amount.json index 2d66a93a..b3617cd9 100644 --- a/tests/fixtures/transactions/evm_call/transfer-large-amount.json +++ b/tests/fixtures/transactions/evm_call/transfer-large-amount.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 21000, - "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", - "value": "10000000000000000000", - "data": "", - "v": 27, - "r": "62666b937e4c3f55c87c44ee72b5a228c1377adbdad44264dd953b3c2b878734", - "s": "2d8670a69ce09018cfac5604d59a2b74bee18c99a91cbd14ac33c3ccfe96a35a", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "0d22ff14b09da9c5fa975d8fe79b93086853d223000cf88ff923a57650c93e4a" - }, - "serialized": "02f871822710018085012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb22888ac7230489e8000080c080a062666b937e4c3f55c87c44ee72b5a228c1377adbdad44264dd953b3c2b878734a02d8670a69ce09018cfac5604d59a2b74bee18c99a91cbd14ac33c3ccfe96a35a" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "21000", + "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", + "value": "10000000000000000000", + "data": "", + "v": 1, + "r": "2ee46aba6c285231d92bb3eb7c348ac01fa5d4e1f057ad8ba47d4c5f120c9090", + "s": "559b3971e492cfd8b1dc1fecdefcc0ed99619ffc1da09e12144880070134e6b1", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "5546be3e83984644030daa06ae8445d8367ad9e503bd7b87e3761d3ab676e75e" + }, + "serialized": "f86e0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb22888ac7230489e8000080825c6ca02ee46aba6c285231d92bb3eb7c348ac01fa5d4e1f057ad8ba47d4c5f120c9090a0559b3971e492cfd8b1dc1fecdefcc0ed99619ffc1da09e12144880070134e6b1" } diff --git a/tests/fixtures/transactions/evm_call/transfer.json b/tests/fixtures/transactions/evm_call/transfer.json index e90b60dc..67a742d9 100644 --- a/tests/fixtures/transactions/evm_call/transfer.json +++ b/tests/fixtures/transactions/evm_call/transfer.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 21000, - "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", - "value": "100000000", - "data": "", - "v": 28, - "r": "104665257d4dea61c4654e74c6c0f6cd0a398905781c3040bea67dc641a66da0", - "s": "46d718d04b2331f3b0561808549ed3f3f0d867a284acf6b334869078df7a9136", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "b7927d90b38cd1296351f26145b3d8b0674fdc9b8721bc1a10f71a12bcbccf60" - }, - "serialized": "02f86d822710018085012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228405f5e10080c001a0104665257d4dea61c4654e74c6c0f6cd0a398905781c3040bea67dc641a66da0a046d718d04b2331f3b0561808549ed3f3f0d867a284acf6b334869078df7a9136" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "21000", + "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", + "value": "100000000", + "data": "", + "v": 0, + "r": "a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9", + "s": "2d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "a39435ec5de418e77479856d06a653efc171afe43e091472af22ee359eeb83be" + }, + "serialized": "f86a0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228405f5e10080825c6ba0a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9a02d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79" } diff --git a/tests/fixtures/transactions/evm_call/unvote.json b/tests/fixtures/transactions/evm_call/unvote.json index 058e0ed1..2d49151d 100644 --- a/tests/fixtures/transactions/evm_call/unvote.json +++ b/tests/fixtures/transactions/evm_call/unvote.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "0", - "data": "3174b689", - "v": 27, - "r": "bd7f932c18b49e05600cd1603808fd0a19701ee4af99035fc7b1a9159458d08d", - "s": "18a4420edfdc90fcff7c6e4d062ae11dae7a62a7ab53f6499862f3e79d67a252", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "ed937a96f4edc0fa89e7d6146b88f17a3de71f86fc200da49c73e7c93eabfea9" - }, - "serialized": "02f86e822710018085012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180843174b689c080a0bd7f932c18b49e05600cd1603808fd0a19701ee4af99035fc7b1a9159458d08da018a4420edfdc90fcff7c6e4d062ae11dae7a62a7ab53f6499862f3e79d67a252" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "0", + "data": "3174b689", + "v": 0, + "r": "7e05d686131973a9fbda9028f9df5702d9a229823b183caac03ec3a874ccec52", + "s": "1980fbc959612d8c7b97f6f16742259635f42a2039839a81aaaeb7ae6930a5f5", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "38d018d22e2cef185dc3c2f5d25ec63535160d8dfeaf78da8db719cb7ffc730d" + }, + "serialized": "f86b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180843174b689825c6ba07e05d686131973a9fbda9028f9df5702d9a229823b183caac03ec3a874ccec52a01980fbc959612d8c7b97f6f16742259635f42a2039839a81aaaeb7ae6930a5f5" } diff --git a/tests/fixtures/transactions/evm_call/username-registration.json b/tests/fixtures/transactions/evm_call/username-registration.json index 931c6166..9fe80ebc 100644 --- a/tests/fixtures/transactions/evm_call/username-registration.json +++ b/tests/fixtures/transactions/evm_call/username-registration.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", - "value": "0", - "data": "36a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000", - "v": 28, - "r": "4564cc1adbde3e8a309bf9d3eb76b45fecfae62fbdc0604f70483197de4d66b3", - "s": "4d4573a50c9a80221c21d11ce51b9b8bd196f9e1ab1a805b7d8b8e56fcfe2003", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "781979a58ac75475b91a1e401b50f9cc52465b21fe83e1c30e05676aaeb6a806" - }, - "serialized": "02f8cf822710018085012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb680b86436a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000c001a04564cc1adbde3e8a309bf9d3eb76b45fecfae62fbdc0604f70483197de4d66b3a04d4573a50c9a80221c21d11ce51b9b8bd196f9e1ab1a805b7d8b8e56fcfe2003" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", + "value": "0", + "data": "36a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000", + "v": 1, + "r": "80c77145c6b5450f4805e7c7b649b49653d151ca74275991ae49731084e35049", + "s": "1a25084fb0e997f93d9cc84472281f01c3e1fdeb15c29abf24f3469aeaac87c1", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "0fd23793ced45b59f54d6250b0d74860fb5960ffc971457c349032cc33cf560a" + }, + "serialized": "f8cc0185012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb680b86436a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000825c6ca080c77145c6b5450f4805e7c7b649b49653d151ca74275991ae49731084e35049a01a25084fb0e997f93d9cc84472281f01c3e1fdeb15c29abf24f3469aeaac87c1" } diff --git a/tests/fixtures/transactions/evm_call/username-resignation.json b/tests/fixtures/transactions/evm_call/username-resignation.json index 372ec3af..73b90a11 100644 --- a/tests/fixtures/transactions/evm_call/username-resignation.json +++ b/tests/fixtures/transactions/evm_call/username-resignation.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", - "value": "0", - "data": "ebed6dab", - "v": 27, - "r": "c786beafa03da8c6485bc15870ea8512db27427e3aa38654a7b8d534b30c48da", - "s": "78b2b4568f4d0f5d482c670001e6877b282ed6e16cdcbea6bd29195ca2bb036d", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "d1647fe630bcf63a23bda6015295dafe246356b0e7930cdc8a52f216fa4429a5" - }, - "serialized": "02f86e822710018085012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb68084ebed6dabc080a0c786beafa03da8c6485bc15870ea8512db27427e3aa38654a7b8d534b30c48daa078b2b4568f4d0f5d482c670001e6877b282ed6e16cdcbea6bd29195ca2bb036d" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", + "value": "0", + "data": "ebed6dab", + "v": 0, + "r": "9092b27fd1ae599b3248cc0fb3d652b63f77537d0d8d75695394cbb4f2b42d12", + "s": "7d887c8e4b9a989bfb35abe87f6f5850669596b1d4bbc1b42a7a8a04ea982477", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "204c05f0590157fd71377130ddc962928a53c5b178302061969d294a43ff6909" + }, + "serialized": "f86b0185012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb68084ebed6dab825c6ba09092b27fd1ae599b3248cc0fb3d652b63f77537d0d8d75695394cbb4f2b42d12a07d887c8e4b9a989bfb35abe87f6f5850669596b1d4bbc1b42a7a8a04ea982477" } diff --git a/tests/fixtures/transactions/evm_call/validator-registration.json b/tests/fixtures/transactions/evm_call/validator-registration.json index 0b36a41d..1d3836e8 100644 --- a/tests/fixtures/transactions/evm_call/validator-registration.json +++ b/tests/fixtures/transactions/evm_call/validator-registration.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "0", - "data": "602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000", - "v": 28, - "r": "57216346b5252f6db63a2c78b5bc0a3697d2247377e9d9ef1b67849a87eb2413", - "s": "66ea02477fc19671b3b626e3c4d33939a8ba43004f0a56e900efc1e580739d11", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "5064b50091b8e5d50ec1d1eb7c5b71cdcf9c7355bba18ee0efeaeacb0b1c95d5" - }, - "serialized": "02f8ef822710018085012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180b884602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000c001a057216346b5252f6db63a2c78b5bc0a3697d2247377e9d9ef1b67849a87eb2413a066ea02477fc19671b3b626e3c4d33939a8ba43004f0a56e900efc1e580739d11" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "0", + "data": "602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000", + "v": 0, + "r": "047b1a36778d3a7c88b3b00623bf1c2be4875f8220df429ee6f661f8722f6dcd", + "s": "484b805c306d017a107b1bd8b46115282b60f956fa04cf9d62a160e6d53a11ef", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "997ffdd531ff879b9cdc8c0f147110c5696b6c5a11607566d846beecaf41b4ed" + }, + "serialized": "f8ec0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180b884602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000825c6ba0047b1a36778d3a7c88b3b00623bf1c2be4875f8220df429ee6f661f8722f6dcda0484b805c306d017a107b1bd8b46115282b60f956fa04cf9d62a160e6d53a11ef" } diff --git a/tests/fixtures/transactions/evm_call/validator-resignation.json b/tests/fixtures/transactions/evm_call/validator-resignation.json index 58ddbabf..7ad7fbcf 100644 --- a/tests/fixtures/transactions/evm_call/validator-resignation.json +++ b/tests/fixtures/transactions/evm_call/validator-resignation.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "0", - "data": "b85f5da2", - "v": 28, - "r": "5670e5d314906eeaf92da15b55eaeabbb92814874f2fe6c72bcbee7e13e7ff40", - "s": "32a34c8438e441d10e83180b5a8a84cf1bfb92fc0fe8b53cd23dc4105631b83d", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "2dc3b976d8dee25e2ecf341c1493670d9d087cc338ed63f764c0eb9e28869dc3" - }, - "serialized": "02f86e822710018085012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e18084b85f5da2c001a05670e5d314906eeaf92da15b55eaeabbb92814874f2fe6c72bcbee7e13e7ff40a032a34c8438e441d10e83180b5a8a84cf1bfb92fc0fe8b53cd23dc4105631b83d" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "0", + "data": "b85f5da2", + "v": 1, + "r": "c4cdcf1e6ea401db32e3688aeb2e89e790ce2ea82b57a0125585ba085d6cec5c", + "s": "0a8cde2f42b20a5b6aeb3a4d8443fc5c31f2c3af5eb698551a057bd5709847e3", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "6bfc80b761bba22759f282a0639637f402e86ca07ca952833e0590592a661401" + }, + "serialized": "f86b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e18084b85f5da2825c6ca0c4cdcf1e6ea401db32e3688aeb2e89e790ce2ea82b57a0125585ba085d6cec5ca00a8cde2f42b20a5b6aeb3a4d8443fc5c31f2c3af5eb698551a057bd5709847e3" } diff --git a/tests/fixtures/transactions/evm_call/vote.json b/tests/fixtures/transactions/evm_call/vote.json index 93859176..248125fa 100644 --- a/tests/fixtures/transactions/evm_call/vote.json +++ b/tests/fixtures/transactions/evm_call/vote.json @@ -1,18 +1,17 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "0", - "data": "6dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763", - "v": 27, - "r": "67734fadb38bd9cd584d39fc08af836f15dd6337b05511b312add11a3586451a", - "s": "08ba89cec57c38b1e1f488d3507b9cbe1a21aa3f441482e62bd9c1eef61d3bd9", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "351114ee096ad8a02ddb7abee6f4fe283b8dadceff17157722d7a8153de710c1" - }, - "serialized": "02f88e822710018085012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180a46dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763c080a067734fadb38bd9cd584d39fc08af836f15dd6337b05511b312add11a3586451aa008ba89cec57c38b1e1f488d3507b9cbe1a21aa3f441482e62bd9c1eef61d3bd9" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "0", + "data": "6dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763", + "v": 1, + "r": "48cdb8cd112e05823e227319b66f2ef5e89c16ff5c568edab1cfa5f3fd8401c0", + "s": "264a4bcd27a62696e15e8588765b2739c3ed34f4b83aacd87998b2ac4c4335ec", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "7885cf77a0b272488efa03ed14994f2560490d14bd5df9b5fbdb7a6f389c8713" + }, + "serialized": "f88b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180a46dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763825c6ca048cdb8cd112e05823e227319b66f2ef5e89c16ff5c568edab1cfa5f3fd8401c0a0264a4bcd27a62696e15e8588765b2739c3ed34f4b83aacd87998b2ac4c4335ec" } From 987c4359984a265dc80930f1f40192f5a8880bd7 Mon Sep 17 00:00:00 2001 From: alexbarnsley Date: Fri, 11 Jul 2025 02:19:54 +0000 Subject: [PATCH 03/18] style: resolve style guide violations --- src/Transactions/Builder/AbstractTransactionBuilder.php | 1 - src/Transactions/Types/AbstractTransaction.php | 1 - 2 files changed, 2 deletions(-) diff --git a/src/Transactions/Builder/AbstractTransactionBuilder.php b/src/Transactions/Builder/AbstractTransactionBuilder.php index 54fd7386..3af3bb7b 100644 --- a/src/Transactions/Builder/AbstractTransactionBuilder.php +++ b/src/Transactions/Builder/AbstractTransactionBuilder.php @@ -4,7 +4,6 @@ namespace ArkEcosystem\Crypto\Transactions\Builder; -use ArkEcosystem\Crypto\Configuration\Network; use ArkEcosystem\Crypto\Identities\PrivateKey; use ArkEcosystem\Crypto\Transactions\Types\AbstractTransaction; use Brick\Math\BigDecimal; diff --git a/src/Transactions/Types/AbstractTransaction.php b/src/Transactions/Types/AbstractTransaction.php index c740c8a5..b84e0ab5 100644 --- a/src/Transactions/Types/AbstractTransaction.php +++ b/src/Transactions/Types/AbstractTransaction.php @@ -4,7 +4,6 @@ namespace ArkEcosystem\Crypto\Transactions\Types; -use ArkEcosystem\Crypto\Configuration\Network; use ArkEcosystem\Crypto\Helpers; use ArkEcosystem\Crypto\Identities\Address; use ArkEcosystem\Crypto\Identities\PrivateKey; From 99cac4398c97eba0d4bd56492c9dc2c312a1a82a Mon Sep 17 00:00:00 2001 From: Alex Barnsley <8069294+alexbarnsley@users.noreply.github.com> Date: Fri, 11 Jul 2025 03:26:24 +0100 Subject: [PATCH 04/18] remove constant usage --- src/Utils/TransactionUtils.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Utils/TransactionUtils.php b/src/Utils/TransactionUtils.php index d722d097..ebaf76d0 100644 --- a/src/Utils/TransactionUtils.php +++ b/src/Utils/TransactionUtils.php @@ -48,7 +48,6 @@ public static function toBuffer(array $transaction, bool $skipSignature = false) $encoded = RlpEncoder::encode($fields); - $payload = Constants::EIP_1559_PREFIX.substr($encoded, 2); return new Buffer(hex2bin(substr($encoded, 2))); } From 7f6ccc0feeeb52377e56b05c133b1d9c040c92d3 Mon Sep 17 00:00:00 2001 From: ItsANameToo Date: Fri, 11 Jul 2025 12:05:57 +0200 Subject: [PATCH 05/18] wip --- src/Utils/TransactionUtils.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Utils/TransactionUtils.php b/src/Utils/TransactionUtils.php index ebaf76d0..9c582957 100644 --- a/src/Utils/TransactionUtils.php +++ b/src/Utils/TransactionUtils.php @@ -41,7 +41,6 @@ public static function toBuffer(array $transaction, bool $skipSignature = false) $fields[] = self::toBeArray(Network::get()->chainId()); $fields[] = self::toBeArray(0); $fields[] = self::toBeArray(0); - } } // TODO: second signature handling From e51a93ae3bb27657a0529c62591a90b2834603c1 Mon Sep 17 00:00:00 2001 From: ItsANameToo Date: Fri, 11 Jul 2025 10:06:20 +0000 Subject: [PATCH 06/18] style: resolve style guide violations --- src/Utils/TransactionUtils.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Utils/TransactionUtils.php b/src/Utils/TransactionUtils.php index 9c582957..5c526058 100644 --- a/src/Utils/TransactionUtils.php +++ b/src/Utils/TransactionUtils.php @@ -47,7 +47,6 @@ public static function toBuffer(array $transaction, bool $skipSignature = false) $encoded = RlpEncoder::encode($fields); - return new Buffer(hex2bin(substr($encoded, 2))); } From 165e735d70d808ef49c7604320431a00a18ce54e Mon Sep 17 00:00:00 2001 From: ItsANameToo Date: Fri, 11 Jul 2025 12:08:28 +0200 Subject: [PATCH 07/18] fix: deserializer --- src/Transactions/Deserializer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Transactions/Deserializer.php b/src/Transactions/Deserializer.php index e6cb7c74..70e24c5c 100644 --- a/src/Transactions/Deserializer.php +++ b/src/Transactions/Deserializer.php @@ -42,7 +42,7 @@ public function __construct(string $serialized) ? ByteBuffer::fromHex($serialized) : ByteBuffer::fromBinary($serialized); - $this->encodedRlp = '0x'.mb_substr($this->buffer->toString('hex'), 2); + $this->encodedRlp = '0x'.$this->buffer->toString('hex'); } /** From ad712e4801b3e3eddea0e531c9c4b23c9c1a052a Mon Sep 17 00:00:00 2001 From: ItsANameToo Date: Fri, 11 Jul 2025 12:28:53 +0200 Subject: [PATCH 08/18] test: default to Testnet for tests and utils tweaks --- .gitignore | 1 + src/Utils/TransactionUtils.php | 6 ++++-- tests/TestCase.php | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index d5d2eba4..2ac24a9a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ vendor clover.xml .php_cs.cache .phpunit.result.cache +.phpunit.cache .coverage coverage.xml .php-cs-fixer.cache diff --git a/src/Utils/TransactionUtils.php b/src/Utils/TransactionUtils.php index 5c526058..48b65e0f 100644 --- a/src/Utils/TransactionUtils.php +++ b/src/Utils/TransactionUtils.php @@ -32,7 +32,7 @@ public static function toBuffer(array $transaction, bool $skipSignature = false) : ('0x'.($transaction['data'] ?? '')), ]; - if (! $skipSignature && isset($transaction['v'], $transaction['r'], $transaction['s']) && ! empty($transaction['v'])) { + if (! $skipSignature && isset($transaction['v'], $transaction['r'], $transaction['s']) && $transaction['v'] !== '') { $fields[] = self::toBeArray($transaction['v'] + Network::get()->chainId() * 2 + 35); $fields[] = '0x'.$transaction['r']; $fields[] = '0x'.$transaction['s']; @@ -47,7 +47,9 @@ public static function toBuffer(array $transaction, bool $skipSignature = false) $encoded = RlpEncoder::encode($fields); - return new Buffer(hex2bin(substr($encoded, 2))); + $payload = substr($encoded, 2); + + return new Buffer(hex2bin($payload)); } /** diff --git a/tests/TestCase.php b/tests/TestCase.php index f05c90de..f2723486 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -5,7 +5,7 @@ namespace ArkEcosystem\Tests\Crypto; use ArkEcosystem\Crypto\Configuration\Network; -use ArkEcosystem\Crypto\Networks\Mainnet; +use ArkEcosystem\Crypto\Networks\Testnet; use ArkEcosystem\Crypto\Transactions\Deserializer; use ArkEcosystem\Crypto\Transactions\Types\AbstractTransaction; use PHPUnit\Framework\TestCase as BaseTestCase; @@ -30,7 +30,7 @@ abstract class TestCase extends BaseTestCase protected function setUp(): void { - Network::set(Mainnet::new()); + Network::set(Testnet::new()); } protected function assertTransaction(array $fixture): AbstractTransaction From 86f51758ef8baf0b4e2ed01371e57918a85347a3 Mon Sep 17 00:00:00 2001 From: ItsANameToo Date: Fri, 11 Jul 2025 12:33:22 +0200 Subject: [PATCH 09/18] test: update fixtures --- .../transactions/evm_call/evm-sign.json | 30 +++++++++---------- .../evm_call/multipayment-empty.json | 30 +++++++++---------- .../evm_call/multipayment-single.json | 30 +++++++++---------- .../transactions/evm_call/multipayment.json | 30 +++++++++---------- .../transactions/evm_call/transfer-0.json | 30 +++++++++---------- .../evm_call/transfer-large-amount.json | 30 +++++++++---------- .../transactions/evm_call/transfer.json | 30 +++++++++---------- .../transactions/evm_call/unvote.json | 30 +++++++++---------- .../evm_call/username-registration.json | 30 +++++++++---------- .../evm_call/username-resignation.json | 30 +++++++++---------- .../evm_call/validator-registration.json | 4 +-- .../evm_call/validator-resignation.json | 30 +++++++++---------- .../fixtures/transactions/evm_call/vote.json | 30 +++++++++---------- 13 files changed, 182 insertions(+), 182 deletions(-) diff --git a/tests/fixtures/transactions/evm_call/evm-sign.json b/tests/fixtures/transactions/evm_call/evm-sign.json index 4d532bf6..63bf1688 100644 --- a/tests/fixtures/transactions/evm_call/evm-sign.json +++ b/tests/fixtures/transactions/evm_call/evm-sign.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "200000", - "to": "0xE536720791A7DaDBeBdBCD8c8546fb0791a11901", - "value": "0", - "data": "a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064", - "v": 0, - "r": "14060f3bca79284de0a4bc8b4cf85a3377b058e3d5ee90b11b36c1e7eb76b3e6", - "s": "77a5c3b2ab083a0ff73d81ac00c7e2fb2c6bcd51276151b8745ef771379e22f2", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "244ab0d2ee5ebf4d503dd8e5d81222eadba8b2299c12ecee1649fcd2dd6e4714" - }, - "serialized": "f8ac0185012a05f20083030d4094e536720791a7dadbebdbcd8c8546fb0791a1190180b844a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064825c6ba014060f3bca79284de0a4bc8b4cf85a3377b058e3d5ee90b11b36c1e7eb76b3e6a077a5c3b2ab083a0ff73d81ac00c7e2fb2c6bcd51276151b8745ef771379e22f2" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 200000, + "to": "0xE536720791A7DaDBeBdBCD8c8546fb0791a11901", + "value": "0", + "data": "a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064", + "v": 0, + "r": "14060f3bca79284de0a4bc8b4cf85a3377b058e3d5ee90b11b36c1e7eb76b3e6", + "s": "77a5c3b2ab083a0ff73d81ac00c7e2fb2c6bcd51276151b8745ef771379e22f2", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "244ab0d2ee5ebf4d503dd8e5d81222eadba8b2299c12ecee1649fcd2dd6e4714" + }, + "serialized": "f8ac0185012a05f20083030d4094e536720791a7dadbebdbcd8c8546fb0791a1190180b844a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064825c6ba014060f3bca79284de0a4bc8b4cf85a3377b058e3d5ee90b11b36c1e7eb76b3e6a077a5c3b2ab083a0ff73d81ac00c7e2fb2c6bcd51276151b8745ef771379e22f2" } diff --git a/tests/fixtures/transactions/evm_call/multipayment-empty.json b/tests/fixtures/transactions/evm_call/multipayment-empty.json index 6c0add78..67699799 100644 --- a/tests/fixtures/transactions/evm_call/multipayment-empty.json +++ b/tests/fixtures/transactions/evm_call/multipayment-empty.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "200000", - "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", - "value": "0", - "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "v": 0, - "r": "40e02ce4215d78cc865d552c8f44f5a7c80cb9e671e626f1d519aa694bb4dd78", - "s": "7840c867134eba65bad3e100b4adaae41157ed89d7f5dee60a0b7846b1c341d2", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "e547e91308efade7ebf92b47f246f0df4effdbfbbc46e4954830aaba70c0f578" - }, - "serialized": "f8ec0185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a852780b884084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000825c6ba040e02ce4215d78cc865d552c8f44f5a7c80cb9e671e626f1d519aa694bb4dd78a07840c867134eba65bad3e100b4adaae41157ed89d7f5dee60a0b7846b1c341d2" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 200000, + "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", + "value": "0", + "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": 0, + "r": "40e02ce4215d78cc865d552c8f44f5a7c80cb9e671e626f1d519aa694bb4dd78", + "s": "7840c867134eba65bad3e100b4adaae41157ed89d7f5dee60a0b7846b1c341d2", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "e547e91308efade7ebf92b47f246f0df4effdbfbbc46e4954830aaba70c0f578" + }, + "serialized": "f8ec0185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a852780b884084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000825c6ba040e02ce4215d78cc865d552c8f44f5a7c80cb9e671e626f1d519aa694bb4dd78a07840c867134eba65bad3e100b4adaae41157ed89d7f5dee60a0b7846b1c341d2" } diff --git a/tests/fixtures/transactions/evm_call/multipayment-single.json b/tests/fixtures/transactions/evm_call/multipayment-single.json index d08fbb41..f49209ee 100644 --- a/tests/fixtures/transactions/evm_call/multipayment-single.json +++ b/tests/fixtures/transactions/evm_call/multipayment-single.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "200000", - "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", - "value": "100000", - "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0", - "v": 1, - "r": "49e0148931a5c7bdece9dfc1ee98192ad114d5c15545058ee7c3a8c232b3ba68", - "s": "62051ddcb47aefed5c6945dfb9a6ceb691a5d8d088d4a01275b9a24dfa174404", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "2f2ff06ba09315915d2ac86f12252a9a7ba1fa2a4b3ab0d732df5ee7d53b2e49" - }, - "serialized": "f9012f0185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830186a0b8c4084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0825c6ca049e0148931a5c7bdece9dfc1ee98192ad114d5c15545058ee7c3a8c232b3ba68a062051ddcb47aefed5c6945dfb9a6ceb691a5d8d088d4a01275b9a24dfa174404" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 200000, + "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", + "value": "100000", + "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0", + "v": 1, + "r": "49e0148931a5c7bdece9dfc1ee98192ad114d5c15545058ee7c3a8c232b3ba68", + "s": "62051ddcb47aefed5c6945dfb9a6ceb691a5d8d088d4a01275b9a24dfa174404", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "2f2ff06ba09315915d2ac86f12252a9a7ba1fa2a4b3ab0d732df5ee7d53b2e49" + }, + "serialized": "f9012f0185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830186a0b8c4084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0825c6ca049e0148931a5c7bdece9dfc1ee98192ad114d5c15545058ee7c3a8c232b3ba68a062051ddcb47aefed5c6945dfb9a6ceb691a5d8d088d4a01275b9a24dfa174404" } diff --git a/tests/fixtures/transactions/evm_call/multipayment.json b/tests/fixtures/transactions/evm_call/multipayment.json index 15cea3fd..17ad4ac7 100644 --- a/tests/fixtures/transactions/evm_call/multipayment.json +++ b/tests/fixtures/transactions/evm_call/multipayment.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "200000", - "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", - "value": "300000", - "data": "084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40", - "v": 1, - "r": "9720cd5959af4fc513ec8f9c55a3f3b53a1f24a3a577e8132cadd81c116c6c82", - "s": "3411570db14d5e1a6673b2e80fe6cc22bf67752808ac4752c8bcfd9732e33dc8", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "f603e0b5fe0743021d2879ffe53ace7b40c9d823edbf058bd25a045753c82aa9" - }, - "serialized": "f901700185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830493e0b90104084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40825c6ca09720cd5959af4fc513ec8f9c55a3f3b53a1f24a3a577e8132cadd81c116c6c82a03411570db14d5e1a6673b2e80fe6cc22bf67752808ac4752c8bcfd9732e33dc8" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 200000, + "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", + "value": "300000", + "data": "084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40", + "v": 1, + "r": "9720cd5959af4fc513ec8f9c55a3f3b53a1f24a3a577e8132cadd81c116c6c82", + "s": "3411570db14d5e1a6673b2e80fe6cc22bf67752808ac4752c8bcfd9732e33dc8", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "f603e0b5fe0743021d2879ffe53ace7b40c9d823edbf058bd25a045753c82aa9" + }, + "serialized": "f901700185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830493e0b90104084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40825c6ca09720cd5959af4fc513ec8f9c55a3f3b53a1f24a3a577e8132cadd81c116c6c82a03411570db14d5e1a6673b2e80fe6cc22bf67752808ac4752c8bcfd9732e33dc8" } diff --git a/tests/fixtures/transactions/evm_call/transfer-0.json b/tests/fixtures/transactions/evm_call/transfer-0.json index 9f2aa50e..cdca8746 100644 --- a/tests/fixtures/transactions/evm_call/transfer-0.json +++ b/tests/fixtures/transactions/evm_call/transfer-0.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "21000", - "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", - "value": "0", - "data": "", - "v": 1, - "r": "a645cd813052b8a317bbd4f5ae99cfbaf99e15ea96b74d1a971eefb7341cd16b", - "s": "5008e178fe9f6226815af300aebc68fbb1e5e906f1a989f8ee35138a3614d4cb", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "73570e6c367ee1b23339c6df4ba79b23fd12af3811c2c8f23fa578d7ced2a95c" - }, - "serialized": "f8660185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228080825c6ca0a645cd813052b8a317bbd4f5ae99cfbaf99e15ea96b74d1a971eefb7341cd16ba05008e178fe9f6226815af300aebc68fbb1e5e906f1a989f8ee35138a3614d4cb" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 21000, + "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", + "value": "0", + "data": "", + "v": 1, + "r": "a645cd813052b8a317bbd4f5ae99cfbaf99e15ea96b74d1a971eefb7341cd16b", + "s": "5008e178fe9f6226815af300aebc68fbb1e5e906f1a989f8ee35138a3614d4cb", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "73570e6c367ee1b23339c6df4ba79b23fd12af3811c2c8f23fa578d7ced2a95c" + }, + "serialized": "f8660185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228080825c6ca0a645cd813052b8a317bbd4f5ae99cfbaf99e15ea96b74d1a971eefb7341cd16ba05008e178fe9f6226815af300aebc68fbb1e5e906f1a989f8ee35138a3614d4cb" } diff --git a/tests/fixtures/transactions/evm_call/transfer-large-amount.json b/tests/fixtures/transactions/evm_call/transfer-large-amount.json index b3617cd9..c7ddf864 100644 --- a/tests/fixtures/transactions/evm_call/transfer-large-amount.json +++ b/tests/fixtures/transactions/evm_call/transfer-large-amount.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "21000", - "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", - "value": "10000000000000000000", - "data": "", - "v": 1, - "r": "2ee46aba6c285231d92bb3eb7c348ac01fa5d4e1f057ad8ba47d4c5f120c9090", - "s": "559b3971e492cfd8b1dc1fecdefcc0ed99619ffc1da09e12144880070134e6b1", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "5546be3e83984644030daa06ae8445d8367ad9e503bd7b87e3761d3ab676e75e" - }, - "serialized": "f86e0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb22888ac7230489e8000080825c6ca02ee46aba6c285231d92bb3eb7c348ac01fa5d4e1f057ad8ba47d4c5f120c9090a0559b3971e492cfd8b1dc1fecdefcc0ed99619ffc1da09e12144880070134e6b1" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 21000, + "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", + "value": "10000000000000000000", + "data": "", + "v": 1, + "r": "2ee46aba6c285231d92bb3eb7c348ac01fa5d4e1f057ad8ba47d4c5f120c9090", + "s": "559b3971e492cfd8b1dc1fecdefcc0ed99619ffc1da09e12144880070134e6b1", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "5546be3e83984644030daa06ae8445d8367ad9e503bd7b87e3761d3ab676e75e" + }, + "serialized": "f86e0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb22888ac7230489e8000080825c6ca02ee46aba6c285231d92bb3eb7c348ac01fa5d4e1f057ad8ba47d4c5f120c9090a0559b3971e492cfd8b1dc1fecdefcc0ed99619ffc1da09e12144880070134e6b1" } diff --git a/tests/fixtures/transactions/evm_call/transfer.json b/tests/fixtures/transactions/evm_call/transfer.json index 67a742d9..7ad6a729 100644 --- a/tests/fixtures/transactions/evm_call/transfer.json +++ b/tests/fixtures/transactions/evm_call/transfer.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "21000", - "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", - "value": "100000000", - "data": "", - "v": 0, - "r": "a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9", - "s": "2d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "a39435ec5de418e77479856d06a653efc171afe43e091472af22ee359eeb83be" - }, - "serialized": "f86a0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228405f5e10080825c6ba0a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9a02d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 21000, + "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", + "value": "100000000", + "data": "", + "v": 0, + "r": "a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9", + "s": "2d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "a39435ec5de418e77479856d06a653efc171afe43e091472af22ee359eeb83be" + }, + "serialized": "f86a0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228405f5e10080825c6ba0a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9a02d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79" } diff --git a/tests/fixtures/transactions/evm_call/unvote.json b/tests/fixtures/transactions/evm_call/unvote.json index 2d49151d..58f613cb 100644 --- a/tests/fixtures/transactions/evm_call/unvote.json +++ b/tests/fixtures/transactions/evm_call/unvote.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "200000", - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "0", - "data": "3174b689", - "v": 0, - "r": "7e05d686131973a9fbda9028f9df5702d9a229823b183caac03ec3a874ccec52", - "s": "1980fbc959612d8c7b97f6f16742259635f42a2039839a81aaaeb7ae6930a5f5", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "38d018d22e2cef185dc3c2f5d25ec63535160d8dfeaf78da8db719cb7ffc730d" - }, - "serialized": "f86b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180843174b689825c6ba07e05d686131973a9fbda9028f9df5702d9a229823b183caac03ec3a874ccec52a01980fbc959612d8c7b97f6f16742259635f42a2039839a81aaaeb7ae6930a5f5" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 200000, + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "0", + "data": "3174b689", + "v": 0, + "r": "7e05d686131973a9fbda9028f9df5702d9a229823b183caac03ec3a874ccec52", + "s": "1980fbc959612d8c7b97f6f16742259635f42a2039839a81aaaeb7ae6930a5f5", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "38d018d22e2cef185dc3c2f5d25ec63535160d8dfeaf78da8db719cb7ffc730d" + }, + "serialized": "f86b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180843174b689825c6ba07e05d686131973a9fbda9028f9df5702d9a229823b183caac03ec3a874ccec52a01980fbc959612d8c7b97f6f16742259635f42a2039839a81aaaeb7ae6930a5f5" } diff --git a/tests/fixtures/transactions/evm_call/username-registration.json b/tests/fixtures/transactions/evm_call/username-registration.json index 9fe80ebc..fb89035c 100644 --- a/tests/fixtures/transactions/evm_call/username-registration.json +++ b/tests/fixtures/transactions/evm_call/username-registration.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "200000", - "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", - "value": "0", - "data": "36a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000", - "v": 1, - "r": "80c77145c6b5450f4805e7c7b649b49653d151ca74275991ae49731084e35049", - "s": "1a25084fb0e997f93d9cc84472281f01c3e1fdeb15c29abf24f3469aeaac87c1", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "0fd23793ced45b59f54d6250b0d74860fb5960ffc971457c349032cc33cf560a" - }, - "serialized": "f8cc0185012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb680b86436a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000825c6ca080c77145c6b5450f4805e7c7b649b49653d151ca74275991ae49731084e35049a01a25084fb0e997f93d9cc84472281f01c3e1fdeb15c29abf24f3469aeaac87c1" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 200000, + "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", + "value": "0", + "data": "36a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000", + "v": 1, + "r": "80c77145c6b5450f4805e7c7b649b49653d151ca74275991ae49731084e35049", + "s": "1a25084fb0e997f93d9cc84472281f01c3e1fdeb15c29abf24f3469aeaac87c1", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "0fd23793ced45b59f54d6250b0d74860fb5960ffc971457c349032cc33cf560a" + }, + "serialized": "f8cc0185012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb680b86436a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000825c6ca080c77145c6b5450f4805e7c7b649b49653d151ca74275991ae49731084e35049a01a25084fb0e997f93d9cc84472281f01c3e1fdeb15c29abf24f3469aeaac87c1" } diff --git a/tests/fixtures/transactions/evm_call/username-resignation.json b/tests/fixtures/transactions/evm_call/username-resignation.json index 73b90a11..8c59cafd 100644 --- a/tests/fixtures/transactions/evm_call/username-resignation.json +++ b/tests/fixtures/transactions/evm_call/username-resignation.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "200000", - "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", - "value": "0", - "data": "ebed6dab", - "v": 0, - "r": "9092b27fd1ae599b3248cc0fb3d652b63f77537d0d8d75695394cbb4f2b42d12", - "s": "7d887c8e4b9a989bfb35abe87f6f5850669596b1d4bbc1b42a7a8a04ea982477", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "204c05f0590157fd71377130ddc962928a53c5b178302061969d294a43ff6909" - }, - "serialized": "f86b0185012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb68084ebed6dab825c6ba09092b27fd1ae599b3248cc0fb3d652b63f77537d0d8d75695394cbb4f2b42d12a07d887c8e4b9a989bfb35abe87f6f5850669596b1d4bbc1b42a7a8a04ea982477" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 200000, + "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", + "value": "0", + "data": "ebed6dab", + "v": 0, + "r": "9092b27fd1ae599b3248cc0fb3d652b63f77537d0d8d75695394cbb4f2b42d12", + "s": "7d887c8e4b9a989bfb35abe87f6f5850669596b1d4bbc1b42a7a8a04ea982477", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "204c05f0590157fd71377130ddc962928a53c5b178302061969d294a43ff6909" + }, + "serialized": "f86b0185012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb68084ebed6dab825c6ba09092b27fd1ae599b3248cc0fb3d652b63f77537d0d8d75695394cbb4f2b42d12a07d887c8e4b9a989bfb35abe87f6f5850669596b1d4bbc1b42a7a8a04ea982477" } diff --git a/tests/fixtures/transactions/evm_call/validator-registration.json b/tests/fixtures/transactions/evm_call/validator-registration.json index 10b6452d..e44b876a 100644 --- a/tests/fixtures/transactions/evm_call/validator-registration.json +++ b/tests/fixtures/transactions/evm_call/validator-registration.json @@ -1,8 +1,8 @@ { "data": { "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "200000", + "gasPrice": 5000000000, + "gasLimit": 200000, "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", "value": "0", "data": "602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000", diff --git a/tests/fixtures/transactions/evm_call/validator-resignation.json b/tests/fixtures/transactions/evm_call/validator-resignation.json index 7ad7fbcf..6d41cdaa 100644 --- a/tests/fixtures/transactions/evm_call/validator-resignation.json +++ b/tests/fixtures/transactions/evm_call/validator-resignation.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "200000", - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "0", - "data": "b85f5da2", - "v": 1, - "r": "c4cdcf1e6ea401db32e3688aeb2e89e790ce2ea82b57a0125585ba085d6cec5c", - "s": "0a8cde2f42b20a5b6aeb3a4d8443fc5c31f2c3af5eb698551a057bd5709847e3", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "6bfc80b761bba22759f282a0639637f402e86ca07ca952833e0590592a661401" - }, - "serialized": "f86b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e18084b85f5da2825c6ca0c4cdcf1e6ea401db32e3688aeb2e89e790ce2ea82b57a0125585ba085d6cec5ca00a8cde2f42b20a5b6aeb3a4d8443fc5c31f2c3af5eb698551a057bd5709847e3" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 200000, + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "0", + "data": "b85f5da2", + "v": 1, + "r": "c4cdcf1e6ea401db32e3688aeb2e89e790ce2ea82b57a0125585ba085d6cec5c", + "s": "0a8cde2f42b20a5b6aeb3a4d8443fc5c31f2c3af5eb698551a057bd5709847e3", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "6bfc80b761bba22759f282a0639637f402e86ca07ca952833e0590592a661401" + }, + "serialized": "f86b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e18084b85f5da2825c6ca0c4cdcf1e6ea401db32e3688aeb2e89e790ce2ea82b57a0125585ba085d6cec5ca00a8cde2f42b20a5b6aeb3a4d8443fc5c31f2c3af5eb698551a057bd5709847e3" } diff --git a/tests/fixtures/transactions/evm_call/vote.json b/tests/fixtures/transactions/evm_call/vote.json index 248125fa..8b6c590e 100644 --- a/tests/fixtures/transactions/evm_call/vote.json +++ b/tests/fixtures/transactions/evm_call/vote.json @@ -1,17 +1,17 @@ { - "data": { - "nonce": "1", - "gasPrice": "5000000000", - "gasLimit": "200000", - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "0", - "data": "6dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763", - "v": 1, - "r": "48cdb8cd112e05823e227319b66f2ef5e89c16ff5c568edab1cfa5f3fd8401c0", - "s": "264a4bcd27a62696e15e8588765b2739c3ed34f4b83aacd87998b2ac4c4335ec", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "7885cf77a0b272488efa03ed14994f2560490d14bd5df9b5fbdb7a6f389c8713" - }, - "serialized": "f88b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180a46dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763825c6ca048cdb8cd112e05823e227319b66f2ef5e89c16ff5c568edab1cfa5f3fd8401c0a0264a4bcd27a62696e15e8588765b2739c3ed34f4b83aacd87998b2ac4c4335ec" + "data": { + "nonce": "1", + "gasPrice": 5000000000, + "gasLimit": 200000, + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "0", + "data": "6dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763", + "v": 1, + "r": "48cdb8cd112e05823e227319b66f2ef5e89c16ff5c568edab1cfa5f3fd8401c0", + "s": "264a4bcd27a62696e15e8588765b2739c3ed34f4b83aacd87998b2ac4c4335ec", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "7885cf77a0b272488efa03ed14994f2560490d14bd5df9b5fbdb7a6f389c8713" + }, + "serialized": "f88b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180a46dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763825c6ca048cdb8cd112e05823e227319b66f2ef5e89c16ff5c568edab1cfa5f3fd8401c0a0264a4bcd27a62696e15e8588765b2739c3ed34f4b83aacd87998b2ac4c4335ec" } From df611025a5eaea29a9ddd21af4709a58446b91ed Mon Sep 17 00:00:00 2001 From: ItsANameToo Date: Fri, 11 Jul 2025 12:38:00 +0200 Subject: [PATCH 10/18] fix: message sign --- src/Utils/Message.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Utils/Message.php b/src/Utils/Message.php index 311f0dfb..ca9ad075 100644 --- a/src/Utils/Message.php +++ b/src/Utils/Message.php @@ -105,7 +105,7 @@ public static function sign(string $message, string $passphrase): self $r = Helpers::gmpToHex($signature->getR()); $s = Helpers::gmpToHex($signature->getS()); - $v = dechex($signature->getRecoveryId() + 27); + $v = str_pad(dechex($signature->getRecoveryId()), 2, '0', STR_PAD_LEFT); return static::new([ 'publicKey' => $privateKey->publicKey, From 151226a85031fa90fb2bb48f450b3af2441901f0 Mon Sep 17 00:00:00 2001 From: ItsANameToo Date: Fri, 11 Jul 2025 12:44:14 +0200 Subject: [PATCH 11/18] fix: rlp decoder --- tests/Unit/Utils/RlpDecoderTest.php | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/tests/Unit/Utils/RlpDecoderTest.php b/tests/Unit/Utils/RlpDecoderTest.php index 970f9014..9c0a7286 100644 --- a/tests/Unit/Utils/RlpDecoderTest.php +++ b/tests/Unit/Utils/RlpDecoderTest.php @@ -8,23 +8,20 @@ $fixture = $this->getTransactionFixture('evm_call', 'transfer'); // Remove '0x' prefix from serialized hex string - $serialized = substr($fixture['serialized'], 2); + $serialized = $fixture['serialized']; $decoded_rlp = RlpDecoder::decode('0x'.$serialized); - expect(count($decoded_rlp))->toBe(12); - expect($decoded_rlp[0])->toBe('0x2710'); - expect($decoded_rlp[1])->toBe('0x01'); - expect($decoded_rlp[2])->toBe('0x'); - expect($decoded_rlp[3])->toBe('0x012a05f200'); - expect($decoded_rlp[4])->toBe('0x5208'); - expect($decoded_rlp[5])->toBe('0x6f0182a0cc707b055322ccf6d4cb6a5aff1aeb22'); - expect($decoded_rlp[6])->toBe('0x05f5e100'); - expect($decoded_rlp[7])->toBe('0x'); - expect($decoded_rlp[8])->toBe([]); - expect($decoded_rlp[9])->toBe('0x01'); - expect($decoded_rlp[10])->toBe('0x104665257d4dea61c4654e74c6c0f6cd0a398905781c3040bea67dc641a66da0'); - expect($decoded_rlp[11])->toBe('0x46d718d04b2331f3b0561808549ed3f3f0d867a284acf6b334869078df7a9136'); + expect(count($decoded_rlp))->toBe(9); + expect($decoded_rlp[0])->toBe('0x01'); + expect($decoded_rlp[1])->toBe('0x012a05f200'); + expect($decoded_rlp[2])->toBe('0x5208'); + expect($decoded_rlp[3])->toBe('0x6f0182a0cc707b055322ccf6d4cb6a5aff1aeb22'); + expect($decoded_rlp[4])->toBe('0x05f5e100'); + expect($decoded_rlp[5])->toBe('0x'); + expect($decoded_rlp[6])->toBe('0x5c6b'); // Chain ID * 2 + 35 + expect($decoded_rlp[7])->toBe('0xa1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9'); + expect($decoded_rlp[8])->toBe('0x2d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79'); }); it('should_decoding_str', function () { From efee52b2046aed62a67962c34aef449d433f1a5f Mon Sep 17 00:00:00 2001 From: ItsANameToo Date: Fri, 11 Jul 2025 12:48:56 +0200 Subject: [PATCH 12/18] fix: transactionUtilsTest index --- tests/Unit/Utils/TransactionUtilsTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/Unit/Utils/TransactionUtilsTest.php b/tests/Unit/Utils/TransactionUtilsTest.php index c45005a7..8761c0a8 100644 --- a/tests/Unit/Utils/TransactionUtilsTest.php +++ b/tests/Unit/Utils/TransactionUtilsTest.php @@ -59,9 +59,9 @@ $transaction = TransactionUtils::toBuffer($fixture['data'], true); - $decoded = RlpDecoder::decode('0x'.substr($transaction->getHex(), 2)); + $decoded = RlpDecoder::decode('0x'.$transaction->getHex()); - expect($decoded[3])->toBe('0x'); + expect($decoded[1])->toBe('0x'); }); it('should handle unknown value value', function () { @@ -71,9 +71,9 @@ $transaction = TransactionUtils::toBuffer($fixture['data'], true); - $decoded = RlpDecoder::decode('0x'.substr($transaction->getHex(), 2)); + $decoded = RlpDecoder::decode('0x'.$transaction->getHex()); - expect($decoded[3])->toBe('0x'); + expect($decoded[1])->toBe('0x'); }); // toBuffer From 319fd17d549180087c021bf552649911d4d97d3c Mon Sep 17 00:00:00 2001 From: ItsANameToo Date: Fri, 11 Jul 2025 12:59:05 +0200 Subject: [PATCH 13/18] refactor: argumentdecoder test improvements and refactor --- src/Utils/Abi/ArgumentDecoder.php | 7 +++---- src/Utils/AbiBase.php | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Utils/Abi/ArgumentDecoder.php b/src/Utils/Abi/ArgumentDecoder.php index 3efc708e..59a1e269 100644 --- a/src/Utils/Abi/ArgumentDecoder.php +++ b/src/Utils/Abi/ArgumentDecoder.php @@ -12,11 +12,10 @@ final class ArgumentDecoder public function __construct(string $bytes) { - try { - $bytes = hex2bin($bytes); - } catch (\Throwable $e) { - // Handle the case where hex2bin fails, e.g., invalid hex string + if (!ctype_xdigit($bytes) || strlen($bytes) % 2 !== 0) { $bytes = false; + } else { + $bytes = hex2bin($bytes); } if ($bytes === false) { diff --git a/src/Utils/AbiBase.php b/src/Utils/AbiBase.php index ac93ed5a..40824197 100644 --- a/src/Utils/AbiBase.php +++ b/src/Utils/AbiBase.php @@ -11,7 +11,7 @@ abstract class AbiBase { protected array $abi; - public function __construct(ContractAbiType $type = ContractAbiType::CONSENSUS, string $path = null) + public function __construct(ContractAbiType $type = ContractAbiType::CONSENSUS, ?string $path = null) { $abiFilePath = $this->contractAbiPath($type, $path); @@ -75,7 +75,7 @@ protected function toFunctionSelector(array $abiItem): string return $selector; } - private function contractAbiPath(ContractAbiType $type, string $path = null): ?string + private function contractAbiPath(ContractAbiType $type, ?string $path = null): ?string { switch ($type) { case ContractAbiType::CONSENSUS: From dd6bcccec192e81157293edc2287a8cbd583b3e6 Mon Sep 17 00:00:00 2001 From: ItsANameToo Date: Fri, 11 Jul 2025 10:59:35 +0000 Subject: [PATCH 14/18] style: resolve style guide violations --- src/Utils/Abi/ArgumentDecoder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Utils/Abi/ArgumentDecoder.php b/src/Utils/Abi/ArgumentDecoder.php index 59a1e269..2e39634d 100644 --- a/src/Utils/Abi/ArgumentDecoder.php +++ b/src/Utils/Abi/ArgumentDecoder.php @@ -12,7 +12,7 @@ final class ArgumentDecoder public function __construct(string $bytes) { - if (!ctype_xdigit($bytes) || strlen($bytes) % 2 !== 0) { + if (! ctype_xdigit($bytes) || strlen($bytes) % 2 !== 0) { $bytes = false; } else { $bytes = hex2bin($bytes); From ad2cd0a4884148115b26f6f73a89b83502adcd56 Mon Sep 17 00:00:00 2001 From: Alex Barnsley <8069294+alexbarnsley@users.noreply.github.com> Date: Mon, 14 Jul 2025 19:32:00 +0100 Subject: [PATCH 15/18] refactor: legacy second signature support --- src/Identities/PrivateKey.php | 22 ++++++++++++++++++- .../Builder/AbstractTransactionBuilder.php | 11 ++++++++++ .../Types/AbstractTransaction.php | 9 ++++++++ src/Utils/TransactionUtils.php | 10 ++++----- 4 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/Identities/PrivateKey.php b/src/Identities/PrivateKey.php index 9ea6b2a4..ec2b2a02 100644 --- a/src/Identities/PrivateKey.php +++ b/src/Identities/PrivateKey.php @@ -5,6 +5,7 @@ namespace ArkEcosystem\Crypto\Identities; use ArkEcosystem\Crypto\Configuration\Network; +use ArkEcosystem\Crypto\Helpers; use BitWasp\Bitcoin\Bitcoin; use BitWasp\Bitcoin\Crypto\EcAdapter\EcAdapterFactory; use BitWasp\Bitcoin\Crypto\EcAdapter\Impl\PhpEcc\Signature\CompactSignature; @@ -75,7 +76,7 @@ public static function fromWif(string $wif): self } /** - * Derive the private key for the given WIF. + * Sign a message using the private key. * * @param BufferInterface $message * @@ -86,6 +87,25 @@ public function sign(BufferInterface $message): CompactSignature return $this->instance->signCompact($message); } + /** + * Sign a message using the private key and return an ECDSA signature. + * + * @param BufferInterface $message + * + * @return string + */ + public function signToEcdsa(BufferInterface $message): string + { + $signature = $this->instance->signCompact($message); + + return sprintf( + '%s%s%s', + Helpers::gmpToHex($signature->getR()), + Helpers::gmpToHex($signature->getS()), + str_pad((string) $signature->getRecoveryId(), 2, '0', STR_PAD_LEFT), + ); + } + private static function factory(): PrivateKeyFactory { return new PrivateKeyFactory( diff --git a/src/Transactions/Builder/AbstractTransactionBuilder.php b/src/Transactions/Builder/AbstractTransactionBuilder.php index 3af3bb7b..88543b72 100644 --- a/src/Transactions/Builder/AbstractTransactionBuilder.php +++ b/src/Transactions/Builder/AbstractTransactionBuilder.php @@ -75,6 +75,17 @@ public function sign(string $passphrase): static return $this; } + public function legacySecondSign(string $passphrase, string $secondPassphrase): static + { + $this->sign($passphrase); + + $this->transaction->legacySecondSign( + PrivateKey::fromPassphrase($secondPassphrase) + ); + + return $this; + } + public function verify(): bool { return $this->transaction->verify(); diff --git a/src/Transactions/Types/AbstractTransaction.php b/src/Transactions/Types/AbstractTransaction.php index b84e0ab5..2d56b647 100644 --- a/src/Transactions/Types/AbstractTransaction.php +++ b/src/Transactions/Types/AbstractTransaction.php @@ -58,6 +58,15 @@ public function sign(PrivateKey $privateKey): static return $this; } + public function legacySecondSign(PrivateKey $privateKey): static + { + $hash = $this->hash(skipSignature: true); + + $this->data['legacySecondSignature'] = $privateKey->signToEcdsa($hash); + + return $this; + } + public function recoverSender(): void { $compactSignature = $this->getSignature(); diff --git a/src/Utils/TransactionUtils.php b/src/Utils/TransactionUtils.php index 48b65e0f..7b714bf7 100644 --- a/src/Utils/TransactionUtils.php +++ b/src/Utils/TransactionUtils.php @@ -36,6 +36,10 @@ public static function toBuffer(array $transaction, bool $skipSignature = false) $fields[] = self::toBeArray($transaction['v'] + Network::get()->chainId() * 2 + 35); $fields[] = '0x'.$transaction['r']; $fields[] = '0x'.$transaction['s']; + + if (isset($transaction['legacySecondSignature'])) { + $fields[] = '0x'.$transaction['legacySecondSignature']; + } } else { // Push chainId + 0s for r and s $fields[] = self::toBeArray(Network::get()->chainId()); @@ -43,13 +47,9 @@ public static function toBuffer(array $transaction, bool $skipSignature = false) $fields[] = self::toBeArray(0); } - // TODO: second signature handling - $encoded = RlpEncoder::encode($fields); - $payload = substr($encoded, 2); - - return new Buffer(hex2bin($payload)); + return new Buffer(hex2bin(substr($encoded, 2))); } /** From 98daaa08f5a985b238d2ab953802e7d2a8bd480d Mon Sep 17 00:00:00 2001 From: Alex Barnsley <8069294+alexbarnsley@users.noreply.github.com> Date: Mon, 14 Jul 2025 19:32:17 +0100 Subject: [PATCH 16/18] test --- tests/TestCase.php | 2 +- .../Builder/TransferBuilderTest.php | 28 +++++++++++++++++++ .../transfer-legacy-second-signature.json | 19 +++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 tests/fixtures/transactions/evm_call/transfer-legacy-second-signature.json diff --git a/tests/TestCase.php b/tests/TestCase.php index f2723486..b78747b4 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -20,7 +20,7 @@ abstract class TestCase extends BaseTestCase protected $passphrase = 'found lobster oblige describe ready addict body brave live vacuum display salute lizard combine gift resemble race senior quality reunion proud tell adjust angle'; - protected $secondPassphrase = 'this is a top secret second passphrase'; + protected $secondPassphrase = 'gold favorite math anchor detect march purpose such sausage crucial reform novel connect misery update episode invite salute barely garbage exclude winner visa cruise'; protected $passphrases = [ 'album pony urban cheap small blade cannon silent run reveal luxury glad predict excess fire beauty hollow reward solar egg exclude leaf sight degree', diff --git a/tests/Unit/Transactions/Builder/TransferBuilderTest.php b/tests/Unit/Transactions/Builder/TransferBuilderTest.php index d7f20489..b1a61b45 100644 --- a/tests/Unit/Transactions/Builder/TransferBuilderTest.php +++ b/tests/Unit/Transactions/Builder/TransferBuilderTest.php @@ -32,6 +32,34 @@ expect($builder->verify())->toBeTrue(); }); +it('should sign with a second passphrase', function () { + $fixture = $this->getTransactionFixture('evm_call', 'transfer-legacy-second-signature'); + + $builder = TransferBuilder::new() + ->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei')) + ->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei')) + ->nonce($fixture['data']['nonce']) + ->to($fixture['data']['to']) + ->value(UnitConverter::parseUnits($fixture['data']['value'], 'wei')) + ->legacySecondSign($this->passphrase, $this->secondPassphrase); + + expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); + expect($builder->transaction->data['to'])->toBe($fixture['data']['to']); + expect((string) $builder->transaction->data['value'])->toBe((string) $fixture['data']['value']); + expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); + expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); + expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); + expect($builder->transaction->data['legacySecondSignature'])->toBe($fixture['data']['legacySecondSignature']); + + expect($builder->transaction->serialize()->getHex())->toBe($fixture['serialized']); + + expect($builder->transaction->data['hash'])->toBe($fixture['data']['hash']); + + expect($builder->verify())->toBeTrue(); +}); + it('should handle large amounts', function () { $fixture = $this->getTransactionFixture('evm_call', 'transfer-large-amount'); diff --git a/tests/fixtures/transactions/evm_call/transfer-legacy-second-signature.json b/tests/fixtures/transactions/evm_call/transfer-legacy-second-signature.json new file mode 100644 index 00000000..b803943a --- /dev/null +++ b/tests/fixtures/transactions/evm_call/transfer-legacy-second-signature.json @@ -0,0 +1,19 @@ +{ + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "21000", + "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", + "value": "100000000", + "data": "", + "network": 11812, + "v": 0, + "r": "a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9", + "s": "2d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79", + "legacySecondSignature": "094b33b2d10c4d48cff9a9b10f79990c9a902a762b00d2f2a4d2ddad7823b59332b2da193265068c67cefea9ca8bc84e47acec406f3300a0a10b77a56ea8c18801", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "a39435ec5de418e77479856d06a653efc171afe43e091472af22ee359eeb83be" + }, + "serialized": "f8ad0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228405f5e10080825c6ba0a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9a02d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79b841094b33b2d10c4d48cff9a9b10f79990c9a902a762b00d2f2a4d2ddad7823b59332b2da193265068c67cefea9ca8bc84e47acec406f3300a0a10b77a56ea8c18801" +} From 03778cf82d29045251ec50a842c591862485840f Mon Sep 17 00:00:00 2001 From: Alex Barnsley <8069294+alexbarnsley@users.noreply.github.com> Date: Tue, 15 Jul 2025 16:47:56 +0100 Subject: [PATCH 17/18] update fixtures --- tests/fixtures/transactions/evm_call/evm-sign.json | 7 ++++--- .../fixtures/transactions/evm_call/multipayment-empty.json | 7 ++++--- .../transactions/evm_call/multipayment-single.json | 7 ++++--- tests/fixtures/transactions/evm_call/multipayment.json | 7 ++++--- tests/fixtures/transactions/evm_call/transfer-0.json | 7 ++++--- .../transactions/evm_call/transfer-large-amount.json | 7 ++++--- tests/fixtures/transactions/evm_call/transfer.json | 7 ++++--- tests/fixtures/transactions/evm_call/unvote.json | 7 ++++--- .../transactions/evm_call/username-registration.json | 7 ++++--- .../transactions/evm_call/username-resignation.json | 7 ++++--- .../transactions/evm_call/validator-registration.json | 7 ++++--- .../transactions/evm_call/validator-resignation.json | 7 ++++--- tests/fixtures/transactions/evm_call/vote.json | 7 ++++--- 13 files changed, 52 insertions(+), 39 deletions(-) diff --git a/tests/fixtures/transactions/evm_call/evm-sign.json b/tests/fixtures/transactions/evm_call/evm-sign.json index 63bf1688..edd06b3b 100644 --- a/tests/fixtures/transactions/evm_call/evm-sign.json +++ b/tests/fixtures/transactions/evm_call/evm-sign.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 200000, + "gasPrice": "5000000000", + "gasLimit": "200000", "to": "0xE536720791A7DaDBeBdBCD8c8546fb0791a11901", "value": "0", "data": "a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064", + "network": 11812, "v": 0, "r": "14060f3bca79284de0a4bc8b4cf85a3377b058e3d5ee90b11b36c1e7eb76b3e6", "s": "77a5c3b2ab083a0ff73d81ac00c7e2fb2c6bcd51276151b8745ef771379e22f2", @@ -14,4 +15,4 @@ "hash": "244ab0d2ee5ebf4d503dd8e5d81222eadba8b2299c12ecee1649fcd2dd6e4714" }, "serialized": "f8ac0185012a05f20083030d4094e536720791a7dadbebdbcd8c8546fb0791a1190180b844a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064825c6ba014060f3bca79284de0a4bc8b4cf85a3377b058e3d5ee90b11b36c1e7eb76b3e6a077a5c3b2ab083a0ff73d81ac00c7e2fb2c6bcd51276151b8745ef771379e22f2" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/multipayment-empty.json b/tests/fixtures/transactions/evm_call/multipayment-empty.json index 67699799..3525f8b0 100644 --- a/tests/fixtures/transactions/evm_call/multipayment-empty.json +++ b/tests/fixtures/transactions/evm_call/multipayment-empty.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 200000, + "gasPrice": "5000000000", + "gasLimit": "200000", "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", "value": "0", "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "network": 11812, "v": 0, "r": "40e02ce4215d78cc865d552c8f44f5a7c80cb9e671e626f1d519aa694bb4dd78", "s": "7840c867134eba65bad3e100b4adaae41157ed89d7f5dee60a0b7846b1c341d2", @@ -14,4 +15,4 @@ "hash": "e547e91308efade7ebf92b47f246f0df4effdbfbbc46e4954830aaba70c0f578" }, "serialized": "f8ec0185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a852780b884084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000825c6ba040e02ce4215d78cc865d552c8f44f5a7c80cb9e671e626f1d519aa694bb4dd78a07840c867134eba65bad3e100b4adaae41157ed89d7f5dee60a0b7846b1c341d2" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/multipayment-single.json b/tests/fixtures/transactions/evm_call/multipayment-single.json index f49209ee..f6860836 100644 --- a/tests/fixtures/transactions/evm_call/multipayment-single.json +++ b/tests/fixtures/transactions/evm_call/multipayment-single.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 200000, + "gasPrice": "5000000000", + "gasLimit": "200000", "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", "value": "100000", "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0", + "network": 11812, "v": 1, "r": "49e0148931a5c7bdece9dfc1ee98192ad114d5c15545058ee7c3a8c232b3ba68", "s": "62051ddcb47aefed5c6945dfb9a6ceb691a5d8d088d4a01275b9a24dfa174404", @@ -14,4 +15,4 @@ "hash": "2f2ff06ba09315915d2ac86f12252a9a7ba1fa2a4b3ab0d732df5ee7d53b2e49" }, "serialized": "f9012f0185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830186a0b8c4084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0825c6ca049e0148931a5c7bdece9dfc1ee98192ad114d5c15545058ee7c3a8c232b3ba68a062051ddcb47aefed5c6945dfb9a6ceb691a5d8d088d4a01275b9a24dfa174404" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/multipayment.json b/tests/fixtures/transactions/evm_call/multipayment.json index 17ad4ac7..cfce43b3 100644 --- a/tests/fixtures/transactions/evm_call/multipayment.json +++ b/tests/fixtures/transactions/evm_call/multipayment.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 200000, + "gasPrice": "5000000000", + "gasLimit": "200000", "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", "value": "300000", "data": "084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40", + "network": 11812, "v": 1, "r": "9720cd5959af4fc513ec8f9c55a3f3b53a1f24a3a577e8132cadd81c116c6c82", "s": "3411570db14d5e1a6673b2e80fe6cc22bf67752808ac4752c8bcfd9732e33dc8", @@ -14,4 +15,4 @@ "hash": "f603e0b5fe0743021d2879ffe53ace7b40c9d823edbf058bd25a045753c82aa9" }, "serialized": "f901700185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830493e0b90104084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40825c6ca09720cd5959af4fc513ec8f9c55a3f3b53a1f24a3a577e8132cadd81c116c6c82a03411570db14d5e1a6673b2e80fe6cc22bf67752808ac4752c8bcfd9732e33dc8" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/transfer-0.json b/tests/fixtures/transactions/evm_call/transfer-0.json index cdca8746..117de293 100644 --- a/tests/fixtures/transactions/evm_call/transfer-0.json +++ b/tests/fixtures/transactions/evm_call/transfer-0.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 21000, + "gasPrice": "5000000000", + "gasLimit": "21000", "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", "value": "0", "data": "", + "network": 11812, "v": 1, "r": "a645cd813052b8a317bbd4f5ae99cfbaf99e15ea96b74d1a971eefb7341cd16b", "s": "5008e178fe9f6226815af300aebc68fbb1e5e906f1a989f8ee35138a3614d4cb", @@ -14,4 +15,4 @@ "hash": "73570e6c367ee1b23339c6df4ba79b23fd12af3811c2c8f23fa578d7ced2a95c" }, "serialized": "f8660185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228080825c6ca0a645cd813052b8a317bbd4f5ae99cfbaf99e15ea96b74d1a971eefb7341cd16ba05008e178fe9f6226815af300aebc68fbb1e5e906f1a989f8ee35138a3614d4cb" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/transfer-large-amount.json b/tests/fixtures/transactions/evm_call/transfer-large-amount.json index c7ddf864..9d44b59a 100644 --- a/tests/fixtures/transactions/evm_call/transfer-large-amount.json +++ b/tests/fixtures/transactions/evm_call/transfer-large-amount.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 21000, + "gasPrice": "5000000000", + "gasLimit": "21000", "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", "value": "10000000000000000000", "data": "", + "network": 11812, "v": 1, "r": "2ee46aba6c285231d92bb3eb7c348ac01fa5d4e1f057ad8ba47d4c5f120c9090", "s": "559b3971e492cfd8b1dc1fecdefcc0ed99619ffc1da09e12144880070134e6b1", @@ -14,4 +15,4 @@ "hash": "5546be3e83984644030daa06ae8445d8367ad9e503bd7b87e3761d3ab676e75e" }, "serialized": "f86e0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb22888ac7230489e8000080825c6ca02ee46aba6c285231d92bb3eb7c348ac01fa5d4e1f057ad8ba47d4c5f120c9090a0559b3971e492cfd8b1dc1fecdefcc0ed99619ffc1da09e12144880070134e6b1" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/transfer.json b/tests/fixtures/transactions/evm_call/transfer.json index 7ad6a729..6fe549e0 100644 --- a/tests/fixtures/transactions/evm_call/transfer.json +++ b/tests/fixtures/transactions/evm_call/transfer.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 21000, + "gasPrice": "5000000000", + "gasLimit": "21000", "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", "value": "100000000", "data": "", + "network": 11812, "v": 0, "r": "a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9", "s": "2d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79", @@ -14,4 +15,4 @@ "hash": "a39435ec5de418e77479856d06a653efc171afe43e091472af22ee359eeb83be" }, "serialized": "f86a0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228405f5e10080825c6ba0a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9a02d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/unvote.json b/tests/fixtures/transactions/evm_call/unvote.json index 58f613cb..8708e366 100644 --- a/tests/fixtures/transactions/evm_call/unvote.json +++ b/tests/fixtures/transactions/evm_call/unvote.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 200000, + "gasPrice": "5000000000", + "gasLimit": "200000", "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", "value": "0", "data": "3174b689", + "network": 11812, "v": 0, "r": "7e05d686131973a9fbda9028f9df5702d9a229823b183caac03ec3a874ccec52", "s": "1980fbc959612d8c7b97f6f16742259635f42a2039839a81aaaeb7ae6930a5f5", @@ -14,4 +15,4 @@ "hash": "38d018d22e2cef185dc3c2f5d25ec63535160d8dfeaf78da8db719cb7ffc730d" }, "serialized": "f86b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180843174b689825c6ba07e05d686131973a9fbda9028f9df5702d9a229823b183caac03ec3a874ccec52a01980fbc959612d8c7b97f6f16742259635f42a2039839a81aaaeb7ae6930a5f5" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/username-registration.json b/tests/fixtures/transactions/evm_call/username-registration.json index fb89035c..afe110dd 100644 --- a/tests/fixtures/transactions/evm_call/username-registration.json +++ b/tests/fixtures/transactions/evm_call/username-registration.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 200000, + "gasPrice": "5000000000", + "gasLimit": "200000", "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", "value": "0", "data": "36a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000", + "network": 11812, "v": 1, "r": "80c77145c6b5450f4805e7c7b649b49653d151ca74275991ae49731084e35049", "s": "1a25084fb0e997f93d9cc84472281f01c3e1fdeb15c29abf24f3469aeaac87c1", @@ -14,4 +15,4 @@ "hash": "0fd23793ced45b59f54d6250b0d74860fb5960ffc971457c349032cc33cf560a" }, "serialized": "f8cc0185012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb680b86436a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000825c6ca080c77145c6b5450f4805e7c7b649b49653d151ca74275991ae49731084e35049a01a25084fb0e997f93d9cc84472281f01c3e1fdeb15c29abf24f3469aeaac87c1" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/username-resignation.json b/tests/fixtures/transactions/evm_call/username-resignation.json index 8c59cafd..c0a1d777 100644 --- a/tests/fixtures/transactions/evm_call/username-resignation.json +++ b/tests/fixtures/transactions/evm_call/username-resignation.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 200000, + "gasPrice": "5000000000", + "gasLimit": "200000", "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", "value": "0", "data": "ebed6dab", + "network": 11812, "v": 0, "r": "9092b27fd1ae599b3248cc0fb3d652b63f77537d0d8d75695394cbb4f2b42d12", "s": "7d887c8e4b9a989bfb35abe87f6f5850669596b1d4bbc1b42a7a8a04ea982477", @@ -14,4 +15,4 @@ "hash": "204c05f0590157fd71377130ddc962928a53c5b178302061969d294a43ff6909" }, "serialized": "f86b0185012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb68084ebed6dab825c6ba09092b27fd1ae599b3248cc0fb3d652b63f77537d0d8d75695394cbb4f2b42d12a07d887c8e4b9a989bfb35abe87f6f5850669596b1d4bbc1b42a7a8a04ea982477" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/validator-registration.json b/tests/fixtures/transactions/evm_call/validator-registration.json index e44b876a..bcc3978d 100644 --- a/tests/fixtures/transactions/evm_call/validator-registration.json +++ b/tests/fixtures/transactions/evm_call/validator-registration.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 200000, + "gasPrice": "5000000000", + "gasLimit": "200000", "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", "value": "0", "data": "602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000", + "network": 11812, "v": 0, "r": "047b1a36778d3a7c88b3b00623bf1c2be4875f8220df429ee6f661f8722f6dcd", "s": "484b805c306d017a107b1bd8b46115282b60f956fa04cf9d62a160e6d53a11ef", @@ -14,4 +15,4 @@ "hash": "997ffdd531ff879b9cdc8c0f147110c5696b6c5a11607566d846beecaf41b4ed" }, "serialized": "f8ec0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180b884602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000825c6ba0047b1a36778d3a7c88b3b00623bf1c2be4875f8220df429ee6f661f8722f6dcda0484b805c306d017a107b1bd8b46115282b60f956fa04cf9d62a160e6d53a11ef" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/validator-resignation.json b/tests/fixtures/transactions/evm_call/validator-resignation.json index 6d41cdaa..2776e42b 100644 --- a/tests/fixtures/transactions/evm_call/validator-resignation.json +++ b/tests/fixtures/transactions/evm_call/validator-resignation.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 200000, + "gasPrice": "5000000000", + "gasLimit": "200000", "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", "value": "0", "data": "b85f5da2", + "network": 11812, "v": 1, "r": "c4cdcf1e6ea401db32e3688aeb2e89e790ce2ea82b57a0125585ba085d6cec5c", "s": "0a8cde2f42b20a5b6aeb3a4d8443fc5c31f2c3af5eb698551a057bd5709847e3", @@ -14,4 +15,4 @@ "hash": "6bfc80b761bba22759f282a0639637f402e86ca07ca952833e0590592a661401" }, "serialized": "f86b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e18084b85f5da2825c6ca0c4cdcf1e6ea401db32e3688aeb2e89e790ce2ea82b57a0125585ba085d6cec5ca00a8cde2f42b20a5b6aeb3a4d8443fc5c31f2c3af5eb698551a057bd5709847e3" -} +} \ No newline at end of file diff --git a/tests/fixtures/transactions/evm_call/vote.json b/tests/fixtures/transactions/evm_call/vote.json index 8b6c590e..f412de29 100644 --- a/tests/fixtures/transactions/evm_call/vote.json +++ b/tests/fixtures/transactions/evm_call/vote.json @@ -1,11 +1,12 @@ { "data": { "nonce": "1", - "gasPrice": 5000000000, - "gasLimit": 200000, + "gasPrice": "5000000000", + "gasLimit": "200000", "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", "value": "0", "data": "6dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763", + "network": 11812, "v": 1, "r": "48cdb8cd112e05823e227319b66f2ef5e89c16ff5c568edab1cfa5f3fd8401c0", "s": "264a4bcd27a62696e15e8588765b2739c3ed34f4b83aacd87998b2ac4c4335ec", @@ -14,4 +15,4 @@ "hash": "7885cf77a0b272488efa03ed14994f2560490d14bd5df9b5fbdb7a6f389c8713" }, "serialized": "f88b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180a46dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763825c6ca048cdb8cd112e05823e227319b66f2ef5e89c16ff5c568edab1cfa5f3fd8401c0a0264a4bcd27a62696e15e8588765b2739c3ed34f4b83aacd87998b2ac4c4335ec" -} +} \ No newline at end of file From 9d2e348fad25c93b95ce8b9e948fdb36954cb3e7 Mon Sep 17 00:00:00 2001 From: Alex Barnsley <8069294+alexbarnsley@users.noreply.github.com> Date: Tue, 15 Jul 2025 16:48:14 +0100 Subject: [PATCH 18/18] handle updated fixture types in tests --- tests/Concerns/Deserialize.php | 6 ++++++ .../Transactions/Builder/MultipaymentBuilderTest.php | 12 ++++++------ .../Transactions/Builder/TransferBuilderTest.php | 8 ++++---- .../Unit/Transactions/Builder/UnvoteBuilderTest.php | 4 ++-- .../Builder/UsernameRegistrationBuilderTest.php | 4 ++-- .../Builder/UsernameResignationBuilderTest.php | 4 ++-- .../Builder/ValidatorRegistrationBuilderTest.php | 4 ++-- .../Builder/ValidatorResignationBuilderTest.php | 4 ++-- tests/Unit/Transactions/Builder/VoteBuilderTest.php | 4 ++-- tests/Unit/Transactions/Types/MultipaymentTest.php | 8 ++++---- tests/Unit/Transactions/Types/TransferTest.php | 4 ++-- tests/Unit/Utils/TransactionUtilsTest.php | 2 +- 12 files changed, 35 insertions(+), 29 deletions(-) diff --git a/tests/Concerns/Deserialize.php b/tests/Concerns/Deserialize.php index 2660e408..2d087cb3 100644 --- a/tests/Concerns/Deserialize.php +++ b/tests/Concerns/Deserialize.php @@ -45,6 +45,12 @@ protected function assertSameTransactions(array $expected, array $actual, array ksort($expected); ksort($actual); + foreach ($expected as $key => $value) { + if (in_array($key, ['gasPrice', 'gasLimit'])) { + $actual[$key] = (string) $value; + } + } + $this->assertSame($expected, $actual); } } diff --git a/tests/Unit/Transactions/Builder/MultipaymentBuilderTest.php b/tests/Unit/Transactions/Builder/MultipaymentBuilderTest.php index 1c9419e3..7795277c 100644 --- a/tests/Unit/Transactions/Builder/MultipaymentBuilderTest.php +++ b/tests/Unit/Transactions/Builder/MultipaymentBuilderTest.php @@ -16,8 +16,8 @@ ->pay('0xc3bbe9b1cee1ff85ad72b87414b0e9b7f2366763', UnitConverter::parseUnits('200000', 'wei')) ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); @@ -40,8 +40,8 @@ ->pay('0x6f0182a0cc707b055322ccf6d4cb6a5aff1aeb22', UnitConverter::parseUnits('100000', 'wei')) ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); @@ -63,8 +63,8 @@ ->nonce($fixture['data']['nonce']) ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); diff --git a/tests/Unit/Transactions/Builder/TransferBuilderTest.php b/tests/Unit/Transactions/Builder/TransferBuilderTest.php index d7f20489..44da5337 100644 --- a/tests/Unit/Transactions/Builder/TransferBuilderTest.php +++ b/tests/Unit/Transactions/Builder/TransferBuilderTest.php @@ -16,8 +16,8 @@ ->value(UnitConverter::parseUnits($fixture['data']['value'], 'wei')) ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); expect($builder->transaction->data['to'])->toBe($fixture['data']['to']); expect((string) $builder->transaction->data['value'])->toBe((string) $fixture['data']['value']); @@ -43,8 +43,8 @@ ->value(UnitConverter::parseUnits($fixture['data']['value'], 'wei')) ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); expect($builder->transaction->data['to'])->toBe($fixture['data']['to']); expect((string) $builder->transaction->data['value'])->toBe((string) $fixture['data']['value']); diff --git a/tests/Unit/Transactions/Builder/UnvoteBuilderTest.php b/tests/Unit/Transactions/Builder/UnvoteBuilderTest.php index 89a08617..8fd7b35e 100644 --- a/tests/Unit/Transactions/Builder/UnvoteBuilderTest.php +++ b/tests/Unit/Transactions/Builder/UnvoteBuilderTest.php @@ -14,8 +14,8 @@ ->nonce($fixture['data']['nonce']) ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); diff --git a/tests/Unit/Transactions/Builder/UsernameRegistrationBuilderTest.php b/tests/Unit/Transactions/Builder/UsernameRegistrationBuilderTest.php index af00b657..0803c550 100644 --- a/tests/Unit/Transactions/Builder/UsernameRegistrationBuilderTest.php +++ b/tests/Unit/Transactions/Builder/UsernameRegistrationBuilderTest.php @@ -16,8 +16,8 @@ ->username('fixture') ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); diff --git a/tests/Unit/Transactions/Builder/UsernameResignationBuilderTest.php b/tests/Unit/Transactions/Builder/UsernameResignationBuilderTest.php index 3287bc73..e217c7e7 100644 --- a/tests/Unit/Transactions/Builder/UsernameResignationBuilderTest.php +++ b/tests/Unit/Transactions/Builder/UsernameResignationBuilderTest.php @@ -14,9 +14,9 @@ ->nonce($fixture['data']['nonce']) ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); diff --git a/tests/Unit/Transactions/Builder/ValidatorRegistrationBuilderTest.php b/tests/Unit/Transactions/Builder/ValidatorRegistrationBuilderTest.php index 2374db18..2a02dc65 100644 --- a/tests/Unit/Transactions/Builder/ValidatorRegistrationBuilderTest.php +++ b/tests/Unit/Transactions/Builder/ValidatorRegistrationBuilderTest.php @@ -15,8 +15,8 @@ ->validatorPublicKey('30954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c0624') ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); diff --git a/tests/Unit/Transactions/Builder/ValidatorResignationBuilderTest.php b/tests/Unit/Transactions/Builder/ValidatorResignationBuilderTest.php index 51b82d6a..a40ba154 100644 --- a/tests/Unit/Transactions/Builder/ValidatorResignationBuilderTest.php +++ b/tests/Unit/Transactions/Builder/ValidatorResignationBuilderTest.php @@ -14,9 +14,9 @@ ->nonce($fixture['data']['nonce']) ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); diff --git a/tests/Unit/Transactions/Builder/VoteBuilderTest.php b/tests/Unit/Transactions/Builder/VoteBuilderTest.php index cd331119..bc0fc773 100644 --- a/tests/Unit/Transactions/Builder/VoteBuilderTest.php +++ b/tests/Unit/Transactions/Builder/VoteBuilderTest.php @@ -15,9 +15,9 @@ ->vote('0xC3bBE9B1CeE1ff85Ad72b87414B0E9B7F2366763') ->sign($this->passphrase); - expect((string) $builder->transaction->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); + expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']); expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']); - expect((string) $builder->transaction->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($builder->transaction->data['v'])->toBe($fixture['data']['v']); expect($builder->transaction->data['r'])->toBe($fixture['data']['r']); expect($builder->transaction->data['s'])->toBe($fixture['data']['s']); diff --git a/tests/Unit/Transactions/Types/MultipaymentTest.php b/tests/Unit/Transactions/Types/MultipaymentTest.php index 343b5267..3f54fd9b 100644 --- a/tests/Unit/Transactions/Types/MultipaymentTest.php +++ b/tests/Unit/Transactions/Types/MultipaymentTest.php @@ -116,8 +116,8 @@ $subject = new Multipayment($fixture['data']); - expect((string) $subject->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $subject->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $subject->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $subject->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($subject->data['nonce'])->toBe($fixture['data']['nonce']); expect($subject->data['v'])->toBe($fixture['data']['v']); expect($subject->data['r'])->toBe($fixture['data']['r']); @@ -135,8 +135,8 @@ $subject = new Multipayment($fixture['data']); - expect((string) $subject->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $subject->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $subject->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $subject->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($subject->data['nonce'])->toBe($fixture['data']['nonce']); expect($subject->data['v'])->toBe($fixture['data']['v']); expect($subject->data['r'])->toBe($fixture['data']['r']); diff --git a/tests/Unit/Transactions/Types/TransferTest.php b/tests/Unit/Transactions/Types/TransferTest.php index 05927369..dd9c933d 100644 --- a/tests/Unit/Transactions/Types/TransferTest.php +++ b/tests/Unit/Transactions/Types/TransferTest.php @@ -110,8 +110,8 @@ $subject = new Transfer($fixture['data']); - expect((string) $subject->data['gasPrice'])->toBe((string) $fixture['data']['gasPrice']); - expect((string) $subject->data['gasLimit'])->toBe((string) $fixture['data']['gasLimit']); + expect((string) $subject->data['gasPrice'])->toBe($fixture['data']['gasPrice']); + expect((string) $subject->data['gasLimit'])->toBe($fixture['data']['gasLimit']); expect($subject->data['nonce'])->toBe($fixture['data']['nonce']); expect($subject->data['to'])->toBe($fixture['data']['to']); expect((string) $subject->data['value'])->toBe((string) $fixture['data']['value']); diff --git a/tests/Unit/Utils/TransactionUtilsTest.php b/tests/Unit/Utils/TransactionUtilsTest.php index 8761c0a8..51d76d68 100644 --- a/tests/Unit/Utils/TransactionUtilsTest.php +++ b/tests/Unit/Utils/TransactionUtilsTest.php @@ -35,7 +35,7 @@ it('should handle string data starting with 0x', function () { $fixture = $this->getTransactionFixture('evm_call', 'username-resignation'); - $fixture['data']['gasPrice'] = '0x'.dechex($fixture['data']['gasPrice']); + $fixture['data']['nonce'] = '0x'.dechex((int) $fixture['data']['nonce']); $transaction = TransactionUtils::toBuffer($fixture['data']);