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

Merge pull request #2914 from pyth-network/fuel-deployment-fixes

fix(fuel): further fixes, contract deployment
Ayush Suresh 3 hónapja
szülő
commit
1b84cca62e

+ 1 - 1
target_chains/fuel/contracts/fuel-toolchain.toml

@@ -3,4 +3,4 @@ channel = "mainnet"
 
 [components]
 forc = "0.68.9"
-fuel-core = "0.43.2"
+fuel-core = "0.43.2"

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 151 - 151
target_chains/fuel/contracts/pyth-contract/out/release/pyth-contract-abi.json


+ 12 - 12
target_chains/fuel/contracts/pyth-contract/out/release/pyth-contract-storage_slots.json

@@ -1,50 +1,50 @@
 [
   {
-    "key": "11672498f6e54d64f7c94ceafab63ce9c33b957b083d82f9301e18c4bbcdd43e",
+    "key": "36e8558c35150c73e4bc688fda5e2c53b7fb4ffa026ccea7ee1c25052f83d2e9",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "1fea2a1870fafe58b3f658d2a10d75f7d4b599036bb925958e3650097753f03f",
+    "key": "6986c6ef48d658024dc84a939ca793ff00ca2884b82ec779236b919569cb2aba",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "1fea2a1870fafe58b3f658d2a10d75f7d4b599036bb925958e3650097753f040",
+    "key": "6aa668744c4b16239315579332db3cd369b80451df52e22fcd2955fcaee7f523",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "1feab27058c4ed60cb36c15c123efafc983fdbc10f4cfac4f1b23fdb8c36fb7d",
+    "key": "6aa668744c4b16239315579332db3cd369b80451df52e22fcd2955fcaee7f524",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "1feab27058c4ed60cb36c15c123efafc983fdbc10f4cfac4f1b23fdb8c36fb7e",
+    "key": "906952486d9fbda1d04fdd63896567f799dbcdf6bb532ce6e4b6d64ac0a54092",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "2978ac0e4bdc20e0a96c04e8adb0639e5efdff01601aa4f7887421e795e4b96a",
+    "key": "906952486d9fbda1d04fdd63896567f799dbcdf6bb532ce6e4b6d64ac0a54093",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "357565afd3b58fa5509545cd95377655dcb331b733af6f4439699d27dcf450eb",
+    "key": "930836f94195ccc09273757d639232126122b0a9b243beb833f1b594e7da1d1d",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "358560d9e39bf0d62ad9ffeba18c167b0e4e6722c6eb24f55cbc64054c51b905",
+    "key": "99a2f2469477e093a24c376b245e882cc871fc75468c36bb1a3236757073c94e",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "358560d9e39bf0d62ad9ffeba18c167b0e4e6722c6eb24f55cbc64054c51b906",
+    "key": "c2fd2e763e1bb38532acd4a7e7b02d67de9f6d45dfec9e1a98d38538cf81ee3f",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "480744474aef380dda93aae5f17de10f991ca301c7ae8a925ab40229da966cf8",
+    "key": "c2fd2e763e1bb38532acd4a7e7b02d67de9f6d45dfec9e1a98d38538cf81ee40",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "d16fb5609ac0a5d5c45145524cbd88ae218f3be85b76bb42239b7eb916305d6d",
+    "key": "cef64358a04a358393899c7bf31869ba33ba79f2be043ac3b0eaf09fa80bc428",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   },
   {
-    "key": "f9e12c6c1c57daf9e6a5ff000b582628bec999880e26917559121db757ba5653",
+    "key": "e935ac0ef94f9b13fca075303825c8f4621d0a6ecc036893e56bf2276466f45f",
     "value": "0000000000000000000000000000000000000000000000000000000000000000"
   }
 ]

BIN
target_chains/fuel/contracts/pyth-contract/out/release/pyth-contract.bin


+ 2 - 1
target_chains/fuel/contracts/pyth-contract/src/main.sw

@@ -934,4 +934,5 @@ fn verify_governance_vm(encoded_vm: Bytes) -> WormholeVM {
 
     set_last_executed_governance_sequence(vm.sequence);
     vm
-}
+}
+

+ 14 - 2
target_chains/fuel/contracts/pyth-interface/src/data_structures/wormhole_light.sw

