Skip to content

Commit

Permalink
Merge branch 'mainsail-develop' into refactor/schedule-cache-blocks-c…
Browse files Browse the repository at this point in the history
…ommand
  • Loading branch information
alfonsobries authored Jan 27, 2025
2 parents c948a08 + 5b0564d commit 5c25fa5
Show file tree
Hide file tree
Showing 6 changed files with 109 additions and 86 deletions.
2 changes: 1 addition & 1 deletion app/Models/Concerns/Transaction/CanBeSorted.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public function scopeSortByAge(mixed $query, SortDirection $sortDirection): Buil

public function scopeSortByAddress(mixed $query, SortDirection $sortDirection): Builder
{
return $query->join('wallets', 'wallets.public_key', '=', 'transactions.sender_public_key')
return $query->join('wallets', 'wallets.address', '=', 'transactions.sender_address')
->orderBy('wallets.address', $sortDirection->value);
}

Expand Down
1 change: 0 additions & 1 deletion database/factories/WalletFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ public function definition()
$wallet = $this->faker->wallet;

return [
'id' => $this->faker->uuid,
'address' => $wallet['address'],
'public_key' => $wallet['publicKey'],
'balance' => $this->faker->numberBetween(1, 1000) * 1e18,
Expand Down
2 changes: 0 additions & 2 deletions tests/Feature/Http/Livewire/Validators/MissedBlocksTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -586,7 +586,6 @@
$sortByVotesData[$wallet['address']] = random_int(10, 100);

$validatorData[] = [
'id' => faker()->uuid,
'balance' => faker()->numberBetween(1, 1000) * 1e18,
'nonce' => faker()->numberBetween(1, 1000),
'updated_at' => faker()->numberBetween(1, 1000),
Expand Down Expand Up @@ -677,7 +676,6 @@
$sortByVotesData[$wallet['address']] = random_int(10, 100);

$validatorData[] = [
'id' => faker()->uuid,
'balance' => faker()->numberBetween(1, 1000) * 1e18,
'nonce' => faker()->numberBetween(1, 1000),
'updated_at' => faker()->numberBetween(1, 1000),
Expand Down
187 changes: 108 additions & 79 deletions tests/Feature/Http/Livewire/Validators/RecentVotesTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,32 +26,42 @@ function generateReceipts(): void
function generateTransactions(): array
{
$validator1 = Wallet::factory()->activeValidator()->create([
'address' => '0x522CbD1C22529a27ba4BFDBf4b6f037F71b2AC77',
'attributes' => [
'username' => 'validator-1',
],
]);

$validator2 = Wallet::factory()->activeValidator()->create([
'address' => '0x09C94A51cb63b4b70A9Dbf190543c371741D13Fd',
'attributes' => [
'username' => 'validator-2',
],
]);

$validator3 = Wallet::factory()->activeValidator()->create([
'address' => '0x2a74550fC2e741118182B7ab020DC0B7Ed01e1db',
'attributes' => [
'username' => 'validator-3',
],
]);

$voteTransaction = Transaction::factory()->vote($validator1->address)->create([
'timestamp' => Carbon::parse('2023-09-18 03:41:04')->getTimestampMs(),
'sender_address' => '0xC5a19e23E99bdFb7aae4301A009763AdC01c1b5B',
]);
$sender1 = Wallet::factory()->create(['address' => '0xC5a19e23E99bdFb7aae4301A009763AdC01c1b5B']);
$sender2 = Wallet::factory()->create(['address' => '0x38b4a84773bC55e88D07cBFC76444C2A37600084']);

$unvoteTransaction = Transaction::factory()->unvote()->create([
'timestamp' => Carbon::parse('2023-09-18 04:41:04')->getTimestampMs(),
'sender_address' => '0x38b4a84773bC55e88D07cBFC76444C2A37600084',
]);
$voteTransaction = Transaction::factory()
->vote($validator1->address)
->create([
'timestamp' => Carbon::parse('2023-09-18 03:41:04')->getTimestampMs(),
'sender_address' => $sender1->address,
]);

$unvoteTransaction = Transaction::factory()
->unvote()
->create([
'timestamp' => Carbon::parse('2023-09-18 04:41:04')->getTimestampMs(),
'sender_address' => $sender2->address,
]);

generateReceipts();

Expand Down Expand Up @@ -240,10 +250,15 @@ function generateTransactions(): array
->assertSet('sortKey', 'age')
->assertSet('sortDirection', SortDirection::DESC)
->assertSeeInOrder([
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
'vote-item*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
'vote-item*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,

'vote-mobile*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
'vote-mobile*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
]);
});

Expand All @@ -255,41 +270,15 @@ function generateTransactions(): array
->call('sortBy', 'age')
->assertSet('sortDirection', SortDirection::ASC)
->assertSeeInOrder([
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
]);
});

