Browse Source

figurign out

Ayush Suresh 3 months ago
parent
commit
b67df92b85

+ 23 - 11
target_chains/fuel/contracts/pyth-contract/out/release/pyth-contract-abi.json

@@ -195,6 +195,10 @@
     {
       "type": "u64",
       "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0"
+    },
+    {
+      "type": "u8",
+      "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b"
     }
   ],
   "metadataTypes": [
@@ -750,7 +754,7 @@
       "components": [
         {
           "name": "version",
-          "typeId": 34
+          "typeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b"
         },
         {
           "name": "guardian_set_index",
@@ -782,7 +786,7 @@
         },
         {
           "name": "consistency_level",
-          "typeId": 34
+          "typeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b"
         },
         {
           "name": "payload",
@@ -973,10 +977,6 @@
       "typeParameters": [
         8
       ]
-    },
-    {
-      "type": "u8",
-      "metadataTypeId": 34
     }
   ],
   "functions": [
@@ -1542,6 +1542,22 @@
       "logId": "15458268789670052309",
       "concreteTypeId": "d686cd9012ca81d56b62946d7a0bbec125a19237443e81495493c08426a76b1b"
     },
+    {
+      "logId": "14832741149864513620",
+      "concreteTypeId": "cdd87b7d12fe505416570c294c884bca819364863efe3bf539245fa18515fbbb"
+    },
+    {
+      "logId": "1515152261580153489",
+      "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0"
+    },
+    {
+      "logId": "14454674236531057292",
+      "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b"
+    },
+    {
+      "logId": "10098701174489624218",
+      "concreteTypeId": "8c25cb3686462e9a86d2883c5688a22fe738b0bbc85f458d2d2b5f3f667c6d5a"
+    },
     {
       "logId": "15522444483018429170",
       "concreteTypeId": "d76acd04100912f23d6d0798c810021f2332efc785fe432091a7f873140fb097"
@@ -1554,10 +1570,6 @@
       "logId": "13826841070488844162",
       "concreteTypeId": "bfe2ceb22444f7821c75d478fb595c4642cbf8970f8ec8960637a7c9aa6690c2"
     },
-    {
-      "logId": "10098701174489624218",
-      "concreteTypeId": "8c25cb3686462e9a86d2883c5688a22fe738b0bbc85f458d2d2b5f3f667c6d5a"
-    },
     {
       "logId": "1142064842477676760",
       "concreteTypeId": "0fd96dec5e5828d8a3e64d70e2d2962b1b7f4d0a8f1d6c9e035ce65e7c97679b"
@@ -1596,7 +1608,7 @@
     {
       "name": "DEPLOYER",
       "concreteTypeId": "ab7cd04e05be58e3fc15d424c2c4a57f824a2a2d97d67252440a3925ebdc1335",
-      "offset": 105536,
+      "offset": 106784,
       "indirect": false
     }
   ],

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


+ 33 - 1
target_chains/fuel/contracts/pyth-interface/src/data_structures/wormhole_light.sw

@@ -112,25 +112,57 @@ impl GuardianSetUpgrade {
             StorageKey::<StorageVec<b256>>::new(ZERO_B256, 0, sha256(("guardian_set_keys", new_guardian_set_index))),
         );
         let mut i: u8 = 0;
+        log(encoded_upgrade);
+        log(encoded_upgrade.len());
+        log(guardian_length);
         while i < guardian_length {
             let (_, slice) = encoded_upgrade.split_at(index);
+            
+            log(index);
+            log(slice);
+            
             let (key, _) = slice.split_at(20);
-            let key: b256 = b256::from_be_bytes(key.clone());
+
+            log(key);
+
+            revert(0u64);
+            let mut full_address_key = Bytes::with_capacity(32);
+
+
+            let mut i = 0;
+            while i < 12 {
+                full_address_key.push(0u8);
+                i += 1;
+            }
+
+            // Append the 20-byte data
+            full_address_key.append(key);
+
+            // log(full_address_key.clone());
+
+            let key: b256 = b256::from_be_bytes(full_address_key.clone());
+
+            
             new_guardian_set.keys.push(key.rsh(96));
             index += 20;
             i += 1;
         }
+
+        log("finished key extraction");
+
         require(
             new_guardian_set
                 .keys
                 .len() == guardian_length.as_u64(),
             WormholeError::GuardianSetKeysLengthNotEqual,
         );
+        log("Guardian set keys length check passed");
         require(
             encoded_upgrade
                 .len()  == index,
             WormholeError::InvalidGuardianSetUpgradeLength,
         );
+        log("Guardian set upgrade length check passed");
         GuardianSetUpgrade::new(
             action,
             chain,

+ 4 - 4
target_chains/fuel/contracts/tests/utils/interface/wormhole_guardians.rs

@@ -59,11 +59,11 @@ pub(crate) async fn submit_new_guardian_set(
     contract: &PythOracleContract<WalletUnlocked>,
     encoded_vm: Bytes,
 ) -> CallResponse<()> {
-    contract
+    let result = contract
         .methods()
         .submit_new_guardian_set(encoded_vm)
         .call()
-        .await
-        .map_err(handle_error)
-        .unwrap()
+        .await;
+
+    result.map_err(handle_error).unwrap()
 }