chore: update .env.master.example with new deployment scripts and treasury manager parameters; enhance AGENTS.md with GRU reference primacy details

- Added new deployment script references for Aave quote-push and treasury manager in .env.master.example.
- Updated AGENTS.md to include information on GRU reference primacy versus public PMM mesh execution model.
- Minor updates to various documentation files to reflect changes in policy and operational guidelines.

Made-with: Cursor
This commit is contained in:
defiQUG
2026-04-12 18:20:41 -07:00
parent 6945f69d7d
commit 0d29343941
133 changed files with 7017 additions and 539 deletions

View File

@@ -0,0 +1,100 @@
#!/usr/bin/env bash
# Verify GRU reference-primacy doc exists, peg-bands.json carries the machine hook
# (when cross-chain-pmm-lps is present), and canonical consumers still link the doc.
# Usage: bash scripts/verify/check-gru-reference-primacy-integration.sh
# Exit: 0 ok, 1 failure
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
DOC_REL="docs/04-configuration/GRU_REFERENCE_PRIMACY_AND_MESH_EXECUTION_MODEL.md"
DOC="$PROJECT_ROOT/$DOC_REL"
MARKER="GRU_REFERENCE_PRIMACY_AND_MESH_EXECUTION_MODEL.md"
err() { printf '[ERROR] %s\n' "$*" >&2; }
ok() { printf '[OK] %s\n' "$*"; }
ERRORS=0
if [[ ! -f "$DOC" ]]; then
err "Missing $DOC_REL"
exit 1
fi
if ! grep -qi 'reference primacy' "$DOC"; then
err "$DOC_REL: expected 'reference primacy' wording"
ERRORS=$((ERRORS + 1))
fi
ok "Found and scanned $DOC_REL"
# Parent-repo files that must keep a pointer to the canonical doc (integration, not orphan).
REQUIRED_LINK_FILES=(
"$PROJECT_ROOT/docs/04-configuration/GRU_C_STAR_V2_STANDARDS_MATRIX_AND_IMPLEMENTATION_PLAN.md"
"$PROJECT_ROOT/docs/MASTER_INDEX.md"
"$PROJECT_ROOT/AGENTS.md"
"$PROJECT_ROOT/docs/04-configuration/README.md"
"$PROJECT_ROOT/docs/11-references/PMM_DEX_ROUTING_STATUS.md"
"$PROJECT_ROOT/docs/11-references/LIQUIDITY_POOLS_MASTER_MAP.md"
"$PROJECT_ROOT/docs/11-references/CHAIN138_GRID_6534_WALLET_FUNDING_PLAN.md"
"$PROJECT_ROOT/docs/11-references/GRU_V2_PUBLIC_PROTOCOL_DEPLOYMENT_STATUS.md"
"$PROJECT_ROOT/docs/03-deployment/PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK.md"
"$PROJECT_ROOT/.cursor/rules/project-doc-and-deployment-refs.mdc"
)
for f in "${REQUIRED_LINK_FILES[@]}"; do
rel="${f#"$PROJECT_ROOT"/}"
if [[ ! -f "$f" ]]; then
err "Missing expected file: $rel"
ERRORS=$((ERRORS + 1))
continue
fi
if ! grep -qF "$MARKER" "$f"; then
err "$rel: must reference $MARKER"
ERRORS=$((ERRORS + 1))
else
ok "Link present: $rel"
fi
done
CC_README="$PROJECT_ROOT/cross-chain-pmm-lps/README.md"
if [[ -f "$CC_README" ]]; then
if ! grep -qF "$MARKER" "$CC_README"; then
err "cross-chain-pmm-lps/README.md must reference $MARKER"
ERRORS=$((ERRORS + 1))
else
ok "Link present: cross-chain-pmm-lps/README.md"
fi
else
ok "Submodule cross-chain-pmm-lps absent — skipped README check"
fi
PEGB="$PROJECT_ROOT/cross-chain-pmm-lps/config/peg-bands.json"
if [[ -f "$PEGB" ]]; then
if command -v jq &>/dev/null; then
if jq -e \
'(.gruPolicyIntegration | type == "object")
and (.gruPolicyIntegration.referencePrimacyDoc | type == "string")
and (.gruPolicyIntegration.referencePrimacyDoc | test("GRU_REFERENCE_PRIMACY_AND_MESH_EXECUTION_MODEL"))
and (.gruPolicyIntegration.meshExecutionRole | type == "string")
and (.gruPolicyIntegration.meshExecutionRole | length > 0)' \
"$PEGB" &>/dev/null; then
ok "peg-bands.json: gruPolicyIntegration hook present"
else
err "peg-bands.json: missing or invalid .gruPolicyIntegration (referencePrimacyDoc + meshExecutionRole)"
ERRORS=$((ERRORS + 1))
fi
else
err "jq not installed — cannot validate peg-bands.json gruPolicyIntegration"
ERRORS=$((ERRORS + 1))
fi
else
ok "peg-bands.json absent (submodule not checked out) — skipped peg-bands hook check"
fi
if [[ "$ERRORS" -gt 0 ]]; then
err "GRU reference primacy integration: $ERRORS error(s)"
exit 1
fi
ok "GRU reference primacy integration checks passed."
exit 0

