Skip to content

Latest commit

 

History

History
89 lines (70 loc) · 3.48 KB

File metadata and controls

89 lines (70 loc) · 3.48 KB

Testnet Deployment

Recommended Approach

Use the task-based deployment commands:

# Update .env for TESTNET environment
# export DEPLOY_ENV=TESTNET

# Full deployment pipeline
task deploy:full

# deploy just the components -> wa.dev
bash script/upload-components-background.sh

# Upload service config to IPFS
task deploy:ipfs

# Deploy service
task deploy:service

Manual Deployment Steps (Legacy)

echo "COMPLETED" > .docker/component-upload-status

# TESTNET
export WAVS_SERVICE_MANAGER_ADDRESS=`task config:service-manager-address`
export RPC_URL=`task get-rpc`
export INDEXER_ADDRESS=$(jq -r '.wavs_indexer' .docker/deployment_summary.json)
export EAS_ADDRESS=$(jq -r '.eas.contracts.eas' .docker/deployment_summary.json)
export VOUCHING_SCHEMA_UID=$(jq -r '.eas.schemas.vouching.uid' .docker/deployment_summary.json)
export TRIGGER_CHAIN=evm:$(task get-chain-id)
export SUBMIT_CHAIN=evm:$(task get-chain-id)
export REGISTRY=$(task get-registry)
export AGGREGATOR_URL=http://127.0.0.1:8040
export CHAIN_NAME=evm:$(task get-chain-id)
export AGGREGATOR_TIMER_DELAYER_SECS=3

# build service.json
bash ./script/build-service.sh

# Update IPFS service
export PINATA_API_KEY=$(grep ^WAVS_ENV_PINATA_API_KEY= .env | cut -d '=' -f2-)
export ipfs_cid=`task deploy:ipfs`
cast send `task config:service-manager-address` 'setServiceURI(string)' "ipfs://${ipfs_cid}" -r `task get-rpc` --private-key `task config:funded-key`
cast call ${WAVS_SERVICE_MANAGER_ADDRESS} "getServiceURI()(string)" --rpc-url ${RPC_URL}

# ----
(cd infra/wavs-1; sh start.sh)
(cd infra/aggregator-1; sh start.sh)
# Use task deploy:service instead

# ! If you get 0x3dda1739 in the aggregator, make sure to run this (there is no operator)
export op_num=2
export op_priv_key=$(grep ^WAVS_CLI_EVM_CREDENTIAL= infra/wavs-$op_num/.env | cut -d '=' -f2- | tr -d '"')
export op_mnemonic=$(grep ^WAVS_SUBMISSION_MNEMONIC= infra/wavs-$op_num/.env | cut -d '=' -f2- | tr -d '"')
export op_addr=$(cast wallet address --private-key $op_priv_key) && echo $op_addr
export op_signing_key=$(cast wallet address --mnemonic "$op_mnemonic" --mnemonic-index 1) && echo $op_signing_key
cast send --rpc-url `task get-rpc` $WAVS_SERVICE_MANAGER_ADDRESS "registerOperator(address,uint256)" "${op_addr}" 1000 --private-key `task config:funded-key`
# cast send ${op_addr} --value 0.001ether -r `task get-rpc` --private-key `task config:funded-key` # if you forgot to fund

# the operator must sign they own their signing key to prove they own it
encoded_operator_address=$(cast abi-encode "f(address)" "$op_addr")
signing_message=$(cast keccak "$encoded_operator_address")
signing_signature=$(cast wallet sign --no-hash --mnemonic "$op_mnemonic" --mnemonic-index 1 "$signing_message")
echo "Signing signature: $signing_signature"

# NOTE: if `Out of gas: gas required exceeds allowance: 0`, give funds to op_addr
cast send $WAVS_SERVICE_MANAGER_ADDRESS "updateOperatorSigningKey(address,bytes)" "${op_signing_key}" "${signing_signature}" --rpc-url `task get-rpc` --private-key $op_priv_key

# cast call $WAVS_SERVICE_MANAGER_ADDRESS "getOperatorWeight(address)(uint256)" ${op_addr} --rpc-url `task get-rpc`

# ----

WAVS_SERVICE_MANAGER_ADDRESS=`task config:service-manager-address`
AGGREGATOR_URL=http://127.0.0.1:8040
CHAIN_NAME="evm:`task get-chain-id`"
curl -s -X POST -H "Content-Type: application/json" -d "{
  \"service_manager\": {
    \"evm\": {
      \"chain\": \"${CHAIN_NAME}\",
      \"address\": \"${WAVS_SERVICE_MANAGER_ADDRESS}\"
    }
  }
}" ${AGGREGATOR_URL}/services