#!/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" echo " ############################################################################### ######## ######## ######## STEP 0: Initialize a new 2-party auction ######## ######## ######## ######## ------------------------------- ######## ######## | OPEN | A | B | ######## ######## ------------------------------- ######## ######## | Bid | | | ######## ######## ------------------------------- ######## ######## ######## ############################################################################### " # 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 " ############################################################################### ######## ######## ######## STEP 1: The first bidder places a bid of 10 ######## ######## ######## ######## ------------------------------- ######## ######## | OPEN | A | B | ######## ######## ------------------------------- ######## ######## | Bid | 10 | | ######## ######## ------------------------------- ######## ######## ######## ############################################################################### " 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 " ############################################################################### ######## ######## ######## STEP 2: The second bidder places a bid of 90 ######## ######## ######## ######## ------------------------------- ######## ######## | OPEN | A | B | ######## ######## ------------------------------- ######## ######## | Bid | 10 | 90 | ######## ######## ------------------------------- ######## ######## ######## ############################################################################### " 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 " ############################################################################### ######## ######## ######## STEP 3: The auctioneer selects the winning bidder ######## ######## ######## ######## ------------------------------- ######## ######## | OPEN | A | → B ← | ######## ######## ------------------------------- ######## ######## | Bid | 10 | → 90 ← | ######## ######## ------------------------------- ######## ######## ######## ############################################################################### " 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 " ############################################################################### ######## ######## ######## STEP 3: The auctioneer completes the auction. ######## ######## ######## ######## ------------------------------- ######## ######## | CLOSE | A | → B ← | ######## ######## ------------------------------- ######## ######## | Bid | 10 | → 90 ← | ######## ######## ------------------------------- ######## ######## ######## ############################################################################### " leo run finish "{ owner: aleo1fxs9s0w97lmkwlcmgn0z3nuxufdee5yck9wqrs0umevp7qs0sg9q5xxxzh.private, gates: 0u64.private, bidder: aleo1esqchvevwn7n5p84e735w4dtwt2hdtu4dpguwgwy94tsxm2p7qpqmlrta4.private, amount: 90u64.private, is_winner: false.private, _nonce: 5952811863753971450641238938606857357746712138665944763541786901326522216736group.public }"