util

package
v0.0.0-...-8e94ecf Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2021 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// PeggyDenomPrefix indicates the prefix for all assests minted by this module
	PeggyDenomPrefix = "inj"

	// PeggyDenomSeperator is the seperator for peggy denoms
	PeggyDenomSeperator = "/"

	// ETHContractAddressLen is the length of contract address strings
	ETHContractAddressLen = 42

	// PeggyDenomLen is the length of the denoms generated by the peggy module
	PeggyDenomLen = len(PeggyDenomPrefix) + len(PeggyDenomSeperator) + ETHContractAddressLen
)

Variables

View Source
var (
	ErrNoKeyStore = errors.New("no keystore or file for account")
	ErrKeyDecrypt = errors.New("private key decryption failed")
)

Functions

func EthAddrLessThan

func EthAddrLessThan(e, o string) bool

EthAddrLessThan migrates the Ethereum address less than function

func NewEthereumSignature

func NewEthereumSignature(hash []byte, privateKey *ecdsa.PrivateKey) ([]byte, error)

NewEthereumSignature creates a new signuature over a given byte array

func SignerFnForPk

func SignerFnForPk(privKey *ecdsa.PrivateKey) bind.SignerFn

func ValidateEthAddress

func ValidateEthAddress(a string) error

ValidateEthAddress validates the ethereum address strings

func ValidateEthereumSignature

func ValidateEthereumSignature(hash []byte, signature []byte, ethAddress string) error

ValidateEthereumSignature takes a message, an associated signature and public key and returns an error if the signature isn't valid

func ValidatePeggyCoin

func ValidatePeggyCoin(v sdk.Coin) (string, error)

ValidatePeggyCoin returns true if a coin is a peggy representation of an ERC20 token

Types

type BoundContract

type BoundContract struct {
	*bind.BoundContract
	// contains filtered or unexported fields
}

func BindContract

func BindContract(client *ethclient.Client, contract *Contract) (*BoundContract, error)

func (*BoundContract) ABI

func (contract *BoundContract) ABI() abi.ABI

func (*BoundContract) Address

func (contract *BoundContract) Address() common.Address

func (*BoundContract) Client

func (contract *BoundContract) Client() *ethclient.Client

func (*BoundContract) DeployContract

func (c *BoundContract) DeployContract(opts *bind.TransactOpts, params ...interface{}) (common.Address, *types.Transaction, error)

func (*BoundContract) SetAddress

func (contract *BoundContract) SetAddress(address common.Address)

func (*BoundContract) SetClient

func (contract *BoundContract) SetClient(client *ethclient.Client)

func (*BoundContract) SetTransact

func (contract *BoundContract) SetTransact(fn TransactFunc)

func (*BoundContract) Source

func (contract *BoundContract) Source() *Contract

func (*BoundContract) Transact

func (c *BoundContract) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)

func (*BoundContract) Transfer

func (c *BoundContract) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)

type Contract

type Contract struct {
	Name            string
	SourcePath      string
	CompilerVersion string
	Address         common.Address

	ABI []byte
	Bin string
}

type ERC20Token

type ERC20Token struct {
	Amount   *big.Int       `json:"amount"`
	Contract common.Address `json:"contract,omitempty"`
}

func ERC20FromPeggyCoin

func ERC20FromPeggyCoin(v sdk.Coin) (*ERC20Token, error)

ERC20FromPeggyCoin returns the ERC20 representation of a given peggy coin

func NewERC20Token

func NewERC20Token(amount uint64, contract string) *ERC20Token

NewERC20Token returns a new instance of an ERC20

func (*ERC20Token) Add

func (e *ERC20Token) Add(o *ERC20Token) *ERC20Token

Add adds one ERC20 to another

func (*ERC20Token) PeggyCoin

func (e *ERC20Token) PeggyCoin() sdk.Coin

PeggyCoin returns the peggy representation of the ERC20

func (*ERC20Token) ValidateBasic

func (e *ERC20Token) ValidateBasic() error

ValidateBasic permforms stateless validation

type KeyCache

type KeyCache interface {
	SetPath(account common.Address, path string) bool
	UnsetPath(account common.Address, path string)
	PrivateKey(account common.Address, password string) (key *ecdsa.PrivateKey, ok bool)
	SetPrivateKey(account common.Address, pk *ecdsa.PrivateKey)
	UnsetKey(account common.Address, password string)
	SignerFn(account common.Address, password string) bind.SignerFn
}

func NewKeyCache

func NewKeyCache() KeyCache

type NonceCache

type NonceCache interface {
	Serialize(account common.Address, fn func() error) error
	Sync(account common.Address, syncFn func() (uint64, error))

	Set(account common.Address, nonce int64)
	Get(account common.Address) int64
	Incr(account common.Address) int64
	Decr(account common.Address) int64
}

func NewNonceCache

func NewNonceCache() NonceCache

type TransactFunc

type TransactFunc func(opts *bind.TransactOpts, contract *common.Address, input []byte) (*types.Transaction, error)

type Uniquify

type Uniquify interface {
	// Call executes only one callable with same id at a time.
	// Multilpe asynchronous calls with same id will be executed sequentally.
	Call(id string, callable func() error) error
}

Uniquify is a type of advanced mutex. It allows to create named resource locks.

func NewUniquify

func NewUniquify() Uniquify

NewUniquify returns a new thread-safe uniquify object.

type Wei

type Wei decimal.Decimal

func BigWei

func BigWei(w *big.Int) *Wei

func DecimalToWei

func DecimalToWei(d decimal.Decimal) *Wei

func DecimalWei

func DecimalWei(d decimal.Decimal) *Wei

func Gwei

func Gwei(gwei uint64) *Wei

func StringWei

func StringWei(str string) *Wei

func ToWei

func ToWei(amount float64) *Wei

ToWei converts ether or tokens amount into Wei amount.

func (*Wei) Add

func (w *Wei) Add(amount *Wei) *Wei

Add adds two amounts together and returns a new amount.

func (Wei) Bytes

func (w Wei) Bytes() []byte

func (*Wei) Div

func (w *Wei) Div(m int64) *Wei

func (*Wei) Ether

func (w *Wei) Ether() float64

func (*Wei) Gwei

func (w *Wei) Gwei() uint64

Gwei is an unsafe way to represent Wei as uint64, used for gas price reporting and should not be used for math.

func (*Wei) Mul

func (w *Wei) Mul(m int64) *Wei

func (*Wei) Scan

func (w *Wei) Scan(v interface{}) error

func (*Wei) SplitEqual

func (w *Wei) SplitEqual(parts int) []*Wei

SplitEqual splits the amount into n-1 equal amounts and one remainder. Example: (1000).SplitEqual(7) yields [142 142 142 142 142 142 148]

func (Wei) String

func (w Wei) String() string

func (Wei) StringGwei

func (w Wei) StringGwei() string

func (*Wei) Sub

func (w *Wei) Sub(amount *Wei) *Wei

Sub substracts two amounts and returns a new amount.

func (*Wei) ToInt

func (w *Wei) ToInt() *big.Int

func (*Wei) Tokens

func (w *Wei) Tokens() float64

Jump to

Keyboard shortcuts

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