mirror of
https://github.com/OPSnet/Gazelle.git
synced 2026-01-17 03:04:47 -05:00
41 lines
1.6 KiB
PHP
41 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Gazelle;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use GazelleUnitTest\Helper;
|
|
|
|
class MoneroTest extends TestCase {
|
|
public function testMoneroAddress(): void {
|
|
$cn = new \MoneroIntegrations\MoneroPhp\Cryptonote();
|
|
$mainAddress = "4AdUndXHHZ6cfufTMvppY6JwXNouMBzSkbLYfpAV5Usx3skxNgYeYTRj5UzqtReoS44qo9mtmXCqY45DJ852K5Jv2684Rge";
|
|
$mainDecoded = $cn->decode_address($mainAddress);
|
|
$m = new Donate\Monero($mainAddress);
|
|
|
|
$user = Helper::makeUser('user.' . randomString(10), 'monero');
|
|
$addr = $m->address($user->id);
|
|
$addr2 = $m->address($user->id);
|
|
|
|
$this->assertEquals($addr, $addr2, 'monero-deterministic-address');
|
|
|
|
$addrDecoded = $cn->decode_address($addr);
|
|
|
|
$this->assertEquals($mainDecoded['spendKey'], $addrDecoded['spendKey'], 'monero-verify-spendkey');
|
|
$this->assertEquals($mainDecoded['viewKey'], $addrDecoded['viewKey'], 'monero-verify-viewkey');
|
|
$this->assertEquals('13', $addrDecoded['networkByte'], 'monero-verify-network-byte');
|
|
|
|
// man, this lib is very barebone; and why is it using hex everywhere?
|
|
$decoded = new \MoneroIntegrations\MoneroPhp\base58()->decode($addr);
|
|
$paymentId = substr($decoded, 64 + 66, 16);
|
|
|
|
$this->assertEquals($user->id, $m->findUserIdbyPaymentId($paymentId), 'monero-lookup-payment-id');
|
|
|
|
$this->assertTrue($m->invalidate($user->id), 'monero-invalidate-success');
|
|
$this->assertFalse($m->invalidate($user->id), 'monero-invalidate-fail');
|
|
|
|
$this->assertNull($m->findUserIdbyPaymentId($paymentId), 'monero-lookup-payment-id-fail');
|
|
|
|
$user->remove();
|
|
}
|
|
}
|