View File

@@ -93,7 +93,11 @@ echo " Router paused(): $router_paused"
echo
if [[ "$delivery_enabled" == "true" && "$shedding" == "false" && ( "$router_paused" == "false" || "$router_paused" == "unknown" ) ]]; then
echo "Lane is already deliverable."
if [[ "$bridge_ready" == "yes" ]]; then
echo "Lane is already deliverable."
else
echo "Lane is operational, but current bridge float is below the configured floor."
fi
exit 0
fi

View File

@@ -0,0 +1,219 @@
#!/usr/bin/env bash
set -euo pipefail
# Read-only accounting report for retained Mainnet quote-push surplus:
# - deployer ETH gas headroom vs configured floor
# - receiver quote balance and sweepable amount
# - recommended holdback for gas-cover accounting (in quote terms)
# - recommended recycleable quote for pool growth
#
# Env:
# ETHEREUM_MAINNET_RPC required
# PRIVATE_KEY or QUOTE_PUSH_DEPLOYER_ADDRESS one required
# AAVE_QUOTE_PUSH_RECEIVER_MAINNET required
# QUOTE_PUSH_SURPLUS_TOKEN_MAINNET optional; defaults to USDC mainnet
# QUOTE_PUSH_RECEIVER_RESERVE_RAW optional; receiver reserve kept after sweep (default 0)
# QUOTE_PUSH_DEPLOYER_GAS_FLOOR_ETH optional; default 0.003
# QUOTE_PUSH_OPERATION_BUFFER_ETH optional; default 0.0005
# QUOTE_PUSH_NATIVE_TOKEN_PRICE optional; default 3200 quote per native token
#
# Usage:
# source scripts/lib/load-project-env.sh
# bash scripts/verify/report-mainnet-aave-quote-push-surplus-accounting.sh
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROXMOX_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
SMOM="${PROXMOX_ROOT}/smom-dbis-138"
DEFAULT_USDC_MAINNET="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
DEFAULT_CWUSDC_MAINNET="0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a"
# shellcheck disable=SC1091
source "${PROXMOX_ROOT}/scripts/lib/load-project-env.sh" 2>/dev/null || true
# shellcheck disable=SC1091
source "${SMOM}/scripts/load-env.sh" >/dev/null 2>&1 || true
require_cmd() {
command -v "$1" >/dev/null 2>&1 || {
echo "[fail] missing required command: $1" >&2
exit 1
}
}
require_env() {
local name="$1"
if [[ -z "${!name:-}" ]]; then
echo "[fail] missing required env: $name" >&2
exit 1
fi
}
require_cmd cast
require_cmd python3
require_env ETHEREUM_MAINNET_RPC
pick_latest_receiver() {
local latest_json="${SMOM}/broadcast/DeployAaveQuotePushFlashReceiver.s.sol/1/run-latest.json"
if [[ ! -f "$latest_json" ]] || ! command -v jq >/dev/null 2>&1; then
return 1
fi
jq -r '.transactions[]? | select(.transactionType == "CREATE" and .contractName == "AaveQuotePushFlashReceiver") | .contractAddress' \
"$latest_json" | tail -n1
}
pick_latest_manager() {
local latest_json="${SMOM}/broadcast/DeployQuotePushTreasuryManager.s.sol/1/run-latest.json"
if [[ ! -f "$latest_json" ]] || ! command -v jq >/dev/null 2>&1; then
return 1
fi
jq -r '.transactions[]? | select(.transactionType == "CREATE" and .contractName == "QuotePushTreasuryManager") | .contractAddress' \
"$latest_json" | tail -n1
}
if [[ -z "${AAVE_QUOTE_PUSH_RECEIVER_MAINNET:-}" ]]; then
inferred_receiver="$(pick_latest_receiver || true)"
if [[ -n "$inferred_receiver" && "$inferred_receiver" != "null" ]]; then
export AAVE_QUOTE_PUSH_RECEIVER_MAINNET="$inferred_receiver"
fi
fi
if [[ -z "${QUOTE_PUSH_TREASURY_MANAGER_MAINNET:-}" ]]; then
inferred_manager="$(pick_latest_manager || true)"
if [[ -n "$inferred_manager" && "$inferred_manager" != "null" ]]; then
export QUOTE_PUSH_TREASURY_MANAGER_MAINNET="$inferred_manager"
fi
fi
require_env AAVE_QUOTE_PUSH_RECEIVER_MAINNET
if [[ -n "${PRIVATE_KEY:-}" ]]; then
DEPLOYER="$(cast wallet address --private-key "$PRIVATE_KEY")"
elif [[ -n "${QUOTE_PUSH_DEPLOYER_ADDRESS:-}" ]]; then
DEPLOYER="${QUOTE_PUSH_DEPLOYER_ADDRESS}"
else
echo "[fail] set PRIVATE_KEY or QUOTE_PUSH_DEPLOYER_ADDRESS" >&2
exit 1
fi
TOKEN="${QUOTE_PUSH_SURPLUS_TOKEN_MAINNET:-$DEFAULT_USDC_MAINNET}"
CWUSDC="${CWUSDC_MAINNET:-$DEFAULT_CWUSDC_MAINNET}"
RECEIVER="${AAVE_QUOTE_PUSH_RECEIVER_MAINNET}"
RECEIVER_RESERVE_RAW="${QUOTE_PUSH_RECEIVER_RESERVE_RAW:-0}"
GAS_FLOOR_ETH="${QUOTE_PUSH_DEPLOYER_GAS_FLOOR_ETH:-0.003}"
OP_BUFFER_ETH="${QUOTE_PUSH_OPERATION_BUFFER_ETH:-0.0005}"
NATIVE_TOKEN_PRICE="${QUOTE_PUSH_NATIVE_TOKEN_PRICE:-3200}"
deployer_eth="$(cast balance "$DEPLOYER" --ether --rpc-url "$ETHEREUM_MAINNET_RPC")"
deployer_quote_raw="$(cast call "$TOKEN" 'balanceOf(address)(uint256)' "$DEPLOYER" --rpc-url "$ETHEREUM_MAINNET_RPC" | awk '{print $1}')"
deployer_base_raw="$(cast call "$CWUSDC" 'balanceOf(address)(uint256)' "$DEPLOYER" --rpc-url "$ETHEREUM_MAINNET_RPC" | awk '{print $1}')"
receiver_quote_raw="$(cast call "$TOKEN" 'balanceOf(address)(uint256)' "$RECEIVER" --rpc-url "$ETHEREUM_MAINNET_RPC" | awk '{print $1}')"
python3 - "$deployer_eth" "$deployer_quote_raw" "$deployer_base_raw" "$receiver_quote_raw" \
"$RECEIVER_RESERVE_RAW" "$GAS_FLOOR_ETH" "$OP_BUFFER_ETH" "$NATIVE_TOKEN_PRICE" "$DEPLOYER" "$RECEIVER" "$TOKEN" <<'PY'
import math
import sys
deployer_eth = float(sys.argv[1])
deployer_quote_raw = int(sys.argv[2])
deployer_base_raw = int(sys.argv[3])
receiver_quote_raw = int(sys.argv[4])
receiver_reserve_raw = int(sys.argv[5])
gas_floor_eth = float(sys.argv[6])
op_buffer_eth = float(sys.argv[7])
native_token_price = float(sys.argv[8])
deployer = sys.argv[9]
receiver = sys.argv[10]
token = sys.argv[11]
recycle_floor_eth = gas_floor_eth + op_buffer_eth
gas_shortfall_eth = max(0.0, recycle_floor_eth - deployer_eth)
gas_shortfall_quote_raw = math.ceil(gas_shortfall_eth * native_token_price * 1_000_000)
sweepable_raw = max(0, receiver_quote_raw - receiver_reserve_raw)
holdback_for_gas_raw = min(sweepable_raw, gas_shortfall_quote_raw)
recycleable_raw = max(0, sweepable_raw - holdback_for_gas_raw)
matched_base_cap_raw = min(recycleable_raw, deployer_base_raw)
def human(raw: int) -> str:
return f"{raw / 1_000_000:.6f}"
print("=== Mainnet quote-push surplus accounting ===")
print(f"deployer={deployer}")
print(f"receiver={receiver}")
print(f"token={token}")
print(f"deployer_eth={deployer_eth:.18f}")
print(f"gas_floor_eth={gas_floor_eth:.18f}")
print(f"operation_buffer_eth={op_buffer_eth:.18f}")
print(f"recycle_floor_eth={recycle_floor_eth:.18f}")
print(f"gas_shortfall_eth={gas_shortfall_eth:.18f}")
print(f"native_token_price_quote={native_token_price:.6f}")
print(f"gas_shortfall_quote_raw={gas_shortfall_quote_raw} human={human(gas_shortfall_quote_raw)}")
print(f"receiver_quote_raw={receiver_quote_raw} human={human(receiver_quote_raw)}")
print(f"receiver_reserve_raw={receiver_reserve_raw} human={human(receiver_reserve_raw)}")
print(f"sweepable_raw={sweepable_raw} human={human(sweepable_raw)}")
print(f"deployer_quote_raw={deployer_quote_raw} human={human(deployer_quote_raw)}")
print(f"deployer_cWUSDC_raw={deployer_base_raw} human={human(deployer_base_raw)}")
print(f"holdback_for_gas_raw={holdback_for_gas_raw} human={human(holdback_for_gas_raw)}")
print(f"recycleable_quote_raw={recycleable_raw} human={human(recycleable_raw)}")
print(f"matched_base_cap_raw={matched_base_cap_raw} human={human(matched_base_cap_raw)}")
print("")
print("Recommended next steps:")
print("1. Preview receiver surplus sweep:")
print(" bash scripts/deployment/sweep-mainnet-aave-quote-push-receiver-surplus.sh --dry-run")
if gas_shortfall_eth > 0:
print("2. Replenish deployer gas reserve before recycling surplus to the pool.")
print(
f" At current assumptions, hold back about {human(holdback_for_gas_raw)} quote units to cover the ETH shortfall."
)
print("3. After deployer ETH is back above the recycle floor, recycle the remainder into pool growth:")
print(" bash scripts/deployment/recycle-mainnet-aave-quote-push-surplus.sh --dry-run")
else:
print("2. Deployer gas reserve is above the recycle floor. Swept quote can be recycled into pool growth.")
print(" bash scripts/deployment/recycle-mainnet-aave-quote-push-surplus.sh --dry-run")
if matched_base_cap_raw == 0:
print("3. Wallet cWUSDC is the limiting asset for matched recycling; no pool-growth tranche is currently fundable.")
else:
print(
f"3. Current matched recycle ceiling is {human(matched_base_cap_raw)} quote/base units using deployer-held cWUSDC."
)
PY
if [[ -n "${QUOTE_PUSH_TREASURY_MANAGER_MAINNET:-}" ]]; then
manager_quote_raw="$(cast call "$QUOTE_PUSH_TREASURY_MANAGER_MAINNET" 'quoteBalance()(uint256)' --rpc-url "$ETHEREUM_MAINNET_RPC" 2>/dev/null | awk '{print $1}' || true)"
manager_available_raw="$(cast call "$QUOTE_PUSH_TREASURY_MANAGER_MAINNET" 'availableQuote()(uint256)' --rpc-url "$ETHEREUM_MAINNET_RPC" 2>/dev/null | awk '{print $1}' || true)"
manager_receiver_sweepable_raw="$(cast call "$QUOTE_PUSH_TREASURY_MANAGER_MAINNET" 'receiverSweepableQuote()(uint256)' --rpc-url "$ETHEREUM_MAINNET_RPC" 2>/dev/null | awk '{print $1}' || true)"
manager_gas_recipient="$(cast call "$QUOTE_PUSH_TREASURY_MANAGER_MAINNET" 'gasRecipient()(address)' --rpc-url "$ETHEREUM_MAINNET_RPC" 2>/dev/null | awk '{print $1}' || true)"
manager_recycle_recipient="$(cast call "$QUOTE_PUSH_TREASURY_MANAGER_MAINNET" 'recycleRecipient()(address)' --rpc-url "$ETHEREUM_MAINNET_RPC" 2>/dev/null | awk '{print $1}' || true)"
manager_receiver_owner="$(cast call "$QUOTE_PUSH_TREASURY_MANAGER_MAINNET" 'receiverOwner()(address)' --rpc-url "$ETHEREUM_MAINNET_RPC" 2>/dev/null | awk '{print $1}' || true)"
manager_receiver_owned="$(cast call "$QUOTE_PUSH_TREASURY_MANAGER_MAINNET" 'isReceiverOwnedByManager()(bool)' --rpc-url "$ETHEREUM_MAINNET_RPC" 2>/dev/null | awk '{print $1}' || true)"
if [[ -n "$manager_quote_raw" && -n "$manager_available_raw" ]]; then
manager_quote_human="$(python3 - "$manager_quote_raw" <<'PY'
import sys
print(f"{int(sys.argv[1]) / 1_000_000:.6f}")
PY
)"
manager_available_human="$(python3 - "$manager_available_raw" <<'PY'
import sys
print(f"{int(sys.argv[1]) / 1_000_000:.6f}")
PY
)"
manager_receiver_sweepable_human="$(python3 - "${manager_receiver_sweepable_raw:-0}" <<'PY'
import sys
print(f"{int(sys.argv[1]) / 1_000_000:.6f}")
PY
)"
cat <<EOF
=== Treasury manager state ===
manager=${QUOTE_PUSH_TREASURY_MANAGER_MAINNET}
manager_quote_raw=${manager_quote_raw} human=${manager_quote_human}
manager_available_raw=${manager_available_raw} human=${manager_available_human}
manager_receiver_sweepable_raw=${manager_receiver_sweepable_raw:-0} human=${manager_receiver_sweepable_human}
manager_receiver_owner=${manager_receiver_owner:-unknown}
manager_receiver_owned_by_manager=${manager_receiver_owned:-unknown}
manager_gas_recipient=${manager_gas_recipient:-unknown}
manager_recycle_recipient=${manager_recycle_recipient:-unknown}
EOF
fi
fi