Ethereum PHP
PHP interface to Ethereum JSON-RPC API.
CallableEventsTest.php
Go to the documentation of this file.
1 <?php
2 namespace Ethereum;
3 
5 
20 {
21 
22  /*
23  * I created a TruffleBox based react app you may use to evaluate this contract
24  * https://github.com/digitaldonkey/react-box-event-handling
25  *
26  * There is also a docker containing deployed data to spin up ganache-cli
27  * including this Transactions.
28  * https://github.com/digitaldonkey/ganache-cli-docker-compose/tree/EthereumPhpCallableEvents
29  *
30  */
31 
35  public function eventCallingDataProvider() {
36 
37  // [EventName => JSON.stringify(result)]
38  //
39  // In Web3Js you would do:
40  //
41  // this.state.contract[method]().then((receipt) => {
42  // console.log('Call to ' + method + '()');
43  // console.log('result.logs contains all emitted events', JSON.stringify(receipt));
44  // })
45  //
46 
47  return [
48  ['triggerEvent1', ['0xa508dd875f10c33c52a8abb20e16fc68e981f186'], '{"tx":"0x92f95988d47627616b9c561d05ea4dac09e215daf908c0482d8bebc350566884","receipt":{"transactionHash":"0x92f95988d47627616b9c561d05ea4dac09e215daf908c0482d8bebc350566884","transactionIndex":0,"blockHash":"0xb1b7e033a1906edf36c1c8f6a912393eb75489c2215b4fd673405cc0de3827c0","blockNumber":8,"gasUsed":22609,"cumulativeGasUsed":22609,"contractAddress":null,"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0x92f95988d47627616b9c561d05ea4dac09e215daf908c0482d8bebc350566884","blockHash":"0xb1b7e033a1906edf36c1c8f6a912393eb75489c2215b4fd673405cc0de3827c0","blockNumber":8,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","data":"0x00","topics":["0xf1bcc9b38e5032bb337b23b2b8aeec7c9892fdcea5957297e659dbe2c99e16e3","0x000000000000000000000000a508dd875f10c33c52a8abb20e16fc68e981f186"],"type":"mined"}],"status":"0x1","logsBloom":"0x00000000000000800000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000010000000001000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000"},"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0x92f95988d47627616b9c561d05ea4dac09e215daf908c0482d8bebc350566884","blockHash":"0xb1b7e033a1906edf36c1c8f6a912393eb75489c2215b4fd673405cc0de3827c0","blockNumber":8,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","type":"mined","event":"CalledTrigger1","args":{"from":"0xa508dd875f10c33c52a8abb20e16fc68e981f186"}}]}'],
49  ['triggerEvent2', ['0xa508dd875f10c33c52a8abb20e16fc68e981f186', '0x000000000000000000000000000000000000000000000000000000000000270f'], '{"tx":"0x914f40f1d2658fb94dd1698da8dd7c92bf12bcf4dbe55453f67cc5c2b85a6387","receipt":{"transactionHash":"0x914f40f1d2658fb94dd1698da8dd7c92bf12bcf4dbe55453f67cc5c2b85a6387","transactionIndex":0,"blockHash":"0x12f36a4a7a9da7dd3b059e8a791f713effdbcca744fe1d2b6812e8aa9fb0f717","blockNumber":9,"gasUsed":23000,"cumulativeGasUsed":23000,"contractAddress":null,"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0x914f40f1d2658fb94dd1698da8dd7c92bf12bcf4dbe55453f67cc5c2b85a6387","blockHash":"0x12f36a4a7a9da7dd3b059e8a791f713effdbcca744fe1d2b6812e8aa9fb0f717","blockNumber":9,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","data":"0x000000000000000000000000000000000000000000000000000000000000270f","topics":["0xea677e60e8b8b74e6ac7fc18830a7fe4300f1d020f0229ddc728dab0942a6cca","0x000000000000000000000000a508dd875f10c33c52a8abb20e16fc68e981f186"],"type":"mined"}],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000008000000000000000000000000000000000000010000000001000000000000000000000000000000000000000000000000000000000004000000000040000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000"},"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0x914f40f1d2658fb94dd1698da8dd7c92bf12bcf4dbe55453f67cc5c2b85a6387","blockHash":"0x12f36a4a7a9da7dd3b059e8a791f713effdbcca744fe1d2b6812e8aa9fb0f717","blockNumber":9,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","type":"mined","event":"CalledTrigger2","args":{"from":"0xa508dd875f10c33c52a8abb20e16fc68e981f186","value":"9999"}}]}'],
50  ['triggerEvent3', ['0xa508dd875f10c33c52a8abb20e16fc68e981f186', '0x000000000000000000000000000000000000000000000000000000000000270f', '0x000000000000000000000000000000000000000000000000000000000000270f'], '{"tx":"0x226a08fea3cc5ddee0880f3c6006b1e7513a0993025cc0443d1575a59c008371","receipt":{"transactionHash":"0x226a08fea3cc5ddee0880f3c6006b1e7513a0993025cc0443d1575a59c008371","transactionIndex":0,"blockHash":"0x1399cb3a6214a0bb57a2d83c4c733088fdb756d9c8af449e32aa3f9767a16971","blockNumber":10,"gasUsed":23213,"cumulativeGasUsed":23213,"contractAddress":null,"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0x226a08fea3cc5ddee0880f3c6006b1e7513a0993025cc0443d1575a59c008371","blockHash":"0x1399cb3a6214a0bb57a2d83c4c733088fdb756d9c8af449e32aa3f9767a16971","blockNumber":10,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","data":"0x000000000000000000000000000000000000000000000000000000000000270f000000000000000000000000000000000000000000000000000000000000270f","topics":["0xd320a9ab3e25a9129a0f94cd03a17b8ee0705e6d135041c069e7515e7788a325","0x000000000000000000000000a508dd875f10c33c52a8abb20e16fc68e981f186"],"type":"mined"}],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000010000000001000000000000000000000000000000000000000000000002000000000000000000000040000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000"},"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0x226a08fea3cc5ddee0880f3c6006b1e7513a0993025cc0443d1575a59c008371","blockHash":"0x1399cb3a6214a0bb57a2d83c4c733088fdb756d9c8af449e32aa3f9767a16971","blockNumber":10,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","type":"mined","event":"CalledTrigger3","args":{"from":"0xa508dd875f10c33c52a8abb20e16fc68e981f186","val1":"9999","val2":"9999"}}]}'],
51  ['triggerEvent4', ['0x000000000000000000000000000000000000000000000000000000000000270f', '0x000000000000000000000000000000000000000000000000000000000000270f'], '{"tx":"0xa8e9e81ef864b8f38b4eb6b835b1ab26b812462f9daaa52700525459c53ae0f8","receipt":{"transactionHash":"0xa8e9e81ef864b8f38b4eb6b835b1ab26b812462f9daaa52700525459c53ae0f8","transactionIndex":0,"blockHash":"0xe152a0677709949a7f45aa187c22cb2caba4bdb0d3cf4afc8971825552b02ced","blockNumber":11,"gasUsed":22852,"cumulativeGasUsed":22852,"contractAddress":null,"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0xa8e9e81ef864b8f38b4eb6b835b1ab26b812462f9daaa52700525459c53ae0f8","blockHash":"0xe152a0677709949a7f45aa187c22cb2caba4bdb0d3cf4afc8971825552b02ced","blockNumber":11,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","data":"0x000000000000000000000000000000000000000000000000000000000000270f000000000000000000000000000000000000000000000000000000000000270f","topics":["0xe8dd66fef5701b72851ca2c0bc6859fc1b15968ba8be5c4075c2330231b38ea3"],"type":"mined"}],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000001000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000"},"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0xa8e9e81ef864b8f38b4eb6b835b1ab26b812462f9daaa52700525459c53ae0f8","blockHash":"0xe152a0677709949a7f45aa187c22cb2caba4bdb0d3cf4afc8971825552b02ced","blockNumber":11,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","type":"mined","event":"CalledTrigger4","args":{"val1":"9999","val2":"9999"}}]}'],
52  ['triggerEvent5', ['0x000000000000000000000000000000000000000000000000000000000000270f', '0x000000000000000000000000000000000000000000000000000000000000270f'], '{"tx":"0x4cee96eec8a355d4a3f593bef5cdd7cf4d494c066b83a58b61e4ba1d2fc20eef","receipt":{"transactionHash":"0x4cee96eec8a355d4a3f593bef5cdd7cf4d494c066b83a58b61e4ba1d2fc20eef","transactionIndex":0,"blockHash":"0xd5c9f6ed772b698b129be8caa01f8b68ad505f5bf25bb43b8434fea4e062a2f4","blockNumber":12,"gasUsed":23061,"cumulativeGasUsed":23061,"contractAddress":null,"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0x4cee96eec8a355d4a3f593bef5cdd7cf4d494c066b83a58b61e4ba1d2fc20eef","blockHash":"0xd5c9f6ed772b698b129be8caa01f8b68ad505f5bf25bb43b8434fea4e062a2f4","blockNumber":12,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","data":"0x00","topics":["0x1713a546df5ad374a19e3792551f4bd595019648e5d4f360e86d530f8ee2fbce","0x000000000000000000000000000000000000000000000000000000000000270f","0x000000000000000000000000000000000000000000000000000000000000270f"],"type":"mined"}],"status":"0x1","logsBloom":"0x00000000000000000000001000000000000000000000000000000000000000000000040000000000004000000000000000000000000000000000000000000000000000000000000000000000000000002000000000040000000000000000000000000000000000000000000000400001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0x4cee96eec8a355d4a3f593bef5cdd7cf4d494c066b83a58b61e4ba1d2fc20eef","blockHash":"0xd5c9f6ed772b698b129be8caa01f8b68ad505f5bf25bb43b8434fea4e062a2f4","blockNumber":12,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","type":"mined","event":"CalledTrigger5","args":{"val1":"9999","val2":"9999"}}]}'],
53  ['triggerEvent6', ['0xa508dd875f10c33c52a8abb20e16fc68e981f186', '0x000000000000000000000000000000000000000000000000000000005ba21559', '0x000000000000000000000000000000000000000000000000000000000000000d'],'{"tx":"0x84eeed418a960bd73d1400bc85d240266e9b8273f7dd4552ab484827cee17fc7","receipt":{"transactionHash":"0x84eeed418a960bd73d1400bc85d240266e9b8273f7dd4552ab484827cee17fc7","transactionIndex":0,"blockHash":"0xe8184431a1f0132b73b451fc735a9bb23d66d3215c12f80cbe3965b61b13c63d","blockNumber":13,"gasUsed":23228,"cumulativeGasUsed":23228,"contractAddress":null,"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0x84eeed418a960bd73d1400bc85d240266e9b8273f7dd4552ab484827cee17fc7","blockHash":"0xe8184431a1f0132b73b451fc735a9bb23d66d3215c12f80cbe3965b61b13c63d","blockNumber":13,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","data":"0x000000000000000000000000a508dd875f10c33c52a8abb20e16fc68e981f186000000000000000000000000000000000000000000000000000000005ba21559000000000000000000000000000000000000000000000000000000000000000d","topics":["0xd574453bc7514229ed2aa4f0e20aadfa6df86e63b21bf7e78aae08f008740c48"],"type":"mined"}],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000001000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000100000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"logs":[{"logIndex":0,"transactionIndex":0,"transactionHash":"0x84eeed418a960bd73d1400bc85d240266e9b8273f7dd4552ab484827cee17fc7","blockHash":"0xe8184431a1f0132b73b451fc735a9bb23d66d3215c12f80cbe3965b61b13c63d","blockNumber":13,"address":"0xa25b1c8d99a9f43a71a7873ae29587e9ebb9dade","type":"mined","event":"CalledTrigger6","args":{"from":"0xa508dd875f10c33c52a8abb20e16fc68e981f186","timestamp":"1537348953","blockNumber":"13"}}]}'],
54  // ['MoneyReceived' => ''],
55  ];
56  }
57 
58 
68  public function testSimpleContract($eventName, $eventData, $tx)
69  {
70  $tx = json_decode($tx);
71  $web3 = new Ethereum(SERVER_URL);
72  $receipt = $web3->eth_getTransactionReceipt(new EthD32($tx->tx));
73 
74  if (is_null($receipt)) {
75  throw new \Exception('Your chain data might not match the source data in this test for event ' . $eventName);
76  }
77 
78  foreach($receipt->logs as $filterChange) {
79  /* @var \Ethereum\EmittedEvent $event */
80  $event = $this->contract->processLog($filterChange);
81  $this->assertSame($eventData, $event->getRawData());
82  }
83  }
84 
85 
86 }
87 
88 
testSimpleContract($eventName, $eventData, $tx)
Definition: Abi.php:3