feat: bridge chain artifacts to typed web reads

This commit is contained in:
golem
2026-08-21 03:11:24 -06:00
parent 54c893fdb7
commit ba393bbbc3
12 changed files with 749 additions and 1 deletions
+54
View File
@@ -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[];
}>;