diff --git a/src/Validators/CallValidator.php b/src/Validators/CallValidator.php index aed5f6c..f7a83e4 100644 --- a/src/Validators/CallValidator.php +++ b/src/Validators/CallValidator.php @@ -29,7 +29,7 @@ class CallValidator if (!is_array($value)) { return false; } - if (isset($value['from']) && AddressValidator::validate($value['from']) === false && $value['from'] !== '') { + if (isset($value['from']) && AddressValidator::validate($value['from']) === false) { return false; } if (!isset($value['to'])) { diff --git a/test/unit/CallValidatorTest.php b/test/unit/CallValidatorTest.php new file mode 100644 index 0000000..e533632 --- /dev/null +++ b/test/unit/CallValidatorTest.php @@ -0,0 +1,75 @@ +validator = new CallValidator; + } + + /** + * testValidate + * + * @return void + */ + public function testValidate() + { + $validator = $this->validator; + + $this->assertEquals(false, $validator->validate('hello web3.php')); + $this->assertEquals(false, $validator->validate([])); + $this->assertEquals(false, $validator->validate([ + 'from' => '', + 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', + ])); + $this->assertEquals(false, $validator->validate([ + 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', + 'gas' => '', + ])); + $this->assertEquals(false, $validator->validate([ + 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', + 'gasPrice' => '', + ])); + $this->assertEquals(false, $validator->validate([ + 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', + 'value' => '', + ])); + $this->assertEquals(false, $validator->validate([ + 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', + 'data' => '', + ])); + $this->assertEquals(false, $validator->validate([ + 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', + 'nonce' => '', + ])); + $this->assertEquals(true, $validator->validate([ + 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', + ])); + $this->assertEquals(true, $validator->validate([ + 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', + 'gas' => '0x76c0', + 'gasPrice' => '0x9184e72a000', + 'value' => '0x9184e72a', + 'data' => '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675', + 'nonce' => '0x9184e72a', + ])); + } +} \ No newline at end of file