Skip to content

Commit

Permalink
docs: added docs for drain delegate op
Browse files Browse the repository at this point in the history
  • Loading branch information
hui-an-yang committed Dec 7, 2022
1 parent 3b04c56 commit e66b9e3
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion docs/consensus_key.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Consensus Keys
author: Davis Sawali
author: Davis Sawali & Hui-An Yang
---

The "consensus key" feature allows bakers to use a different key, called the consensus key. It will allow for baking and signing consensus operations (i.e. pre-endorsements and endorsements). For more detailed information on consensus keys, refer to [this documentation](https://tezos.gitlab.io/protocols/015_lima.html?highlight=update%20consensus%20key#consensus-key)
Expand All @@ -20,3 +20,20 @@ await op.confirmation();
```
- `pk` is the public key you want the consensus key to point to


## Drain Delegate
This is an operation that must be signed by the active consensus key `consensus_pkh` of the baker `baker_pkh`. This operation immediately transfers all the spendable balance of the `baker_pkh`’s implicit account into the `destination_pkh` implicit account. It has no effect on the frozen balance. This operation is included in pass 2 (anonymous operations). So drain operations don’t compete with regular manager operations for gas and block size quota; the 1M restriction (one-operation-per-manager-per-block) applies to drain operations as well, meaning that a drain for a baker and a transfer operation from the same baker are in conflict. As an incentive for bakers to include drain operations, a fixed fraction of the drained baker’s spendable balance is transferred as fees to the baker that includes the operation, i.e. the maximum between 1tz or 1% of the spendable balance.

### Examples
```typescript
const drain = await Tezos.contract.drainDelegate({
consensus_key: 'CONSENSUS_PKH',
delegate: 'BAKER_PKH',
destination: 'DESTINATION_PKH',
});
await drain.confirmation();
```

- `consensus_key` is the public key hash of the updated consensus key
- `delegate` is the public key hash of the baker/delegate
- `destination` is the public key hash of the destination account

0 comments on commit e66b9e3

Please sign in to comment.