Token
The Token contract is a modified implementation of the CW20 base, refitted to consider for bETH reward accruals.
Details on the CW20 specification can be found here.
Contract State
TokenInfo
TokenInfo
Stores information about the bETH token.
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub struct TokenInfo {
pub name: String,
pub symbol: String,
pub decimals: u8,
pub total_supply: Uint128,
pub mint: Option<MinterData>,
}
Key
Type
Description
name
String
Name of bETH token
symbol
String
Symbol of bETH token
decimals
u8
Number of decimals of bETH
total_supply
Uint128
Total minted supply of bETH
mint
*
MinterData
Minter information of bETH
* = not stored until value registered
MinterData
MinterData
Store information about the bETH minter.
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
pub struct MinterData {
pub minter: Addr,
pub cap: Option<Uint128>,
}
Key
Type
Description
minter
Addr
Address of minter
cap
*
Uint128
Maximum number of mintable tokens
* = not stored until value registered
InstantiateMsg
#[derive(Serialize, Deserialize, JsonSchema)]
pub struct TokenInstantiateMsg {
pub name: String,
pub symbol: String,
pub decimals: u8,
pub initial_balances: Vec<Cw20CoinHuman>,
pub mint: Option<MinterResponse>,
pub reward_contract: String,
}
Key
Type
Description
name
String
Name of bETH token
symbol
String
Symbol of bETH token
decimals
u8
Number of decimals of bETH
total_supply
Uint128
Total minted supply of bETH
mint
*
MinterResponse
Minter information of bETH
reward_contract
String
Contract address of bETH Reward
* = optional
ExecuteMsg
Transfer
Transfer
Transfers tokens to the specified address.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20ExecuteMsg {
Transfer {
recipient: String,
amount: Uint128,
}
}
Key
Type
Description
recipient
String
Recipient address of token transfer
amount
Uint128
Amount of tokens to transfer
Burn
Burn
Burns the specified amount of tokens.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20ExecuteMsg {
Burn {
amount: Uint128,
}
}
Key
Type
Description
amount
Uint128
Amount of tokens to burn
Send
Send
Sends tokens to the specified contract address along with a message.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20ExecuteMsg {
Send {
contract: String,
amount: Uint128,
msg: Binary,
}
}
Key
Type
Description
contract
String
Contract address to send tokens to
amount
Uint128
Amount of tokens to send
msg
Binary
Base64-encoded JSON of receive hook message
Mint
Mints tokens to the specified address. Can only be issued by the minter.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20ExecuteMsg {
Mint {
recipient: String,
amount: Uint128,
}
}
Key
Type
Description
recipient
String
Address to mint tokens to
amount
Uint128
Amount of tokens to mint
IncreaseAllowance
IncreaseAllowance
Increases allowance for the specified spender address.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20ExecuteMsg {
IncreaseAllowance {
spender: String,
amount: Uint128,
expires: Option<Expiration>,
}
}
#[derive(Serialize, Deserialize, Clone, Copy, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub enum Expiration {
AtHeight(u64),
AtTime(Timestamp),
Never {},
}
Key
Type
Description
spender
String
Address of spender
amount
Uint128
Amount of tokens to increase allowance for spender
expires
*
Expiration
Information on when this allowance expires
* = optional
Key
Type
Description
AtHeight
u64
Allowance expires at specified block height
AtTime
Timestamp
Allowance expires at specified block timestamp
Never
nil
Allowance never expires
DecreaseAllowance
DecreaseAllowance
Decreases allowance for the specified spender address.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20ExecuteMsg {
DecreaseAllowance {
spender: String,
amount: Uint128,
expires: Option<Expiration>,
}
}
#[derive(Serialize, Deserialize, Clone, Copy, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub enum Expiration {
AtHeight(u64),
AtTime(Timestamp),
Never {},
}
Key
Type
Description
spender
String
Address of spender
amount
Uint128
Amount of tokens to decrease allowance for spender
expires
*
Expiration
Information on when this allowance expires
Key
Type
Description
AtHeight
u64
Allowance expires at specified block height
AtTime
Timestamp
Allowance expires at specified block timestamp
Never
nil
Allowance never expires
TransferFrom
TransferFrom
Transfers tokens from the specified owner to the specified recipient. Requires unexpired allowance to be set beforehand.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20ExecuteMsg {
TransferFrom {
owner: String,
recipient: String,
amount: Uint128,
}
}
Key
Type
Description
owner
String
Address to transfer tokens from
recipient
String
Address to transfer tokens to
amount
Uint128
Amount of tokens to transfer
SendFrom
SendFrom
Sends tokens from the specified owner to the specified contract, along with a message. Requires unexpired allowance to be set beforehand.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20ExecuteMsg {
SendFrom {
owner: String,
contract: String,
amount: Uint128,
msg: Binary,
}
}
Key
Type
Description
owner
String
Address to send tokens from
contract
String
Address to send tokens to
amount
Uint128
Amount of tokens to send
msg
Binary
Base64-encoded JSON of receive hook msg
BurnFrom
BurnFrom
Burns tokens from the specified owner. Requires unexpired allowance to be set beforehand.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20ExecuteMsg {
BurnFrom {
owner: String,
amount: Uint128,
}
}
Key
Type
Description
owner
String
Address to burn tokens from
amount
Uint128
Amount of tokens to burn
QueryMsg
Balance
Balance
Gets the balance for the specified address.
Request
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20QueryMsg {
Balance {
address: String,
}
}
Key
Type
Description
address
String
Address of holder to get balance
Response
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
pub struct BalanceResponse {
pub balance: Uint128,
}
Key
Type
Description
balance
Uint128
Amount of token balance
TokenInfo
TokenInfo
Gets information for the token.
Request
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20QueryMsg {
TokenInfo {}
}
Key
Type
Description
Response
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
pub struct TokenInfoResponse {
pub name: String,
pub symbol: String,
pub decimals: u8,
pub total_supply: Uint128,
}
Key
Type
Description
name
String
Name of token
symbol
String
Symbol of token
decimals
u8
Number of decimals of token
total_supply
Uint128
Total minted supply of token
Minter
Minter
Gets information for the token minter.
Request
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub enum Cw20QueryMsg {
Minter {}
}
Key
Type
Description
Response
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
pub struct MinterResponse {
pub minter: String,
pub cap: Option<Uint128>,
}
Key
Type
Description
minter
String
Address of token minter
cap
*
Uint128
Maximum number of mintable tokens
Allowance
Allowance
Gets allowance information for the specified owner and spender.
Request
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub enum Cw20QueryMsg {
Allowance {
owner: String,
spender: String,
}
}
Key
Type
Description
owner
String
Address of owner
spender
String
Address of spender
Response
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug, Default)]
pub struct AllowanceResponse {
pub allowance: Uint128,
pub expires: Expiration,
}
#[derive(Serialize, Deserialize, Clone, Copy, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub enum Expiration {
AtHeight(u64),
AtTime(Timestamp),
Never {},
}
Key
Type
Description
allowance
String
Amount of owner's tokens spender is allowed to spend
expires
Expiration
Information on when this allowance expires
Key
Type
Description
AtHeight
u64
Allowance expires at specified block height
AtTime
Timestamp
Allowance expires at specified block timestamp
Never
nil
Allowance never expires
AllAllowances
AllAllowances
Gets all allowance information for the specified owner.
Request
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub enum Cw20QueryMsg {
AllAllowances {
owner: String,
start_after: Option<String>,
limit: Option<u32>,
}
}
Key
Type
Description
owner
String
Address of owner
start_after
*
String
Address of spender to start query
limit
*
u32
Maximum number of query entries
* = optional
Response
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug, Default)]
pub struct AllAllowancesResponse {
pub allowances: Vec<AllowanceInfo>,
}
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
pub struct AllowanceInfo {
pub spender: String,
pub allowance: Uint128,
pub expires: Expiration,
}
#[derive(Serialize, Deserialize, Clone, Copy, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub enum Expiration {
AtHeight(u64),
AtTime(Timestamp),
Never {},
}
Key
Type
Description
allowances
Vec<AllowanceInfo>
List of allowance information
Key
Type
Description
spender
String
Address of spender
allowance
String
Amount of owner's tokens spender is allowed to spend
expires
Expiration
Information on when this allowance expires
Key
Type
Description
AtHeight
u64
Allowance expires at specified block height
AtTime
Timestamp
Allowance expires at specified block timestamp
Never
nil
Allowance never expires
AllAccounts
AllAccounts
Gets account information for all holders.
Request
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub enum Cw20QueryMsg {
AllAccounts {
start_after: Option<String>,
limit: Option<u32>,
}
}
Key
Type
Description
start_after
*
String
Address of holder to start query
limit
*
u32
Maximum number of query entries
* = optional
Response
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug, Default)]
pub struct AllAccountsResponse {
pub accounts: Vec<String>,
}
Key
Type
Description
accounts
Vec<String>
List of holder addresses
Last updated
Was this helpful?