/* Autogenerated file. Do not edit manually. */

/* eslint-disable max-classes-per-file */
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable @typescript-eslint/consistent-type-imports */

/*
  Fuels version: 0.94.5
*/

import { Contract, Interface } from "fuels";
import type {
  Provider,
  Account,
  StorageSlot,
  AbstractAddress,
  BigNumberish,
  BN,
  Bytes,
  FunctionFragment,
  InvokeFunction,
  StrSlice,
} from "fuels";

import type { Enum, Vec } from "./common";

export enum AccessErrorInput {
  NotOwner = "NotOwner",
}
export enum AccessErrorOutput {
  NotOwner = "NotOwner",
}
export enum GovernanceActionInput {
  UpgradeContract = "UpgradeContract",
  AuthorizeGovernanceDataSourceTransfer = "AuthorizeGovernanceDataSourceTransfer",
  SetDataSources = "SetDataSources",
  SetFee = "SetFee",
  SetValidPeriod = "SetValidPeriod",
  RequestGovernanceDataSourceTransfer = "RequestGovernanceDataSourceTransfer",
  Invalid = "Invalid",
}
export enum GovernanceActionOutput {
  UpgradeContract = "UpgradeContract",
  AuthorizeGovernanceDataSourceTransfer = "AuthorizeGovernanceDataSourceTransfer",
  SetDataSources = "SetDataSources",
  SetFee = "SetFee",
  SetValidPeriod = "SetValidPeriod",
  RequestGovernanceDataSourceTransfer = "RequestGovernanceDataSourceTransfer",
  Invalid = "Invalid",
}
export enum GovernanceModuleInput {
  Executor = "Executor",
  Target = "Target",
  EvmExecutor = "EvmExecutor",
  StacksTarget = "StacksTarget",
  Invalid = "Invalid",
}
export enum GovernanceModuleOutput {
  Executor = "Executor",
  Target = "Target",
  EvmExecutor = "EvmExecutor",
  StacksTarget = "StacksTarget",
  Invalid = "Invalid",
}
export type IdentityInput = Enum<{
  Address: AddressInput;
  ContractId: ContractIdInput;
}>;
export type IdentityOutput = Enum<{
  Address: AddressOutput;
  ContractId: ContractIdOutput;
}>;
export enum InitializationErrorInput {
  CannotReinitialized = "CannotReinitialized",
}
export enum InitializationErrorOutput {
  CannotReinitialized = "CannotReinitialized",
}
export enum PythErrorInput {
  FeesCanOnlyBePaidInTheBaseAsset = "FeesCanOnlyBePaidInTheBaseAsset",
  FuturePriceNotAllowed = "FuturePriceNotAllowed",
  GuardianSetNotFound = "GuardianSetNotFound",
  IncorrectMessageType = "IncorrectMessageType",
  InsufficientFee = "InsufficientFee",
  InvalidArgument = "InvalidArgument",
  InvalidAttestationSize = "InvalidAttestationSize",
  InvalidDataSourcesLength = "InvalidDataSourcesLength",
  InvalidExponent = "InvalidExponent",
  InvalidGovernanceDataSource = "InvalidGovernanceDataSource",
  InvalidGovernanceAction = "InvalidGovernanceAction",
  InvalidGovernanceMessage = "InvalidGovernanceMessage",
  InvalidGovernanceModule = "InvalidGovernanceModule",
  InvalidGovernanceTarget = "InvalidGovernanceTarget",
  InvalidHeaderSize = "InvalidHeaderSize",
  InvalidMagic = "InvalidMagic",
  InvalidMajorVersion = "InvalidMajorVersion",
  InvalidMinorVersion = "InvalidMinorVersion",
  InvalidPayloadId = "InvalidPayloadId",
  InvalidPayloadLength = "InvalidPayloadLength",
  InvalidPriceFeedDataLength = "InvalidPriceFeedDataLength",
  InvalidProof = "InvalidProof",
  InvalidUpdateData = "InvalidUpdateData",
  InvalidUpdateDataLength = "InvalidUpdateDataLength",
  InvalidUpdateDataSource = "InvalidUpdateDataSource",
  InvalidUpgradeModule = "InvalidUpgradeModule",
  InvalidWormholeAddressToSet = "InvalidWormholeAddressToSet",
  LengthOfPriceFeedIdsAndPublishTimesMustMatch = "LengthOfPriceFeedIdsAndPublishTimesMustMatch",
  NewGuardianSetIsEmpty = "NewGuardianSetIsEmpty",
  NumberOfUpdatesIrretrievable = "NumberOfUpdatesIrretrievable",
  OldGovernanceMessage = "OldGovernanceMessage",
  OutdatedPrice = "OutdatedPrice",
  PriceFeedNotFound = "PriceFeedNotFound",
  PriceFeedNotFoundWithinRange = "PriceFeedNotFoundWithinRange",
  WormholeGovernanceActionNotFound = "WormholeGovernanceActionNotFound",
}
export enum PythErrorOutput {
  FeesCanOnlyBePaidInTheBaseAsset = "FeesCanOnlyBePaidInTheBaseAsset",
  FuturePriceNotAllowed = "FuturePriceNotAllowed",
  GuardianSetNotFound = "GuardianSetNotFound",
  IncorrectMessageType = "IncorrectMessageType",
  InsufficientFee = "InsufficientFee",
  InvalidArgument = "InvalidArgument",
  InvalidAttestationSize = "InvalidAttestationSize",
  InvalidDataSourcesLength = "InvalidDataSourcesLength",
  InvalidExponent = "InvalidExponent",
  InvalidGovernanceDataSource = "InvalidGovernanceDataSource",
  InvalidGovernanceAction = "InvalidGovernanceAction",
  InvalidGovernanceMessage = "InvalidGovernanceMessage",
  InvalidGovernanceModule = "InvalidGovernanceModule",
  InvalidGovernanceTarget = "InvalidGovernanceTarget",
  InvalidHeaderSize = "InvalidHeaderSize",
  InvalidMagic = "InvalidMagic",
  InvalidMajorVersion = "InvalidMajorVersion",
  InvalidMinorVersion = "InvalidMinorVersion",
  InvalidPayloadId = "InvalidPayloadId",
  InvalidPayloadLength = "InvalidPayloadLength",
  InvalidPriceFeedDataLength = "InvalidPriceFeedDataLength",
  InvalidProof = "InvalidProof",
  InvalidUpdateData = "InvalidUpdateData",
  InvalidUpdateDataLength = "InvalidUpdateDataLength",
  InvalidUpdateDataSource = "InvalidUpdateDataSource",
  InvalidUpgradeModule = "InvalidUpgradeModule",
  InvalidWormholeAddressToSet = "InvalidWormholeAddressToSet",
  LengthOfPriceFeedIdsAndPublishTimesMustMatch = "LengthOfPriceFeedIdsAndPublishTimesMustMatch",
  NewGuardianSetIsEmpty = "NewGuardianSetIsEmpty",
  NumberOfUpdatesIrretrievable = "NumberOfUpdatesIrretrievable",
  OldGovernanceMessage = "OldGovernanceMessage",
  OutdatedPrice = "OutdatedPrice",
  PriceFeedNotFound = "PriceFeedNotFound",
  PriceFeedNotFoundWithinRange = "PriceFeedNotFoundWithinRange",
  WormholeGovernanceActionNotFound = "WormholeGovernanceActionNotFound",
}
export type StateInput = Enum<{
  Uninitialized: undefined;
  Initialized: IdentityInput;
  Revoked: undefined;
}>;
export type StateOutput = Enum<{
  Uninitialized: void;
  Initialized: IdentityOutput;
  Revoked: void;
}>;
export enum WormholeErrorInput {
  ConsistencyLevelIrretrievable = "ConsistencyLevelIrretrievable",
  GovernanceActionAlreadyConsumed = "GovernanceActionAlreadyConsumed",
  GuardianIndexIrretrievable = "GuardianIndexIrretrievable",
  GuardianSetHasExpired = "GuardianSetHasExpired",
  GuardianSetKeyIrretrievable = "GuardianSetKeyIrretrievable",
  GuardianSetKeysLengthNotEqual = "GuardianSetKeysLengthNotEqual",
  GuardianSetNotFound = "GuardianSetNotFound",
  InvalidGovernanceAction = "InvalidGovernanceAction",
  InvalidGovernanceChain = "InvalidGovernanceChain",
  InvalidGovernanceContract = "InvalidGovernanceContract",
  InvalidGuardianSet = "InvalidGuardianSet",
  InvalidGuardianSetKeysLength = "InvalidGuardianSetKeysLength",
  InvalidGuardianSetUpgrade = "InvalidGuardianSetUpgrade",
  InvalidGuardianSetUpgradeLength = "InvalidGuardianSetUpgradeLength",
  InvalidModule = "InvalidModule",
  InvalidPayloadLength = "InvalidPayloadLength",
  InvalidSignatureLength = "InvalidSignatureLength",
  InvalidUpdateDataSource = "InvalidUpdateDataSource",
  NewGuardianSetIsEmpty = "NewGuardianSetIsEmpty",
  NewGuardianSetIndexIsInvalid = "NewGuardianSetIndexIsInvalid",
  NoQuorum = "NoQuorum",
  NotSignedByCurrentGuardianSet = "NotSignedByCurrentGuardianSet",
  SignatureInvalid = "SignatureInvalid",
  SignatureIndicesNotAscending = "SignatureIndicesNotAscending",
  SignatureVIrretrievable = "SignatureVIrretrievable",
  SignersLengthIrretrievable = "SignersLengthIrretrievable",
  VMSignatureInvalid = "VMSignatureInvalid",
  VMVersionIncompatible = "VMVersionIncompatible",
}
export enum WormholeErrorOutput {
  ConsistencyLevelIrretrievable = "ConsistencyLevelIrretrievable",
  GovernanceActionAlreadyConsumed = "GovernanceActionAlreadyConsumed",
  GuardianIndexIrretrievable = "GuardianIndexIrretrievable",
  GuardianSetHasExpired = "GuardianSetHasExpired",
  GuardianSetKeyIrretrievable = "GuardianSetKeyIrretrievable",
  GuardianSetKeysLengthNotEqual = "GuardianSetKeysLengthNotEqual",
  GuardianSetNotFound = "GuardianSetNotFound",
  InvalidGovernanceAction = "InvalidGovernanceAction",
  InvalidGovernanceChain = "InvalidGovernanceChain",
  InvalidGovernanceContract = "InvalidGovernanceContract",
  InvalidGuardianSet = "InvalidGuardianSet",
  InvalidGuardianSetKeysLength = "InvalidGuardianSetKeysLength",
  InvalidGuardianSetUpgrade = "InvalidGuardianSetUpgrade",
  InvalidGuardianSetUpgradeLength = "InvalidGuardianSetUpgradeLength",
  InvalidModule = "InvalidModule",
  InvalidPayloadLength = "InvalidPayloadLength",
  InvalidSignatureLength = "InvalidSignatureLength",
  InvalidUpdateDataSource = "InvalidUpdateDataSource",
  NewGuardianSetIsEmpty = "NewGuardianSetIsEmpty",
  NewGuardianSetIndexIsInvalid = "NewGuardianSetIndexIsInvalid",
  NoQuorum = "NoQuorum",
  NotSignedByCurrentGuardianSet = "NotSignedByCurrentGuardianSet",
  SignatureInvalid = "SignatureInvalid",
  SignatureIndicesNotAscending = "SignatureIndicesNotAscending",
  SignatureVIrretrievable = "SignatureVIrretrievable",
  SignersLengthIrretrievable = "SignersLengthIrretrievable",
  VMSignatureInvalid = "VMSignatureInvalid",
  VMVersionIncompatible = "VMVersionIncompatible",
}

