Skip to content

Releases: PolymeshAssociation/Polymesh

Polymesh v5.2.0

02 Mar 20:33
e8bfe85
Compare
Choose a tag to compare

modified logic

  • Minor changes to running_count insert and delete logic (#1333)
  • Move the decode logic from the RPC wrapper into the chain runtime. This is an internal change between the host binary and the chain runtime. (#1343)
  • Modified unbond function to not allow a validator to unbond leaving less than 50k POLYX bonded (#1348)
  • Added check for ticker starting first byte (#1344)
  • Adds a helper function for setting the Timestamp in unit tests. (#1359)
  • Add ensure check for revoke_claim to make sure claim exist (#1361)
  • Created a check in ticker registration to make sure it is alphanumeric (#1296)
  • Store block hashes for the last 4,096 blocks rather than the current 250 blocks - as per paritytech/polkadot#6037 (#1375)
  • Allow operational extrinsics which are submitted by the GC or a CDD provider to have non-zero tips and corresponding priorities. (#1377)
  • To avoid a state rollback (i.e allow setting instruction status to the failed state) the return of execute_instruction_retryable is now matched, and returns an event in case of failure. (#1383)
  • Added compliance check for validators list and test case to check error (#1376)
  • Don't allow the same ticker to be moved multiple times within the same portfolio move extrinsic (#1374)
  • Emit event BridgeTxFailed to report errors (missing CDD, limit reached) when trying to handle a bridge transaction, instead of returning the error. This is needed to support new Substrate release that wrap all calls in transactions. (#1373)
  • Updates extrinsic benchmarks for 5.2. (#1392)
  • Settlement receipts are not allowed for tickers of on-chain assets. (#1405)
  • Update example settlement contract to use manual settlement execution. (#1391)

data migration required

  • Called Identity add_account_key_ref_count function on current validators (#1333)

new features

  • Allow payment_queryInfo RPC endpoint to work even when the RPC node is a different version from the chain runtime. (#1343)
  • Add support for Smart Contracts to call into the runtime, read from storage, Twox hash, get chain spec/transaction version, get key's identity. (#1337)
  • Add CallRuntimeWhitelist storage to restrict the pallets/extrinsics that contracts are allowed to call. (#1337)
  • Add a new event BridgeTxFailed to the bridge pallet. (#1373)
  • Add example Smart Contract for vesting POLYX. (#1388)
  • Add example Smart Contract for wrapped POLYX. (#1392)
  • Add Polymesh Runtime 5.x contract code for upgradable contracts. (#1393)

modified api

  • Add payment_queryFeeDetails RPC endpoint. (#1343)
  • Added CallRuntime chain extension to allow contracts to call extrinsics. Only extrinsics in the CallRuntimeWhitelist are allowed. (#1337)
  • Added new function chill_from_governance (#1317)
  • Added execute_manual_instruction extrinsic (#1352)
  • Added ReadStorage chain extension for reading from any hashed storage key (key and value limited to 8kb). (#1337)
  • Added GetSpecVersion chain extension to get current spec version. (#1337)
  • Added GetTransactionVersion chain extension to get the current transaction version. (#1337)
  • Added GetKeyDid chain extension to get the identity for a key (AccountId). (#1337)
  • Added KeyHasher chain extension with hash Twox (64, 128, 256) support. (#1337)
  • Converted old chain extensions to OldCallRuntime. Those chain extensions are deprecated and shouldn't be used. (#1337)
  • Added storage CallRuntimeWhitelist to restrict the pallets/extrinsics that contracts are allowed to call. (#1337)
  • Added extrinsic PolymeshContracts.update_call_runtime_whitelist() to add/remove extrinsics from the whitelist. (#1337)
  • New extrinsic identity::cdd_register_did_with_cdd to allow CDD providers to create an identity and add a CDD claim with a blank CddId, in a single extrinsic call. (#1380)
  • Adds an event: FailedToExecuteInstruction; (#1383)
  • The execute_scheduled_instruction will no longer return an error; (#1383)
  • Portfolio::NameToNumber returns an Option (#1381)
  • Disable Settlement claim_receipt and unclaim_receipt. (#1405)

Polymesh v5.1.3

11 Jan 19:44
Compare
Choose a tag to compare

Fix portfolio move bug (See #1374)

Polymesh v5.1.2

03 Jan 12:00
Compare
Choose a tag to compare

Removes ITN Rewards

  • removes corresponding storage
  • makes reward extrinsics uncallable

Polymesh v5.1.1

21 Dec 10:23
Compare
Choose a tag to compare

new features

modified logic

  • When deploying Smart Contracts make sure that the contract's address is linked to the identity before transferring the initial storage fee. (See PolymeshAssociation/substrate@9c28705)

Polymesh v5.1.0

03 Nov 16:47
0e177e4
Compare
Choose a tag to compare

changelog

modified logic

  • MultiSig pays protocol fees. (#1307)
  • modified MultiSigSigners map (#1282)
  • check instruction leg amount and returns error if zero (#1284)
  • removed state from pip.Proposals (#1287)
  • modified renaming portfolio function to insert new name in nameToNumber map (#1285)
  • added redeem_from_portfolio function (#1292)
  • modified base_redeem to correctly check referenced portfolio (#1338)

modified api

  • created update_venue_signers function and VenueSignersUpdated Event (#1273)
  • adds CustomClaimTypeAdded event to record custom claim (#1266)
  • adds CustomClaimTypeDoesNotExist error if claim type doesn't exist (#1266)
  • adds CustomClaims, CustomClaimsInverse, CustomClaimIdSequence storage to record custom claim details (#1266)
  • adds register_custom_claim_type extrinsic to register new custom claim types (#1266)
  • add a few new fields to AssetCreated event (#1272)
  • added optional memo field to Instructions (#1280)

new features

  • adds the ability to register and then add custom claims (Claim::Custom) (#1266)
  • Add storage version check script to pipeline and fix genesis config for Portfolio & Statistics pallets.
  • Add missing rpc endpoints and signedExtensions. #1329
  • Re-use the develop runtime code and add support for building just a special ci runtime.
  • Updates benchmarks for new 5.1 extrinsics
  • Bump spec_version to 5_001_002 (5.1.0-rc2)

Polymesh 5.0.4

12 Oct 17:34
Compare
Choose a tag to compare

changelog

new features

  • Allows relayer functionality for the Balances module

modified logic

  • Extrinsic Portfolio.movePortfolioFunds will throw error InvalidGranularity if trying to move a fraction of a non-divisible token.
  • Settlement affirms calls will also check granularity of token transfer when trying to lock the tokens. Will throw a FailedToLockTokens error.
  • Fixes on-chain election issues following offline offenses

Polymesh 5.0.3

26 Sep 10:49
8481636
Compare
Choose a tag to compare

Changes relative to 5.0.2

  • Updates extrinsic weights for batched functions
  • Adds health check and key rotation utilities to Docker images
  • Adds aarch64 binaries to release artefacts
  • Multisig protocol fees paid correctly by associated identities primary key

Polymesh 5.0.2

11 Aug 11:36
Compare
Choose a tag to compare

changelog

modified logic

  • We have moved from substrate 3.0.0 to substrate's monthly-2021-11 tag instead. Allowing us to implement smart contracts. (#1188)
  • Update to Substrate monthly 2022-05. (#1241)
  • Add permission complexity to the weights of extrinsics: identity.add_authorization, identity.set_permission_to_signer, identity.legacy_set_permission_to_signer, and identity.add_secondary_keys_with_authorization (#1192)
  • More restrict limits on secondary keys and their permissions. (#1189)
  • Add missing check to relayer.accept_paying_key. (#1209)
  • Add missing weight to change_bridge_exempted. (#1209)
  • Use a cost function for Condition type for more accurate call weights. (#1204)
  • Change multisig.create_create_proposal_as_key and multisig.create_proposal_as_identity to not use the multsig::ProposalIds map. (#1225)
  • Adding secondary key and permissions length checks to cdd_register_did (#1221)
  • capitalDistribution.distribute() will throw error DistributionAmountIsZero when amount is zero and throw DistributionPerShareIsZero when per_share is zero. (#1236)
  • adding tests for checking multisig errors and secondary key & permission limits (#1227)
  • Fixed the balance check for MultiSig primary/secondary keys. (#1224)
  • MultiSig balance limit changed from zero to 1.0 POLYX. (#1224)
  • Remove dead code unlink_multisig_signers_from_did(), since the signers for a multisig are never linked to the identity. (#1224)
  • minor change and removed test case (#1235)
  • Created more specific error types for improving singer already linked type errors (#1226)
  • Treasury::disbursement() now checks if the beneficiaries exist and have a primary key. (#1233)
  • If the treasury disbursement transfer fails (treasury balance locked, beneficiary missing CDD), then event Treasury::TreasuryDisbursementFailed. (#1233)
  • Identity.remove_secondary_keys() now checks if the keys to remove are secondary keys. (#1220)

new features

  • Add generated error types to errors_schema.json for improved error decoding. (#1167)
  • Add support for custom asset metadata (key/value pairs). (#1218)
  • Asset metadata keys can be either ticker-local or global names, with either on/off chain specifications (value type/format/encoding). (#1218)
  • Asset metadata can be permanently locked, or locked for a limited amount of time (1 month, 1 year, etc...). (#1218)
  • An optional expire date can be set for the metadata value. This is informational only, the chain doesn't remove the value after the expire date. (#1218)
  • On-chain metadata type specification can be used to generate encode/decode code for UIs/Smart Contracts. (#1218)
  • Add new asset identifier AssetIdentifier::FIGI. (#1234)
  • Bump transaction version to 3. (#1236)
  • Added Asset::create_asset_with_custom_type (#1222)
  • Added CorporateAction::initiate_corporate_action_and_distribute (#1222)
  • Added ExternalAgent::create_group_and_add_auth (#1222)
  • Added ExternalAgent::create_and_change_custom_group (#1222)
  • Adds the smart contracts pallet; see the code for documentation regarding extrinsics and storage items. (#1217)
  • Unlimited number of secondary keys. (#1220)
  • Identity.KeyRecords maps key to KeyRecord type. Can be used to see if the key is a primary key, secondary key or multisig signer. Also has the identity/multisig account that the key is linked to. (#1220)
  • Add Claim based asset statistics and transfer rules. (Jurisdiction, Affiliated, Accredited) (#1159)

modified api

  • Used InvalidCDDId error event in add_investor_uniqueness_claim function (#1214)
  • Add Asset::set_asset_metadata(Ticker, AssetMetadataKey, AssetMetadataValue, Option<AssetMetadataValueDetails>) - Set asset metadata value. (#1218)
  • Add Asset::set_asset_metadata_details - Set asset metadata value details (expire, lock status). (#1218)
  • Add Asset::register_and_set_local_asset_metadata - Register and set local asset metadata. (#1218)
  • Add Asset::register_asset_metadata_local_type - Register asset metadata local type. (#1218)
  • Add Asset::register_asset_metadata_global_type - Register asset metadata global type. Only callable by root. (#1218)
  • Add storage_deposit_limit parameter to PolymeshContracts::call, PolymeshContracts::instantiate_with_code, PolymeshContracts::instantiate, PolymeshContracts::instantiate_with_code_perms, PolymeshContracts::instantiate_with_hash_perms. (#1241)
  • Added upload_code and remove_code extrinsics to contracts pallet. (#1241)
  • Rename multisig.make_multisig_signer -> multisig.make_multisig_secondary. The old name was confusing to users, since it adds the multisig as a secondary key to the identity that created the multisig. (#1224)
  • Deprecated extrinsics that use Signatory<AccountId> for secondary keys. (#1237)
  • Rename deprecated Identity.remove_secondary_keys -> Identity.remove_secondary_keys_old. (#1237)
  • Rename deprecated Identity.add_secondary_keys_with_authorization -> Identity.add_secondary_keys_with_authorization_old. (#1237)
  • Deprecate Identity.set_permission_to_signer. (#1237)
  • Add placeholder for Identity.legacy_set_permission_to_signer. (#1237)
  • Add new extrinsics to replace deprecated extrinsics: Identity.add_secondary_keys_with_authorization, Identity.set_secondary_key_permissions, Identity.remove_secondary_keys. (#1237)
  • Contracts instantiate APIs now use empty permissions by default. (#1239)
  • Enable RPC for contracts. (#1239)
  • Added error Treasury::InvalidIdentity returned from Treasury::disbursement if one of the beneficiaries doesn't exist or doesn't have a primary key. (#1233)
  • Added the primary key to event Treasury::TreasuryDisbursement. (#1233)
  • Added event Treasury::TreasuryDisbursementFailed event for disbursements that fail. (#1233)
  • Removed unused events Identity.OffChainAuthorizationRevoked and Identity.MockInvestorUIDCreated. (#1220)
  • Removed extrinsic Identity.legacy_set_permission_to_signer() and type LegacyPermissions. (#1220)
  • Replace use of Signatory<AccountId> type with AccountId in identity events: SecondaryKeysRemoved and SignerLeft. (#1220)
  • Use AccountId instead of SecondaryKey<AccountId> in event SecondaryKeyPermissionsUpdated. (to dedup the permissions) (#1220)
  • Rename extrinsic Identity.set_permission_to_signer() to Identity.set_secondary_key_permissions(). (#1220)
  • Replace use of Signatory<AccountId> with AccountId in extrinsics: remove_secondary_keys, set_secondary_key_permissions (#1220)
  • Moved secondary key permissions from Identity.DidRecords to Identity.KeyRecords. (https://github.com/PolymeshAssociation/P...
Read more

Polymesh v4.1.2

16 May 15:35
199e197
Compare
Choose a tag to compare

Updates to later Substrate branch, pulling in PRs:
paritytech/substrate#8260
paritytech/substrate#8325
paritytech/substrate#11084

This helps to ensure good peer connections.

There is no on-chain logic change related to this change.

Polymesh v4.1.1

14 Feb 17:29
c7326ff
Compare
Choose a tag to compare

Polymesh 4.1.1 Release Notes

changelog

Bump version v4.1.1 and spec: 3010

Update telemetry to use polymesh.network

modified logic

  • Add missing check to relayer.accept_paying_key.
  • Add missing weight to change_bridge_exempted.
  • Use a cost function for Condition type for more accurate call weights.