Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

my new nada program - Railway Ticket Booking system #53

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions nohup.out
Original file line number Diff line number Diff line change
@@ -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
45 changes: 45 additions & 0 deletions quickstart/client_code/run_my_first_program.py
Original file line number Diff line number Diff line change
@@ -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
]
7 changes: 7 additions & 0 deletions quickstart/nada_quickstart_programs/nada-project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name = "nada_quickstart_programs"
version = "0.1.0"
authors = [""]

[[programs]]
path = "src/main.py"
prime_size = 128
45 changes: 45 additions & 0 deletions quickstart/nada_quickstart_programs/src/main.py
Original file line number Diff line number Diff line change
@@ -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
]
Binary file not shown.
Binary file not shown.