export type AddressInput = { bits: string };
export type AddressOutput = AddressInput;
export type AuthorizeGovernanceDataSourceTransferPayloadInput = {
  claim_vaa: Bytes;
};
export type AuthorizeGovernanceDataSourceTransferPayloadOutput =
  AuthorizeGovernanceDataSourceTransferPayloadInput;
export type ConstructedEventInput = { guardian_set_index: BigNumberish };
export type ConstructedEventOutput = { guardian_set_index: number };
export type ContractIdInput = { bits: string };
export type ContractIdOutput = ContractIdInput;
export type DataSourceInput = {
  chain_id: BigNumberish;
  emitter_address: string;
};
export type DataSourceOutput = { chain_id: number; emitter_address: string };
export type DataSourcesSetEventInput = {
  old_data_sources: Vec<DataSourceInput>;
  new_data_sources: Vec<DataSourceInput>;
};
export type DataSourcesSetEventOutput = {
  old_data_sources: Vec<DataSourceOutput>;
  new_data_sources: Vec<DataSourceOutput>;
};
export type FeeSetEventInput = { old_fee: BigNumberish; new_fee: BigNumberish };
export type FeeSetEventOutput = { old_fee: BN; new_fee: BN };
export type GovernanceDataSourceSetEventInput = {
  old_data_source: DataSourceInput;
  new_data_source: DataSourceInput;
  initial_sequence: BigNumberish;
};
export type GovernanceDataSourceSetEventOutput = {
  old_data_source: DataSourceOutput;
  new_data_source: DataSourceOutput;
  initial_sequence: BN;
};
export type GovernanceInstructionInput = {
  magic: BigNumberish;
  module: GovernanceModuleInput;
  action: GovernanceActionInput;
  target_chain_id: BigNumberish;
  payload: Bytes;
};
export type GovernanceInstructionOutput = {
  magic: number;
  module: GovernanceModuleOutput;
  action: GovernanceActionOutput;
  target_chain_id: number;
  payload: Bytes;
};
export type GuardianSetInput = {
  expiration_time: BigNumberish;
  keys: Vec<string>;
};
export type GuardianSetOutput = { expiration_time: BN; keys: Vec<string> };
export type NewGuardianSetEventInput = {
  governance_action_hash: string;
  new_guardian_set_index: BigNumberish;
};
export type NewGuardianSetEventOutput = {
  governance_action_hash: string;
  new_guardian_set_index: number;
};
export type OwnershipRenouncedInput = { previous_owner: IdentityInput };
export type OwnershipRenouncedOutput = { previous_owner: IdentityOutput };
export type OwnershipSetInput = { new_owner: IdentityInput };
export type OwnershipSetOutput = { new_owner: IdentityOutput };
export type PriceInput = {
  confidence: BigNumberish;
  exponent: BigNumberish;
  price: BigNumberish;
  publish_time: BigNumberish;
};
export type PriceOutput = {
  confidence: BN;
  exponent: number;
  price: BN;
  publish_time: BN;
};
export type PriceFeedInput = {
  ema_price: PriceInput;
  id: string;
  price: PriceInput;
};
export type PriceFeedOutput = {
  ema_price: PriceOutput;
  id: string;
  price: PriceOutput;
};
export type SetDataSourcesPayloadInput = { data_sources: Vec<DataSourceInput> };
export type SetDataSourcesPayloadOutput = {
  data_sources: Vec<DataSourceOutput>;
};
export type SetFeePayloadInput = { new_fee: BigNumberish };
export type SetFeePayloadOutput = { new_fee: BN };
export type SetValidPeriodPayloadInput = { new_valid_period: BigNumberish };
export type SetValidPeriodPayloadOutput = { new_valid_period: BN };
export type ValidPeriodSetEventInput = {
  old_valid_period: BigNumberish;
  new_valid_period: BigNumberish;
};
export type ValidPeriodSetEventOutput = {
  old_valid_period: BN;
  new_valid_period: BN;
};
export type WormholeVMInput = {
  version: BigNumberish;
  guardian_set_index: BigNumberish;
  governance_action_hash: string;
  timestamp: BigNumberish;
  nonce: BigNumberish;
  emitter_chain_id: BigNumberish;
  emitter_address: string;
  sequence: BigNumberish;
  consistency_level: BigNumberish;
  payload: Bytes;
};
export type WormholeVMOutput = {
  version: number;
  guardian_set_index: number;
  governance_action_hash: string;
  timestamp: number;
  nonce: number;
  emitter_chain_id: number;
  emitter_address: string;
  sequence: BN;
  consistency_level: number;
  payload: Bytes;
};

