transactor

package
v0.0.0-...-25c641e Latest Latest
Warning

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

Go to latest
Published: Aug 2, 2023 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrFailToGetResponseFromGasTracker = errors.New("failed to get a response from the gas tracker")
View Source
var IERC20ABI = IERC20MetaData.ABI

IERC20ABI is the input ABI used to generate the binding from. Deprecated: Use IERC20MetaData.ABI instead.

View Source
var IERC20MetaData = &bind.MetaData{
	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"CreateTx\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
}

IERC20MetaData contains all meta data concerning the IERC20 contract.

Functions

This section is empty.

Types

type GasTracker

type GasTracker interface {
	// GetSuggestedGasPrice retrieve the network's suggested gas price
	GetSuggestedGasPrice(ctx context.Context) (*GasTrackerResponse, error)
}

GasTracker provides methods for gas tracking

func NewPolygonGasTracker

func NewPolygonGasTracker(url string) GasTracker

type GasTrackerResponse

type GasTrackerResponse struct {
	SafeLow struct {
		MaxPriorityFee float64 `json:"maxPriorityFee"`
		MaxFee         float64 `json:"maxFee"`
	} `json:"safeLow"`
	Standard struct {
		MaxPriorityFee float64 `json:"maxPriorityFee"`
		MaxFee         float64 `json:"maxFee"`
	} `json:"standard"`
	Fast struct {
		MaxPriorityFee float64 `json:"maxPriorityFee"`
		MaxFee         float64 `json:"maxFee"`
	} `json:"fast"`
	EstimatedBaseFee float64 `json:"estimatedBaseFee"`
	BlockTime        int     `json:"blockTime"`
	BlockNumber      int     `json:"blockNumber"`
}

GasTrackerResponse contains gas price values in GWei, 'blockNumber' tells what was the latest block mined when recommendation was made 'blockTime' in second, which gives average block time of network

func (GasTrackerResponse) String

func (r GasTrackerResponse) String() string

type IERC20

type IERC20 struct {
	IERC20Caller     // Read-only binding to the contract
	IERC20Transactor // Write-only binding to the contract
	IERC20Filterer   // Log filterer for contract events
}

IERC20 is an auto generated Go binding around an Ethereum contract.

func NewIERC20

func NewIERC20(address common.Address, backend bind.ContractBackend) (*IERC20, error)

NewIERC20 creates a new instance of IERC20, bound to a specific deployed contract.

type IERC20Approval

type IERC20Approval struct {
	Owner   common.Address
	Spender common.Address
	Value   *big.Int
	Raw     types.Log // Blockchain specific contextual infos
}

IERC20Approval represents a Approval event raised by the IERC20 contract.

type IERC20ApprovalIterator

type IERC20ApprovalIterator struct {
	Event *IERC20Approval // Event containing the contract specifics and raw log
	// contains filtered or unexported fields
}

IERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC20 contract.

func (*IERC20ApprovalIterator) Close

func (it *IERC20ApprovalIterator) Close() error

Close terminates the iteration process, releasing any pending underlying resources.

func (*IERC20ApprovalIterator) Error

func (it *IERC20ApprovalIterator) Error() error

Error returns any retrieval or parsing error occurred during filtering.

func (*IERC20ApprovalIterator) Next

func (it *IERC20ApprovalIterator) Next() bool

Next advances the iterator to the subsequent event, returning whether there are any more events found. In case of a retrieval or parsing error, false is returned and Error() can be queried for the exact failure.

type IERC20Caller

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

IERC20Caller is an auto generated read-only Go binding around an Ethereum contract.

func NewIERC20Caller

func NewIERC20Caller(address common.Address, caller bind.ContractCaller) (*IERC20Caller, error)

NewIERC20Caller creates a new read-only instance of IERC20, bound to a specific deployed contract.

func (*IERC20Caller) Allowance

func (_IERC20 *IERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error)

Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.

Solidity: function allowance(address owner, address spender) view returns(uint256)

func (*IERC20Caller) BalanceOf

func (_IERC20 *IERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error)

BalanceOf is a free data retrieval call binding the contract method 0x70a08231.

Solidity: function balanceOf(address account) view returns(uint256)

func (*IERC20Caller) TotalSupply

func (_IERC20 *IERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error)

TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.

Solidity: function totalSupply() view returns(uint256)

type IERC20CallerRaw

type IERC20CallerRaw struct {
	Contract *IERC20Caller // Generic read-only contract binding to access the raw methods on
}

IERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.

func (*IERC20CallerRaw) Call

