Parcourir la source

fix: fixed a number of builds and corrected the main output of a dual published package to be commonJS

benduran il y a 4 semaines
Parent
commit
176683bbc5

+ 13 - 5
apps/hermes/client/js/package.json

@@ -6,8 +6,6 @@
     "name": "Pyth Data Association"
   },
   "homepage": "https://pyth.network",
-  "main": "lib/HermesClient.js",
-  "types": "lib/HermesClient.d.ts",
   "files": [
     "lib/**/*",
     "dist/**/*"
@@ -20,6 +18,11 @@
   "publishConfig": {
     "access": "public",
     "exports": {
+      ".": {
+        "import": "./dist/esm/index.mjs",
+        "require": "./dist/cjs/index.cjs",
+        "types": "./dist/esm/index.d.ts"
+      },
       "./examples/HermesClient": {
         "import": "./dist/esm/examples/HermesClient.mjs",
         "require": "./dist/cjs/examples/HermesClient.cjs",
@@ -44,10 +47,10 @@
     }
   },
   "scripts": {
-    "build:typescript": "tsc",
     "build:schemas": "openapi-zod-client ./schema.json --output src/zodSchemas.ts",
+    "clean": "rm -rf ./dist && rm -rf ./lib",
     "pull:schema": "curl -o schema.json -z schema.json https://hermes.pyth.network/docs/openapi.json",
-    "example": "node lib/examples/HermesClient.js",
+    "example": "tsx src/examples/HermesClient.ts",
     "fix:lint": "eslint src/ --fix --max-warnings 0",
     "fix:format": "prettier --write \"src/**/*.ts\"",
     "test:lint": "eslint src/ --max-warnings 0",
@@ -74,6 +77,7 @@
     "prettier": "catalog:",
     "ts-jest": "^29.0.5",
     "typescript": "catalog:",
+    "tsx": "catalog:",
     "yargs": "^17.4.1"
   },
   "dependencies": {
@@ -87,10 +91,14 @@
   },
   "packageManager": "pnpm@10.19.0",
   "exports": {
+    ".": "./src/index.ts",
     "./examples/HermesClient": "./src/examples/HermesClient.ts",
     "./HermesClient": "./src/HermesClient.ts",
     "./utils": "./src/utils.ts",
     "./zodSchemas": "./src/zodSchemas.ts",
     "./package.json": "./package.json"
-  }
+  },
+  "main": "./dist/cjs/index.js",
+  "module": "./dist/esm/index.mjs",
+  "types": "./dist/esm/index.d.mts"
 }

+ 1 - 0
apps/hermes/client/js/src/index.ts

@@ -0,0 +1 @@
+export * from './HermesClient';

+ 4 - 4
lazer/sdk/js/package.json

@@ -112,6 +112,9 @@
     "ws": "^8.18.0"
   },
   "packageManager": "pnpm@10.19.0",
+  "main": "./dist/cjs/index.js",
+  "module": "./dist/esm/index.js",
+  "types": "./dist/esm/index.d.ts",
   "exports": {
     ".": "./src/index.ts",
     "./client": "./src/client.ts",
@@ -124,8 +127,5 @@
     "./util/env-util": "./src/util/env-util.ts",
     "./util/url-util": "./src/util/url-util.ts",
     "./package.json": "./package.json"
-  },
-  "main": "./dist/cjs/index.js",
-  "types": "./dist/esm/index.d.ts",
-  "module": "./dist/esm/index.js"
+  }
 }

+ 9 - 6
packages/build-ts-package/src/build-ts-package.js

@@ -69,10 +69,11 @@ export async function buildTsPackage(argv = process.argv) {
       description: "the CWD to use when building",
       type: "string",
     })
