Skip to main content

ERC20

This interface is currently support by the Token contract. You can access all of its functions through a Token contract instance.

type ERC20 struct {}

func (*ERC20) Allowance

func (erc20 *ERC20) Allowance(spender string) (*CurrencyValue, error)

Get a specified spenders allowance for the connected wallets tokens.

spender: wallet address to check the allowance of

returns: allowance of the spender for the connected wallets tokens

Example

spender := "0x..."

allowance, err := contract.Allowance(spender)
allowanceValue := allowance.DisplayValue

func (*ERC20) AllowanceOf

func (erc20 *ERC20) AllowanceOf(owner string, spender string) (*CurrencyValue, error)

Get a specified spenders allowance for the a specific wallets tokens.

owner: wallet address who owns the assets

spender: wallet address to check the allowance of

returns: allowance of the spender for the connected wallets tokens

Example

address := "{{wallet_address}}"
spender := "0x..."

allowance, err := contract.AllowanceOf(address, spender)
allowanceValue := allowance.DisplayValue

func (*ERC20) Balance

func (erc20 *ERC20) Balance() (*CurrencyValue, error)

Get the token balance of the connected wallet.

returns: balance of the connected wallet

Example

balance, err := contract.Balance()
balanceValue := balance.DisplayValue

func (*ERC20) BalanceOf

func (erc20 *ERC20) BalanceOf(address string) (*CurrencyValue, error)

Get the balance of the specified wallet.

address: wallet address to check the balance of

returns: balance of the specified wallet

Example

address := "{{wallet_address}}"
balance, err := contract.BalanceOf()
balanceValue := balance.DisplayValue

func (*ERC20) Burn

func (erc20 *ERC20) Burn(ctx context.Context, amount float64) (*types.Transaction, error)

Burn a specified amount of tokens from the connected wallet.

amount: amount of tokens to burn

returns: transaction receipt of the burn

Example

amount := 1
tx, err := contract.Burn(context.Background(), amount)

func (*ERC20) BurnFrom

func (erc20 *ERC20) BurnFrom(ctx context.Context, holder string, amount float64) (*types.Transaction, error)

Burn a specified amount of tokens from a specific wallet.

holder: wallet address to burn the tokens from

amount: amount of tokens to burn

returns: transaction receipt of the burn

Example

holder := "0x..."
amount := 1

tx, err := contract.BurnFrom(context.Background(), holder, amount)

func (*ERC20) Get

func (erc20 *ERC20) Get() (*Currency, error)

Get token metadata including name, symbol, decimals, etc.

returns: the metadata for the token

Example

currency, err := contract.Get()
symbol := currency.Symbol

func (*ERC20) SetAllowance

func (erc20 *ERC20) SetAllowance(ctx context.Context, spender string, amount float64) (*types.Transaction, error)

Sets the allowance of a wallet to spend the connected wallets funds.

spender: wallet address to set the allowance of

amount: amount of tokens to grant the spender allowance of

returns: transaction receipt of the allowance set

Example

spender := "0x..."
amount := 1

tx, err := contract.SetAllowance(context.Background(), spender, amount)

func (*ERC20) TotalSupply

func (erc20 *ERC20) TotalSupply() (*CurrencyValue, error)

Get the total minted supply of the token.

returns: total minted supply of the token

func (*ERC20) Transfer

func (erc20 *ERC20) Transfer(ctx context.Context, to string, amount float64) (*types.Transaction, error)

Transfer a specified amount of tokens from the connected wallet to a specified address.

to: address to transfer the tokens to

amount: amount of tokens to transfer

returns: transaction receipt of the transfer

Example

to := "0x..."
amount := 1

tx, err := contract.Transfer(context.Background(), to, amount)

func (*ERC20) TransferBatch

func (erc20 *ERC20) TransferBatch(ctx context.Context, args []*TokenAmount) (*types.Transaction, error)

Transfer tokens from the connected wallet to many wallets.

args: list of token amounts with amounts and addresses to transfer to

returns: transaction receipt of the transfers

Example

args = []*thirdweb.TokenAmount{
&thirdweb.TokenAmount{
ToAddress: "0x...",
Amount: 1
}
&thirdweb.TokenAmount{
ToAddress: "0x...",
Amount: 2
}
}

tx, err := contract.TransferBatch(context.Background(), args)

func (*ERC20) TransferFrom

func (erc20 *ERC20) TransferFrom(ctx context.Context, from string, to string, amount float64) (*types.Transaction, error)

Transfer a specified amount of tokens from one specified address to another.

from: address to transfer the tokens from

to: address to transfer the tokens to

amount: amount of tokens to transfer

returns: transaction receipt of the transfer

Example

from := "{{wallet_address}}"
to := "0x..."
amount := 1

tx, err := contract.TransferFrom(context.Background(), from, to, amount)