Skip to content

Commit

Permalink
Merge branch 'add-chain-public-actions-decorator' into create-parent-…
Browse files Browse the repository at this point in the history
…chain-public-decorator
  • Loading branch information
chrstph-dvx authored Jun 10, 2024
2 parents 5b10ecf + 280ae7d commit 30257d9
Show file tree
Hide file tree
Showing 12 changed files with 368 additions and 0 deletions.
29 changes: 29 additions & 0 deletions src/actions/getBatchCount.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'batchCount'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type GetBatchCountParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type GetBatchCountActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type GetBatchCountReturnType = ReadContractReturnType<SequencerInboxABI, 'batchCount'>;

export async function getBatchCount<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: GetBatchCountParameters,
): Promise<GetBatchCountReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'batchCount',
address: args.sequencerInbox,
});
}
29 changes: 29 additions & 0 deletions src/actions/getBridge.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'bridge'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type GetBridgeParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type GetBridgeActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type GetBridgeReturnType = ReadContractReturnType<SequencerInboxABI, 'bridge'>;

export async function getBridge<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: GetBridgeParameters,
): Promise<GetBridgeReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'bridge',
address: args.sequencerInbox,
});
}
30 changes: 30 additions & 0 deletions src/actions/getDasKeySetInfo.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'dasKeySetInfo'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type GetDasKeySetInfoParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type GetDasKeySetInfoActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type GetDasKeySetInfoReturnType = ReadContractReturnType<SequencerInboxABI, 'dasKeySetInfo'>;

export async function getDasKeySetInfo<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: GetDasKeySetInfoParameters,
): Promise<GetDasKeySetInfoReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'dasKeySetInfo',
address: args.sequencerInbox,
args: args.args,
});
}
32 changes: 32 additions & 0 deletions src/actions/getDataAuthenticatedFlag.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'DATA_AUTHENTICATED_FLAG'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type GetDataAuthenticatedFlagParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type GetDataAuthenticatedFlagActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type GetDataAuthenticatedFlagReturnType = ReadContractReturnType<
SequencerInboxABI,
'DATA_AUTHENTICATED_FLAG'
>;

export async function getDataAuthenticatedFlag<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: GetDataAuthenticatedFlagParameters,
): Promise<GetDataAuthenticatedFlagReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'DATA_AUTHENTICATED_FLAG',
address: args.sequencerInbox,
});
}
29 changes: 29 additions & 0 deletions src/actions/getHeaderLength.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'HEADER_LENGTH'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type GetHeaderLengthParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type GetHeaderLengthActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type GetHeaderLengthReturnType = ReadContractReturnType<SequencerInboxABI, 'HEADER_LENGTH'>;

export async function getHeaderLength<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: GetHeaderLengthParameters,
): Promise<GetHeaderLengthReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'HEADER_LENGTH',
address: args.sequencerInbox,
});
}
30 changes: 30 additions & 0 deletions src/actions/getInboxAccs.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'inboxAccs'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type GetInboxAccsParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type GetInboxAccsActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type GetInboxAccsReturnType = ReadContractReturnType<SequencerInboxABI, 'inboxAccs'>;

export async function getInboxAccs<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: GetInboxAccsParameters,
): Promise<GetInboxAccsReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'inboxAccs',
address: args.sequencerInbox,
args: args.args,
});
}
33 changes: 33 additions & 0 deletions src/actions/getKeysetCreationBlock.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'getKeysetCreationBlock'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type GetKeysetCreationBlockParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type GetKeysetCreationBlockActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type GetKeysetCreationBlockReturnType = ReadContractReturnType<
SequencerInboxABI,
'getKeysetCreationBlock'
>;

export async function getKeysetCreationBlock<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: GetKeysetCreationBlockParameters,
): Promise<GetKeysetCreationBlockReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'getKeysetCreationBlock',
address: args.sequencerInbox,
args: args.args,
});
}
32 changes: 32 additions & 0 deletions src/actions/getMaxTimeVariation.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'maxTimeVariation'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type GetMaxTimeVariationParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type GetMaxTimeVariationActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type GetMaxTimeVariationReturnType = ReadContractReturnType<
SequencerInboxABI,
'maxTimeVariation'
>;

export async function getMaxTimeVariation<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: GetMaxTimeVariationParameters,
): Promise<GetMaxTimeVariationReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'maxTimeVariation',
address: args.sequencerInbox,
});
}
29 changes: 29 additions & 0 deletions src/actions/getRollup.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'rollup'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type GetRollupParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type GetRollupActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type GetRollupReturnType = ReadContractReturnType<SequencerInboxABI, 'rollup'>;

export async function getRollup<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: GetRollupParameters,
): Promise<GetRollupReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'rollup',
address: args.sequencerInbox,
});
}
32 changes: 32 additions & 0 deletions src/actions/getTotalDelayedMessagesRead.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'totalDelayedMessagesRead'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type GetTotalDelayedMessagesReadParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type GetTotalDelayedMessagesReadActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type GetTotalDelayedMessagesReadReturnType = ReadContractReturnType<
SequencerInboxABI,
'totalDelayedMessagesRead'
>;

export async function getTotalDelayedMessagesRead<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: GetTotalDelayedMessagesReadParameters,
): Promise<GetTotalDelayedMessagesReadReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'totalDelayedMessagesRead',
address: args.sequencerInbox,
});
}
30 changes: 30 additions & 0 deletions src/actions/isBatchPoster.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'isBatchPoster'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type IsBatchPosterParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type IsBatchPosterActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type IsBatchPosterReturnType = ReadContractReturnType<SequencerInboxABI, 'isBatchPoster'>;

export async function isBatchPoster<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: IsBatchPosterParameters,
): Promise<IsBatchPosterReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'isBatchPoster',
address: args.sequencerInbox,
args: args.args,
});
}
33 changes: 33 additions & 0 deletions src/actions/isValidKeysetHash.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem';
import { sequencerInbox } from '../contracts';
import { ActionParameters, WithContractAddress } from '../types/Actions';

type Args = GetFunctionArgs<SequencerInboxABI, 'isValidKeysetHash'>;
type SequencerInboxABI = typeof sequencerInbox.abi;
type IsValidKeysetHashParameters<Curried extends boolean = false> = WithContractAddress<
Args,
'sequencerInbox',
Curried
>;
export type IsValidKeysetHashActionParameters<Curried extends boolean> = ActionParameters<
Args,
'sequencerInbox',
Curried
>;

export type IsValidKeysetHashReturnType = ReadContractReturnType<
SequencerInboxABI,
'isValidKeysetHash'
>;

export async function isValidKeysetHash<TChain extends Chain | undefined>(
client: PublicClient<Transport, TChain>,
args: IsValidKeysetHashParameters,
): Promise<IsValidKeysetHashReturnType> {
return client.readContract({
abi: sequencerInbox.abi,
functionName: 'isValidKeysetHash',
address: args.sequencerInbox,
args: args.args,
});
}

0 comments on commit 30257d9

Please sign in to comment.