The Rings pallet provides a cross-consensus message (XCM) abstraction layer for INV4 Cores, enabling them to manage assets effortlessly across multiple chains. It abstracts XCM complexities, facilitating easier handling of cross-chain transactions.
- Maintenance Mode: Chains can be put under maintenance, restricting certain operations to ensure system integrity during upgrades or when issues are detected.
- Cross-chain Calls: Enables sending XCM calls to other chains, allowing for a wide range of interactions.
- Asset Transfers: Supports transferring fungible assets between accounts across different chains.
- Asset Bridging: Facilitates the bridging of assets between chains, enhancing liquidity and asset interoperability.
The pallet utilizes traits to abstract chain and asset locations:
- [
ChainList
]: Provides an interface for referencing chains and retrieving their [MultiLocation
] or main asset. - [
ChainAssetsList
]: Offers an interface for referencing chain assets and obtaining their [MultiLocation
] or parent chain.
Sets the maintenance status of a chain. Requires MaintenanceOrigin
authorization.
chain
: The chain to modify.under_maintenance
: The desired maintenance status.
Allows sending a XCM call to another chain. Can be initiated by a core.
destination
: The target chain.weight
: The call's weight.fee_asset
: The asset used for fee payment.fee
: The fee amount.call
: The call data.
Allows transfers of fungible assets to another account in the destination chain.
Requires asset and fee_asset to be located in the same chain.
asset
: The asset to transfer.amount
: The amount to transfer.to
: The recipient account.fee_asset
: The asset used for fee payment.fee
: The fee amount.
Allows bridging of assets to another chain, with either the core account or a third-party account as the beneficiary.
asset
: The asset to bridge and it's origin chain.destination
: The destination chain.fee
: The bridging fee.amount
: The amount to bridge.to
: Optional beneficiary account on the destination chain. (Defaults to the core account)
CallSent
: Emitted when a XCM call is sent to another chain.AssetsTransferred
: Emitted when assets are transferred to another account on a different chain.AssetsBridged
: Emitted when assets are bridged to another chain.ChainMaintenanceStatusChanged
: Indicates a change in a chain's maintenance status.
SendingFailed
: Emitted when sending a XCM message fails.WeightTooHigh
: Emitted when the call's weight exceeds the maximum allowed.FailedToCalculateXcmFee
: Emitted when calculating the XCM fee fails.FailedToReanchorAsset
,FailedToInvertLocation
: Errors related to asset reanchoring or location inversion.DifferentChains
,ChainUnderMaintenance
: Indicate issues with the target chain or maintenance status.
This pallet serves as a foundational component for building cross-chain solutions within the InvArch ecosystem, streamlining asset management and interoperability across diverse blockchain environments.