Class: ERC2612Token
Hierarchy
↳
ERC2612Token
Constructors
constructor
• new ERC2612Token(colonyNetwork
, token
)
Creates a new instance of an ERC2612 token (ERC20 with Permit extension)
Remarks
This does not deploy a new token, only connects to an exisiting one
Parameters
Name | Type | Description |
---|---|---|
colonyNetwork | ColonyNetwork | A ColonyNetwork instance |
token | string | TokenERC2612 | A token address or a full contract (like on a colony token client) |
Overrides
Properties
address
• address: string
Inherited from
Methods
approve
▸ approve(amount
, spender?
): TxCreator
<TokenERC20
, "approve"
, { guy?
: string
; src?
: string
; wad?
: BigNumber
}, MetadataType
>
Approve amount
of the wallet owners holdings of the specified token
In order for the wallet owner to stake tokens, that amount has to be approved and deposited into the Colony first. In the dapp the process is called "Activation" of a certain amount of the Colony's native token. The wallet must hold at least the amount of the token that will be approved.
Example
import { w } from '@colony/sdk';
// Immediately executing async function
(async function() {
// Approve 100 tokens to be "activated"
await colony.token.approve(w`100`).force();
// Deposit the tokens
await colonyNetwork.locking.deposit(token.address, w`100`).force();
})();
Parameters
Name | Type | Description |
---|---|---|
amount | BigNumberish | Amount of the token to be approved |
spender? | string | Spender to approve the amount for. Defaults to the Colony Network |
Returns
TxCreator
<TokenERC20
, "approve"
, { guy?
: string
; src?
: string
; wad?
: BigNumber
}, MetadataType
>
A transaction creator
Event data
Property | Type | Description |
---|---|---|
src | string | The address that approved the tokens from their wallet |
guy | string | Address of the TokenLocking contract |
wad | BigNumber | Amount that was approved |
Inherited from
decimals
▸ decimals(): Promise
<number
>
Gets the token's decimals
Returns
Promise
<number
>
The token's decimals (e.g. 18)
Inherited from
name
▸ name(): Promise
<string
>
Gets the token's name
Returns
Promise
<string
>
The token's name (e.g. Colony Network Token)
Inherited from
permit
▸ permit(amount
, spender?
): EIP2612TxCreator
<{ guy?
: string
; src?
: string
; wad?
: BigNumber
}, MetadataType
>
Permit amount
of the wallet owners holdings of the specified token.
This is the same as ERC20Token.approve but works only for gasless metatransactions. If you have a Colony-deployed token, use approve
. This is mainly to support gasless transactions for BYOT (bring-your-own-token).
This follows the EIP-2612 "Permit" specification. See https://eips.ethereum.org/EIPS/eip-2612.
In order for the wallet owner to stake tokens, that amount has to be approved and deposited into the Colony first. In the dapp the process is called "Activation" of a certain amount of the Colony's native token. The wallet must hold at least the amount of the token that will be approved.
Remarks
Note that the arguments are turned around when comparing with the EIP2612 format.
Example
import { w } from '@colony/sdk';
// Immediately executing async function
(async function() {
// Permit 100 tokens to be "activated"
await colony.token.permit(w`100`).metaTx();
// Deposit the tokens
await colonyNetwork.locking.deposit(token.address, w`100`).force();
})();
Parameters
Name | Type | Description |
---|---|---|
amount | BigNumberish | Amount of the token to be approved |
spender? | string | Spender to approve the amount for. Defaults to the Colony Network |
Returns
EIP2612TxCreator
<{ guy?
: string
; src?
: string
; wad?
: BigNumber
}, MetadataType
>
A transaction creator
Event data
Property | Type | Description |
---|---|---|
src | string | The address that approved the tokens from their wallet |
guy | string | Address of the TokenLocking contract |
wad | BigNumber | Amount that was approved |
symbol
▸ symbol(): Promise
<string
>
Gets the token's symbol
Returns
Promise
<string
>
The token's symbol (e.g. CLNY)