From 10b140bf91c5bb09225ff616983260998918635b Mon Sep 17 00:00:00 2001 From: ada Date: Fri, 23 Oct 2020 19:01:50 +0200 Subject: [PATCH] upgrading jubjub to mal language --- lisp/jubjub.lisp | 91 ++++++++++++++++++++++++------------------------ 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/lisp/jubjub.lisp b/lisp/jubjub.lisp index 65e55e056..4058a193b 100644 --- a/lisp/jubjub.lisp +++ b/lisp/jubjub.lisp @@ -1,46 +1,47 @@ - (def C_D (const "0x2a9318e74bfa2b48f5fd9207e6bd7fd4292d7f6d37579d2601065fd6d6343eb1")) - (def C_ONE (const "0x0000000000000000000000000000000000000000000000000000000000000001")) - (def jjadd (fn x1 y1 x2 y2) ( - (def U (mul (add (x1 y1)) (add (x2 y2)))) - (enforce - (add_lc0 (x1 y1)) - (add_lc1 (x2 y2)) - (add_lc2 U)) - (def A (mul (x2 x1))) - (def B (mul (x2 y1))) - (def C (mul (C_ONE A))) - (enforce - (add_coeff_lc0 (C_D A)) - (add_lc1 B) - (add_lc2 C)) - (def Px - (div (add A B) - (add C_ONE C))) - (enforce - (add_one_lc0) - (sub_lc0 C) - (add_lc1 Px) - (add_lc2 (A B))) - - (def Py - (div (sub U A B) - (sub C_ONE C))) - (enforce - (add_one_lc0) - (sub_lc0 C) - (add_lc1 Py) - (add_lc2 (U A B))) - (Px Py) - ) - (def input_spend (contract x1 y1 x2 y2) ( - (def P (jjadd (x1 y1 x2 y2))) - (enforce - (add_lc0 Px) - (add_lc1_one) - (add_lc2 Px)) - (enforce - (add_lc0 Py) - (add_lc1_one) - (add_lc2 Py)) - ) + (def! D "0x2a9318e74bfa2b48f5fd9207e6bd7fd4292d7f6d37579d2601065fd6d6343eb1") + (def! ONE "0x0000000000000000000000000000000000000000000000000000000000000001") + (def! jj-add (fn* [x1 y1 x2 y2] (println x1 y1 x2 y2 D ONE))) + (jj-add 1 2 3 4) +;; (def! U (mul (add (x1 y1)) (add (x2 y2)))) +;; (enforce +;; (add_lc0 (x1 y1)) +;; (add_lc1 (x2 y2)) +;; (add_lc2 U)) +;; (def A (mul (x2 x1))) +;; (def B (mul (x2 y1))) +;; (def C (mul (C_ONE A))) +;; (enforce +;; (add_coeff_lc0 (C_D A)) +;; (add_lc1 B) +;; (add_lc2 C)) +;; (def Px +;; (div (add A B) +;; (add C_ONE C))) +;; (enforce +;; (add_one_lc0) +;; (sub_lc0 C) +;; (add_lc1 Px) +;; (add_lc2 (A B))) +;; +;; (def Py +;; (div (sub U A B) +;; (sub C_ONE C))) +;; (enforce +;; (add_one_lc0) +;; (sub_lc0 C) +;; (add_lc1 Py) +;; (add_lc2 (U A B))) +;; (Px Py) +;; ) +;; (def input_spend (contract x1 y1 x2 y2) ( +;; (def P (jjadd (x1 y1 x2 y2))) +;; (enforce +;; (add_lc0 Px) +;; (add_lc1_one) +;; (add_lc2 Px)) +;; (enforce +;; (add_lc0 Py) +;; (add_lc1_one) +;; (add_lc2 Py)) +;; )