Skip to content

Commit

Permalink
fix infura tests and secrets (#7163)
Browse files Browse the repository at this point in the history
* have tests run in pr

* update test

* update

* update secrets

* update

* remove tests that involve getting blocks that are archived

* update storage tests

* adding tests

* update tests

* update package.json

* update

* update tests

* update

* update tests

* update fee history

* update

* format

* update blackbox tests

* update scripts

* revert tests

* update fixtures

* update tests

* change back rules
  • Loading branch information
luu-alex authored Aug 2, 2024
1 parent f87ffbe commit 61e9e06
Show file tree
Hide file tree
Showing 24 changed files with 423 additions and 166 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/black_box_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ jobs:
needs: build
runs-on: ubuntu-latest
env:
INFURA_HTTP: ${{ secrets.INFURA_HTTP }}
INFURA_WSS: ${{ secrets.INFURA_WSS }}
INFURA_GOERLI_WS: ${{ secrets.INFURA_GOERLI_WS }}
INFURA_MAINNET_HTTP: ${{ secrets.INFURA_MAINNET_HTTP }}
INFURA_MAINNET_WS: ${{ secrets.INFURA_MAINNET_WS }}
INFURA_SEPOLIA_WS: ${{ secrets.INFURA_SEPOLIA_WS }}
MODE: ${{ matrix.mode }}
strategy:
fail-fast: false
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,8 @@ jobs:
needs: build
runs-on: ubuntu-latest
env:
INFURA_GOERLI_HTTP: ${{ secrets.INFURA_GOERLI_HTTP }}
INFURA_GOERLI_WS: ${{ secrets.INFURA_GOERLI_WS }}
INFURA_SEPOLIA_HTTP: ${{ secrets.INFURA_SEPOLIA_HTTP }}
INFURA_SEPOLIA_WS: ${{ secrets.INFURA_SEPOLIA_WS }}
strategy:
fail-fast: false
matrix:
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/e2e_network_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ on:
- release/**
tags:
- v4.*

jobs:
build:
name: Build Packages
Expand Down
2 changes: 1 addition & 1 deletion packages/web3-net/test/fixtures/rpc_method_wrappers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ export const getPeerCountValidData: [DataFormat, any, any][] = [
[{ number: FMT_NUMBER.STR, bytes: FMT_BYTES.HEX }, '0x2', '2'],
[{ number: FMT_NUMBER.NUMBER, bytes: FMT_BYTES.HEX }, '0x2', 2],
[{ number: FMT_NUMBER.BIGINT, bytes: FMT_BYTES.HEX }, '0x2', BigInt('2')],
];
];
1 change: 1 addition & 0 deletions packages/web3-net/test/unit/rpc_method_wrappers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ describe('rpc_method_wrappers', () => {
},
);
});


it('isListening', async () => {
await isListening(web3Net);
Expand Down
4 changes: 2 additions & 2 deletions packages/web3/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@
"test": "jest --config=./test/unit/jest.config.js",
"test:coverage:unit": "jest --config=./test/unit/jest.config.js --coverage=true --coverage-reporters=text",
"test:coverage:integration": "jest --config=./test/integration/jest.config.js --forceExit --coverage=true --coverage-reporters=text",
"test:e2e:mainnet": "jest --config=./test/e2e/jest.config.js --forceExit",
"test:e2e:sepolia": "jest --config=./test/e2e/jest.config.js --forceExit",
"test:e2e:mainnet": "jest --config=./test/e2e/jest.config.js --forceExit --runInBand",
"test:e2e:sepolia": "jest --config=./test/e2e/jest.config.js --forceExit --runInBand",
"test:sync:integration": "jest --config=./test/integration/jest.config.js ./test/integration/sync.test.ts",
"test:ci": "jest --coverage=true --coverage-reporters=json --verbose",
"test:watch": "npm test -- --watch",
Expand Down
12 changes: 6 additions & 6 deletions packages/web3/scripts/black_box_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,15 @@ yarn

if [[ ${BACKEND} == "infura" ]]
then
if [ ! $INFURA_HTTP ] || [ ! $INFURA_WSS ]
if [ ! $INFURA_MAINNET_HTTP ] || [ ! $INFURA_MAINNET_WS ]
then
echo "No Infura provider URL specified"
exit 1
elif [ $MODE == "http" ]
then
WEB3_SYSTEM_TEST_PROVIDER=$INFURA_HTTP
WEB3_SYSTEM_TEST_PROVIDER=$INFURA_MAINNET_HTTP
else
WEB3_SYSTEM_TEST_PROVIDER=$INFURA_WSS
WEB3_SYSTEM_TEST_PROVIDER=$INFURA_MAINNET_WS
fi
fi
yarn "test:$BACKEND:$MODE"
Expand All @@ -55,15 +55,15 @@ yarn

if [[ ${BACKEND} == "infura" ]]
then
if [ ! $INFURA_HTTP ] || [ ! $INFURA_WSS ]
if [ ! $INFURA_MAINNET_HTTP ] || [ ! $INFURA_MAINNET_WS ]
then
echo "No Infura provider URL specified"
exit 1
elif [ $MODE == "http" ]
then
WEB3_SYSTEM_TEST_PROVIDER=$INFURA_HTTP
WEB3_SYSTEM_TEST_PROVIDER=$INFURA_MAINNET_HTTP
else
WEB3_SYSTEM_TEST_PROVIDER=$INFURA_WSS
WEB3_SYSTEM_TEST_PROVIDER=$INFURA_MAINNET_WS
fi
fi
yarn "test:$BACKEND:$MODE"
16 changes: 12 additions & 4 deletions packages/web3/test/e2e/e2e_utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ along with web3.js. If not, see <http://www.gnu.org/licenses/>.
* copied over to each package's test directory. Because web3 package is the only package
* running these E2E tests that use Sepolia and Mainnet, this util exists here for now.
*/

import { getSystemTestBackend, BACKEND } from '../shared_fixtures/system_tests_utils';
// eslint-disable-next-line import/no-relative-packages
import secrets from '../../../../.secrets.json';
Expand All @@ -42,7 +41,10 @@ export const getE2ETestAccountAddress = (): string => {
if (process.env.TEST_ACCOUNT_ADDRESS !== undefined) {
return process.env.TEST_ACCOUNT_ADDRESS;
// eslint-disable-next-line no-else-return
} else if (getSystemTestBackend() === BACKEND.SEPOLIA || getSystemTestBackend() === BACKEND.MAINNET) {
} else if (
getSystemTestBackend() === BACKEND.SEPOLIA ||
getSystemTestBackend() === BACKEND.MAINNET
) {
return secrets[getSystemTestBackend().toUpperCase() as 'SEPOLIA' | 'MAINNET'].ACCOUNT
.address;
}
Expand All @@ -64,7 +66,10 @@ export const getAllowedSendTransaction = (): boolean => {

return Boolean(process.env.ALLOWED_SEND_TRANSACTION);
// eslint-disable-next-line no-else-return
} else if (getSystemTestBackend() === BACKEND.SEPOLIA || getSystemTestBackend() === BACKEND.MAINNET) {
} else if (
getSystemTestBackend() === BACKEND.SEPOLIA ||
getSystemTestBackend() === BACKEND.MAINNET
) {
return secrets[getSystemTestBackend().toUpperCase() as 'SEPOLIA' | 'MAINNET']
.ALLOWED_SEND_TRANSACTION;
}
Expand All @@ -76,7 +81,10 @@ export const getE2ETestAccountPrivateKey = (): string => {
if (process.env.TEST_ACCOUNT_PRIVATE_KEY !== undefined) {
return process.env.TEST_ACCOUNT_PRIVATE_KEY;
// eslint-disable-next-line no-else-return
} else if (getSystemTestBackend() === BACKEND.SEPOLIA || getSystemTestBackend() === BACKEND.MAINNET) {
} else if (
getSystemTestBackend() === BACKEND.SEPOLIA ||
getSystemTestBackend() === BACKEND.MAINNET
) {
return secrets[getSystemTestBackend().toUpperCase() as 'SEPOLIA' | 'MAINNET'].ACCOUNT
.privateKey;
}
Expand Down
16 changes: 9 additions & 7 deletions packages/web3/test/e2e/estimate_gas.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,19 @@ import { toHex } from 'web3-utils';

import Web3, { FMT_BYTES, FMT_NUMBER, Transaction } from '../../src';
import { getSystemE2ETestProvider } from './e2e_utils';
import { closeOpenConnection, getSystemTestBackend, BACKEND } from '../shared_fixtures/system_tests_utils';
import {
closeOpenConnection,
getSystemTestBackend,
BACKEND,
} from '../shared_fixtures/system_tests_utils';
import { toAllVariants } from '../shared_fixtures/utils';
import { mainnetBlockData } from './fixtures/mainnet';
import { sepoliaBlockData } from './fixtures/sepolia';

describe(`${getSystemTestBackend()} tests - estimateGas`, () => {
const provider = getSystemE2ETestProvider();
const blockData = getSystemTestBackend() === BACKEND.SEPOLIA ? sepoliaBlockData : mainnetBlockData;
const blockData =
getSystemTestBackend() === BACKEND.SEPOLIA ? sepoliaBlockData : mainnetBlockData;
const simpleEthTransaction: Transaction = {
from: '0x0000000000000000000000000000000000000000',
to: '0x0000000000000000000000000000000000000000',
Expand All @@ -37,7 +42,7 @@ describe(`${getSystemTestBackend()} tests - estimateGas`, () => {
data: '0x60806040523480156200001157600080fd5b5060405162000a6a38038062000a6a8339818101604052810190620000379190620002a4565b80600090805190602001906200004f92919062000057565b505062000359565b828054620000659062000324565b90600052602060002090601f016020900481019282620000895760008555620000d5565b82601f10620000a457805160ff1916838001178555620000d5565b82800160010185558215620000d5579182015b82811115620000d4578251825591602001919060010190620000b7565b5b509050620000e49190620000e8565b5090565b5b8082111562000103576000816000905550600101620000e9565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001708262000125565b810181811067ffffffffffffffff8211171562000192576200019162000136565b5b80604052505050565b6000620001a762000107565b9050620001b5828262000165565b919050565b600067ffffffffffffffff821115620001d857620001d762000136565b5b620001e38262000125565b9050602081019050919050565b60005b8381101562000210578082015181840152602081019050620001f3565b8381111562000220576000848401525b50505050565b60006200023d6200023784620001ba565b6200019b565b9050828152602081018484840111156200025c576200025b62000120565b5b62000269848285620001f0565b509392505050565b600082601f8301126200028957620002886200011b565b5b81516200029b84826020860162000226565b91505092915050565b600060208284031215620002bd57620002bc62000111565b5b600082015167ffffffffffffffff811115620002de57620002dd62000116565b5b620002ec8482850162000271565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200033d57607f821691505b602082108103620003535762000352620002f5565b5b50919050565b61070180620003696000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a41368621461003b578063cfae32171461006c575b600080fd5b6100556004803603810190610050919061043f565b61008a565b60405161006392919061052b565b60405180910390f35b6100746101b0565b604051610081919061055b565b60405180910390f35b600060607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756000846040516100c0929190610672565b60405180910390a182600090805190602001906100de929190610242565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e600060405161010f91906106a9565b60405180910390a160016000808054610127906105ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610153906105ac565b80156101a05780601f10610175576101008083540402835291602001916101a0565b820191906000526020600020905b81548152906001019060200180831161018357829003601f168201915b5050505050905091509150915091565b6060600080546101bf906105ac565b80601f01602080910402602001604051908101604052809291908181526020018280546101eb906105ac565b80156102385780601f1061020d57610100808354040283529160200191610238565b820191906000526020600020905b81548152906001019060200180831161021b57829003601f168201915b5050505050905090565b82805461024e906105ac565b90600052602060002090601f01602090048101928261027057600085556102b7565b82601f1061028957805160ff19168380011785556102b7565b828001600101855582156102b7579182015b828111156102b657825182559160200191906001019061029b565b5b5090506102c491906102c8565b5090565b5b808211156102e15760008160009055506001016102c9565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61034c82610303565b810181811067ffffffffffffffff8211171561036b5761036a610314565b5b80604052505050565b600061037e6102e5565b905061038a8282610343565b919050565b600067ffffffffffffffff8211156103aa576103a9610314565b5b6103b382610303565b9050602081019050919050565b82818337600083830152505050565b60006103e26103dd8461038f565b610374565b9050828152602081018484840111156103fe576103fd6102fe565b5b6104098482856103c0565b509392505050565b600082601f830112610426576104256102f9565b5b81356104368482602086016103cf565b91505092915050565b600060208284031215610455576104546102ef565b5b600082013567ffffffffffffffff811115610473576104726102f4565b5b61047f84828501610411565b91505092915050565b60008115159050919050565b61049d81610488565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156104dd5780820151818401526020810190506104c2565b838111156104ec576000848401525b50505050565b60006104fd826104a3565b61050781856104ae565b93506105178185602086016104bf565b61052081610303565b840191505092915050565b60006040820190506105406000830185610494565b818103602083015261055281846104f2565b90509392505050565b6000602082019050818103600083015261057581846104f2565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806105c457607f821691505b6020821081036105d7576105d661057d565b5b50919050565b60008190508160005260206000209050919050565b600081546105ff816105ac565b61060981866104ae565b94506001821660008114610624576001811461063657610669565b60ff1983168652602086019350610669565b61063f856105dd565b60005b8381101561066157815481890152600182019150602081019050610642565b808801955050505b50505092915050565b6000604082019050818103600083015261068c81856105f2565b905081810360208301526106a081846104f2565b90509392505050565b600060208201905081810360008301526106c381846105f2565b90509291505056fea2646970667358221220fe0f28c9f8ef0a13a95934b974e7bc2ca6762b40a5b93ccd6ca2038f454bf52764736f6c634300080e003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000017736f6c79656e7420677265656e2069732070656f706c65000000000000000000',
};
const expectedContractDeploymentTransactionGas =
getSystemTestBackend() === BACKEND.SEPOLIA ? 475494 : 475494;
getSystemTestBackend() === BACKEND.SEPOLIA ? 480435 : 480435;

let web3: Web3;

Expand All @@ -61,10 +66,7 @@ describe(`${getSystemTestBackend()} tests - estimateGas`, () => {
}),
)('estimateGas', async ({ transaction, block, format }) => {
let _blockData = blockData[block];
if (
getSystemTestBackend() === BACKEND.MAINNET &&
(block === 'blockHash' || block === 'blockNumber')
) {
if (block === 'blockHash' || block === 'blockNumber') {
/**
* @NOTE Getting a block too far back in history
* results in a missing trie node error, so
Expand Down
199 changes: 199 additions & 0 deletions packages/web3/test/e2e/fixtures/sepolia.ts
Original file line number Diff line number Diff line change
Expand Up @@ -636,8 +636,108 @@ export const sepoliaBlockHydrated = {
value: '0x143c70de9f84c8',
},
],

transactionsRoot: '0xbd2f86bc39fbe1ac6e24ce390d268404c199da060116437803875d2c0bfe7970',
uncles: [],
withdrawals: [
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x3112f',
index: '0x3a477e',
validatorIndex: '0x38b',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a477f',
validatorIndex: '0x38c',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4780',
validatorIndex: '0x38d',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x23743',
index: '0x3a4781',
validatorIndex: '0x38e',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4782',
validatorIndex: '0x38f',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4783',
validatorIndex: '0x390',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4784',
validatorIndex: '0x391',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4785',
validatorIndex: '0x392',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4786',
validatorIndex: '0x393',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x25915',
index: '0x3a4787',
validatorIndex: '0x394',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4788',
validatorIndex: '0x395',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4789',
validatorIndex: '0x396',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a478a',
validatorIndex: '0x397',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a478b',
validatorIndex: '0x398',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a478c',
validatorIndex: '0x399',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x3112f',
index: '0x3a478d',
validatorIndex: '0x39a',
},
],
withdrawalsRoot: '0xb99e42eaca3fc1000aa8be987cf107e08030c0e9ca93dc6ea6b7df69e377f953',
};

export const sepoliaBlock = {
Expand Down Expand Up @@ -694,6 +794,105 @@ export const sepoliaBlock = {
],
transactionsRoot: '0xbd2f86bc39fbe1ac6e24ce390d268404c199da060116437803875d2c0bfe7970',
uncles: [],
withdrawals: [
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x3112f',
index: '0x3a477e',
validatorIndex: '0x38b',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a477f',
validatorIndex: '0x38c',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4780',
validatorIndex: '0x38d',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x23743',
index: '0x3a4781',
validatorIndex: '0x38e',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4782',
validatorIndex: '0x38f',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4783',
validatorIndex: '0x390',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4784',
validatorIndex: '0x391',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4785',
validatorIndex: '0x392',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4786',
validatorIndex: '0x393',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x25915',
index: '0x3a4787',
validatorIndex: '0x394',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4788',
validatorIndex: '0x395',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a4789',
validatorIndex: '0x396',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a478a',
validatorIndex: '0x397',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a478b',
validatorIndex: '0x398',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x2ef5d',
index: '0x3a478c',
validatorIndex: '0x399',
},
{
address: '0xe276bc378a527a8792b353cdca5b5e53263dfb9e',
amount: '0x3112f',
index: '0x3a478d',
validatorIndex: '0x39a',
},
],
withdrawalsRoot: '0xb99e42eaca3fc1000aa8be987cf107e08030c0e9ca93dc6ea6b7df69e377f953',
};

export const sepoliaBlockData: {
Expand Down
Loading

1 comment on commit 61e9e06

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 61e9e06 Previous: f87ffbe Ratio
processingTx 8729 ops/sec (±4.67%) 8972 ops/sec (±4.22%) 1.03
processingContractDeploy 37973 ops/sec (±6.91%) 37667 ops/sec (±8.75%) 0.99
processingContractMethodSend 15996 ops/sec (±6.56%) 16256 ops/sec (±7.35%) 1.02
processingContractMethodCall 27488 ops/sec (±6.50%) 28156 ops/sec (±6.87%) 1.02
abiEncode 43224 ops/sec (±7.07%) 42470 ops/sec (±9.98%) 0.98
abiDecode 29694 ops/sec (±7.87%) 31063 ops/sec (±6.67%) 1.05
sign 1501 ops/sec (±3.13%) 1537 ops/sec (±0.68%) 1.02
verify 368 ops/sec (±0.51%) 365 ops/sec (±0.72%) 0.99

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.