Add optional Cosmos/Engine-X/act-runner templates, CWUSDC/EI-matrix tooling, non-EVM route planner in multi-chain-execution (tests passing), token list and extraction updates, and documentation (MetaMask matrix, GRU/CWUSDC packets). Ignore institutional evidence tarballs/sha256 under reports/status. Validated with: bash scripts/verify/run-all-validation.sh --skip-genesis Co-authored-by: Cursor <cursoragent@cursor.com>
90 lines
3.0 KiB
Bash
Executable File
90 lines
3.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
|
|
|
|
# shellcheck source=/home/intlc/projects/proxmox/scripts/lib/load-project-env.sh
|
|
source "${PROJECT_ROOT}/scripts/lib/load-project-env.sh"
|
|
|
|
: "${ETHEREUM_MAINNET_RPC:?ETHEREUM_MAINNET_RPC is required}"
|
|
|
|
CWUSDC="${CWUSDC_MAINNET:-0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a}"
|
|
QUOTE_TOKEN="${ENGINE_X_SINGLE_SIDED_DODO_QUOTE_TOKEN:-${WETH9_MAINNET:-0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}}"
|
|
DODO_INTEGRATION="${ENGINE_X_SINGLE_SIDED_DODO_INTEGRATION:-${DODO_PMM_INTEGRATION_MAINNET:-${CHAIN_1_DODO_PMM_INTEGRATION:-}}}"
|
|
VERIFY="${VERIFY:-1}"
|
|
EXECUTE="${EXECUTE:-0}"
|
|
|
|
OWNER="${ENGINE_X_SINGLE_SIDED_DODO_OWNER:-${DEPLOYER_ADDRESS:-}}"
|
|
if [[ -n "${PRIVATE_KEY:-}" ]]; then
|
|
OWNER="$(cast wallet address --private-key "${PRIVATE_KEY}")"
|
|
fi
|
|
|
|
if [[ -z "${OWNER}" ]]; then
|
|
echo "Set PRIVATE_KEY, DEPLOYER_ADDRESS, or ENGINE_X_SINGLE_SIDED_DODO_OWNER" >&2
|
|
exit 1
|
|
fi
|
|
if [[ -z "${DODO_INTEGRATION}" ]]; then
|
|
echo "Set DODO_PMM_INTEGRATION_MAINNET or ENGINE_X_SINGLE_SIDED_DODO_INTEGRATION" >&2
|
|
exit 1
|
|
fi
|
|
if [[ "${EXECUTE}" == "1" && -z "${PRIVATE_KEY:-}" ]]; then
|
|
echo "PRIVATE_KEY is required when EXECUTE=1" >&2
|
|
exit 1
|
|
fi
|
|
|
|
VERIFY_ARGS=()
|
|
if [[ "${VERIFY}" == "1" ]]; then
|
|
VERIFY_ARGS+=(--verify)
|
|
fi
|
|
|
|
CREATE_CMD_EXEC=(
|
|
forge create
|
|
--broadcast
|
|
--rpc-url "${ETHEREUM_MAINNET_RPC}"
|
|
--private-key "${PRIVATE_KEY:-}"
|
|
"${VERIFY_ARGS[@]}"
|
|
contracts/flash/DBISEngineXSingleSidedDodoCwusdcVault.sol:DBISEngineXSingleSidedDodoCwusdcVault
|
|
--constructor-args
|
|
"${CWUSDC}" "${QUOTE_TOKEN}" "${DODO_INTEGRATION}" "${OWNER}"
|
|
)
|
|
|
|
cat <<EOF
|
|
Engine X single-sided DODO cWUSDC wrapper deployment plan
|
|
mode EXECUTE: ${EXECUTE}
|
|
owner: ${OWNER}
|
|
cWUSDC: ${CWUSDC}
|
|
quote token: ${QUOTE_TOKEN}
|
|
DODO integration: ${DODO_INTEGRATION}
|
|
|
|
Boundary:
|
|
This wrapper may hold cWUSDC-only inventory as Engine X accounted support
|
|
inventory. It does not make cWUSDC-only inventory executable DODO liquidity.
|
|
Promotion to DODO requires nonzero cWUSDC and nonzero quote-token inventory,
|
|
a configured cWUSDC/quote DODO pool, and passing querySellBase/querySellQuote
|
|
canary guards.
|
|
EOF
|
|
|
|
if [[ "${EXECUTE}" != "1" ]]; then
|
|
cat <<EOF
|
|
|
|
Dry-run only. Review command:
|
|
cd smom-dbis-138
|
|
forge create --broadcast --rpc-url "\$ETHEREUM_MAINNET_RPC" --private-key "\$PRIVATE_KEY" ${VERIFY_ARGS[*]} contracts/flash/DBISEngineXSingleSidedDodoCwusdcVault.sol:DBISEngineXSingleSidedDodoCwusdcVault --constructor-args "${CWUSDC}" "${QUOTE_TOKEN}" "${DODO_INTEGRATION}" "${OWNER}"
|
|
EOF
|
|
exit 0
|
|
fi
|
|
|
|
pushd "${PROJECT_ROOT}/smom-dbis-138" >/dev/null
|
|
DEPLOY_OUT="$("${CREATE_CMD_EXEC[@]}")"
|
|
popd >/dev/null
|
|
printf '%s\n' "${DEPLOY_OUT}"
|
|
|
|
VAULT="$(printf '%s\n' "${DEPLOY_OUT}" | grep -oE 'Deployed to: 0x[a-fA-F0-9]{40}' | awk '{print $3}' | tail -1)"
|
|
if [[ -z "${VAULT}" ]]; then
|
|
echo "Could not parse deployed single-sided DODO cWUSDC wrapper address" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "DBIS_ENGINE_X_SINGLE_SIDED_DODO_CWUSDC_VAULT=${VAULT}"
|