-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathValidatorRegistrationBuilderTest.php
More file actions
75 lines (59 loc) · 3.58 KB
/
ValidatorRegistrationBuilderTest.php
File metadata and controls
75 lines (59 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
declare(strict_types=1);
use ArkEcosystem\Crypto\Transactions\Builder\ValidatorRegistrationBuilder;
use ArkEcosystem\Crypto\Utils\UnitConverter;
it('should sign it with a passphrase', function () {
$fixture = $this->getTransactionFixture('evm_call', 'validator-registration');
$builder = ValidatorRegistrationBuilder::new()
->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei'))
->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei'))
->nonce($fixture['data']['nonce'])
->validatorPublicKey('30954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c0624')
->sign($this->passphrase);
expect((string) $builder->transaction->data['gasPrice'])->toBe($fixture['data']['gasPrice']);
expect((string) $builder->transaction->data['gasLimit'])->toBe($fixture['data']['gasLimit']);
expect($builder->transaction->data['nonce'])->toBe($fixture['data']['nonce']);
expect($builder->transaction->data['v'])->toBe($fixture['data']['v']);
expect($builder->transaction->data['r'])->toBe($fixture['data']['r']);
expect($builder->transaction->data['s'])->toBe($fixture['data']['s']);
expect($builder->transaction->serialize()->getHex())->toBe($fixture['serialized']);
expect($builder->transaction->data['hash'])->toBe($fixture['data']['hash']);
expect($builder->verify())->toBeTrue();
});
it('should convert to json when casting to string', function () {
$fixture = $this->getTransactionFixture('evm_call', 'validator-registration');
$builder = ValidatorRegistrationBuilder::new()
->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei'))
->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei'))
->nonce($fixture['data']['nonce'])
->validatorPublicKey('30954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c0624')
->sign($this->passphrase);
expect((string) $builder)->toBe($builder->toJson());
});
it('should set value on the transaction', function () {
$builder = ValidatorRegistrationBuilder::new()
->value(UnitConverter::parseUnits(10, 'ark'));
expect((string) $builder->transaction->data['value'])->toBe('10000000000000000000');
});
it('should convert to an array', function () {
$fixture = $this->getTransactionFixture('evm_call', 'unvote');
$builder = ValidatorRegistrationBuilder::new()
->gasPrice(UnitConverter::parseUnits($fixture['data']['gasPrice'], 'wei'))
->gasLimit(UnitConverter::parseUnits($fixture['data']['gasLimit'], 'wei'))
->nonce($fixture['data']['nonce'])
->validatorPublicKey('30954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c0624')
->sign($this->passphrase);
expect($builder->toArray())->toBe([
'gasPrice' => $builder->transaction->data['gasPrice'],
'gasLimit' => $builder->transaction->data['gasLimit'],
'hash' => $builder->transaction->data['hash'],
'nonce' => $builder->transaction->data['nonce'],
'senderPublicKey' => $builder->transaction->data['senderPublicKey'],
'to' => $builder->transaction->data['to'],
'value' => $builder->transaction->data['value'],
'data' => $builder->transaction->data['data'],
'r' => $builder->transaction->data['r'],
's' => $builder->transaction->data['s'],
'v' => $builder->transaction->data['v'],
]);
});