gas

package
v0.4.0-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2022 License: Apache-2.0, BSD-2-Clause Imports: 8 Imported by: 4

Documentation

Index

Constants

View Source
const (
	MaxGasPerBlock         = uint64(1_000_000_000)
	MinGasPerRequest       = uint64(10000)
	MaxGasPerRequest       = MaxGasPerBlock / 20 // one request cannot use more than 5% of maximum block gas
	MaxGasExternalViewCall = MaxGasPerRequest
)
View Source
const (
	BurnCodeStorage1P = BurnCode(iota)
	BurnCodeReadFromState1P
	BurnCodeCallTargetNotFound
	BurnCodeGetContext
	BurnCodeGetCallerData
	BurnCodeGetAllowance
	BurnCodeGetStateAnchorInfo
	BurnCodeGetBalance
	BurnCodeGetNFTData
	BurnCodeCallContract
	BurnCodeDeployContract
	BurnCodeEmitEventFixed
	BurnCodeTransferAllowance
	BurnCodeEstimateStorageDepositCost
	BurnCodeSendL1Request

	BurnCodeUtilsHashingBlake2b
	BurnCodeUtilsHashingSha3
	BurnCodeUtilsHashingHname
	BurnCodeUtilsHexEncode
	BurnCodeUtilsHexDecode
	BurnCodeUtilsED25519ValidSig
	BurnCodeUtilsED25519AddrFromPubKey
	BurnCodeUtilsBLSValidSignature
	BurnCodeUtilsBLSAddrFromPubKey
	BurnCodeUtilsBLSAggregateBLS1P

	BurnCodeWasm1P
	BurnCodeMinimumGasPerRequest1P

	BurnCodeEVM1P
)
View Source
const (
	Coef1Send        = 200
	CoefBLSAggregate = 400
)

Variables

View Source
var ErrUnknownBurnCode = xerrors.New("unknown gas burn code")

Functions

This section is empty.

Types

type BurnCode

type BurnCode uint16

func (BurnCode) Cost

func (c BurnCode) Cost(p ...uint64) uint64

func (BurnCode) Name

func (c BurnCode) Name() string

type BurnCodeRecord

type BurnCodeRecord struct {
	Name string
	BurnFunction
}

type BurnFunction

type BurnFunction func(x uint64) uint64

type BurnLog

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

func NewGasBurnLog

func NewGasBurnLog() *BurnLog

func (*BurnLog) Record

func (h *BurnLog) Record(code BurnCode, gas uint64)

func (*BurnLog) String

func (h *BurnLog) String() string

type BurnRecord

type BurnRecord struct {
	Code      BurnCode
	GasBurned uint64
}

type BurnTable

type BurnTable map[BurnCode]BurnCodeRecord

type GasFeePolicy

type GasFeePolicy struct {
	// GasFeeTokenID contains iotago.NativeTokenID used to pay for gas, or nil if base token are used for gas fee
	GasFeeTokenID *iotago.NativeTokenID
	// GasFeeTokenDecimals the number of decimals in the native token used to pay for gas fees. Only considered if GasFeeTokenID != nil
	GasFeeTokenDecimals uint32

	// GasPerToken specifies how many gas units are paid for each token ( 100 means 1 tokens pays for 100 gas)
	GasPerToken uint64

	// EVMGasRatio expresses the ratio at which EVM gas is converted to ISC gas (evm gas used * A/B)
	EVMGasRatio util.Ratio32

	// ValidatorFeeShare Validator/Governor fee split: percentage of fees which goes to Validator
	// 0 mean all goes to Governor
	// >=100 all goes to Validator
	ValidatorFeeShare uint8
}

func DefaultGasFeePolicy

func DefaultGasFeePolicy() *GasFeePolicy

func FeePolicyFromBytes

func FeePolicyFromBytes(data []byte) (*GasFeePolicy, error)

func MustGasFeePolicyFromBytes

func MustGasFeePolicyFromBytes(data []byte) *GasFeePolicy

func (*GasFeePolicy) AffordableGasBudgetFromAvailableTokens

func (p *GasFeePolicy) AffordableGasBudgetFromAvailableTokens(availableTokens uint64) uint64

func (*GasFeePolicy) Bytes

func (p *GasFeePolicy) Bytes() []byte

func (*GasFeePolicy) FeeFromGas

func (p *GasFeePolicy) FeeFromGas(gasUnits, availableTokens uint64) (sendToOwner, sendToValidator uint64)

FeeFromGas return ownerFee and validatorFee

func (*GasFeePolicy) IsEnoughForMinimumFee

func (p *GasFeePolicy) IsEnoughForMinimumFee(availableTokens uint64) bool

func (*GasFeePolicy) MinFee

func (p *GasFeePolicy) MinFee() uint64

Jump to

Keyboard shortcuts

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