You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The reason will be displayed to describe this comment to others. Learn more.
🔧 Build logs
Compiling 86 files with Solc 0.8.28
installing solc version "0.8.28"
Successfully installed solc 0.8.28
Solc 0.8.28 finished in 3.32s
Compiler run successful with warnings:
Warning (5667): Unused functionparameter. Remove or comment out the variable name to silence this warning.
--> src/mocks/ERC721.sol:933:23:
|
933 |functiontokenURI(uint256 id) public view override returns (string memory) {
| ^^^^^^^^^^
Warning (2018): Function state mutability can be restricted to pure
--> src/mocks/ERC721.sol:923:5:
|
923 |functionname() public view override returns (string memory) {
| ^ (Relevant source part starts here and spans across multiple lines).
Warning (2018): Function state mutability can be restricted to pure
--> src/mocks/ERC721.sol:928:5:
|
928 |functionsymbol() public view override returns (string memory) {
| ^ (Relevant source part starts here and spans across multiple lines).
Warning (2018): Function state mutability can be restricted to pure
--> src/mocks/ERC721.sol:933:5:
|
933 |functiontokenURI(uint256 id) public view override returns (string memory) {
| ^ (Relevant source part starts here and spans across multiple lines).
Warning (2018): Function state mutability can be restricted to view
--> test/PermissionlessRescuable.t.sol:63:3:
|
63 |functiontest_whoShouldReceiveFunds() public {
| ^ (Relevant source part starts here and spans across multiple lines).
Warning (2018): Function state mutability can be restricted to view
--> test/UpgradeableOwnableWithGuardian.t.sol:29:3:
|
29 |functiontest_initializer() external {
| ^ (Relevant source part starts here and spans across multiple lines).
| Contract | Runtime Size (B) | Initcode Size (B) | Runtime Margin (B) | Initcode Margin (B) ||-----------------------------|------------------|-------------------|--------------------|---------------------|| Address | 85 | 135 | 24,491 | 49,017 || ChainHelpers | 85 | 135 | 24,491 | 49,017 || ChainIds | 85 | 135 | 24,491 | 49,017 || Create2Utils | 162 | 212 | 24,414 | 48,940 || Create3 | 85 | 135 | 24,491 | 49,017 || Create3Factory | 1,094 | 1,122 | 23,482 | 48,030 || ERC1967Proxy | 163 | 1,014 | 24,413 | 48,138 || ERC1967Utils | 85 | 135 | 24,491 | 49,017 || ERC20 | 2,331 | 3,020 | 22,245 | 46,132 || EnumerableSet | 85 | 135 | 24,491 | 49,017 || ImplOwnableWithGuardian | 1,464 | 1,492 | 23,112 | 47,660 || MockContract | 759 | 1,021 | 23,817 | 48,131 || MockERC721 | 2,421 | 2,449 | 22,155 | 46,703 || MockImpl | 465 | 690 | 24,111 | 48,462 || PermissionlessRescuable | 1,908 | 2,081 | 22,668 | 47,071 || ProxyAdmin | 1,039 | 1,275 | 23,537 | 47,877 || Rescuable | 1,807 | 1,958 | 22,769 | 47,194 || Rescuable721 | 2,043 | 2,201 | 22,533 | 46,951 || SafeCast | 85 | 135 | 24,491 | 49,017 || SafeERC20 | 85 | 135 | 24,491 | 49,017 || StorageSlot | 85 | 135 | 24,491 | 49,017 || TestNetChainIds | 85 | 135 | 24,491 | 49,017 || TransparentProxyFactory | 5,314 | 5,342 | 19,262 | 43,810 || TransparentUpgradeableProxy | 1,137 | 2,266 | 23,439 | 46,886 |
🔧 Build logs zksync
Compiling 47 files with zksolc and ZKsync solc 0.8.24
zksolc and ZKsync solc 0.8.24 finished in 11.16s
Compiler run successful with warnings:
Warning (2519)
Warning: This declaration shadows an existing declaration.
--> zksync/test/TransparentProxyFactoryZkSync.t.sol:88:5:
|
88 | address proxyAdmin = factory.createDeterministicProxyAdmin(proxyAdminOwner, proxyAdminSalt);| ^^^^^^^^^^^^^^^^^^
Note: The shadowed declaration is here:
--> zksync/test/TransparentProxyFactoryZkSync.t.sol:14:3:
|
14 | ProxyAdmin internal proxyAdmin;| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning (2519)
Warning: This declaration shadows an existing declaration.
--> zksync/test/TransparentProxyFactoryZkSync.t.sol:106:5:
|
106 | address proxyAdmin = factory.createDeterministicProxyAdmin(proxyAdminOwner, proxyAdminSalt);| ^^^^^^^^^^^^^^^^^^
Note: The shadowed declaration is here:
--> zksync/test/TransparentProxyFactoryZkSync.t.sol:14:3:
|
14 | ProxyAdmin internal proxyAdmin;| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning
┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Warning: Your code or one of its dependencies uses the 'extcodesize' instruction, which is │
│ usually needed in the following cases: │
│ 1. To detect whether an address belongs to a smart contract. │
│ 2. To detect whether the deploy code execution has finished. │
│ zkSync Era comes with native account abstraction support (so accounts are smart contracts, │
│ including private-key controlled EOAs), and you should avoid differentiating between contracts │
│ and non-contract addresses. │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
--> lib/forge-std/src/StdCheats.sol
Warning
┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Warning: Your code or one of its dependencies uses the 'extcodesize' instruction, which is │
│ usually needed in the following cases: │
│ 1. To detect whether an address belongs to a smart contract. │
│ 2. To detect whether the deploy code execution has finished. │
│ zkSync Era comes with native account abstraction support (so accounts are smart contracts, │
│ including private-key controlled EOAs), and you should avoid differentiating between contracts │
│ and non-contract addresses. │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
--> lib/forge-std/src/StdUtils.sol
Warning
┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Warning: It looks like you are using 'ecrecover' to validate a signature of a user account. │
│ zkSync Era comes with native account abstraction support, therefore it is highly recommended NOT │
│ to rely on the fact that the account has an ECDSA private key attached to it since accounts might│
│ implement other signature schemes. │
│ Read more about Account Abstraction at https://v2-docs.zksync.io/dev/developer-guides/aa.html │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
--> lib/forge-std/src/mocks/MockERC20.sol
Warning
┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Warning: Your code or one of its dependencies uses the 'extcodesize' instruction, which is │
│ usually needed in the following cases: │
│ 1. To detect whether an address belongs to a smart contract. │
│ 2. To detect whether the deploy code execution has finished. │
│ zkSync Era comes with native account abstraction support (so accounts are smart contracts, │
│ including private-key controlled EOAs), and you should avoid differentiating between contracts │
│ and non-contract addresses. │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
--> lib/forge-std/src/mocks/MockERC721.sol
| Contract | Runtime Size (B) | Initcode Size (B) | Runtime Margin (B) | Initcode Margin (B) ||-------------------------------|------------------|-------------------|--------------------|---------------------|| Address | 224 | 224 | 450,775 | 450,775 || Create2UtilsZkSync | 480 | 480 | 450,519 | 450,519 || ERC1967Proxy | 4,192 | 4,192 | 446,807 | 446,807 || ERC1967Utils | 224 | 224 | 450,775 | 450,775 || MockImpl | 2,272 | 2,272 | 448,727 | 448,727 || ProxyAdmin | 4,512 | 4,512 | 446,487 | 446,487 || StorageSlot | 224 | 224 | 450,775 | 450,775 || TransparentProxyFactoryZkSync | 8,032 | 8,032 | 442,967 | 442,967 || TransparentUpgradeableProxy | 7,136 | 7,136 | 443,863 | 443,863 |
3cee8a7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3cee8a7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔮 Coverage report
20
OwnableWithGuardian.onlyOwnerOrGuardian
66
Create3.create3
37, 63
Ownable.onlyOwner
Ownable.renounceOwnership
46, 54, 55, 64, 65, 66, 68, 78, 80, 81, 82, 100, 101, 102, 103, 104, 121, 138, 139
SafeERC20.safeTransferFrom
SafeERC20.safeIncreaseAllowance
SafeERC20.safeDecreaseAllowance
SafeERC20.forceApprove
SafeERC20.safePermit
SafeERC20._callOptionalReturnBool
124, 128, 129, 131, 132, 140
Initializable.reinitializer
Initializable.onlyInitializing
33, 37, 40, 44, 45, 47, 48, 65, 66, 74
Proxy._delegate
Proxy._fallback
Proxy.
Proxy._beforeFallback
43
ProxyAdmin.upgradeAndCall
20, 22, 23, 28, 30, 31
TransparentProxyFactoryBase.create
TransparentProxyFactoryBase.createProxyAdmin
105, 106, 108, 123, 124
TransparentUpgradeableProxy._dispatchUpgradeToAndCall
3cee8a7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔧 Build logs
🔧 Build logs zksync
3cee8a7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
⛽ Gas report
Create3Factory
| Method | min | mean | median | max | calls |
| --- | ---: | ---: | ---: | ---: | ---: |
create(bytes32,bytes) | ↓-1.8%41507 | ↓-0.18%209905 | ↓-0.12%293726 | ↓-0.0041%294482 | 3 |
ProxyAdmin
| Method | min | mean | median | max | calls |
| --- | ---: | ---: | ---: | ---: | ---: |
owner() | ↓-25%288 | ↓-25%288 | ↓-25%288 | ↓-25%288 | 2 |
TransparentProxyFactory
| Method | min | mean | median | max | calls |
| --- | ---: | ---: | ---: | ---: | ---: |
createDeterministic(address,address,bytes,bytes32) | ↓-32%384550 | ↓-32%384724 | ↓-32%384724 | ↓-32%384898 | 2 |
createDeterministicProxyAdmin(address,bytes32) | ↓-30%288380 | ↓-30%288656 | ↓-30%288656 | ↓-30%288932 | 2 |
predictCreateDeterministic(address,address,bytes,bytes32) | ↓-27%8698 | ↓-27%8698 | ↓-27%8698 | ↓-27%8698 | 2 |
predictCreateDeterministicProxyAdmin(bytes32,address) | 4876 | 4876 | 4876 | 4876 | 2 |
TransparentUpgradeableProxy
| Method | min | mean | median | max | calls |
| --- | ---: | ---: | ---: | ---: | ---: |
getFoo() | ↓-34%682 | ↓-34%682 | ↓-34%682 | ↓-34%682 | 2 |
ImplOwnableWithGuardian
| Method | min | mean | median | max | calls |
| --- | ---: | ---: | ---: | ---: | ---: |
updateGuardian(address) | 26169 | ↑0.06%30016 | 30519 | 30519 | 9 |
Rescuable721
| Method | min | mean | median | max | calls |
| --- | ---: | ---: | ---: | ---: | ---: |
emergency721TokenTransfer(address,address,uint256) | ↓-0.91%22219 | ↓-0.25%40964 | ↓-0.25%40964 | 59709 | 2 |
ImplOwnableWithGuardian
| Method | min | mean | median | max | calls |
| --- | ---: | ---: | ---: | ---: | ---: |
updateGuardian(address) | ↓-0.77%26139 | 29136 | ↑0.67%30532 | 30739 | 3 |
3cee8a7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🌈 Test Results
🌈 Test Results zksync