Skip to content
Closed

Infrom #1575

Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
d712f0a
Add deployment infrastructure and cross-chain integration
loydcercenia-Paul Oct 13, 2025
7de55b4
Add clean deployment workflow with tx tracking
loydcercenia-Paul Oct 13, 2025
803db75
Add Moralis API key to gitignore and integrate CryptonoutController
loydcercenia-Paul Oct 13, 2025
6de8cc7
Add Jupiter authority reannouncement with secure key management
loydcercenia-Paul Oct 13, 2025
17698d3
Add zero-cost authority transfer with Helius/QuickNode priority fee l…
loydcercenia-Paul Oct 13, 2025
6d59a18
Add on-chain verification and multisig execution - ALL VERIFIED ✅
loydcercenia-Paul Oct 13, 2025
ef84b81
Identify GLzZk1sczzW6fM4uPFeQCtTZQaf8H5VaBt99tUMbJAAW as new master c…
loydcercenia-Paul Oct 13, 2025
e094db1
Add asset transfer with valid signer and priority fee
loydcercenia-Paul Oct 13, 2025
d97c704
Reannounce FVhQ3QHvXudWSdGix2sdcG47YmrmUxRhf3KCBmiKfekf with new cont…
loydcercenia-Paul Oct 13, 2025
acd4060
Add rebates income check: 0.580587 SOL (16.12)
loydcercenia-Paul Oct 13, 2025
2edc8af
Add security bots: automated scans, Solana monitoring, auto-updates
loydcercenia-Paul Oct 13, 2025
9a4b33f
🔒 Auto-fix security vulnerabilities
sec-dummy Oct 13, 2025
c8b39f5
Multi-program deployment ready: 11/17 verified, 0.58 SOL income
loydcercenia-Paul Oct 13, 2025
521ec1b
Add comprehensive security: API protection, relayer verification, reb…
loydcercenia-Paul Oct 13, 2025
ada82b6
Integrate CryptonoutController as main repo base
loydcercenia-Paul Oct 13, 2025
d2d790e
Complete system verification: 100% operational, 0.58 SOL rebates, all…
loydcercenia-Paul Oct 13, 2025
baf3b11
⬆️ Update dependencies and apply best practices
loydcercenia-Paul Oct 19, 2025
c3a9966
Merge pull request #1 from loydcercenia-Paul/auto-updates
loydcercenia-Paul Oct 20, 2025
99301e0
⬆️ Update dependencies and apply best practices
loydcercenia-Paul Oct 26, 2025
c6e4d2d
Merge pull request #2 from imfromfuture3000-Android/auto-updates
imfromfuture3000-Android Oct 28, 2025
ab5024c
Create Agentic.ts
imfromfuture3000-Android Oct 28, 2025
fbd9f40
Helius API configured and verified: 0.243267 SOL confirmed
loydcercenia-Paul Nov 12, 2025
14630f2
BPFLoader reannounced: Master controller GLzZk1s..., Treasury 4eJZVbb...
loydcercenia-Paul Nov 12, 2025
e32c8b9
⬆️ Update dependencies and apply best practices
loydcercenia-Paul Nov 16, 2025
59a7f75
Merge pull request #4 from imfromfuture3000-Android:auto-updates
imfromfuture3000-Android Dec 11, 2025
52d13ab
Merge branch 'main' into main
imfromfuture3000-Android Dec 11, 2025
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
Prev Previous commit
Next Next commit
Add clean deployment workflow with tx tracking
  • Loading branch information
loydcercenia-Paul authored Oct 13, 2025
commit 7de55b4106a6ebb69ab3cb1f4b909a0e5dfa21f8
149 changes: 149 additions & 0 deletions .github/workflows/full-deployment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
name: Full Deployment Pipeline

on:
push:
branches: [main]
workflow_dispatch:
inputs:
environment:
description: 'Deployment Environment'
required: true
default: 'mainnet'
type: choice
options:
- mainnet
- devnet

env:
SOLANA_CLI_VERSION: '1.18.26'
NODE_VERSION: '20'

jobs:
deploy:
runs-on: ubuntu-latest
outputs:
tx_hash: ${{ steps.deploy.outputs.tx_hash }}
program_id: ${{ steps.deploy.outputs.program_id }}
controller: ${{ steps.deploy.outputs.controller }}

steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}

- name: Install Solana CLI
run: |
sh -c "$(curl -sSfL https://release.solana.com/v${{ env.SOLANA_CLI_VERSION }}/install)"
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH

- name: Configure Solana
run: |
solana config set --url ${{ github.event.inputs.environment == 'devnet' && 'https://api.devnet.solana.com' || 'https://api.mainnet-beta.solana.com' }}
echo "${{ secrets.SOLANA_DEPLOYER_KEY }}" > deployer-key.json
solana config set --keypair deployer-key.json

- name: Install Dependencies
run: |
npm install -g @solana/web3.js @coral-xyz/anchor-cli
npm install --save-dev

- name: Deploy Contracts
id: deploy
env:
HELIUS_API_KEY: ${{ secrets.HELIUS_API_KEY }}
QUICKNODE_ENDPOINT: ${{ secrets.QUICKNODE_ENDPOINT }}
run: |
TIMESTAMP=$(date +%s)

# Deploy and capture output
DEPLOY_OUTPUT=$(solana program deploy \
--program-id GENEtH5amGSi8kHAtQoezp1XEXwZJ8vcuePYnXdKrMYz \
--upgrade-authority FsQPFuje4WMdvbyoVef6MRMuzNZt9E8HM9YBN8T3Zbdq \
--max-sign-attempts 50 \
--use-rpc 2>&1)

# Extract transaction signature
TX_HASH=$(echo "$DEPLOY_OUTPUT" | grep -oP 'Signature: \K[A-Za-z0-9]+' | head -1)
PROGRAM_ID="GENEtH5amGSi8kHAtQoezp1XEXwZJ8vcuePYnXdKrMYz"
CONTROLLER="FsQPFuje4WMdvbyoVef6MRMuzNZt9E8HM9YBN8T3Zbdq"

echo "tx_hash=$TX_HASH" >> $GITHUB_OUTPUT
echo "program_id=$PROGRAM_ID" >> $GITHUB_OUTPUT
echo "controller=$CONTROLLER" >> $GITHUB_OUTPUT
echo "timestamp=$TIMESTAMP" >> $GITHUB_OUTPUT

# Save deployment report
cat > deployment-report.json <<EOF
{
"timestamp": "$TIMESTAMP",
"transaction": "$TX_HASH",
"programId": "$PROGRAM_ID",
"controller": "$CONTROLLER",
"environment": "${{ github.event.inputs.environment || 'mainnet' }}",
"deployer": "$(solana address)",
"slot": "$(solana slot)"
}
EOF

- name: Verify Deployment
run: |
sleep 5
solana program show GENEtH5amGSi8kHAtQoezp1XEXwZJ8vcuePYnXdKrMYz
solana transaction-history ${{ steps.deploy.outputs.tx_hash }}

- name: Update Controller
if: success()
run: |
node scripts/update-controller.js \
--program-id ${{ steps.deploy.outputs.program_id }} \
--controller ${{ steps.deploy.outputs.controller }} \
--tx-hash ${{ steps.deploy.outputs.tx_hash }}

