mod.rs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #![allow(unused)]
  2. pub mod state;
  3. pub mod transfer;
  4. /*
  5. money-contract/
  6. state.apply()
  7. transfer/
  8. Builder
  9. Partial *
  10. FuncCall
  11. /////////////////////////////////////////////////
  12. let token_id = pallas::Base::random(&mut OsRng);
  13. let builder = TransactionBuilder {
  14. clear_inputs: vec![TransactionBuilderClearInputInfo {
  15. value: 110,
  16. token_id,
  17. signature_secret: cashier_signature_secret,
  18. }],
  19. inputs: vec![],
  20. outputs: vec![TransactionBuilderOutputInfo {
  21. value: 110,
  22. token_id,
  23. public: keypair.public,
  24. }],
  25. };
  26. let start = Instant::now();
  27. let mint_pk = ProvingKey::build(11, &MintContract::default());
  28. debug!("Mint PK: [{:?}]", start.elapsed());
  29. let start = Instant::now();
  30. let burn_pk = ProvingKey::build(11, &BurnContract::default());
  31. debug!("Burn PK: [{:?}]", start.elapsed());
  32. let tx = builder.build(&mint_pk, &burn_pk)?;
  33. tx.verify(&money_state.mint_vk, &money_state.burn_vk)?;
  34. let _note = tx.outputs[0].enc_note.decrypt(&keypair.secret)?;
  35. let update = state_transition(&money_state, tx)?;
  36. money_state.apply(update);
  37. // Now spend
  38. let owncoin = &money_state.own_coins[0];
  39. let note = &owncoin.note;
  40. let leaf_position = owncoin.leaf_position;
  41. let root = money_state.tree.root(0).unwrap();
  42. let merkle_path = money_state.tree.authentication_path(leaf_position, &root).unwrap();
  43. let builder = TransactionBuilder {
  44. clear_inputs: vec![],
  45. inputs: vec![TransactionBuilderInputInfo {
  46. leaf_position,
  47. merkle_path,
  48. secret: keypair.secret,
  49. note: note.clone(),
  50. }],
  51. outputs: vec![TransactionBuilderOutputInfo {
  52. value: 110,
  53. token_id,
  54. public: keypair.public,
  55. }],
  56. };
  57. let tx = builder.build(&mint_pk, &burn_pk)?;
  58. let update = state_transition(&money_state, tx)?;
  59. money_state.apply(update);
  60. */