func (_IERC20 *IERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error

Call invokes the (constant) contract method with params as input values and sets the output to result. The result type might be a single field for simple returns, a slice of interfaces for anonymous returns and a struct for named returns.

type IERC20CallerSession

type IERC20CallerSession struct {
	Contract *IERC20Caller // Generic contract caller binding to set the session for
	CallOpts bind.CallOpts // Call options to use throughout this session
}

IERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract, with pre-set call options.

func (*IERC20CallerSession) Allowance

func (_IERC20 *IERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error)

Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.

Solidity: function allowance(address owner, address spender) view returns(uint256)

func (*IERC20CallerSession) BalanceOf

func (_IERC20 *IERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error)

BalanceOf is a free data retrieval call binding the contract method 0x70a08231.

Solidity: function balanceOf(address account) view returns(uint256)

func (*IERC20CallerSession) TotalSupply

func (_IERC20 *IERC20CallerSession) TotalSupply() (*big.Int, error)

TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.

Solidity: function totalSupply() view returns(uint256)

type IERC20Filterer

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

IERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events.

func NewIERC20Filterer

func NewIERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC20Filterer, error)

NewIERC20Filterer creates a new log filterer instance of IERC20, bound to a specific deployed contract.

func (*IERC20Filterer) FilterApproval

func (_IERC20 *IERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*IERC20ApprovalIterator, error)

FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.

Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)

func (*IERC20Filterer) FilterTransfer

func (_IERC20 *IERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*IERC20TransferIterator, error)

FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.

Solidity: event CreateTx(address indexed from, address indexed to, uint256 value)

func (*IERC20Filterer) ParseApproval

func (_IERC20 *IERC20Filterer) ParseApproval(log types.Log) (*IERC20Approval, error)

ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.

Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)

func (*IERC20Filterer) ParseTransfer

func (_IERC20 *IERC20Filterer) ParseTransfer(log types.Log) (*IERC20Transfer, error)

ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.

Solidity: event CreateTx(address indexed from, address indexed to, uint256 value)

func (*IERC20Filterer) WatchApproval

func (_IERC20 *IERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error)

WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.

Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)

func (*IERC20Filterer) WatchTransfer

func (_IERC20 *IERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error)

WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.

Solidity: event CreateTx(address indexed from, address indexed to, uint256 value)

type IERC20Raw

type IERC20Raw struct {
	Contract *IERC20 // Generic contract binding to access the raw methods on
}

IERC20Raw is an auto generated low-level Go binding around an Ethereum contract.

func (*IERC20Raw) Call

func (_IERC20 *IERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error

Call invokes the (constant) contract method with params as input values and sets the output to result. The result type might be a single field for simple returns, a slice of interfaces for anonymous returns and a struct for named returns.

func (*IERC20Raw) Transact

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

Transact invokes the (paid) contract method with params as input values.

func (*IERC20Raw) Transfer

func (_IERC20 *IERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)

Transfer initiates a plain transaction to move funds to the contract, calling its default method if one is available.

type IERC20Session

type IERC20Session struct {
	Contract     *IERC20           // Generic contract binding to set the session for
	CallOpts     bind.CallOpts     // Call options to use throughout this session
	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
}

IERC20Session is an auto generated Go binding around an Ethereum contract, with pre-set call and transact options.

func (*IERC20Session) Allowance

func (_IERC20 *IERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error)

Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.

Solidity: function allowance(address owner, address spender) view returns(uint256)

func (*IERC20Session) Approve

func (_IERC20 *IERC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error)

Approve is a paid mutator transaction binding the contract method 0x095ea7b3.

Solidity: function approve(address spender, uint256 amount) returns(bool)

func (*IERC20Session) BalanceOf

func (_IERC20 *IERC20Session) BalanceOf(account common.Address) (*big.Int, error)

BalanceOf is a free data retrieval call binding the contract method 0x70a08231.

Solidity: function balanceOf(address account) view returns(uint256)

func (*IERC20Session) TotalSupply

func (_IERC20 *IERC20Session) TotalSupply() (*big.Int, error)

TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.

Solidity: function totalSupply() view returns(uint256)

func (*IERC20Session) Transfer

func (_IERC20 *IERC20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error)

Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.

Solidity: function transfer(address recipient, uint256 amount) returns(bool)

func (*IERC20Session) TransferFrom

func (_IERC20 *IERC20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error)

TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.

Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)

type IERC20Transactor

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

IERC20Transactor is an auto generated write-only Go binding around an Ethereum contract.

func NewIERC20Transactor

func NewIERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC20Transactor, error)

NewIERC20Transactor creates a new write-only instance of IERC20, bound to a specific deployed contract.

