Documentation ¶
Index ¶
- Constants
- func NewService(privateKey *ecdsa.PrivateKey, cashiers []TokenCashier, batchSize uint16, ...) (*service, error)
- func StartServer(srv *service, grpcPort int, grpcProxyPort int)
- type Recorder
- func (recorder *Recorder) AddTransfer(tx *Transfer) error
- func (recorder *Recorder) AmountOfTransferred(cashier, token common.Address) (*big.Int, error)
- func (recorder *Recorder) ConfirmTransfer(tx *Transfer) error
- func (recorder *Recorder) SettleTransfer(tx *Transfer) error
- func (recorder *Recorder) Start(ctx context.Context) error
- func (recorder *Recorder) Stop(ctx context.Context) error
- func (recorder *Recorder) TipHeight(cashier string) (uint64, error)
- func (recorder *Recorder) Transfer(_id common.Hash) (*Transfer, error)
- func (recorder *Recorder) TransfersToSettle() ([]*Transfer, error)
- func (recorder *Recorder) TransfersToSubmit() ([]*Transfer, error)
- func (recorder *Recorder) UpdateSyncHeight(cashier string, height uint64) error
- func (recorder *Recorder) UpsertTransfer(tx *Transfer) error
- type Service
- type TokenCashier
- type Transfer
- type TransferStatus
Constants ¶
View Source
const ( // TransferNew stands for a new transfer TransferNew TransferStatus = "new" // WitnessSubmitted stands for a witnessed transfer WitnessSubmitted = "submitted" // SubmissionConfirmed stands for a confirmed witness SubmissionConfirmed = "confirmed" // TransferSettled stands for a settled transfer TransferSettled = "settled" )
Variables ¶
This section is empty.
Functions ¶
func NewService ¶
func NewService( privateKey *ecdsa.PrivateKey, cashiers []TokenCashier, batchSize uint16, processInterval time.Duration, disableSubmit bool, ) (*service, error)
NewService creates a new witness service
func StartServer ¶
Types ¶
type Recorder ¶
type Recorder struct {
// contains filtered or unexported fields
}
Recorder is a logger based on sql to record exchange events
func NewRecorder ¶
func NewRecorder( store *db.SQLStore, transferTableName string, tokenPairs map[common.Address]common.Address, ) *Recorder
NewRecorder returns a recorder for exchange
func (*Recorder) AddTransfer ¶
AddTransfer creates a new transfer record
func (*Recorder) AmountOfTransferred ¶
func (*Recorder) ConfirmTransfer ¶
ConfirmTransfer marks a record as settled
func (*Recorder) SettleTransfer ¶
SettleTransfer marks a record as submitted
func (*Recorder) TransfersToSettle ¶
TransfersToSettle returns the list of transfers to confirm
func (*Recorder) TransfersToSubmit ¶
TransfersToSubmit returns the list of transfers to submit
func (*Recorder) UpdateSyncHeight ¶
func (*Recorder) UpsertTransfer ¶
type Service ¶
type Service interface { // Start starts the service Start(context.Context) error // Stop stops the service Stop(context.Context) error }
Service manages to exchange iotex coin to ERC20 token on ethereum
type TokenCashier ¶
type TokenCashier interface { Start(context.Context) error Stop(context.Context) error GetRecorder() *Recorder PullTransfersByHeight(blockHeight uint64) error PullTransfers(blockCount uint16) error SubmitTransfers(func(*Transfer, common.Address) (common.Hash, common.Address, []byte, error)) error CheckTransfers() error }
TokenCashier defines the interface to pull transfers from chain in a block range
func NewTokenCashier ¶
func NewTokenCashier( id string, relayerURL string, iotexClient iotex.ReadOnlyClient, cashierContractAddr address.Address, validatorContractAddr common.Address, recorder *Recorder, startBlockHeight uint64, ) (TokenCashier, error)
NewTokenCashier creates a new TokenCashier
func NewTokenCashierOnEthereum ¶
func NewTokenCashierOnEthereum( id string, relayerURL string, ethereumClient *ethclient.Client, cashierContractAddr common.Address, tokenSafeContractAddr common.Address, validatorContractAddr common.Address, recorder *Recorder, startBlockHeight uint64, confirmBlockNumber uint8, reverseRecorder *Recorder, reverseCashierContractAddr common.Address, ) (TokenCashier, error)
NewTokenCashierOnEthereum creates a new TokenCashier on ethereum
Click to show internal directories.
Click to hide internal directories.