BET Contract design Guideline

Part I. Account and Permissions

bet: BOS Executive Team

bet.bos

Permission

owner 
  eosio@active      (1/1)
active
  [25 BET]          (13/25)
  eosio.code@active
minority 
  [25 BET]          (9/25)

Function

  • transfer fund to escrow.bos for each proposal

  • transfer stipend to betchair.bos

  • transfer fund for bet operation(0.8%), developers/infrastructure(0.15% inflation), auditors(0.05%)

betchair.bos

Permission

owner 
     bet.bos@active   (1/1)
active 
     chair@active     (1/2)
     vicechair@active (1/2)
     bet.bos@active   (1/2)

Function

  • distribute stipend to each bet member every 3 months

Part II:ACTION Design

regbetcand [declaration]

Function:

  • This action is used to register a candidate for bet elections.

  • The candidate must have transferred a quantity of tokens (determined by a config setting - lockupasset) to the contract for staking before this action is executed. This could have been from a recent transfer with the contract name in the memo or from a previous time when this account had nominated, as long as the candidate had never unstaked those tokens.

Permission: anyone Parameter:

name cand

withdrawcand

Function:

  • This action is used to withdraw a candidate from being active for auditor elections.

Permission: the candidate itself

Parameters:

name cand

votebetcand

Function:

  • This action is to facilitate voting for candidates to become bet board of BOS.

Permission: anyone

Parameters:

name voter, std::vector<name> newvotes

rmbet [include resign]

Function: To remove a BET members Permission: bet.bos@active (majority decision) Parameters:

name  betmember  //majority decision

rmabsentbet

Function: To remove a BET members who miss two (2) or more consecutive scheduled meetings by minority decision. Permission: bet.bos@minority (minority decision) Parameters:

name  betmember  //minority decision

regbetchair [declaration]

Function:

  • This action is used to register a chairman for bet chairman elections.

  • The candidate must have transferred a quantity of tokens (determined by a config setting - lockupasset) to the contract for staking before this action is executed. This could have been from a recent transfer with the contract name in the memo or from a previous time when this account had nominated, as long as the candidate had never unstaked those tokens.

Permission: anyone Parameter:

name cand

votechairman

Function:

  • This action is to facilitate voting for candidates to become bet mem of BOS.

  • After vote internal, set chairman for BET Board

Permission: bet.bos@active (majority decision) Parameters:

name  chair_cand  //chairman candidate

rmchairman [include resign]

Function: to remove the current chairman and replace it with bet.bos@active

Permission: bet.bos@active (majority decision) Parameters:

name  chairman  //majority decision

transfer [listen]

Function:

  • Action to listen to from the associated token contract to ensure registering should be allowed.

  • This action is intended only to observe transfers that are run by the associated token contract for the purpose of tracking the moving weights of votes if either the from or to in the transfer have active votes. It is not included in the ABI to prevent it from being called from outside the chain.

Part III:Table Design

TABLE betcands

Function:BET Candidate parameters:

name candidate_name;
    asset locked_tokens;
    uint64_t total_votes;
    uint8_t is_active;
    time_point_sec auditor_end_time_stamp;

TABLE betchaircands

Function:BET Chair Candidate parameters:

name candidate_name;

Part IV: Declaration

regbetcand

I {{regbetcand}}, have consented to act as a BOS Executive Team member, and I agree to comply with the following BET Members’ Code of Ethics throughout my term as a member:

Confidentiality – I DECLARE not to disclose to any person information decided by the BOS BET members to be confidential or privileged or which reasonably ought to be deemed confidential. When in doubt, DECLARE to request determination by a resolution of the Board.

Good Conduct – At all times, I DECLARE to conduct myself in a professional and businesslike manner at meetings of the Board. DECLARE to approach all Board issues with an open mind, preparing to make the best decisions on behalf of the BOS ecosystem. DECLARE to act ethically with integrity. DECLARE to deal with others in a respectful manner.

Support – I DECLARE to abide by decisions of the Board even though I may disagree, but I reserve the right to express my own views to my community upon non-confidential issues.

Defamation – I DECLARE not to make erroneous or defamatory statements about the Board.

Agreement I hereby agree to comply with the provisions set out in this BET Members’ Code of Ethics.

regbetchair

Last updated