Contract name: pancake::masterchef
Contract address:
7968a225eba6c99f5f1070aeec1b405757dee939eabcfda43ba91588bf5fccf3::masterchef
Admin multi sig address: eef8788f3eaa34b936d0bc5897fc40fa3782b1e663bf04edf2cd22fcd18329ff
Th metadata of the masterchef.
struct MasterChef has key {
signer_cap: account::SignerCapability,
admin: address,
upkeep_admin: address,
lp_to_pid: TableWithLength<string::String, u64>,
lps: vector<string::String>,
pool_info: vector<PoolInfo>,
total_regular_alloc_point: u64,
total_special_alloc_point: u64,
cake_per_second: u64,
cake_rate_to_regular: u64,
cake_rate_to_special: u64,
last_upkeep_timestamp: u64,
end_timestamp: u64
}
| Name | ||
|---|---|---|
| signer_cap | account::SingerCapability |
The signer capability of the resource account. |
| admin | address |
The admin address of the module. |
| upkeep_admin | address |
The account that execute upkeep call. |
| lp_to_pid | table_with_length::TableWithLength |
LP token type info and corresponding pool id. |
| lps | vector |
All added LP token type info array. |
| pool_info | vector |
A list of pool _info struct. |
| total_regular_alloc_point | u64 |
Sum of all regular farm allocate points. |
| total_special_alloc_point | u64 |
Sum of all special farm allocate points. |
| cake_per_second | u64 |
Cake reward per second for all farm pools. |
| cake_rate_to_regular | u64 |
The percentage of cake rewards that regular farm can earn |
| cake_rate_to_special | u64 |
The percentage of cake rewards that special farm can earn. |
| last_upkeep_timestamp | u64 |
The timestamp of the last upkeep execution. |
| end_timestamp | u64 |
The last time that farms can get cake reward, each upkeep operation will extend this timestamp. |
All pool informations.
struct PoolUserInfo has key {
pid_to_user_info: TableWithLength<u64, UserInfo>,
pids: vector<u64>,
}
| Name | Type | Description |
|---|---|---|
| pid_to_user_info | table_with_length::TableWithLength |
A table contains userInfo corresponds to the pool id. |
| pids | vector |
A list of pool id. |
The user information in each pool.
struct UserInfo has store {
amount: u128,
reward_debt: u128
}
| Name | Type | Description |
|---|---|---|
| amount | u128 |
The total amount of token staked in the pool. |
| reward_debt | u128 |
The total amount of reward distributed to the user. |
The information of each pool
struct PoolInfo has store {
total_amount: u128,
acc_cake_per_share: u128,
last_reward_timestamp: u64,
alloc_point: u64,
is_regular: bool
}
| Name | Type | Description |
|---|---|---|
| total_amount | u128 |
The total amount of stake token. |
| acc_cake_per_share | u128 |
The accumulated cake per share in the pool. |
| last_reward_timestamp | u64 |
The latest time when reward is distributed. |
| alloc_point | u64 |
The pool allocated point. |
| is_regular | bool |
True means this pool is regular farm, otherwise is special farm. |
Deposit the stake token into the pool. It will also transfer reward token to the user if there's any.
public entry fun deposit<CoinType>(
sender: &signer,
amount: u64
)
| Name | Type | Description |
|---|---|---|
| sender | signer |
The sender's signer when calling the function. |
| amount | u64 |
The amount of token that will be deposited. |
Withdraw the stake token from the pool. It will also transfer reward token to the user if there's any.
public entry fun withdraw<CoinType>(
sender: &signer,
amount: u64
)
| Name | Type | Description |
|---|---|---|
| sender | signer |
The sender's signer when calling the function. |
| amount | u64 |
The amount of token that will be withdrawn. |
Withdraw the stake token from the pool regardless of any rewards.
public entry fun emergency_withdraw<CoinType>(sender: &signer)
| Name | Type | Description |
|---|---|---|
| sender | signer |
The sender's signer when calling the function. |
Update all the pool information.
public entry fun mass_update_pools()
Update a specific pool information.
public entry fun update_pool(pid: u64)
| Name | Type | Description |
|---|---|---|
| pid | u64 |
The id of the pool. |
The pending cake reward of the user.
public fun pending_cake(
pid: u64,
user: address
): u64
| Name | Type | Description |
|---|---|---|
| pid | u64 |
The id of the pool. |
| user | address |
The address of the depositor. |
| Type | Description |
|---|---|
u64 |
The total amount of cake reward. |
The total number of pools.
public fun pool_length():u64
| Type | Description |
|---|---|
u64 |
The total number of pools. |
OtterSec's PancakeSwap Aptos MasterChef security audit:
{% file src="../../.gitbook/assets/PancakeSwap_aptos_masterchef_audit.pdf" %}