Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
FelixFan1992 committed Jan 31, 2025
1 parent 14bfaee commit 91b581b
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ runs:
- 'contracts/src/v0.8/automation/v2_0/**/*'
- 'contracts/src/v0.8/automation/v2_1/**/*'
- 'contracts/src/v0.8/automation/v2_2/**/*'
exclude:
- 'contracts/src/v0.8/automation/interfaces/zksync/*'
- name: Fail if read-only files have changed
if: ${{ steps.changed_files.outputs.read_only_sol == 'true' }}
Expand Down
4 changes: 2 additions & 2 deletions contracts/src/v0.8/automation/ZKSyncAutomationForwarder.sol
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ uint256 constant PERFORM_GAS_CUSHION = 50_000;
// We limit return data to a selector plus 4 words. This is to avoid
// malicious contracts from returning large amounts of data and causing
// repeated out-of-gas scenarios.
uint16 constant MAX_CALLBACK_RETURN_BYTES = 132;
//uint16 constant MAX_CALLBACK_RETURN_BYTES = 132;

/**
* @title ZKSyncAutomationForwarder is a relayer that sits between the registry and the customer's target contract
Expand Down Expand Up @@ -69,7 +69,7 @@ contract ZKSyncAutomationForwarder {
target,
gasAmount,
data,
MAX_CALLBACK_RETURN_BYTES
0
);
return (success, g1 - gasleft() + pubdataGasSpent);
}
Expand Down
16 changes: 0 additions & 16 deletions contracts/src/v0.8/automation/mocks/MockZKSyncSystemContext.sol

This file was deleted.

19 changes: 9 additions & 10 deletions contracts/src/v0.8/automation/test/v2_3_zksync/BaseTest.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ import {AutomationRegistrar2_3} from "../../v2_3/AutomationRegistrar2_3.sol";
import {ChainModuleBase} from "../../chains/ChainModuleBase.sol";
import {MockUpkeep} from "../../mocks/MockUpkeep.sol";
import {IWrappedNative} from "../../interfaces/v2_3/IWrappedNative.sol";
import {MockGasBoundCaller} from "../../mocks/MockGasBoundCaller.sol";
import {MockZKSyncSystemContext} from "../../mocks/MockZKSyncSystemContext.sol";
//import {MockGasBoundCaller} from "../../mocks/MockGasBoundCaller.sol";
import {MockSystemContext} from "../../../shared/test/mocks/MockSystemContext.sol";

import {ERC20Mock} from "../../../vendor/openzeppelin-solidity/v4.8.3/contracts/mocks/ERC20Mock.sol";
import {IERC20Metadata as IERC20} from "../../../vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/extensions/IERC20Metadata.sol";
Expand Down Expand Up @@ -55,8 +55,8 @@ contract BaseTest is Test {
MockUpkeep internal TARGET1;
MockUpkeep internal TARGET2;
Transcoder internal TRANSCODER;
MockGasBoundCaller internal GAS_BOUND_CALLER;
MockZKSyncSystemContext internal SYSTEM_CONTEXT;
// MockGasBoundCaller internal GAS_BOUND_CALLER;
MockSystemContext internal SYSTEM_CONTEXT;

// roles
address internal constant OWNER = address(uint160(uint256(keccak256("OWNER"))));
Expand Down Expand Up @@ -95,14 +95,13 @@ contract BaseTest is Test {
TARGET2 = new MockUpkeep();

TRANSCODER = new Transcoder();
GAS_BOUND_CALLER = new MockGasBoundCaller();
SYSTEM_CONTEXT = new MockZKSyncSystemContext();
// GAS_BOUND_CALLER = new MockGasBoundCaller();
SYSTEM_CONTEXT = new MockSystemContext();

bytes memory callerCode = address(GAS_BOUND_CALLER).code;
vm.etch(0xc706EC7dfA5D4Dc87f29f859094165E8290530f5, callerCode);
// bytes memory callerCode = address(GAS_BOUND_CALLER).code;
// vm.etch(0xc706EC7dfA5D4Dc87f29f859094165E8290530f5, callerCode);

bytes memory contextCode = address(SYSTEM_CONTEXT).code;
vm.etch(0x000000000000000000000000000000000000800B, contextCode);
vm.etch(address(0x800b), address(SYSTEM_CONTEXT).code);

SIGNERS[0] = vm.addr(SIGNING_KEY0); //0xc110458BE52CaA6bB68E66969C3218A4D9Db0211
SIGNERS[1] = vm.addr(SIGNING_KEY1); //0xc110a19c08f1da7F5FfB281dc93630923F8E3719
Expand Down
59 changes: 25 additions & 34 deletions contracts/test/v0.8/automation/ZKSyncAutomationRegistry2_3.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@ import { StreamsLookupUpkeep__factory as StreamsLookupUpkeepFactory } from '../.
import { MockV3Aggregator__factory as MockV3AggregatorFactory } from '../../../typechain/factories/MockV3Aggregator__factory'
import { UpkeepMock__factory as UpkeepMockFactory } from '../../../typechain/factories/UpkeepMock__factory'
import { UpkeepAutoFunder__factory as UpkeepAutoFunderFactory } from '../../../typechain/factories/UpkeepAutoFunder__factory'
import { MockZKSyncSystemContext__factory as MockZKSyncSystemContextFactory } from '../../../typechain/factories/MockZKSyncSystemContext__factory'
import { MockSystemContext__factory as MockSystemContextFactory } from '../../../typechain/factories/MockSystemContext__factory'
import { ChainModuleBase__factory as ChainModuleBaseFactory } from '../../../typechain/factories/ChainModuleBase__factory'
import { MockGasBoundCaller__factory as MockGasBoundCallerFactory } from '../../../typechain/factories/MockGasBoundCaller__factory'
// import { MockGasBoundCaller__factory as MockGasBoundCallerFactory } from '../../../typechain/factories/MockGasBoundCaller__factory'
import { ILogAutomation__factory as ILogAutomationactory } from '../../../typechain/factories/ILogAutomation__factory'
import { AutomationCompatibleUtils } from '../../../typechain/AutomationCompatibleUtils'
import { StreamsLookupUpkeep } from '../../../typechain/StreamsLookupUpkeep'
import { MockV3Aggregator } from '../../../typechain/MockV3Aggregator'
import { MockGasBoundCaller } from '../../../typechain/MockGasBoundCaller'
// import { MockGasBoundCaller } from '../../../typechain/MockGasBoundCaller'
import { UpkeepMock } from '../../../typechain/UpkeepMock'
import { ChainModuleBase } from '../../../typechain/ChainModuleBase'
import { UpkeepTranscoder } from '../../../typechain/UpkeepTranscoder'
import { MockZKSyncSystemContext } from '../../../typechain/MockZKSyncSystemContext'
import { MockSystemContext } from '../../../typechain/MockSystemContext'
import { IChainModule, UpkeepAutoFunder } from '../../../typechain'
import {
CancelledUpkeepReportEvent,
Expand Down Expand Up @@ -139,11 +139,11 @@ let logTriggerConfig: string
// Smart contract factories
let linkTokenFactory: ContractFactory
let mockV3AggregatorFactory: MockV3AggregatorFactory
let mockGasBoundCallerFactory: MockGasBoundCallerFactory
// let mockGasBoundCallerFactory: MockGasBoundCallerFactory
let upkeepMockFactory: UpkeepMockFactory
let upkeepAutoFunderFactory: UpkeepAutoFunderFactory
let moduleBaseFactory: ChainModuleBaseFactory
let mockZKSyncSystemContextFactory: MockZKSyncSystemContextFactory
let mockSystemContextFactory: MockSystemContextFactory
let streamsLookupUpkeepFactory: StreamsLookupUpkeepFactory
let personas: Personas

Expand All @@ -159,8 +159,8 @@ let autoFunderUpkeep: UpkeepAutoFunder
let ltUpkeep: MockContract
let transcoder: UpkeepTranscoder
let moduleBase: ChainModuleBase
let mockGasBoundCaller: MockGasBoundCaller
let mockZKSyncSystemContext: MockZKSyncSystemContext
// let mockGasBoundCaller: MockGasBoundCaller
let mockSystemContext: MockSystemContext
let streamsLookupUpkeep: StreamsLookupUpkeep
let automationUtils: AutomationCompatibleUtils
let automationUtils2_3: AutomationUtils2_3
Expand Down Expand Up @@ -363,7 +363,7 @@ const parseCancelledUpkeepReportLogs = (receipt: ContractReceipt) => {
return parsedLogs
}

describe('ZKSyncAutomationRegistry2_3', () => {
describe.only('ZKSyncAutomationRegistry2_3', () => {
let owner: Signer
let keeper1: Signer
let keeper2: Signer
Expand Down Expand Up @@ -415,11 +415,10 @@ describe('ZKSyncAutomationRegistry2_3', () => {
mockV3AggregatorFactory = (await ethers.getContractFactory(
'src/v0.8/shared/mocks/MockV3Aggregator.sol:MockV3Aggregator',
)) as unknown as MockV3AggregatorFactory
mockZKSyncSystemContextFactory = await ethers.getContractFactory(
'MockZKSyncSystemContext',
)
mockGasBoundCallerFactory =
await ethers.getContractFactory('MockGasBoundCaller')
mockSystemContextFactory =
await ethers.getContractFactory('MockSystemContext')
// mockGasBoundCallerFactory =
// await ethers.getContractFactory('MockGasBoundCaller')
upkeepMockFactory = await ethers.getContractFactory('UpkeepMock')
upkeepAutoFunderFactory =
await ethers.getContractFactory('UpkeepAutoFunder')
Expand Down Expand Up @@ -825,10 +824,8 @@ describe('ZKSyncAutomationRegistry2_3', () => {
'UpkeepTranscoder5_0',
)
transcoder = await upkeepTranscoderFactory.connect(owner).deploy()
mockZKSyncSystemContext = await mockZKSyncSystemContextFactory
.connect(owner)
.deploy()
mockGasBoundCaller = await mockGasBoundCallerFactory.connect(owner).deploy()
mockSystemContext = await mockSystemContextFactory.connect(owner).deploy()
// mockGasBoundCaller = await mockGasBoundCallerFactory.connect(owner).deploy()
moduleBase = await moduleBaseFactory.connect(owner).deploy()
streamsLookupUpkeep = await streamsLookupUpkeepFactory
.connect(owner)
Expand All @@ -840,21 +837,21 @@ describe('ZKSyncAutomationRegistry2_3', () => {
false /* verify mercury response */,
)

