Skip to content

deployment testnet #413

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
204 changes: 187 additions & 17 deletions scripts/deploy.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#!/bin/bash
# Ensure the script exits on any errors
set -e

Expand Down Expand Up @@ -25,6 +26,7 @@ soroban contract optimize --wasm phoenix_pool_stable.wasm
soroban contract optimize --wasm phoenix_stake.wasm
soroban contract optimize --wasm phoenix_stake_rewards.wasm
soroban contract optimize --wasm phoenix_multihop.wasm
soroban contract optimize --wasm phoenix_stake_rewards.wasm

echo "Contracts optimized."

Expand All @@ -37,21 +39,17 @@ XLM="CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC"

TOKEN_ADDR1=$XLM

TOKEN_ADDR2=$(soroban contract deploy \
TOKEN_ADDR2=$(
soroban contract deploy \
--wasm soroban_token_contract.optimized.wasm \
--source $IDENTITY_STRING \
--network $NETWORK)

soroban contract invoke \
--id $TOKEN_ADDR2 \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
initialize \
--admin $ADMIN_ADDRESS \
--decimal 7 \
--name PHOENIX \
--symbol PHO
)

echo "PHO Token initialized."

Expand All @@ -60,6 +58,7 @@ FACTORY_ADDR=$(soroban contract deploy \
--source $IDENTITY_STRING \
--network $NETWORK)

echo "FACTORY IS $FACTORY_ADDR"
echo "Tokens and factory deployed."

# Sort the token addresses alphabetically
Expand Down Expand Up @@ -108,6 +107,12 @@ MULTIHOP=$(soroban contract install \
--source $IDENTITY_STRING \
--network $NETWORK)

MULTIHOP_ADDR=$(soroban contract deploy \
--wasm phoenix_multihop.optimized.wasm \
--source $IDENTITY_STRING \
--network $NETWORK
)

soroban contract invoke \
--id $FACTORY_ADDR \
--source $IDENTITY_STRING \
Expand All @@ -119,7 +124,6 @@ soroban contract invoke \
--lp_wasm_hash $PAIR_WASM_HASH \
--stable_wasm_hash $STABLE_PAIR_WASM_HASH \
--stake_wasm_hash $STAKE_WASM_HASH \
--stake_rewards_wasm_hash $STAKE_REWARDS_WASM_HASH \
--token_wasm_hash $TOKEN_WASM_HASH \
--whitelisted_accounts "[ \"${ADMIN_ADDRESS}\" ]" \
--lp_token_decimals 7
Expand Down Expand Up @@ -198,18 +202,14 @@ echo "#############################"
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."

Expand Down Expand Up @@ -278,7 +278,7 @@ echo "Liquidity provided."
echo "Query stake contract address..."

