Files
pezkuwi-subxt/substrate/frame/uniques
Benjamin Kampmann c78c2892a4 Attempting to fix publishing (#9140)
* mark template and utils as non-publish

* switch to development version for testing

* activate unleash check

* maybe if I disable all rules...

* Fix isolated compilation of `max-encoded-len-derive` with `syn`

error[E0369]: binary operation `==` cannot be applied to type `syn::Path`
  --> src/lib.rs:88:29
   |
88 |             .filter(|attr| attr.path == parse_quote!(max_encoded_len_crate))
   |                            --------- ^^ ----------------------------------- _
   |                            |
   |                            syn::Path

error: aborting due to previous error

For more information about this error, try `rustc --explain E0369`.
Error: could not compile `max-encoded-len-derive`

* WIP: bump changes crates since v3 tag to next breaking

cargo unleash version bump-breaking --changed-since v3.0.0
cargo unleash version set-pre dev --changed-since v3.0.0

FIXME: Don't modify crates that are not yet released, e.g.
`max-encoded-len-derive`

* Update lockfile

* WIP: Bump sp-transaction-pool as well

* WIP: Bump sp-offchain as well

* WIP: Bump frame-system-rpc-runtime-api as well

* WIP: Bump sp-authority-discovery as well

* Manually deactivate dev-deps before `cargo unleash check`

Otherwise we run into `Cycle detected` error.

* Bump sp-consensus-slots

* Add missing Cargo.lock change

* Bump sp-consensus-vrf as well

* Bump sp-keyring as well

* Bump sp-consensus-pow as well

* Try to speed up the `unleash-check` job

Previously, the job took 106 minutes - let's see if explicitly
specifying a `CARGO_TARGET_DIR` will help

* fixup: Ensure the temp target dir exists for unleash check

* Bump pallet-transaction-payment-rpc-runtime-api as well

Needed for Polkadot

* Bump pallet-transaction-payment-rpc as well

Needed for Polkadot

* Try updating crates after patching in the Polkadot CI job

* Use another approach to update patched Substrate crates

* Try to update all sp-core versions in Polkadot CI job

* Simplify sp-core version checking

* Apply another shellcheck lint

* Just do the simplest thing I guess

* Welp don't do --offline then

* Clean up `unleash-check` job triggers

Co-authored-by: Denis Pisarev <denis.pisarev@parity.io>

* Fix a note in unleash-check cache step

* Add a note about temporary optimization in cargo-unleash

* Pin a newer version of cargo-unleash

Co-authored-by: Igor Matuszewski <xanewok@gmail.com>
Co-authored-by: Denis Pisarev <denis.pisarev@parity.io>
2021-07-11 12:17:53 +00:00
..

Uniques Module

A simple, secure module for dealing with non-fungible assets.

Overview

The Uniques module provides functionality for asset management of non-fungible asset classes, including:

  • Asset Issuance
  • Asset Transfer
  • Asset Destruction

To use it in your runtime, you need to implement the assets uniques::Config.

The supported dispatchable functions are documented in the uniques::Call enum.

Terminology

  • Asset issuance: The creation of a new asset instance.
  • Asset transfer: The action of transferring an asset instance from one account to another.
  • Asset burning: The destruction of an asset instance.
  • Non-fungible asset: An asset for which each unit has unique characteristics. There is exactly one instance of such an asset in existance and there is exactly one owning account.

Goals

The Uniques pallet in Substrate is designed to make the following possible:

  • Allow accounts to permissionlessly create asset classes (collections of asset instances).
  • Allow a named (permissioned) account to mint and burn unique assets within a class.
  • Move asset instances between accounts permissionlessly.
  • Allow a named (permissioned) account to freeze and unfreeze unique assets within a class or the entire class.
  • Allow the owner of an asset instance to delegate the ability to transfer the asset to some named third-party.

Interface

Permissionless dispatchables

  • create: Create a new asset class by placing a deposit.
  • transfer: Transfer an asset instance to a new owner.
  • redeposit: Update the deposit amount of an asset instance, potentially freeing funds.
  • approve_transfer: Name a delegate who may authorise a transfer.
  • cancel_approval: Revert the effects of a previous approve_transfer.

Permissioned dispatchables

  • destroy: Destroy an asset class.
  • mint: Mint a new asset instance within an asset class.
  • burn: Burn an asset instance within an asset class.
  • freeze: Prevent an individual asset from being transferred.
  • thaw: Revert the effects of a previous freeze.
  • freeze_class: Prevent all asset within a class from being transferred.
  • thaw_class: Revert the effects of a previous freeze_class.
  • transfer_ownership: Alter the owner of an asset class, moving all associated deposits.
  • set_team: Alter the permissioned accounts of an asset class.

Metadata (permissioned) dispatchables

  • set_attribute: Set a metadata attribute of an asset instance or class.
  • clear_attribute: Remove a metadata attribute of an asset instance or class.
  • set_metadata: Set general metadata of an asset instance.
  • clear_metadata: Remove general metadata of an asset instance.
  • set_class_metadata: Set general metadata of an asset class.
  • clear_class_metadata: Remove general metadata of an asset class.

Force (i.e. governance) dispatchables

  • force_create: Create a new asset class.
  • force_asset_status: Alter the underlying characteristics of an asset class.

Please refer to the Call enum and its associated variants for documentation on each function.

License: Apache-2.0