6cb54ca790
* Update queries to fetch data from cids tables * Fix eth_getTransactionByHash to return tx from canonical block * Fetch transaction by hash in a single query * Update queries to fetch data from IPLD blocks table * Avoid NULL result from canonical block hash query * Update GitHub workflow and script to run unit tests * Avoid usage of LIMIT 1 in queries for GQL API * Fetch IPLD data separately when retrieving latest account data or storage value * Upgrade geth dependency * Update GitHub workflow |
||
---|---|---|
.. | ||
contract | ||
direct_proxy_integration_test.go | ||
helper.go | ||
integration_suite_test.go | ||
integration_test.go | ||
README.md | ||
watch_address_integration_test.go |
Test Insructions
Setup
-
Clone stack-orchestrator, ipld-eth-db go-ethereum repositories.
-
Checkout v4 release in ipld-eth-db repo.
# In ipld-eth-db repo. git checkout v4.2.0-alpha
-
Checkout v4 release in go-ethereum repo.
# In go-ethereum repo. git checkout v1.10.19-statediff-4.1.0-alpha
-
Checkout working commit in stack-orchestrator repo.
# In stack-orchestrator repo. git checkout f2fd766f5400fcb9eb47b50675d2e3b1f2753702
Run
-
Run unit tests:
# In ipld-eth-server root directory. ./scripts/run_unit_test.sh
-
Run integration tests:
-
In stack-orchestrator repo, create config file:
cd helper-scripts ./create-config.sh
A
config.sh
will be created in the root directory. -
Update/Edit the generated config file with:
#!/bin/bash # Path to ipld-eth-server repo. vulcanize_ipld_eth_db=~/ipld-eth-db/ # Path to go-ethereum repo. vulcanize_go_ethereum=~/go-ethereum/ # Path to ipld-eth-server repo. vulcanize_ipld_eth_server=~/ipld-eth-server/ # Path to test contract. vulcanize_test_contract=~/ipld-eth-server/test/contract genesis_file_path='start-up-files/go-ethereum/genesis.json' db_write=true eth_forward_eth_calls=false eth_proxy_on_error=false eth_http_path="go-ethereum:8545"
-
Run stack-orchestrator:
# In stack-orchestrator root directory. cd helper-scripts ./wrapper.sh \ -e docker \ -d ../docker/local/docker-compose-db-sharding.yml \ -d ../docker/local/docker-compose-go-ethereum.yml \ -d ../docker/local/docker-compose-ipld-eth-server.yml \ -d ../docker/local/docker-compose-contract.yml \ -v remove \ -p ../config.sh
-
Run test:
# In ipld-eth-server root directory. ./scripts/run_integration_test.sh
-
Update stack-orchestrator
config.sh
file:#!/bin/bash # Path to go-ethereum repo. vulcanize_go_ethereum=~/go-ethereum/ # Path to ipld-eth-server repo. vulcanize_ipld_eth_server=~/ipld-eth-server/ # Path to test contract. vulcanize_test_contract=~/ipld-eth-server/test/contract genesis_file_path='start-up-files/go-ethereum/genesis.json' db_write=false eth_forward_eth_calls=true eth_proxy_on_error=false eth_http_path="go-ethereum:8545"
-
Stop the stack-orchestrator and start again using the same command
-
Run integration tests for direct proxy fall-through of eth_calls:
./scripts/run_integration_test_forward_eth_calls.sh
-