2022-09-20 04:56:06 +03:00
|
|
|
#!/bin/bash
|
|
|
|
# First check that Leo is installed.
|
|
|
|
if ! command -v leo &> /dev/null
|
|
|
|
then
|
|
|
|
echo "leo is not installed."
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
|
|
|
# The private key and address of the first bidder.
|
|
|
|
# Swap these into program.json, when running transactions as the first bidder.
|
|
|
|
# "private_key": "APrivateKey1zkpG9Af9z5Ha4ejVyMCqVFXRKknSm8L1ELEwcc4htk9YhVK"
|
|
|
|
# "address": aleo1yzlta2q5h8t0fqe0v6dyh9mtv4aggd53fgzr068jvplqhvqsnvzq7pj2ke
|
|
|
|
|
|
|
|
# The private key and address of the second bidder.
|
|
|
|
# Swap these into program.json, when running transactions as the second bidder.
|
|
|
|
# "private_key": "APrivateKey1zkpAFshdsj2EqQzXh5zHceDapFWVCwR6wMCJFfkLYRKupug"
|
|
|
|
# "address": aleo1esqchvevwn7n5p84e735w4dtwt2hdtu4dpguwgwy94tsxm2p7qpqmlrta4
|
|
|
|
|
|
|
|
# The private key and address of the auctioneer.
|
|
|
|
# Swap these into program.json, when running transactions as the auctioneer.
|
|
|
|
# "private_key": "APrivateKey1zkp5wvamYgK3WCAdpBQxZqQX8XnuN2u11Y6QprZTriVwZVc",
|
|
|
|
# "address": "aleo1fxs9s0w97lmkwlcmgn0z3nuxufdee5yck9wqrs0umevp7qs0sg9q5xxxzh"
|
|
|
|
|
2022-09-22 01:59:33 +03:00
|
|
|
|
|
|
|
echo "
|
|
|
|
###############################################################################
|
|
|
|
######## ########
|
|
|
|
######## STEP 0: Initialize a new 2-party auction ########
|
|
|
|
######## ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## | OPEN | A | B | ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## | Bid | | | ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## ########
|
|
|
|
###############################################################################
|
|
|
|
"
|
2022-09-20 04:56:06 +03:00
|
|
|
# Swap in the private key and address of the first bidder to program.json.
|
|
|
|
echo "{
|
|
|
|
\"program\": \"auction.aleo\",
|
|
|
|
\"version\": \"0.0.0\",
|
|
|
|
\"description\": \"\",
|
|
|
|
\"development\": {
|
|
|
|
\"private_key\": \"APrivateKey1zkpG9Af9z5Ha4ejVyMCqVFXRKknSm8L1ELEwcc4htk9YhVK\",
|
|
|
|
\"address\": \"aleo1yzlta2q5h8t0fqe0v6dyh9mtv4aggd53fgzr068jvplqhvqsnvzq7pj2ke\"
|
|
|
|
},
|
|
|
|
\"license\": \"MIT\"
|
|
|
|
}" > program.json
|
|
|
|
|
|
|
|
# Have the first bidder place a bid of 10.
|
|
|
|
echo "
|
2022-09-22 01:59:33 +03:00
|
|
|
###############################################################################
|
|
|
|
######## ########
|
|
|
|
######## STEP 1: The first bidder places a bid of 10 ########
|
|
|
|
######## ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## | OPEN | A | B | ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## | Bid | 10 | | ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## ########
|
|
|
|
###############################################################################
|
|
|
|
"
|
2022-09-20 04:56:06 +03:00
|
|
|
leo run place_bid aleo1yzlta2q5h8t0fqe0v6dyh9mtv4aggd53fgzr068jvplqhvqsnvzq7pj2ke 10u64
|
|
|
|
|
|
|
|
# Swap in the private key and address of the second bidder to program.json.
|
|
|
|
echo "{
|
|
|
|
\"program\": \"auction.aleo\",
|
|
|
|
\"version\": \"0.0.0\",
|
|
|
|
\"description\": \"\",
|
|
|
|
\"development\": {
|
|
|
|
\"private_key\": \"APrivateKey1zkpAFshdsj2EqQzXh5zHceDapFWVCwR6wMCJFfkLYRKupug\",
|
|
|
|
\"address\": \"aleo1esqchvevwn7n5p84e735w4dtwt2hdtu4dpguwgwy94tsxm2p7qpqmlrta4\"
|
|
|
|
},
|
|
|
|
\"license\": \"MIT\"
|
|
|
|
}" > program.json
|
|
|
|
|
|
|
|
|
|
|
|
# Have the second bidder place a bid of 90.
|
|
|
|
echo "
|
2022-09-22 01:59:33 +03:00
|
|
|
###############################################################################
|
|
|
|
######## ########
|
|
|
|
######## STEP 2: The second bidder places a bid of 90 ########
|
|
|
|
######## ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## | OPEN | A | B | ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## | Bid | 10 | 90 | ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## ########
|
|
|
|
###############################################################################
|
|
|
|
"
|
2022-09-20 04:56:06 +03:00
|
|
|
leo run place_bid aleo1esqchvevwn7n5p84e735w4dtwt2hdtu4dpguwgwy94tsxm2p7qpqmlrta4 90u64
|
|
|
|
|
|
|
|
# Swap in the private key and address of the auctioneer to program.json.
|
|
|
|
echo "{
|
|
|
|
\"program\": \"auction.aleo\",
|
|
|
|
\"version\": \"0.0.0\",
|
|
|
|
\"description\": \"\",
|
|
|
|
\"development\": {
|
|
|
|
\"private_key\": \"APrivateKey1zkp5wvamYgK3WCAdpBQxZqQX8XnuN2u11Y6QprZTriVwZVc\",
|
|
|
|
\"address\": \"aleo1fxs9s0w97lmkwlcmgn0z3nuxufdee5yck9wqrs0umevp7qs0sg9q5xxxzh\"
|
|
|
|
},
|
|
|
|
\"license\": \"MIT\"
|
|
|
|
}" > program.json
|
|
|
|
|
|
|
|
# Have the auctioneer select the winning bid.
|
|
|
|
echo "
|
2022-09-22 01:59:33 +03:00
|
|
|
###############################################################################
|
|
|
|
######## ########
|
|
|
|
######## STEP 3: The auctioneer selects the winning bidder ########
|
|
|
|
######## ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## | OPEN | A | → B ← | ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## | Bid | 10 | → 90 ← | ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## ########
|
|
|
|
###############################################################################
|
|
|
|
"
|
2022-09-20 04:56:06 +03:00
|
|
|
leo run resolve "{
|
|
|
|
owner: aleo1fxs9s0w97lmkwlcmgn0z3nuxufdee5yck9wqrs0umevp7qs0sg9q5xxxzh.private,
|
|
|
|
gates: 0u64.private,
|
|
|
|
bidder: aleo1yzlta2q5h8t0fqe0v6dyh9mtv4aggd53fgzr068jvplqhvqsnvzq7pj2ke.private,
|
|
|
|
amount: 10u64.private,
|
|
|
|
is_winner: false.private,
|
|
|
|
_nonce: 4668394794828730542675887906815309351994017139223602571716627453741502624516group.public
|
|
|
|
}" "{
|
|
|
|
owner: aleo1fxs9s0w97lmkwlcmgn0z3nuxufdee5yck9wqrs0umevp7qs0sg9q5xxxzh.private,
|
|
|
|
gates: 0u64.private,
|
|
|
|
bidder: aleo1esqchvevwn7n5p84e735w4dtwt2hdtu4dpguwgwy94tsxm2p7qpqmlrta4.private,
|
|
|
|
amount: 90u64.private,
|
|
|
|
is_winner: false.private,
|
|
|
|
_nonce: 5952811863753971450641238938606857357746712138665944763541786901326522216736group.public
|
|
|
|
}"
|
|
|
|
|
|
|
|
# Have the auctioneer finish the auction.
|
|
|
|
echo "
|
2022-09-22 01:59:33 +03:00
|
|
|
###############################################################################
|
|
|
|
######## ########
|
|
|
|
######## STEP 3: The auctioneer completes the auction. ########
|
|
|
|
######## ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## | CLOSE | A | → B ← | ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## | Bid | 10 | → 90 ← | ########
|
|
|
|
######## ------------------------------- ########
|
|
|
|
######## ########
|
|
|
|
###############################################################################
|
|
|
|
"
|
2022-09-20 04:56:06 +03:00
|
|
|
leo run finish "{
|
|
|
|
owner: aleo1fxs9s0w97lmkwlcmgn0z3nuxufdee5yck9wqrs0umevp7qs0sg9q5xxxzh.private,
|
|
|
|
gates: 0u64.private,
|
|
|
|
bidder: aleo1esqchvevwn7n5p84e735w4dtwt2hdtu4dpguwgwy94tsxm2p7qpqmlrta4.private,
|
|
|
|
amount: 90u64.private,
|
|
|
|
is_winner: false.private,
|
|
|
|
_nonce: 5952811863753971450641238938606857357746712138665944763541786901326522216736group.public
|
|
|
|
}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|