Skip to content

Releases: PolymeshAssociation/Polymesh

v7.3.0

16 Jul 15:17
1b8c0da
Compare
Choose a tag to compare

changelog

new features

  • Removes CDD check for transferring POLYX (#1822)
  • Remove CDD checks for nominators in the Staking pallet (#1828)
  • Move the CDD check from the transaction level to the key permissions check. A valid CDD is only required for Identity and Asset related transactions (#1827)
  • Remove ability to accept custody of a default portfolio (#1828)
  • Allow MultiSig calls to be subsidized. The MS needs to remove it's PayingDID after accepting the subsidy authorization, otherwise transaction fees would still be paid by the primary key of the PayingDID (#1819)
  • Support <Bytes>...</Bytes> wrapping when verifying off-chain signatures (#1821)
  • Off-chain signatures for Identity.add_secondary_keys_with_authorization, Identity.create_child_identities, Utility.relay_tx and Settlement receipts are verified as both wrapped and unwrapped. Unwrapped signing is no deprecated and support will be dropped in Polymesh v8.0 (#1821)
  • Adds a new workflow for SettleAfterLock instructions (#1818)
  • Fix STO support for offchain receipts for funding an investment in the STO (#1826)
  • Allow an STO to enable offchain funding (#1826)
  • Allow Subsidy of calls to pallets Checkpoint, CorporateBallot and CapitalDistribution (#1840)

new external API

  • Added the MaximumLockPeriod associated type to the settlement pallet (#1818)
  • Added the following storage to the settlement pallet: LockedTimestamp (#1818)
  • Added the following extrinsic to the settlement pallet: lock_instruction (#1818)
  • Added the following runtime api: lock_instruction_weight, instruction_asset_count (#1818)
  • Add extrinsic Sto.enable_offchain_funding to enable support for offchain funding receipts (#1826)

modified external API

  • Removes the Bridge pallet storage (#1815)
  • Change extrinsic Sto.invest to use support both onchain and offchain funding methods (#1826)

new events

  • Added the InstructionLocked variant to the settlement pallet (#1818)
  • Added Sto event FundraiserOffchainFundingEnabled (#1826)

modified events

  • Added missing AssetId value in Sto events: FundraiserCreated, FundraiserFrozen, FundraiserUnfrozen, FundraiserWindowModified, and FundraiserClosed (#1826)
  • Changed Sto event Invested. Moved the "offering token" to the second value to have the same ordering as the other events. Changed "raise token" type to FundingAsset enum to support both onchain and offchain funding (#1826)

other

  • Improve reject_instruction weight calculation (#1818)
  • Improve prune_instruction performance (#1818)
  • Adds the following errors to the settlement pallet: UnexpectedSettlementType, InvalidInstructionStatusForRejection (#1818)
  • Added the following error variants to the settlement pallet: LockTimestampNotFound, ExceededMaximumLockingPeriod, FailedAssetTransferringConditions (#1818)
  • Adds the following errors to the identity pallet: UnauthorizedCallerFrozenDid, UnauthorizedCallerDidMissingCdd, UnauthorizedCallerMissingPermissions (#1827)
  • Adds the following error to the portfolio pallet: DefaultPortfoliosCannotHaveCustodians (#1828)
  • Allows calling lock_instruction if the instruction is already locked (#1842)

data migration

  • Add migration to clear all storage with the Bridge pallet prefix (#1815)

Full Changelog: v7.2.0...v7.3.0

v7.3.0-rc3

09 Jul 15:15
3b92d30
Compare
Choose a tag to compare
v7.3.0-rc3 Pre-release
Pre-release

changelog

new features

  • Removes CDD check for transferring POLYX (#1822)
  • Remove CDD checks for nominators in the Staking pallet (#1828)
  • Move the CDD check from the transaction level to the key permissions check. A valid CDD is only required for Identity and Asset related transactions (#1827)
  • Remove ability to accept custody of a default portfolio (#1828)
  • Allow MultiSig calls to be subsidized. The MS needs to remove it's PayingDID after accepting the subsidy authorization, otherwise transaction fees would still be paid by the primary key of the PayingDID (#1819)
  • Support <Bytes>...</Bytes> wrapping when verifying off-chain signatures (#1821)
  • Off-chain signatures for Identity.add_secondary_keys_with_authorization, Identity.create_child_identities, Utility.relay_tx and Settlement receipts are verified as both wrapped and unwrapped. Unwrapped signing is no deprecated and support will be dropped in Polymesh v8.0 (#1821)
  • Adds a new workflow for SettleAfterLock instructions (#1818)
  • Fix STO support for offchain receipts for funding an investment in the STO (#1826)
  • Allow an STO to enable offchain funding (#1826)

new external API

  • Added the MaximumLockPeriod associated type to the settlement pallet (#1818)
  • Added the following storage to the settlement pallet: LockedTimestamp (#1818)
  • Added the following extrinsic to the settlement pallet: lock_instruction (#1818)
  • Added the following runtime api: lock_instruction_weight, instruction_asset_count (#1818)
  • Add extrinsic Sto.enable_offchain_funding to enable support for offchain funding receipts (#1826)

modified external API

  • Removes the Bridge pallet storage (#1815)
  • Change extrinsic Sto.invest to use support both onchain and offchain funding methods (#1826)

new events

  • Added the InstructionLocked variant to the settlement pallet (#1818)
  • Added Sto event FundraiserOffchainFundingEnabled (#1826)

modified events

  • Added missing AssetId value in Sto events: FundraiserCreated, FundraiserFrozen, FundraiserUnfrozen, FundraiserWindowModified, and FundraiserClosed (#1826)
  • Changed Sto event Invested. Moved the "offering token" to the second value to have the same ordering as the other events. Changed "raise token" type to FundingAsset enum to support both onchain and offchain funding (#1826)

other

  • Improve reject_instruction weight calculation (#1818)
  • Improve prune_instruction performance (#1818)
  • Adds the following errors to the settlement pallet: UnexpectedSettlementType, InvalidInstructionStatusForRejection (#1818)
  • Added the following error variants to the settlement pallet: LockTimestampNotFound, ExceededMaximumLockingPeriod, FailedAssetTransferringConditions (#1818)
  • Adds the following errors to the identity pallet: UnauthorizedCallerFrozenDid, UnauthorizedCallerDidMissingCdd, UnauthorizedCallerMissingPermissions (#1827)
  • Adds the following error to the portfolio pallet: DefaultPortfoliosCannotHaveCustodians (#1828)

data migration

  • Add migration to clear all storage with the Bridge pallet prefix (#1815)

Full Changelog: v7.2.0...v7.3.0-rc2

v7.3.0-rc2

03 Jul 10:57
8d3abf9
Compare
Choose a tag to compare
v7.3.0-rc2 Pre-release
Pre-release

changelog

new features

  • Removes CDD check for transferring POLYX (#1822)
  • Remove CDD checks for nominators in the Staking pallet (#1828)
  • Move the CDD check from the transaction level to the key permissions check. A valid CDD is only required for Identity and Asset related transactions (#1827)
  • Remove ability to accept custody of a default portfolio (#1828)
  • Allow MultiSig calls to be subsidized. The MS needs to remove it's PayingDID after accepting the subsidy authorization, otherwise transaction fees would still be paid by the primary key of the PayingDID (#1819)
  • Support <Bytes>...</Bytes> wrapping when verifying off-chain signatures (#1821)
  • Off-chain signatures for Identity.add_secondary_keys_with_authorization, Identity.create_child_identities, Utility.relay_tx and Settlement receipts are verified as both wrapped and unwrapped. Unwrapped signing is no deprecated and support will be dropped in Polymesh v8.0 (#1821)
  • Adds a new workflow for SettleAfterLock instructions (#1818)
  • Fix STO support for offchain receipts for funding an investment in the STO (#1826)
  • Allow an STO to enable offchain funding (#1826)

new external API

  • Added the MaximumLockPeriod associated type to the settlement pallet (#1818)
  • Added the following storage to the settlement pallet: LockedTimestamp (#1818)
  • Added the following extrinsic to the settlement pallet: lock_instruction (#1818)
  • Added the following runtime api: lock_instruction_weight, instruction_asset_count (#1818)
  • Add extrinsic Sto.enable_offchain_funding to enable support for offchain funding receipts (#1826)

modified external API

  • Removes the Bridge pallet storage (#1815)
  • Change extrinsic Sto.invest to use support both onchain and offchain funding methods (#1826)

new events

  • Added the InstructionLocked variant to the settlement pallet (#1818)
  • Added Sto event FundraiserOffchainFundingEnabled (#1826)

modified events

  • Added missing AssetId value in Sto events: FundraiserCreated, FundraiserFrozen, FundraiserUnfrozen, FundraiserWindowModified, and FundraiserClosed (#1826)
  • Changed Sto event Invested. Moved the "offering token" to the second value to have the same ordering as the other events. Changed "raise token" type to FundingAsset enum to support both onchain and offchain funding (#1826)

other

  • Improve reject_instruction weight calculation (#1818)
  • Improve prune_instruction performance (#1818)
  • Adds the following errors to the settlement pallet: UnexpectedSettlementType, InvalidInstructionStatusForRejection (#1818)
  • Added the following error variants to the settlement pallet: LockTimestampNotFound, ExceededMaximumLockingPeriod, FailedAssetTransferringConditions (#1818)
  • Adds the following errors to the identity pallet: UnauthorizedCallerFrozenDid, UnauthorizedCallerDidMissingCdd, UnauthorizedCallerMissingPermissions (#1827)
  • Adds the following error to the portfolio pallet: DefaultPortfoliosCannotHaveCustodians (#1828)

data migration

  • Add migration to clear all storage with the Bridge pallet prefix (#1815)

Full Changelog: v7.2.0...v7.3.0-rc2

v7.3.0-rc1

12 Jun 17:45
74bd0f4
Compare
Choose a tag to compare
v7.3.0-rc1 Pre-release
Pre-release

changelog

new features

  • Removes CDD check for transferring POLYX (#1822)
  • Remove CDD checks for nominators in the Staking pallet (#1828)
  • Move the CDD check from the transaction level to the key permissions check. A valid CDD is only required for Identity and Asset related transactions (#1827)
  • Remove ability to accept custody of a default portfolio (#1828)
  • Allow MultiSig calls to be subsidized. The MS needs to remove it's PayingDID after accepting the subsidy authorization, otherwise transaction fees would still be paid by the primary key of the PayingDID (#1819)
  • Support <Bytes>...</Bytes> wrapping when verifying off-chain signatures (#1821)
  • Off-chain signatures for Identity.add_secondary_keys_with_authorization, Identity.create_child_identities, Utility.relay_tx and Settlement receipts are verified as both wrapped and unwrapped. Unwrapped signing is no deprecated and support will be dropped in Polymesh v8.0 (#1821)
  • Adds a new workflow for SettleAfterLock instructions (#1818)
  • Fix STO support for offchain receipts for funding an investment in the STO (#1826)
  • Allow an STO to enable offchain funding (#1826)

new external API

  • Added the MaximumLockPeriod associated type to the settlement pallet (#1818)
  • Added the following storage to the settlement pallet: LockedTimestamp (#1818)
  • Added the following extrinsic to the settlement pallet: lock_instruction (#1818)
  • Added the following runtime api: lock_instruction_weight, instruction_asset_count (#1818)
  • Add extrinsic Sto.enable_offchain_funding to enable support for offchain funding receipts (#1826)

modified external API

  • Removes the Bridge pallet storage (#1815)
  • Change extrinsic Sto.invest to use support both onchain and offchain funding methods (#1826)

new events

  • Added the InstructionLocked variant to the settlement pallet (#1818)
  • Added Sto event FundraiserOffchainFundingEnabled (#1826)

modified events

  • Added missing AssetId value in Sto events: FundraiserCreated, FundraiserFrozen, FundraiserUnfrozen, FundraiserWindowModified, and FundraiserClosed (#1826)
  • Changed Sto event Invested. Moved the "offering token" to the second value to have the same ordering as the other events. Changed "raise token" type to FundingAsset enum to support both onchain and offchain funding (#1826)

other

  • Improve reject_instruction weight calculation (#1818)
  • Improve prune_instruction performance (#1818)
  • Adds the following errors to the settlement pallet: UnexpectedSettlementType, InvalidInstructionStatusForRejection (#1818)
  • Added the following error variants to the settlement pallet: LockTimestampNotFound, ExceededMaximumLockingPeriod, FailedAssetTransferringConditions (#1818)
  • Adds the following errors to the identity pallet: UnauthorizedCallerFrozenDid, UnauthorizedCallerDidMissingCdd, UnauthorizedCallerMissingPermissions (#1827)
  • Adds the following error to the portfolio pallet: DefaultPortfoliosCannotHaveCustodians (#1828)

data migration

  • Add migration to clear all storage with the Bridge pallet prefix (#1815)

Full Changelog: v7.2.0...v7.3.0-rc1

Polymesh v7.2.0

26 Mar 10:59
c62219d
Compare
Choose a tag to compare

changelog

new features

  • Performs pip pruning/refunds on_idle (#1772)
  • Adds initiate_corporate_action_and_ballot (#1797)
  • Allow Nft and Staking calls to be Subsidized (#1795)

new external API

  • Adds update_global_metadata_spec extrinsic (#1786)
  • Adds the following storage to the pips pallet: PendingRefunds, VotesToBePruned (#1772)
  • Adds the following errors to the identity pallet: BadAuthorizationType, InvalidAuthorization (#1793)
  • Adds the following errors to the multisig pallet: BadAuthorizationType (#1793)
  • Adds the following errors to the portfolio pallet: BadAuthorizationType (#1793)
  • Adds the following errors to the asset pallet: BadAuthorizationType (#1793)
  • Adds the following errors to the external agents pallet: BadAuthorizationType (#1793)
  • Adds the following errors to the releyer pallet: BadAuthorizationType (#1793)
  • Adds initiate_corporate_action_and_ballot (#1797)

new events

  • Adds GlobalMetadataSpecUpdatedevent (#1786)

modified external API

other

  • Removes custody_and_permission check when creating an asset (#1786)
  • Removes values from storage when balances go to zero (#1786)
  • Refactor pallet dependencies (#1771) (#1787)
  • Fix contracts to use the new upgradable wrapper contract (#1788)
  • Improves benchmarks, taking into account the number of votes that were pruned/refunded (#1788)
  • Adds bounds to the number of pruned votes/refunds (#1788)
  • Improve Pips pallet documentation (#1788)
  • Support loading chain spec with dev/testnet runtime (#1788)
  • Add v7.0 chain spec for ci-runtime (#1788)
  • Add CLI tool to upgrade the ci-chain (#1788)
  • Run the integration tests before and after a chain upgrade (#1788)
  • Bump Rust integration resource class (#1788)
  • Update check_storage_version script for new Frame v2 version (#1788)
  • Updates contract data for dev chains to 7.0 upgradable ink contract (#1792)
  • Remove calls to with_transaction (#1791)

Polymesh v7.1.0

16 Jan 13:01
7f87afa
Compare
Choose a tag to compare

7.1 Release Notes

changelog

data migration

  • Add migration for unlinking AssetId/Ticker for reserved tickers;

new events

  • Emit event AllowIdentityToCreatePortfolios when Portfolio.allow_identity_to_create_portfolios is called.
  • Emit event RevokeCreatePortfoliosPermission when Portfolio.revoke_create_portfolios_permission is called.

other

  • Remove our wrapper around frame_system::CheckWeight.
  • Update transaction-payment pallet to use new macros;
  • Identity.add_secondary_key_with_authorization now checks for duplicate keys.
  • Identity.cdd_register_did and Identity.cdd_register_did_with_cdd now checks for duplicate keys and don't require secondary keys to be unlinked.
  • chill_from_governance emits the PermissionedIdentityRemovedevent;
  • get_npos_targets checks if validator is compliant and active balance is above minimum;
  • get_npos_voters checks if nomitors and validators are compliant;
  • Remove the old v7 migrations.
  • Cleanup the Rust docs of the asset pallet.
  • Replaced usage of "security token" and "token" with "asset".

Polymesh v7.0.0

06 Nov 14:52
83535d2
Compare
Choose a tag to compare

changelog

Highlights

Asset ID

Polymesh no longer requires each tokenised asset to have a unique ticker. Instead each asset is assigned a unique AssetID when it is created, which can optionally be linked to a unique Ticker. This change impacts large amounts of storage and API which now expects AssetID to uniquely identify a tokenised asset, rather than the previous Ticker.

Staking

Polymesh has been updated to a more recent upstream version of the Staking pallet. This brings efficiency improvements, and some modifications to the election process. Tokenomics / inflation is not effected.

Keys

The storage of secondary keys, and their associated permissions has been optimised to improve the efficiency of these look-ups which are needed for all extrinsics.

MultiSig

The MultiSig implementation has been updated to simplify the association between MultiSigs and their Identities. The updated implementation provides flexibility to specify which key is responsible for paying for MultiSig signer transactions, and consolidate the behaviour of MultiSig keys with other keys.

Venue ID

Settlements in Polymesh have been updated to not require a Venue ID. This simplifies the settlement process for peer to peer transactions (those not going through an exchange or other matching venue).

New External API

Asset ID

  • pallet_asset
    • The following storage have been added: UniqueTickerRegistration, SecurityTokens, AssetIdentifiers, AssetsExemptFromAffirmation, PreApprovedAsset, TickersOwnedByUser, SecurityTokensOwnedByuser, AssetIDTicker, TickerAssetID, RngNonce;
    • The following extrinsics have been added: register_unique_ticker, exempt_asset_affirmation, remove_asset_affirmation_exemption, pre_approve_asset, remove_asset_pre_approval, link_ticker_to_asset_id.
      (#1694)
  • Adds unlink_ticker_from_asset_id extrinsic. (#1728)

Staking

  • Adds the following storage: MinNominatorBond, MinValidatorBond, MinimumActiveStake, MinCommission, MaxValidatorsCount, MaxNominatorsCount, CurrentPlannedSession, ChillThreshold. (#1678)
  • Removes the following storage: EarliestUnappliedSlash, SnapshotValidators, SnapshotNominators, QueuedElected, QueuedScore, EraElectionStatus, IsCurrentSessionFinal, MinimumBondThreshold (#1678)
  • The following extrinsics have been added: kick, set_staking_configs, chill_other, force_apply_min_commission, set_min_commission. (httpshttps://github.com//pull/1678)

Keys

  • Split secondary key permissions out of Identity.KeyRecords to allow for more efficient permissions checks. (#1679)

MultiSig

  • Execute MultiSig proposal at the same time as the last required approval. No longer uses the scheduler to execute the proposal in the next block. (#1687)
  • Convert the MultiSig pallet to frame v2. (#1687)
  • A Multisig can be made a secondary key with custom permissions (if called by the primary key). (#1687)
  • A Multisig can add/remove multiple singers in a single proposal now with multisig.add_multisig_signers and multisig.remove_multisig_signers. (#1687)
  • Prune proposals when they are executed or rejected. (#1687)
  • Limit the total number of signers per MultiSig to 50. (#1687)
  • Split MultiSig CreatorDid into AdminDid and PayingDid. (#1687)
  • A MultiSig can add an admin DID to enable the *_via_admin controls. (#1687)
  • A MultiSig can remove it's admin to disable the *_via_admin controls. The admin DID can also remove itself as the admin of a MultiSig. (#1687)
  • A MultiSig can remove it's paying DID to pay for its own transaction/protocol fees. (#1687)
  • A MultiSig unlinked from an identity (via identity.leave_identity_as_key) and join a new identity using multisig.approve_join_identity and the transaction fees will be paid by the primary key of the joining identity. (#1687)
  • A MultiSig can't be a signer on another MultiSig. (#1687)
  • Adds remove_adminextrinsic; (#1726)
  • multisig.add_admin(identity) callable by the MultiSig to add an identity as admin. (#1687)
  • multisig.remove_admin_via_admin(multisig) callable by the admin to remove itself as admin of a MultiSig. (#1687)
  • multisig.remove_payer() callable by the MultiSig to remove the paying identity. The MultiSig will need to pay for its own transaction/protocol fees. (#1687)
  • multisig.remove_payer_via_payer(multisig) callable by the paying identity to remove itself as the payer of fees for the MultiSig. (#1687)
  • multisig.approve_join_identity(auth_id) callable by MultiSig signers to approve joining a new identity. The primary key of the joining identity will pay for transaction fees. (#1687)
  • multisig.join_identity(auth_id) this is called by the proposal created in approve_join_identity to accept a join identity authorization. (#1687)
  • Added storage AuthToProposalId used by multisig.approve_join_identity to map an auth_id to proposal_id. (#1687)
  • Adds remove_adminextrinsic. (httpshttps://github.com//pull/1726)

Other

  • Remove most of the Bridge code (extrinsics, events, errors). Only keeping the storage. (#1687)
  • Use manual pallet index values, to avoid breaking pallet ids when adding/removing pallets. Also this makes sure that all runtimes use the same pallet indices. (#1687)

Modified External API

Asset ID

  • pallet_asset
    • The following storage have been remove: Tickers, Tokens, Identifiers, TickersExemptFromAffirmation; PreApprovedTicker;
    • The following storage have changed types: AssetNames, BalanceOf, FundingRound, IssuedInFundingRound, Frozen, AssetDocuments, AssetDocumentsIdSequence, AssetMetadataValues, AssetMetadataValueDetails, AssetMetadataLocalNameToKey, AssetMetadataLocalKeyToName, AssetMetadataLocalSpecs, AssetMetadataNextLocalKey, MandatoryMediators, CurrentAssetMetadataLocalKey;
    • The following extrinsics have been removed: register_ticker, redeem_from_portfolio, exempt_ticker_affirmation, remove_ticker_affirmation_exemption, pre_approve_ticker, remove_ticker_pre_approval;
    • The following extrinsics have been changed: create_asset, freeze, unfreeze, rename_asset, issue, redeem, make_divisible, add_documents, remove_documents, set_funding_round, update_identifiers, controller_transfer, create_asset_with_custom_type, set_asset_metadata, set_asset_metadata_details, register_and_set_local_asset_metadata, register_asset_metadata_local_type, update_asset_type, remove_local_metadata_key, remove_metadata_value, add_mandatory_mediators, remove_mandatory_mediators.
      (#1694)
  • pallet_checkpoint
    • The following storage have changed types: TotalSupply, Balance, CheckpointIdSequence, BalanceUpdates, Timestamps, ScheduleIdSequence, CachedNextCheckpoints, ScheduledCheckpoints, ScheduleRefCount, SchedulePoints;
    • The following extrinsics have been changed: create_checkpoint, create_schedule, remove_schedule; * pallet_compliance_manager
    • The following storage have changed types: AssetCompliances, TrustedClaimIssuer;
    • The following extrinsics have been changed: add_compliance_requirement, remove_compliance_requirement, replace_asset_compliance, reset_asset_compliance, pause_asset_compliance, resume_asset_compliance, add_default_trusted_claim_issuer, remove_default_trusted_claim_issuer, change_compliance_requirement; * pallet_corporate_actions
    • The following storage have changed types: DefaultTargetIdentities, DefaultWithholdingTax, DidWithholdingTax, CAIdSequence, CorporateActions;
    • The following extrinsics have been changed: set_default_targets, set_default_withholding_tax, set_did_withholding_tax, initiate_corporate_action, link_ca_doc, remove_ca, change_record_date. (#1694)
  • pallet_distribution
    • The following extrinsics have been changed: distribute
      (#1694)
  • pallet_external_agents
    • The following storage have changed types: AGIdSequence, AgentOf, GroupOfAgent, NumFullAgents, GroupPermissions;
    • The following extrinsics have been changed: create_group, set_group_permissions, remove_agent, abdicate, change_group, create_group_and_add_auth, create_and_change_custom_group
      (#1694)
  • pallet_nft
    • __The follo...
Read more

Polymesh v6.3.5

10 Oct 14:26
dab5d1a
Compare
Choose a tag to compare

changelog

other

  • when redeeming (aka burning) NFTs, due to an upstream bug, the cost of the transaction is under-valued
  • when affirming settlement instructions, it is possible for a user to construct a complex transaction that is expensive to process, but cheap to submit, causing a possible DoS attack vector

Polymesh v6.3.3

28 Jul 20:45
7e570da
Compare
Choose a tag to compare

Fix bug with NFT controller transfer

Polymesh v6.3.2

10 Jul 13:23
cfb6ba2
Compare
Choose a tag to compare

changelog

other

  • Allow updating the controller if the stash is the same as the controller;
  • Update reference count even if the validator is not a permissioned identity;

data migration

  • Update reference count for three keys;