Explorar o código

dao2: reduce apply code using prev commit

x %!s(int64=3) %!d(string=hai) anos
pai
achega
8d69ed2ac8
Modificáronse 1 ficheiros con 8 adicións e 15 borrados
  1. 8 15
      example/dao2/src/main.rs

+ 8 - 15
example/dao2/src/main.rs

@@ -138,21 +138,14 @@ fn validate(
     // Now we finished verification stage, just apply all changes
     assert_eq!(tx.calls.len(), updates.len());
     for (call, update) in tx.calls.iter().zip(updates.iter()) {
-        match call.contract_id {
-            dao_contract_id => {
-                debug!(target: "demo", "DAO::apply() contract called");
-                let mut runtime =
-                    Runtime::new(&dao_wasm_bytes, blockchain.clone(), dao_contract_id)?;
-                runtime.apply(&update)?;
-            }
-            money_contract_id => {
-                debug!(target: "demo", "Money::apply() contract called");
-                let mut runtime =
-                    Runtime::new(&money_wasm_bytes, blockchain.clone(), money_contract_id)?;
-                runtime.apply(&update)?;
-            }
-            _ => {}
-        }
+        // Lookup the wasm bytes
+        let (_, contract_name, wasm_bytes) =
+            wasm_bytes_lookup.iter().find(|(id, _name, _bytes)| *id == call.contract_id).unwrap();
+        debug!(target: "demo", "{}::apply() contract called", contract_name);
+
+        let mut runtime = Runtime::new(wasm_bytes, blockchain.clone(), call.contract_id)?;
+
+        runtime.apply(&update)?;
     }
 
     Ok(())