accept atom payments #29

Closed
zramsay wants to merge 8 commits from zach/atom-payments into main
Member

Goes with: cerc-io/stack-orchestrator#968

This PR implements support for Cosmos ATOM payments in addition to the existing Laconic testnet (alnt) payment system. Users can now make payments on the Cosmos mainnet and provide the transaction hash as payment proof for application deployments.

Configuration

  • Added ATOM payment config to webapp-deployment-status-api:
    • ATOM_PAYMENT_ADDRESS: The Cosmos address to receive payments
    • MIN_ATOM_PAYMENT: Minimum required payment (defaults to 1 ATOM)
    • COSMOS_RPC_ENDPOINT: URL for Cosmos RPC node

New Payment Verification Module

  • Created atomPayments.ts with verifyAtomPayment function to:
    • Query Cosmos RPC endpoint for transaction details
    • Verify payment recipient, amount, and success
    • Prevent double-spending with in-memory transaction tracking
    • Support marking transactions as "used" for deployments

API Enhancements

  • Added new endpoint /verify/atom-payment to:
    • Accept transaction hash and minimum amount
    • Verify ATOM payment validity
    • Track transaction usage to prevent double-spending

Glue

  • Updated run.sh to pass ATOM configuration to stack orchestrator

Stack Orchestrator Integration

  • Updated confirm_payment in util.py to:
    • First check for laconic payment validity
    • If not found, verify as ATOM payment via API call
    • Enable cross-system verification to maintain payment integrity
    • Mark transaction as used when verified for deployment

Deployer Record Updates

  • Extended WebappDeployer record format to include:
    • atomPaymentAddress: Cosmos address for payments
    • minimumAtomPayment: Minimum required ATOM amount
  • Updated CLI options in publish-webapp-deployer.py

Testing

ATOM payments can be tested by:

  1. Setting up a deployer with an ATOM payment address
  2. Making a payment to this address on Cosmos mainnet
  3. Using the transaction hash in an ApplicationDeploymentRequest
  4. Verifying the deployment proceeds successfully
Goes with: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/968 This PR implements support for Cosmos ATOM payments in addition to the existing Laconic testnet (alnt) payment system. Users can now make payments on the Cosmos mainnet and provide the transaction hash as payment proof for application deployments. ## Configuration - Added ATOM payment config to webapp-deployment-status-api: - ATOM_PAYMENT_ADDRESS: The Cosmos address to receive payments - MIN_ATOM_PAYMENT: Minimum required payment (defaults to 1 ATOM) - COSMOS_RPC_ENDPOINT: URL for Cosmos RPC node ## New Payment Verification Module - Created atomPayments.ts with verifyAtomPayment function to: - Query Cosmos RPC endpoint for transaction details - Verify payment recipient, amount, and success - Prevent double-spending with in-memory transaction tracking - Support marking transactions as "used" for deployments ## API Enhancements - Added new endpoint /verify/atom-payment to: - Accept transaction hash and minimum amount - Verify ATOM payment validity - Track transaction usage to prevent double-spending ## Glue - Updated `run.sh` to pass ATOM configuration to stack orchestrator ## Stack Orchestrator Integration - Updated confirm_payment in util.py to: - First check for laconic payment validity - If not found, verify as ATOM payment via API call - Enable cross-system verification to maintain payment integrity - Mark transaction as used when verified for deployment ## Deployer Record Updates - Extended WebappDeployer record format to include: - atomPaymentAddress: Cosmos address for payments - minimumAtomPayment: Minimum required ATOM amount - Updated CLI options in publish-webapp-deployer.py ## Testing ATOM payments can be tested by: 1. Setting up a deployer with an ATOM payment address 2. Making a payment to this address on Cosmos mainnet 3. Using the transaction hash in an ApplicationDeploymentRequest 4. Verifying the deployment proceeds successfully
zramsay added 1 commit 2025-04-30 15:14:36 +00:00
zramsay added 1 commit 2025-05-01 11:51:43 +00:00
zramsay added 1 commit 2025-05-02 18:14:17 +00:00
zramsay added 1 commit 2025-06-26 14:45:45 +00:00
zramsay added 1 commit 2025-06-26 14:59:30 +00:00
zramsay added 1 commit 2025-06-26 15:04:03 +00:00
zramsay added 1 commit 2025-06-26 15:17:01 +00:00
zramsay added 1 commit 2025-06-26 15:44:04 +00:00
Author
Member

revised to do this without stack-orchestrator. this is deployed and works for both LNT and ATOM

revised to do this without stack-orchestrator. this is deployed and works for both LNT and ATOM
Author
Member

revised even further such that payment verification happens at the app level.

revised even further such that payment verification happens at the app level.
zramsay closed this pull request 2025-06-27 17:10:45 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cerc-io/webapp-deployment-status-api#29
No description provided.