Releases: polkascan/py-substrate-interface
v1.4.1 release
What's Changed
- Gracefully pass when WeightV2 type not detected by @arjanz in #275
- Refactored get_type_registry() by @arjanz in #273
Full Changelog: v1.4.0...v1.4.1
v1.4.0 release
Potential breaking changes
Named fields in composite fields are now respected, which means that certain ScaleType
objects may be rendered differently. What used to be a tuple
of values can now be a dict
with named fields. Most notable change will be the format of attributes in an event:
print(event.value['attributes'])
# {'dispatch_info': {'weight': {'ref_time': 218918000}, 'class': 'Mandatory', 'pays_fee': 'Yes'}}
print(transfer_event.value['attributes'])
# {'from': '5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY', 'to': '5CiPPseXPECbkjWCa6MnjNokrgYjMqmKndv2rSnekmSK2DjL', 'amount': 222000000000000}
What's Changed
This introduces new functions to inspect how to format SCALE types.
The function generate_type_decomposition
and get_param_info()
can be
used when more information is needed how to encode a certain SCALE types:
Example 1
scale_obj = substrate.create_scale_object("RawBabePreDigest")
type_info = scale_obj.generate_type_decomposition()
print(type_info)
# {
# 'Phantom': None,
# 'Primary': {'authority_index': 'u32', 'slot_number': 'u64', 'vrf_output': '[u8; 32]', 'vrf_proof': '[u8; 64]'},
# 'SecondaryPlain': {'authority_index': 'u32', 'slot_number': 'u64'},
# 'SecondaryVRF': {'authority_index': 'u32', 'slot_number': 'u64', 'vrf_output': '[u8; 32]', 'vrf_proof': '[u8; 64]'}
# }
Example 2
storage_function = substrate.get_metadata_storage_function("Tokens", "TotalIssuance")
print(storage_function.get_param_info())
# [{
# 'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'),
# 'DexShare': ({'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'), 'Erc20': '[u8; 20]', 'LiquidCrowdloan': 'u32', 'ForeignAsset': 'u16'}, {'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'), 'Erc20': '[u8; 20]', 'LiquidCrowdloan': 'u32', 'ForeignAsset': 'u16'}),
# 'Erc20': '[u8; 20]',
# 'StableAssetPoolToken': 'u32',
# 'LiquidCrowdloan': 'u32',
# 'ForeignAsset': 'u16'
# }]
Example 3
call_function = substrate.get_metadata_call_function("XTokens", "transfer")
param_info = call_function.get_param_info()
# {
# 'currency_id': {
# 'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'TAP', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'),
# 'DexShare': ({'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'TAP', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'), 'Erc20': '[u8; 20]', 'LiquidCrowdloan': 'u32', 'ForeignAsset': 'u16', 'StableAssetPoolToken': 'u32'}, {'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'TAP', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'), 'Erc20': '[u8; 20]', 'LiquidCrowdloan': 'u32', 'ForeignAsset': 'u16', 'StableAssetPoolToken': 'u32'}),
# 'Erc20': '[u8; 20]',
# 'StableAssetPoolToken': 'u32',
# 'LiquidCrowdloan': 'u32',
# 'ForeignAsset': 'u16'
# },
# 'amount': 'u128',
# 'dest': {
# 'V0': {'Null': None, 'X1': {'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}, 'X2': ({'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}, {'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}), 'X3': ({'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}, {'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}, {'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}), 'X4': ({'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}, {'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'...
v1.3.5 release
Limit scalecodec version < 1.1 because of upcoming data structure changes
v1.4.0a1 release
Potential breaking changes
- Named fields in composite fields are now respected, which means that certain types may be rendered differently. What used to be a
tuple
of values can now be adict
with named fields. Most notable change will be the format of attributes in an event:
print(event.value['attributes'])
# {'dispatch_info': {'weight': {'ref_time': 218918000}, 'class': 'Mandatory', 'pays_fee': 'Yes'}}
print(transfer_event.value['attributes'])
# {'from': '5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY', 'to': '5CiPPseXPECbkjWCa6MnjNokrgYjMqmKndv2rSnekmSK2DjL', 'amount': 222000000000000}
What's Changed
- New type decomposition by @arjanz
This introduces new functions to inspect how to format SCALE types.
The function generate_type_decomposition
and get_param_info()
can be
used when more information is needed how to encode a certain SCALE types:
Example 1
scale_obj = substrate.create_scale_object("RawBabePreDigest")
type_info = scale_obj.generate_type_decomposition()
print(type_info)
# {
# 'Phantom': None,
# 'Primary': {'authority_index': 'u32', 'slot_number': 'u64', 'vrf_output': '[u8; 32]', 'vrf_proof': '[u8; 64]'},
# 'SecondaryPlain': {'authority_index': 'u32', 'slot_number': 'u64'},
# 'SecondaryVRF': {'authority_index': 'u32', 'slot_number': 'u64', 'vrf_output': '[u8; 32]', 'vrf_proof': '[u8; 64]'}
# }
Example 2
storage_function = substrate.get_metadata_storage_function("Tokens", "TotalIssuance")
print(storage_function.get_param_info())
# [{
# 'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'),
# 'DexShare': ({'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'), 'Erc20': '[u8; 20]', 'LiquidCrowdloan': 'u32', 'ForeignAsset': 'u16'}, {'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'), 'Erc20': '[u8; 20]', 'LiquidCrowdloan': 'u32', 'ForeignAsset': 'u16'}),
# 'Erc20': '[u8; 20]',
# 'StableAssetPoolToken': 'u32',
# 'LiquidCrowdloan': 'u32',
# 'ForeignAsset': 'u16'
# }]
Example 3
call_function = substrate.get_metadata_call_function("XTokens", "transfer")
param_info = call_function.get_param_info()
# {
# 'currency_id': {
# 'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'TAP', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'),
# 'DexShare': ({'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'TAP', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'), 'Erc20': '[u8; 20]', 'LiquidCrowdloan': 'u32', 'ForeignAsset': 'u16', 'StableAssetPoolToken': 'u32'}, {'Token': ('ACA', 'AUSD', 'DOT', 'LDOT', 'TAP', 'RENBTC', 'CASH', 'KAR', 'KUSD', 'KSM', 'LKSM', 'TAI', 'BNC', 'VSKSM', 'PHA', 'KINT', 'KBTC'), 'Erc20': '[u8; 20]', 'LiquidCrowdloan': 'u32', 'ForeignAsset': 'u16', 'StableAssetPoolToken': 'u32'}),
# 'Erc20': '[u8; 20]',
# 'StableAssetPoolToken': 'u32',
# 'LiquidCrowdloan': 'u32',
# 'ForeignAsset': 'u16'
# },
# 'amount': 'u128',
# 'dest': {
# 'V0': {'Null': None, 'X1': {'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}, 'X2': ({'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}, {'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}), 'X3': ({'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}, {'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}, {'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}), 'X4': ({'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32', 'denom': 'u32'}, 'MoreThanProportion': {'nom': 'u32', 'denom': 'u32'}}}}, {'Parent': None, 'Parachain': 'u32', 'AccountId32': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'id': '[u8; 32]'}, 'AccountIndex64': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'index': 'u64'}, 'AccountKey20': {'network': {'Any': None, 'Named': 'Bytes', 'Polkadot': None, 'Kusama': None}, 'key': '[u8; 20]'}, 'PalletInstance': 'u8', 'GeneralIndex': 'u128', 'GeneralKey': 'Bytes', 'OnlyChild': None, 'Plurality': {'id': {'Unit': None, 'Named': 'Bytes', 'Index': 'u32', 'Executive': None, 'Technical': None, 'Legislative': None, 'Judicial': None}, 'part': {'Voice': None, 'Members': {'count': 'u32'}, 'Fraction': {'nom': 'u32', 'denom': 'u32'}, 'AtLeastProportion': {'nom': 'u32...
v1.3.4 release
What's Changed
- Import/export Keypair from PolkadotJS style JSON by @arjanz in #261 (Introducing new
Keypair.create_from_encrypted_json()
function) - Check if weight needs to be converted to
WeightV2
by @arjanz in #265 - Scalecodec: ScaleInfo path changed for
BoundedVec
- Scalecodec:
GenericVote
type available for all pallets
Full Changelog: v1.3.3...v1.3.4
v1.3.3 release
v1.3.2 release
What's Changed
- Allow xxhash v3.0.0 by @M5oul in #248
- Fix small bug for author parsing by @KarimJedda in #250
New Contributors
- @M5oul made their first contribution in #248
- @KarimJedda made their first contribution in #250
Full Changelog: v1.3.1...v1.3.2
v1.3.1 release
v1.3.0 release
What's Changed
- Swap ed25519-dalek for ed25519-zebra by @arjanz in #238
- Using TransactionFeePaid event for fees by @arjanz in #242
- Multisig helper functions by @arjanz in #245 (See example)
Full Changelog: v1.2.9...v1.3.0
v1.2.9 release
What's Changed
- Added get_param_info function to call function object by @arjanz in #237
- Added Karura override for runtime_common type polkascan/py-scale-codec#77
Full Changelog: v1.2.8...v1.2.9