Hi, I’m trying to write a smart contract for tallying encrypted votes (inspired by https://blog.enigma.co/private-voting-for-tcrs-with-enigma-b441b5d4fa7b), where I want to pass a bytes32[] of encrypted votes as the input argument. However, I can’t figure out whether the current Enigma contract supports this; compute() only provides a bytes field callableArgs, which the doc says is “encrypted a priori”, but provides no further details as to how it’s formatted. Does it mean that I should tightly-pack arguments in plaintext first and then encrypt, or does it mean I can encrypt each argument (and each item in arrays) individually and pack the ciphertext together? I would appreciate some clarification.
I looked at the CoinMixer contract, which does something similar to what I want to do (pass array of encrypted data), but it literally just passes an empty bytes var to compute() LMAO. It would be great if the devs can provide some contract examples that are not dummies, now that the testnet is out.