it('should sort name in ascending order', function () {
$data = generateTransactions();

Livewire::test(RecentVotes::class)
->call('setIsReady')
->call('sortBy', 'name')
->assertSet('sortDirection', SortDirection::ASC)
->assertSeeInOrder([
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
]);
});

it('should sort name in descending order', function () {
$data = generateTransactions();

Livewire::test(RecentVotes::class)
->call('setIsReady')
->call('sortBy', 'name')
->call('sortBy', 'name')
->assertSet('sortDirection', SortDirection::DESC)
->assertSeeInOrder([
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
'vote-item*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
'vote-item*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,

'vote-mobile*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
'vote-mobile*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
]);
});

Expand All @@ -301,10 +290,15 @@ function generateTransactions(): array
->call('sortBy', 'address')
->assertSet('sortDirection', SortDirection::ASC)
->assertSeeInOrder([
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
'vote-item*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
'vote-item*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,

'vote-mobile*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
'vote-mobile*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
]);
});

Expand All @@ -317,10 +311,15 @@ function generateTransactions(): array
->call('sortBy', 'address')
->assertSet('sortDirection', SortDirection::DESC)
->assertSeeInOrder([
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
'vote-item*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
'vote-item*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,

'vote-mobile*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
'vote-mobile*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
]);
});

Expand All @@ -332,10 +331,15 @@ function generateTransactions(): array
->call('sortBy', 'type')
->assertSet('sortDirection', SortDirection::ASC)
->assertSeeInOrder([
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
'vote-item*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
'vote-item*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,

'vote-mobile*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
'vote-mobile*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
]);
});

Expand All @@ -348,10 +352,15 @@ function generateTransactions(): array
->call('sortBy', 'type')
->assertSet('sortDirection', SortDirection::DESC)
->assertSeeInOrder([
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
'vote-item*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
'vote-item*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,

'vote-mobile*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
'vote-mobile*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
]);
});

Expand Down Expand Up @@ -401,18 +410,28 @@ function generateTransactions(): array

$this->get('/test-validators?sort=type&sort-direction=asc')
->assertSeeInOrder([
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
'vote-item*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
'vote-item*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,

'vote-mobile*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
'vote-mobile*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
]);

$this->get('/test-validators?sort=type&sort-direction=desc')
->assertSeeInOrder([
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
'vote-item*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
'vote-item*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,

'vote-mobile*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
'vote-mobile*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
]);
});

Expand All @@ -425,18 +444,28 @@ function generateTransactions(): array

$this->get('/test-validators?sort=type&sort-direction=desc')
->assertSeeInOrder([
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
'vote-item*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
'vote-item*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,

'vote-mobile*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
'vote-mobile*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
]);

$this->get('/test-validators?sort=type&sort-direction=testing')
->assertSeeInOrder([
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
$data['unvoteTransaction']->address,
$data['voteTransaction']->address,
'vote-item*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
'vote-item*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,

'vote-mobile*'.$data['voteTransaction']->id,
$data['voteTransaction']->id,
'vote-mobile*'.$data['unvoteTransaction']->id,
$data['unvoteTransaction']->id,
]);
});

Expand Down
2 changes: 0 additions & 2 deletions tests/Feature/Http/Livewire/Validators/ValidatorsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -830,7 +830,6 @@
foreach (range(1, 145) as $rank) {
$wallet = faker()->wallet;
$validatorData[] = [
'id' => faker()->uuid,
'balance' => faker()->numberBetween(1, 1000) * 1e18,
'nonce' => faker()->numberBetween(1, 1000),
'attributes' => [
Expand Down Expand Up @@ -895,7 +894,6 @@
foreach (range(1, 145) as $rank) {
$wallet = faker()->wallet;
$validatorData[] = [
'id' => faker()->uuid,
'balance' => faker()->numberBetween(1, 1000) * 1e18,
'nonce' => faker()->numberBetween(1, 1000),
'updated_at' => faker()->numberBetween(1, 1000),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ final class CreateWalletsTable extends Migration
public function up()
{
Schema::create('wallets', function (Blueprint $table) {
$table->string('id');
$table->string('address');
$table->string('public_key')->nullable();
$table->addColumn('numeric', 'balance');
Expand Down

0 comments on commit 5c25fa5

Please sign in to comment.