diff --git a/contracts/upgradeable-polymesh-ink/Cargo.lock b/contracts/upgradeable-polymesh-ink/Cargo.lock index d15193ae19..71838118dd 100644 --- a/contracts/upgradeable-polymesh-ink/Cargo.lock +++ b/contracts/upgradeable-polymesh-ink/Cargo.lock @@ -49,9 +49,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.7" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if", "getrandom 0.2.12", @@ -1024,7 +1024,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.6", ] [[package]] @@ -2604,7 +2604,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.6", "cfg-if", "hashbrown 0.13.2", ] @@ -3186,7 +3186,7 @@ version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e4eeb7ef23f79eba8609db79ef9cef242f994f1f87a3c0387b4b5f177fda74" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.6", "hash-db", "hashbrown 0.13.2", "lazy_static", diff --git a/pallets/contracts/src/lib.rs b/pallets/contracts/src/lib.rs index e7500169d7..55dfd20c3a 100644 --- a/pallets/contracts/src/lib.rs +++ b/pallets/contracts/src/lib.rs @@ -64,6 +64,7 @@ use frame_support::traits::Get; use frame_support::weights::Weight; use frame_support::{decl_error, decl_event, decl_module, decl_storage, ensure}; use frame_system::ensure_root; +use pallet_contracts::Determinism; use scale_info::TypeInfo; use sp_core::crypto::UncheckedFrom; use sp_runtime::traits::Hash; @@ -112,6 +113,12 @@ impl Default for ApiCodeHash { } } +impl ApiCodeHash { + pub fn new(hash: CodeHash) -> Self { + ApiCodeHash { hash } + } +} + impl sp_std::fmt::Debug for ApiCodeHash { fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { write!(f, "hash: {:?}", self.hash) @@ -381,10 +388,28 @@ decl_storage! { } add_extra_genesis { config(call_whitelist): Vec; - build(|config: &GenesisConfig| { + config(upgradable_code): Vec; + config(upgradable_owner): Option; + config(upgradable_description): [u8; 4]; + config(upgradable_major): u32; + build(|config: &GenesisConfig| { for ext_id in &config.call_whitelist { CallRuntimeWhitelist::insert(ext_id, true); } + + if let Some(ref owner) = config.upgradable_owner { + let code_result = FrameContracts::::bare_upload_code( + owner.clone(), + config.upgradable_code.clone(), + None, + Determinism::Deterministic, + ).unwrap(); + log::info!("Uploaded upgradeable code {}", code_result.code_hash); + let api_code_hash: ApiCodeHash = ApiCodeHash::new(code_result.code_hash); + let api: Api = Api::new(config.upgradable_description, config.upgradable_major); + CurrentApiHash::insert(api, api_code_hash); + } + }); } } diff --git a/pallets/runtime/develop/src/runtime.rs b/pallets/runtime/develop/src/runtime.rs index 8bf8baea84..fa274060cd 100644 --- a/pallets/runtime/develop/src/runtime.rs +++ b/pallets/runtime/develop/src/runtime.rs @@ -439,7 +439,7 @@ construct_runtime!( // Contracts Contracts: pallet_contracts::{Pallet, Call, Storage, Event} = 46, - PolymeshContracts: polymesh_contracts::{Pallet, Call, Storage, Event, Config}, + PolymeshContracts: polymesh_contracts::{Pallet, Call, Storage, Event, Config}, // Preimage register. Used by `pallet_scheduler`. Preimage: pallet_preimage::{Pallet, Call, Storage, Event}, diff --git a/pallets/runtime/mainnet/src/runtime.rs b/pallets/runtime/mainnet/src/runtime.rs index 27bb4bb671..6676627ff6 100644 --- a/pallets/runtime/mainnet/src/runtime.rs +++ b/pallets/runtime/mainnet/src/runtime.rs @@ -365,7 +365,7 @@ construct_runtime!( // Contracts Contracts: pallet_contracts::{Pallet, Call, Storage, Event} = 46, - PolymeshContracts: polymesh_contracts::{Pallet, Call, Storage, Event, Config}, + PolymeshContracts: polymesh_contracts::{Pallet, Call, Storage, Event, Config}, // Preimage register. Used by `pallet_scheduler`. Preimage: pallet_preimage::{Pallet, Call, Storage, Event}, diff --git a/pallets/runtime/testnet/src/runtime.rs b/pallets/runtime/testnet/src/runtime.rs index bcfb3125fb..f9d19696f2 100644 --- a/pallets/runtime/testnet/src/runtime.rs +++ b/pallets/runtime/testnet/src/runtime.rs @@ -386,7 +386,7 @@ construct_runtime!( // Contracts Contracts: pallet_contracts::{Pallet, Call, Storage, Event} = 46, - PolymeshContracts: polymesh_contracts::{Pallet, Call, Storage, Event, Config}, + PolymeshContracts: polymesh_contracts::{Pallet, Call, Storage, Event, Config}, // Preimage register. Used by `pallet_scheduler`. Preimage: pallet_preimage::{Pallet, Call, Storage, Event}, diff --git a/pallets/runtime/tests/src/storage.rs b/pallets/runtime/tests/src/storage.rs index ee2bfb22c6..41eafb8beb 100644 --- a/pallets/runtime/tests/src/storage.rs +++ b/pallets/runtime/tests/src/storage.rs @@ -328,7 +328,7 @@ frame_support::construct_runtime!( // Contracts Contracts: pallet_contracts::{Pallet, Call, Storage, Event} = 46, - PolymeshContracts: polymesh_contracts::{Pallet, Call, Storage, Event, Config} = 47, + PolymeshContracts: polymesh_contracts::{Pallet, Call, Storage, Event, Config} = 47, // Preimage register. Used by `pallet_scheduler`. Preimage: pallet_preimage::{Pallet, Call, Storage, Event} = 48, diff --git a/src/chain_spec.rs b/src/chain_spec.rs index a1073a2098..6bea4518e4 100644 --- a/src/chain_spec.rs +++ b/src/chain_spec.rs @@ -545,13 +545,26 @@ macro_rules! protocol_fee { } macro_rules! polymesh_contracts { - () => { + ($root_key:expr) => { polymesh_contracts::GenesisConfig { call_whitelist: contracts_call_whitelist(), + upgradable_code: contracts_upgradable_code(), + upgradable_description: "POLY" + .as_bytes() + .try_into() + .expect("Wrong Length - should be length 4"), + upgradable_major: 6, + upgradable_owner: $root_key, } }; } +fn contracts_upgradable_code() -> Vec { + // NB - Contract should match the `upgradable_major` version above. + let upgradable_code = include_bytes!("data/contracts/polymesh_ink_6.wasm").to_vec(); + upgradable_code +} + fn contracts_call_whitelist() -> Vec { let whitelist_file = include_str!("data/contracts_call_whitelist.json"); serde_json::from_str::>(&whitelist_file) @@ -602,7 +615,7 @@ pub mod general { }, indices: pallet_indices::GenesisConfig { indices: vec![] }, sudo: pallet_sudo::GenesisConfig { - key: Some(root_key), + key: Some(root_key.clone()), }, session: session!(initial_authorities, session_keys), staking: staking!( @@ -642,7 +655,7 @@ pub mod general { transaction_version: 1, }, corporate_action: corporate_actions!(), - polymesh_contracts: polymesh_contracts!(), + polymesh_contracts: polymesh_contracts!(Some(root_key)), } } @@ -796,7 +809,7 @@ pub mod testnet { transaction_version: 1, }, corporate_action: corporate_actions!(), - polymesh_contracts: polymesh_contracts!(), + polymesh_contracts: polymesh_contracts!(Some(root_key)), } } @@ -979,7 +992,7 @@ pub mod mainnet { transaction_version: 1, }, corporate_action: corporate_actions!(), - polymesh_contracts: polymesh_contracts!(), + polymesh_contracts: polymesh_contracts!(Some(root_key)), } } @@ -1134,7 +1147,7 @@ pub mod general { }, indices: pallet_indices::GenesisConfig { indices: vec![] }, sudo: pallet_sudo::GenesisConfig { - key: Some(root_key), + key: Some(root_key.clone()), }, session: session!(initial_authorities, session_keys), staking: staking!(initial_authorities, stakers, PerThing::zero()), @@ -1170,7 +1183,7 @@ pub mod general { transaction_version: 1, }, corporate_action: corporate_actions!(), - polymesh_contracts: polymesh_contracts!(), + polymesh_contracts: polymesh_contracts!(Some(root_key)), } } diff --git a/src/data/contracts/polymesh_ink_6.contract b/src/data/contracts/polymesh_ink_6.contract new file mode 100644 index 0000000000..19df2ed28a --- /dev/null +++ b/src/data/contracts/polymesh_ink_6.contract @@ -0,0 +1 @@ +{"source":{"hash":"0x4306285ed964afb6f08ab8c4e33d7d37a1383e847cd3299b35b80bab56cc89c6","language":"ink! 4.3.0","compiler":"rustc 1.70.0","wasm":"0x0061736d0100000001610f60027f7f0060037f7f7f0060027f7f017f60037f7f7f017f60017f0060000060037e7e7f0060027e7f0060017f017f60047f7f7f7f0060047f7f7f7f017f60057f7f7f7f7f017f60027f7e0060087f7e7f7f7f7f7f7f0060067f7f7e7e7e7e0002b40109057365616c310b6765745f73746f72616765000a057365616c301176616c75655f7472616e736665727265640000057365616c301463616c6c5f636861696e5f657874656e73696f6e000b057365616c3005696e7075740000057365616c300663616c6c65720000057365616c3007616464726573730000057365616c300f686173685f626c616b65325f3132380001057365616c300b7365616c5f72657475726e000103656e76066d656d6f727902010210035a5903000000020000000000000601000007000100000000050000000000000808010104000000070100000000060000010000010c00000100000104040d000e000100000000050502020104030202000309010902020000000003040501700107070608017f01418080040b0711020463616c6c004c066465706c6f79004d090c010041010b065b5a515253540a93ee01592b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0bbe1102157f067e23004180046b22022400200241d0006a2001100a0240200228025045044020022903582119200241c8006a2001100b024020022802480d000240024020012802044107762204200228024c220a2004200a491b2209450440410821080c010b200941ffffff074b0d01200941077422044100480d0120042009418080800849410374100c2208450d010b200241003602682002200836026420022009360260200a0440200241d4026a210d200241a0016a210e20024190016a2109200241206a210c200241a4036a210f0340200241406b2001100d20022d00404101710d030240024002400240024020022d00410e03000102080b200241c0036a2001100e20022903e0034202510d02200241e0026a200241c0036a413010081a20024190036a2001100e20022903b0034202510d02200241c0036a20024190036a413010081a4103210420012802042203410c490d0320012003410c6b360204200120012802002203410c6a36020020024198036a2205200341086a2800003602002002200329000037039003200241106a2001100f2002290310a70d03200c290300211720022903182118200241f0006a200241e0026a413010081a200e200241c0036a413010081a200241d8016a200528020036020020022002290390033703d001410021040c030b20024190036a2001100e20022903b0034202510d01200241e0026a20024190036a2204413010081a20042001100e20022903b0034202510d01200241c0036a20024190036a2204413010081a20042001101020022802a003450d01200241f8036a220420024198036a28020036020020022002290390033703f003200f3502002117200229029c032118200241f0006a200241e0026a413010081a200e200241c0036a413010081a200d41086a2004280200360000200d20022903f003370000200220022900d1023703d0012002200241d8026a2900003700d701410121040c020b41032104200128020422064120490d012001200641206b220b36020420012001280200220341206a220536020020024198036a2210200341086a290000370300200241a0036a2211200341106a290000370300200241a8036a2212200341186a2900003703002002200329000037039003200b4120490d012001200641406a22133602042001200341406b220b360200200241c8036a2214200541086a290000370300200241d0036a2215200541106a290000370300200241d8036a2216200541186a290000370300200220052900003703c0032013410c490d012001200641cc006b3602042001200341cc006a360200200241e8026a2203200b41086a2800003602002002200b2900003703e002200241286a2001100f2002290328a70d01200241386a290300211720022903302118200920022903c00337000020024188016a201229030037030020024180016a2011290300370300200241f8006a2010290300370300200941086a2014290300370000200941106a2015290300370000200941186a2016290300370000200241d8016a20032802003602002002200229039003370370200220022903e0023703d001410221040c010b410321040b20044103460d03200220022900d7013700c702200220022903d0013703c002200241e0016a200241f0006a41e00010081a2002280260200746047f200241e0006a2108230041206b2203240002400240200741016a2207450d00200828020022054100480d004104200541017422062007200620074b1b2207200741044d1b220741077421062007418080800849410374210b0240200504402003410836021820032005410774360214200320082802043602100c010b200341003602180b20032006200b200341106a10572003280200450d01200341086a2802001a0b000b200328020421052008200736020020082005360204200341206a24002002280264210820022802680520070b41077420086a220320043a0000200341186a2017370000200341106a2018370000200320022903c002370001200341086a20022900c702370000200341206a200241e0016a41e00010081a200228026841016a2207450d0220022007360268200a41016b220a0d000b20022802602109200228026421080b2008450d01200241086a2001100b024020022802080d000240200128020441306e2204200228020c220a2004200a491b2205450440410821030c010b200541aad5aa154b0d02200541306c22044100480d022004200541abd5aa1549410374100c2203450d020b41002104200241003602c803200220033602c403200220053602c003200a04400340200241e0016a2001100e20022903800222174202510d0220024188016a220d200241f8016a29030037030020024180016a220e200241f0016a290300370300200241f8006a220b200241e8016a290300370300200220022903e001370370200229038802211820022802c003200446047f200241c0036a2105230041206b2203240002400240200441016a2206450d00200528020022044100480d0041042004410174220c20062006200c491b2206200641044d1b220641306c210c200641abd5aa1549410374210f024020040440200341083602182003200441306c360214200320052802043602100c010b200341003602180b2003200c200f200341106a10572003280200450d01200341086a2802001a0b000b200328020421042005200636020020052004360204200341206a240020022802c403210320022802c8030520040b41306c20036a22042002290370370300200b290300211a200e290300211b200d290300211c2004201837032820042017370320200441186a201c370300200441106a201b370300200441086a201a37030020022802c80341016a2204450d03200220043602c803200a41016b220a0d000b20022802c003210520022802c40321030b2003450d00200020073602102000200836020c200020093602082000200436021c2000200336021820002005360214200020193703000c040b2000410036020c0c030b000b2000410036020c0c010b2000410036020c0b20024180046a24000b3601017f230041106b2202240020022001105c200228020021012000200229030837030820002001410047ad370300200241106a24000b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001105e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a41041060450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a410210600d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220341027621012003418080044921030b2000200136020420002003360200200241206a24000b10002000047f20002001104e0520010b0b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000bb30102027f027e230041106b2203240002402001280204220241204f04402001200241206b36020420012001280200220241206a36020020032001101220032903002204420252044020032903082105200020043703202000200229000037000020002005370328200041186a200241186a290000370000200041106a200241106a290000370000200041086a200241086a2900003700000c020b200042023703200c010b200042023703200b200341106a24000b5c02017f037e20012802042202411049047e4201052001200241106b36020420012001280200220141106a360200200141086a29000021032001290000210442000b21052000200437030820002005370300200041106a20033703000bc70402087f017e230041406a22022400024020012802042203410c4f044020012003410c6b360204200120012802002204410c6a36020041082103200241286a200441086a28000036020020022004290000370320200241186a2001100b0240024020022802180d0020012802044103762204200228021c220720042007491b22040440200441ffffffff004b0d02200441037422034100480d022003200441808080800149410374100c2203450d020b200241003602382002200336023420022004360230200704400340200241086a2001105c20022802080d022002290310210a2002280230200546047f200241306a2104230041206b2203240002400240200541016a2206450d00200428020022054100480d00410420054101742208200620062008491b2206200641044d1b2206410374210820064180808080014941037421090240200504402003410836021820032005410374360214200320042802043602100c010b200341003602180b200320082009200341106a10572003280200450d01200341086a2802001a0b000b200328020421052004200636020020042005360204200341206a24002002280234210320022802380520050b41037420036a200a370300200228023841016a2205450d0320022005360238200741016b22070d000b20022802302104200228023421030b2003450d002000200229032037000020002005360214200020033602102000200436020c200041086a200241286a2802003600000c030b200041003602100c020b000b200041003602100b200241406b24000bbd0102027f047e230041306b220224000240024020012802042203410c490d0020012003410c6b360204200120012802002203410c6a360200200241186a2001100f20022802180d00200241286a290300210420022903202105200241086a20011012200229030822064202510d00200229031021072000200537030020002006370320200020043703082000200329000037001020002007370328200041186a200341086a2800003600000c010b200042023703200b200241306a24000b7402017f027e230041206b22022400200241186a2001100d42022103024020022d00184101710d00420021030240024020022d00190e020200010b200241086a2001100a4202420120022802081b2103200229031021040c010b420221030b2000200437030820002003370300200241206a24000b2a01017f230041106b2203240020032001370308200320003703002002200341101014200341106a24000b4801027f024002402000280208220320026a22042003490d00200420002802044b0d00200420036b2002470d01200028020020036a2001200210081a200020043602080f0b000b000b2601017f230041106b220224002002200036020c20012002410c6a41041014200241106a24000b2601017f230041106b22022400200220003a000f20012002410f6a41011014200241106a24000b2601017f230041106b22022400200220003703082001200241086a41081014200241106a24000b0a0020012000412010140b7c01017f230041106b2203240002402001413f4d044020022001410274101a0c010b200141ffff004d0440200320014102744101723b010e20022003410e6a410210140c010b200141ffffffff034d04402001410274410272200210150c010b20024103101a2001200210150b2002200020011014200341106a24000b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000bf80102027f017e230041106b22022400200241808001360204200241c48204360200024020012903202204420352044041c4820441003a00000240027f0240200442025204402002410236020841c5820441003a000020012002101820045004402002280208220120022802044f0d04200228020020016a41003a0000200141016a0c030b2002280208220320022802044f0d03200228020020036a41013a00002002200341016a360208200141286a290300200210170c010b41c5820441013a00002002410236020820012002101f0b20022802080b220141818001490d020b000b41c482044181023b0100410221010b200020011020000b870101027f230041106b22022400200241808001360204200241c48204360200024041c58204027f20012802002203410747044041c4820441003a0000410020034106460d011a41c5820441013a00002002410236020820012002101f2002280208220141818001490d02000b41c4820441013a000041010b3a0000410221010b200020011020000ba10101037f230041106b22022400200241808001360204200241c4820436020041022103024020012802002204410247044041c4820441003a0000024020044504402002410236020841c5820441003a00002001290308200141106a290300200210130c010b41c5820441013a000020024102360208200141046a2002101f0b2002280208220341818001490d01000b41c482044181023b01000b200020031020000b130041c482044181023b0100410141021020000bba0101027f024002400240024002402000280200220241026b4100200241036b4103491b41016b0e03010203000b20014100101a024002400240200241016b0e020102000b20014100101a0c050b20014101101a2000280204200110150f0b20014102101a0c030b20014101101a0f0b20014102101a0f0b20014103101a2001200041046a41041014200120002d00082200410a47047f20014101101a20000541000b101a0f0b200041086a2802002000410c6a280200200110190b0d00200041c4820420011007000b9e0101067f230041106b22022400200241086a2001100b02402002280208450440024020012802042205200228020c2203490d002002200341011036200228020021062002280204200128020022072003100821042001200520036b3602042001200320076a3602002004450d002000200336020820002004360204200020063602000c020b200041003602040c010b200041003602040b200241106a24000b7402017f027e230041206b22022400200241186a2001100d42022103024020022d00184101710d00420021030240024020022d00190e020201000b420221030c010b200241086a2001105c4202420120022802081b2103200229031021040b2000200437030820002003370300200241206a24000b860101037f230041106b2202240041012104024020012802042203410c490d0020012003410c6b360204200120012802002203410c6a360200200241086a2001105e20022802080d00200228020c210120002003290000370004200041106a20013602002000410c6a200341086a280000360000410021040b20002004360200200241106a24000bb10201047f230041206b22032400200341186a2001100d02400240024020032d00184101710d00410421020240024002400240024002400240024002400240024020032d00190e0c0d000102030405060708090a0b0b410521020c0c0b410621020c0b0b410721020c0a0b410821020c090b410921020c080b410a21020c070b410b21020c060b410c21020c050b20032001105e410f210220032802000d0420002003280204360204410d21020c040b410e21020c030b200341106a2001100d20032d0010410171450d010b410f21020c010b410f2102024002400240024020032d001122040e0403000102040b410121040c020b410221040c010b200341086a2001105e20032802080d01200328020c2105410321040b20002005360204200421020b20002002360200200341206a24000b4201027f230041106b22012400200141086a2000100d20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b110020004101100c2200044020000f0b000b100020022001103020022000200110470bdb0701097f230041406a2203240020032002410010362003410036021020032003290300370308200341086a20012002104720034280800137021c200341c48204360218200341186a200328020c2003280210101402400240200328021c220420032802202201490d00200328021821022003200420016b2205360218411420022001200120026a2204200341186a10022102200520032802182201490d000240024020020440410121010c010b2003200136022c200320043602280240024002402001450d002003200141016b36022c2003200441016a36022841002101024020042d00000e020200010b200341306a200341286a102120032802342201450d00410021022003280230210820032802382204450d01200441076b22024100200220044d1b2109200141036a417c7120016b220a417f46210b41002102034002400240024002400240200120026a2d00002205411874411875220741004e0440200b200a20026b410371720d010240200220094f0d000340200120026a220541046a280200200528020072418081828478710d01200241086a22022009490d000b0b200220044f0d040340200120026a2c00004100480d052004200241016a2202470d000b0c050b024002402005419880046a2d000041026b0e03030100080b200241016a220620044f0d07200120066a2c000021060240024002400240200541f0016b0e050100000002000b2007410f6a41ff017141024b0d0a20064140480d020c0a0b200641f0006a41ff01714130490d010c090b2006418f7f4a0d080b200241026a220520044f0d07200120056a2c000041bf7f4a0d07200241036a220220044f0d07200120026a2c000041bf7f4c0d030c070b200241016a220620044f0d06200120066a2c00002106024002400240200541e001470440200541ed01460d012007411f6a41ff0171410c490d022007417e71416e470d0a20064140480d030c0a0b200641607141a07f460d020c090b200641a07f480d010c080b200641bf7f4a0d070b200241026a220220044f0d06200120026a2c000041bf7f4c0d020c060b200241016a21020c020b200241016a220220044f0d04200120026a2c000041bf7f4a0d040b200241016a21020b20022004490d010b0b200421020c010b200341186a1041200328021822014103470d01200341246a2802002102200341206a2802002101200328021c21080b20010d02200041033602000c040b2003280224210520032802202104200328021c21020b2000200536020c2000200436020820002002360204200020013602000c020b2000200236020c2000200136020820002008360204200041023602000c010b000b200341406b24000b7601017f230041306b2201240020014180800136022c41c482042001412c6a1005200141116a41cd8204290000370000200141196a41d58204290000370000200141206a41dc8204290000370000200141c58204290000370009200141c482042d00003a00082000200141086a102c200141306a24000b940302037f017e230041f0006b22022400200241286a418004410010362002410036023820022002290328370330200242e2d9d9aee6bcaa88927f370058200242aca7e9c7edb2b6e02c370050200242a6bbf79cd7ccffd466370048200242a484b488d4a090b5b07f370040200241306a2204200241406b22031037200320011048200420031049200241e0006a20022802342002280238104002400240027f200228026022014103460440027e0240200241e8006a2802002201450d002002200241ec006a28020036026420022001360260200241186a200241e0006a100a200229031822054202510d002005a70440200241406b410472104120022802442101200241d0006a2802000c040b20022903200c010b20024108360244200241a98204360240200241086a200241406b100a2002290308a70d0420022903100b210520004103360200200020053703080c020b200241c8006a2002290264370300200228026c0b2103200241c8006a29030021052000200336020c20002005370204200020013602000b200241f0006a24000f0b000b1600200041046a280200200041086a280200200110270bf70202067f017e230041206b22022400200242808001370214200241c482043602102001200241106a101802402002280214220320022802182201490d00200228021021042002200320016b2203360210410520042001200120046a2204200241106a10022101200320022802102205490d00024020014504402005450d020240024020042d000022060e020100040b20054121490d032002200441016a22012900123703102002200141186a290000370116200129000a2108200128000621072001280002210320012f000021010b200220022901163701062002200229031037030020022002290106370116200220022903003703102000027f20064504402000410336020441010c010b200020013b00012000410b6a2008370000200041076a2007360000200041036a2003360000200041136a2002290310370000200041196a200229011637000041000b3a00000c010b20004101360204200041013a0000200041086a20013602000b200241206a24000f0b000b2601017f230041106b22022400200220003703082001200241086a41081047200241106a24000bd30301037f230041e0006b22032400200341086a418004410010362003410036021820032003290308370310200342b6b4d982dbc987961d3700382003429783d8ffd6a0c68bfe00370030200342a6bbf79cd7ccffd466370028200342a484b488d4a090b5b07f370020200341106a2205200341206a22041037200420011048200520041049200341406b2002103820042003280244220120032802482202103920052003290320103a2003200136022c2003200120026a360228200320013602242003200328024036022020052004103b20042003280214200328021810400240024002402003280220220141034604400240200341286a2802002201044020032003412c6a28020036022420032001360220200341206a102541ff017122014102470d01200341d0006a104120032802502201410347044020032d005421020c040b20032d005422014102470d010b20034101360224200341a88204360220200341206a102541ff017122014102460d040b20004103360200200020014100473a00040c020b200320032903283703582003200328022422023602540b200020032900553700052000410c6a200341dc006a280000360000200020023a0004200020013602000b200341e0006a24000f0b000b110020002001104b200041206a200110460b7401017f230041106b2202240002402001413f4d04402000200141027410310c010b200141ffff004d0440200220014102744101723b010e20002002410e6a410210470c010b200141ffffffff034d04402001410274410272200010440c010b2000410310312001200010440b200241106a24000b2601017f230041106b22022400200220013a000f20002002410f6a41011047200241106a24000b0a0020012000410c10470b2a01017f230041106b2203240020032001370308200320003703002002200341101047200341106a24000b4a01017f200020011032200041106a28020021022001200041146a280200220010302000044020004103742100034020022903002001102d200241086a2102200041086b22000d000b0b0b210020002d00004504402001410010310f0b200141011031200041016a2001104b0b6a01027f230041106b2203240002402001450440410121020c010b200141004e22040440027f2002450440200341086a20012004105820032802080c010b2003200120044101105920032802000b22020d010b000b2000200236020420002001360200200341106a24000bb10101037f230041306b22022400200241206a200141186a290000370300200241186a200141106a290000370300200241106a200141086a290000370300200220012900003703082000412010552002428080808080043703282000280208220320002802046a21044160210102400340200120046a41206a200120026a41286a2d00003a0000200120036a415f460d01200141016a22010d000b2000200120036a41206a360208200241306a24000f0b000b17002000412141292001290320501b105f20012000102f0ba30101027f230041206b22032400200341086a200241001036200328020c2001200210082101200342808001370214200341c48204360210200341106a20012002101402402003280214220420032802182201490d00200328021021022003200420016b2204360210411020022001200120026a2201200341106a10022004200328021022024972200241074d720d0020002001290000370000200341206a24000f0b000b840101047f230041106b22032400200041081055200028020821042000280204210220034280808080800137030820032001370300200220046a21054178210202400340200220056a41086a200220036a41086a2d00003a0000200220046a4177460d01200241016a22020d000b2000200220046a41086a360208200341106a24000f0b000b3401017f230041106b22022400200241086a200141086a2902003703002002200129020037030020002002105d200241106a24000b0e002000410c105f2001200010320b1b0020004200370000200041086a420037000020012002200010060b910101037f230041206b22022400200241106a200141086a290000370300200220012900003703082000411010552002428080808080023703182000280208220320002802046a21044170210102400340200120046a41106a200120026a41186a2d00003a0000200120036a416f460d01200141016a22010d000b2000200120036a41106a360208200241206a24000f0b000bc50102017f037e230041106b22022400200220012802042001280208104002402002280200220141034604400240200241086a280200220104402002410c6a280200411049047e420105200141086a29000021042001290000210542000ba70d01420121030b2000200537030820002003370300200041106a20043703000c020b200041086a1041200042023703000c010b20022902042103200041146a200228020c3602002000410c6a200337020020002001360208200042023703000b200241106a24000b910201037f230041206b22032400200342808001370214200341c48204360210200341106a2001200210142000027f024002402003280214220420032802182201490d00200328021021022003200420016b2204360210410220022001200120026a2205200341106a10022102200420032802102201490d0020020d012003200136020c200320053602082001450d002003200141016b36020c2003200541016a360208410021020240024020052d00000e020100020b200341106a200341086a102120032802142202450d0120032802182104200328021021010b200020013602042000410c6a2004360200200041086a200236020041030c020b000b2000200236020441010b360200200341206a24000b970101017f230041406a220124002001410136021c2001200141386a36021820014100410010362001410036021020012001290300370308200141013602342001410136022c200141b48204360228200141003602202001200141186a360230200141086a200141206a104f0440000b20002001290308370204200041003602002000410c6a200141106a280200360200200141406b24000bd30202037f017e230041d0006b2201240041201026220242a4eacf94ffa2c3f43a370018200242baf1dc9ce4a9b2adec00370010200242febdb1a2dfc5d2c139370008200242a5dfa197d58df4fd4e370000200141406b20024120104002400240027f200128024022024103460440027e0240200141c8006a2802002202450d002001200141cc006a28020036024420012002360240200141186a200141406b100a200129031822044202510d002004a70440200141286a4104721041200128022c2102200141386a2802000c040b20012903200c010b2001410836022c200141a08204360228200141086a200141286a100a2001290308a70d0420012903100b210420004103360200200020043703080c020b200141306a2001290244370300200128024c0b2103200141306a29030021042000200336020c20002004370204200020023602000b200141d0006a24000f0b000b9d0301027f230041106b2208240041021026220941a5143b000020084102360208200820093602042008410236020020012008102d024002400240024020020e03000102030b2008410010310c020b2008410110314100200810440c010b2008410210314100200810440b20084100103120084100103120082004103020040440200441077421094100210203400240024002400240200220036a22042d000041016b0e020102000b200841001031200441206a2008102f200441d0006a2008102f200441016a20081032200441106a290300200441186a290300200810330c020b200841011031200441206a2008102f200441d0006a2008102f200441046a200810340c010b200841021031200441206a2008104b200441406b2008104b200441016a20081032200441106a290300200441186a290300200810330b200920024180016a2202470d000b0b20082006103020060440200641306c2104034020052008102f200541306a2105200441306b22040d000b0b200720081035200041086a200841086a28020036020020002008290300370200200841106a24000b2601017f230041106b220224002002200036020c20012002410c6a41041047200241106a24000b7a01037f230041206b220624002006200537030820062004370300410210262107200641186a220841023602002007419a0e3b000020062007360214200641023602102001200641106a220110322002200320011033200620011046200041086a200828020036020020002006290310370200200641206a24000b240020002903005004402001410010310f0b200141011031200041086a2903002001102d0b3301017f2000200210552000280208220320002802046a2001200210081a2003200220036a22014b0440000b200020013602080b3c02017f017e230041106b22022400200241086a41204100103620022903082103200041003602082000200337020020012000104b200241106a24000b4401027f230041106b2202240020022001280204220336020c20022003360204200220012802003602002002200320012802086a36020820002002105d200241106a24000b1100200020011032200028020c200110440b0a0020012000412010470b99810102167f0d7e230041d0046b220024002000418080013602980341c4820420004198036a100302400240024002400240024002400240027f0240027f0240027f0240027f02400240027f02400240027f024002400240024002400240024002400240024002402000280298032203418180014f0d000240024020034104490d00200041c882043602d8012000200341046b22063602dc0141c4820428020022074118762105200741107621042007410876210102400240027f0240027f0240027e02400240024002400240024002400240024002400240024002400240024002400240200741ff0171220741c5006b0e050118181814000b0240200741d1006b0e0403181812000b0240200741f1006b0e020e10000b0240200741d0016b0e020a09000b20074110460d0a20074116460d0c20074129460d1520074131460d0b200741c200460d06200741da00460d162007419801460d0e200741a201460d07200741a801460d05200741af01460d01200741d901460d03200741ea0147200141ff017141c8014772200441ff017141f00147200541334772720d1720004198036a200041d8016a1021200028029c032201450d17200020002802a0033602e401200020013602e00120002d00980321054101210220002f00990320002d009b03411074720c140b200141ff0171220141a301460d03200141d80147200441ff017141f100477220054113472006410c4972720d16200041d482043602d8012000200341106b3602dc0141cb82042d0000210141c982042f0000210241d08204280200210341cc8204280200210441c882042d0000210520004198036a200041d8016a1021200028029c032206450d162002200141107472210d200020063602ec0120002000280298033602e801200020033602e401200020043602e00120002802a0032106411321020c170b200141ff017141c00047200441ff017141a3014772200541920147200641084972720d15200041d082043602d80120002003410c6b3602dc0141c88204290200211620004190016a200041d8016a101220002903900122174202510d152000290398012118200020173703e801200020163c00e001200020164238883c00e701200020164228883d00e501200020164208883e00e1012018422088a721082018a72106410221020c160b200141ff017141c90147200441ff017141da014772200541ed0047720d1420004198036a200041d8016a100e20002903b80322174202510d14200041e8016a200041a0036a29000037000020002000290099033700e101200020002d0098033a00e00120002903a8032218422088a72108200041b0036a290300221c422088a7210a2017a721092018a72106201ca721044103210220002903c0030c0d0b200141ff0171410947200441ff017141bf014772200541e80047720d13200041a0046a200041d8016a100e20002903c0044202510d1320002802c404210c20002802c004210920004198036a200041d8016a100e20002903b803221f4202510d13200041a0016a200041d8016a100b20002802a0010d134108210820002802dc0141c8006e220120002802a401220420012004491b220e0440200e41f1b89c0e4b0d16200e41c8006c22014100480d162001200e41f2b89c0e49410374100c2208450d160b41002101200041003602f801200020083602f4012000200e3602f00120040440200041fb026a210620004184026a210a200041ff026a2107034020002802dc012202450d152000200241016b22033602dc01200020002802d801220541016a3602d801027e0240024020052d000022050e020001180b2003410c490d172002411d6b2202416f4b0d17200041d0026a20002802d801220341086a280000360200200020023602dc0120002003411c6a3602d801200020032900003703c802200329000c2117200341146a2900000c010b200041d8026a200041d8016a101020002802e802450d1620004190036a200041e0026a2802002202360200200020002903d802221837038803200041ec026a350200211920002902e4022117200641086a200236000020062018370000200020002900f8023703c802200020072900003700cf0220002802dc0121022019201642808080807083840b2116200020002900cf023700bf02200020002903c8023703b8022002450d152000200241016b22033602dc01200020002802d801220b41016a3602d80102400240200b2d0000220b0e020100170b20034120490d16200041e0026a20002802d801220341086a290000370300200041e8026a200341106a290000370300200041f0026a200341186a2900003703002000200241216b3602dc012000200341206a3602d801200020032900003703d8020b200041a0026a220e200041f0026a29030037030020004198026a220f200041e8026a29030037030020004190026a2210200041e0026a290300370300200020002903d80237038802200020002903b8023703a802200020002900bf023700af0220002802f001200146047f200041f0016a2103230041206b2202240002400240200141016a2208450d00200328020022014100480d00410420014101742211200820082011491b2208200841044d1b220841c8006c2111200841f2b89c0e494103742112024020010440200241083602182002200141c8006c360214200220032802043602100c010b200241003602180b200220112012200241106a10572002280200450d01200241086a2802001a0b000b200228020421012003200836020020032001360204200241206a240020002802f401210820002802f8010520010b41c8006c20086a220120053a0000200141186a2016370000200141106a2017370000200120002903a802370001200141086a20002900af02370000200141206a200b3a0000200e2903002117200f290300211820102903002119200029038802211a200141c4006a200a280000360000200141c1006a200028008102360000200141216a201a370000200141296a2019370000200141316a2018370000200141396a201737000020002802f80141016a2201450d17200020013602f801200441016b22040d000b20002802f001210e20002802f40121080b2008450d13200041e8016a200041a8046a290000370000200020002900a1043700e101200020002d00a0043a00e001200941807e71210b2008ad2001ad42208684212120002903b0042219422088a72108200041b8046a290300221a422088a7210a200041a0036a290300211d200029039803211c20002903c804211620002903a803211720002903b003211820002903c00321202019a72106201aa72104410421020c140b200441ff017141d50147200541d70147720d1220004198036a200041d8016a1021200028029c032201450d12200020002802a0033602e401200020013602e00120002f00990320002d009b0341107472210d20002d00980321050c130b200141ff017141f50147200441ff0171419c01477220054106472006410c4972722003411046720d1141c882042d00002101200041d582043602d8012000200341116b22023602dc01027e0240024041d482042d00000e020001140b20024108490d13200041dd82043602d8012000200341196b3602dc014100210641d582042900000c010b200041c8016a200041d8016a100a20002903c801a70d124101210620002903d0010b2116200041e8016a41d08204280000360000200020013a00e001200041c982042900003700e1012016422088a7210a2016a72104411421020c120b200141ff0171419a0147200441ff017141cb004772200541ef0047200641204972720d10200041a0036a220141d48204290200370300200041e882043602d8012000200341246b3602dc01200041cc82042902003703980341cb82042d0000210241c982042f0000210341c882042d0000210541dc8204290200211641e482042802002104200041a0046a200041d8016a102120002802a4042209450d102003200241107472210d200041e8016a200129030037030020002000290398033703e001200941807e71210b2016422088a7210820002802a804210c20002802a004210a2016a72106411221020c110b200141ff017141c50147200441ff017141044772200541e30047720d0f20004198036a200041d8016a100920002802a4032201450d0f200041e8016a200041a0036a28000036000020002000290099033700e101200020013602ec01200020002d0098033a00e00120002903a8032216422088a72108200041b0036a2903002217422088a7210a2016a721062017a7210441110c0a0b200141ff017141fb0147200441ff0171419201477220054133472006410b4d72720d0e200341787122014110462001411846722003412046720d0e41d08204280200210e41c88204290200212041d48204290200211741dc82042902002118200041e582043602d8012000200341216b22013602dc010240024041e482042d000022090e020100100b200041b8016a200041d8016a100a20002903b801a70d0f20002903c001211620002802dc0121010b2001410c492001411c6b416f4b722001412c6b416f4b720d0e200141346b220241774b0d0e20002802d8012201280008211520012900002121200129000c2119200141146a290000211a200141246a290000211b200129001c211d200020023602dc012000200141346a3602d801200129002c211f200041a8016a200041d8016a102220002903a801221c4202510d0e201ba72104201d422088a72108201b422088a7210a201da7210620002903b001211d200041e9016a201a420888221b3e0000200041ef016a201b4230883c0000200041ed016a201b4220883d00002000201a4238862019420888843700e101200020193c00e001411021020c0f0b200141ff017141eb0147200441ff017141f20147722005413147720d0d20004198036a200041d8016a10232000280298030d0d200041e8016a200041a8036a2802003602002000200041a0036a2903003703e00120002d009c032105410f210220002f009d0320002d009f03411074720c0a0b200141ff0171419d0147200441ff0171419a014772200541c40047720d0c20004198036a200041d8016a10232000280298030d0c200041e8016a200041a8036a2802003602002000200041a0036a2903003703e00120002d009c032105410e210220002f009d0320002d009f03411074720c090b200141ff017141f50047200441ff017141214772200541ee00472006410c4972720d0b200041d482043602d8012000200341106b3602dc01200041cf82042800003602e001200041d382042d00003a00e40141cc82042f010041ce82042d000041107472210d41cb82042d0000210541c982042f0000211341c882042d00002114410d21020c0c0b200141ff017141c90047200441ff017141cd014772200541f901472006410c497272200341106b412049720d0a41cc82042f010041ce82042d000041107472210d41cb82042d0000210541c982042f0000211341c882042d00002114410c2102200041a4036a41db82042800003600002000419c036a41d382042d00003a0000200041d4820429020037009d03200041e8016a200041a0036a290200370300200041cf820428000036029803200041f482043602d8012000200341306b3602dc0120002000290298033703e00141ef8204280000220941807e71210b41e782042900002216422088a7210a41df82042900002217422088a7210841f382042d0000210c2016a721042017a721060c0b0b200141ff0171413147200441ff01714184014772200541ef0147720d0920004198036a200041d8016a1021200028029c032204450d0920002802dc012201410c490d0920002802a003210a200028029803210820002001410c6b3602dc01200020002802d8012201410c6a3602d801200128000821062001290000211720004198036a200041d8016a1024200028029803410f460d092000290398032118200041d8016a102541ff017122094102460d0920002802dc012201450d09200020002802d801220241016a3602d8010240024020022d00000e0201000b0b200141116b2201416f4b0d0a200020013602dc01200020002802d801220141106a3602d801200141086a290000211d2001290000211c420121160b200020183c00e001200020184238883c00e701200020184228883d00e501200020184208883e00e101200020173e02e801200020174220883e02ec01410b21020c0a0b200141ff017141c10147200441ff017141fc014772200541b80147720d0820004198036a200041d8016a101120002903b80322174202510d08200041e8016a200041a0036a29000037000020002000290099033700e101200020002d0098033a00e00120002903a8032218422088a72108200041b0036a290300221c422088a7210a2017a721092018a72106201ca72104410a210220002903c0030c010b200141ff0171411a47200441ff017141f2004772200541e70047720d0720004198036a200041d8016a101120002903b80322174202510d07200041e8016a200041a0036a29000037000020002000290099033700e101200020002d0098033a00e00120002903a8032218422088a72108200041b0036a290300221c422088a7210a2017a721092018a72106201ca721044109210220002903c0030b21160c070b200141ff017141d40147200441ff017141f30047722005410c47720d0520004198036a200041d8016a100920002802a4032201450d05200041e8016a200041a0036a28000036000020002000290099033700e101200020013602ec01200020002d0098033a00e00120002903a8032216422088a72108200041b0036a2903002217422088a7210a2016a721062017a7210441080b21020c050b200141ff017141c50147200441ff017141ba014772200541c60047720d0320004198036a200041d8016a1021200028029c032201450d0320002802dc012202450d0320002d009b03210320002f009903210420002802a003210620002d00980321052000200241016b3602dc01200020002802d801220241016a3602d80120022d0000220241034b0d03200020023a00e801200020063602e401200020013602e0014107210220042003411074720b210d0c030b200141ff017141c10147200441ff0171410b4772200541ab0147200641204972720d01200041e882043602d8012000200341246b3602dc01200041c982042900003703a004200041d082042900003700a70441e08204290200212041d88204290200211f41c882042d0000210120004198036a200041d8016a100e20002903b80322174202510d01200041e8016a20002900a704370000200020002903a0043700e101200020013a00e001200028029803220941807e71210b201f422088a721082020422088a7210a200041b0036a290300211d20002903a803211c20002903c003211820002903a0032116200028029c03210c201fa721062020a72104410621020c020b200141ff017141ef0147200441ff017141264772200541a90147720d0020004198036a200041d8016a100e20002903b8034202510d0020002802dc012201410c490d0020002802bc03210c20002802b8032109200041e8016a200041a0036a29000037000020002000290099033700e10120002001410c6b3602dc01200020002802d8012201410c6a3602d801200020002d0098033a00e001200941807e71210b20002903a8032217422088a72108200041b0036a2903002218422088a7210a2001350008211d2001290000211c20002903c00321162017a721062018a72104410521020c010b101e000b20002802e001210720002802e401211020002802e801211120002802ec01210f20004280800137029c03200041c4820436029803410020004198036a1015200028029c03221220002802a0032201490d0020002802980321032000201220016b22123602980320032001200120036a20004198036a1000201220002802980349720d002011ad200fad4220868421192010ad42208622222007ad84211a2004ad200aad42208684211e2006ad2008ad42208684211b027f024002400240027f0240027f0240200041a8036a2201027e0240027f024002400240027f0240027f024002402001027e024002400240027f0240027f0240027f02400240027f0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200241016b0e140102030405060708090a0b0c0d0e0f1011121314000b41021026220141003b0000200041023602a804200020013602a404200041023602a00420072010200041a0046a102720004198036a20002802a40420002802a804102820002802980322014103460d32200041a8046a200041a4036a2802003602002000200029029c033703a00420010c330b20004198036a102920002d0098030d34200020002d009b033a00a204200020002f0099033b01a0042000200041ac036a290200370388022000200041b1036a29000037008d022000200029029c033700a3042000200041a4036a2902003700ab04200041a7036a200041af046a280000360000200041a0036a200041a8046a290200370300200020002902a00437039803200041b0036a200029008d0237000020002000290388023700ab03200041d8026a20004198036a102a20002802d80222014103470d3520002903e00221162000201a3702e4012000200541ff0171200d410874723602e00141021026220141223b0000200041023602e002200020013602dc02200041023602d802200041e0016a200041d8026a102b20004198036a20002802dc0220002802e002102820002802980322014103460d3020002903a0032118200028029c0321030c490b2000418080013602f80241c48204200041f8026a1004200041a9046a41cd8204290000370000200041b1046a41d58204290000370000200041b8046a41dc8204290000370000200041c582042900003700a104200041c482042d00003a00a00420004198036a200041a0046a102c20002d0098030d3520004190026a200041b1036a290000370000200020002d009b033a00e201200020002f0099033b01e0012000200041a8036a2800003600df022000200041a1036a2900003703d8022000200041ac036a29020037008b022000200028029c0322033600e301200041a0036a2d0000210120002903d80221162000200041e2026a2d00003a008a02200020002f01e0023b01880241021026220241a2083b0000200041023602a804200020023602a404200041023602a004201a200041a0046a102d20004198036a20002802a40420002802a804102820002802980322024103470d3620004198036a102920002d0098030d37200041b8046a200041b1036a290000370000200020002d009b033a00a204200020002f0099033b01a0042000200041ac036a2902003700b3042000200028029c033600a3042000200041a4036a2902003700ab042000200041a3036a2d00003a00aa042000200041a1036a2f00003b01a8042000200041a0036a2d00003a00a704200020163703a003200020013a009f03200020002800e30136009b03200020002802e00136029803200041b0036a20004190026a2903003703002000201b3703c003200020193703b80320002000290388023703a803200041d8026a200041a0046a20004198036a102e20002802d8022202410346044020002d00dc020d2f410421020c470b20002903e002211620002d00df02210120002f00dd02210420002d00dc0221050c460b200041b0036a201e3703002000201b3703a8032000201a37039803200020163703c003200020193703a0032000200b200941ff017172ad200cad422086843703b80341021026220141a2063b0000200041023602e002200020013602dc02200041023602d80220004198036a200041d8026a102f200041a0046a20002802dc0220002802e002102820002802a00422014103460d2b200041e0026a200041ac046a280200360200200020002902a4043703d80220010c2c0b200041b8046a201e3703002000201b3703b004200020193703a8042000201a3703a004200020163703c8042000200b200941ff017172ad200cad422086843703c0042000201d3703a0032000201c37039803200020203703c0032000201f3703b803200020183703b003200020173703a80341021026220141a20a3b000020004102360290022000200136028c022000410236028802200041a0046a20004188026a2201102f20004198036a2001102f20012021422088a722021030200204402021a72201200241c8006c6a21030340024020012d000045044020004188026a220241001031200141016a20021032200141106a290300200141186a290300200210330c010b20004188026a220241011031200141046a200210340b200141206a20004188026a1035200141c8006a22012003470d000b0b200041d8026a200028028c02200028029002102820002802d80222014103460d28200041a8046a200041e4026a280200360200200020002902dc023703a00420010c290b200041b0036a201e3703002000201b3703a8032000201a37039803200020163703c003200020193703a0032000200b200941ff017172ad200cad422086843703b8032000201d3e02d0022000201c3703c80241002102200041086a4180044100103620004180036a22054100360200200020002903083703f802200042b38583fc88bbbbf1093700b804200042bbfde58e81edf7fc8d7f3700b004200042a6bbf79cd7ccffd4663700a804200042a484b488d4a090b5b07f3700a004200041f8026a2203200041a0046a22011037200041e0016a20004198036a1038200120002802e401220420002802e80122061039200320002903a004103a200020043602ac042000200420066a3602a804200020043602a404200020002802e0013602a00420032001103b20004188026a200041c8026a103c2001200028028c0222042000280290022206103d20032001103e200020043602ac042000200420066a3602a804200020043602a40420002000280288023602a00420032001103b200041e0026a2005280200360200200020002903f8023703d8022001200041d8026a103f20002903a00422164202510d25420020002903a80420165022011b21164200200041b0046a29030020011b0c260b200041d8036a201d370300200041d0036a201c370300200041b8036a201e370300200041b0036a201b370300200041a8036a2019370300200041e8036a2018370300200041e0036a2017370300200041c8036a2016370300200041c0036a2201200b200941ff017172ad200cad422086843703002000201a3703a0032000200041f0016a36029803200041a0046a22022001413010081a200041d8026a200041a0036a2002102e20002802d80222014103460d22200020002900dd023703a0042000200041e4026a2800003600a7042001210320002d00dc020c230b41201026220142ffaed1a6a6969983ec00370018200142f5bcf48480bedeb34f370010200142febdb1a2dfc5d2c139370008200142a5dfa197d58df4fd4e370000200041a0046a200141201040027f0240027e2000027f20002802a004220141034604400240200041a8046a2802002201450d002000200041ac046a2802003602a404200020013602a004200041206a200041a0046a100a200029032022164202510d002016a7044020004198036a4104721041200028029c032101200041a8036a2802000c030b20002903280c030b2000410836029c03200041a0820436029803200041106a20004198036a100a2000290310a70d3220002903180c020b200041a0036a20002902a40437030020002802ac040b3602e0022000200041a0036a29030022173703d80220014103470d0120002902dc020b211641021026220141253b0000200041023602a804200020013602a404200041023602a00420072010200041a0046a220110274100210220014100103020012011103120004198036a20002802a40420002802a804102820002802980322014103460d2220002903a0032116200028029c030c010b20002902dc0221162017a70b2103410121020c450b20004198036a10422000280298032201410346044020002903a0032116200041003a009803200041d8026a201a4102200f20062004200a20004198036a1043200041a0046a20002802dc0220002802e002102820002802a00422014103470d3341021026220141a5103b0000200041023602a804200020013602a404200041023602a0042016200041a0046a2201102d20014100103120062001104441002001104441002001104420014100103120004198036a20002802a40420002802a804102820002802980322014103460d1f0b20002903a0032116200028029c0321030c3e0b200020043602e0022000201b3703d802200041a0046a200041d8026a201a2019200b200941ff017172ad200cad422086842016104520004198036a20002802a40420002802a804102820002802980322014103460d1b20004190026a200041a4036a2802003602002000200029029c033703880220010c1c0b20002004360290022000201b37038802200020163703a0032000200b200941ff017172ad200cad4220868437039803410210262201419a2c3b0000200041023602e002200020013602dc02200041023602d80220004188026a200041d8026a22011032201a20192001103320004198036a20011046200041a0046a20002802dc0220002802e002102820002802a00422014103460d18200041e0026a200041ac046a280200360200200020002902a4043703d80220010c190b200020063602e002200020193703d802410210262201419a063b0000200041023602a804200020013602a404200041023602a0042004200a200041a0046a22011027200041d8026a200110322000200941ff01714100473a008802200120004188026a410110470240024002400240024002400240024002400240024002400240410b200741046b22012001410b4f1b41016b0e0b0102030405060708090a0b000b200041a0046a410010310c0b0b200041a0046a410110310c0a0b200041a0046a410210310c090b200041a0046a410310310c080b200041a0046a410410310c070b200041a0046a410510310c060b200041a0046a410610310c050b200041a0046a410710310c040b200041a0046a410810310c030b200041a0046a2201410910312010200110440c020b200041a0046a410a10310c010b200041a0046a410b10310240024002400240200741016b0e03010203000b200041a0046a410010310c030b200041a0046a410110310c020b200041a0046a410210310c010b200041a0046a2201410310312010200110440b200041a0046a22014100103020014100103120004198036a20002802a40420002802a804102820002802980322014103470d39201650450440200041a0046a200041d8026a201c201d42002016104520004198036a20002802a40420002802a804102820002802980322014103470d3a0b410210262201419d083b0000200041023602a804200020013602a404200041023602a004200041d8026a200041a0046a103220004198036a20002802a40420002802a804102820002802980322014103460d160c390b200041ab036a2019370000200041a3036a201a370000200041bb036a201e370000200041b3036a201b370000200041c7036a200c3a0000200041c3036a200b200941ff017172360000200020133b009d03200020143a009c032000200541ff0171200d4108747236009f032000200041f0016a36029803200041f0026a200041c0036a290300370300200041e8026a200041b8036a290300370300200041e0026a200041b0036a2903003703002000200041a8036a2903003703d80241002102200041306a4180044100103620004180036a22054100360200200020002903303703f8022000428ec6c3a5f4e2dc89c0003700b804200042ea96edddefb980bee6003700b004200042a591faa9b9aad1bd2e3700a804200042d387c58bbaf2e9a86e3700a004200041f8026a2203200041a0046a22011037200041e0016a20004198036a410472103c200120002802e401220420002802e8012206103d20032001103e200020043602ac042000200420066a3602a804200020043602a404200020002802e0013602a00420032001103b2001200041d8026a104820032001104920004190026a2005280200360200200020002903f80237038802200120004188026a103f20002903a00422164202510d13420020002903a80420165022011b21164200200041b0046a29030020011b0c140b20004197026a201a4220883c000020004193026a201a3e0000200020133b008d02200020143a008c022000200541ff0171200d4108747236008f022000200041f0016a36028802200041386a418004410010362000410036028003200020002903383703f802200042a3bc8582bb9adeb4183700b00320004299afeeb89589eba1603700a803200042a591faa9b9aad1bd2e3700a003200042d387c58bbaf2e9a86e37009803200041f8026a220320004198036a22011037200041e0016a20004188026a410472103c200120002802e401220220002802e8012204103d20032001103e200020023602a4032000200220046a3602a0032000200236029c03200020002802e0013602980320032001103b200041d8026a20002802fc0220002802800310400240024020002802d802220241034604404200211642002117200041e0026a2802002201450d14200041e4026a2802002202411049200241106b412049720d01200141086a2900002118200129000021192000200241306b3602cc022000200141306a3602c802200041c8026a102541ff01714102460d01200041d8026a200041c8026a102420002802d802410f460d0120002802d802410f6b0e020114130b200020002802e4023602a403200020002902dc0237029c030c010b20004198036a104120002802980321020b200041a4036a3502002117200029029c032116410121010c360b200041e8026a20193e0200200041e0026a201a3703002000200541ff0171200d410874723602dc022000200041f0016a3602d802200041d8006a418004410010362000410036028003200020002903583703f802200042fdacaeb7d5efc2d7917f3700b003200042eaa29fcba6ee9acf053700a803200042a895af92c8e6c99d113700a003200042d1b4eed5d88dc8a88b7f37009803200041f8026a220320004198036a22011037200041d0006a411041001036200041003602e801200020002903503703e001200041d8026a410472200041e0016a104a200120002802e401220220002802e8012204103d20032001103e200020023602a4032000200220046a3602a0032000200236029c03200020002802e0013602980320032001103b200041a0046a20002802fc022000280280031040024020002802a00422014103460440200041a8046a280200220304402000200041ac046a2802003602bc02200020033602b802200041a0046a200041b8026a100e0240024020002903c0044202510d0020002802bc022201410c492001411c6b416f4b720d002001413c6b2201415f4b0d0020002802b802220241146a2900002118200229000c2117200020013602bc0220002002413c6a3602b802200041b8026a102541ff017122014102460d0020002802bc0222044108490d002000200441086b3602bc02200020002802b802220441086a3602b8022004290000211c200041406b200041b8026a1022200029034022164202520d010b20004198036a10410c030b2000290348211d20004190026a200241086a28000036020020002002290000370388020b200041d0026a220220004190026a28020036020020002000290388023703c80220030d0f4202211641000c100b200020002802ac043602a403200020002902a40437029c0320002001360298030b200041a0036a290300211820002903980321174203211641010c0e0b200041a8036a20193e0200200041a0036a201a3703002000200541ff0171200d4108747236029c032000200041f0016a36029803410210262201419b023b0000200041023602e002200020013602dc02200041023602d80220004198036a410472200041d8026a104a200041a0046a20002802dc0220002802e002102820002802a00422014103460d0a200041e0026a200041ac046a280200360200200020002902a4043703d80220010c0b0b200041d0036a200e360200200041e8036a4100360200200041b0036a2018370300200041d8036a4100360200200020203703c80320002015360290022000202137038802200041003a00ec03200020173703b80320004280808080103703e003200042003703a803200041003602c003200041023a00a403410210262201419e103b0000200041023602e002200020013602dc02200041023602d802200041c8036a200041d8026a2201103220014100103120172001102d20014101103120014100103120182001102d41014100200110272001410010312001410010312001410010310240200b200941ff017172200c72450440200041d8026a410010310c010b200041d8026a22014101103120162001102d0b20004188026a200041d8026a22011032201a201920011033201b201e20011033201f2001102d0240201c500440200041d8026a410010310c010b200041d8026a220141011031201d2001102d0b200041a0046a20002802dc0220002802e002102820002802a00422014103460d07200041e0026a200041ac046a280200360200200020002902a4043703d80220010c080b20004198036a1042027f2000280298032201410346044020002903a003211641002102200041003a009803200041d8026a201a4100200f20062004200a20004198036a1043200041a0046a20002802dc0220002802e002102820002802a00422014103460d0720002903a804211620002802a4040c010b20002903a0032116200028029c030b2103410121020c3b0b200041bc036a200a360200200041b8036a2004360200200041b0036a201b370300200041ac036a200f360200200041a0036a2007360200200041a4036a20194220862022422088842216370200200041c0036a200b200941ff017172ad200cad4220868422183703002000200541ff0171200d41087472220236029c032000200041f0016a36029803200041a0046a20004198036a4104722203102a20002802a0042201410346044020002903a80421172000201837028c022000200a3602880241021026220141a2143b0000200041023602e002200020013602dc02200041023602d8022003200041d8026a2201104b20004188026a2001102b200041a0046a20002802dc0220002802e002102820002802a00422014103460d030b20002903a804211620002802a40421074202211841010c030b200041b0046a2019370300200041a8046a201a370300200041b8046a20063602002000200541ff0171200d410874723602a4042000200041f0016a3602a004200041f8006a418004410010362000410036028003200020002903783703f802200042cba0a7f98984c9a4083700b003200042849fd584b0a9d68f713700a803200042a591faa9b9aad1bd2e3700a003200042d387c58bbaf2e9a86e37009803200041f8026a220320004198036a22011037200041e0016a200041a0046a410472103c200120002802e401220220002802e8012204103d20032001103e200020023602a4032000200220046a3602a0032000200236029c03200020002802e0013602980320032001103b200641046a22012006490d21200041f0006a20014100103620004100360290022000200029037037038802200f200620004188026a102720004198036a2202200028028c0222012000280290022203103d200041f8026a22042002103e200020013602a4032000200120036a3602a0032000200136029c0320002000280288023602980320042002103b200041d8026a20002802fc02200028028003104020002802d80222024103470d2842002116200041e0026a2802002201450d2e2000200041e4026a2802003602dc02200020013602d802200041e0006a200041d8026a100a20002903682117200029036022184202510d2e420121162018a7450d2e20004198036a4104721041200041a8036a2802002101200028029c0321020c2d0b200041b8036a201e370300200041b0036a201b370300200041a8036a20193703002000201a3703a0032000200041f0016a360298034100210320004188016a41800441001036200041003602d00220002000290388013703c802200042abe1bbb1fdff8dde303700b8042000428cd8ab80e7d6ef99733700b004200042a591faa9b9aad1bd2e3700a804200042d387c58bbaf2e9a86e3700a004200041c8026a2204200041a0046a22011037200041f8026a200041a0036a103c200120002802fc0222022000280280032205103d20042001103e200020023602ac042000200220056a3602a804200020023602a404200020002802f8023602a00420042001103b20004180016a410941001036200041003602e80120002000290380013703e001200041e0016a2202201b4200521031201e2002102d200120002802e401220520002802e80122021039200420002903a004103a200020053602ac042000200220056a3602a804200020053602a404200020002802e0013602a00420042001103b200120002802cc0220002802d002104020002802a00422014103470d280240200041e4026a200041a8046a2802002204047f2000200041ac046a28020036028c032000200436028803200041a0046a20004188036a102120002802a4042203450d0120002802a004210220002802a8040520010b360200200041e0026a2003360200200020023602dc020c2b0b200041d8026a104120002802d80222014103460d2a0c290b420121182002210141000b2102200020043602b4032000201b3702ac032000200f3602a803200020173703c003200020183703b803200020163703a0032000200736029c030c370b410621010c350b41060b21020c350b41060b21020c330b200041a8046a2002280200360200200020002903c8023703a00420164203510b2102200041c8036a200041a8046a2802003602002000201737039803200020002903a0043703c003200020013a00cc032000201c3703b8032000201d3703b003200020163703a803200020183703a003230041106b22012400200141808001360204200141c48204360200024020004198036a22032903102216420452044041c4820441003a00000240027f02402016420352044041c5820441003a00002016420251044041c6820441003a0000410321010c060b41c6820441013a0000200141033602082001200341286a410c10142003290300200341086a2903002001101320032d00342001101620032903202001101720165004402001280208220320012802044f0d04200128020020036a41003a0000200341016a0c030b2001280208220020012802044f0d03200128020020006a41013a00002001200041016a360208200341186a290300200110170c010b41c5820441013a00002001410236020820032001101f0b20012802080b220141818001490d020b000b41c482044181023b0100410221010b0c360b200041b8046a200141106a220141186a290000370300200041b0046a200141106a290000370300200041a8046a200141086a290000370300200020012900003703a00420192116201821170b200041b0036a200041b8046a29030037030020002802a0042102410021010c240b200041b0046a290300221742208620002903a80422184220888421162018a721014101210220174220880b3703000c2e0b4106210141000c230b41060b21020c2a0b41060b2102200041a4036a20004190026a280200360200200020002903880237029c030c2b0b4106210141000c200b410621010c240b4106210320002d00dc020b2102200041a4036a20002800a704360000200020002903a00437009d03200020023a009c03200020033602980320014103472103230041106b22012400200141808001360204200141c48204360200024020004198036a22022802002200410747044041c4820441003a00000240200041064604402001410236020841c5820441003a000020022d0004200110160c010b41c5820441013a00002001410236020820022001101f0b2001280208220141818001490d01000b41c482044181023b0100410221010b200320011020000b200041b0046a290300221742208620002903a80422184220888421162018a721014101210220174220880b3703000c230b41060b21020c220b41060b21020c1e0b2003411076210420034108762105200041a8046a20004190026a29030037030020002000290388023703a00420002802e001210220194202510c180b200041e0026a200029008d02370000200020002f01b0043b01d80220002000290388023700db022000200041b2046a2d00003a00da0220002802a004210120002802a404210320002902a80421184201211741000c190b41060b21020c1c0b000b200041a4036a2902002118200041a0036a2802002103200028029c0321010c140b20002903e002211820002802dc0221030c130b200020002900a10322173703d8022000200041a8036a2800003600df02200041a0036a2d00002105200028029c03210220002d00da02210120002900db0221162017a721040c100b20002903a003211620002d009f03210120002f009d03210420002d009c0321050c0f0b200041a0036a2d0000210520002902a403211620002d00a303210120002f00a1032104200028029c0321020c0e0b20002903a804211620002802a40421030c0b0b200041a0036a20002902dc0237030020002802e40221010c040b200020002802ac043602e402200020002902a4043702dc020b200041a8046a200041e4026a280200360200200020002902dc023703a00441010c010b200041a8046a200041e4026a280200360200200020002902dc023703a0044106210141000b2102200041a4036a200041a8046a280200360200200020002903a00437029c032000200136029803230041106b22012400200141808001360204200141c48204360200024020004198036a22032802002200410747044041c4820441003a0000024002402000410646044041c5820441003a0000200341086a28020022000d0141c6820441003a0000410321010c040b41c5820441013a00002001410236020820032001101f0c010b41c6820441013a00002001410336020820002003410c6a280200200110190b2001280208220141818001490d01000b41c482044181023b0100410221010b0c130b200041a0036a29030021162001ad211741010c010b41000b2101200020173703a803200020163703a0032000200236029c032000200136029803230041106b22022400200241808001360204200241c4820436020041022103024020004198036a22002802002204410247044041c4820441003a000002400240200445044041c5820441003a000020002903084200520d0141c6820441003a0000410321030c040b41c5820441013a000020024102360208200041046a2002101f0c010b41c6820441013a000020024103360208200041106a290300200210170b2002280208220341818001490d01000b41c482044181023b01000b200120031020000b200041a8036a2017370300200020163703a0032000200236029c032000200136029803200120004198036a101d000b20004190026a200041a4036a2802003602002000200029029c033703880241010b2102200041a4036a20004190026a280200360200200020002903880237029c030c0c0b41010b2102200020163703a0032000200336029c030c0a0b4202211941010b2103200041b0036a200041a8046a290300370300200020002903a0043703a8032000201b3703c003200020193703b803200020163703a003200020013a009f03200020043b009d03200020053a009c032000200236029803200320004198036a101b000b4202211741010b2102200041b0036a200041e0026a290300370300200020002903d8023703a803200020163703c003200020173703b803200020183703a0032000200336029c030c010b200020163703a0032000200336029c032000200136029803230041106b22012400200141808001360204200141c48204360200024020004198036a22032802002200410747044041c4820441003a00000240200041064604402001410236020841c5820441003a00002003290308200110170c010b41c5820441013a00002001410236020820032001101f0b2001280208220141818001490d01000b41c482044181023b0100410221010b0c060b2000200136029803200220004198036a101b000b200041a4036a200041e0026a280200360200200020002903d80237029c030c020b200020163703a0032000200136029c032000200236029803200220004198036a101d000b200041a4036a200041a8046a280200360200200020002903a00437029c030b2000200236029803200141034720004198036a101c000b2000200136029803200220004198036a101c000b200220011020000b830101027f230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10010240200029030820012903008450450d0020004180800136020841c48204200041086a100320002802082200418180014f0d00200041044f044041c48204280200419bddf6f405460d010b101e000b000ba70101027f2000200020016a41016b410020016b7122014d0440024041bc8204280200220020016a22032000490d0041c0820428020020034904402001200141ffff036a22024b044041000f0b20024110764000220041ffff034b044041000f0b2000411074220020024180807c716a2203200049044041000f0b4100210241c082042003360200200020016a22032000490d010b41bc82042003360200200021020b20020f0b000bfb0301077f230041406a2202240020022000360214200128020021002001280204210620012802082107200128020c21082001280210210420012802142103200241033a0038200242808080808004370330200241003602282002410036022020024180800436021c2002200241146a360218027f02400240200045044020034103742101200341ffffffff017121062007210003402001450d02200041046a28020022030440200228021820002802002003200228021c28020c1103000d040b200041086a2100200141086b21012004280200210320042802042105200441086a21042003200241186a2005110200450d000b0c020b20064105742103200641ffffff3f7121062007210103402003450d01200141046a28020022050440200228021820012802002005200228021c28020c1103000d030b20022000411c6a2d00003a00382002200041146a290200370330200241086a20042000410c6a10502002200229030837032020022004200041046a105020022002290300370328200141086a2101200341206b210320002802002105200041206a2100200420054103746a2205280200200241186a2005280204110200450d000b0c010b200620084904402002280218200720064103746a22002802002000280204200228021c28020c1103000d010b41000c010b41010b2100200241406b240020000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044102470d0120012802000b2802002104410121030b20002004360204200020033602000b0300010b0f00200028020020012002104741000bbb0201027f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10470c020b2000200341011056418180808078470440000b200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b000b5201017f230041206b2202240020002802002100200241186a200141106a290200370300200241106a200141086a290200370300200220012902003703082000200241086a104f2100200241206a240020000b2b01017f02402000280200200028020822026b20014f0d002000200220011056418180808078460d00000b0bc20101027f230041206b220324000240027f4100200120026a22022001490d001a200028020022014100480d01410820014101742204200220022004491b2202200241084d1b2202417f73411f7621040240200104402003410136021820032001360214200320002802043602100c010b200341003602180b200320022004200341106a105720032802004504402003280204210120002002360200200020013602044181808080780c010b200341086a2802000b2104200341206a240020040f0b000bf60201077f230041106b220624002000027f0240027f02400240200204400240200141004e044020032802080d0120062001200210582006280200210520062802040c050b200041086a41003602000c050b20032802042209450440200641086a200120024100105920062802082105200628020c0c040b200120026a41016b410020026b7122072001490d01200141bc8204280200220420076a22082004490d031a2003280200210a41c082042802002008490440200741ffff036a22032007490d0320034110764000220441ffff034b0d032004411074220420034180807c716a22032004490d0341c0820420033602002001200420076a22082004490d041a0b41bc8204200836020020012004450d031a2004200a20091008210520010c030b20002001360204200041086a41003602000c030b000b20010b21042005044020002005360204200041086a200436020041000c020b20002001360204200041086a20023602000b41010b360200200641106a24000b3901017f230041106b22032400200341086a2001200241001059200328020c21012000200328020836020020002001360204200341106a24000bcf0101027f02402001450440200221030c010b200345044020012002104e21030c010b4100210302402001200120026a41016b410020026b7122054d044041bc8204280200220220056a22042002490d0241c082042802002004490440200541ffff036a22032005490d0220034110764000220241ffff034b0d022002411074220220034180807c716a22042002490d024100210341c082042004360200200220056a22042002490d030b41bc82042004360200200221030c020b000b410021030b20002001360204200020033602000b0e0020002802001a03400c000b000b18002001280200419882044105200128020428020c1103000b4802017f027e20012802042202410849047e4201052001200241086b36020420012001280200220141086a3602002001290000210342000b210420002003370308200020043703000b4701037f20002001280208200128020422036b220210552000280208220420002802046a2003200210081a2004200220046a22024b0440000b20012003360208200020023602080b4601017f20012802042202410449047f4101052001200241046b36020420012001280200220141046a3602002001280000210241000b210120002002360204200020013602000b3602017f017e230041106b22022400200241086a200141001036200229030821032000410036020820002003370200200241106a24000b8f0101017f20002d00042103200041003a0004027f0240200345044041012000280200220028020422032002490d021a200120002802002201200210081a0c010b2001200041056a2d00003a00004101200028020022002802042203200241016b2202490d011a200141016a20002802002201200210081a0b2000200320026b3602042000200120026a36020041000b0b0bf9010500418080040b980103000000040000000400000004000000050000000600000001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041da81040b3302020202020202020202020202020202020202020202020202020202020203030303030303030303030303030303040404040400419882040b054572726f720041a982040b01010041b482040b03340101","build_info":{"build_mode":"Release","cargo_contract_version":"3.2.0","rust_toolchain":"stable-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"polymesh-ink","version":"3.1.0","authors":["PolymeshAssociation"],"description":"Upgradable Polymesh Ink! API","repository":"https://github.com/PolymeshAssociation/Polymesh","homepage":"https://github.com/PolymeshAssociation/Polymesh","license":"Apache-2.0"},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":0},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":75},"balance":{"displayName":["Balance"],"type":27},"blockNumber":{"displayName":["BlockNumber"],"type":10},"chainExtension":{"displayName":["ChainExtension"],"type":77},"hash":{"displayName":["Hash"],"type":76},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":21}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":2},"messages":[{"args":[{"label":"remark","type":{"displayName":[],"type":3}}],"default":false,"docs":[" Wrap the `system.remark` extrinsic. Only useful for testing."],"label":"system_remark","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0x45a3d5d7"},{"args":[{"label":"name","type":{"displayName":[],"type":3}}],"default":false,"docs":[" Create a portfolio."],"label":"create_portfolio","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":14},"selector":"0xeac8f033"},{"args":[{"label":"auth_id","type":{"displayName":[],"type":21}},{"label":"portfolio","type":{"displayName":[],"type":19}}],"default":false,"docs":[" Accept custody of a portfolio."],"label":"accept_portfolio_custody","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":14},"selector":"0xaf40a392"},{"args":[{"label":"portfolio","type":{"displayName":[],"type":16}}],"default":false,"docs":[" Quit custodianship of a portfolio returning control back to the owner."],"label":"quit_portfolio_custody","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0x51c9da6d"},{"args":[{"label":"src","type":{"displayName":[],"type":16}},{"label":"dest","type":{"displayName":[],"type":16}},{"label":"funds","type":{"displayName":[],"type":22}}],"default":false,"docs":[" Move funds between portfolios."],"label":"move_portfolio_funds","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0xd909bf68"},{"args":[{"label":"portfolio","type":{"displayName":[],"type":16}},{"label":"ticker","type":{"displayName":[],"type":25}}],"default":false,"docs":[" Get portfolio balance."],"label":"portfolio_asset_balances","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x5aef26a9"},{"args":[{"label":"did","type":{"displayName":[],"type":17}},{"label":"portfolio","type":{"displayName":[],"type":16}}],"default":false,"docs":[" Check portfolios_in_custody."],"label":"check_portfolios_in_custody","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":35},"selector":"0x29c10bab"},{"args":[{"label":"details","type":{"displayName":[],"type":38}},{"label":"ty","type":{"displayName":[],"type":39}}],"default":false,"docs":[" Create a Settlement Venue."],"label":"create_venue","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":40},"selector":"0x49c5ba46"},{"args":[{"label":"venue","type":{"displayName":[],"type":42}},{"label":"legs","type":{"displayName":[],"type":43}},{"label":"portfolios","type":{"displayName":[],"type":45}}],"default":false,"docs":[" Create and execute a settlement to transfer assets."],"label":"settlement_execute","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0x54d4730c"},{"args":[{"label":"ticker","type":{"displayName":[],"type":25}},{"label":"amount","type":{"displayName":[],"type":27}},{"label":"portfolio","type":{"displayName":[],"type":19}}],"default":false,"docs":[" Asset issue tokens."],"label":"asset_issue","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0x721a7267"},{"args":[{"label":"ticker","type":{"displayName":[],"type":25}},{"label":"amount","type":{"displayName":[],"type":27}},{"label":"portfolio","type":{"displayName":[],"type":19}}],"default":false,"docs":[" Asset redeem tokens."],"label":"asset_redeem","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0x98c1fcb8"},{"args":[{"label":"name","type":{"displayName":[],"type":46}},{"label":"ticker","type":{"displayName":[],"type":25}},{"label":"asset_type","type":{"displayName":[],"type":47}},{"label":"divisible","type":{"displayName":[],"type":37}},{"label":"issue","type":{"displayName":[],"type":50}}],"default":false,"docs":[" Very simple create asset and issue."],"label":"asset_create_and_issue","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0x713184ef"},{"args":[{"label":"ticker","type":{"displayName":[],"type":25}},{"label":"did","type":{"displayName":[],"type":17}}],"default":false,"docs":[" Get an identity's asset balance."],"label":"asset_balance_of","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x1649cdf9"},{"args":[{"label":"ticker","type":{"displayName":[],"type":25}}],"default":false,"docs":[" Get the `total_supply` of an asset."],"label":"asset_total_supply","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x3175216e"},{"args":[{"label":"ca_id","type":{"displayName":[],"type":51}}],"default":false,"docs":[" Get corporate action distribution summary."],"label":"distribution_summary","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":53},"selector":"0x109d9a44"},{"args":[{"label":"ca_id","type":{"displayName":[],"type":51}}],"default":false,"docs":[" Cliam dividends from a distribution."],"label":"dividend_claim","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0xd0ebf231"},{"args":[{"label":"dividend","type":{"displayName":[],"type":58}}],"default":false,"docs":[" Create a simple dividend distribution."],"label":"create_dividend","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0xd1fb9233"},{"args":[{"label":"venue_id","type":{"displayName":[],"type":42}},{"label":"legs","type":{"displayName":[],"type":43}},{"label":"portfolios","type":{"displayName":[],"type":45}}],"default":false,"docs":[" Adds and affirms an instruction."],"label":"add_and_affirm_instruction","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":60},"selector":"0xa2c50463"},{"args":[{"label":"portfolio_owner_id","type":{"displayName":[],"type":17}},{"label":"portfolio_name","type":{"displayName":[],"type":63}}],"default":false,"docs":[" Creates a portoflio owned by `portfolio_owner_id` and transfer its custody to the smart contract."," Returns the [`PortfolioId`] of the new portfolio."],"label":"create_custody_portfolio","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":14},"selector":"0x429a4b6f"},{"args":[{"label":"ticker","type":{"displayName":[],"type":25}},{"label":"asset_metadata_name","type":{"displayName":[],"type":64}}],"default":false,"docs":[" Returns the [`AssetMetadataLocalKey`] for the given `ticker` and `asset_metadata_name`."],"label":"asset_metadata_local_name_to_key","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":65},"selector":"0x45d87113"},{"args":[{"label":"ticker","type":{"displayName":[],"type":25}},{"label":"asset_metadata_key","type":{"displayName":[],"type":69}}],"default":false,"docs":[" Returns the [`AssetMetadataValue`] for the given `ticker` and `asset_metadata_key`."],"label":"asset_metadata_value","mutates":false,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":71},"selector":"0xa8f59c06"}]},"storage":{"root":{"layout":{"struct":{"fields":[],"name":"PolymeshInk"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"variant":{"variants":[{"fields":[{"type":1}],"index":0,"name":"Ok"},{"fields":[{"type":2}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":1},{"name":"E","type":2}],"path":["Result"]}},{"id":1,"type":{"def":{"tuple":[]}}},{"id":2,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"variant":{"variants":[{"fields":[{"type":6}],"index":0,"name":"Ok"},{"fields":[{"type":2}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":6},{"name":"E","type":2}],"path":["Result"]}},{"id":6,"type":{"def":{"variant":{"variants":[{"fields":[{"type":1}],"index":0,"name":"Ok"},{"fields":[{"type":7}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":1},{"name":"E","type":7}],"path":["Result"]}},{"id":7,"type":{"def":{"variant":{"variants":[{"fields":[{"type":8,"typeName":"PolymeshInkError"}],"index":0,"name":"PolymeshRuntime"},{"index":1,"name":"MissingIdentity"},{"index":2,"name":"InvalidPortfolioAuthorization"},{"fields":[{"name":"selector","type":11,"typeName":"[u8; 4]"},{"name":"err","type":12,"typeName":"Option"}],"index":3,"name":"InkDelegateCallError"}]}},"path":["polymesh_ink","PolymeshError"]}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9,"typeName":"String"}],"index":0,"name":"ParityScaleCodec"},{"fields":[{"name":"status_code","type":10,"typeName":"u32"}],"index":1,"name":"Generic"},{"fields":[{"name":"error_msg","type":9,"typeName":"String"}],"index":2,"name":"ExtrinsicCallFailed"}]}},"path":["polymesh_api_ink","error","Error"]}},{"id":9,"type":{"def":{"primitive":"str"}}},{"id":10,"type":{"def":{"primitive":"u32"}}},{"id":11,"type":{"def":{"array":{"len":4,"type":4}}}},{"id":12,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":13}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":13}],"path":["Option"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"index":0,"name":"ScaleDecodeError"},{"index":1,"name":"CalleeTrapped"},{"index":2,"name":"CalleeReverted"},{"index":3,"name":"KeyNotFound"},{"index":4,"name":"TransferFailed"},{"index":5,"name":"_EndowmentTooLow"},{"index":6,"name":"CodeNotFound"},{"index":7,"name":"NotCallable"},{"index":8,"name":"LoggingDisabled"},{"index":9,"name":"EcdsaRecoveryFailed"}]}},"path":["polymesh_ink","InkEnvError"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"fields":[{"type":15}],"index":0,"name":"Ok"},{"fields":[{"type":2}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":15},{"name":"E","type":2}],"path":["Result"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":16}],"index":0,"name":"Ok"},{"fields":[{"type":7}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":16},{"name":"E","type":7}],"path":["Result"]}},{"id":16,"type":{"def":{"composite":{"fields":[{"name":"did","type":17,"typeName":"::polymesh_api_ink::IdentityId"},{"name":"kind","type":19,"typeName":"polymesh_primitives::identity_id::PortfolioKind"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","identity_id","PortfolioId"]}},{"id":17,"type":{"def":{"composite":{"fields":[{"type":18,"typeName":"[u8; 32]"}]}},"path":["polymesh_api_ink","basic_types","IdentityId"]}},{"id":18,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":19,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Default"},{"fields":[{"type":20,"typeName":"polymesh_primitives::identity_id::PortfolioNumber"}],"index":1,"name":"User"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","identity_id","PortfolioKind"]}},{"id":20,"type":{"def":{"composite":{"fields":[{"type":21,"typeName":"u64"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","identity_id","PortfolioNumber"]}},{"id":21,"type":{"def":{"primitive":"u64"}}},{"id":22,"type":{"def":{"sequence":{"type":23}}}},{"id":23,"type":{"def":{"composite":{"fields":[{"name":"description","type":24,"typeName":"polymesh_primitives::portfolio::FundDescription"},{"name":"memo","type":31,"typeName":"Option"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","portfolio","Fund"]}},{"id":24,"type":{"def":{"variant":{"variants":[{"fields":[{"name":"ticker","type":25,"typeName":"polymesh_primitives::ticker::Ticker"},{"name":"amount","type":27,"typeName":"u128"}],"index":0,"name":"Fungible"},{"fields":[{"type":28,"typeName":"polymesh_primitives::nft::NFTs"}],"index":1,"name":"NonFungible"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","portfolio","FundDescription"]}},{"id":25,"type":{"def":{"composite":{"fields":[{"type":26,"typeName":"[u8; 12usize]"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","ticker","Ticker"]}},{"id":26,"type":{"def":{"array":{"len":12,"type":4}}}},{"id":27,"type":{"def":{"primitive":"u128"}}},{"id":28,"type":{"def":{"composite":{"fields":[{"name":"ticker","type":25,"typeName":"polymesh_primitives::ticker::Ticker"},{"name":"ids","type":29,"typeName":"::alloc::vec::Vec"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","nft","NFTs"]}},{"id":29,"type":{"def":{"sequence":{"type":30}}}},{"id":30,"type":{"def":{"composite":{"fields":[{"type":21,"typeName":"u64"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","nft","NFTId"]}},{"id":31,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":32}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":32}],"path":["Option"]}},{"id":32,"type":{"def":{"composite":{"fields":[{"type":18,"typeName":"[u8; 32usize]"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","Memo"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"fields":[{"type":34}],"index":0,"name":"Ok"},{"fields":[{"type":2}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":34},{"name":"E","type":2}],"path":["Result"]}},{"id":34,"type":{"def":{"variant":{"variants":[{"fields":[{"type":27}],"index":0,"name":"Ok"},{"fields":[{"type":7}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":27},{"name":"E","type":7}],"path":["Result"]}},{"id":35,"type":{"def":{"variant":{"variants":[{"fields":[{"type":36}],"index":0,"name":"Ok"},{"fields":[{"type":2}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":36},{"name":"E","type":2}],"path":["Result"]}},{"id":36,"type":{"def":{"variant":{"variants":[{"fields":[{"type":37}],"index":0,"name":"Ok"},{"fields":[{"type":7}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":37},{"name":"E","type":7}],"path":["Result"]}},{"id":37,"type":{"def":{"primitive":"bool"}}},{"id":38,"type":{"def":{"composite":{"fields":[{"type":3,"typeName":"::alloc::vec::Vec"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","settlement","VenueDetails"]}},{"id":39,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Other"},{"index":1,"name":"Distribution"},{"index":2,"name":"Sto"},{"index":3,"name":"Exchange"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","settlement","VenueType"]}},{"id":40,"type":{"def":{"variant":{"variants":[{"fields":[{"type":41}],"index":0,"name":"Ok"},{"fields":[{"type":2}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":41},{"name":"E","type":2}],"path":["Result"]}},{"id":41,"type":{"def":{"variant":{"variants":[{"fields":[{"type":42}],"index":0,"name":"Ok"},{"fields":[{"type":7}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":42},{"name":"E","type":7}],"path":["Result"]}},{"id":42,"type":{"def":{"composite":{"fields":[{"type":21,"typeName":"u64"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","settlement","VenueId"]}},{"id":43,"type":{"def":{"sequence":{"type":44}}}},{"id":44,"type":{"def":{"variant":{"variants":[{"fields":[{"name":"sender","type":16,"typeName":"polymesh_primitives::identity_id::PortfolioId"},{"name":"receiver","type":16,"typeName":"polymesh_primitives::identity_id::PortfolioId"},{"name":"ticker","type":25,"typeName":"polymesh_primitives::ticker::Ticker"},{"name":"amount","type":27,"typeName":"u128"}],"index":0,"name":"Fungible"},{"fields":[{"name":"sender","type":16,"typeName":"polymesh_primitives::identity_id::PortfolioId"},{"name":"receiver","type":16,"typeName":"polymesh_primitives::identity_id::PortfolioId"},{"name":"nfts","type":28,"typeName":"polymesh_primitives::nft::NFTs"}],"index":1,"name":"NonFungible"},{"fields":[{"name":"sender_identity","type":17,"typeName":"::polymesh_api_ink::IdentityId"},{"name":"receiver_identity","type":17,"typeName":"::polymesh_api_ink::IdentityId"},{"name":"ticker","type":25,"typeName":"polymesh_primitives::ticker::Ticker"},{"name":"amount","type":27,"typeName":"u128"}],"index":2,"name":"OffChain"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","settlement","Leg"]}},{"id":45,"type":{"def":{"sequence":{"type":16}}}},{"id":46,"type":{"def":{"composite":{"fields":[{"type":3,"typeName":"::alloc::vec::Vec"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","asset","AssetName"]}},{"id":47,"type":{"def":{"variant":{"variants":[{"index":0,"name":"EquityCommon"},{"index":1,"name":"EquityPreferred"},{"index":2,"name":"Commodity"},{"index":3,"name":"FixedIncome"},{"index":4,"name":"REIT"},{"index":5,"name":"Fund"},{"index":6,"name":"RevenueShareAgreement"},{"index":7,"name":"StructuredProduct"},{"index":8,"name":"Derivative"},{"fields":[{"type":48,"typeName":"polymesh_primitives::asset::CustomAssetTypeId"}],"index":9,"name":"Custom"},{"index":10,"name":"StableCoin"},{"fields":[{"type":49,"typeName":"polymesh_primitives::asset::NonFungibleType"}],"index":11,"name":"NonFungible"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","asset","AssetType"]}},{"id":48,"type":{"def":{"composite":{"fields":[{"type":10,"typeName":"u32"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","asset","CustomAssetTypeId"]}},{"id":49,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Derivative"},{"index":1,"name":"FixedIncome"},{"index":2,"name":"Invoice"},{"fields":[{"type":48,"typeName":"polymesh_primitives::asset::CustomAssetTypeId"}],"index":3,"name":"Custom"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","asset","NonFungibleType"]}},{"id":50,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":27}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":27}],"path":["Option"]}},{"id":51,"type":{"def":{"composite":{"fields":[{"name":"ticker","type":25,"typeName":"polymesh_primitives::ticker::Ticker"},{"name":"local_id","type":52,"typeName":"pallet_corporate_actions::LocalCAId"}]}},"path":["polymesh_api","polymesh","types","pallet_corporate_actions","CAId"]}},{"id":52,"type":{"def":{"composite":{"fields":[{"type":10,"typeName":"u32"}]}},"path":["polymesh_api","polymesh","types","pallet_corporate_actions","LocalCAId"]}},{"id":53,"type":{"def":{"variant":{"variants":[{"fields":[{"type":54}],"index":0,"name":"Ok"},{"fields":[{"type":2}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":54},{"name":"E","type":2}],"path":["Result"]}},{"id":54,"type":{"def":{"variant":{"variants":[{"fields":[{"type":55}],"index":0,"name":"Ok"},{"fields":[{"type":7}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":55},{"name":"E","type":7}],"path":["Result"]}},{"id":55,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":56}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":56}],"path":["Option"]}},{"id":56,"type":{"def":{"composite":{"fields":[{"name":"currency","type":25,"typeName":"Ticker"},{"name":"per_share","type":27,"typeName":"Balance"},{"name":"reclaimed","type":37,"typeName":"bool"},{"name":"payment_at","type":21,"typeName":"Timestamp"},{"name":"expires_at","type":57,"typeName":"Option"}]}},"path":["polymesh_ink","DistributionSummary"]}},{"id":57,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":21}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":21}],"path":["Option"]}},{"id":58,"type":{"def":{"composite":{"fields":[{"name":"ticker","type":25,"typeName":"Ticker"},{"name":"decl_date","type":21,"typeName":"Timestamp"},{"name":"record_date","type":21,"typeName":"Timestamp"},{"name":"portfolio","type":59,"typeName":"Option"},{"name":"currency","type":25,"typeName":"Ticker"},{"name":"per_share","type":27,"typeName":"Balance"},{"name":"amount","type":27,"typeName":"Balance"},{"name":"payment_at","type":21,"typeName":"Timestamp"},{"name":"expires_at","type":57,"typeName":"Option"}]}},"path":["polymesh_ink","SimpleDividend"]}},{"id":59,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":20}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":20}],"path":["Option"]}},{"id":60,"type":{"def":{"variant":{"variants":[{"fields":[{"type":61}],"index":0,"name":"Ok"},{"fields":[{"type":2}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":61},{"name":"E","type":2}],"path":["Result"]}},{"id":61,"type":{"def":{"variant":{"variants":[{"fields":[{"type":62}],"index":0,"name":"Ok"},{"fields":[{"type":7}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":62},{"name":"E","type":7}],"path":["Result"]}},{"id":62,"type":{"def":{"composite":{"fields":[{"type":21,"typeName":"u64"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","settlement","InstructionId"]}},{"id":63,"type":{"def":{"composite":{"fields":[{"type":3,"typeName":"::alloc::vec::Vec"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","identity_id","PortfolioName"]}},{"id":64,"type":{"def":{"composite":{"fields":[{"type":3,"typeName":"::alloc::vec::Vec"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","asset_metadata","AssetMetadataName"]}},{"id":65,"type":{"def":{"variant":{"variants":[{"fields":[{"type":66}],"index":0,"name":"Ok"},{"fields":[{"type":2}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":66},{"name":"E","type":2}],"path":["Result"]}},{"id":66,"type":{"def":{"variant":{"variants":[{"fields":[{"type":67}],"index":0,"name":"Ok"},{"fields":[{"type":7}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":67},{"name":"E","type":7}],"path":["Result"]}},{"id":67,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":68}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":68}],"path":["Option"]}},{"id":68,"type":{"def":{"composite":{"fields":[{"type":21,"typeName":"u64"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","asset_metadata","AssetMetadataLocalKey"]}},{"id":69,"type":{"def":{"variant":{"variants":[{"fields":[{"type":70,"typeName":"polymesh_primitives::asset_metadata::AssetMetadataGlobalKey"}],"index":0,"name":"Global"},{"fields":[{"type":68,"typeName":"polymesh_primitives::asset_metadata::AssetMetadataLocalKey"}],"index":1,"name":"Local"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","asset_metadata","AssetMetadataKey"]}},{"id":70,"type":{"def":{"composite":{"fields":[{"type":21,"typeName":"u64"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","asset_metadata","AssetMetadataGlobalKey"]}},{"id":71,"type":{"def":{"variant":{"variants":[{"fields":[{"type":72}],"index":0,"name":"Ok"},{"fields":[{"type":2}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":72},{"name":"E","type":2}],"path":["Result"]}},{"id":72,"type":{"def":{"variant":{"variants":[{"fields":[{"type":73}],"index":0,"name":"Ok"},{"fields":[{"type":7}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":73},{"name":"E","type":7}],"path":["Result"]}},{"id":73,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":74}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":74}],"path":["Option"]}},{"id":74,"type":{"def":{"composite":{"fields":[{"type":3,"typeName":"::alloc::vec::Vec"}]}},"path":["polymesh_api","polymesh","types","polymesh_primitives","asset_metadata","AssetMetadataValue"]}},{"id":75,"type":{"def":{"composite":{"fields":[{"type":18,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":76,"type":{"def":{"composite":{"fields":[{"type":18,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":77,"type":{"def":{"variant":{}},"path":["polymesh_api_ink","extension","PolymeshRuntime"]}}],"version":"4"} \ No newline at end of file diff --git a/src/data/contracts/polymesh_ink_6.json b/src/data/contracts/polymesh_ink_6.json new file mode 100644 index 0000000000..468565726b --- /dev/null +++ b/src/data/contracts/polymesh_ink_6.json @@ -0,0 +1,3178 @@ +{ + "source": { + "hash": "0x4306285ed964afb6f08ab8c4e33d7d37a1383e847cd3299b35b80bab56cc89c6", + "language": "ink! 4.3.0", + "compiler": "rustc 1.70.0", + "build_info": { + "build_mode": "Release", + "cargo_contract_version": "3.2.0", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "polymesh-ink", + "version": "3.1.0", + "authors": [ + "PolymeshAssociation" + ], + "description": "Upgradable Polymesh Ink! API", + "repository": "https://github.com/PolymeshAssociation/Polymesh", + "homepage": "https://github.com/PolymeshAssociation/Polymesh", + "license": "Apache-2.0" + }, + "spec": { + "constructors": [ + { + "args": [], + "default": false, + "docs": [], + "label": "new", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 0 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": [ + "AccountId" + ], + "type": 75 + }, + "balance": { + "displayName": [ + "Balance" + ], + "type": 27 + }, + "blockNumber": { + "displayName": [ + "BlockNumber" + ], + "type": 10 + }, + "chainExtension": { + "displayName": [ + "ChainExtension" + ], + "type": 77 + }, + "hash": { + "displayName": [ + "Hash" + ], + "type": 76 + }, + "maxEventTopics": 4, + "timestamp": { + "displayName": [ + "Timestamp" + ], + "type": 21 + } + }, + "events": [], + "lang_error": { + "displayName": [ + "ink", + "LangError" + ], + "type": 2 + }, + "messages": [ + { + "args": [ + { + "label": "remark", + "type": { + "displayName": [], + "type": 3 + } + } + ], + "default": false, + "docs": [ + " Wrap the `system.remark` extrinsic. Only useful for testing." + ], + "label": "system_remark", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 5 + }, + "selector": "0x45a3d5d7" + }, + { + "args": [ + { + "label": "name", + "type": { + "displayName": [], + "type": 3 + } + } + ], + "default": false, + "docs": [ + " Create a portfolio." + ], + "label": "create_portfolio", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 14 + }, + "selector": "0xeac8f033" + }, + { + "args": [ + { + "label": "auth_id", + "type": { + "displayName": [], + "type": 21 + } + }, + { + "label": "portfolio", + "type": { + "displayName": [], + "type": 19 + } + } + ], + "default": false, + "docs": [ + " Accept custody of a portfolio." + ], + "label": "accept_portfolio_custody", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 14 + }, + "selector": "0xaf40a392" + }, + { + "args": [ + { + "label": "portfolio", + "type": { + "displayName": [], + "type": 16 + } + } + ], + "default": false, + "docs": [ + " Quit custodianship of a portfolio returning control back to the owner." + ], + "label": "quit_portfolio_custody", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 5 + }, + "selector": "0x51c9da6d" + }, + { + "args": [ + { + "label": "src", + "type": { + "displayName": [], + "type": 16 + } + }, + { + "label": "dest", + "type": { + "displayName": [], + "type": 16 + } + }, + { + "label": "funds", + "type": { + "displayName": [], + "type": 22 + } + } + ], + "default": false, + "docs": [ + " Move funds between portfolios." + ], + "label": "move_portfolio_funds", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 5 + }, + "selector": "0xd909bf68" + }, + { + "args": [ + { + "label": "portfolio", + "type": { + "displayName": [], + "type": 16 + } + }, + { + "label": "ticker", + "type": { + "displayName": [], + "type": 25 + } + } + ], + "default": false, + "docs": [ + " Get portfolio balance." + ], + "label": "portfolio_asset_balances", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 33 + }, + "selector": "0x5aef26a9" + }, + { + "args": [ + { + "label": "did", + "type": { + "displayName": [], + "type": 17 + } + }, + { + "label": "portfolio", + "type": { + "displayName": [], + "type": 16 + } + } + ], + "default": false, + "docs": [ + " Check portfolios_in_custody." + ], + "label": "check_portfolios_in_custody", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 35 + }, + "selector": "0x29c10bab" + }, + { + "args": [ + { + "label": "details", + "type": { + "displayName": [], + "type": 38 + } + }, + { + "label": "ty", + "type": { + "displayName": [], + "type": 39 + } + } + ], + "default": false, + "docs": [ + " Create a Settlement Venue." + ], + "label": "create_venue", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 40 + }, + "selector": "0x49c5ba46" + }, + { + "args": [ + { + "label": "venue", + "type": { + "displayName": [], + "type": 42 + } + }, + { + "label": "legs", + "type": { + "displayName": [], + "type": 43 + } + }, + { + "label": "portfolios", + "type": { + "displayName": [], + "type": 45 + } + } + ], + "default": false, + "docs": [ + " Create and execute a settlement to transfer assets." + ], + "label": "settlement_execute", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 5 + }, + "selector": "0x54d4730c" + }, + { + "args": [ + { + "label": "ticker", + "type": { + "displayName": [], + "type": 25 + } + }, + { + "label": "amount", + "type": { + "displayName": [], + "type": 27 + } + }, + { + "label": "portfolio", + "type": { + "displayName": [], + "type": 19 + } + } + ], + "default": false, + "docs": [ + " Asset issue tokens." + ], + "label": "asset_issue", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 5 + }, + "selector": "0x721a7267" + }, + { + "args": [ + { + "label": "ticker", + "type": { + "displayName": [], + "type": 25 + } + }, + { + "label": "amount", + "type": { + "displayName": [], + "type": 27 + } + }, + { + "label": "portfolio", + "type": { + "displayName": [], + "type": 19 + } + } + ], + "default": false, + "docs": [ + " Asset redeem tokens." + ], + "label": "asset_redeem", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 5 + }, + "selector": "0x98c1fcb8" + }, + { + "args": [ + { + "label": "name", + "type": { + "displayName": [], + "type": 46 + } + }, + { + "label": "ticker", + "type": { + "displayName": [], + "type": 25 + } + }, + { + "label": "asset_type", + "type": { + "displayName": [], + "type": 47 + } + }, + { + "label": "divisible", + "type": { + "displayName": [], + "type": 37 + } + }, + { + "label": "issue", + "type": { + "displayName": [], + "type": 50 + } + } + ], + "default": false, + "docs": [ + " Very simple create asset and issue." + ], + "label": "asset_create_and_issue", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 5 + }, + "selector": "0x713184ef" + }, + { + "args": [ + { + "label": "ticker", + "type": { + "displayName": [], + "type": 25 + } + }, + { + "label": "did", + "type": { + "displayName": [], + "type": 17 + } + } + ], + "default": false, + "docs": [ + " Get an identity's asset balance." + ], + "label": "asset_balance_of", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 33 + }, + "selector": "0x1649cdf9" + }, + { + "args": [ + { + "label": "ticker", + "type": { + "displayName": [], + "type": 25 + } + } + ], + "default": false, + "docs": [ + " Get the `total_supply` of an asset." + ], + "label": "asset_total_supply", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 33 + }, + "selector": "0x3175216e" + }, + { + "args": [ + { + "label": "ca_id", + "type": { + "displayName": [], + "type": 51 + } + } + ], + "default": false, + "docs": [ + " Get corporate action distribution summary." + ], + "label": "distribution_summary", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 53 + }, + "selector": "0x109d9a44" + }, + { + "args": [ + { + "label": "ca_id", + "type": { + "displayName": [], + "type": 51 + } + } + ], + "default": false, + "docs": [ + " Cliam dividends from a distribution." + ], + "label": "dividend_claim", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 5 + }, + "selector": "0xd0ebf231" + }, + { + "args": [ + { + "label": "dividend", + "type": { + "displayName": [], + "type": 58 + } + } + ], + "default": false, + "docs": [ + " Create a simple dividend distribution." + ], + "label": "create_dividend", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 5 + }, + "selector": "0xd1fb9233" + }, + { + "args": [ + { + "label": "venue_id", + "type": { + "displayName": [], + "type": 42 + } + }, + { + "label": "legs", + "type": { + "displayName": [], + "type": 43 + } + }, + { + "label": "portfolios", + "type": { + "displayName": [], + "type": 45 + } + } + ], + "default": false, + "docs": [ + " Adds and affirms an instruction." + ], + "label": "add_and_affirm_instruction", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 60 + }, + "selector": "0xa2c50463" + }, + { + "args": [ + { + "label": "portfolio_owner_id", + "type": { + "displayName": [], + "type": 17 + } + }, + { + "label": "portfolio_name", + "type": { + "displayName": [], + "type": 63 + } + } + ], + "default": false, + "docs": [ + " Creates a portoflio owned by `portfolio_owner_id` and transfer its custody to the smart contract.", + " Returns the [`PortfolioId`] of the new portfolio." + ], + "label": "create_custody_portfolio", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 14 + }, + "selector": "0x429a4b6f" + }, + { + "args": [ + { + "label": "ticker", + "type": { + "displayName": [], + "type": 25 + } + }, + { + "label": "asset_metadata_name", + "type": { + "displayName": [], + "type": 64 + } + } + ], + "default": false, + "docs": [ + " Returns the [`AssetMetadataLocalKey`] for the given `ticker` and `asset_metadata_name`." + ], + "label": "asset_metadata_local_name_to_key", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 65 + }, + "selector": "0x45d87113" + }, + { + "args": [ + { + "label": "ticker", + "type": { + "displayName": [], + "type": 25 + } + }, + { + "label": "asset_metadata_key", + "type": { + "displayName": [], + "type": 69 + } + } + ], + "default": false, + "docs": [ + " Returns the [`AssetMetadataValue`] for the given `ticker` and `asset_metadata_key`." + ], + "label": "asset_metadata_value", + "mutates": false, + "payable": true, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 71 + }, + "selector": "0xa8f59c06" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [], + "name": "PolymeshInk" + } + }, + "root_key": "0x00000000" + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 1 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "E", + "type": 2 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 1, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 2, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": [ + "ink_primitives", + "LangError" + ] + } + }, + { + "id": 3, + "type": { + "def": { + "sequence": { + "type": 4 + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 5, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 6 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "E", + "type": 2 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 6, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 1 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 7 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "E", + "type": 7 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 7, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8, + "typeName": "PolymeshInkError" + } + ], + "index": 0, + "name": "PolymeshRuntime" + }, + { + "index": 1, + "name": "MissingIdentity" + }, + { + "index": 2, + "name": "InvalidPortfolioAuthorization" + }, + { + "fields": [ + { + "name": "selector", + "type": 11, + "typeName": "[u8; 4]" + }, + { + "name": "err", + "type": 12, + "typeName": "Option" + } + ], + "index": 3, + "name": "InkDelegateCallError" + } + ] + } + }, + "path": [ + "polymesh_ink", + "PolymeshError" + ] + } + }, + { + "id": 8, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 9, + "typeName": "String" + } + ], + "index": 0, + "name": "ParityScaleCodec" + }, + { + "fields": [ + { + "name": "status_code", + "type": 10, + "typeName": "u32" + } + ], + "index": 1, + "name": "Generic" + }, + { + "fields": [ + { + "name": "error_msg", + "type": 9, + "typeName": "String" + } + ], + "index": 2, + "name": "ExtrinsicCallFailed" + } + ] + } + }, + "path": [ + "polymesh_api_ink", + "error", + "Error" + ] + } + }, + { + "id": 9, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 10, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 11, + "type": { + "def": { + "array": { + "len": 4, + "type": 4 + } + } + } + }, + { + "id": 12, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 13 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 13 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 13, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "ScaleDecodeError" + }, + { + "index": 1, + "name": "CalleeTrapped" + }, + { + "index": 2, + "name": "CalleeReverted" + }, + { + "index": 3, + "name": "KeyNotFound" + }, + { + "index": 4, + "name": "TransferFailed" + }, + { + "index": 5, + "name": "_EndowmentTooLow" + }, + { + "index": 6, + "name": "CodeNotFound" + }, + { + "index": 7, + "name": "NotCallable" + }, + { + "index": 8, + "name": "LoggingDisabled" + }, + { + "index": 9, + "name": "EcdsaRecoveryFailed" + } + ] + } + }, + "path": [ + "polymesh_ink", + "InkEnvError" + ] + } + }, + { + "id": 14, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 15 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 15 + }, + { + "name": "E", + "type": 2 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 15, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 16 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 7 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 16 + }, + { + "name": "E", + "type": 7 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 16, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "did", + "type": 17, + "typeName": "::polymesh_api_ink::IdentityId" + }, + { + "name": "kind", + "type": 19, + "typeName": "polymesh_primitives::identity_id::PortfolioKind" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "identity_id", + "PortfolioId" + ] + } + }, + { + "id": 17, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 18, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "polymesh_api_ink", + "basic_types", + "IdentityId" + ] + } + }, + { + "id": 18, + "type": { + "def": { + "array": { + "len": 32, + "type": 4 + } + } + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "Default" + }, + { + "fields": [ + { + "type": 20, + "typeName": "polymesh_primitives::identity_id::PortfolioNumber" + } + ], + "index": 1, + "name": "User" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "identity_id", + "PortfolioKind" + ] + } + }, + { + "id": 20, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 21, + "typeName": "u64" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "identity_id", + "PortfolioNumber" + ] + } + }, + { + "id": 21, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 22, + "type": { + "def": { + "sequence": { + "type": 23 + } + } + } + }, + { + "id": 23, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "description", + "type": 24, + "typeName": "polymesh_primitives::portfolio::FundDescription" + }, + { + "name": "memo", + "type": 31, + "typeName": "Option" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "portfolio", + "Fund" + ] + } + }, + { + "id": 24, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "name": "ticker", + "type": 25, + "typeName": "polymesh_primitives::ticker::Ticker" + }, + { + "name": "amount", + "type": 27, + "typeName": "u128" + } + ], + "index": 0, + "name": "Fungible" + }, + { + "fields": [ + { + "type": 28, + "typeName": "polymesh_primitives::nft::NFTs" + } + ], + "index": 1, + "name": "NonFungible" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "portfolio", + "FundDescription" + ] + } + }, + { + "id": 25, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 26, + "typeName": "[u8; 12usize]" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "ticker", + "Ticker" + ] + } + }, + { + "id": 26, + "type": { + "def": { + "array": { + "len": 12, + "type": 4 + } + } + } + }, + { + "id": 27, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 28, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "ticker", + "type": 25, + "typeName": "polymesh_primitives::ticker::Ticker" + }, + { + "name": "ids", + "type": 29, + "typeName": "::alloc::vec::Vec" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "nft", + "NFTs" + ] + } + }, + { + "id": 29, + "type": { + "def": { + "sequence": { + "type": 30 + } + } + } + }, + { + "id": 30, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 21, + "typeName": "u64" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "nft", + "NFTId" + ] + } + }, + { + "id": 31, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 32 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 32 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 32, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 18, + "typeName": "[u8; 32usize]" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "Memo" + ] + } + }, + { + "id": 33, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 34 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 34 + }, + { + "name": "E", + "type": 2 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 34, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 27 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 7 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 27 + }, + { + "name": "E", + "type": 7 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 35, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 36 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 36 + }, + { + "name": "E", + "type": 2 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 36, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 37 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 7 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 37 + }, + { + "name": "E", + "type": 7 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 37, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 38, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "::alloc::vec::Vec" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "settlement", + "VenueDetails" + ] + } + }, + { + "id": 39, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "Other" + }, + { + "index": 1, + "name": "Distribution" + }, + { + "index": 2, + "name": "Sto" + }, + { + "index": 3, + "name": "Exchange" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "settlement", + "VenueType" + ] + } + }, + { + "id": 40, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 41 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 41 + }, + { + "name": "E", + "type": 2 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 41, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 42 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 7 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 42 + }, + { + "name": "E", + "type": 7 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 42, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 21, + "typeName": "u64" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "settlement", + "VenueId" + ] + } + }, + { + "id": 43, + "type": { + "def": { + "sequence": { + "type": 44 + } + } + } + }, + { + "id": 44, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "name": "sender", + "type": 16, + "typeName": "polymesh_primitives::identity_id::PortfolioId" + }, + { + "name": "receiver", + "type": 16, + "typeName": "polymesh_primitives::identity_id::PortfolioId" + }, + { + "name": "ticker", + "type": 25, + "typeName": "polymesh_primitives::ticker::Ticker" + }, + { + "name": "amount", + "type": 27, + "typeName": "u128" + } + ], + "index": 0, + "name": "Fungible" + }, + { + "fields": [ + { + "name": "sender", + "type": 16, + "typeName": "polymesh_primitives::identity_id::PortfolioId" + }, + { + "name": "receiver", + "type": 16, + "typeName": "polymesh_primitives::identity_id::PortfolioId" + }, + { + "name": "nfts", + "type": 28, + "typeName": "polymesh_primitives::nft::NFTs" + } + ], + "index": 1, + "name": "NonFungible" + }, + { + "fields": [ + { + "name": "sender_identity", + "type": 17, + "typeName": "::polymesh_api_ink::IdentityId" + }, + { + "name": "receiver_identity", + "type": 17, + "typeName": "::polymesh_api_ink::IdentityId" + }, + { + "name": "ticker", + "type": 25, + "typeName": "polymesh_primitives::ticker::Ticker" + }, + { + "name": "amount", + "type": 27, + "typeName": "u128" + } + ], + "index": 2, + "name": "OffChain" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "settlement", + "Leg" + ] + } + }, + { + "id": 45, + "type": { + "def": { + "sequence": { + "type": 16 + } + } + } + }, + { + "id": 46, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "::alloc::vec::Vec" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "asset", + "AssetName" + ] + } + }, + { + "id": 47, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "EquityCommon" + }, + { + "index": 1, + "name": "EquityPreferred" + }, + { + "index": 2, + "name": "Commodity" + }, + { + "index": 3, + "name": "FixedIncome" + }, + { + "index": 4, + "name": "REIT" + }, + { + "index": 5, + "name": "Fund" + }, + { + "index": 6, + "name": "RevenueShareAgreement" + }, + { + "index": 7, + "name": "StructuredProduct" + }, + { + "index": 8, + "name": "Derivative" + }, + { + "fields": [ + { + "type": 48, + "typeName": "polymesh_primitives::asset::CustomAssetTypeId" + } + ], + "index": 9, + "name": "Custom" + }, + { + "index": 10, + "name": "StableCoin" + }, + { + "fields": [ + { + "type": 49, + "typeName": "polymesh_primitives::asset::NonFungibleType" + } + ], + "index": 11, + "name": "NonFungible" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "asset", + "AssetType" + ] + } + }, + { + "id": 48, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "u32" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "asset", + "CustomAssetTypeId" + ] + } + }, + { + "id": 49, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "Derivative" + }, + { + "index": 1, + "name": "FixedIncome" + }, + { + "index": 2, + "name": "Invoice" + }, + { + "fields": [ + { + "type": 48, + "typeName": "polymesh_primitives::asset::CustomAssetTypeId" + } + ], + "index": 3, + "name": "Custom" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "asset", + "NonFungibleType" + ] + } + }, + { + "id": 50, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 27 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 27 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 51, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "ticker", + "type": 25, + "typeName": "polymesh_primitives::ticker::Ticker" + }, + { + "name": "local_id", + "type": 52, + "typeName": "pallet_corporate_actions::LocalCAId" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "pallet_corporate_actions", + "CAId" + ] + } + }, + { + "id": 52, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "u32" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "pallet_corporate_actions", + "LocalCAId" + ] + } + }, + { + "id": 53, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 54 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 54 + }, + { + "name": "E", + "type": 2 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 54, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 55 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 7 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 55 + }, + { + "name": "E", + "type": 7 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 55, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 56 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 56 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 56, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "currency", + "type": 25, + "typeName": "Ticker" + }, + { + "name": "per_share", + "type": 27, + "typeName": "Balance" + }, + { + "name": "reclaimed", + "type": 37, + "typeName": "bool" + }, + { + "name": "payment_at", + "type": 21, + "typeName": "Timestamp" + }, + { + "name": "expires_at", + "type": 57, + "typeName": "Option" + } + ] + } + }, + "path": [ + "polymesh_ink", + "DistributionSummary" + ] + } + }, + { + "id": 57, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 21 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 21 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 58, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "ticker", + "type": 25, + "typeName": "Ticker" + }, + { + "name": "decl_date", + "type": 21, + "typeName": "Timestamp" + }, + { + "name": "record_date", + "type": 21, + "typeName": "Timestamp" + }, + { + "name": "portfolio", + "type": 59, + "typeName": "Option" + }, + { + "name": "currency", + "type": 25, + "typeName": "Ticker" + }, + { + "name": "per_share", + "type": 27, + "typeName": "Balance" + }, + { + "name": "amount", + "type": 27, + "typeName": "Balance" + }, + { + "name": "payment_at", + "type": 21, + "typeName": "Timestamp" + }, + { + "name": "expires_at", + "type": 57, + "typeName": "Option" + } + ] + } + }, + "path": [ + "polymesh_ink", + "SimpleDividend" + ] + } + }, + { + "id": 59, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 20 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 20 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 60, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 61 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 61 + }, + { + "name": "E", + "type": 2 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 61, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 62 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 7 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 62 + }, + { + "name": "E", + "type": 7 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 62, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 21, + "typeName": "u64" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "settlement", + "InstructionId" + ] + } + }, + { + "id": 63, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "::alloc::vec::Vec" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "identity_id", + "PortfolioName" + ] + } + }, + { + "id": 64, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "::alloc::vec::Vec" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "asset_metadata", + "AssetMetadataName" + ] + } + }, + { + "id": 65, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 66 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 66 + }, + { + "name": "E", + "type": 2 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 66, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 67 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 7 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 67 + }, + { + "name": "E", + "type": 7 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 67, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 68 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 68 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 68, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 21, + "typeName": "u64" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "asset_metadata", + "AssetMetadataLocalKey" + ] + } + }, + { + "id": 69, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 70, + "typeName": "polymesh_primitives::asset_metadata::AssetMetadataGlobalKey" + } + ], + "index": 0, + "name": "Global" + }, + { + "fields": [ + { + "type": 68, + "typeName": "polymesh_primitives::asset_metadata::AssetMetadataLocalKey" + } + ], + "index": 1, + "name": "Local" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "asset_metadata", + "AssetMetadataKey" + ] + } + }, + { + "id": 70, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 21, + "typeName": "u64" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "asset_metadata", + "AssetMetadataGlobalKey" + ] + } + }, + { + "id": 71, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 72 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 72 + }, + { + "name": "E", + "type": 2 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 72, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 73 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 7 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 73 + }, + { + "name": "E", + "type": 7 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 73, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 74 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 74 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 74, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "::alloc::vec::Vec" + } + ] + } + }, + "path": [ + "polymesh_api", + "polymesh", + "types", + "polymesh_primitives", + "asset_metadata", + "AssetMetadataValue" + ] + } + }, + { + "id": 75, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 18, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "AccountId" + ] + } + }, + { + "id": 76, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 18, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "Hash" + ] + } + }, + { + "id": 77, + "type": { + "def": { + "variant": {} + }, + "path": [ + "polymesh_api_ink", + "extension", + "PolymeshRuntime" + ] + } + } + ], + "version": "4" +} \ No newline at end of file diff --git a/src/data/contracts/polymesh_ink_6.wasm b/src/data/contracts/polymesh_ink_6.wasm new file mode 100644 index 0000000000..6ecbaa5a0b Binary files /dev/null and b/src/data/contracts/polymesh_ink_6.wasm differ diff --git a/src/data/contracts_call_whitelist.json b/src/data/contracts_call_whitelist.json index 48562e3946..1b413ecbc2 100644 --- a/src/data/contracts_call_whitelist.json +++ b/src/data/contracts_call_whitelist.json @@ -1,9 +1,24 @@ [ - [0, 0], - [26, 0], - [26, 1], - [26, 2], - [26, 3], - [26, 17], - [47, 1] -] + [26,2], + [26,1], + [26,3], + [26,7], + [26,8], + [26,22], + [26,15], + [26,0], + [29,4], + [27, 1], + [30,8], + [47,1], + [34,4], + [34,0], + [34,10], + [34,5], + [34,3], + [37,10], + [37,0], + [37,8], + [0,0], + [0,7] +] \ No newline at end of file diff --git a/src/data/contracts_call_whitelist.txt b/src/data/contracts_call_whitelist.txt new file mode 100644 index 0000000000..baa82a36d6 --- /dev/null +++ b/src/data/contracts_call_whitelist.txt @@ -0,0 +1,24 @@ +This file is just for information. +The contracts_call_whitelist.json corresponds to the following extrinsics: +Asset.accept_asset_ownership_transfer [26,2], +Asset.accept_ticker_transfer [26,1], +Asset.create_asset [26,3], +Asset.issue [26,7], +Asset.redeem [26,8], +Asset.redeem_from_portfolio [26,22], +Asset.register_custom_asset_type [26,15], +Asset.register_ticker [26,0], +ComplianceManager.pause_asset_compliance [29,4], +CapitalDistribution.claim [27, 1], +CorporateAction.initiate_corporate_action_and_distribute [30,8], +PolymeshContracts.instantiate_with_hash_perms [47,1] +Portfolio.accept_portfolio_custody [34,4], +Portfolio.create_portfolio [34,0], +Portfolio.create_custody_portfolio [34,10], +Portfolio.move_portfolio_funds [34,5], +Portfolio.quit_portfolio_custody [34,3], +Settlement.add_and_affirm_instruction [37,10], +Settlement.create_venue [37,0], +Settlement.execute_manual_instruction [37,8], +System.remark [0,0], +System.remark_with_event [0,7] \ No newline at end of file