diff --git a/examples/contractExample.php b/examples/contractExample.php new file mode 100644 index 0000000..f8ba590 --- /dev/null +++ b/examples/contractExample.php @@ -0,0 +1,327 @@ +provider, $testAbi); +$web3->eth->accounts(function ($err, $accounts) use ($contract, $testBytecode) { + if ($err === null) { + if (isset($accounts->result)) { + $accounts = $accounts->result; + } else { + throw new RuntimeException('Please ensure you have access to web3 json rpc provider.'); + } + $fromAccount = $accounts[0]; + $toAccount = $accounts[1]; + $contract->bytecode($testBytecode)->new(1000000, 'Game Token', 1, 'GT', [ + 'from' => $fromAccount, + 'gas' => '0x200b20' + ], function ($err, $result) use ($contract, $fromAccount, $toAccount) { + if ($err !== null) { + throw $err; + } + if ($result->result) { + echo "\nTransaction has made:) id: " . $result->result . "\n"; + } + $transactionId = $result->result; + + $contract->eth->getTransactionReceipt($transactionId, function ($err, $transaction) use ($contract, $fromAccount, $toAccount) { + if ($err !== null) { + throw $err; + } + if ($transaction->result) { + $contractAddress = $transaction->result->contractAddress; + echo "\nTransaction has mind:) block number: " . $transaction->result->blockNumber . "\n"; + + $contract->at($contractAddress)->send('transfer', $toAccount, 16, [ + 'from' => $fromAccount, + 'gas' => '0x200b20' + ], function ($err, $result) use ($contract, $fromAccount, $toAccount) { + if ($err !== null) { + throw $err; + } + if ($result->result) { + echo "\nTransaction has made:) id: " . $result->result . "\n"; + } + $transactionId = $result->result; + + $contract->eth->getTransactionReceipt($transactionId, function ($err, $transaction) use ($fromAccount, $toAccount) { + if ($err !== null) { + throw $err; + } + if ($transaction->result) { + echo "\nTransaction has mind:) block number: " . $transaction->result->blockNumber . "\nTransaction dump:\n"; + var_dump($transaction->result); + } + }); + }); + } + }); + }); + } +});