Skip to content

Commit bebf6c7

Browse files
Merge pull request #109 from BitGo/WIN-666-upgrade-solidity-version
chore(contracts): upgrade solidity version to 0.8.20
2 parents 47976e3 + d032ea1 commit bebf6c7

37 files changed

+957
-396
lines changed

.github/workflows/deploy_and_release.yml

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ jobs:
1616
- run: npm run lint
1717
- run: npm run test
1818
env:
19-
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
20-
ALCHEMY_ETHER_API_KEY: ${{ secrets.ALCHEMY_ETHER_API_KEY }}
19+
MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT: ${{ secrets.MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
20+
TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT: ${{ secrets.TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
21+
QUICKNODE_ETH_MAINNET_API_KEY: ${{ secrets.QUICKNODE_ETH_MAINNET_API_KEY }}
22+
QUICKNODE_ETH_HOLESKY_API_KEY: ${{ secrets.QUICKNODE_ETH_HOLESKY_API_KEY }}
2123
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
2224
ALCHEMY_POLYGON_API_KEY: ${{ secrets.ALCHEMY_POLYGON_API_KEY }}
2325
POLYGONSCAN_API_KEY: ${{ secrets.POLYGONSCAN_API_KEY }}
@@ -36,26 +38,28 @@ jobs:
3638
result-encoding: string
3739
script: |
3840
const tag = process.env.GITHUB_REF_NAME;
39-
const regex = /v.*\-(eth|gteth|matic|tmatic|bsc|tbsc)$/;
41+
const regex = /v.*\-(eth|hteth|matic|tmatic|bsc|tbsc)$/;
4042
const network = tag.match(regex);
41-
return network ? network[1] : "gteth";
43+
return network ? network[1] : "hteth";
4244
deploy-to-test:
4345
runs-on: ubuntu-latest
4446
needs: [lint-and-test, get-network]
45-
if: ${{ (needs.get-network.outputs.network == 'gteth' ) || (needs.get-network.outputs.network == 'tmatic' ) || (needs.get-network.outputs.network == 'tbsc' ) }}
47+
if: ${{ (needs.get-network.outputs.network == 'hteth' ) || (needs.get-network.outputs.network == 'tmatic' ) || (needs.get-network.outputs.network == 'tbsc' ) }}
4648
environment: testnet
4749
steps:
4850
- uses: actions/checkout@v2
4951
- name: Use Node.js
5052
uses: actions/setup-node@v3
5153
with:
52-
node-version: 14.x
54+
node-version: 16.x
5355
cache: 'npm'
5456
- run: npm install
5557
- run: npm run deploy-test --network ${{ needs.get-network.outputs.network }}
5658
env:
57-
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
58-
ALCHEMY_ETHER_API_KEY: ${{ secrets.ALCHEMY_ETHER_API_KEY }}
59+
MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT: ${{ secrets.MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
60+
TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT: ${{ secrets.TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
61+
QUICKNODE_ETH_MAINNET_API_KEY: ${{ secrets.QUICKNODE_ETH_MAINNET_API_KEY }}
62+
QUICKNODE_ETH_HOLESKY_API_KEY: ${{ secrets.QUICKNODE_ETH_HOLESKY_API_KEY }}
5963
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
6064
ALCHEMY_POLYGON_API_KEY: ${{ secrets.ALCHEMY_POLYGON_API_KEY }}
6165
POLYGONSCAN_API_KEY: ${{ secrets.POLYGONSCAN_API_KEY }}
@@ -98,13 +102,15 @@ jobs:
98102
- name: Use Node.js
99103
uses: actions/setup-node@v3
100104
with:
101-
node-version: 14.x
105+
node-version: 16.x
102106
cache: 'npm'
103107
- run: npm install
104108
- run: npm run deploy-prod --network ${{ needs.get-network.outputs.network }}
105109
env:
106-
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
107-
ALCHEMY_ETHER_API_KEY: ${{ secrets.ALCHEMY_ETHER_API_KEY }}
110+
MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT: ${{ secrets.MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
111+
TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT: ${{ secrets.TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
112+
QUICKNODE_ETH_MAINNET_API_KEY: ${{ secrets.QUICKNODE_ETH_MAINNET_API_KEY }}
113+
QUICKNODE_ETH_HOLESKY_API_KEY: ${{ secrets.QUICKNODE_ETH_HOLESKY_API_KEY }}
108114
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
109115
ALCHEMY_POLYGON_API_KEY: ${{ secrets.ALCHEMY_POLYGON_API_KEY }}
110116
POLYGONSCAN_API_KEY: ${{ secrets.POLYGONSCAN_API_KEY }}

.github/workflows/push.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ubuntu-latest
1414
strategy:
1515
matrix:
16-
node-version: [14.x]
16+
node-version: [16.x]
1717
steps:
1818
- uses: actions/checkout@v3
1919
- name: Use Node.js ${{ matrix.node-version }}
@@ -24,9 +24,12 @@ jobs:
2424
- run: npm install
2525
- run: npm run test
2626
env:
27-
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
28-
ALCHEMY_ETHER_API_KEY: ${{ secrets.ALCHEMY_ETHER_API_KEY }}
27+
MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT: ${{ secrets.MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
28+
TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT: ${{ secrets.TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
29+
QUICKNODE_ETH_MAINNET_API_KEY: ${{ secrets.QUICKNODE_ETH_MAINNET_API_KEY }}
30+
QUICKNODE_ETH_HOLESKY_API_KEY: ${{ secrets.QUICKNODE_ETH_HOLESKY_API_KEY }}
2931
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
3032
ALCHEMY_POLYGON_API_KEY: ${{ secrets.ALCHEMY_POLYGON_API_KEY }}
3133
POLYGONSCAN_API_KEY: ${{ secrets.POLYGONSCAN_API_KEY }}
34+
BSCSCAN_API_KEY: ${{ secrets.BSCSCAN_API_KEY }}
3235
- run: npm run lint

.solhint.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"rules": {
55
"func-visibility": ["warn", { "ignoreConstructors": true }],
66
"avoid-low-level-calls": "off",
7-
"compiler-version": ["error", "0.8.10"],
7+
"compiler-version": ["error", "0.8.20"],
88
"const-name-snakecase": "off",
99
"not-rely-on-time": "off",
1010
"quotes": ["error", "single"]

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Transfer batcher. Takes a list of recipients and amounts, and distributes ETH to
7474

7575
## Installation
7676

77-
NodeJS 14 is required.
77+
NodeJS 16 is required.
7878

7979
```shell
8080
yarn

contracts/Batcher.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
pragma solidity 0.8.10;
1+
pragma solidity 0.8.20;
22

33
// SPDX-License-Identifier: Apache-2.0
44

contracts/CloneFactory.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: MIT
22
// from https://github.com/optionality/clone-factory
3-
pragma solidity 0.8.10;
3+
pragma solidity 0.8.20;
44

55
/*
66
The MIT License (MIT)

contracts/ERC20Interface.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: UNLICENSED
2-
pragma solidity 0.8.10;
2+
pragma solidity 0.8.20;
33

44
/**
55
* Contract that exposes the needed erc20 token functions
@@ -15,7 +15,7 @@ abstract contract ERC20Interface {
1515
// Get the account balance of another account with address _owner
1616
function balanceOf(address _owner)
1717
public
18-
virtual
1918
view
19+
virtual
2020
returns (uint256 balance);
2121
}

contracts/Forwarder.sol

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: Apache-2.0
2-
pragma solidity 0.8.10;
2+
pragma solidity 0.8.20;
33
import '@openzeppelin/contracts/token/ERC1155/IERC1155.sol';
44
import '@openzeppelin/contracts/token/ERC721/IERC721.sol';
55
import '@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol';
@@ -52,15 +52,15 @@ contract Forwarder is IERC721Receiver, ERC1155Receiver, IForwarder {
5252
/**
5353
* Modifier that will execute internal code block only if the sender is the parent address
5454
*/
55-
modifier onlyParent {
55+
modifier onlyParent() {
5656
require(msg.sender == parentAddress, 'Only Parent');
5757
_;
5858
}
5959

6060
/**
6161
* Modifier that will execute internal code block only if the contract has not been initialized yet
6262
*/
63-
modifier onlyUninitialized {
63+
modifier onlyUninitialized() {
6464
require(parentAddress == address(0x0), 'Already initialized');
6565
_;
6666
}
@@ -313,9 +313,9 @@ contract Forwarder is IERC721Receiver, ERC1155Receiver, IForwarder {
313313
*/
314314
function supportsInterface(bytes4 interfaceId)
315315
public
316+
view
316317
virtual
317318
override(ERC1155Receiver, IERC165)
318-
view
319319
returns (bool)
320320
{
321321
return

contracts/ForwarderFactory.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: Apache-2.0
2-
pragma solidity 0.8.10;
2+
pragma solidity 0.8.20;
33
import './Forwarder.sol';
44
import './CloneFactory.sol';
55

contracts/IForwarder.sol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
pragma solidity ^0.8.0;
1+
// SPDX-License-Identifier: Apache-2.0
2+
pragma solidity 0.8.20;
23

34
import '@openzeppelin/contracts/utils/introspection/IERC165.sol';
45

0 commit comments

Comments
 (0)