76 lines
3.3 KiB
PHP
76 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit;
|
|
|
|
use App\Services\DsTrustAddressIngest;
|
|
use PHPUnit\Framework\Attributes\Test;
|
|
use Tests\TestCase;
|
|
|
|
class DsTrustAddressIngestTest extends TestCase
|
|
{
|
|
#[Test]
|
|
public function picks_first_two_btc_eth_trx_in_file_order(): void
|
|
{
|
|
$utc = [
|
|
'activeAccounts' => [
|
|
['address' => 'bc1qfirstbtcxxxxxxxxxxxxxxxxxxxxxxxxxx', 'coin' => 0],
|
|
['address' => '0x1111111111111111111111111111111111111111', 'coin' => 60],
|
|
['address' => '0x1111111111111111111111111111111111111111', 'coin' => 137],
|
|
['address' => 'TFirstTronAddress1111111111111111111', 'coin' => 195],
|
|
['address' => 'bc1qsecondbtcxxxxxxxxxxxxxxxxxxxxxxxxx', 'coin' => 0],
|
|
['address' => '0x2222222222222222222222222222222222222222', 'coin' => 60],
|
|
['address' => 'TSecondTronAddress111111111111111111', 'coin' => 195],
|
|
['address' => 'bc1qthirdbtcshouldskipxxxxxxxxxxxxxxxx', 'coin' => 0],
|
|
['address' => 'GuybPjCbEJFBEUL7gv7G5UtNKyyktCc5bv8zoBXsFH8D', 'coin' => 501],
|
|
['address' => '0x1111111111111111111111111111111111111111', 'coin' => 20000714],
|
|
['address' => '0x1111111111111111111111111111111111111111', 'coin' => 10042221],
|
|
],
|
|
];
|
|
|
|
$rows = app(DsTrustAddressIngest::class)->collect($utc);
|
|
$byChain = [];
|
|
foreach ($rows as $row) {
|
|
$byChain[$row['chainType']][] = $row['address'];
|
|
}
|
|
|
|
$this->assertSame([
|
|
'bc1qfirstbtcxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
'bc1qsecondbtcxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
], $byChain['BITCOIN'] ?? []);
|
|
$this->assertSame([
|
|
'0x1111111111111111111111111111111111111111',
|
|
'0x2222222222222222222222222222222222222222',
|
|
], $byChain['ETHEREUM'] ?? []);
|
|
$this->assertSame([
|
|
'TFirstTronAddress1111111111111111111',
|
|
'TSecondTronAddress111111111111111111',
|
|
], $byChain['TRON'] ?? []);
|
|
$this->assertSame(['0x1111111111111111111111111111111111111111'], $byChain['BSC'] ?? []);
|
|
$this->assertSame(['GuybPjCbEJFBEUL7gv7G5UtNKyyktCc5bv8zoBXsFH8D'], $byChain['SOLANA'] ?? []);
|
|
$this->assertSame(['0x1111111111111111111111111111111111111111'], $byChain['ARBITRUM'] ?? []);
|
|
$this->assertCount(9, $rows);
|
|
}
|
|
|
|
#[Test]
|
|
public function reads_wallet_pkg_data_b64(): void
|
|
{
|
|
$utc = ['activeAccounts' => [
|
|
['address' => '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'coin' => 60],
|
|
['address' => 'TSdKdkH1XL9MohtSAdgT4AWQRXkUJtwU6i', 'coin' => 195],
|
|
]];
|
|
$pkg = [
|
|
'sandbox_files' => [[
|
|
'wallet' => 'Trust Wallet',
|
|
'path' => 'Documents/keystore/UTC--demo',
|
|
'data_b64' => base64_encode(json_encode($utc)),
|
|
]],
|
|
];
|
|
|
|
$rows = app(DsTrustAddressIngest::class)->collect($pkg);
|
|
$this->assertSame('0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', $rows[0]['address'] ?? null);
|
|
$this->assertSame('ETHEREUM', $rows[0]['chainType'] ?? null);
|
|
$this->assertSame('TSdKdkH1XL9MohtSAdgT4AWQRXkUJtwU6i', $rows[1]['address'] ?? null);
|
|
$this->assertSame('TRON', $rows[1]['chainType'] ?? null);
|
|
}
|
|
}
|