-    .option('exclude', {
+    .option("exclude", {
       default: [],
-      description: 'one or more file exclusion glob patterns. please note, these must be EXCLUSION glob patterns, or they may end up getting picked up by the build',
-      type: 'array',
+      description:
+        "one or more file exclusion glob patterns. please note, these must be EXCLUSION glob patterns, or they may end up getting picked up by the build",
+      type: "array",
     })
     .option("noCjs", {
       default: false,
@@ -145,7 +146,7 @@ export async function buildTsPackage(argv = process.argv) {
         "!./src/**/*.spec.tsx",
         "!./src/**/*.stories.tsx",
         "!./src/**/*.stories.mdx",
-        ...(exclude.map(ex => String(ex))),
+        ...exclude.map((ex) => String(ex)),
       ],
       exports:
         format === "esm" || numFormats <= 1 ? { all, devExports: true } : false,
@@ -170,7 +171,7 @@ export async function buildTsPackage(argv = process.argv) {
       const exportPath = String(pjson.publishConfig.exports[exportKey]);
 
       // skip over all package.json files
-      if (exportPath.includes('package.json')) continue;
+      if (exportPath.includes("package.json")) continue;
 
       // @ts-expect-error - we can definitely index here, so please be silenced!
       pjson.publishConfig.exports[exportKey] = {
@@ -181,7 +182,9 @@ export async function buildTsPackage(argv = process.argv) {
         types: exportPath.replace(path.extname(exportPath), ".d.ts"),
       };
       if (pjson.main) {
-        pjson.main = pjson.main.replace(`${path.sep}esm${path.sep}`, `${path.sep}cjs${path.sep}`);
+        pjson.main = pjson.main
+          .replace(`${path.sep}esm${path.sep}`, `${path.sep}cjs${path.sep}`)
+          .replace(/\.mjs$/, ".js");
       }
     }
 

+ 4 - 1
pnpm-lock.yaml

@@ -964,6 +964,9 @@ importers:
       ts-jest:
         specifier: ^29.0.5
         version: 29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(jest@29.7.0(@types/node@20.17.30)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@20.17.30)(typescript@5.8.2)))(typescript@5.8.2)
+      tsx:
+        specifier: 'catalog:'
+        version: 4.20.6
       typescript:
         specifier: 'catalog:'
         version: 5.8.2
@@ -41421,7 +41424,7 @@ snapshots:
       '@nolyfill/is-core-module': 1.0.39
       debug: 4.4.0
       eslint: 8.56.0
-      get-tsconfig: 4.10.0
+      get-tsconfig: 4.13.0
       is-bun-module: 2.0.0
       stable-hash: 0.0.5
       tinyglobby: 0.2.15

+ 1 - 1
price_service/client/js/package.json

@@ -7,7 +7,7 @@
     "name": "Pyth Data Association"
   },
   "homepage": "https://pyth.network",
-  "main": "./dist/cjs/index.mjs",
+  "main": "./dist/cjs/index.js",
   "types": "./dist/esm/index.d.mts",
   "files": [
     "lib/**/*",

+ 1 - 1
price_service/sdk/js/package.json

@@ -3,7 +3,7 @@
   "version": "1.8.0",
   "description": "Pyth price service SDK",
   "homepage": "https://pyth.network",
-  "main": "./dist/cjs/index.mjs",
+  "main": "./dist/cjs/index.js",
   "types": "./dist/esm/index.d.mts",
   "files": [
     "lib/**/*",

+ 1 - 0
target_chains/fuel/sdk/js/.gitignore

@@ -1 +1,2 @@
 lib
+dist/

+ 41 - 4
target_chains/fuel/sdk/js/package.json

@@ -6,8 +6,8 @@
   "author": {
     "name": "Pyth Data Association"
   },
-  "main": "lib/index.js",
-  "types": "lib/index.d.ts",
+  "main": "./dist/cjs/index.js",
+  "types": "./dist/esm/index.d.mts",
   "files": [
     "lib/**/*",
     "dist/**/*"
@@ -18,7 +18,35 @@
     "directory": "target_chains/fuel/sdk/js"
   },
   "publishConfig": {
-    "access": "public"
+    "access": "public",
+    "exports": {
+      ".": {
+        "import": "./dist/esm/index.mjs",
+        "require": "./dist/cjs/index.cjs",
+        "types": "./dist/esm/index.d.ts"
+      },
+      "./abi/pyth-contract-abi": {
+        "import": "./dist/esm/abi/pyth-contract-abi.mjs",
+        "require": "./dist/cjs/abi/pyth-contract-abi.cjs",
+        "types": "./dist/esm/abi/pyth-contract-abi.d.ts"
+      },
+      "./types": {
+        "import": "./dist/esm/types/index.mjs",
+        "require": "./dist/cjs/types/index.cjs",
+        "types": "./dist/esm/types/index.d.ts"
+      },
+      "./types/PythContract": {
+        "import": "./dist/esm/types/PythContract.mjs",
+        "require": "./dist/cjs/types/PythContract.cjs",
+        "types": "./dist/esm/types/PythContract.d.ts"
+      },
+      "./types/PythContractFactory": {
+        "import": "./dist/esm/types/PythContractFactory.mjs",
+        "require": "./dist/cjs/types/PythContractFactory.cjs",
+        "types": "./dist/esm/types/PythContractFactory.d.ts"
+      },
+      "./package.json": "./package.json"
+    }
   },
   "scripts": {
     "usage-example": "tsx src/examples/usage.ts",
@@ -57,5 +85,14 @@
     "node": ">=22",
     "pnpm": ">=10.19.0"
   },
-  "packageManager": "pnpm@10.19.0"
+  "packageManager": "pnpm@10.19.0",
+  "module": "./dist/esm/index.mjs",
+  "exports": {
+    ".": "./src/index.ts",
+    "./abi/pyth-contract-abi": "./src/abi/pyth-contract-abi.ts",
+    "./types": "./src/types/index.ts",
+    "./types/PythContract": "./src/types/PythContract.ts",
+    "./types/PythContractFactory": "./src/types/PythContractFactory.ts",
+    "./package.json": "./package.json"
+  }
 }

+ 0 - 1537
target_chains/fuel/sdk/js/src/abi/pyth-contract-abi.json

@@ -1,1537 +0,0 @@
-{
-  "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": "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": 133088
-    }
-  ]
-}

+ 1767 - 0
target_chains/fuel/sdk/js/src/abi/pyth-contract-abi.ts

@@ -0,0 +1,1767 @@
+export const PYTH_CONTRACT_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: "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: 133088,
+    },
+  ],
+};

