Skip to content
This repository was archived by the owner on Mar 5, 2025. It is now read-only.

Commit e593bf6

Browse files
adding a test for using ganache provider
1 parent 653524a commit e593bf6

File tree

3 files changed

+171
-3
lines changed

3 files changed

+171
-3
lines changed

packages/web3/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"eslint-config-prettier": "^8.5.0",
5151
"eslint-config-web3-base": "0.1.0",
5252
"eslint-plugin-import": "^2.26.0",
53+
"ganache": "^7.5.0",
5354
"jest": "^28.1.3",
5455
"jest-extended": "^3.0.1",
5556
"prettier": "^2.7.1",
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
This file is part of web3.js.
3+
4+
web3.js is free software: you can redistribute it and/or modify
5+
it under the terms of the GNU Lesser General Public License as published by
6+
the Free Software Foundation, either version 3 of the License, or
7+
(at your option) any later version.
8+
9+
web3.js is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
GNU Lesser General Public License for more details.
13+
14+
You should have received a copy of the GNU Lesser General Public License
15+
along with web3.js. If not, see <http://www.gnu.org/licenses/>.
16+
*/
17+
18+
// eslint-disable-next-line import/no-extraneous-dependencies
19+
import ganache from 'ganache';
20+
21+
import Web3 from '../../src/index';
22+
import { getSystemTestMnemonic } from '../shared_fixtures/system_tests_utils';
23+
24+
describe('compatibility with external providers', () => {
25+
it('should accept a simple EIP1193 provider', async () => {
26+
interface RequestArguments {
27+
readonly method: string;
28+
readonly params?: readonly unknown[] | object;
29+
}
30+
31+
class Provider {
32+
// eslint-disable-next-line class-methods-use-this
33+
public async request(_: RequestArguments): Promise<unknown> {
34+
return undefined as unknown;
35+
}
36+
}
37+
38+
const testProvider = new Provider();
39+
const { provider } = new Web3(testProvider);
40+
expect(provider).toBeDefined();
41+
});
42+
43+
it('should accept a ganache provider', async () => {
44+
const { provider } = ganache.server({
45+
wallet: {
46+
mnemonic: getSystemTestMnemonic(),
47+
},
48+
});
49+
const web3 = new Web3(provider);
50+
51+
const accounts = await web3.eth.getAccounts();
52+
53+
const tx = web3.eth.sendTransaction({
54+
to: accounts[1],
55+
from: accounts[0],
56+
value: '1',
57+
});
58+
59+
await expect(tx).resolves.not.toThrow();
60+
});
61+
});

yarn.lock

Lines changed: 109 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1980,6 +1980,13 @@
19801980
ethereumjs-wallet "^1.0.2"
19811981
web3-provider-engine "16.0.3"
19821982

1983+
"@trufflesuite/[email protected]":
1984+
version "1.1.10"
1985+
resolved "https://registry.yarnpkg.com/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz#a1d9ca22d3cad1a138b78baaf15543637a3e1692"
1986+
integrity sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==
1987+
dependencies:
1988+
node-gyp-build "4.4.0"
1989+
19831990
"@tsconfig/node10@^1.0.7":
19841991
version "1.0.9"
19851992
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
@@ -2181,6 +2188,11 @@
21812188
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
21822189
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
21832190

2191+
2192+
version "5.1.1"
2193+
resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef"
2194+
integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==
2195+
21842196
"@types/mime@*":
21852197
version "3.0.1"
21862198
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10"
@@ -2252,6 +2264,11 @@
22522264
dependencies:
22532265
"@types/node" "*"
22542266

2267+
2268+
version "3.0.1"
2269+
resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-3.0.1.tgz#1254750a4fec4aff2ebec088ccd0bb02e91fedb4"
2270+
integrity sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==
2271+
22552272
"@types/serve-static@*":
22562273
version "1.15.0"
22572274
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155"
@@ -2558,6 +2575,18 @@ abbrev@1:
25582575
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
25592576
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
25602577

2578+
abstract-leveldown@^7.2.0:
2579+
version "7.2.0"
2580+
resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz#08d19d4e26fb5be426f7a57004851b39e1795a2e"
2581+
integrity sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==
2582+
dependencies:
2583+
buffer "^6.0.3"
2584+
catering "^2.0.0"
2585+
is-buffer "^2.0.5"
2586+
level-concat-iterator "^3.0.0"
2587+
level-supports "^2.0.1"
2588+
queue-microtask "^1.2.3"
2589+
25612590
abstract-leveldown@~2.6.0:
25622591
version "2.6.3"
25632592
resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8"
@@ -3327,6 +3356,13 @@ buffer@^6.0.3:
33273356
base64-js "^1.3.1"
33283357
ieee754 "^1.2.1"
33293358

3359+
3360+
version "4.0.5"
3361+
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028"
3362+
integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==
3363+
dependencies:
3364+
node-gyp-build "^4.3.0"
3365+
33303366
bufferutil@^4.0.6:
33313367
version "4.0.6"
33323368
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433"
@@ -3437,6 +3473,11 @@ caseless@~0.12.0:
34373473
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
34383474
integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
34393475

3476+
catering@^2.0.0, catering@^2.1.0:
3477+
version "2.1.1"
3478+
resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510"
3479+
integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==
3480+
34403481
34413482
version "4.1.0"
34423483
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
@@ -4331,6 +4372,11 @@ [email protected], elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4:
43314372
minimalistic-assert "^1.0.1"
43324373
minimalistic-crypto-utils "^1.0.1"
43334374

