lib.rs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. use darkfi_sdk::{
  2. crypto::ContractId,
  3. db::{db_get, db_init, db_lookup, db_set},
  4. define_contract,
  5. error::ContractResult,
  6. msg,
  7. pasta::pallas,
  8. tx::FuncCall,
  9. util::{set_return_data, put_object_bytes, get_object_bytes, get_object_size},
  10. };
  11. use darkfi_serial::{deserialize, serialize, Encodable, SerialDecodable, SerialEncodable, WriteExt, ReadExt};
  12. #[repr(u8)]
  13. pub enum DaoFunction {
  14. Foo = 0x00,
  15. }
  16. fn foo() {
  17. println!("foo");
  18. }
  19. define_contract!(
  20. init: init_contract,
  21. exec: process_instruction,
  22. apply: process_update,
  23. metadata: get_metadata
  24. );
  25. fn init_contract(cid: ContractId, _ix: &[u8]) -> ContractResult {
  26. Ok(())
  27. }
  28. fn get_metadata(_cid: ContractId, ix: &[u8]) -> ContractResult {
  29. let zk_public_values = vec![
  30. (
  31. "DaoProposeInput".to_string(),
  32. vec![pallas::Base::from(110), pallas::Base::from(4)],
  33. ),
  34. ("DaoProposeInput".to_string(), vec![pallas::Base::from(7), pallas::Base::from(4)]),
  35. (
  36. "DaoProposeMain".to_string(),
  37. vec![
  38. pallas::Base::from(1),
  39. pallas::Base::from(3),
  40. pallas::Base::from(5),
  41. pallas::Base::from(7),
  42. ],
  43. ),
  44. ];
  45. let signature_public_keys: Vec<pallas::Point> = vec![
  46. //pallas::Point::identity()
  47. ];
  48. let mut metadata = Vec::new();
  49. zk_public_values.encode(&mut metadata)?;
  50. signature_public_keys.encode(&mut metadata)?;
  51. set_return_data(&metadata)?;
  52. Ok(())
  53. }
  54. fn process_instruction(cid: ContractId, ix: &[u8]) -> ContractResult {
  55. Ok(())
  56. }
  57. fn process_update(_cid: ContractId, update_data: &[u8]) -> ContractResult {
  58. Ok(())
  59. }