feat: ds
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
<?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],
|
||||
],
|
||||
];
|
||||
|
||||
$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->assertCount(6, $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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user