export type PythContractConfigurables = Partial<{
  DEPLOYER: IdentityInput;
}>;

const abi = {
  programType: "contract",
  specVersion: "1",
  encodingVersion: "1",
  concreteTypes: [
    {
      type: "()",
      concreteTypeId:
        "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
    },
    {
      type: "b256",
      concreteTypeId:
        "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
    },
    {
      type: "bool",
      concreteTypeId:
        "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903",
    },
    {
      type: "enum pyth_interface::errors::PythError",
      concreteTypeId:
        "ef9531eda675e74905aeb0648d5f0289c85f8506754060ccaae49f3e657d2946",
      metadataTypeId: 2,
    },
    {
      type: "enum pyth_interface::errors::WormholeError",
      concreteTypeId:
        "549ef08391322bda7ed2fc775474af0638edb3e851370d0d7fdecf5341640a44",
      metadataTypeId: 3,
    },
    {
      type: "enum standards::src5::AccessError",
      concreteTypeId:
        "3f702ea3351c9c1ece2b84048006c8034a24cbc2bad2e740d0412b4172951d3d",
      metadataTypeId: 4,
    },
    {
      type: "enum standards::src5::State",
      concreteTypeId:
        "192bc7098e2fe60635a9918afb563e4e5419d386da2bdbf0d716b4bc8549802c",
      metadataTypeId: 5,
    },
    {
      type: "enum std::identity::Identity",
      concreteTypeId:
        "ab7cd04e05be58e3fc15d424c2c4a57f824a2a2d97d67252440a3925ebdc1335",
      metadataTypeId: 6,
    },
    {
      type: "enum sway_libs::ownership::errors::InitializationError",
      concreteTypeId:
        "1dfe7feadc1d9667a4351761230f948744068a090fe91b1bc6763a90ed5d3893",
      metadataTypeId: 7,
    },
    {
      type: "str",
      concreteTypeId:
        "8c25cb3686462e9a86d2883c5688a22fe738b0bbc85f458d2d2b5f3f667c6d5a",
    },
    {
      type: "struct pyth_interface::data_structures::data_source::DataSource",
      concreteTypeId:
        "8f97b260b402ac61805cd653dbfa653d4991ae802756e74c009d8df9c6178bbb",
      metadataTypeId: 10,
    },
    {
      type: "struct pyth_interface::data_structures::governance_instruction::GovernanceInstruction",
      concreteTypeId:
        "bfe2ceb22444f7821c75d478fb595c4642cbf8970f8ec8960637a7c9aa6690c2",
      metadataTypeId: 11,
    },
    {
      type: "struct pyth_interface::data_structures::governance_payload::AuthorizeGovernanceDataSourceTransferPayload",
      concreteTypeId:
        "0fd96dec5e5828d8a3e64d70e2d2962b1b7f4d0a8f1d6c9e035ce65e7c97679b",
      metadataTypeId: 12,
    },
    {
      type: "struct pyth_interface::data_structures::governance_payload::SetDataSourcesPayload",
      concreteTypeId:
        "89b51ee7c5040a64ca6af11d37b8583445937d042f24de1865407025999d41e8",
      metadataTypeId: 13,
    },
    {
      type: "struct pyth_interface::data_structures::governance_payload::SetFeePayload",
      concreteTypeId:
        "b16aeeb868cef02f09f43d578ea970bd5f5b7d12692380200c8db6492d7ff3a0",
      metadataTypeId: 14,
    },
    {
      type: "struct pyth_interface::data_structures::governance_payload::SetValidPeriodPayload",
      concreteTypeId:
        "553112cfecd8d38944c33cc4528f5b23e88d21148b19abca47d8e76fe7faf163",
      metadataTypeId: 15,
    },
    {
      type: "struct pyth_interface::data_structures::price::Price",
      concreteTypeId:
        "8aba92fff7345309d4313706ed7db3a811609f62da8f0d2859819db43d461ff8",
      metadataTypeId: 16,
    },
    {
      type: "struct pyth_interface::data_structures::price::PriceFeed",
      concreteTypeId:
        "13eb7054501f8758f39326623a86e36908793ac7123adf2c5eddd0634d9c0809",
      metadataTypeId: 17,
    },
    {
      type: "struct pyth_interface::data_structures::wormhole_light::GuardianSet",
      concreteTypeId:
        "c574f99b562987df1da975be7ed02d4658ad16bc1699fde46946bd14fbcc51ed",
      metadataTypeId: 18,
    },
    {
      type: "struct pyth_interface::data_structures::wormhole_light::WormholeVM",
      concreteTypeId:
        "bd8b04267be788b4834b73914421df35c49678d2056e5fe667c0726515bcb28a",
      metadataTypeId: 19,
    },
    {
      type: "struct pyth_interface::events::ConstructedEvent",
      concreteTypeId:
        "d686cd9012ca81d56b62946d7a0bbec125a19237443e81495493c08426a76b1b",
      metadataTypeId: 20,
    },
    {
      type: "struct pyth_interface::events::DataSourcesSetEvent",
      concreteTypeId:
        "8d73ffeb7192d229077a509df2382f8b8979602df4e98faec0732d24f56589be",
      metadataTypeId: 21,
    },
    {
      type: "struct pyth_interface::events::FeeSetEvent",
      concreteTypeId:
        "228b1b26fb5198bd07b4ff49c1e59f5ace59a97dbf91242b955cfc91a6b88fc3",
      metadataTypeId: 22,
    },
    {
      type: "struct pyth_interface::events::GovernanceDataSourceSetEvent",
      concreteTypeId:
        "581d4b37add000314b9bfae1fcfade22b78d3a0c8daa006aabada1c49114920e",
      metadataTypeId: 23,
    },
    {
      type: "struct pyth_interface::events::NewGuardianSetEvent",
      concreteTypeId:
        "d76acd04100912f23d6d0798c810021f2332efc785fe432091a7f873140fb097",
      metadataTypeId: 24,
    },
    {
      type: "struct pyth_interface::events::ValidPeriodSetEvent",
      concreteTypeId:
        "fc60c7d3c867f2a30c3e6be2cc21efd907b913f533f0f14ee397115a476c2f79",
      metadataTypeId: 25,
    },
    {
      type: "struct std::bytes::Bytes",
      concreteTypeId:
        "cdd87b7d12fe505416570c294c884bca819364863efe3bf539245fa18515fbbb",
      metadataTypeId: 27,
    },
    {
      type: "struct std::vec::Vec<b256>",
      concreteTypeId:
        "32559685d0c9845f059bf9d472a0a38cf77d36c23dfcffe5489e86a65cdd9198",
      metadataTypeId: 31,
      typeArguments: [
        "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
      ],
    },
    {
      type: "struct std::vec::Vec<struct pyth_interface::data_structures::data_source::DataSource>",
      concreteTypeId:
        "921bd92ab7bb109127518976318770057b0a4c95b21b83dbe6121d19cdf142dd",
      metadataTypeId: 31,
      typeArguments: [
        "8f97b260b402ac61805cd653dbfa653d4991ae802756e74c009d8df9c6178bbb",
      ],
    },
    {
      type: "struct std::vec::Vec<struct pyth_interface::data_structures::price::PriceFeed>",
      concreteTypeId:
        "7445e418358e558eaf1fb04dc2ee316739df0bce65fd8359c879b0dc9ffd3487",
      metadataTypeId: 31,
      typeArguments: [
        "13eb7054501f8758f39326623a86e36908793ac7123adf2c5eddd0634d9c0809",
      ],
    },
    {
      type: "struct std::vec::Vec<struct std::bytes::Bytes>",
      concreteTypeId:
        "2601885b27af3627b8910876fc176d900cec2b16ec78c538f5f312e785d915f5",
      metadataTypeId: 31,
      typeArguments: [
        "cdd87b7d12fe505416570c294c884bca819364863efe3bf539245fa18515fbbb",
      ],
    },
    {
      type: "struct std::vec::Vec<u64>",
      concreteTypeId:
        "d5bfe1d4e1ace20166c9b50cadd47e862020561bde24f5189cfc2723f5ed76f4",
      metadataTypeId: 31,
      typeArguments: [
        "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
      ],
    },
    {
      type: "struct sway_libs::ownership::events::OwnershipRenounced",
      concreteTypeId:
        "43c4fa7b3297401afbf300127e59ea913e5c8f0c7ae69abbec789ab0bb872bed",
      metadataTypeId: 32,
    },
    {
      type: "struct sway_libs::ownership::events::OwnershipSet",
      concreteTypeId:
        "e1ef35033ea9d2956f17c3292dea4a46ce7d61fdf37bbebe03b7b965073f43b5",
      metadataTypeId: 33,
    },
    {
      type: "u16",
      concreteTypeId:
        "29881aad8730c5ab11d275376323d8e4ff4179aae8ccb6c13fe4902137e162ef",
    },
    {
      type: "u32",
      concreteTypeId:
        "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
    },
    {
      type: "u64",
      concreteTypeId:
        "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
    },
  ],
  metadataTypes: [
    {
      type: "enum pyth_interface::data_structures::governance_instruction::GovernanceAction",
      metadataTypeId: 0,
      components: [
        {
          name: "UpgradeContract",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "AuthorizeGovernanceDataSourceTransfer",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "SetDataSources",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "SetFee",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "SetValidPeriod",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "RequestGovernanceDataSourceTransfer",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "Invalid",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
      ],
    },
    {
      type: "enum pyth_interface::data_structures::governance_instruction::GovernanceModule",
      metadataTypeId: 1,
      components: [
        {
          name: "Executor",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "Target",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "EvmExecutor",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "StacksTarget",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "Invalid",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
      ],
    },
    {
      type: "enum pyth_interface::errors::PythError",
      metadataTypeId: 2,
      components: [
        {
          name: "FeesCanOnlyBePaidInTheBaseAsset",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "FuturePriceNotAllowed",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "GuardianSetNotFound",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "IncorrectMessageType",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InsufficientFee",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidArgument",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidAttestationSize",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidDataSourcesLength",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidExponent",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGovernanceDataSource",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGovernanceAction",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGovernanceMessage",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGovernanceModule",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGovernanceTarget",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidHeaderSize",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidMagic",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidMajorVersion",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidMinorVersion",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidPayloadId",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidPayloadLength",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidPriceFeedDataLength",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidProof",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidUpdateData",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidUpdateDataLength",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidUpdateDataSource",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidUpgradeModule",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidWormholeAddressToSet",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "LengthOfPriceFeedIdsAndPublishTimesMustMatch",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "NewGuardianSetIsEmpty",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "NumberOfUpdatesIrretrievable",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "OldGovernanceMessage",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "OutdatedPrice",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "PriceFeedNotFound",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "PriceFeedNotFoundWithinRange",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "WormholeGovernanceActionNotFound",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
      ],
    },
    {
      type: "enum pyth_interface::errors::WormholeError",
      metadataTypeId: 3,
      components: [
        {
          name: "ConsistencyLevelIrretrievable",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "GovernanceActionAlreadyConsumed",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "GuardianIndexIrretrievable",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "GuardianSetHasExpired",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "GuardianSetKeyIrretrievable",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "GuardianSetKeysLengthNotEqual",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "GuardianSetNotFound",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGovernanceAction",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGovernanceChain",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGovernanceContract",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGuardianSet",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGuardianSetKeysLength",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGuardianSetUpgrade",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidGuardianSetUpgradeLength",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidModule",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidPayloadLength",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidSignatureLength",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "InvalidUpdateDataSource",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "NewGuardianSetIsEmpty",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "NewGuardianSetIndexIsInvalid",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "NoQuorum",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "NotSignedByCurrentGuardianSet",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "SignatureInvalid",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "SignatureIndicesNotAscending",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "SignatureVIrretrievable",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "SignersLengthIrretrievable",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "VMSignatureInvalid",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "VMVersionIncompatible",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
      ],
    },
    {
      type: "enum standards::src5::AccessError",
      metadataTypeId: 4,
      components: [
        {
          name: "NotOwner",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
      ],
    },
    {
      type: "enum standards::src5::State",
      metadataTypeId: 5,
      components: [
        {
          name: "Uninitialized",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
        {
          name: "Initialized",
          typeId: 6,
        },
        {
          name: "Revoked",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
      ],
    },
    {
      type: "enum std::identity::Identity",
      metadataTypeId: 6,
      components: [
        {
          name: "Address",
          typeId: 26,
        },
        {
          name: "ContractId",
          typeId: 29,
        },
      ],
    },
    {
      type: "enum sway_libs::ownership::errors::InitializationError",
      metadataTypeId: 7,
      components: [
        {
          name: "CannotReinitialized",
          typeId:
            "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
        },
      ],
    },
    {
      type: "generic T",
      metadataTypeId: 8,
    },
    {
      type: "raw untyped ptr",
      metadataTypeId: 9,
    },
    {
      type: "struct pyth_interface::data_structures::data_source::DataSource",
      metadataTypeId: 10,
      components: [
        {
          name: "chain_id",
          typeId:
            "29881aad8730c5ab11d275376323d8e4ff4179aae8ccb6c13fe4902137e162ef",
        },
        {
          name: "emitter_address",
          typeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
    },
    {
      type: "struct pyth_interface::data_structures::governance_instruction::GovernanceInstruction",
      metadataTypeId: 11,
      components: [
        {
          name: "magic",
          typeId:
            "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
        },
        {
          name: "module",
          typeId: 1,
        },
        {
          name: "action",
          typeId: 0,
        },
        {
          name: "target_chain_id",
          typeId:
            "29881aad8730c5ab11d275376323d8e4ff4179aae8ccb6c13fe4902137e162ef",
        },
        {
          name: "payload",
          typeId: 27,
        },
      ],
    },
    {
      type: "struct pyth_interface::data_structures::governance_payload::AuthorizeGovernanceDataSourceTransferPayload",
      metadataTypeId: 12,
      components: [
        {
          name: "claim_vaa",
          typeId: 27,
        },
      ],
    },
    {
      type: "struct pyth_interface::data_structures::governance_payload::SetDataSourcesPayload",
      metadataTypeId: 13,
      components: [
        {
          name: "data_sources",
          typeId: 31,
          typeArguments: [
            {
              name: "",
              typeId: 10,
            },
          ],
        },
      ],
    },
    {
      type: "struct pyth_interface::data_structures::governance_payload::SetFeePayload",
      metadataTypeId: 14,
      components: [
        {
          name: "new_fee",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
      ],
    },
    {
      type: "struct pyth_interface::data_structures::governance_payload::SetValidPeriodPayload",
      metadataTypeId: 15,
      components: [
        {
          name: "new_valid_period",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
      ],
    },
    {
      type: "struct pyth_interface::data_structures::price::Price",
      metadataTypeId: 16,
      components: [
        {
          name: "confidence",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "exponent",
          typeId:
            "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
        },
        {
          name: "price",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "publish_time",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
      ],
    },
    {
      type: "struct pyth_interface::data_structures::price::PriceFeed",
      metadataTypeId: 17,
      components: [
        {
          name: "ema_price",
          typeId: 16,
        },
        {
          name: "id",
          typeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
        {
          name: "price",
          typeId: 16,
        },
      ],
    },
    {
      type: "struct pyth_interface::data_structures::wormhole_light::GuardianSet",
      metadataTypeId: 18,
      components: [
        {
          name: "expiration_time",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "keys",
          typeId: 31,
          typeArguments: [
            {
              name: "",
              typeId:
                "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
            },
          ],
        },
      ],
    },
    {
      type: "struct pyth_interface::data_structures::wormhole_light::WormholeVM",
      metadataTypeId: 19,
      components: [
        {
          name: "version",
          typeId: 34,
        },
        {
          name: "guardian_set_index",
          typeId:
            "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
        },
        {
          name: "governance_action_hash",
          typeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
        {
          name: "timestamp",
          typeId:
            "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
        },
        {
          name: "nonce",
          typeId:
            "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
        },
        {
          name: "emitter_chain_id",
          typeId:
            "29881aad8730c5ab11d275376323d8e4ff4179aae8ccb6c13fe4902137e162ef",
        },
        {
          name: "emitter_address",
          typeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
        {
          name: "sequence",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "consistency_level",
          typeId: 34,
        },
        {
          name: "payload",
          typeId: 27,
        },
      ],
    },
    {
      type: "struct pyth_interface::events::ConstructedEvent",
      metadataTypeId: 20,
      components: [
        {
          name: "guardian_set_index",
          typeId:
            "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
        },
      ],
    },
    {
      type: "struct pyth_interface::events::DataSourcesSetEvent",
      metadataTypeId: 21,
      components: [
        {
          name: "old_data_sources",
          typeId: 31,
          typeArguments: [
            {
              name: "",
              typeId: 10,
            },
          ],
        },
        {
          name: "new_data_sources",
          typeId: 31,
          typeArguments: [
            {
              name: "",
              typeId: 10,
            },
          ],
        },
      ],
    },
    {
      type: "struct pyth_interface::events::FeeSetEvent",
      metadataTypeId: 22,
      components: [
        {
          name: "old_fee",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "new_fee",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
      ],
    },
    {
      type: "struct pyth_interface::events::GovernanceDataSourceSetEvent",
      metadataTypeId: 23,
      components: [
        {
          name: "old_data_source",
          typeId: 10,
        },
        {
          name: "new_data_source",
          typeId: 10,
        },
        {
          name: "initial_sequence",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
      ],
    },
    {
      type: "struct pyth_interface::events::NewGuardianSetEvent",
      metadataTypeId: 24,
      components: [
        {
          name: "governance_action_hash",
          typeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
        {
          name: "new_guardian_set_index",
          typeId:
            "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
        },
      ],
    },
    {
      type: "struct pyth_interface::events::ValidPeriodSetEvent",
      metadataTypeId: 25,
      components: [
        {
          name: "old_valid_period",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "new_valid_period",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
      ],
    },
    {
      type: "struct std::address::Address",
      metadataTypeId: 26,
      components: [
        {
          name: "bits",
          typeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
    },
    {
      type: "struct std::bytes::Bytes",
      metadataTypeId: 27,
      components: [
        {
          name: "buf",
          typeId: 28,
        },
        {
          name: "len",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
      ],
    },
    {
      type: "struct std::bytes::RawBytes",
      metadataTypeId: 28,
      components: [
        {
          name: "ptr",
          typeId: 9,
        },
        {
          name: "cap",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
      ],
    },
    {
      type: "struct std::contract_id::ContractId",
      metadataTypeId: 29,
      components: [
        {
          name: "bits",
          typeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
    },
    {
      type: "struct std::vec::RawVec",
      metadataTypeId: 30,
      components: [
        {
          name: "ptr",
          typeId: 9,
        },
        {
          name: "cap",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
      ],
      typeParameters: [8],
    },
    {
      type: "struct std::vec::Vec",
      metadataTypeId: 31,
      components: [
        {
          name: "buf",
          typeId: 30,
          typeArguments: [
            {
              name: "",
              typeId: 8,
            },
          ],
        },
        {
          name: "len",
          typeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
      ],
      typeParameters: [8],
    },
    {
      type: "struct sway_libs::ownership::events::OwnershipRenounced",
      metadataTypeId: 32,
      components: [
        {
          name: "previous_owner",
          typeId: 6,
        },
      ],
    },
    {
      type: "struct sway_libs::ownership::events::OwnershipSet",
      metadataTypeId: 33,
      components: [
        {
          name: "new_owner",
          typeId: 6,
        },
      ],
    },
    {
      type: "u8",
      metadataTypeId: 34,
    },
  ],
  functions: [
    {
      inputs: [],
      name: "owner",
      output:
        "192bc7098e2fe60635a9918afb563e4e5419d386da2bdbf0d716b4bc8549802c",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "price_feed_id",
          concreteTypeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
      name: "ema_price",
      output:
        "8aba92fff7345309d4313706ed7db3a811609f62da8f0d2859819db43d461ff8",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "time_period",
          concreteTypeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "price_feed_id",
          concreteTypeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
      name: "ema_price_no_older_than",
      output:
        "8aba92fff7345309d4313706ed7db3a811609f62da8f0d2859819db43d461ff8",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "price_feed_id",
          concreteTypeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
      name: "ema_price_unsafe",
      output:
        "8aba92fff7345309d4313706ed7db3a811609f62da8f0d2859819db43d461ff8",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "max_publish_time",
          concreteTypeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "min_publish_time",
          concreteTypeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "target_price_feed_ids",
          concreteTypeId:
            "32559685d0c9845f059bf9d472a0a38cf77d36c23dfcffe5489e86a65cdd9198",
        },
        {
          name: "update_data",
          concreteTypeId:
            "2601885b27af3627b8910876fc176d900cec2b16ec78c538f5f312e785d915f5",
        },
      ],
      name: "parse_price_feed_updates",
      output:
        "7445e418358e558eaf1fb04dc2ee316739df0bce65fd8359c879b0dc9ffd3487",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
        {
          name: "payable",
          arguments: [],
        },
      ],
    },
    {
      inputs: [
        {
          name: "price_feed_id",
          concreteTypeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
      name: "price",
      output:
        "8aba92fff7345309d4313706ed7db3a811609f62da8f0d2859819db43d461ff8",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "time_period",
          concreteTypeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "price_feed_id",
          concreteTypeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
      name: "price_no_older_than",
      output:
        "8aba92fff7345309d4313706ed7db3a811609f62da8f0d2859819db43d461ff8",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "price_feed_id",
          concreteTypeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
      name: "price_unsafe",
      output:
        "8aba92fff7345309d4313706ed7db3a811609f62da8f0d2859819db43d461ff8",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "update_data",
          concreteTypeId:
            "2601885b27af3627b8910876fc176d900cec2b16ec78c538f5f312e785d915f5",
        },
      ],
      name: "update_fee",
      output:
        "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "update_data",
          concreteTypeId:
            "2601885b27af3627b8910876fc176d900cec2b16ec78c538f5f312e785d915f5",
        },
      ],
      name: "update_price_feeds",
      output:
        "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
      attributes: [
        {
          name: "storage",
          arguments: ["read", "write"],
        },
        {
          name: "payable",
          arguments: [],
        },
      ],
    },
    {
      inputs: [
        {
          name: "price_feed_ids",
          concreteTypeId:
            "32559685d0c9845f059bf9d472a0a38cf77d36c23dfcffe5489e86a65cdd9198",
        },
        {
          name: "publish_times",
          concreteTypeId:
            "d5bfe1d4e1ace20166c9b50cadd47e862020561bde24f5189cfc2723f5ed76f4",
        },
        {
          name: "update_data",
          concreteTypeId:
            "2601885b27af3627b8910876fc176d900cec2b16ec78c538f5f312e785d915f5",
        },
      ],
      name: "update_price_feeds_if_necessary",
      output:
        "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
      attributes: [
        {
          name: "storage",
          arguments: ["read", "write"],
        },
        {
          name: "payable",
          arguments: [],
        },
      ],
    },
    {
      inputs: [],
      name: "valid_time_period",
      output:
        "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "data_sources",
          concreteTypeId:
            "921bd92ab7bb109127518976318770057b0a4c95b21b83dbe6121d19cdf142dd",
        },
        {
          name: "governance_data_source",
          concreteTypeId:
            "8f97b260b402ac61805cd653dbfa653d4991ae802756e74c009d8df9c6178bbb",
        },
        {
          name: "wormhole_governance_data_source",
          concreteTypeId:
            "8f97b260b402ac61805cd653dbfa653d4991ae802756e74c009d8df9c6178bbb",
        },
        {
          name: "single_update_fee",
          concreteTypeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "valid_time_period_seconds",
          concreteTypeId:
            "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
        },
        {
          name: "wormhole_guardian_set_addresses",
          concreteTypeId:
            "32559685d0c9845f059bf9d472a0a38cf77d36c23dfcffe5489e86a65cdd9198",
        },
        {
          name: "wormhole_guardian_set_index",
          concreteTypeId:
            "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
        },
        {
          name: "chain_id",
          concreteTypeId:
            "29881aad8730c5ab11d275376323d8e4ff4179aae8ccb6c13fe4902137e162ef",
        },
      ],
      name: "constructor",
      output:
        "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
      attributes: [
        {
          name: "storage",
          arguments: ["read", "write"],
        },
      ],
    },
    {
      inputs: [],
      name: "chain_id",
      output:
        "29881aad8730c5ab11d275376323d8e4ff4179aae8ccb6c13fe4902137e162ef",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "data_source",
          concreteTypeId:
            "8f97b260b402ac61805cd653dbfa653d4991ae802756e74c009d8df9c6178bbb",
        },
      ],
      name: "is_valid_data_source",
      output:
        "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [],
      name: "last_executed_governance_sequence",
      output:
        "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "price_feed_id",
          concreteTypeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
      name: "latest_publish_time",
      output:
        "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "price_feed_id",
          concreteTypeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
      name: "price_feed_exists",
      output:
        "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "price_feed_id",
          concreteTypeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
      name: "price_feed_unsafe",
      output:
        "13eb7054501f8758f39326623a86e36908793ac7123adf2c5eddd0634d9c0809",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [],
      name: "single_update_fee",
      output:
        "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [],
      name: "valid_data_sources",
      output:
        "921bd92ab7bb109127518976318770057b0a4c95b21b83dbe6121d19cdf142dd",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [],
      name: "current_guardian_set_index",
      output:
        "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [],
      name: "current_wormhole_provider",
      output:
        "8f97b260b402ac61805cd653dbfa653d4991ae802756e74c009d8df9c6178bbb",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "governance_action_hash",
          concreteTypeId:
            "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b",
        },
      ],
      name: "governance_action_is_consumed",
      output:
        "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "index",
          concreteTypeId:
            "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc",
        },
      ],
      name: "guardian_set",
      output:
        "c574f99b562987df1da975be7ed02d4658ad16bc1699fde46946bd14fbcc51ed",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "encoded_vm",
          concreteTypeId:
            "cdd87b7d12fe505416570c294c884bca819364863efe3bf539245fa18515fbbb",
        },
      ],
      name: "submit_new_guardian_set",
      output:
        "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
      attributes: [
        {
          name: "storage",
          arguments: ["read", "write"],
        },
      ],
    },
    {
      inputs: [
        {
          name: "encoded_vm",
          concreteTypeId:
            "cdd87b7d12fe505416570c294c884bca819364863efe3bf539245fa18515fbbb",
        },
      ],
      name: "execute_governance_instruction",
      output:
        "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d",
      attributes: [
        {
          name: "storage",
          arguments: ["read", "write"],
        },
      ],
    },
    {
      inputs: [],
      name: "governance_data_source",
      output:
        "8f97b260b402ac61805cd653dbfa653d4991ae802756e74c009d8df9c6178bbb",
      attributes: [
        {
          name: "storage",
          arguments: ["read"],
        },
      ],
    },
  ],
  loggedTypes: [
    {
      logId: "17263759643364419401",
      concreteTypeId:
        "ef9531eda675e74905aeb0648d5f0289c85f8506754060ccaae49f3e657d2946",
    },
    {
      logId: "6097575393373596634",
      concreteTypeId:
        "549ef08391322bda7ed2fc775474af0638edb3e851370d0d7fdecf5341640a44",
    },
    {
      logId: "2161305517876418151",
      concreteTypeId:
        "1dfe7feadc1d9667a4351761230f948744068a090fe91b1bc6763a90ed5d3893",
    },
    {
      logId: "16280289466020123285",
      concreteTypeId:
        "e1ef35033ea9d2956f17c3292dea4a46ce7d61fdf37bbebe03b7b965073f43b5",
    },
    {
      logId: "4571204900286667806",
      concreteTypeId:
        "3f702ea3351c9c1ece2b84048006c8034a24cbc2bad2e740d0412b4172951d3d",
    },
    {
      logId: "4883303303013154842",
      concreteTypeId:
        "43c4fa7b3297401afbf300127e59ea913e5c8f0c7ae69abbec789ab0bb872bed",
    },
    {
      logId: "15458268789670052309",
      concreteTypeId:
        "d686cd9012ca81d56b62946d7a0bbec125a19237443e81495493c08426a76b1b",
    },
    {
      logId: "15522444483018429170",
      concreteTypeId:
        "d76acd04100912f23d6d0798c810021f2332efc785fe432091a7f873140fb097",
    },
    {
      logId: "13658014858265200820",
      concreteTypeId:
        "bd8b04267be788b4834b73914421df35c49678d2056e5fe667c0726515bcb28a",
    },
    {
      logId: "13826841070488844162",
      concreteTypeId:
        "bfe2ceb22444f7821c75d478fb595c4642cbf8970f8ec8960637a7c9aa6690c2",
    },
    {
      logId: "10098701174489624218",
      concreteTypeId:
        "8c25cb3686462e9a86d2883c5688a22fe738b0bbc85f458d2d2b5f3f667c6d5a",
    },
    {
      logId: "1142064842477676760",
      concreteTypeId:
        "0fd96dec5e5828d8a3e64d70e2d2962b1b7f4d0a8f1d6c9e035ce65e7c97679b",
    },
    {
      logId: "6349313752173641777",
      concreteTypeId:
        "581d4b37add000314b9bfae1fcfade22b78d3a0c8daa006aabada1c49114920e",
    },
    {
      logId: "9922871334772410980",
      concreteTypeId:
        "89b51ee7c5040a64ca6af11d37b8583445937d042f24de1865407025999d41e8",
    },
    {
      logId: "10192771768357409321",
      concreteTypeId:
        "8d73ffeb7192d229077a509df2382f8b8979602df4e98faec0732d24f56589be",
    },
    {
      logId: "12784292968044359727",
      concreteTypeId:
        "b16aeeb868cef02f09f43d578ea970bd5f5b7d12692380200c8db6492d7ff3a0",
    },
    {
      logId: "2489113073291466941",
      concreteTypeId:
        "228b1b26fb5198bd07b4ff49c1e59f5ace59a97dbf91242b955cfc91a6b88fc3",
    },
    {
      logId: "6138708451323859849",
      concreteTypeId:
        "553112cfecd8d38944c33cc4528f5b23e88d21148b19abca47d8e76fe7faf163",
    },
    {
      logId: "18185755007736345251",
      concreteTypeId:
        "fc60c7d3c867f2a30c3e6be2cc21efd907b913f533f0f14ee397115a476c2f79",
    },
  ],
  messagesTypes: [],
  configurables: [
    {
      name: "DEPLOYER",
      concreteTypeId:
        "ab7cd04e05be58e3fc15d424c2c4a57f824a2a2d97d67252440a3925ebdc1335",
      offset: 132984,
    },
  ],
};

const storageSlots: StorageSlot[] = [
  {
    key: "11672498f6e54d64f7c94ceafab63ce9c33b957b083d82f9301e18c4bbcdd43e",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "1fea2a1870fafe58b3f658d2a10d75f7d4b599036bb925958e3650097753f03f",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "1fea2a1870fafe58b3f658d2a10d75f7d4b599036bb925958e3650097753f040",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "1feab27058c4ed60cb36c15c123efafc983fdbc10f4cfac4f1b23fdb8c36fb7d",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "1feab27058c4ed60cb36c15c123efafc983fdbc10f4cfac4f1b23fdb8c36fb7e",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "2978ac0e4bdc20e0a96c04e8adb0639e5efdff01601aa4f7887421e795e4b96a",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "357565afd3b58fa5509545cd95377655dcb331b733af6f4439699d27dcf450eb",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "358560d9e39bf0d62ad9ffeba18c167b0e4e6722c6eb24f55cbc64054c51b905",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "358560d9e39bf0d62ad9ffeba18c167b0e4e6722c6eb24f55cbc64054c51b906",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "480744474aef380dda93aae5f17de10f991ca301c7ae8a925ab40229da966cf8",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "d16fb5609ac0a5d5c45145524cbd88ae218f3be85b76bb42239b7eb916305d6d",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
  {
    key: "f9e12c6c1c57daf9e6a5ff000b582628bec999880e26917559121db757ba5653",
    value: "0000000000000000000000000000000000000000000000000000000000000000",
  },
];
export class PythContractInterface extends Interface {
  constructor() {
    super(abi);
  }

  declare functions: {
    owner: FunctionFragment;
    ema_price: FunctionFragment;
    ema_price_no_older_than: FunctionFragment;
    ema_price_unsafe: FunctionFragment;
    parse_price_feed_updates: FunctionFragment;
    price: FunctionFragment;
    price_no_older_than: FunctionFragment;
    price_unsafe: FunctionFragment;
    update_fee: FunctionFragment;
    update_price_feeds: FunctionFragment;
    update_price_feeds_if_necessary: FunctionFragment;
    valid_time_period: FunctionFragment;
    constructor: FunctionFragment;
    chain_id: FunctionFragment;
    is_valid_data_source: FunctionFragment;
    last_executed_governance_sequence: FunctionFragment;
    latest_publish_time: FunctionFragment;
    price_feed_exists: FunctionFragment;
    price_feed_unsafe: FunctionFragment;
    single_update_fee: FunctionFragment;
    valid_data_sources: FunctionFragment;
    current_guardian_set_index: FunctionFragment;
    current_wormhole_provider: FunctionFragment;
    governance_action_is_consumed: FunctionFragment;
    guardian_set: FunctionFragment;
    submit_new_guardian_set: FunctionFragment;
    execute_governance_instruction: FunctionFragment;
    governance_data_source: FunctionFragment;
  };
}

export class PythContract extends Contract {
  static readonly abi = abi;
  static readonly storageSlots = storageSlots;

  declare interface: PythContractInterface;
  declare functions: {
    owner: InvokeFunction<[], StateOutput>;
    ema_price: InvokeFunction<[price_feed_id: string], PriceOutput>;
    ema_price_no_older_than: InvokeFunction<
      [time_period: BigNumberish, price_feed_id: string],
      PriceOutput
    >;
    ema_price_unsafe: InvokeFunction<[price_feed_id: string], PriceOutput>;
    parse_price_feed_updates: InvokeFunction<
      [
        max_publish_time: BigNumberish,
        min_publish_time: BigNumberish,
        target_price_feed_ids: Vec<string>,
        update_data: Vec<Bytes>
      ],
      Vec<PriceFeedOutput>
    >;
    price: InvokeFunction<[price_feed_id: string], PriceOutput>;
    price_no_older_than: InvokeFunction<
      [time_period: BigNumberish, price_feed_id: string],
      PriceOutput
    >;
    price_unsafe: InvokeFunction<[price_feed_id: string], PriceOutput>;
    update_fee: InvokeFunction<[update_data: Vec<Bytes>], BN>;
    update_price_feeds: InvokeFunction<[update_data: Vec<Bytes>], void>;
    update_price_feeds_if_necessary: InvokeFunction<
      [
        price_feed_ids: Vec<string>,
        publish_times: Vec<BigNumberish>,
        update_data: Vec<Bytes>
      ],
      void
    >;
    valid_time_period: InvokeFunction<[], BN>;
    constructor: InvokeFunction<
      [
        data_sources: Vec<DataSourceInput>,
        governance_data_source: DataSourceInput,
        wormhole_governance_data_source: DataSourceInput,
        single_update_fee: BigNumberish,
        valid_time_period_seconds: BigNumberish,
        wormhole_guardian_set_addresses: Vec<string>,
        wormhole_guardian_set_index: BigNumberish,
        chain_id: BigNumberish
      ],
      void
    >;
    chain_id: InvokeFunction<[], number>;
    is_valid_data_source: InvokeFunction<
      [data_source: DataSourceInput],
      boolean
    >;
    last_executed_governance_sequence: InvokeFunction<[], BN>;
    latest_publish_time: InvokeFunction<[price_feed_id: string], BN>;
    price_feed_exists: InvokeFunction<[price_feed_id: string], boolean>;
    price_feed_unsafe: InvokeFunction<[price_feed_id: string], PriceFeedOutput>;
    single_update_fee: InvokeFunction<[], BN>;
    valid_data_sources: InvokeFunction<[], Vec<DataSourceOutput>>;
    current_guardian_set_index: InvokeFunction<[], number>;
    current_wormhole_provider: InvokeFunction<[], DataSourceOutput>;
    governance_action_is_consumed: InvokeFunction<
      [governance_action_hash: string],
      boolean
    >;
    guardian_set: InvokeFunction<[index: BigNumberish], GuardianSetOutput>;
    submit_new_guardian_set: InvokeFunction<[encoded_vm: Bytes], void>;
    execute_governance_instruction: InvokeFunction<[encoded_vm: Bytes], void>;
    governance_data_source: InvokeFunction<[], DataSourceOutput>;
  };

  constructor(
    id: string | AbstractAddress,
    accountOrProvider: Account | Provider
  ) {
    super(id, abi, accountOrProvider);
  }
}