4375+
4376+
version "0.10.0"
4377+
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.0.tgz#bb373c660a9d421bb44706ec4967ed50c02a8026"
4378+
integrity sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==
4379+
43344380
emittery@^0.10.2:
43354381
version "0.10.2"
43364382
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933"
@@ -5419,6 +5465,23 @@ functions-have-names@^1.2.2:
54195465
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
54205466
integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
54215467

5468+
ganache@^7.5.0:
5469+
version "7.5.0"
5470+
resolved "https://registry.yarnpkg.com/ganache/-/ganache-7.5.0.tgz#f7a36050b6ff85e5557d6511ddca470a0a40f37c"
5471+
integrity sha512-afNTJYBEaFrLPRrn7eUxH39TgnrffvHn/4T6THzQrc3rpfe4DOxw2nY2XEQxfsq1t4OqKSXtxomzyo26RZiOzw==
5472+
dependencies:
5473+
"@trufflesuite/bigint-buffer" "1.1.10"
5474+
"@types/bn.js" "^5.1.0"
5475+
"@types/lru-cache" "5.1.1"
5476+
"@types/seedrandom" "3.0.1"
5477+
emittery "0.10.0"
5478+
keccak "3.0.2"
5479+
leveldown "6.1.0"
5480+
secp256k1 "4.0.3"
5481+
optionalDependencies:
5482+
bufferutil "4.0.5"
5483+
utf-8-validate "5.0.7"
5484+
54225485
gauge@^4.0.3:
54235486
version "4.0.4"
54245487
resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
@@ -6132,6 +6195,11 @@ is-buffer@^1.1.5:
61326195
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
61336196
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
61346197

6198+
is-buffer@^2.0.5:
6199+
version "2.0.5"
6200+
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
6201+
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
6202+
61356203
is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4:
61366204
version "1.2.4"
61376205
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
@@ -7139,7 +7207,7 @@ just-diff@^5.0.1:
71397207
resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.1.1.tgz#8da6414342a5ed6d02ccd64f5586cbbed3146202"
71407208
integrity sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==
71417209

7142-
keccak@^3.0.0:
7210+
keccak@3.0.2, keccak@^3.0.0:
71437211
version "3.0.2"
71447212
resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0"
71457213
integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==
@@ -7207,6 +7275,13 @@ level-codec@~7.0.0:
72077275
resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7"
72087276
integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==
72097277

7278+
level-concat-iterator@^3.0.0:
7279+
version "3.1.0"
7280+
resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz#5235b1f744bc34847ed65a50548aa88d22e881cf"
7281+
integrity sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==
7282+
dependencies:
7283+
catering "^2.1.0"
7284+
72107285
level-errors@^1.0.3:
72117286
version "1.1.2"
72127287
resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d"
@@ -7231,6 +7306,11 @@ level-iterator-stream@~1.3.0:
72317306
readable-stream "^1.0.33"
72327307
xtend "^4.0.0"
72337308

7309+
level-supports@^2.0.1:
7310+
version "2.1.0"
7311+
resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-2.1.0.tgz#9af908d853597ecd592293b2fad124375be79c5f"
7312+
integrity sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==
7313+
72347314
72357315
version "0.0.0"
72367316
resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b"
@@ -7239,6 +7319,15 @@ [email protected]:
72397319
readable-stream "~1.0.15"
72407320
xtend "~2.1.1"
72417321

7322+
7323+
version "6.1.0"
7324+
resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-6.1.0.tgz#7ab1297706f70c657d1a72b31b40323aa612b9ee"
7325+
integrity sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==
7326+
dependencies:
7327+
abstract-leveldown "^7.2.0"
7328+
napi-macros "~2.0.0"
7329+
node-gyp-build "^4.3.0"
7330+
72427331
levelup@^1.2.1:
72437332
version "1.3.9"
72447333
resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab"
@@ -7855,6 +7944,11 @@ nanomatch@^1.2.9:
78557944
snapdragon "^0.8.1"
78567945
to-regex "^3.0.1"
78577946

7947+
napi-macros@~2.0.0:
7948+
version "2.0.0"
7949+
resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b"
7950+
integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==
7951+
78587952
natural-compare@^1.4.0:
78597953
version "1.4.0"
78607954
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -7887,6 +7981,11 @@ [email protected], node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7:
78877981
dependencies:
78887982
whatwg-url "^5.0.0"
78897983

7984+
7985+
version "4.4.0"
7986+
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4"
7987+
integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==
7988+
78907989
node-gyp-build@^4.2.0, node-gyp-build@^4.3.0:
78917990
version "4.5.0"
78927991
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40"
@@ -8831,7 +8930,7 @@ qs@~6.5.2:
88318930
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
88328931
integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
88338932

8834-
queue-microtask@^1.2.2:
8933+
queue-microtask@^1.2.2, queue-microtask@^1.2.3:
88358934
version "1.2.3"
88368935
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
88378936
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
@@ -9272,7 +9371,7 @@ scrypt-js@^3.0.0, scrypt-js@^3.0.1:
92729371
resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312"
92739372
integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==
92749373

9275-
secp256k1@^4.0.1:
9374+
secp256k1@4.0.3, secp256k1@^4.0.1:
92769375
version "4.0.3"
92779376
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303"
92789377
integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==
@@ -10364,6 +10463,13 @@ use@^3.1.0:
1036410463
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
1036510464
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
1036610465

10466+
10467+
version "5.0.7"
10468+
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922"
10469+
integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==
10470+
dependencies:
10471+
node-gyp-build "^4.3.0"
10472+
1036710473
utf-8-validate@^5.0.9:
1036810474
version "5.0.9"
1036910475
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3"

0 commit comments

Comments
 (0)