Skip to content

Commit

Permalink
docs: added documentation for drain delegate operation
Browse files Browse the repository at this point in the history
  • Loading branch information
hui-an-yang committed Dec 7, 2022
1 parent 3e483fa commit 213acd3
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 0 deletions.
21 changes: 21 additions & 0 deletions docs/drain_delegate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: Drain Delegate
author: Hui-An Yang
---

## 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 updated consensus key
- `delegate` is the public key hash of the baker/delegate
- `destination` is the public key hash of the destination account
1 change: 1 addition & 0 deletions website/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ const sidebars = {
'confirmation_event_stream',
'set_delegate',
'dapp_prelaunch',
'drain_delegate',
'estimate',
'subscribe_event',
'fa2_parameters',
Expand Down
1 change: 1 addition & 0 deletions website/sidebars.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"confirmation_event_stream",
"set_delegate",
"dapp_prelaunch",
"drain_delegate",
"estimate",
"fa2_parameters",
"lambda_view",
Expand Down
21 changes: 21 additions & 0 deletions website/versioned_docs/version-15.0.0/drain_delegate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: Drain Delegate
author: Hui-An Yang
---

## 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 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 213acd3

Please sign in to comment.