- name: Upload Deployment Artifacts
uses: actions/upload-artifact@v4
with:
name: deployment-report-${{ steps.deploy.outputs.timestamp }}
path: |
deployment-report.json
Deployer-Gene/.cache/*.json

- name: Create Release
if: github.event_name == 'push'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: deploy-${{ steps.deploy.outputs.timestamp }}
release_name: Deployment ${{ steps.deploy.outputs.timestamp }}
body: |
## Deployment Summary

**Transaction Hash:** `${{ steps.deploy.outputs.tx_hash }}`
**Program ID:** `${{ steps.deploy.outputs.program_id }}`
**Controller:** `${{ steps.deploy.outputs.controller }}`
**Environment:** ${{ github.event.inputs.environment || 'mainnet' }}

[View on Solscan](https://solscan.io/tx/${{ steps.deploy.outputs.tx_hash }})

notify:
needs: deploy
runs-on: ubuntu-latest
if: always()
steps:
- name: Deployment Status
run: |
if [ "${{ needs.deploy.result }}" == "success" ]; then
echo "✅ Deployment successful!"
echo "TX: ${{ needs.deploy.outputs.tx_hash }}"
echo "Program: ${{ needs.deploy.outputs.program_id }}"
echo "Controller: ${{ needs.deploy.outputs.controller }}"
else
echo "❌ Deployment failed"
exit 1
fi
61 changes: 61 additions & 0 deletions .github/workflows/verify-deployment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Verify Deployment

on:
workflow_run:
workflows: ["Full Deployment Pipeline"]
types: [completed]

jobs:
verify:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}

steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Download Artifacts
uses: actions/download-artifact@v4
with:
pattern: deployment-report-*
merge-multiple: true

- name: Verify on Solscan
run: |
if [ -f deployment-report.json ]; then
TX_HASH=$(jq -r '.transaction' deployment-report.json)
PROGRAM_ID=$(jq -r '.programId' deployment-report.json)

echo "🔍 Verifying deployment..."
echo "Transaction: https://solscan.io/tx/$TX_HASH"
echo "Program: https://solscan.io/account/$PROGRAM_ID"

# Verify transaction exists
curl -s "https://api.solscan.io/transaction?tx=$TX_HASH" | jq .
fi

- name: Update README
run: |
if [ -f deployment-report.json ]; then
TX_HASH=$(jq -r '.transaction' deployment-report.json)
TIMESTAMP=$(jq -r '.timestamp' deployment-report.json)

cat >> DEPLOYMENT_LOG.md <<EOF
## Deployment $(date -d @$TIMESTAMP +"%Y-%m-%d %H:%M:%S")

- **TX Hash:** [\`$TX_HASH\`](https://solscan.io/tx/$TX_HASH)
- **Status:** ✅ Verified
- **Workflow:** [Run #${{ github.run_number }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})

EOF

git config user.name "GitHub Actions"
git config user.email "[email protected]"
git add DEPLOYMENT_LOG.md
git commit -m "Update deployment log [skip ci]" || true
git push || true
fi
13 changes: 13 additions & 0 deletions DEPLOYMENT_LOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Deployment Log

This file tracks all successful deployments with transaction hashes and verification links.

---

## Initial Setup - 2025-01-13

- **Program ID:** `GENEtH5amGSi8kHAtQoezp1XEXwZJ8vcuePYnXdKrMYz`
- **Controller:** `FsQPFuje4WMdvbyoVef6MRMuzNZt9E8HM9YBN8T3Zbdq`
- **Status:** Ready for deployment

---
13 changes: 13 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "github-mcp-server-deployment",
"version": "2.0.0",
"private": true,
"scripts": {
"deploy": "node scripts/update-controller.js",
"verify": "solana program show GENEtH5amGSi8kHAtQoezp1XEXwZJ8vcuePYnXdKrMYz"
},
"devDependencies": {
"@solana/web3.js": "^1.95.8",
"@coral-xyz/anchor": "^0.30.1"
}
}
44 changes: 44 additions & 0 deletions scripts/update-controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/usr/bin/env node
const { Connection, PublicKey, Keypair } = require('@solana/web3.js');
const fs = require('fs');

async function updateController(programId, controller, txHash) {
const connection = new Connection(process.env.SOLANA_RPC || 'https://api.mainnet-beta.solana.com');

const report = {
timestamp: new Date().toISOString(),
programId,
controller,
txHash,
verified: false
};

try {
const tx = await connection.getTransaction(txHash, { maxSupportedTransactionVersion: 0 });
if (tx) {
report.verified = true;
report.slot = tx.slot;
report.blockTime = tx.blockTime;
}

const programInfo = await connection.getAccountInfo(new PublicKey(programId));
if (programInfo) {
report.programDataSize = programInfo.data.length;
report.programOwner = programInfo.owner.toBase58();
}

fs.writeFileSync('controller-update.json', JSON.stringify(report, null, 2));
console.log('✅ Controller updated successfully');
console.log(JSON.stringify(report, null, 2));
} catch (error) {
console.error('❌ Controller update failed:', error.message);
process.exit(1);
}
}

const args = process.argv.slice(2);
const programId = args[args.indexOf('--program-id') + 1];
const controller = args[args.indexOf('--controller') + 1];
const txHash = args[args.indexOf('--tx-hash') + 1];

updateController(programId, controller, txHash);