Sfoglia il codice sorgente

contract/dao/entrypoint/auth_xfer: check encrypted attributes length matches transfer params outputs one

skoupidi 2 mesi fa
parent
commit
3e25bb1778
1 ha cambiato i file con 5 aggiunte e 0 eliminazioni
  1. 5 0
      src/contract/dao/src/entrypoint/auth_xfer.rs

+ 5 - 0
src/contract/dao/src/entrypoint/auth_xfer.rs

@@ -76,6 +76,11 @@ pub(crate) fn dao_authxfer_get_metadata(
         return Err(MoneyError::TransferMissingOutputs.into())
     }
 
+    if xfer_params.outputs.len() != self_params.enc_attrs.len() {
+        msg!("[Dao::AuthXfer] Error: Transfer outputs missmatch with encrypted attributes");
+        return Err(DaoError::AuthXferWrongNumberOutputs.into())
+    }
+
     let mut zk_public_inputs: Vec<(String, Vec<pallas::Base>)> = vec![];
     let signature_pubkeys: Vec<PublicKey> = vec![];