@@ -115,8 +115,20 @@ impl GuardianSetUpgrade {
         while i < guardian_length {
             let (_, slice) = encoded_upgrade.split_at(index);
             let (key, _) = slice.split_at(20);
-            let key: b256 = b256::from_be_bytes(key.clone());
-            new_guardian_set.keys.push(key.rsh(96));
+            let mut full_address_key = Bytes::with_capacity(32);
+
+            // Sway's from_be_bytes expects a 32-byte array, so we pad with zeros
+            let mut j = 0;
+            while j < 12 {
+                full_address_key.push(0u8);
+                j += 1;
+            }
+
+            full_address_key.append(key);
+
+            let key: b256 = b256::from_be_bytes(full_address_key.clone());
+
+            new_guardian_set.keys.push(key);
             index += 20;
             i += 1;
         }

+ 36 - 4
target_chains/fuel/contracts/pyth-interface/src/pyth_merkle_proof.sw

@@ -20,8 +20,25 @@ fn node_hash(child_a: Bytes, child_b: Bytes) -> Bytes {
     let mut bytes = Bytes::with_capacity(41);
     bytes.push(MERKLE_NODE_PREFIX);
 
-    let a: b256 = b256::from_be_bytes(child_a.clone());
-    let b: b256 = b256::from_be_bytes(child_b.clone());
+    // Sway's from_be_bytes expects a 32-byte array, so we pad with zeros
+    let mut full_address_child_a = Bytes::with_capacity(32);
+    let mut full_address_child_b = Bytes::with_capacity(32);
+
+    // Pad with 12 zeros (32 - 20 = 12)
+    let mut i = 0;
+    while i < 12 {
+        full_address_child_a.push(0u8);
+        full_address_child_b.push(0u8);
+        i += 1;
+    }
+
+    // Append the 20-byte data
+    full_address_child_a.append(child_a);
+    full_address_child_b.append(child_b);
+
+    // Convert to b256
+    let a: b256 = b256::from_be_bytes(full_address_child_a);
+    let b: b256 = b256::from_be_bytes(full_address_child_b);
 
     if a > b {
         bytes.append(child_b);
@@ -55,8 +72,23 @@ pub fn validate_proof(
         i += 1;
     }
 
-    let current_digest_b256: b256 = b256::from_be_bytes(current_digest.clone());
-    let root_b256: b256 = b256::from_be_bytes(root.clone());
+    let mut full_address_root = Bytes::with_capacity(32);
+    let mut full_address_current_digest = Bytes::with_capacity(32);
+
+    // Pad with 12 zeros (32 - 20 = 12)
+    let mut i = 0;
+    while i < 12 {
+        full_address_current_digest.push(0u8);
+        full_address_root.push(0u8);
+        i += 1;
+    }
+
+    // Append the 20-byte data
+    full_address_root.append(root);
+    full_address_current_digest.append(current_digest);
+
+    let current_digest_b256: b256 = b256::from_be_bytes(full_address_current_digest);
+    let root_b256: b256 = b256::from_be_bytes(full_address_root);
 
     require(current_digest_b256 == root_b256, PythError::InvalidProof);
 

+ 4 - 2
target_chains/fuel/contracts/scripts/deploy_pyth.rs

@@ -2,7 +2,7 @@ use fuels::{
     prelude::{Address, Provider, WalletUnlocked},
     types::Bits256,
 };
-use pyth_sdk::{constants::BETA_5_URL, pyth_utils::guardian_set_upgrade_4_addresses};
+use pyth_sdk::pyth_utils::guardian_set_upgrade_4_addresses;
 use pyth_sdk::{
     constants::{
         BTC_USD_PRICE_FEED_ID, DEFAULT_VALID_TIME_PERIOD, DUMMY_CHAIN_ID, ETH_USD_PRICE_FEED_ID,
@@ -17,7 +17,9 @@ async fn main() {
 
     println!("🔮 Testnet Pyth deploy action");
 
-    let provider = Provider::connect(BETA_5_URL).await.unwrap();
+    let provider = Provider::connect("https://testnet.fuel.network")
+        .await
+        .unwrap();
 
     let admin_pk = std::env::var("ADMIN").expect("ADMIN environment variable missing");
     let admin =

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 151 - 151
target_chains/fuel/sdk/js/src/types/PythContract.ts


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
target_chains/fuel/sdk/js/src/types/PythContractFactory.ts


Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott