Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: fix typos and refine texts #63

Merged
merged 4 commits into from
Aug 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions contracts/docs/CnStakingV2.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ CnStakingV2 has built-in multisig facility that requires certain number of appro
- `requirement`: the required number of approvals.
- `isAdmin`: true for admins.

## Contract intialization
## Contract Initialization

Initializing a CnStakingV2 takes multiple steps involving many entities.
1. `constructor()`, usually by the `contractValidator`, or CV.
Expand Down Expand Up @@ -119,7 +119,7 @@ struct WithdrawalRequest {
```

A withdrawal request can be in following `WithdrawalStakingState`
- Unknown: before transfer or cancellation. Unlike `RequestState.Unknown`, `WithdrawalStakingState.Unknwon` is a meaningful enum.
- Unknown: before transfer or cancellation. Unlike `RequestState.Unknown`, `WithdrawalStakingState.Unknown` is a meaningful enum.
- Transferred: successfully executed.
- Canceled: canceled due to timeout or an explicit cancellation.

Expand All @@ -139,7 +139,7 @@ Related functions:
A Klaytn GC member uses several accounts for different purposes. Some of them are appointed via CnStakingV2 contract.

Related functions:
- `multisig UpdateRewardAddress(addr)`: Update the `rewardAddress` and also update to the AddressBook contract.
- `multisig UpdateRewardAddress(addr)`: Update the `rewardAddress` and also update the AddressBook contract.
- `multisig UpdateStakingTracker(addr)`: Update the `stakingTracker` address. CnStakingV2 contract notifies staking balance change and voter address change to the StakingTracker.
- `multisig UpdateVoterAddress(addr)`: Update the `voterAddress` and also update to the StakingTracker contract.

Expand Down
2 changes: 1 addition & 1 deletion contracts/docs/PublicDelegation.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The public delegation (PD) is a non-transferable ERC-4626 based contract that allows general users to delegate and re-delegate their KAIA to a Kaia Governance Council (GC) who uses CnStakingV3MultiSig (CnSV3) and enable PD.

It mints the tokenized shares to the delegator, which is called `pdKAIA`. The `pdKAIA` is a non-transferable interest-bearing token that represents the delegator's share of the total KAIA delegated to the GC. As rewards are compunded, the exchange rate of `pdKAIA` to KAIA increases. The delegator can burn the `pdKAIA` to get the KAIA back. All the math comes from the ERC-4626 standard.
It mints the tokenized shares to the delegator, which is called `pdKAIA`. The `pdKAIA` is a non-transferable interest-bearing token that represents the delegator's share of the total KAIA delegated to the GC. As rewards are compounded, the exchange rate of `pdKAIA` to KAIA increases. The delegator can burn the `pdKAIA` to get the KAIA back. All the math comes from the ERC-4626 standard.

Unlike usual ERC-4626 vault contracts, the reward is directly distributed to PD contract by state modification at the consensus-level. The reward will be automatically compounded to the CnSV3 contract.

Expand Down
6 changes: 3 additions & 3 deletions contracts/docs/voting.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Klaytn governance structure

Klatyn as it is today is run by a permissioned validators called the Governance Council (GC). Each GC member run one Consensus Node (CN) to produce and validate blocks. The GC members also have authority to change Klaytn's network parameters such as gas price and block reward. Our governance contracts are trying to facilitate a transparent and stake-based voting by the GC members.
Klaytn as it is today is run by a permissioned validators called the Governance Council (GC). Each GC member run one Consensus Node (CN) to produce and validate blocks. The GC members also have authority to change Klaytn's network parameters such as gas price and block reward. Our governance contracts are trying to facilitate a transparent and stake-based voting by the GC members.

### Voting power

Expand Down Expand Up @@ -38,7 +38,7 @@ The [KIP-81 as of 2022-11-09](https://github.com/klaytn/kips/blob/a1d99a58a60d0e

## Access Control

Voting contract has two category of users, secretary and voters.
Voting contract has two categories of users, secretary and voters.

- The secretary is a single account stored in the `secretary` variable. This account is intended to be controlled by the Klaytn Foundation. It will serve the GC by assisting administrative works such as submitting and executing proposals.
- Voters are identified by their `NodeID`. The list of voters differs per proposal, depending on the list of GC members registered in AddressBook and their staking amounts at the time of proposal submission.
Expand All @@ -62,7 +62,7 @@ Each function has different access control rule.

In Klaytn there exists a on-chain governance system leveraging block headers ([docs](https://docs.klaytn.foundation/content/dapp/json-rpc/api-references/governance), [explainer in Korean](https://www.youtube.com/watch?v=UPyf7B0YvI0)). Major complaint about the existing system was that it takes 1 to 2 weeks for a parameter change to take effect ([example](https://medium.com/klaytn/klaytn-gas-price-reduction-schedule-2ba158e3630d))

Therefore the Voting contract will allow each proposal to have custom timing. The `propose()` function accepts two timing paramters `votingDelay` and `votingPeriod`, given that they fall within the `timingRule` ranges.
Therefore the Voting contract will allow each proposal to have custom timing. The `propose()` function accepts two timing parameters `votingDelay` and `votingPeriod`, given that they fall within the `timingRule` ranges.

In the default setting, both `votingDelay` and `votingPeriod` are bound between 1 and 28 days. This makes the quickest proposal execution down to 4 days (1 day Pending, 1 day Active, 2 days Queued).

Loading