Documentation
¶
Overview ¶
Package bridge implements asset management for the ATLYS protocol
Package bridge implements the cross-chain communication protocol for ATLYS ¶
Package bridge implements state management for the ATLYS protocol
Index ¶
- type Asset
- type AssetConfig
- type AssetInfo
- type AssetManager
- func (am *AssetManager) CleanExpiredLocks()
- func (am *AssetManager) GetAssetInfo(symbol string) (*Asset, error)
- func (am *AssetManager) GetExchangeRate(sourceChain string, baseAsset string, quoteAsset string) (uint64, error)
- func (am *AssetManager) GetLockedAssets(txHash types.Hash) (*LockedAsset, error)
- func (am *AssetManager) LockAssets(ctx context.Context, tx *types.Transaction) (*LockedAsset, error)
- func (am *AssetManager) RegisterAsset(asset *Asset) error
- func (am *AssetManager) RegisterAssetPair(pair *AssetPair) error
- func (am *AssetManager) ReleaseAssets(txHash types.Hash) error
- func (am *AssetManager) TransferAssets(ctx context.Context, txHash types.Hash) error
- func (am *AssetManager) UpdateExchangeRate(sourceChain string, baseAsset string, quoteAsset string, newRate uint64) error
- type AssetPair
- type Bridge
- type BridgeConfig
- type ChainConnection
- type ChainState
- type ConnectionStatus
- type LockStatus
- type LockedAsset
- type StateConfig
- type StateManager
- func (sm *StateManager) GenerateStateProof(sourceChain, destChain string, height uint64) (*StateProof, error)
- func (sm *StateManager) GetChainState(chainID string) (*ChainState, error)
- func (sm *StateManager) GetLastAnchoredHeight(sourceChain, targetChain string) (uint64, error)
- func (sm *StateManager) RegisterChain(chainID string) error
- func (sm *StateManager) UpdateChainState(chainID string, height uint64, stateRoot types.Hash, ...) error
- func (sm *StateManager) UpdateCrossChainAnchor(sourceChain, targetChain string, height uint64) error
- func (sm *StateManager) ValidateStateUpdate(chainID string, height uint64, signature []byte, ...) error
- func (sm *StateManager) VerifyStateProof(proof *StateProof) error
- type StateProof
- type StateUpdate
- type TransactionStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Asset ¶
type Asset struct {
Symbol string
Name string
Decimals uint8
TotalSupply uint64
NativeChain string
SupportedChains map[string]*AssetInfo
LastUpdate time.Time
}
Asset represents a registered asset across chains
type AssetConfig ¶
type AssetConfig struct {
LockTimeout time.Duration
MinLockAmount uint64
MaxLockAmount uint64
RateUpdateInterval time.Duration
}
AssetConfig contains configuration parameters for asset management
type AssetInfo ¶
type AssetInfo struct {
ContractAddress string
TotalLocked uint64
TotalMinted uint64
LastHeight uint64
}
AssetInfo contains chain-specific asset information
type AssetManager ¶
type AssetManager struct {
// contains filtered or unexported fields
}
AssetManager handles cross-chain asset transfers and management
func NewAssetManager ¶
func NewAssetManager(config *AssetConfig) *AssetManager
NewAssetManager creates a new instance of AssetManager
func (*AssetManager) CleanExpiredLocks ¶
func (am *AssetManager) CleanExpiredLocks()
CleanExpiredLocks removes expired locked assets
func (*AssetManager) GetAssetInfo ¶
func (am *AssetManager) GetAssetInfo(symbol string) (*Asset, error)
GetAssetInfo returns information about a registered asset
func (*AssetManager) GetExchangeRate ¶
func (am *AssetManager) GetExchangeRate(sourceChain string, baseAsset string, quoteAsset string) (uint64, error)
GetExchangeRate returns the current exchange rate for an asset pair
func (*AssetManager) GetLockedAssets ¶
func (am *AssetManager) GetLockedAssets(txHash types.Hash) (*LockedAsset, error)
GetLockedAssets returns information about locked assets
func (*AssetManager) LockAssets ¶
func (am *AssetManager) LockAssets(ctx context.Context, tx *types.Transaction) (*LockedAsset, error)
LockAssets locks assets for cross-chain transfer
func (*AssetManager) RegisterAsset ¶
func (am *AssetManager) RegisterAsset(asset *Asset) error
RegisterAsset adds a new asset to the registry
func (*AssetManager) RegisterAssetPair ¶
func (am *AssetManager) RegisterAssetPair(pair *AssetPair) error
RegisterAssetPair creates a new cross-chain asset pair
func (*AssetManager) ReleaseAssets ¶
func (am *AssetManager) ReleaseAssets(txHash types.Hash) error
ReleaseAssets releases locked assets
func (*AssetManager) TransferAssets ¶
TransferAssets completes a cross-chain asset transfer
func (*AssetManager) UpdateExchangeRate ¶
func (am *AssetManager) UpdateExchangeRate(sourceChain string, baseAsset string, quoteAsset string, newRate uint64) error
UpdateExchangeRate updates the exchange rate for an asset pair
type AssetPair ¶
type AssetPair struct {
BaseAsset string
QuoteAsset string
SourceChain string
DestChain string
ExchangeRate uint64 // Base rate multiplied by 10^8
UpdateTime time.Time
}
AssetPair represents a cross-chain asset pair configuration
type Bridge ¶
type Bridge struct {
// contains filtered or unexported fields
}
Bridge manages cross-chain communication and transaction processing
func NewBridge ¶
func NewBridge(vs *consensus.ValidatorSet, config *BridgeConfig) *Bridge
NewBridge creates a new instance of the ATLYS bridge
func (*Bridge) GetTransactionStatus ¶
func (b *Bridge) GetTransactionStatus(txHash types.Hash) (*TransactionStatus, error)
GetTransactionStatus returns the current status of a transaction
func (*Bridge) ProcessCrossChainTx ¶
ProcessCrossChainTx handles cross-chain transaction processing
func (*Bridge) RegisterChain ¶
RegisterChain adds a new blockchain to the bridge
type BridgeConfig ¶
type BridgeConfig struct {
RequiredConfirmations uint64
MaxPendingTx uint64
BlockTimeout time.Duration
ValidatorQuorum float64
}
BridgeConfig contains configuration parameters for the bridge
type ChainConnection ¶
type ChainConnection struct {
ChainID string
LastBlock uint64
LastUpdateTime time.Time
Status ConnectionStatus
Client interface{} // Chain-specific client interface
}
ChainConnection represents a connection to a specific blockchain
type ChainState ¶
type ChainState struct {
ChainID string
LastHeight uint64
LastStateRoot types.Hash
LastUpdateTime time.Time
PendingUpdates map[uint64]*StateUpdate
CrossChainAnchors map[string]uint64 // Maps chain ID to last anchored height
}
ChainState represents the current state of a blockchain
type ConnectionStatus ¶
type ConnectionStatus int
ConnectionStatus represents the current state of a chain connection
const ( StatusDisconnected ConnectionStatus = iota StatusConnecting StatusActive StatusError )
type LockStatus ¶
type LockStatus int
LockStatus represents the current status of locked assets
const ( StatusLocked LockStatus = iota StatusReleased StatusTransferred StatusExpired )
type LockedAsset ¶
type LockedAsset struct {
TxHash types.Hash
SourceChain string
DestChain string
Asset string
Amount uint64
Owner types.Address
LockTime time.Time
ExpirationTime time.Time
Status LockStatus
}
LockedAsset represents assets locked for cross-chain transfer
type StateConfig ¶
type StateConfig struct {
UpdateInterval time.Duration
MaxPendingUpdates uint64
ProofExpiration time.Duration
MinValidators uint64
}
StateConfig contains configuration parameters for state management
type StateManager ¶
type StateManager struct {
// contains filtered or unexported fields
}
StateManager handles cross-chain state synchronization and verification
func NewStateManager ¶
func NewStateManager(config *StateConfig) *StateManager
NewStateManager creates a new instance of StateManager
func (*StateManager) GenerateStateProof ¶
func (sm *StateManager) GenerateStateProof(sourceChain, destChain string, height uint64) (*StateProof, error)
GenerateStateProof creates a proof for cross-chain verification
func (*StateManager) GetChainState ¶
func (sm *StateManager) GetChainState(chainID string) (*ChainState, error)
GetChainState returns the current state of a chain
func (*StateManager) GetLastAnchoredHeight ¶
func (sm *StateManager) GetLastAnchoredHeight(sourceChain, targetChain string) (uint64, error)
GetLastAnchoredHeight returns the last anchored height between two chains
func (*StateManager) RegisterChain ¶
func (sm *StateManager) RegisterChain(chainID string) error
RegisterChain initializes state tracking for a new chain
func (*StateManager) UpdateChainState ¶
func (sm *StateManager) UpdateChainState(chainID string, height uint64, stateRoot types.Hash, validators []types.ValidatorAddress) error
UpdateChainState processes a new state update from a chain
func (*StateManager) UpdateCrossChainAnchor ¶
func (sm *StateManager) UpdateCrossChainAnchor(sourceChain, targetChain string, height uint64) error
UpdateCrossChainAnchor updates the last anchored height for cross-chain references
func (*StateManager) ValidateStateUpdate ¶
func (sm *StateManager) ValidateStateUpdate(chainID string, height uint64, signature []byte, validator types.ValidatorAddress) error
ValidateStateUpdate verifies a state update with validator signatures
func (*StateManager) VerifyStateProof ¶
func (sm *StateManager) VerifyStateProof(proof *StateProof) error
VerifyStateProof verifies a cross-chain state proof
type StateProof ¶
type StateProof struct {
SourceChain string
DestinationChain string
Height uint64
StateRoot types.Hash
ProofData []byte
Timestamp time.Time
ValidatorSigs map[types.ValidatorAddress][]byte
}
StateProof contains proof data for cross-chain verification
type StateUpdate ¶
type StateUpdate struct {
Height uint64
StateRoot types.Hash
Timestamp time.Time
Validators []types.ValidatorAddress
Signatures map[types.ValidatorAddress][]byte
}
StateUpdate represents a pending state update