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(ctx context.Context, spender string) (*CurrencyValue, error)
Get token allowance for a specific spender
@extension: ERC20
spender: wallet address to check the allowance of
returns: allowance of the spender for the connected wallets tokens
Example
spender := "0x..."
allowance, err := contract.ERC20.Allowance(spender)
allowanceValue := allowance.DisplayValue
func (*ERC20) AllowanceOf
func (erc20 *ERC20) AllowanceOf(ctx context.Context, owner string, spender string) (*CurrencyValue, error)
Get token allowance for a specific spender and owner
@extension: ERC20
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.ERC20.AllowanceOf(address, spender)
allowanceValue := allowance.DisplayValue
func (*ERC20) Balance
func (erc20 *ERC20) Balance(ctx context.Context) (*CurrencyValue, error)
Get token balance
@extension: ERC20
returns: balance of the connected wallet
Example
balance, err := contract.ERC20.Balance()
balanceValue := balance.DisplayValue
func (*ERC20) BalanceOf
func (erc20 *ERC20) BalanceOf(ctx context.Context, address string) (*CurrencyValue, error)
Get token balance of a specific wallet
@extension: ERC20
address: wallet address to check the balance of
returns: balance of the specified wallet
Example
address := "{{wallet_address}}"
balance, err := contract.ERC20.BalanceOf()
balanceValue := balance.DisplayValue
func (*ERC20) Burn
func (erc20 *ERC20) Burn(ctx context.Context, amount float64) (*types.Transaction, error)
Burn tokens
@extension: ERC20Burnable
amount: amount of tokens to burn
returns: transaction receipt of the burn
Example
amount := 1
tx, err := contract.ERC20.Burn(context.Background(), amount)
func (*ERC20) BurnFrom
func (erc20 *ERC20) BurnFrom(ctx context.Context, holder string, amount float64) (*types.Transaction, error)
Burn tokens from a specific wallet
@extension: ERC20Burnable
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.ERC20.BurnFrom(context.Background(), holder, amount)
func (*ERC20) Get
func (erc20 *ERC20) Get(ctx context.Context) (*Currency, error)
Get token metadata
@extension: ERC20
returns: the metadata for the token
Example
currency, err := contract.ERC20.Get()
symbol := currency.Symbol
func (*ERC20) Mint
func (erc20 *ERC20) Mint(ctx context.Context, amount float64) (*types.Transaction, error)
Mint tokens
@extension: ERC20Mintable
amount: amount of tokens to mint
returns: transaction receipt of the mint
Example
tx, err := contract.ERC20.Mint(context.Background(), 1)
func (*ERC20) MintBatchTo
func (erc20 *ERC20) MintBatchTo(ctx context.Context, args []*TokenAmount) (*types.Transaction, error)
Mint tokens to many wallets
@extension: ERC20BatchMintable
args: list of wallet addresses and amounts to mint
returns: transaction receipt of the mint
Example
args = []*thirdweb.TokenAmount{
&thirdweb.TokenAmount{
ToAddress: "{{wallet_address}}",
Amount: 1
}
&thirdweb.TokenAmount{
ToAddress: "{{wallet_address}}",
Amount: 2
}
}
tx, err := contract.ERC20.MintBatchTo(context.Background(), args)
func (*ERC20) MintTo
func (erc20 *ERC20) MintTo(ctx context.Context, to string, amount float64) (*types.Transaction, error)
Mint tokens to a specific wallet
@extension: ERC20Mintable
to: wallet address to mint tokens to
amount: amount of tokens to mint
returns: transaction receipt of the mint
Example
tx, err := contract.ERC20.MintTo(context.Background(), "{{wallet_address}}", 1)
func (*ERC20) SetAllowance
func (erc20 *ERC20) SetAllowance(ctx context.Context, spender string, amount float64) (*types.Transaction, error)
Set token allowance
@extension: ERC20
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.ERC20.SetAllowance(context.Background(), spender, amount)
func (*ERC20) TotalSupply
func (erc20 *ERC20) TotalSupply(ctx context.Context) (*CurrencyValue, error)
Get the total minted supply
@extension: ERC20
returns: total minted supply of the token
Example
supply, err := contract.ERC20.TotalSupply(context.Background())
func (*ERC20) Transfer
func (erc20 *ERC20) Transfer(ctx context.Context, to string, amount float64) (*types.Transaction, error)
Transfer tokens
@extension: ERC20
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.ERC20.Transfer(context.Background(), to, amount)
func (*ERC20) TransferBatch
func (erc20 *ERC20) TransferBatch(ctx context.Context, args []*TokenAmount) (*types.Transaction, error)
Transfer many tokens
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.ERC20.TransferBatch(context.Background(), args)
func (*ERC20) TransferFrom
func (erc20 *ERC20) TransferFrom(ctx context.Context, from string, to string, amount float64) (*types.Transaction, error)
Transfer tokens from a specific wallet
@extension: ERC20
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.ERC20.TransferFrom(context.Background(), from, to, amount)