blockchain

package
v0.0.0-...-dc3c4d4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2023 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	AppRegistryContractAddr common.Address
	OwnerAddr               *common.Address
	OperatorPrivateKey      string
}

func MustNewConfigFromViper

func MustNewConfigFromViper() *Config

type ContractEventObserver

type ContractEventObserver interface {
	// APP registry
	OnAppCreated(event *contract.AppRegistryCreated, rawlog *types.Log) error
	// App
	OnDeposit(event *contract.AppDeposit, rawlog *types.Log) error
	OnWithdraw(event *contract.AppWithdraw, rawlog *types.Log) error
	OnFrozen(event *contract.AppFrozen, rawlog *types.Log) error
	// ApiWeightToken
	OnResourceChanged(event *contract.ApiWeightTokenResourceChanged, rawlog *types.Log) error
	// VipCoin
	OnTransfer(event *contract.VipCoinTransferSingle, rawlog *types.Log) error
	// confirmation
	StatusConfirmQueue() <-chan [2]common.Address // [app, addr]
	OnConfirmStatus(app, addr common.Address, balance *big.Int, frozen, block int64) error
	// reorg revert
	OnReorgRevert(revertToBlock int64) error
}

type Monitor

type Monitor struct {
	// contains filtered or unexported fields
}

Monitor sync blockchain event logs to monitor contract events.

func MustNewMonitor

func MustNewMonitor(config *Config, provider *Provider, eventObserver ContractEventObserver) *Monitor

func (*Monitor) Sync

func (m *Monitor) Sync(ctx context.Context)

type Provider

type Provider struct {
	*client.RpcEthClient
	Config
	// contains filtered or unexported fields
}

Provider provides blockchain operations.

func MustNewProvider

func MustNewProvider(config *Config) *Provider

func (*Provider) BatchChargeAppBills

func (p *Provider) BatchChargeAppBills(
	opts *bind.TransactOpts, app common.Address, requests []contract.IAppConfigChargeRequest) (*types.Transaction, error)

BatchChargeAppBills batch charges APP bills.

func (*Provider) FlushApiWeightTokenPendingConfig

func (p *Provider) FlushApiWeightTokenPendingConfig(opts *bind.TransactOpts, awtAddr common.Address) (*types.Transaction, error)

FlushApiWeightTokenPendingConfig flushes `ApiWeightToken` pending configurations.

func (*Provider) GetApiWeightTokenContract

func (p *Provider) GetApiWeightTokenContract(awtAddr common.Address) (*contract.ApiWeightToken, error)

GetApiWeightTokenContract gets `ApiWeightToken` contract stub.

func (*Provider) GetApiWeightTokenPendingSeconds

func (p *Provider) GetApiWeightTokenPendingSeconds(callOpts *bind.CallOpts, awtAddr common.Address) (*big.Int, error)

GetApiWeightTokenPendingSeconds gets pending delay seconds for `ApiWeightToken` resources.

func (*Provider) GetApiWeightTokenResources

func (p *Provider) GetApiWeightTokenResources(
	callOpts *bind.CallOpts, awtAddr common.Address) (map[string]contract.IAppConfigConfigEntry, error)

GetApiWeightTokenResources gets `ApiWeightToken` config resources.

func (*Provider) GetAppAccountBalance

func (p *Provider) GetAppAccountBalance(
	callOpts *bind.CallOpts, app, address common.Address) (*big.Int, error)

GetAppBalance gets APP account balance for specific address.

func (*Provider) GetAppAccountBalanceAndFrozenStatus

func (p *Provider) GetAppAccountBalanceAndFrozenStatus(
	callOpts *bind.CallOpts, app, address common.Address) (*big.Int, int64, error)

GetAppAccountBalanceAndFrozenStatus combo-gets APP account balance and frozen status.

func (*Provider) GetAppAccountFrozenStatus

func (p *Provider) GetAppAccountFrozenStatus(
	callOpts *bind.CallOpts, app, address common.Address) (int64, error)

GetAppAccountFrozenStatus gets APP account frozen status for specific address.

func (*Provider) GetAppApiWeightToken

func (p *Provider) GetAppApiWeightToken(
	callOpts *bind.CallOpts, app common.Address) (common.Address, error)

GetAppApiWeightToken gets `ApiWeightToken` for specified app.

func (*Provider) GetAppContract

func (p *Provider) GetAppContract(appAddr common.Address) (*contract.App, error)

GetAppContract gets `APP` contract stub.

func (*Provider) GetAppVipCoin

func (p *Provider) GetAppVipCoin(
	callOpts *bind.CallOpts, app common.Address) (common.Address, error)

GetAppVipCoin gets `VipCoin` for specified app.

func (*Provider) GetCardShopContract

func (p *Provider) GetCardShopContract(csAddr common.Address) (*contract.CardShop, error)

GetCardShopContract gets `CardShop` contract stub.

func (*Provider) GetCardTrackerContract

func (p *Provider) GetCardTrackerContract(ctAddr common.Address) (*contract.CardTracker, error)

GetCardTrackerContract gets `CardTracker` contract stub.

func (*Provider) IterateApiWeightTokenResources

func (p *Provider) IterateApiWeightTokenResources(
	callOpts *bind.CallOpts, awtAddr common.Address, iterator func(confEntry contract.IAppConfigConfigEntry) (bool, error),
) error

IterateApiWeightTokenResources iterates all resources under specified `ApiWeightToken`

func (*Provider) IterateTrackedApps

func (p *Provider) IterateTrackedApps(
	callOpts *bind.CallOpts, iterator func(common.Address) error) error

IterateTrackedApps iterates all tracked APP contracts.

func (*Provider) ListTrackedApps

func (p *Provider) ListTrackedApps(callOpts *bind.CallOpts) (apps, apiWeightTokens, vipCoins []common.Address, err error)

ListTrackedApps lists all tracked APP contracts.

func (*Provider) OperatorAddress

func (p *Provider) OperatorAddress() common.Address

OperatorAddress returns the operator address.

func (*Provider) ReferenceBlockNumber

func (p *Provider) ReferenceBlockNumber() int64

ReferenceBlockNumber returns reference block number.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL