Forráskód Böngészése

Improve interface

Guillermo Bescos Alapont 2 éve
szülő
commit
7d1f41c211

+ 7 - 2
xc-admin/packages/xc-admin-common/src/governance_payload/ExecutePostedVaa.ts

@@ -1,6 +1,11 @@
 import { ChainId, ChainName } from "@certusone/wormhole-sdk";
 import * as BufferLayout from "@solana/buffer-layout";
-import { encodeHeader, governanceHeaderLayout, verifyHeader } from ".";
+import {
+  encodeHeader,
+  governanceHeaderLayout,
+  PythGovernanceAction,
+  verifyHeader,
+} from ".";
 import { Layout } from "@solana/buffer-layout";
 import {
   AccountMeta,
@@ -72,7 +77,7 @@ export const executePostedVaaLayout: BufferLayout.Structure<
   new Vector<InstructionData>(instructionDataLayout, "instructions"),
 ]);
 
-export class ExecutePostedVaa {
+export class ExecutePostedVaa implements PythGovernanceAction {
   readonly targetChainId: ChainName;
   readonly instructions: TransactionInstruction[];
 

+ 4 - 9
xc-admin/packages/xc-admin-common/src/governance_payload/index.ts

@@ -7,14 +7,9 @@ import {
 import * as BufferLayout from "@solana/buffer-layout";
 import { ExecutePostedVaa } from "./ExecutePostedVaa";
 
-export interface PythGovernanceAction {}
-
-class UnknownGovernanceAction {
-  readonly data: Buffer;
-
-  constructor(data: Buffer) {
-    this.data = data;
-  }
+export interface PythGovernanceAction {
+  readonly targetChainId: ChainName;
+  encode(): Buffer;
 }
 
 export const ExecutorAction = {
@@ -147,7 +142,7 @@ export function decodeGovernancePayload(data: Buffer): PythGovernanceAction {
     case "ExecutePostedVaa":
       return ExecutePostedVaa.decode(data);
     default:
-      return new UnknownGovernanceAction(data);
+      throw "Not supported";
   }
 }