Skip to content

Latest commit

 

History

History
204 lines (146 loc) · 7.05 KB

File metadata and controls

204 lines (146 loc) · 7.05 KB

MasterChef

Contract info

Contract name: pancake::masterchef
Contract address:

7968a225eba6c99f5f1070aeec1b405757dee939eabcfda43ba91588bf5fccf3::masterchef

Admin multi sig address: eef8788f3eaa34b936d0bc5897fc40fa3782b1e663bf04edf2cd22fcd18329ff

Aptos Explorer

Resources

MasterChef

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_capaccount::SingerCapabilityThe signer capability of the resource account.
adminaddressThe admin address of the module.
upkeep_adminaddressThe account that execute upkeep call.
lp_to_pidtable_with_length::TableWithLengthLP token type info and corresponding pool id.
lpsvectorAll added LP token type info array.
pool_infovectorA list of pool _info struct.
total_regular_alloc_pointu64Sum of all regular farm allocate points.
total_special_alloc_pointu64Sum of all special farm allocate points.
cake_per_secondu64Cake reward per second for all farm pools.
cake_rate_to_regularu64The percentage of cake rewards that regular farm can earn
cake_rate_to_specialu64The percentage of cake rewards that special farm can earn.
last_upkeep_timestampu64The timestamp of the last upkeep execution.
end_timestampu64The last time that farms can get cake reward, each upkeep operation will extend this timestamp.

PoolUserInfo

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.

UserInfo

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.

PoolInfo

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.

Entry Functions

Deposit

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

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.

Emergency Withdraw

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.

Mass Update Pools

Update all the pool information.

public entry fun mass_update_pools()

Update Pool

Update a specific pool information.

public entry fun update_pool(pid: u64)
Name Type Description
pid u64 The id of the pool.

Public Function

Pending Cake

The pending cake reward of the user.

public fun pending_cake(
    pid: u64,
    user: address
): u64 

Input Values

Name Type Description
pid u64 The id of the pool.
user address The address of the depositor.

Return Values

Type Description
u64 The total amount of cake reward.

Pool Length

The total number of pools.

public fun pool_length():u64

Return Values

Type Description
u64 The total number of pools.

Audit

OtterSec's PancakeSwap Aptos MasterChef security audit:

{% file src="../../.gitbook/assets/PancakeSwap_aptos_masterchef_audit.pdf" %}