func (*IERC20Transactor) Approve

func (_IERC20 *IERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error)

Approve is a paid mutator transaction binding the contract method 0x095ea7b3.

Solidity: function approve(address spender, uint256 amount) returns(bool)

func (*IERC20Transactor) Transfer

func (_IERC20 *IERC20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error)

Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.

Solidity: function transfer(address recipient, uint256 amount) returns(bool)

func (*IERC20Transactor) TransferFrom

func (_IERC20 *IERC20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error)

TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.

Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)

type IERC20TransactorRaw

type IERC20TransactorRaw struct {
	Contract *IERC20Transactor // Generic write-only contract binding to access the raw methods on
}

IERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.

func (*IERC20TransactorRaw) Transact

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

Transact invokes the (paid) contract method with params as input values.

func (*IERC20TransactorRaw) Transfer

func (_IERC20 *IERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)

Transfer initiates a plain transaction to move funds to the contract, calling its default method if one is available.

type IERC20TransactorSession

type IERC20TransactorSession struct {
	Contract     *IERC20Transactor // Generic contract transactor binding to set the session for
	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
}

IERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, with pre-set transact options.

func (*IERC20TransactorSession) Approve

func (_IERC20 *IERC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error)

Approve is a paid mutator transaction binding the contract method 0x095ea7b3.

Solidity: function approve(address spender, uint256 amount) returns(bool)

func (*IERC20TransactorSession) Transfer

func (_IERC20 *IERC20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error)

Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.

Solidity: function transfer(address recipient, uint256 amount) returns(bool)

func (*IERC20TransactorSession) TransferFrom

func (_IERC20 *IERC20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error)

TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.

Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)

type IERC20Transfer

type IERC20Transfer struct {
	From  common.Address
	To    common.Address
	Value *big.Int
	Raw   types.Log // Blockchain specific contextual infos
}

IERC20Transfer represents a CreateTx event raised by the IERC20 contract.

type IERC20TransferIterator

type IERC20TransferIterator struct {
	Event *IERC20Transfer // Event containing the contract specifics and raw log
	// contains filtered or unexported fields
}

IERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for CreateTx events raised by the IERC20 contract.

func (*IERC20TransferIterator) Close

func (it *IERC20TransferIterator) Close() error

Close terminates the iteration process, releasing any pending underlying resources.

func (*IERC20TransferIterator) Error

func (it *IERC20TransferIterator) Error() error

Error returns any retrieval or parsing error occurred during filtering.

func (*IERC20TransferIterator) Next

func (it *IERC20TransferIterator) Next() bool

Next advances the iterator to the subsequent event, returning whether there are any more events found. In case of a retrieval or parsing error, false is returned and Error() can be queried for the exact failure.

type Transactor

type Transactor interface {
	//CreateERC20Tx creates a signed ERC-20 tx using the provided TxParams params
	CreateERC20Tx(ctx context.Context, params TxParams) (*types.Transaction, error)
	//CreateTx creates a signed native tx using the provided TxParams params
	CreateTx(ctx context.Context, params TxParams) (*types.Transaction, error)
	//Transfer sends transaction to network
	Transfer(ctx context.Context, transaction *types.Transaction) error
	//VerifyTx checks if transaction is mined using the given transaction hash
	VerifyTx(ctx context.Context, txHash string) (bool, error)
	//BalanceAt returns the wei balance of the given account taken from the latest known block
	BalanceAt(ctx context.Context, accountAddr common.Address) (*big.Int, error)
	//BalanceOf returns the ERC-20 wei balance of the given account
	BalanceOf(ctx context.Context, accountAddr common.Address, erc20Address string) (*big.Int, error)
	//GetGasCapValues retrieves the network's suggested gas price
	GetGasCapValues(ctx context.Context) (*big.Int, *big.Int, error)
}

Transactor contains methods needed to send and verify transactions

func NewEvmTransactor

func NewEvmTransactor(client *ethclient.Client, tracker GasTracker, nonceProvider nonce.Provider) (Transactor, error)

NewEvmTransactor utility method to create a EVM transactor

type TxParams

type TxParams struct {
	// ERC-20 token address
	TokenAddr string
	// sender account and gas provider
	SenderKeyProvider key.Provider
	// receiver of the ERC-20 token
	ReceiverKeyProvider key.Provider
	// amount sent in wei
	Amount string
	// maxPriorityFeePerGas
	GasTipCapValue *big.Int
	// maxFeePerGas
	GasFeeCapValue *big.Int
}

Jump to

Keyboard shortcuts

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