Files
bridge/opnet-watcher/plugins/algorand.go
T
zeekay 118e977946 feat: universal Teleport bridge with 35+ chain plugins
- opnet-watcher: universal binary with plugin architecture
  - 3 functional plugins (OP_NET, Solana, TON)
  - Generic EVMPlugin handles all EVM chains (Ethereum, Base, Arbitrum, etc.)
  - 17 non-EVM chain stubs (Sui, NEAR, Cosmos, XRPL, ICP, etc.)
  - Threshold signing via luxfi/crypto (CGGMP21/FROST)
  - Separate txSigner hot wallet for on-chain submission
  - Multi-tenant API with hostname-based routing
  - Confirmation depth, backing sanity checks, EIP-155 local signing
- manifests: 32 chain configs + 5 tenant configs (lux, zoo, hanzo, pars, spc)
- k8s: fix chain IDs 1330663759→4294967299, ClusterIP services, KMS secrets
- CI: conformance tests gate production deployment
2026-04-06 23:03:19 -07:00

44 lines
1.1 KiB
Go

// Copyright (C) 2025, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package plugins
import (
"context"
"fmt"
"math/big"
"net/http"
"time"
)
const AlgorandChainID uint64 = 0x414C474F // "ALGO" in Teleporter namespace
// AlgorandPlugin polls the Algod API for deposit transactions from the
// bridge application. Algorand uses ed25519 signing.
type AlgorandPlugin struct {
apiURL string
appID string // Application ID
apiKey string
client *http.Client
}
func NewAlgorandPlugin(apiURL, appID, apiKey string) *AlgorandPlugin {
return &AlgorandPlugin{
apiURL: apiURL,
appID: appID,
apiKey: apiKey,
client: &http.Client{Timeout: 15 * time.Second},
}
}
func (a *AlgorandPlugin) Name() string { return "algorand" }
func (a *AlgorandPlugin) ChainID() uint64 { return AlgorandChainID }
func (a *AlgorandPlugin) PollDeposits(ctx context.Context, fromRound uint64) ([]DepositEvent, uint64, error) {
return nil, fromRound, fmt.Errorf("algorand: not yet implemented")
}
func (a *AlgorandPlugin) QueryBacking(ctx context.Context) (*big.Int, error) {
return nil, fmt.Errorf("algorand: not yet implemented")
}