Skip to content
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

deployment-script #28

Merged
merged 1 commit into from
Nov 21, 2024
Merged
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
81 changes: 81 additions & 0 deletions scripts/deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Ensure the script exits on any errors
set -e

# Check if the arguments are provided
if [ $# -ne 1 ]; then
echo "Usage: $0 <identity_string>"
exit 1
fi

IDENTITY_STRING=$1
NETWORK="testnet"

echo "Build and optimize the contracts...";
echo "Building the contracts...";

make build > /dev/null
cd target/wasm32-unknown-unknown/release

echo "Contracts compiled."
echo "Optimizing contracts..."

soroban contract optimize --wasm phoenix_nft_collections.wasm
soroban contract optimize --wasm phoenix_nft_deployer.wasm

echo "Contracts optimized."

echo "Deploy and install the deployer contract and capture its contract ID and hash..."

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

DEPLOYER_WASM_HASH=$(
soroban contract install \
--wasm phoenix_nft_deployer.optimized.wasm \
--source $IDENTITY_STRING \
--network $NETWORK
)

echo "Deployer contract deployed and installed."

echo "Deploy and install the collections contract and capture its contract ID and hash..."

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

COLLECTIONS_WASM_HASH=$(
soroban contract install \
--wasm phoenix_nft_collections.optimized.wasm \
--source $IDENTITY_STRING \
--network $NETWORK
)

echo "Collections contract deployed and installed."

echo "Initialize deployer with the collections hash..."

soroban contract invoke \
--id $DEPLOYER_ADDR \
--source $IDENTITY_STRING \
--network $NETWORK \
-- \
initialize \
--collections_wasm_hash $COLLECTIONS_WASM_HASH

echo "Deployer initialized."

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

echo "Setup complete!"
echo "Deployer address: $DEPLOYER_ADDR"
echo "Deployer wasm hash: $DEPLOYER_WASM_HASH"
echo "Collections address: $COLLECTIONS_ADDR"
echo "Collections wasm hash: $COLLECTIONS_WASM_HASH"
Loading