feat: bridge chain artifacts to typed web reads
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import type { Address, Hex } from "viem";
|
||||
|
||||
export type DeploymentManifest = Readonly<{
|
||||
schemaVersion: 1;
|
||||
network: "anvil" | "baseSepolia";
|
||||
chainId: 31337 | 84532;
|
||||
deploymentBlock: bigint;
|
||||
rpcUrl?: string;
|
||||
explorerBaseUrl?: string;
|
||||
token: Address;
|
||||
proxy: Address;
|
||||
implementation: Address;
|
||||
owner: Address;
|
||||
actors: readonly Readonly<{ label: string; address: Address }>[];
|
||||
}>;
|
||||
|
||||
export type ActorBalance = Readonly<{
|
||||
label: string;
|
||||
address: Address;
|
||||
balance: bigint;
|
||||
}>;
|
||||
|
||||
type ActivityIdentity = Readonly<{
|
||||
blockNumber: bigint;
|
||||
logIndex: number;
|
||||
transactionHash: Hex;
|
||||
}>;
|
||||
|
||||
export type Activity =
|
||||
| Readonly<ActivityIdentity & { kind: "deposit"; account: Address; amount: bigint }>
|
||||
| Readonly<ActivityIdentity & { kind: "withdrawal"; account: Address; amount: bigint }>
|
||||
| Readonly<ActivityIdentity & { kind: "paused"; account: Address }>
|
||||
| Readonly<ActivityIdentity & { kind: "unpaused"; account: Address }>
|
||||
| Readonly<ActivityIdentity & { kind: "ownershipTransferred"; previousOwner: Address; newOwner: Address }>
|
||||
| Readonly<ActivityIdentity & { kind: "upgraded"; implementation: Address }>;
|
||||
|
||||
export type DecodeDiagnostic = Readonly<ActivityIdentity & { message: string }>;
|
||||
|
||||
export type DashboardSnapshot = Readonly<{
|
||||
blockNumber: bigint;
|
||||
synchronizedAt: Date;
|
||||
version: 1;
|
||||
paused: boolean;
|
||||
asset: Address;
|
||||
owner: Address;
|
||||
proxy: Address;
|
||||
implementation: Address;
|
||||
reserves: bigint;
|
||||
liabilities: bigint;
|
||||
surplus: bigint;
|
||||
actors: readonly ActorBalance[];
|
||||
activity: readonly Activity[];
|
||||
diagnostics: readonly DecodeDiagnostic[];
|
||||
}>;
|
||||
Reference in New Issue
Block a user