Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
542fa73
feat: fast-withdrawal setup script (#143)
TucksonDev Jul 15, 2024
a2e7af0
refactor: bump @arbitrum/sdk from 4.0.0-alpha.4 to 4.0.0 (#151)
spsjvc Jul 17, 2024
e34d989
chore: update yarn.lock
spsjvc Jul 19, 2024
1e5a32b
chore: bump version
spsjvc Jul 19, 2024
86486d7
ci: update node modules install action (#154)
spsjvc Aug 5, 2024
264c397
ci: ignore elliptic advisories (#156)
fionnachan Aug 6, 2024
2808ec1
fix: convert big number to hex string first (#158)
spsjvc Aug 7, 2024
886e0b2
docs: update readme
spsjvc Aug 7, 2024
6d8f9e0
chore: bump version
spsjvc Aug 7, 2024
4e12681
feat: handle generating abi from proxy (#159)
spsjvc Aug 8, 2024
19b5a52
feat: organize contracts by file and version (#160)
spsjvc Aug 8, 2024
85ded16
feat: add AEP fee routing utils with examples (#80)
TucksonDev Aug 9, 2024
7f072f0
test: update implementation address in assertion (#161)
spsjvc Aug 12, 2024
e52980a
chore: omit patch number from contract version
spsjvc Aug 12, 2024
8522dd8
feat: remove deprecated createRollupPrepareConfig (#163)
spsjvc Aug 13, 2024
3266be7
feat: add support for RollupCreator v2.1 (#153)
spsjvc Aug 13, 2024
414d08a
feat: add utils for wasm module root (#155)
spsjvc Aug 13, 2024
b52e6d7
feat: use consensus v31 wasm module root (#164)
spsjvc Aug 13, 2024
c65c346
chore: bump version
spsjvc Aug 14, 2024
45745e8
feat: add getConsensusVersion util (#166)
spsjvc Aug 14, 2024
011748c
feat: update wasm utils as consensus release utils (#167)
spsjvc Aug 14, 2024
9dc8568
chore: update token bridge contracts (#165)
spsjvc Aug 14, 2024
b4634ba
feat: reduce config options in prepareChainConfig (#169)
spsjvc Aug 14, 2024
9b33e2f
chore: update yarn.lock
spsjvc Aug 15, 2024
143d415
chore: bump version
spsjvc Aug 15, 2024
057a7f0
feat: add nitro contracts v2.1 abis (#168)
spsjvc Aug 15, 2024
5f2b6ff
fix: properly export contracts (#170)
spsjvc Aug 16, 2024
f82d01e
chore: bump version
spsjvc Aug 16, 2024
36fd6fe
fix: add fast confirmer as validator (#171)
TucksonDev Aug 16, 2024
ced5193
feat: add SequencerInbox getters (#114)
chrstph-dvx Aug 19, 2024
e14d272
ci: pin nitro testnode to release (#172)
spsjvc Aug 20, 2024
3586145
chore: ignore GHSA-952p-6rrq-rcjv advisory (#174)
spsjvc Aug 26, 2024
4b6abaf
fix: make createRollupPrepareTransaction work with v1.1 (#173)
spsjvc Aug 26, 2024
3170519
feat: add SequencerInbox setters (#117)
chrstph-dvx Aug 27, 2024
e937f3c
build: bump packages and remove advisories (#175)
fionnachan Aug 27, 2024
e100388
feat: export buildSetIsBatchPoster (#176)
chrstph-dvx Aug 27, 2024
4e61b48
chore: bump version
spsjvc Aug 28, 2024
95d0a78
Feat: Add v1 RollupAdminLogic getters
chrstph-dvx Jun 27, 2024
be07399
Fetch rollupAddress from sequencerInbox in getters
chrstph-dvx Jul 2, 2024
ab36d2d
Update cache key
chrstph-dvx Jul 10, 2024
c2e8a55
Feat: Add v1 ArbOwnerPublic getters
chrstph-dvx Jun 28, 2024
02e6fdf
Feat: Add v1 ArbGasInfo getters
chrstph-dvx Jun 28, 2024
d0925ab
Use proper case for getParentBaseFeeEstimate
chrstph-dvx Jul 1, 2024
fdc7501
Feat: Add v1 upgradeExecutor getters
chrstph-dvx Jun 28, 2024
81a09e5
Feat: Add v1 SequencerInbox setters
chrstph-dvx Jun 27, 2024
795894a
Feat: Add v1 RollupAdminLogic setters
chrstph-dvx Jun 27, 2024
2dfedf9
Fetch rollupAddress from sequencerInbox in setters
chrstph-dvx Jul 2, 2024
e5d1cb9
Feat: Add v1 ArbOwnerPublic setters
chrstph-dvx Jun 28, 2024
8a219dd
Rename setMaxTxGasLimit
chrstph-dvx Jul 1, 2024
3e8811c
Feat: Add v1 upgradeExecutor setters
chrstph-dvx Jun 28, 2024
5beddc0
Feat: Add v1 publicActionsChildChain
chrstph-dvx Jul 1, 2024
3c5a929
Update getParentBaseFeeEstimate unit test
chrstph-dvx Jul 1, 2024
a326949
Feat: Add v1 publicActions for parent chain
chrstph-dvx Jun 27, 2024
ef6ab80
Change chains for unit test
chrstph-dvx Jul 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: make createRollupPrepareTransaction work with v1.1 (#173)
  • Loading branch information
spsjvc authored Aug 26, 2024
commit 4b6abaf0e02d7d809712af783aeb45659d9da29c
80 changes: 80 additions & 0 deletions src/__snapshots__/createRollupPrepareTransaction.unit.test.ts.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`successfully parses input calldata for a chain created with RollupCreator v1.1 1`] = `
[
{
"batchPoster": "0x3C3A5b44FAB0e2025160a765348c21C08e41d1Af",
"config": {
"baseStake": 100000000000000000n,
"chainConfig": "{\\"homesteadBlock\\":0,\\"daoForkBlock\\":null,\\"daoForkSupport\\":true,\\"eip150Block\\":0,\\"eip150Hash\\":\\"0x0000000000000000000000000000000000000000000000000000000000000000\\",\\"eip155Block\\":0,\\"eip158Block\\":0,\\"byzantiumBlock\\":0,\\"constantinopleBlock\\":0,\\"petersburgBlock\\":0,\\"istanbulBlock\\":0,\\"muirGlacierBlock\\":0,\\"berlinBlock\\":0,\\"londonBlock\\":0,\\"clique\\":{\\"period\\":0,\\"epoch\\":0},\\"arbitrum\\":{\\"EnableArbOS\\":true,\\"AllowDebugPrecompiles\\":false,\\"DataAvailabilityCommittee\\":true,\\"InitialArbOSVersion\\":20,\\"GenesisBlockNum\\":0,\\"MaxCodeSize\\":24576,\\"MaxInitCodeSize\\":49152,\\"InitialChainOwner\\":\\"0x41C966f99De0cA6F6531fbcAc9Db7eaBDF119744\\"},\\"chainId\\":30046249195}",
"chainId": 30046249195n,
"confirmPeriodBlocks": 150n,
"extraChallengeTimeBlocks": 0n,
"genesisBlockNum": 0n,
"loserStakeEscrow": "0x0000000000000000000000000000000000000000",
"owner": "0x41C966f99De0cA6F6531fbcAc9Db7eaBDF119744",
"sequencerInboxMaxTimeVariation": {
"delayBlocks": 28800n,
"delaySeconds": 345600n,
"futureBlocks": 300n,
"futureSeconds": 3600n,
},
"stakeToken": "0x0000000000000000000000000000000000000000",
"wasmModuleRoot": "0x8b104a2e80ac6165dc58b9048de12f301d70b02a0ab51396c22b4b4b802a16a4",
},
"deployFactoriesToL2": true,
"maxDataSize": 104857n,
"maxFeePerGasForRetryables": 100000000n,
"nativeToken": "0x0000000000000000000000000000000000000000",
"validators": [
"0x8E842599F71ABD661737bb3108a53E5b1787c791",
],
},
]
`;

exports[`successfully parses input calldata for a chain created with RollupCreator v2.1 1`] = `
[
{
"batchPosterManager": "0x0000000000000000000000000000000000000000",
"batchPosters": [
"0x9464aD09CE0d157Efc6c7EefE577C5AA6dEc804D",
"0xC02386B2D10a37e71145B6A7f5569e1db4604213",
"0x6C4483f6DCEDb5a758b28D28E11F805bdACFE245",
"0xf89836dc33f58394fB34B3e690D3829A65C74286",
"0xd1d25Aeb44E99B35E2d5E7Db961c73ec94f92a24",
"0xDc4ECA04032b9178020Ff0c6154A7e87309a429f",
"0xe122F9838A4C8e6834F24D1b9dCa92eb52a8E17e",
"0xB280Fd59090f3D95588d94BACD22b336dE2278e0",
],
"config": {
"baseStake": 100000000000000000n,
"chainConfig": "{\\"homesteadBlock\\":0,\\"daoForkBlock\\":null,\\"daoForkSupport\\":true,\\"eip150Block\\":0,\\"eip150Hash\\":\\"0x0000000000000000000000000000000000000000000000000000000000000000\\",\\"eip155Block\\":0,\\"eip158Block\\":0,\\"byzantiumBlock\\":0,\\"constantinopleBlock\\":0,\\"petersburgBlock\\":0,\\"istanbulBlock\\":0,\\"muirGlacierBlock\\":0,\\"berlinBlock\\":0,\\"londonBlock\\":0,\\"clique\\":{\\"period\\":0,\\"epoch\\":0},\\"arbitrum\\":{\\"EnableArbOS\\":true,\\"AllowDebugPrecompiles\\":false,\\"DataAvailabilityCommittee\\":true,\\"InitialArbOSVersion\\":20,\\"GenesisBlockNum\\":0,\\"MaxCodeSize\\":24576,\\"MaxInitCodeSize\\":49152,\\"InitialChainOwner\\":\\"0x31bAC660fBB4eF1B91409dB42CB4C6e75527d004\\"},\\"chainId\\":32902132974}",
"chainId": 32902132974n,
"confirmPeriodBlocks": 150n,
"extraChallengeTimeBlocks": 0n,
"genesisBlockNum": 0n,
"loserStakeEscrow": "0x0000000000000000000000000000000000000000",
"owner": "0x31bAC660fBB4eF1B91409dB42CB4C6e75527d004",
"sequencerInboxMaxTimeVariation": {
"delayBlocks": 28800n,
"delaySeconds": 345600n,
"futureBlocks": 300n,
"futureSeconds": 3600n,
},
"stakeToken": "0x0000000000000000000000000000000000000000",
"wasmModuleRoot": "0x260f5fa5c3176a856893642e149cf128b5a8de9f828afec8d11184415dd8dc69",
},
"deployFactoriesToL2": false,
"maxDataSize": 104857n,
"maxFeePerGasForRetryables": 100000000n,
"nativeToken": "0x0000000000000000000000000000000000000000",
"validators": [
"0xDBb2c9923b5DE18B151bC55Ed571EDcd1fC7EeB9",
"0x84B2EFFDd54aA5dce861440Ae9B9D320b043a64c",
"0x39B4Ce32E557225a401917a701ac4d267648635a",
"0xe2D0cC872647B1A129B942BbFC980B31E8e94Df2",
],
},
]
`;
41 changes: 35 additions & 6 deletions src/createRollupPrepareTransaction.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,46 @@
import { Transaction, decodeFunctionData } from 'viem';
import { DecodeFunctionDataReturnType } from 'viem/_types/utils/abi/decodeFunctionData';

import { rollupCreatorABI } from './contracts/RollupCreator';
import { CreateRollupFunctionInputs } from './types/createRollupTypes';
import { rollupCreatorABI as rollupCreatorV1Dot1ABI } from './contracts/RollupCreator/v1.1';

function createRollupDecodeFunctionData(data: `0x${string}`) {
return decodeFunctionData({
abi: rollupCreatorABI,
data,
import {
CreateRollupFunctionInputs,
RollupCreatorABI,
RollupCreatorVersion,
RollupCreatorLatestVersion,
} from './types/createRollupTypes';

function createRollupDecodeFunctionData<TAbi extends RollupCreatorABI<'v2.1' | 'v1.1'>>(
data: `0x${string}`,
): DecodeFunctionDataReturnType<TAbi> {
let result: DecodeFunctionDataReturnType<TAbi> | null = null;

// try parsing from multiple RollupCreator versions
[
// v2.1
rollupCreatorABI,
// v1.1
rollupCreatorV1Dot1ABI,
].forEach((abi) => {
try {
result = decodeFunctionData({ abi, data }) as DecodeFunctionDataReturnType<TAbi>;
} catch (error) {
// do nothing
}
});

if (result === null) {
throw new Error(`[createRollupPrepareTransaction] failed to decode function data`);
}

return result;
}

export type CreateRollupTransaction = Transaction & {
getInputs(): CreateRollupFunctionInputs;
getInputs<
TVersion extends RollupCreatorVersion = RollupCreatorLatestVersion,
>(): CreateRollupFunctionInputs<TVersion>;
};

export function createRollupPrepareTransaction(tx: Transaction): CreateRollupTransaction {
Expand Down
24 changes: 24 additions & 0 deletions src/createRollupPrepareTransaction.unit.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { it, expect } from 'vitest';
import { Transaction } from 'viem';

import { createRollupPrepareTransaction } from './createRollupPrepareTransaction';

// https://sepolia.arbiscan.io/tx/0x5b0b49e0259289fc89949a55a5ad35a8939440a55065d29b14e5e7ef7494efff
it('successfully parses input calldata for a chain created with RollupCreator v1.1', () => {
const { getInputs } = createRollupPrepareTransaction({
input:
'0xcb73d6e2000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000003c3a5b44fab0e2025160a765348c21c08e41d1af00000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000019999000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016345785d8a00008b104a2e80ac6165dc58b9048de12f301d70b02a0ab51396c22b4b4b802a16a400000000000000000000000041c966f99de0ca6f6531fbcac9db7eabdf119744000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006fee560eb00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007080000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000e1000000000000000000000000000000000000000000000000000000000000002757b22686f6d657374656164426c6f636b223a302c2264616f466f726b426c6f636b223a6e756c6c2c2264616f466f726b537570706f7274223a747275652c22656970313530426c6f636b223a302c2265697031353048617368223a22307830303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030222c22656970313535426c6f636b223a302c22656970313538426c6f636b223a302c2262797a616e7469756d426c6f636b223a302c22636f6e7374616e74696e6f706c65426c6f636b223a302c2270657465727362757267426c6f636b223a302c22697374616e62756c426c6f636b223a302c226d756972476c6163696572426c6f636b223a302c226265726c696e426c6f636b223a302c226c6f6e646f6e426c6f636b223a302c22636c69717565223a7b22706572696f64223a302c2265706f6368223a307d2c22617262697472756d223a7b22456e61626c654172624f53223a747275652c22416c6c6f774465627567507265636f6d70696c6573223a66616c73652c2244617461417661696c6162696c697479436f6d6d6974746565223a747275652c22496e697469616c4172624f5356657273696f6e223a32302c2247656e65736973426c6f636b4e756d223a302c224d6178436f646553697a65223a32343537362c224d6178496e6974436f646553697a65223a34393135322c22496e697469616c436861696e4f776e6572223a22307834314339363666393944653063413646363533316662634163394462376561424446313139373434227d2c22636861696e4964223a33303034363234393139357d000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000008e842599f71abd661737bb3108a53e5b1787c791',
} as unknown as Transaction);

expect(getInputs()).toMatchSnapshot();
});

// https://sepolia.arbiscan.io/tx/0x77db43157182a69ce0e6d2a0564d2dabb43b306d48ea7b4d877160d6a1c9b66d
it('successfully parses input calldata for a chain created with RollupCreator v2.1', () => {
const { getInputs } = createRollupPrepareTransaction({
input:
'0x331f9b0b0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000019999000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016345785d8a0000260f5fa5c3176a856893642e149cf128b5a8de9f828afec8d11184415dd8dc6900000000000000000000000031bac660fbb4ef1b91409db42cb4c6e75527d004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a91eb4ee00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007080000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000e1000000000000000000000000000000000000000000000000000000000000002757b22686f6d657374656164426c6f636b223a302c2264616f466f726b426c6f636b223a6e756c6c2c2264616f466f726b537570706f7274223a747275652c22656970313530426c6f636b223a302c2265697031353048617368223a22307830303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030222c22656970313535426c6f636b223a302c22656970313538426c6f636b223a302c2262797a616e7469756d426c6f636b223a302c22636f6e7374616e74696e6f706c65426c6f636b223a302c2270657465727362757267426c6f636b223a302c22697374616e62756c426c6f636b223a302c226d756972476c6163696572426c6f636b223a302c226265726c696e426c6f636b223a302c226c6f6e646f6e426c6f636b223a302c22636c69717565223a7b22706572696f64223a302c2265706f6368223a307d2c22617262697472756d223a7b22456e61626c654172624f53223a747275652c22416c6c6f774465627567507265636f6d70696c6573223a66616c73652c2244617461417661696c6162696c697479436f6d6d6974746565223a747275652c22496e697469616c4172624f5356657273696f6e223a32302c2247656e65736973426c6f636b4e756d223a302c224d6178436f646553697a65223a32343537362c224d6178496e6974436f646553697a65223a34393135322c22496e697469616c436861696e4f776e6572223a22307833316241433636306642423465463142393134303964423432434234433665373535323764303034227d2c22636861696e4964223a33323930323133323937347d00000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000dbb2c9923b5de18b151bc55ed571edcd1fc7eeb900000000000000000000000084b2effdd54aa5dce861440ae9b9d320b043a64c00000000000000000000000039b4ce32e557225a401917a701ac4d267648635a000000000000000000000000e2d0cc872647b1a129b942bbfc980b31e8e94df200000000000000000000000000000000000000000000000000000000000000080000000000000000000000009464ad09ce0d157efc6c7eefe577c5aa6dec804d000000000000000000000000c02386b2d10a37e71145b6a7f5569e1db46042130000000000000000000000006c4483f6dcedb5a758b28d28e11f805bdacfe245000000000000000000000000f89836dc33f58394fb34b3e690d3829a65c74286000000000000000000000000d1d25aeb44e99b35e2d5e7db961c73ec94f92a24000000000000000000000000dc4eca04032b9178020ff0c6154a7e87309a429f000000000000000000000000e122f9838a4c8e6834f24d1b9dca92eb52a8e17e000000000000000000000000b280fd59090f3d95588d94bacd22b336de2278e0',
} as unknown as Transaction);

expect(getInputs()).toMatchSnapshot();
});
12 changes: 11 additions & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ import {
createRollupPrepareCustomFeeTokenApprovalTransactionRequest,
CreateRollupPrepareCustomFeeTokenApprovalTransactionRequestParams,
} from './createRollupPrepareCustomFeeTokenApprovalTransactionRequest';
import { CreateRollupFunctionInputs, CreateRollupParams } from './types/createRollupTypes';
import {
RollupCreatorVersion,
RollupCreatorLatestVersion,
RollupCreatorABI,
CreateRollupFunctionInputs,
CreateRollupParams,
} from './types/createRollupTypes';
import {
createRollupPrepareTransactionRequest,
CreateRollupPrepareTransactionRequestParams,
Expand Down Expand Up @@ -150,6 +156,10 @@ export {
CreateRollupFunctionInputs,
CreateRollupParams,
//
RollupCreatorVersion,
RollupCreatorLatestVersion,
RollupCreatorABI,
//
createRollupPrepareDeploymentParamsConfig,
CreateRollupPrepareDeploymentParamsConfigParams,
CreateRollupPrepareDeploymentParamsConfigResult,
Expand Down
40 changes: 33 additions & 7 deletions src/types/createRollupTypes.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,42 @@
import { Address, GetFunctionArgs } from 'viem';

import { rollupCreatorABI } from '../contracts/RollupCreator';
import { rollupCreatorABI as rollupCreatorV1Dot1ABI } from '../contracts/RollupCreator/v1.1';

export type CreateRollupFunctionInputs = GetFunctionArgs<
typeof rollupCreatorABI,
'createRollup'
>['args'];
import { Prettify } from './utils';

type RequiredKeys = 'config' | 'batchPosters' | 'validators';
export type RollupCreatorVersion = 'v2.1' | 'v1.1';
export type RollupCreatorLatestVersion = Extract<RollupCreatorVersion, 'v2.1'>;

export type CreateRollupParams = Pick<CreateRollupFunctionInputs[0], RequiredKeys> &
Partial<Omit<CreateRollupFunctionInputs[0], RequiredKeys>>;
export type RollupCreatorABI<TVersion extends RollupCreatorVersion = RollupCreatorLatestVersion> =
//
TVersion extends 'v2.1'
? typeof rollupCreatorABI
: TVersion extends 'v1.1'
? typeof rollupCreatorV1Dot1ABI
: never;

export type CreateRollupFunctionInputs<
TVersion extends RollupCreatorVersion = RollupCreatorLatestVersion,
> = GetFunctionArgs<RollupCreatorABI<TVersion>, 'createRollup'>['args'];

type GetCreateRollupRequiredKeys<
TVersion extends RollupCreatorVersion = RollupCreatorLatestVersion,
> =
//
TVersion extends 'v2.1'
? 'config' | 'batchPosters' | 'validators'
: TVersion extends 'v1.1'
? 'config' | 'batchPoster' | 'validators'
: never;

export type CreateRollupParams<TVersion extends RollupCreatorVersion = RollupCreatorLatestVersion> =
Prettify<
// @ts-ignore this works perfectly fine, not sure why typescript is complaining
Pick<CreateRollupFunctionInputs<TVersion>[0], GetCreateRollupRequiredKeys<TVersion>> &
// @ts-ignore this works perfectly fine, not sure why typescript is complaining
Partial<Omit<CreateRollupFunctionInputs<TVersion>[0], GetCreateRollupRequiredKeys<TVersion>>>
>;

export type WithRollupCreatorAddressOverride<T> = T & {
/**
Expand Down