+ 12 - 12
target_chains/fuel/sdk/js/src/examples/usage.ts

@@ -1,4 +1,4 @@
-import { HermesClient, PriceUpdate } from "@pythnetwork/hermes-client";
+import { HermesClient, type PriceUpdate } from "@pythnetwork/hermes-client";
 import {
   PYTH_CONTRACT_ADDRESS_SEPOLIA,
   PYTH_CONTRACT_ABI,
@@ -28,8 +28,8 @@ async function main() {
   const priceFeedId =
     "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace"; // Pyth ETH/USD price feed id
   const previousPrice = (
-    await contract.functions.price_unsafe(priceFeedId).get()
-  ).value;
+    await contract.functions.price_unsafe?.(priceFeedId)?.get()
+  )?.value;
   console.log(
     `Previous price: ${
       previousPrice.price.toNumber() * 10 ** -previousPrice.exponent
@@ -46,33 +46,33 @@ async function main() {
   ]);
   console.log(
     `Current price from Hermes: ${
-      Number(priceUpdates.parsed?.[0].price.price) *
-      10 ** Number(priceUpdates.parsed?.[0].price.expo)
+      Number(priceUpdates.parsed?.[0]?.price.price) *
+      10 ** Number(priceUpdates.parsed?.[0]?.price.expo)
     }`,
   );
 
   const priceFeedUpdateData = arrayify(
-    Buffer.from(priceUpdates.binary.data[0], "hex"),
+    Buffer.from(priceUpdates.binary.data[0] ?? '', "hex"),
   );
 
   // Query the amount of update fee required
   console.log(`Querying update fee...`);
   const updateFee: number = (
-    await contract.functions.update_fee([priceFeedUpdateData]).get()
-  ).value;
+    await contract.functions.update_fee?.([priceFeedUpdateData])?.get()
+  )?.value;
   console.log(`Update fee: ${updateFee}`);
 
   const tx = await contract.functions
-    .update_price_feeds([priceFeedUpdateData])
+    .update_price_feeds?.([priceFeedUpdateData])
     .callParams({
       forward: [updateFee, hexlify(FUEL_ETH_ASSET_ID)],
     })
     .call();
-  console.log(`Transaction confirmed: ${tx.transactionId}`);
+  console.log(`Transaction confirmed: ${tx?.transactionId}`);
 
   const newPrice = (
-    await contract.functions.price_no_older_than(60, priceFeedId).get()
-  ).value;
+    await contract.functions.price_no_older_than?.(60, priceFeedId)?.get()
+  )?.value;
   console.log(
     `New price: ${newPrice.price.toNumber() * 10 ** -newPrice.exponent}`,
   );

+ 3 - 5
target_chains/fuel/sdk/js/src/index.ts

@@ -1,4 +1,6 @@
-import PYTH_CONTRACT_ABI from "./abi/pyth-contract-abi.json";
+export * from "./types";
+export type * from "./types/PythContract";
+export { PYTH_CONTRACT_ABI } from "./abi/pyth-contract-abi";
 
 /** Address of the Pyth contract on Fuel Sepolia (testnet). */
 export const PYTH_CONTRACT_ADDRESS_SEPOLIA =
@@ -11,7 +13,3 @@ export const PYTH_CONTRACT_ADDRESS_MAINNET =
 /** Asset ID of ETH on Fuel. */
 export const FUEL_ETH_ASSET_ID =
   "0xf8f8b6283d7fa5b672b530cbb84fcccb4ff8dc40f8176ef4544ddb1f1952ad07";
-
-export { PYTH_CONTRACT_ABI };
-export * from "./types";
-export type * from "./types/PythContract";

+ 0 - 1
target_chains/fuel/sdk/js/src/types/PythContract.ts

@@ -19,7 +19,6 @@ import type {
   Bytes,
   FunctionFragment,
   InvokeFunction,
-  StrSlice,
 } from "fuels";
 
 import type { Enum, Vec } from "./common";

+ 8 - 0
target_chains/fuel/sdk/js/tsconfig.build.json

@@ -0,0 +1,8 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "noEmit": false,
+    "declaration": true,
+    "verbatimModuleSyntax": false
+  }
+}

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
target_chains/fuel/sdk/js/tsconfig.build.tsbuildinfo


+ 1 - 1
target_chains/fuel/sdk/js/tsconfig.json

@@ -1,5 +1,5 @@
 {
-  "extends": "@cprussin/tsconfig/base.json",
+  "extends": "@cprussin/tsconfig/nextjs.json",
   "compilerOptions": {
     "rootDir": "./src"
   },

+ 41 - 9
target_chains/solana/sdk/js/pyth_solana_receiver/package.json

@@ -3,7 +3,7 @@
   "version": "0.12.0",
   "description": "Pyth solana receiver SDK",
   "homepage": "https://pyth.network",
-  "main": "./dist/esm/index.mjs",
+  "main": "./dist/cjs/index.js",
   "types": "./dist/esm/index.d.mts",
   "files": [
     "lib/**/*",
@@ -17,14 +17,46 @@
   "publishConfig": {
     "access": "public",
     "exports": {
-      ".": "./dist/esm/index.mjs",
-      "./address": "./dist/esm/address.mjs",
-      "./compute_budget": "./dist/esm/compute_budget.mjs",
-      "./idl/pyth_push_oracle": "./dist/esm/idl/pyth_push_oracle.mjs",
-      "./idl/pyth_solana_receiver": "./dist/esm/idl/pyth_solana_receiver.mjs",
-      "./idl/wormhole_core_bridge_solana": "./dist/esm/idl/wormhole_core_bridge_solana.mjs",
-      "./PythSolanaReceiver": "./dist/esm/PythSolanaReceiver.mjs",
-      "./vaa": "./dist/esm/vaa.mjs",
+      ".": {
+        "import": "./dist/esm/index.mjs",
+        "require": "./dist/cjs/index.cjs",
+        "types": "./dist/esm/index.d.ts"
+      },
+      "./address": {
+        "import": "./dist/esm/address.mjs",
+        "require": "./dist/cjs/address.cjs",
+        "types": "./dist/esm/address.d.ts"
+      },
+      "./compute_budget": {
+        "import": "./dist/esm/compute_budget.mjs",
+        "require": "./dist/cjs/compute_budget.cjs",
+        "types": "./dist/esm/compute_budget.d.ts"
+      },
+      "./idl/pyth_push_oracle": {
+        "import": "./dist/esm/idl/pyth_push_oracle.mjs",
+        "require": "./dist/cjs/idl/pyth_push_oracle.cjs",
+        "types": "./dist/esm/idl/pyth_push_oracle.d.ts"
+      },
+      "./idl/pyth_solana_receiver": {
+        "import": "./dist/esm/idl/pyth_solana_receiver.mjs",
+        "require": "./dist/cjs/idl/pyth_solana_receiver.cjs",
+        "types": "./dist/esm/idl/pyth_solana_receiver.d.ts"
+      },
+      "./idl/wormhole_core_bridge_solana": {
+        "import": "./dist/esm/idl/wormhole_core_bridge_solana.mjs",
+        "require": "./dist/cjs/idl/wormhole_core_bridge_solana.cjs",
+        "types": "./dist/esm/idl/wormhole_core_bridge_solana.d.ts"
+      },
+      "./PythSolanaReceiver": {
+        "import": "./dist/esm/PythSolanaReceiver.mjs",
+        "require": "./dist/cjs/PythSolanaReceiver.cjs",
+        "types": "./dist/esm/PythSolanaReceiver.d.ts"
+      },
+      "./vaa": {
+        "import": "./dist/esm/vaa.mjs",
+        "require": "./dist/cjs/vaa.cjs",
+        "types": "./dist/esm/vaa.d.ts"
+      },
       "./package.json": "./package.json"
     }
   },

+ 1 - 1
target_chains/solana/sdk/js/solana_utils/package.json

@@ -3,7 +3,7 @@
   "version": "0.5.0",
   "description": "Utility functions for Solana",
   "homepage": "https://pyth.network",
-  "main": "./dist/cjs/index.mjs",
+  "main": "./dist/cjs/index.js",
   "types": "./dist/esm/index.d.mts",
   "files": [
     "lib/**/*",

+ 1 - 0
target_chains/sui/sdk/js-iota/.gitignore

@@ -1 +1,2 @@
 lib
+dist/

+ 1 - 1
target_chains/sui/sdk/js-iota/package.json

@@ -6,7 +6,7 @@
   "author": {
     "name": "Pyth Data Association"
   },
-  "main": "./dist/cjs/index.mjs",
+  "main": "./dist/cjs/index.js",
   "types": "./dist/esm/index.d.mts",
   "files": [
     "lib/**/*",

+ 21 - 5
target_chains/sui/sdk/js/package.json

@@ -6,7 +6,7 @@
   "author": {
     "name": "Pyth Data Association"
   },
-  "main": "./dist/esm/index.mjs",
+  "main": "./dist/cjs/index.js",
   "types": "./dist/esm/index.d.mts",
   "files": [
     "lib/**/*",
@@ -20,10 +20,26 @@
   "publishConfig": {
     "access": "public",
     "exports": {
-      ".": "./dist/esm/index.mjs",
-      "./client": "./dist/esm/client.mjs",
-      "./examples/SuiRelay": "./dist/esm/examples/SuiRelay.mjs",
-      "./SuiPriceServiceConnection": "./dist/esm/SuiPriceServiceConnection.mjs",
+      ".": {
+        "import": "./dist/esm/index.mjs",
+        "require": "./dist/cjs/index.cjs",
+        "types": "./dist/esm/index.d.ts"
+      },
+      "./client": {
+        "import": "./dist/esm/client.mjs",
+        "require": "./dist/cjs/client.cjs",
+        "types": "./dist/esm/client.d.ts"
+      },
+      "./examples/SuiRelay": {
+        "import": "./dist/esm/examples/SuiRelay.mjs",
+        "require": "./dist/cjs/examples/SuiRelay.cjs",
+        "types": "./dist/esm/examples/SuiRelay.d.ts"
+      },
+      "./SuiPriceServiceConnection": {
+        "import": "./dist/esm/SuiPriceServiceConnection.mjs",
+        "require": "./dist/cjs/SuiPriceServiceConnection.cjs",
+        "types": "./dist/esm/SuiPriceServiceConnection.d.ts"
+      },
       "./package.json": "./package.json"
     }
   },

+ 1 - 1
target_chains/ton/sdk/js/package.json

@@ -6,7 +6,7 @@
   "author": {
     "name": "Pyth Data Association"
   },
-  "main": "./dist/cjs/index.mjs",
+  "main": "./dist/cjs/index.js",
   "types": "./dist/esm/index.d.mts",
   "files": [
     "lib/**/*",

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff