[ ['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); } }