Skip to content

Commit 333655d

Browse files
committed
reverts to using bare functions
1 parent e0b2cf0 commit 333655d

File tree

12 files changed

+79
-101
lines changed

12 files changed

+79
-101
lines changed

examples/create-rollup-custom-fee-token/index.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Chain, http, Address } from 'viem';
1+
import { Chain, createPublicClient, http, Address } from 'viem';
22
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
33
import { arbitrumSepolia } from 'viem/chains';
44
import {
@@ -8,7 +8,6 @@ import {
88
createRollupPrepareCustomFeeTokenApprovalTransactionRequest,
99
createRollupPrepareTransactionRequest,
1010
createRollupPrepareTransactionReceipt,
11-
createOrbitClient,
1211
} from '@arbitrum/orbit-sdk';
1312
import { generateChainId } from '@arbitrum/orbit-sdk/utils';
1413

@@ -46,7 +45,7 @@ const validator = privateKeyToAccount(validatorPrivateKey).address;
4645

4746
// set the parent chain and create a public client for it
4847
const parentChain = arbitrumSepolia;
49-
const parentChainPublicClient = createOrbitClient({
48+
const parentChainPublicClient = createPublicClient({
5049
chain: parentChain,
5150
transport: http(),
5251
});

examples/create-rollup-eth/index.ts

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import { Chain, http } from 'viem';
1+
import { Chain, createPublicClient, http } from 'viem';
22
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
33
import { arbitrumSepolia } from 'viem/chains';
44
import {
55
createRollupPrepareConfig,
66
prepareChainConfig,
77
createRollupPrepareTransactionRequest,
88
createRollupPrepareTransactionReceipt,
9-
createOrbitClient,
109
} from '@arbitrum/orbit-sdk';
1110
import { generateChainId } from '@arbitrum/orbit-sdk/utils';
1211

@@ -44,10 +43,7 @@ const validator = privateKeyToAccount(validatorPrivateKey).address;
4443

4544
// set the parent chain and create a public client for it
4645
const parentChain = arbitrumSepolia;
47-
const parentChainOrbitClient = createOrbitClient({
48-
chain: parentChain,
49-
transport: http(),
50-
});
46+
const parentChainPublicClient = createPublicClient({ chain: parentChain, transport: http() });
5147

5248
// load the deployer account
5349
const deployer = privateKeyToAccount(sanitizePrivateKey(process.env.DEPLOYER_PRIVATE_KEY));
@@ -59,10 +55,7 @@ async function main() {
5955
// create the chain config
6056
const chainConfig = prepareChainConfig({
6157
chainId,
62-
arbitrum: {
63-
InitialChainOwner: deployer.address,
64-
DataAvailabilityCommittee: true,
65-
},
58+
arbitrum: { InitialChainOwner: deployer.address, DataAvailabilityCommittee: true },
6659
});
6760

6861
// prepare the transaction for deploying the core contracts
@@ -77,17 +70,17 @@ async function main() {
7770
validators: [validator],
7871
},
7972
account: deployer.address,
80-
publicClient: parentChainOrbitClient,
73+
publicClient: parentChainPublicClient,
8174
});
8275

8376
// sign and send the transaction
84-
const txHash = await parentChainOrbitClient.sendRawTransaction({
77+
const txHash = await parentChainPublicClient.sendRawTransaction({
8578
serializedTransaction: await deployer.signTransaction(request),
8679
});
8780

8881
// get the transaction receipt after waiting for the transaction to complete
8982
const txReceipt = createRollupPrepareTransactionReceipt(
90-
await parentChainOrbitClient.waitForTransactionReceipt({ hash: txHash }),
83+
await parentChainPublicClient.waitForTransactionReceipt({ hash: txHash }),
9184
);
9285

9386
console.log(`Deployed in ${getBlockExplorerUrl(parentChain)}/tx/${txReceipt.transactionHash}`);

examples/prepare-node-config/index.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
import { Chain, http } from 'viem';
1+
import { Chain, createPublicClient, http } from 'viem';
22
import { arbitrumSepolia } from 'viem/chains';
33
import {
44
ChainConfig,
55
createRollupPrepareTransaction,
66
createRollupPrepareTransactionReceipt,
77
prepareNodeConfig,
8-
createOrbitClient,
98
} from '@arbitrum/orbit-sdk';
109

1110
import { writeFile } from 'fs/promises';
@@ -16,7 +15,7 @@ function getRpcUrl(chain: Chain) {
1615

1716
// set the parent chain and create a public client for it
1817
const parentChain = arbitrumSepolia;
19-
const parentChainPublicClient = createOrbitClient({
18+
const parentChainPublicClient = createPublicClient({
2019
chain: parentChain,
2120
transport: http(),
2221
});

examples/set-valid-keyset/index.ts

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import { Chain, http } from 'viem';
1+
import { Chain, createPublicClient, http } from 'viem';
22
import { privateKeyToAccount } from 'viem/accounts';
33
import { arbitrumSepolia } from 'viem/chains';
44
import { setValidKeysetPrepareTransactionRequest } from '@arbitrum/orbit-sdk';
5-
import { createOrbitClient } from '@arbitrum/orbit-sdk/dist';
65

76
function sanitizePrivateKey(privateKey: string): `0x${string}` {
87
if (!privateKey.startsWith('0x')) {
@@ -25,10 +24,7 @@ const keyset =
2524

2625
// set the parent chain and create a public client for it
2726
const parentChain = arbitrumSepolia;
28-
const parentChainOrbitClient = createOrbitClient({
29-
chain: parentChain,
30-
transport: http(),
31-
});
27+
const parentChainPublicClient = createPublicClient({ chain: parentChain, transport: http() });
3228

3329
// load the deployer account
3430
const deployer = privateKeyToAccount(sanitizePrivateKey(process.env.DEPLOYER_PRIVATE_KEY));
@@ -42,18 +38,16 @@ async function main() {
4238
},
4339
keyset,
4440
account: deployer.address,
45-
publicClient: parentChainOrbitClient,
41+
publicClient: parentChainPublicClient,
4642
});
4743

4844
// sign and send the transaction
49-
const txHash = await parentChainOrbitClient.sendRawTransaction({
45+
const txHash = await parentChainPublicClient.sendRawTransaction({
5046
serializedTransaction: await deployer.signTransaction(txRequest),
5147
});
5248

5349
// wait for the transaction receipt
54-
const txReceipt = await parentChainOrbitClient.waitForTransactionReceipt({
55-
hash: txHash,
56-
});
50+
const txReceipt = await parentChainPublicClient.waitForTransactionReceipt({ hash: txHash });
5751

5852
console.log(
5953
`Keyset updated in ${getBlockExplorerUrl(parentChain)}/tx/${txReceipt.transactionHash}`,

src/createRollup.integration.test.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { it, expect } from 'vitest';
2-
import { http, parseGwei, zeroAddress } from 'viem';
2+
import { createPublicClient, http, parseGwei, zeroAddress } from 'viem';
33

44
import { nitroTestnodeL2 } from './chains';
55
import { generateChainId } from './utils';
@@ -10,14 +10,13 @@ import { createRollupPrepareTransactionRequest } from './createRollupPrepareTran
1010
import { createRollupPrepareTransactionReceipt } from './createRollupPrepareTransactionReceipt';
1111

1212
import { getTestPrivateKeyAccount } from './testHelpers';
13-
import { createOrbitClient } from './orbitClient';
1413

1514
const deployer = getTestPrivateKeyAccount();
1615

1716
const batchPoster = deployer.address;
1817
const validators = [deployer.address];
1918

20-
const orbitClient = createOrbitClient({
19+
const publicClient = createPublicClient({
2120
chain: nitroTestnodeL2,
2221
transport: http(),
2322
});
@@ -46,16 +45,16 @@ it(`successfully deploys core contracts through rollup creator`, async () => {
4645
validators,
4746
},
4847
account: deployer.address,
49-
orbitClient: orbitClient,
48+
publicClient,
5049
});
5150

5251
// sign and send the transaction
53-
const txHash = await orbitClient.sendRawTransaction({
52+
const txHash = await publicClient.sendRawTransaction({
5453
serializedTransaction: await deployer.signTransaction(request),
5554
});
5655

5756
// get the transaction
58-
const tx = createRollupPrepareTransaction(await orbitClient.getTransaction({ hash: txHash }));
57+
const tx = createRollupPrepareTransaction(await publicClient.getTransaction({ hash: txHash }));
5958

6059
const [arg] = tx.getInputs();
6160
// assert all inputs are correct
@@ -69,7 +68,7 @@ it(`successfully deploys core contracts through rollup creator`, async () => {
6968

7069
// get the transaction receipt after waiting for the transaction to complete
7170
const txReceipt = createRollupPrepareTransactionReceipt(
72-
await orbitClient.waitForTransactionReceipt({ hash: txHash }),
71+
await publicClient.waitForTransactionReceipt({ hash: txHash }),
7372
);
7473

7574
expect(txReceipt.status).toEqual('success');

src/createRollup.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { WalletClient, GetFunctionArgs } from 'viem';
1+
import { PublicClient, WalletClient, GetFunctionArgs } from 'viem';
22

33
import { rollupCreator } from './contracts';
4+
import { validParentChainId } from './types/ParentChain';
45
import { defaults } from './createRollupDefaults';
56
import { createRollupGetCallValue } from './createRollupGetCallValue';
67
import { createRollupGetMaxDataSize } from './createRollupGetMaxDataSize';
@@ -11,7 +12,7 @@ import {
1112
import { isCustomFeeTokenAddress } from './utils/isCustomFeeTokenAddress';
1213
import { ChainConfig } from './types/ChainConfig';
1314
import { isAnyTrustChainConfig } from './utils/isAnyTrustChainConfig';
14-
import type { OrbitClient } from './orbitClient';
15+
import { getValidChainId } from './utils/getters';
1516

1617
export type CreateRollupFunctionInputs = GetFunctionArgs<
1718
typeof rollupCreator.abi,
@@ -25,16 +26,20 @@ export type CreateRollupParams = Pick<CreateRollupFunctionInputs[0], RequiredKey
2526

2627
export async function createRollup({
2728
params,
28-
orbitClient,
29+
publicClient,
2930
walletClient,
3031
}: {
3132
params: CreateRollupParams;
32-
orbitClient: OrbitClient;
33+
publicClient: PublicClient;
3334
walletClient: WalletClient;
3435
}): Promise<CreateRollupTransactionReceipt> {
35-
const chainId = orbitClient.getValidChainId();
36+
const chainId = getValidChainId(publicClient);
3637
const account = walletClient.account?.address;
3738

39+
if (!validParentChainId(chainId)) {
40+
throw new Error('chainId is undefined');
41+
}
42+
3843
if (typeof account === 'undefined') {
3944
throw new Error('account is undefined');
4045
}
@@ -50,8 +55,8 @@ export async function createRollup({
5055
const maxDataSize = createRollupGetMaxDataSize(chainId);
5156
const paramsWithDefaults = { ...defaults, ...params, maxDataSize };
5257

53-
const { request } = await orbitClient.simulateContract({
54-
address: orbitClient.getRollupCreatorAddress(),
58+
const { request } = await publicClient.simulateContract({
59+
address: rollupCreator.address[chainId],
5560
abi: rollupCreator.abi,
5661
functionName: 'createRollup',
5762
args: [paramsWithDefaults],
@@ -60,7 +65,7 @@ export async function createRollup({
6065
});
6166

6267
const hash = await walletClient.writeContract(request);
63-
const txReceipt = await orbitClient.waitForTransactionReceipt({ hash });
68+
const txReceipt = await publicClient.waitForTransactionReceipt({ hash });
6469

6570
return createRollupPrepareTransactionReceipt(txReceipt);
6671
}

src/createRollupEnoughCustomFeeTokenAllowance.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
1-
import { Address } from 'viem';
1+
import { Address, PublicClient } from 'viem';
22

3+
import { rollupCreator } from './contracts';
4+
import { validParentChainId } from './types/ParentChain';
35
import { fetchAllowance } from './utils/erc20';
46
import { deterministicFactoriesDeploymentEstimatedFees } from './constants';
5-
import { OrbitClient } from './orbitClient';
7+
import { getRollupCreatorAddress, getValidChainId } from './utils/getters';
68

79
export type CreateRollupEnoughCustomFeeTokenAllowanceParams = {
810
nativeToken: Address;
911
account: Address;
10-
orbitClient: OrbitClient;
12+
publicClient: PublicClient;
1113
};
1214

1315
export async function createRollupEnoughCustomFeeTokenAllowance({
1416
nativeToken,
1517
account,
16-
orbitClient,
18+
publicClient,
1719
}: CreateRollupEnoughCustomFeeTokenAllowanceParams) {
1820
const allowance = await fetchAllowance({
1921
address: nativeToken,
2022
owner: account,
21-
spender: orbitClient.getRollupCreatorAddress(),
22-
publicClient: orbitClient,
23+
spender: getRollupCreatorAddress(publicClient),
24+
publicClient,
2325
});
2426

2527
return allowance >= deterministicFactoriesDeploymentEstimatedFees;

src/createRollupPrepareCustomFeeTokenApprovalTransactionRequest.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
import { Address, maxInt256 } from 'viem';
1+
import { Address, PublicClient, maxInt256 } from 'viem';
22

3-
import { OrbitClient } from './orbitClient';
43
import { approvePrepareTransactionRequest } from './utils/erc20';
4+
import { validParentChainId } from './types/ParentChain';
5+
import { rollupCreator } from './contracts';
6+
import { getRollupCreatorAddress, getValidChainId } from './utils/getters';
57

68
export type CreateRollupPrepareCustomFeeTokenApprovalTransactionRequestParams = {
79
amount?: bigint;
810
nativeToken: Address;
911
account: Address;
10-
orbitClient: OrbitClient;
12+
publicClient: PublicClient;
1113
};
1214

1315
export async function createRollupPrepareCustomFeeTokenApprovalTransactionRequest({
1416
amount = maxInt256,
1517
nativeToken,
1618
account,
17-
orbitClient,
19+
publicClient,
1820
}: CreateRollupPrepareCustomFeeTokenApprovalTransactionRequestParams) {
19-
const chainId = orbitClient.getValidChainId();
20-
const spender = orbitClient.getRollupCreatorAddress();
21-
21+
const chainId = getValidChainId(publicClient);
2222
const request = await approvePrepareTransactionRequest({
2323
address: nativeToken,
2424
owner: account,
25-
spender,
25+
spender: getRollupCreatorAddress(publicClient),
2626
amount,
27-
publicClient: orbitClient,
27+
publicClient,
2828
});
2929

3030
return { ...request, chainId };

src/createRollupPrepareTransactionRequest.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
import { Address, encodeFunctionData } from 'viem';
1+
import { Address, PublicClient, encodeFunctionData } from 'viem';
22

33
import { CreateRollupFunctionInputs, CreateRollupParams } from './createRollup';
44
import { defaults } from './createRollupDefaults';
55
import { createRollupGetCallValue } from './createRollupGetCallValue';
66
import { createRollupGetMaxDataSize } from './createRollupGetMaxDataSize';
77
import { rollupCreator } from './contracts';
8+
import { validParentChainId } from './types/ParentChain';
89
import { isCustomFeeTokenAddress } from './utils/isCustomFeeTokenAddress';
910
import { ChainConfig } from './types/ChainConfig';
1011
import { isAnyTrustChainConfig } from './utils/isAnyTrustChainConfig';
11-
import { OrbitClient } from './orbitClient';
12+
import { getRollupCreatorAddress, getValidChainId } from './utils/getters';
1213

1314
function createRollupEncodeFunctionData(args: CreateRollupFunctionInputs) {
1415
return encodeFunctionData({
@@ -21,13 +22,13 @@ function createRollupEncodeFunctionData(args: CreateRollupFunctionInputs) {
2122
export async function createRollupPrepareTransactionRequest({
2223
params,
2324
account,
24-
orbitClient,
25+
publicClient,
2526
}: {
2627
params: CreateRollupParams;
2728
account: Address;
28-
orbitClient: OrbitClient;
29+
publicClient: PublicClient;
2930
}) {
30-
const chainId = orbitClient.getValidChainId();
31+
const chainId = getValidChainId(publicClient);
3132

3233
const chainConfig: ChainConfig = JSON.parse(params.config.chainConfig);
3334

@@ -40,9 +41,9 @@ export async function createRollupPrepareTransactionRequest({
4041
const maxDataSize = createRollupGetMaxDataSize(chainId);
4142
const paramsWithDefaults = { ...defaults, ...params, maxDataSize };
4243

43-
const request = await orbitClient.prepareTransactionRequest({
44-
chain: orbitClient.chain,
45-
to: orbitClient.getRollupCreatorAddress(),
44+
const request = await publicClient.prepareTransactionRequest({
45+
chain: publicClient.chain,
46+
to: getRollupCreatorAddress(publicClient),
4647
data: createRollupEncodeFunctionData([paramsWithDefaults]),
4748
value: createRollupGetCallValue(paramsWithDefaults),
4849
account,

src/index.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ import { ParentChain, ParentChainId } from './types/ParentChain';
4040
import { NodeConfig, NodeConfigChainInfoJson } from './types/NodeConfig';
4141
import { prepareNodeConfig } from './prepareNodeConfig';
4242
import * as utils from './utils';
43-
import { createOrbitClient, OrbitClient } from './orbitClient';
4443

4544
export {
4645
createRollup,
@@ -77,7 +76,4 @@ export {
7776
NodeConfigChainInfoJson,
7877
prepareNodeConfig,
7978
utils,
80-
createOrbitClient,
8179
};
82-
83-
export type { OrbitClient };

0 commit comments

Comments
 (0)