STAKE_ADDR2=$(soroban contract invoke \
--id $PAIR_ADDR \
--id $PAIR_ADDR2 \
--source $IDENTITY_STRING \
--network $NETWORK --fee 10000000 \
-- \
Expand All @@ -295,6 +295,174 @@ soroban contract invoke \

echo "Tokens bonded."

echo "Starting the deployment of stable pool..."

echo "Deploying GBPx and EURc ..."

STABLE_TOKEN_A=$(
soroban contract deploy \
--wasm soroban_token_contract.optimized.wasm \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
--admin $ADMIN_ADDRESS \
--decimal 7 \
--name GBPCoin \
--symbol GBPx
)

STABLE_TOKEN_B=$(
soroban contract deploy \
--wasm soroban_token_contract.optimized.wasm \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
--admin $ADMIN_ADDRESS \
--decimal 7 \
--name EuroCoin \
--symbol EURc
)

if [[ "$STABLE_TOKEN_A" < "$STABLE_TOKEN_B" ]]; then
STABLE_TOKEN_ID1=$STABLE_TOKEN_A
STABLE_TOKEN_ID2=$STABLE_TOKEN_B
else
STABLE_TOKEN_ID1=$STABLE_TOKEN_B
STABLE_TOKEN_ID2=$STABLE_TOKEN_A
fi

echo "Minting GBPx and EURc..."

soroban contract invoke \
--id $STABLE_TOKEN_ID1 \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
mint --to $ADMIN_ADDRESS --amount 100000000000

soroban contract invoke \
--id $STABLE_TOKEN_ID2 \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
mint --to $ADMIN_ADDRESS --amount 100000000000

echo "Deploy GBPx/EURc stable pool ..."

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, \
\"default_slippage_bps\": 3000, \
\"max_allowed_spread_bps\": 10000, \
\"max_referral_bps\": 5000, \
\"token_init_info\": { \
\"token_a\": \"${STABLE_TOKEN_ID1}\", \
\"token_b\": \"${STABLE_TOKEN_ID2}\" \
}, \
\"stake_init_info\": { \
\"min_bond\": \"100\", \
\"min_reward\": \"100\", \
\"max_distributions\": \"3\", \
\"manager\": \"${ADMIN_ADDRESS}\", \
\"max_complexity\": 7 \
} \
}" \
--default_slippage_bps 3000 \
--max_allowed_fee_bps 10000 \
--share_token_name "GBPEURCST" \
--share_token_symbol "GEST" \
--pool_type 1 \
--amp 50

echo "Query GBPx/EURc pair address..."

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

echo "Providing liquidity to stable pool."

soroban contract invoke \
--id $STABLE_PAIR_ADDR \
--source $IDENTITY_STRING \
--network $NETWORK --fee 10000000 \
-- \
provide_liquidity --sender $ADMIN_ADDRESS --desired_a 2000000000 --desired_b 2000000000

echo "Liquidity provided."

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

echo "Deploy and initialize stake_rewards contracts..."

MAX_COMPLEXITY=7
MIN_REWARD=100
MIN_BOND=100

echo "Deploying stake_rewards for the XLM/PHO Stake Contract ($STAKE_ADDR)..."
STAKING_REWARDS_XLM_PHO_ADDR=$(soroban contract deploy \
--wasm phoenix_stake_rewards.optimized.wasm \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
)

echo "Staking Rewards Contract for XLM/PHO deployed at address: $STAKING_REWARDS_XLM_PHO_ADDR"

echo "Initializing staking_rewards contract for XLM/PHO..."
soroban contract invoke \
--id $STAKING_REWARDS_XLM_PHO_ADDR \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
initialize \
--admin "$ADMIN_ADDRESS" \
--staking_contract "$STAKE_ADDR" \
--reward_token "$TOKEN_ADDR2" \
--max_complexity "$MAX_COMPLEXITY" \
--min_reward "$MIN_REWARD" \
--min_bond "$MIN_BOND"

echo "Staking Rewards Contract for XLM/PHO initialized."

echo "Deploying staking_rewards for the PHO/USDC Stake Contract ($STAKE_ADDR2)..."
STAKING_REWARDS_PHO_USDC_ADDR=$(soroban contract deploy \
--wasm phoenix_stake_rewards.optimized.wasm \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
)

echo "Staking Rewards Contract for PHO/USDC deployed at address: $STAKING_REWARDS_PHO_USDC_ADDR"

echo "Initializing staking_rewards contract for PHO/USDC..."
soroban contract invoke \
--id $STAKING_REWARDS_PHO_USDC_ADDR \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
initialize \
--admin "$ADMIN_ADDRESS" \
--staking_contract "$STAKE_ADDR2" \
--reward_token "$TOKEN_ADDR2" \
--max_complexity "$MAX_COMPLEXITY" \
--min_reward "$MIN_REWARD" \
--min_bond "$MIN_BOND"

echo "Staking Rewards Contract for PHO/USDC initialized."

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

echo "Initialization complete!"
Expand All @@ -305,6 +473,8 @@ 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 "GBPx/EURc Pair Contract address: $STABLE_PAIR_ADDR"
echo "Factory Contract address: $FACTORY_ADDR"
echo "Multihop Contract address: $MULTIHOP"

echo "Multihop Contract address: $MULTIHOP_ADDR"
echo "Staking Rewards Contract for XLM/PHO address: $STAKING_REWARDS_XLM_PHO_ADDR"
echo "Staking Rewards Contract for PHO/USDC address: $STAKING_REWARDS_PHO_USDC_ADDR"