Skip to content

Commit

Permalink
Deployment script: Big cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
ueco-jb committed Jul 1, 2024
1 parent 14d4301 commit 5d0e4fd
Showing 1 changed file with 114 additions and 214 deletions.
328 changes: 114 additions & 214 deletions scripts/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,9 @@ PAIR_ADDR=$(soroban contract invoke \

echo "Pair contract initialized."

echo "Mint both tokens to the admin and provide liquidity..."
echo "Mint PHO token to the admin and provide liquidity..."
soroban contract invoke \
--id $TOKEN_ID2 \
--id $TOKEN_ADDR2 \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
Expand Down Expand Up @@ -183,216 +183,116 @@ soroban contract invoke \
echo "Tokens bonded."

echo "#############################"
#
#
# echo "Deploy the soroban_token_contract and capture its contract ID hash..."
#
# TOKEN_ADDR2=$(soroban contract deploy \
# --wasm soroban_token_contract.optimized.wasm \
# --source $IDENTITY_STRING \
# --network $NETWORK)
#
# echo "Tokens and factory deployed."
#
# # Sort the token addresses alphabetically
# if [[ "$TOKEN_ADDR1" < "$TOKEN_ADDR2" ]]; then
# TOKEN_ID1=$TOKEN_ADDR1
# TOKEN_ID2=$TOKEN_ADDR2
# else
# TOKEN_ID1=$TOKEN_ADDR2
# TOKEN_ID2=$TOKEN_ADDR1
# fi
#
# echo "Initialize the token contracts..."
#
# soroban contract invoke \
# --id $TOKEN_ADDR2 \
# --source $IDENTITY_STRING \
# --network $NETWORK \
# -- \
# initialize \
# --admin $ADMIN_ADDRESS \
# --decimal 7 \
# --name Eurocoin \
# --symbol EURC
#
# echo "Tokens initialized."
#
# echo "Install the soroban_token, phoenix_pool and phoenix_stake contracts..."
#
# TOKEN_WASM_HASH=$(soroban contract install \
# --wasm soroban_token_contract.optimized.wasm \
# --source $IDENTITY_STRING \
# --network $NETWORK)
#
# # Continue with the rest of the deployments
# PAIR_WASM_HASH=$(soroban contract install \
# --wasm phoenix_pool.optimized.wasm \
# --source $IDENTITY_STRING \
# --network $NETWORK)
#
# STAKE_WASM_HASH=$(soroban contract install \
# --wasm phoenix_stake.optimized.wasm \
# --source $IDENTITY_STRING \
# --network $NETWORK)
#
# echo "Token, pair and stake contracts deployed."
#
#
# echo "Initialize pair using the previously fetched hashes through factory..."
#
# soroban contract invoke \
# --id $FACTORY_ADDR \
# --source $IDENTITY_STRING \
# --network $NETWORK \
# -- \
# create_liquidity_pool \
# --sender $ADMIN_ADDRESS \
# --lp_init_info "{ \"admin\": \"${ADMIN_ADDRESS}\", \"share_token_decimals\": 7, \"swap_fee_bps\": 1000, \"fee_recipient\": \"${ADMIN_ADDRESS}\", \"max_allowed_slippage_bps\": 10000, \"max_allowed_spread_bps\": 10000, \"max_referral_bps\": 5000, \"token_init_info\": { \"token_a\": \"${TOKEN_ID1}\", \"token_b\": \"${TOKEN_ID2}\" }, \"stake_init_info\": { \"min_bond\": \"100\", \"min_reward\": \"100\", \"max_distributions\": 3, \"manager\": \"${ADMIN_ADDRESS}\" } }" \
# --share_token_name "EURCXLMST" \
# --share_token_symbol "EXST"
#
# PAIR_ADDR=$(soroban contract invoke \
# --id $FACTORY_ADDR \
# --source $IDENTITY_STRING \
# --network $NETWORK --fee 100 \
# -- \
# query_pools | jq -r '.[1]')
#
# echo "Pair contract initialized."
#
# echo "Mint both tokens to the admin and provide liquidity..."
# # soroban contract invoke \
# # --id $TOKEN_ADDR1 \
# # --source $IDENTITY_STRING \
# # --network $NETWORK \
# # -- \
# # mint --to $ADMIN_ADDRESS --amount 100000000000
#
# echo "Mint..."
# soroban contract invoke \
# --id $TOKEN_ADDR2 \
# --source $IDENTITY_STRING \
# --network $NETWORK \
# -- \
# mint --to $ADMIN_ADDRESS --amount 5000000000
#
# # Provide liquidity in 2:1 ratio to the pool
# echo "Provide liquidity..."
# soroban contract invoke \
# --id $PAIR_ADDR \
# --source $IDENTITY_STRING \
# --network $NETWORK --fee 10000000 \
# -- \
# provide_liquidity --sender $ADMIN_ADDRESS --desired_a 3000000000 --desired_b 5000000000
#
# echo "Liquidity provided."
#
# # Continue with the rest of the commands
# echo "Bond tokens to stake contract..."
#
# STAKE_ADDR=$(soroban contract invoke \
# --id $PAIR_ADDR \
# --source $IDENTITY_STRING \
# --network $NETWORK --fee 10000000 \
# -- \
# query_stake_contract_address | jq -r '.')
#
# # Bond token in stake contract
# soroban contract invoke \
# --id $STAKE_ADDR \
# --source $IDENTITY_STRING \
# --network $NETWORK \
# -- \
# bond --sender $ADMIN_ADDRESS --tokens 70000000
#
# echo "Tokens bonded."
#
# echo "#############################"
#
# # echo "now third time"
# #
# # echo "Deploy the soroban_token_contract and capture its contract ID hash..."
# #
# # TOKEN_ADDR1=CB64D3G7SM2RTH6JSGG34DDTFTQ5CFDKVDZJZSODMCX4NJ2HV2KN7OHT
# #
# # echo "Tokens and factory deployed."
# #
# # # Sort the token addresses alphabetically
# # if [[ "$TOKEN_ADDR1" < "$TOKEN_ADDR2" ]]; then
# # TOKEN_ID1=$TOKEN_ADDR1
# # TOKEN_ID2=$TOKEN_ADDR2
# # else
# # TOKEN_ID1=$TOKEN_ADDR2
# # TOKEN_ID2=$TOKEN_ADDR1
# # fi
# #
# # echo "Initialize factory..."
# #
# # echo "Install the soroban_token, phoenix_pool and phoenix_stake contracts..."
# #
# # TOKEN_WASM_HASH=$(soroban contract install \
# # --wasm soroban_token_contract.optimized.wasm \
# # --source $IDENTITY_STRING \
# # --network $NETWORK)
# #
# # # Continue with the rest of the deployments
# # PAIR_WASM_HASH=$(soroban contract install \
# # --wasm phoenix_pool.optimized.wasm \
# # --source $IDENTITY_STRING \
# # --network $NETWORK)
# #
# # STAKE_WASM_HASH=$(soroban contract install \
# # --wasm phoenix_stake.optimized.wasm \
# # --source $IDENTITY_STRING \
# # --network $NETWORK)
# #
# # echo "Token, pair and stake contracts deployed."
# #
# #
# # echo "Initialize pair using the previously fetched hashes through factory..."
# #
# # soroban contract invoke \
# # --id $FACTORY_ADDR \
# # --source $IDENTITY_STRING \
# # --network $NETWORK \
# # -- \
# # create_liquidity_pool \
# # --lp_init_info "{ \"admin\": \"${ADMIN_ADDRESS}\", \"lp_wasm_hash\": \"${PAIR_WASM_HASH}\", \"share_token_decimals\": 7, \"swap_fee_bps\": 1000, \"fee_recipient\": \"${ADMIN_ADDRESS}\", \"max_allowed_slippage_bps\": 10000, \"max_allowed_spread_bps\": 10000, \"max_referral_bps\": 5000, \"token_init_info\": { \"token_wasm_hash\": \"${TOKEN_WASM_HASH}\", \"token_a\": \"${TOKEN_ID1}\", \"token_b\": \"${TOKEN_ID2}\" }, \"stake_init_info\": { \"stake_wasm_hash\": \"${STAKE_WASM_HASH}\", \"min_bond\": \"100\", \"min_reward\": \"100\", \"max_distributions\": 3 } }"
# #
# # PAIR_ADDR=$(soroban contract invoke \
# # --id $FACTORY_ADDR \
# # --source $IDENTITY_STRING \
# # --network $NETWORK --fee 100 \
# # -- \
# # query_pools | jq -r '.[2]')
# #
# # echo "Pair contract initialized."
# #
# # echo "Mint both tokens to the admin and provide liquidity..."
# # soroban contract invoke \
# # --id $TOKEN_ADDR2 \
# # --source $IDENTITY_STRING \
# # --network $NETWORK \
# # -- \
# # mint --to $ADMIN_ADDRESS --amount 100000000000
# #
# # # Provide liquidity in 2:1 ratio to the pool
# # soroban contract invoke \
# # --id $PAIR_ADDR \
# # --source $IDENTITY_STRING \
# # --network $NETWORK --fee 10000000 \
# # -- \
# # provide_liquidity --sender $ADMIN_ADDRESS --desired_a 10000000000 --desired_b 50000000000
# #
# # echo "Liquidity provided."
#
#
# echo "Initialization complete!"
# echo "Token Contract 1 address: $TOKEN_ADDR1"
# echo "Token Contract 2 address: $TOKEN_ADDR2"
# echo "Pair Contract address: $PAIR_ADDR"
# echo "Stake Contract address: $STAKE_ADDR"
# echo "Factory Contract address: $FACTORY_ADDR"
# echo "Multihop Contract address: $MULTIHOP"

# TOKEN_ADDR2 stays the same - $PHO
TOKEN_ADDR1=$(soroban contract deploy \
--wasm soroban_token_contract.optimized.wasm \
--source $IDENTITY_STRING \
--network $NETWORK)

soroban contract invoke \
--id $TOKEN_ADDR1 \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
initialize \
--admin $ADMIN_ADDRESS \
--decimal 7 \
--name USDC \
--symbol USDC

echo "USDC Token initialized."

# Sort the token addresses alphabetically
if [[ "$TOKEN_ADDR1" < "$TOKEN_ADDR2" ]]; then
TOKEN_ID1=$TOKEN_ADDR1
TOKEN_ID2=$TOKEN_ADDR2
else
TOKEN_ID1=$TOKEN_ADDR2
TOKEN_ID2=$TOKEN_ADDR1
fi

echo "Initialize pair through factory..."

soroban contract invoke \
--id $FACTORY_ADDR \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
create_liquidity_pool \
--sender $ADMIN_ADDRESS \
--lp_init_info "{ \"admin\": \"${ADMIN_ADDRESS}\", \"swap_fee_bps\": 1000, \"fee_recipient\": \"${ADMIN_ADDRESS}\", \"max_allowed_slippage_bps\": 10000, \"max_allowed_spread_bps\": 10000, \"max_referral_bps\": 5000, \"token_init_info\": { \"token_a\": \"${TOKEN_ID1}\", \"token_b\": \"${TOKEN_ID2}\" }, \"stake_init_info\": { \"min_bond\": \"100\", \"min_reward\": \"100\", \"max_distributions\": 3, \"manager\": \"${ADMIN_ADDRESS}\", \"max_complexity\": 7 } }" \
--share_token_name "XLMPHOST" \
--share_token_symbol "XPST" \
--pool_type 0

echo "Query PHO/USDC pair address..."

PAIR_ADDR2=$(soroban contract invoke \
--id $FACTORY_ADDR \
--source $IDENTITY_STRING \
--network $NETWORK --fee 100 \
-- \
query_pools | jq -r '.[1]')

echo "Pair contract initialized."

echo "Mint PHO & USDC token to the admin and provide liquidity..."
soroban contract invoke \
--id $TOKEN_ADDR1 \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
mint --to $ADMIN_ADDRESS --amount 10000000000 # 7 decimals, 10k tokens

soroban contract invoke \
--id $TOKEN_ADDR2 \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
mint --to $ADMIN_ADDRESS --amount 10000000000 # 7 decimals, 10k tokens

# Provide liquidity in 2:1 ratio to the pool
soroban contract invoke \
--id $PAIR_ADDR2 \
--source $IDENTITY_STRING \
--network $NETWORK --fee 10000000 \
-- \
provide_liquidity --sender $ADMIN_ADDRESS --desired_a 6000000000 --desired_b 2000000000

echo "Liquidity provided."

# Continue with the rest of the commands
echo "Query stake contract address..."

STAKE_ADDR2=$(soroban contract invoke \
--id $PAIR_ADDR \
--source $IDENTITY_STRING \
--network $NETWORK --fee 10000000 \
-- \
query_stake_contract_address | jq -r '.')

echo "Bond tokens to stake contract..."
# Bond token in stake contract
soroban contract invoke \
--id $STAKE_ADDR2 \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
bond --sender $ADMIN_ADDRESS --tokens 70000000

echo "Tokens bonded."

echo "#############################"

echo "Initialization complete!"
echo "XLM address: $XLM"
echo "PHO address: $TOKEN_ADDR2"
echo "USDC address: $TOKEN_ADDR1"
echo "XLM/PHO Pair Contract address: $PAIR_ADDR"
echo "XLM/PHO Stake Contract address: $STAKE_ADDR"
echo "PHO/USDC Pair Contract address: $PAIR_ADDR2"
echo "PHO/USDC Stake Contract address: $STAKE_ADDR2"
echo "Factory Contract address: $FACTORY_ADDR"
echo "Multihop Contract address: $MULTIHOP"

0 comments on commit 5d0e4fd

Please sign in to comment.