diff --git a/nohup.out b/nohup.out new file mode 100644 index 00000000..65cdbce9 --- /dev/null +++ b/nohup.out @@ -0,0 +1,14 @@ +ℹ️ cluster id is 9e68173f-9c23-4acc-ba81-4f079b639964 +ℹ️ using 256 bit prime +ℹ️ storing state in /tmp/.tmpB8yOrG (79.99Gbs available) +🏃 starting nilchain node in: /tmp/.tmpB8yOrG/nillion-chain +⛓ nilchain JSON RPC available at http://127.0.0.1:48102 +⛓ nilchain REST API available at http://localhost:26650 +⛓ nilchain gRPC available at localhost:26649 +🏃 starting node 12D3KooWMvw1hEqm7EWSDEyqTb6pNetUVkepahKY6hixuAuMZfJS +⏳ waiting until bootnode is up... +🏃 starting node 12D3KooWAiwGZUwSUaT2bYVxGS8jmfMrfsanZYkHwH3uL7WJPsFq +🏃 starting node 12D3KooWM3hsAswc7ZT6VpwQ1TCZU4GCYY55nLhcsxCcfjuixW57 +👛 funding nilchain keys +📝 nillion CLI configuration written to /root/.config/nillion/nillion-cli.yaml +🌄 environment file written to /root/.config/nillion/nillion-devnet.env diff --git a/quickstart/client_code/run_my_first_program.py b/quickstart/client_code/run_my_first_program.py index e69de29b..016f31be 100644 --- a/quickstart/client_code/run_my_first_program.py +++ b/quickstart/client_code/run_my_first_program.py @@ -0,0 +1,45 @@ +from nada_dsl import * + +def nada_main(): + # Define the parties for the users + user_1 = Party(name="User 1 🚉") + user_2 = Party(name="User 2 🚉") + + # Define secret inputs for the initial seats, booking requests, and cancellation requests + initial_seats = SecretInteger(Input(name="initial_seats", party=user_1)) # Total seats available + book_seats_user_1 = SecretInteger(Input(name="book_seats_user_1", party=user_1)) + cancel_seats_user_1 = SecretInteger(Input(name="cancel_seats_user_1", party=user_1)) + book_seats_user_2 = SecretInteger(Input(name="book_seats_user_2", party=user_2)) + cancel_seats_user_2 = SecretInteger(Input(name="cancel_seats_user_2", party=user_2)) + + # Calculate the new seat allocation after booking requests + seats_after_booking_user_1 = (initial_seats >= book_seats_user_1).if_else( + initial_seats - book_seats_user_1, + initial_seats + ) + + seats_after_booking_user_2 = (seats_after_booking_user_1 >= book_seats_user_2).if_else( + seats_after_booking_user_1 - book_seats_user_2, + seats_after_booking_user_1 + ) + + # Calculate the new seat allocation after cancellation requests + seats_after_cancellation_user_1 = seats_after_booking_user_2 + cancel_seats_user_1 + seats_after_cancellation_user_2 = seats_after_cancellation_user_1 + cancel_seats_user_2 + + # Output the final seat allocation + final_seats = Output(seats_after_cancellation_user_2, "final_seats", user_1) + + # Output individual bookings and cancellations + booked_seats_user_1 = Output(book_seats_user_1, "booked_seats_user_1", user_1) + cancelled_seats_user_1 = Output(cancel_seats_user_1, "cancelled_seats_user_1", user_1) + booked_seats_user_2 = Output(book_seats_user_2, "booked_seats_user_2", user_2) + cancelled_seats_user_2 = Output(cancel_seats_user_2, "cancelled_seats_user_2", user_2) + + return [ + final_seats, + booked_seats_user_1, + cancelled_seats_user_1, + booked_seats_user_2, + cancelled_seats_user_2 + ] \ No newline at end of file diff --git a/quickstart/nada_quickstart_programs/nada-project.toml b/quickstart/nada_quickstart_programs/nada-project.toml new file mode 100644 index 00000000..da166dde --- /dev/null +++ b/quickstart/nada_quickstart_programs/nada-project.toml @@ -0,0 +1,7 @@ +name = "nada_quickstart_programs" +version = "0.1.0" +authors = [""] + +[[programs]] +path = "src/main.py" +prime_size = 128 diff --git a/quickstart/nada_quickstart_programs/src/main.py b/quickstart/nada_quickstart_programs/src/main.py new file mode 100644 index 00000000..e1a8f1bf --- /dev/null +++ b/quickstart/nada_quickstart_programs/src/main.py @@ -0,0 +1,45 @@ +from nada_dsl import * + +def nada_main(): + # Define the parties for the users + user_1 = Party(name="User 1 🚉") + user_2 = Party(name="User 2 🚉") + + # Define secret inputs for the initial seats, booking requests, and cancellation requests + initial_seats = SecretInteger(Input(name="initial_seats", party=user_1)) # Total seats available + book_seats_user_1 = SecretInteger(Input(name="book_seats_user_1", party=user_1)) + cancel_seats_user_1 = SecretInteger(Input(name="cancel_seats_user_1", party=user_1)) + book_seats_user_2 = SecretInteger(Input(name="book_seats_user_2", party=user_2)) + cancel_seats_user_2 = SecretInteger(Input(name="cancel_seats_user_2", party=user_2)) + + # Calculate the new seat allocation after booking requests + seats_after_booking_user_1 = (initial_seats >= book_seats_user_1).if_else( + initial_seats - book_seats_user_1, + initial_seats + ) + + seats_after_booking_user_2 = (seats_after_booking_user_1 >= book_seats_user_2).if_else( + seats_after_booking_user_1 - book_seats_user_2, + seats_after_booking_user_1 + ) + + # Calculate the new seat allocation after cancellation requests + seats_after_cancellation_user_1 = seats_after_booking_user_2 + cancel_seats_user_1 + seats_after_cancellation_user_2 = seats_after_cancellation_user_1 + cancel_seats_user_2 + + # Output the final seat allocation + final_seats = Output(seats_after_cancellation_user_2, "final_seats", user_1) + + # Output individual bookings and cancellations + booked_seats_user_1 = Output(book_seats_user_1, "booked_seats_user_1", user_1) + cancelled_seats_user_1 = Output(cancel_seats_user_1, "cancelled_seats_user_1", user_1) + booked_seats_user_2 = Output(book_seats_user_2, "booked_seats_user_2", user_2) + cancelled_seats_user_2 = Output(cancel_seats_user_2, "cancelled_seats_user_2", user_2) + + return [ + final_seats, + booked_seats_user_1, + cancelled_seats_user_1, + booked_seats_user_2, + cancelled_seats_user_2 + ] \ No newline at end of file diff --git a/quickstart/nada_quickstart_programs/target/main.nada.bin b/quickstart/nada_quickstart_programs/target/main.nada.bin new file mode 100644 index 00000000..a8cf3ff4 Binary files /dev/null and b/quickstart/nada_quickstart_programs/target/main.nada.bin differ diff --git a/quickstart_complete/nada_quickstart_programs/target/secret_addition_complete.nada.bin b/quickstart_complete/nada_quickstart_programs/target/secret_addition_complete.nada.bin index 4351b211..fd3571bb 100644 Binary files a/quickstart_complete/nada_quickstart_programs/target/secret_addition_complete.nada.bin and b/quickstart_complete/nada_quickstart_programs/target/secret_addition_complete.nada.bin differ