const zksyncSystemContextCode = await ethers.provider.send('eth_getCode', [
mockZKSyncSystemContext.address,
const systemContextCode = await ethers.provider.send('eth_getCode', [
mockSystemContext.address,
])
await ethers.provider.send('hardhat_setCode', [
'0x000000000000000000000000000000000000800B',
zksyncSystemContextCode,
systemContextCode,
])

const gasBoundCallerCode = await ethers.provider.send('eth_getCode', [
mockGasBoundCaller.address,
])
await ethers.provider.send('hardhat_setCode', [
'0xc706EC7dfA5D4Dc87f29f859094165E8290530f5',
gasBoundCallerCode,
])
// const gasBoundCallerCode = await ethers.provider.send('eth_getCode', [
// mockGasBoundCaller.address,
// ])
// await ethers.provider.send('hardhat_setCode', [
// '0xc706EC7dfA5D4Dc87f29f859094165E8290530f5',
// gasBoundCallerCode,
// ])

const financeAdminAddress = await financeAdmin.getAddress()

Expand Down Expand Up @@ -914,12 +911,6 @@ describe('ZKSyncAutomationRegistry2_3', () => {
registryConditionalOverhead = await registry.getConditionalGasOverhead()
registryLogOverhead = await registry.getLogGasOverhead()
registryPerSignerGasOverhead = await registry.getPerSignerGasOverhead()
// registryPerPerformByteGasOverhead =
// await registry.getPerPerformByteGasOverhead()
// registryTransmitCalldataFixedBytesOverhead =
// await registry.getTransmitCalldataFixedBytesOverhead()
// registryTransmitCalldataPerSignerBytesOverhead =
// await registry.getTransmitCalldataPerSignerBytesOverhead()
cancellationDelay = (await registry.getCancellationDelay()).toNumber()

await registry.connect(owner).setConfigTypeSafe(...baseConfig)
Expand Down

0 comments on commit 91b581b

Please sign in to comment.