Skip to content

Commit 5f41cdb

Browse files
mds1jxom
andauthored
chore: update readme, add examples, modernize a few things (#85)
* wip ethers.js example * build: update deps * feat: start viem example * chore: add todo * docs: link to solidity examples * docs: add rust example * docs: update README * docs: add python example * chore: remove commented out fn * chore: add deployments.json * feat: start improving viem example * fix: viem type inference (#82) * feat: finish viem example * build: switch to pnpm, remove unused dep * ci: remove ABI publishing, modernize ci steps * docs: update README * chore: update gas snapshot * chore: add unoffical deployments that aren't evm-address-compatible * chore: update license * chore: update deployments.json * fix: bump ethers so example works * docs: tweak README * docs: fix coverage badge --------- Co-authored-by: jxom <[email protected]>
1 parent bd56475 commit 5f41cdb

24 files changed

+5218
-290
lines changed

.gas-snapshot

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
1-
Multicall2Test:testAggregation() (gas: 6043)
2-
Multicall2Test:testBlockAndAggregateUnsuccessful() (gas: 10331)
3-
Multicall2Test:testGetBlockHash(uint256) (runs: 1000, μ: 1151, ~: 1151)
4-
Multicall2Test:testGetBlockNumber() (gas: 942)
5-
Multicall2Test:testGetCurrentBlockCoinbase() (gas: 1079)
6-
Multicall2Test:testGetCurrentBlockDifficulty() (gas: 985)
7-
Multicall2Test:testGetCurrentBlockGasLimit() (gas: 941)
8-
Multicall2Test:testGetCurrentBlockTimestamp() (gas: 976)
9-
Multicall2Test:testGetEthBalance(address) (runs: 1000, μ: 3944, ~: 3944)
10-
Multicall2Test:testGetLastBlockHash() (gas: 270)
11-
Multicall2Test:testTryAggregate() (gas: 10324)
12-
Multicall2Test:testTryAggregateUnsuccessful() (gas: 10234)
13-
Multicall2Test:testTryBlockAndAggregate() (gas: 10693)
14-
Multicall2Test:testTryBlockAndAggregateUnsuccessful() (gas: 10382)
15-
Multicall2Test:testUnsuccessulAggregation() (gas: 9874)
16-
Multicall3Test:testAggregate3() (gas: 9979)
17-
Multicall3Test:testAggregate3Unsuccessful() (gas: 9822)
18-
Multicall3Test:testAggregate3Value() (gas: 34245)
19-
Multicall3Test:testAggregate3ValueUnsuccessful() (gas: 61032)
20-
Multicall3Test:testAggregation() (gas: 5883)
21-
Multicall3Test:testBlockAndAggregateUnsuccessful() (gas: 9873)
22-
Multicall3Test:testGetBasefee() (gas: 985)
23-
Multicall3Test:testGetBlockHash(uint256) (runs: 1000, μ: 1240, ~: 1240)
24-
Multicall3Test:testGetBlockNumber() (gas: 1009)
25-
Multicall3Test:testGetChainId() (gas: 941)
26-
Multicall3Test:testGetCurrentBlockCoinbase() (gas: 1034)
27-
Multicall3Test:testGetCurrentBlockDifficulty() (gas: 985)
28-
Multicall3Test:testGetCurrentBlockGasLimit() (gas: 1008)
29-
Multicall3Test:testGetCurrentBlockTimestamp() (gas: 954)
30-
Multicall3Test:testGetEthBalance(address) (runs: 1000, μ: 3900, ~: 3900)
31-
Multicall3Test:testGetLastBlockHash() (gas: 248)
32-
Multicall3Test:testTryAggregate() (gas: 9788)
33-
Multicall3Test:testTryAggregateUnsuccessful() (gas: 9777)
34-
Multicall3Test:testTryBlockAndAggregate() (gas: 10158)
35-
Multicall3Test:testTryBlockAndAggregateUnsuccessful() (gas: 9924)
36-
Multicall3Test:testUnsuccessulAggregation() (gas: 9543)
37-
MulticallTest:testAggregation() (gas: 5921)
38-
MulticallTest:testGetBlockHash(uint256) (runs: 1000, μ: 1173, ~: 1173)
39-
MulticallTest:testGetCurrentBlockCoinbase() (gas: 1034)
40-
MulticallTest:testGetCurrentBlockDifficulty() (gas: 962)
41-
MulticallTest:testGetCurrentBlockGasLimit() (gas: 963)
42-
MulticallTest:testGetCurrentBlockTimestamp() (gas: 886)
43-
MulticallTest:testGetEthBalance(address) (runs: 1000, μ: 3922, ~: 3922)
44-
MulticallTest:testGetLastBlockHash() (gas: 248)
45-
MulticallTest:testUnsuccessulAggregation() (gas: 9586)
1+
Multicall2Test:testAggregation() (gas: 15033)
2+
Multicall2Test:testBlockAndAggregateUnsuccessful() (gas: 19327)
3+
Multicall2Test:testGetBlockHash(uint256) (runs: 1000, μ: 5696, ~: 5696)
4+
Multicall2Test:testGetBlockNumber() (gas: 5442)
5+
Multicall2Test:testGetCurrentBlockCoinbase() (gas: 5579)
6+
Multicall2Test:testGetCurrentBlockDifficulty() (gas: 5463)
7+
Multicall2Test:testGetCurrentBlockGasLimit() (gas: 5485)
8+
Multicall2Test:testGetCurrentBlockTimestamp() (gas: 5432)
9+
Multicall2Test:testGetEthBalance(address) (runs: 1000, μ: 8424, ~: 8444)
10+
Multicall2Test:testGetLastBlockHash() (gas: 5693)
11+
Multicall2Test:testTryAggregate() (gas: 19395)
12+
Multicall2Test:testTryAggregateUnsuccessful() (gas: 19227)
13+
Multicall2Test:testTryBlockAndAggregate() (gas: 19676)
14+
Multicall2Test:testTryBlockAndAggregateUnsuccessful() (gas: 19330)
15+
Multicall2Test:testUnsuccessfulAggregation() (gas: 18858)
16+
Multicall3Test:testAggregate3() (gas: 23338)
17+
Multicall3Test:testAggregate3Unsuccessful() (gas: 18821)
18+
Multicall3Test:testAggregate3Value() (gas: 47754)
19+
Multicall3Test:testAggregate3ValueUnsuccessful() (gas: 79594)
20+
Multicall3Test:testAggregation() (gas: 14785)
21+
Multicall3Test:testBlockAndAggregateUnsuccessful() (gas: 18879)
22+
Multicall3Test:testGetBasefee() (gas: 5463)
23+
Multicall3Test:testGetBlockHash(uint256) (runs: 1000, μ: 5696, ~: 5696)
24+
Multicall3Test:testGetBlockNumber() (gas: 5553)
25+
Multicall3Test:testGetChainId() (gas: 5485)
26+
Multicall3Test:testGetCurrentBlockCoinbase() (gas: 5534)
27+
Multicall3Test:testGetCurrentBlockDifficulty() (gas: 5463)
28+
Multicall3Test:testGetCurrentBlockGasLimit() (gas: 5507)
29+
Multicall3Test:testGetCurrentBlockTimestamp() (gas: 5410)
30+
Multicall3Test:testGetEthBalance(address) (runs: 1000, μ: 8387, ~: 8400)
31+
Multicall3Test:testGetLastBlockHash() (gas: 5678)
32+
Multicall3Test:testTryAggregate() (gas: 18859)
33+
Multicall3Test:testTryAggregateUnsuccessful() (gas: 18824)
34+
Multicall3Test:testTryBlockAndAggregate() (gas: 19163)
35+
Multicall3Test:testTryBlockAndAggregateUnsuccessful() (gas: 18949)
36+
Multicall3Test:testUnsuccessfulAggregation() (gas: 18593)
37+
MulticallTest:testAggregation() (gas: 14824)
38+
MulticallTest:testGetBlockHash(uint256) (runs: 1000, μ: 5674, ~: 5674)
39+
MulticallTest:testGetCurrentBlockCoinbase() (gas: 5534)
40+
MulticallTest:testGetCurrentBlockDifficulty() (gas: 5418)
41+
MulticallTest:testGetCurrentBlockGasLimit() (gas: 5440)
42+
MulticallTest:testGetCurrentBlockTimestamp() (gas: 5387)
43+
MulticallTest:testGetEthBalance(address) (runs: 1000, μ: 8409, ~: 8422)
44+
MulticallTest:testGetLastBlockHash() (gas: 5648)
45+
MulticallTest:testUnsuccessfulAggregation() (gas: 18612)

.github/workflows/tests.yml

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,12 @@ jobs:
1313
runs-on: ubuntu-latest
1414

1515
steps:
16-
- uses: actions/checkout@v2
17-
with:
18-
submodules: recursive
16+
- uses: actions/checkout@v3
1917

2018
- name: Install Foundry
21-
uses: onbjerg/foundry-toolchain@v1
19+
uses: foundry-rs/foundry-toolchain@v1
2220
with:
2321
version: nightly
2422

2523
- name: Run Tests
2624
run: FOUNDRY_PROFILE=ci forge test
27-
28-
- name: Publish ABIs
29-
if: startsWith(github.ref, 'refs/tags/v')
30-
uses: softprops/action-gh-release@v1
31-
with:
32-
name: ABIs
33-
files: |
34-
./out/Multicall.sol/Multicall.json
35-
./out/Multicall2.sol/Multicall2.json
36-
./out/Multicall3.sol/Multicall3.json

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
examples
22
out
33
cache
4+
node_modules
5+
target
6+
output
7+
venv
48

59
.vscode
610

711
# Ignore environment variables incase someone accidentally sets and commits
812
.env
913
.env.prod
1014

11-
old.gas-snapshot
15+
old.gas-snapshot

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2018 Maker Foundation
3+
Copyright (c) 2023 Matt Solomon
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

0 commit comments

Comments
 (0)