Joystream / Joystream/joystream

Costs coverable with locked funds (proposal & summary)

Open
#4,167 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
1.4k
Forks
116
PR merge metrics
No merged PRs in 30d

Description

_**Addresses point `2` of `Part 2` section of https://github.com/Joystream/joystream/issues/4162**_

Below are the tables that summarize additional costs (besides standard tx fee) that are associated with some extrinsics in each pallet.
Each extrinsic that involves any additional costs should be part of this summary.
Tables include a column for each of the 4 non-rivalrous locks: `InvitedMember`, `Vesting`, `Voting`, `BoundStakingAccount`.
In those columns I've put information about which extrinsic costs are coverable with funds locked with a given lock.
The most common values there include:
- `All` - all costs associated with executing this extrinsic, **including tx fee**, can be covered by a given lock
- `Add.` - all costs associated with executing this extrinsic, **excluding tx fee**, can be covered by a given lock
- `Tx fee` - only the tx fee can be covered by a given lock
- `None` - neither the tx fee nor any of the other costs associated with executing this extrinsic can be covered by a given lock

I followed a few general rules when preparing those tables:
- Bloat bonds, tx fees and any other custom fees (ie. data size fee) are all coverable with `Vesting` and `InvitedMember` locks, but not with other non-rivalrous locks
- All non-rivalrous lock (`InvitedMember`, `Vesting`, `Voting`, `BoundStakingAccount`) can cover any stake (but not another stake that reuses the same lock, so `Voting` cannot cover another `Voting` etc.)
- Any other costs are not coverable by any locked funds (with the excpetion of `amount` provided to `burn_account_tokens`, which can be covered with any locked funds)

### Content pallet

| Extrinsic | Additional costs involved (Add.) | `InvitedMember` | `Vesting` | `Voting` | `BoundStakingAccount` |
|---------------------------------|-----------------------------------------------------------------------|-----------------|-----------|----------|-----------------------|
| `create_channel` | - Data size fee
- Data objects bloat bonds
- Channel bloat bond | All | All | None | None |
| `update_channel` | - Data size fee
- Data objects bloat bonds | All | All | None | None |
| `create_video` | - Data size fee
- Data objects bloat bonds
- Video bloat bond | All | All | None | None |
| `update_video` | - Data size fee
- Data objects bloat bonds | All | All | None | None |
| `make_english_auction_bid` | - Bid amount | Tx fee | Tx fee | None | None |
| `make_open_auction_bid` | - Bid amount | Tx fee | Tx fee | None | None |
| `accept_incoming_offer` | - Offer price | Tx fee | Tx fee | None | None |
| `buy_nft` | - Nft price | Tx fee | Tx fee | None | None |
| `accept_channel_transfer` | - Swap price (if set) | Tx fee | Tx fee | None | None |
| `issue_creator_token` | - Initial issuance accounts bloat bonds | All | All | None | None |
| `creator_token_issuer_transfer` | - Recipients bloat bonds (if needed) | All | All | None | None |

### Council pallet

| Extrinsic | Additional costs involved (Add.) | `InvitedMember` | `Vesting` | `Voting` | `BoundStakingAccount` |
|---------------------------------|-----------------------------------------------------------------------|-----------------|-----------|----------|-----------------------|
| `announce_candidacy` | - Candidate stake | All | All | Add. | Add. |
| `fund_council_budget` | - Funding amount | Tx fee | Tx fee | None | None |

### Forum pallet

| Extrinsic | Additional costs involved (Add.) | `InvitedMember` | `Vesting` | `Voting` | `BoundStakingAccount` |
|---------------------------------|-----------------------------------------------------------------------|-----------------|-----------|----------|-----------------------|
| `create_thread` | - Thread deposit
- Post deposit | All | All | None | None |
| `add_post` | - Post deposit | All | All | None | None |

### Membership pallet

| Extrinsic | Additional costs involved (Add.) | `InvitedMember` | `Vesting` | `Voting` | `BoundStakingAccount` |
|---------------------------------|-----------------------------------------------------------------------|-----------------|-----------|----------|-----------------------|
| `buy_membership` | - Membership fee | Tx fee | Tx fee | None | None |
| `gift_membership` | - Membership fee
- Controller acc credit
- Root acc credit | Tx fee | Tx fee | None | None |
| `add_staking_account_candidate` | - Staking candidate stake | All | All | Add. | - |

### Project token pallet

| Extrinsic | Additional costs involved (Add.) | `InvitedMember` | `Vesting` | `Voting` | `BoundStakingAccount` |
|---------------------------------|-----------------------------------------------------------------------|--------------------|--------------------|----------|-----------------------|
| `transfer` | - Recipients bloat bonds (if needed) | All | All | None | None |
| `join_whitelist` | - Token account bloat bond | All | All | None | None |
| `purchase_tokens_on_sale` | - Price of purchased tokens
- Account bloat bond (if new account) | Tx fee, Bloat bond | Tx fee, Bloat bond | None | None |

### Proposals codex pallet

| Extrinsic | Additional costs involved (Add.) | `InvitedMember` | `Vesting` | `Voting` | `BoundStakingAccount` |
|---------------------------------|-----------------------------------------------------------------------|--------------------|--------------------|----------|-----------------------|
| `create_proposal` | - Proposal stake | All | All | Add. | Add. |

### Proposals discussion pallet

| Extrinsic | Additional costs involved (Add.) | `InvitedMember` | `Vesting` | `Voting` | `BoundStakingAccount` |
|---------------------------------|-----------------------------------------------------------------------|--------------------|--------------------|----------|-----------------------|
| `add_post` | - Post deposit | All | All | None | None |

### Referendum pallet

| Extrinsic | Additional costs involved (Add.) | `InvitedMember` | `Vesting` | `Voting` | `BoundStakingAccount` |
|---------------------------------|-----------------------------------------------------------------------|--------------------|--------------------|----------|-----------------------|
| `vote` | - Vote stake | All | All | None | Add. |

### Utility pallet

| Extrinsic | Additional costs involved (Add.) | `InvitedMember` | `Vesting` | `Voting` | `BoundStakingAccount` |
|---------------------------------|-----------------------------------------------------------------------|--------------------|--------------------|----------|-----------------------|
| `burn_account_tokens` | - Tokens burned | All | All | Add. | Add. |

### Working group pallet

| Extrinsic | Additional costs involved (Add.) | `InvitedMember` | `Vesting` | `Voting` | `BoundStakingAccount` |
|---------------------------------|-----------------------------------------------------------------------|--------------------|--------------------|----------|-----------------------|
| `add_opening` | - Opening stake | All | All | Add. | Add. |
| `apply_on_opening` | - Applicant's stake | All | All | Add. | Add. |
| `increase_stake` | - Stake balance delta | All | All | Add. | Add. |
| `fund_working_group_budget` | - Funding amount | Tx fee | Tx fee | None | None |

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.