#!/bin/bash # Tests the core auction flow (without specifying verified providers) # import utilities HERE=$(cd $(dirname $BASH_SOURCE) && pwd) source $HERE/testutil.sh colineard tx colinearcore unlock-all-funds -y --from alice \ | swallow "Unlock all funds before proceeding" colineard tx colinearcore new-auction asdf asdf 2000 uusdc $(now + 3500) \ -y --from bob \ | expect_fail "Can't create auction below min lease period" colineard tx colinearcore new-auction asdf asdf 2000 uusdc $(now + 8200000) \ -y --from bob \ | expect_fail "Can't create auction above max lease period" before=$(get_balance $BOB uusdc) colineard tx colinearcore new-auction asdf asdf 2000 uusdc $(now + 3700) \ -y --from bob \ | expect_success "New auction is created" get_balance $BOB uusdc | expect_change -2000 $before "Change in Bob's balance" colineard tx colinearcore new-bid $(get_last_auction_index) 1900 \ -y --from alice \ | expect_fail "Can't bid without locking CLR" colineard tx colinearcore lock-funds 550000000 -y --from alice \ | expect_success "Can lock above the maximum (550 CLR)" colineard tx colinearcore lock-funds 500000000 -y --from alice \ | expect_success "Lock funds before bidding" colineard tx colinearcore new-bid $(get_last_auction_index) 2000 \ -y --from alice \ | expect_success "New bid is correctly created" colineard tx colinearcore new-bid $(get_last_auction_index) 1900 \ -y --from alice \ | expect_success "Can bid below price ceiling" colineard tx colinearcore new-bid $(get_last_auction_index) 1900 \ -y --from alice \ | expect_fail "Can't create duplicate bids" colineard tx colinearcore new-bid $(get_next_auction_index) 1800 \ -y --from alice \ | expect_fail "Can't create bids for nonexistent auctions" colineard tx colinearcore new-bid $(get_last_auction_index) 6000 \ -y --from alice \ | expect_fail "Can't bid over price ceiling" colineard tx colinearcore new-bid $(get_last_auction_index) 0 \ -y --from alice \ | expect_fail "Can't bid 0 tokens" colineard q colinearcore auction-bids $(get_last_auction_index) \ | jq -M ".bids | length" \ | assert_eq 2 "Number of auction bids" before=$(get_balance $BOB uusdc) # Was experiencing issues with bob's balance not updating, probably # because we weren't waiting long enough; block times are not *exactly* 1s in testing, maybe? wait=12 log_info "Waiting $wait s until auction expires..." sleep $wait colineard tx colinearcore new-bid $(get_last_auction_index) 1500 \ -y --from alice \ | expect_fail "Can't add bids after auction expiry" colineard q colinearcore show-auction $(get_last_auction_index) \ | jq -rM ".auction.best.amount" \ | assert_eq 1900 "Finalized top bid amount" colineard q colinearcore show-auction $(get_last_auction_index) \ | jq -rM ".auction.remaining" \ | assert_eq 1900 "Remaining vested amount" get_balance $BOB uusdc | expect_change 100 $before "Change in Bob's balance (from paid remainder)" # --- Test vesting payout after some wait time --- before=$(get_balance $ALICE uusdc) wait=5 log_info "Waiting $wait s for vested funds to accumulate..." sleep $wait colineard tx colinearcore claim-funds $(get_last_auction_index) \ -y --from alice \ | expect_success "Top bidder can claim vested funds" get_balance $ALICE uusdc \ | expect_increase $before "Alice's balance"