1+ #! /usr/bin/env bash
2+
13# # Load env
24source .env
35
@@ -16,23 +18,32 @@ NETWORK=$(echo $NETWORK | tr '[:upper:]' '[:lower:]')
1618UPPER_NETWORK=$( echo $NETWORK | tr ' [:lower:]' ' [:upper:]' )
1719
1820# Get the diamond address for the network (stored at ./deployments/<network>.json)
19- DIAMOND=$( jq -r ' .LiFiDiamond' ./deployments/$NETWORK .staging.json)
21+ DEPLOY_FILE=" ./deployments/${NETWORK} .staging.json"
22+ test -f " $DEPLOY_FILE " || { echo " Missing $DEPLOY_FILE " ; exit 1; }
23+ DIAMOND=$( jq -r ' .LiFiDiamond' " $DEPLOY_FILE " )
2024echo " Using LiFi Diamond at $DIAMOND "
2125
2226# Get the RPC_URL for the network ($ETH_NODE_URI_<NETWORK>)
23- RPC_URL=$( eval echo \$ ETH_NODE_URI_$UPPER_NETWORK )
27+ RPC_ENV=" ETH_NODE_URI_${UPPER_NETWORK} "
28+ RPC_URL=$( eval " echo \$ {$RPC_ENV :-}" )
29+ [ -n " $RPC_URL " ] || { echo " Missing $RPC_ENV " ; exit 1; }
2430
2531# Get from network id.
26- FROM_NETWORK_ID=$( cast chain-id --rpc-url $RPC_URL )
32+ FROM_NETWORK_ID=$( cast chain-id --rpc-url " $RPC_URL " )
2733
2834# Convert to_networks to array of ids.
2935TO_NETWORKS_IDS=()
3036for NET in $( echo $TO_NETWORKS | tr -d ' []"' | tr ' ,' ' \n' ) ;
3137do
32- NET_ID=$( cast chain-id --rpc-url $( eval echo \$ ETH_NODE_URI_$( echo $NET | tr ' [:lower:]' ' [:upper:]' ) ) )
33- TO_NETWORKS_IDS+=($NET_ID )
38+ UPPER_NET=$( echo " $NET " | tr ' [:lower:]' ' [:upper:]' )
39+ NET_RPC_ENV=" ETH_NODE_URI_${UPPER_NET} "
40+ NET_RPC=$( eval " echo \$ {$NET_RPC_ENV :-}" )
41+ [ -n " $NET_RPC " ] || { echo " Missing $NET_RPC_ENV " ; exit 1; }
42+ NET_ID=$( cast chain-id --rpc-url " $NET_RPC " )
43+ TO_NETWORKS_IDS+=(" $NET_ID " )
3444done
3545
46+ [[ -n " ${PRIVATE_KEY:- } " ]] || { echo " Missing PRIVATE_KEY in env" >&2 ; exit 1; }
3647# Compute the user's address
3748USER_ADDRESS=$( cast wallet address $PRIVATE_KEY )
3849
@@ -49,11 +60,12 @@ USER_BALANCE=$(cast balance $USER_ADDRESS --rpc-url $RPC_URL)
4960USER_BALANCE=$(( USER_BALANCE / 10 ))
5061
5162# Compute the amount we want to use, 10000000000000000 or user balance / 10 whatever is smallest.
52- OP_AMOUNT=10000000000000000
63+ OP_AMOUNT=100000000000000000
5364if [ " $USER_BALANCE " -lt " $OP_AMOUNT " ]; then
5465 OP_AMOUNT=$USER_BALANCE
5566fi
5667echo " Operating Amount: $OP_AMOUNT "
68+ [ " $OP_AMOUNT " -gt 0 ] || { echo " OP_AMOUNT computed as 0" ; exit 1; }
5769
5870# Collect quotes from Pioneer
5971# Initialize an empty array to hold responses
7385 TO_ADDRESS=" $USER_ADDRESS "
7486 # Divide the OP_AMOUNT by number of operations
7587 FROM_AMOUNT=$(( $OP_AMOUNT / $NUM_TRANSACTIONS ))
88+ [ " $FROM_AMOUNT " -gt 0 ] || { echo " Per-tx FROM_AMOUNT computed as 0" >&2 ; exit 1; }
7689 SLIPPAGE=" 0"
7790 EXTERNAL_ID=" $TRANSACTION_ID "
7891
90103 # Fetch quote from Pioneer
91104 RESPONSE=$( curl -s -G " $PIONEER_ENDPOINT /quote?$QUERY_STRING " -H " Content-Type: application/json" )
92105
106+ echo " $PIONEER_ENDPOINT /quote?$QUERY_STRING "
107+ echo " Response: $RESPONSE "
108+
93109 # # Check if the response is valid
94110 if [ -z " $RESPONSE " ] || echo " $RESPONSE " | grep -q ' "error"' ; then
95111 echo " Quote request failed: $RESPONSE "
98114
99115 # Extract necessary fields from the response
100116 TO_CHAIN_ID=$( echo " $RESPONSE " | jq -r ' .toChainId' )
101- TO_AMOUNT_MIN=$( echo " $RESPONSE " | jq -r ' .toAmountMin' )
102117
103- RESPONSES+=(" $( echo " $TRANSACTION_ID , $TOKEN , $USER_ADDRESS , $OP_AMOUNT , $TO_AMOUNT_MIN , $TO_CHAIN_ID " ) " )
118+ RESPONSES+=(" $( echo " $TRANSACTION_ID , $TOKEN , $USER_ADDRESS , $FROM_AMOUNT , $TO_CHAIN_ID " ) " )
104119done
105120
106121echo " All quote responses collected."
@@ -111,4 +126,4 @@ FLATTENED_RESPONSES=$(printf "(%s)," "${RESPONSES[@]}")
111126FLATTENED_RESPONSES=" [${FLATTENED_RESPONSES% ,} ]"
112127
113128# Execute transactions:
114- forge script PioneerQA --sig " run(address,address,(bytes32,address,address,uint256,uint256,uint256 )[])" " $DIAMOND " " $USER_ADDRESS " " $FLATTENED_RESPONSES " --private-key $PRIVATE_KEY --rpc-url $RPC_URL --broadcast -vvvv
129+ forge script PioneerQA --sig " run(address,address,(bytes32,address,address,uint256,uint256)[])" " $DIAMOND " " $USER_ADDRESS " " $FLATTENED_RESPONSES " --private-key " $PRIVATE_KEY " --rpc-url " $RPC_URL " --broadcast -vvvv
0 commit comments