cycles-quartz/apps/mtcs/contracts/cw-tee-mtcs/src/msg.rs
dusterbloom 391b7bc84a
feat(dcap): make DCAP RA default (#150)
Co-authored-by: hu55a1n1 <sufialhussaini@gmail.com>
2024-09-25 23:14:06 +04:00

219 lines
60 KiB
Rust

use std::collections::BTreeMap;
use cosmwasm_schema::{cw_serde, QueryResponses};
use cosmwasm_std::{Addr, HexBinary, Uint128, Uint64};
use quartz_common::contract::{
msg::execute::attested::{RawAttested, RawAttestedMsgSansHandler, RawDefaultAttestation},
prelude::*,
};
use crate::state::{LiquiditySource, RawHash, SettleOff};
pub type AttestedMsg<M, RA> = RawAttested<RawAttestedMsgSansHandler<M>, RA>;
#[cw_serde]
pub struct InstantiateMsg<RA = RawDefaultAttestation> {
pub quartz: QuartzInstantiateMsg<RA>,
}
#[cw_serde]
#[allow(clippy::large_enum_variant)]
pub enum ExecuteMsg<RA = RawDefaultAttestation> {
Quartz(QuartzExecuteMsg<RA>),
FaucetMint(execute::FaucetMintMsg),
Transfer(execute::Cw20Transfer),
SubmitObligation(execute::SubmitObligationMsg),
SubmitObligations(execute::SubmitObligationsMsg),
SubmitSetoffs(AttestedMsg<execute::SubmitSetoffsMsg, RA>),
InitClearing {},
SetLiquiditySources(execute::SetLiquiditySourcesMsg),
}
// TODO: Added this back here because adding overdraft contract as a dependency is causing errors. Overdraft isn't correctly disabling entrypoints when acting as a dependency
#[cw_serde]
pub enum OverdraftExecuteMsg {
DrawCredit {
receiver: Addr,
amount: Uint128,
},
DrawCreditFromTender {
debtor: Addr,
amount: Uint128,
},
TransferCreditFromTender {
sender: Addr,
receiver: Addr,
amount: Uint128,
},
IncreaseBalance {
receiver: Addr,
amount: Uint128,
},
DecreaseBalance {
receiver: Addr,
amount: Uint128,
},
Lock {},
Unlock {},
AddOwner {
new: Addr,
},
}
pub mod execute {
use cosmwasm_std::Uint128;
use quartz_common::contract::{msg::execute::attested::HasUserData, state::UserData};
use sha2::{Digest, Sha256};
use super::*;
use crate::state::LiquiditySource;
#[cw_serde]
pub struct FaucetMintMsg {
pub recipient: String,
pub amount: u64,
}
#[cw_serde]
pub struct Cw20Transfer {
pub recipient: String,
pub amount: u64,
}
#[cw_serde]
pub struct SubmitObligationMsg {
pub ciphertext: HexBinary,
pub digest: HexBinary,
// pub signatures: [HexBinary; 2],
// pub proof: π
}
#[cw_serde]
pub struct SubmitObligationsMsg {
pub obligations: Vec<SubmitObligationMsg>,
pub liquidity_sources: Vec<LiquiditySource>,
}
#[cw_serde]
pub struct SubmitTenderMsg {
pub ciphertext: HexBinary,
pub digest: HexBinary,
// pub proof: π
}
#[cw_serde]
pub struct SubmitSetoffsMsg {
pub setoffs_enc: BTreeMap<RawHash, SettleOff>,
// pub proof: π,
}
impl HasUserData for SubmitSetoffsMsg {
fn user_data(&self) -> UserData {
let mut hasher = Sha256::new();
hasher.update(serde_json::to_string(&self).expect("infallible serializer"));
let digest: [u8; 32] = hasher.finalize().into();
let mut user_data = [0u8; 64];
user_data[0..32].copy_from_slice(&digest);
user_data
}
}
#[cw_serde]
pub struct SetLiquiditySourcesMsg {
pub liquidity_sources: Vec<LiquiditySource>,
}
#[cw_serde]
pub enum EscrowExecuteMsg {
ExecuteSetoff {
payer: String,
payee: String,
amount: Vec<(String, Uint128)>,
},
}
}
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(GetAllSetoffsResponse)]
GetAllSetoffs {},
#[returns(GetLiquiditySourcesResponse)]
GetLiquiditySources { epoch: Option<Uint64> }, // `None` means latest
#[returns(cw20::BalanceResponse)]
Balance { address: String },
}
// We define a custom struct for each query response
#[cw_serde]
pub struct GetAllSetoffsResponse {
pub setoffs: Vec<(HexBinary, SettleOff)>,
}
#[cw_serde]
pub struct GetLiquiditySourcesResponse {
pub liquidity_sources: Vec<LiquiditySource>,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_serde_instantiate_msg() {
let _: InstantiateMsg = serde_json::from_str(
r#"{
"quartz": {
"msg": {
"config": {
"mr_enclave": "1bfb949d235f61e5dc40f874ba3e9c36adef1e7a521b4b5f70e10fb1dc803251",
"epoch_duration": {
"secs": 43200,
"nanos": 0
},
"light_client_opts": {
"chain_id": "testing",
"trusted_height": 1,
"trusted_hash": "a1d115ba3a5e9fcc12ed68a9d8669159e9085f6f96ec26619f5c7ceb4ee02869",
"trust_threshold": [
2,
3
],
"trusting_period": 1209600,
"max_clock_drift": 5,
"max_block_lag": 5
},
"tcbinfo_contract": "wasm14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s0phg4d",
"dcap_verifier_contract": "wasm14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s0phg4d"
}
},
"attestation": {
"quote": "03000200000000000a000f00939a7233f79c4ca9940a0db3957f06077944f37bdafec57cf7d4ab6bc395e0a1000000000e0e100fffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000e700000000000000e76ee038f2c61c4edee980be5b80fa5c6ff7934ef3458c72868dbaaa569705ee0000000000000000000000000000000000000000000000000000000000000000255197a6388e504446dbf83726c2a9cb3cef9035cc3dabd6cf47d69a994f959400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c91fdf2b07731beb31190c6e492588aff1be719d725a8c685f337d85bd7fd2480000000000000000000000000000000000000000000000000000000000000000ca1000002529e2f0229c295e0cd8973cc3ad54b214ee0d0cb8efb022694b95bf767587b2fe4d049214f263c4539b36422343567401ac2931fcf4d7bbf27b8021d9dc8957bae275a28eae9b7d785811e4e967e6f5c03cd850bc8087600262e38756786ae09d931d4e77d1b928f25b3c3ff67b42da0a149b07e49fc570ddeff8a8386120880e0e100fffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000001500000000000000e70000000000000096b347a64e5a045e27369c26e6dcda51fd7c850e9b3a3a79e718f43261dee1e400000000000000000000000000000000000000000000000000000000000000008c4f5775d796503e96137f77c68a829a0056ac8ded70140b081b094490c57bff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000254f579e046f1423f1f2da170254f912bb49097a0e041f3f670793e3fd6dd63f000000000000000000000000000000000000000000000000000000000000000058d5d2a9c79533eeac51c24d3bc062c7c26c1e2ffd62e224dfe899251e5fddca4fb757d9edc0d27f50f7954eb81523f8db6054921e66ec8d187685b732d2f25b2000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f0500620e00002d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d494945386a4343424a696741774942416749554854525a7054426e4d59655063575531354542316643507561485177436759494b6f5a497a6a3045417749770a634445694d434147413155454177775a535735305a577767553064594946424453794251624746305a6d397962534244515445614d42674741315545436777520a535735305a577767513239796347397959585270623234784644415342674e564241634d43314e68626e526849454e7359584a684d51737743515944565151490a44414a445154454c4d416b474131554542684d4356564d774868634e4d6a51774e5445344d5449314e4451325768634e4d7a45774e5445344d5449314e4451320a576a42774d534977494159445651514444426c4a626e526c624342545231676755454e4c49454e6c636e52705a6d6c6a5958526c4d526f77474159445651514b0a4442464a626e526c6243424462334a7762334a6864476c76626a45554d424947413155454277774c553246756447456751327868636d4578437a414a42674e560a4241674d416b4e424d517377435159445651514745774a56557a425a4d424d4742797147534d34394167454743437147534d34394177454841304941424f64700a696252626a7639566159476a7159584a766f7670333253752f594861313541727943546735566c384762744348417a396e5952786d4e6a303372553548687a4d0a513030752b364a6d794748744b4f773866364f6a67674d4f4d494944436a416642674e5648534d4547444157674253566231334e765276683655424a796454300a4d383442567776655644427242674e56485238455a4442694d47436758714263686c706f64485277637a6f764c32467761533530636e567a6447566b633256790a646d6c6a5a584d75615735305a577775593239744c334e6e6543396a5a584a3061575a7059324630615739754c3359304c33426a61324e796244396a595431770a624746305a6d397962535a6c626d4e765a476c755a7a316b5a584977485159445652304f42425945464167706b386e6b7a4c6371776b6749376f7567574844560a574d67314d41344741315564447745422f775145417749477744414d42674e5648524d4241663845416a41414d4949434f77594a4b6f5a496876684e415130420a424949434c444343416967774867594b4b6f5a496876684e415130424151515151576f736c643645563066526f62747368385149737a434341575547436971470a534962345451454e41514977676746564d42414743797147534962345451454e415149424167454f4d42414743797147534962345451454e415149434167454f0a4d42414743797147534962345451454e41514944416745444d42414743797147534962345451454e41514945416745444d42454743797147534962345451454e0a41514946416749412f7a415242677371686b69472b4530424451454342674943415038774541594c4b6f5a496876684e4151304241676343415145774541594c0a4b6f5a496876684e4151304241676743415141774541594c4b6f5a496876684e4151304241676b43415141774541594c4b6f5a496876684e4151304241676f430a415141774541594c4b6f5a496876684e4151304241677343415141774541594c4b6f5a496876684e4151304241677743415141774541594c4b6f5a496876684e0a4151304241673043415141774541594c4b6f5a496876684e4151304241673443415141774541594c4b6f5a496876684e4151304241673843415141774541594c0a4b6f5a496876684e4151304241684143415141774541594c4b6f5a496876684e4151304241684543415130774877594c4b6f5a496876684e41513042416849450a4541344f4177502f2f7745414141414141414141414141774541594b4b6f5a496876684e4151304241775143414141774641594b4b6f5a496876684e415130420a4241514741474271414141414d41384743697147534962345451454e4151554b415145774867594b4b6f5a496876684e4151304242675151446758512b3446660a2b6c2b4853522f457161474d737a424542676f71686b69472b453042445145484d4459774541594c4b6f5a496876684e4151304242774542416638774541594c0a4b6f5a496876684e4151304242774942415141774541594c4b6f5a496876684e4151304242774d4241514177436759494b6f5a497a6a304541774944534141770a52514968414c3047436752526b30764e6c585a594e506d5738634f313632364c4353332f2f4c6d6f416638756a4457484169426d41324d56347058774f386d6d0a4171444e4c345a6843792f64657a4842796c746f307271377149664c51773d3d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d4949436c6a4343416a32674177494241674956414a567658633239472b487051456e4a3150517a7a674658433935554d416f4743437147534d343942414d430a4d476778476a415942674e5642414d4d45556c756447567349464e48574342536232393049454e424d526f77474159445651514b4442464a626e526c624342440a62334a7762334a6864476c76626a45554d424947413155454277774c553246756447456751327868636d4578437a414a42674e564241674d416b4e424d5173770a435159445651514745774a56557a4165467730784f4441314d6a45784d4455774d5442614677307a4d7a41314d6a45784d4455774d5442614d484178496a41670a42674e5642414d4d47556c756447567349464e4857434251513073675547786864475a76636d306751304578476a415942674e5642416f4d45556c75644756730a49454e76636e4276636d4630615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b474131554543417743513045780a437a414a42674e5642415954416c56544d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a304441516344516741454e53422f377432316c58534f0a3243757a7078773734654a423732457944476757357258437478327456544c7136684b6b367a2b5569525a436e71523770734f766771466553786c6d546c4a6c0a65546d693257597a33714f42757a43427544416642674e5648534d4547444157674251695a517a575770303069664f44744a5653763141624f536347724442530a42674e5648523845537a424a4d45656752614244686b466f64485277637a6f764c324e6c636e52705a6d6c6a5958526c63793530636e567a6447566b633256790a646d6c6a5a584d75615735305a577775593239744c306c756447567355306459556d397664454e424c6d526c636a416442674e5648513445466751556c5739640a7a62306234656c4153636e553944504f4156634c336c517744675944565230504151482f42415144416745474d42494741315564457745422f7751494d4159420a4166384341514177436759494b6f5a497a6a30454177494452774177524149675873566b6930772b6936565947573355462f32327561586530594a446a3155650a6e412b546a44316169356343494359623153416d4435786b66545670766f34556f79695359787244574c6d5552344349394e4b7966504e2b0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d4949436a7a4343416a53674177494241674955496d554d316c71644e496e7a6737535655723951477a6b6e42717777436759494b6f5a497a6a3045417749770a614445614d4267474131554541777752535735305a5777675530645949464a766233516751304578476a415942674e5642416f4d45556c756447567349454e760a636e4276636d4630615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b47413155454341774351304578437a414a0a42674e5642415954416c56544d423458445445344d4455794d5445774e4455784d466f58445451354d54497a4d54497a4e546b314f566f77614445614d4267470a4131554541777752535735305a5777675530645949464a766233516751304578476a415942674e5642416f4d45556c756447567349454e76636e4276636d46300a615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b47413155454341774351304578437a414a42674e56424159540a416c56544d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a3044415163445167414543366e45774d4449595a4f6a2f69505773437a61454b69370a314f694f534c52466857476a626e42564a66566e6b59347533496a6b4459594c304d784f346d717379596a6c42616c54565978465032734a424b357a6c4b4f420a757a43427544416642674e5648534d4547444157674251695a517a575770303069664f44744a5653763141624f5363477244425342674e5648523845537a424a0a4d45656752614244686b466f64485277637a6f764c324e6c636e52705a6d6c6a5958526c63793530636e567a6447566b63325679646d6c6a5a584d75615735300a5a577775593239744c306c756447567355306459556d397664454e424c6d526c636a416442674e564851344546675155496d554d316c71644e496e7a673753560a55723951477a6b6e4271777744675944565230504151482f42415144416745474d42494741315564457745422f7751494d4159424166384341514577436759490a4b6f5a497a6a3045417749445351417752674968414f572f35516b522b533943695344634e6f6f774c7550524c735747662f59693747535839344267775477670a41694541344a306c72486f4d732b586f356f2f7358364f39515778485241765a55474f6452513763767152586171493d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a00",
"collateral": "a76b726f6f745f63615f63726c590125308201213081c8020101300a06082a8648ce3d0403023068311a301806035504030c11496e74656c2053475820526f6f74204341311a3018060355040a0c11496e74656c20436f72706f726174696f6e3114301206035504070c0b53616e746120436c617261310b300906035504080c024341310b3009060355040613025553170d3233303430333130323235315a170d3234303430323130323235315aa02f302d300a0603551d140403020101301f0603551d2304183016801422650cd65a9d3489f383b49552bf501b392706ac300a06082a8648ce3d0403020348003045022051577d47d9fba157b65f1eb5f4657bbc5e56ccaf735a03f1b963d704805ab118022100939015ec1636e7eafa5f426c1e402647c673132b6850cabd68cef6bad7682a037470636b5f63726c5f6973737565725f636861696e8299029c183018820218981830188202183e18a00302010202150018d018e818aa18da187518d718f9182e1849171898183c187b14186518d018d518f21859184d18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183318331830183518321831183118301835183018311830185a1830187118311823183018210603185504030c181a1849186e18741865186c1820185318471858182018501843184b182018501872186f1863186518731873186f18721820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418bf186a18f818d3182918d8188318a018b518d91875186e184f18ee1859189e187e184c1864182618f118a018a218f3183e18fc187e18cf189f182818241837187718eb188318cd187918d5184c0418f618661018c2188918fc188818b8189c182f1837187c0d06189f1862181c141892183018930918ac1318a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e0416041418d018e818aa18da187518d718f9182e1849171898183c187b14186518d018d518f21859184d18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010018300a0608182a1886184818ce183d04030203184800183018450218210018891881183618ed185618a318b21867185918b7188e18a81880185c18ce1890186118ae18ab18e618c5189218e3182f18c618ef182f182e1820189118b11877021820184618a318ef05182218b318cd0618a00418b4182a18e618ce184018ef184a185d18a218261891182718cc18ff18d218e018f318e018d81518f718599902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a26770636b5f63726c59012f3082012b3081d1020101300a06082a8648ce3d04030230713123302106035504030c1a496e74656c205347582050434b2050726f636573736f72204341311a3018060355040a0c11496e74656c20436f72706f726174696f6e3114301206035504070c0b53616e746120436c617261310b300906035504080c024341310b3009060355040613025553170d3234303932313233343530315a170d3234313032313233343530315aa02f302d300a0603551d140403020101301f0603551d23041830168014d0e8aada75d7f92e4917983c7b1465d0d5f2594d300a06082a8648ce3d0403020349003046022100b4e36f8ada6cbf883bdf686706552eeb9bea8079a55f24d478e732ca975f569e022100d61085414d0906dfc14abb3ec6098102adda31a4a9d05f32e54434ff212d23d3707463625f6973737565725f636861696e8299028f1830188202188b1830188202183218a0030201020214187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183218351830183518321831183118301835183018311830185a1830186c1831181e1830181c0603185504030c151849186e18741865186c182018531847185818201854184318421820185318691867186e1869186e18671831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418431845181b18cc187318c918d51891187c18af1876186e186118af183f18e91880188718dd184f131825187b1826181e1885181818971879189d18d1183d18681118fb1847187118380318bb189b18ae1858187f18cc18dd18c218e3181b18e918a2188b18861896182a18cc186d18af189618da185818ee18ca189618a3188118b51830188118b21830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300e06031855181d0f010118ff040403020618c018300c06031855181d13010118ff040218300018300a0608182a1886184818ce183d0403020318470018301844021820181f184218f3031880183718f2182618c4183b1846001825187618e318a2189c18aa183618a0186418e4187418931827182d18c8181a18ec1818186218550218201823187e18d618eb1834186b06185318c60718db185d185d184618260d18a018f318ee18d718d6186918ff183718bc18261868186e188c181d1828079902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a2687463625f696e666f6c303036303661303030303030781871655f6964656e746974795f6973737565725f636861696e8299028f1830188202188b1830188202183218a0030201020214187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183218351830183518321831183118301835183018311830185a1830186c1831181e1830181c0603185504030c151849186e18741865186c182018531847185818201854184318421820185318691867186e1869186e18671831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418431845181b18cc187318c918d51891187c18af1876186e186118af183f18e91880188718dd184f131825187b1826181e1885181818971879189d18d1183d18681118fb1847187118380318bb189b18ae1858187f18cc18dd18c218e3181b18e918a2188b18861896182a18cc186d18af189618da185818ee18ca189618a3188118b51830188118b21830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300e06031855181d0f010118ff040403020618c018300c06031855181d13010118ff040218300018300a0608182a1886184818ce183d0403020318470018301844021820181f184218f3031880183718f2182618c4183b1846001825187618e318a2189c18aa183618a0186418e4187418931827182d18c8181a18ec1818186218550218201823187e18d618eb1834186b06185318c60718db185d185d184618260d18a018f318ee18d718d6186918ff183718bc18261868186e188c181d1828079902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a26b71655f6964656e746974797905647b22656e636c6176654964656e74697479223a7b226964223a225145222c2276657273696f6e223a322c22697373756544617465223a22323032332d30372d31325432303a34383a32355a222c226e657874557064617465223a22323032332d30382d31315432303a34383a32355a222c227463624576616c756174696f6e446174614e756d626572223a31352c226d69736373656c656374223a223030303030303030222c226d69736373656c6563744d61736b223a224646464646464646222c2261747472696275746573223a223131303030303030303030303030303030303030303030303030303030303030222c22617474726962757465734d61736b223a224642464646464646464646464646464630303030303030303030303030303030222c226d727369676e6572223a2238433446353737354437393635303345393631333746373743363841383239413030353641433844454437303134304230383142303934343930433537424646222c2269737670726f646964223a312c227463624c6576656c73223a5b7b22746362223a7b2269737673766e223a387d2c2274636244617465223a22323032332d30322d31355430303a30303a30305a222c22746362537461747573223a225570546f44617465227d2c7b22746362223a7b2269737673766e223a367d2c2274636244617465223a22323032312d31312d31305430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a357d2c2274636244617465223a22323032302d31312d31315430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a347d2c2274636244617465223a22323031392d31312d31335430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a327d2c2274636244617465223a22323031392d30352d31355430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030323139222c22494e54454c2d53412d3030323933222c22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a317d2c2274636244617465223a22323031382d30382d31355430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030323032222c22494e54454c2d53412d3030323139222c22494e54454c2d53412d3030323933222c22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d5d7d2c227369676e6174757265223a223935336164643639613536346238306334336164623963396462633838386461383161616438616632343063643764666437353166303230396432363261373164393234303630336135323863623736366539666333323738373232653539613433663261326534336235356337373661376234386163626538636436316133227d"
}
}
}"#,
).expect("failed to deserialize hardcoded quartz instantiate msg");
}
#[test]
fn test_serde_execute_msg() {
let _: ExecuteMsg = serde_json::from_str(
r#"{
"quartz": {
"session_create": {
"msg": {
"nonce":"9eec5e41e5a715c5a89eb182054daa1877796549a3bde865d7f2196b5f0811ca"
},
"attestation": {
"quote":"03000200000000000a000f00939a7233f79c4ca9940a0db3957f06077944f37bdafec57cf7d4ab6bc395e0a1000000000e0e100fffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000e7000000000000008821f6c6bf4c800c4852addc5b10a422d01ed714573258ac67f9e4b2478ffec90000000000000000000000000000000000000000000000000000000000000000255197a6388e504446dbf83726c2a9cb3cef9035cc3dabd6cf47d69a994f95940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056f352bac0614437a144a771ab582a979b301a5b8e5aaa80fd02f8f8de19a5da0000000000000000000000000000000000000000000000000000000000000000ca100000146a1ca7a9ddcdf55d220b8267d64915e91c3c789aefa2805248bc55472ba2faddc3108c86edb59b3c03981bc7a8a16f653eccc4ba82bf9192e88a2fa1c4c6f1bae275a28eae9b7d785811e4e967e6f5c03cd850bc8087600262e38756786ae09d931d4e77d1b928f25b3c3ff67b42da0a149b07e49fc570ddeff8a8386120880e0e100fffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000001500000000000000e70000000000000096b347a64e5a045e27369c26e6dcda51fd7c850e9b3a3a79e718f43261dee1e400000000000000000000000000000000000000000000000000000000000000008c4f5775d796503e96137f77c68a829a0056ac8ded70140b081b094490c57bff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000254f579e046f1423f1f2da170254f912bb49097a0e041f3f670793e3fd6dd63f000000000000000000000000000000000000000000000000000000000000000058d5d2a9c79533eeac51c24d3bc062c7c26c1e2ffd62e224dfe899251e5fddca4fb757d9edc0d27f50f7954eb81523f8db6054921e66ec8d187685b732d2f25b2000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f0500620e00002d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d494945386a4343424a696741774942416749554854525a7054426e4d59655063575531354542316643507561485177436759494b6f5a497a6a3045417749770a634445694d434147413155454177775a535735305a577767553064594946424453794251624746305a6d397962534244515445614d42674741315545436777520a535735305a577767513239796347397959585270623234784644415342674e564241634d43314e68626e526849454e7359584a684d51737743515944565151490a44414a445154454c4d416b474131554542684d4356564d774868634e4d6a51774e5445344d5449314e4451325768634e4d7a45774e5445344d5449314e4451320a576a42774d534977494159445651514444426c4a626e526c624342545231676755454e4c49454e6c636e52705a6d6c6a5958526c4d526f77474159445651514b0a4442464a626e526c6243424462334a7762334a6864476c76626a45554d424947413155454277774c553246756447456751327868636d4578437a414a42674e560a4241674d416b4e424d517377435159445651514745774a56557a425a4d424d4742797147534d34394167454743437147534d34394177454841304941424f64700a696252626a7639566159476a7159584a766f7670333253752f594861313541727943546735566c384762744348417a396e5952786d4e6a303372553548687a4d0a513030752b364a6d794748744b4f773866364f6a67674d4f4d494944436a416642674e5648534d4547444157674253566231334e765276683655424a796454300a4d383442567776655644427242674e56485238455a4442694d47436758714263686c706f64485277637a6f764c32467761533530636e567a6447566b633256790a646d6c6a5a584d75615735305a577775593239744c334e6e6543396a5a584a3061575a7059324630615739754c3359304c33426a61324e796244396a595431770a624746305a6d397962535a6c626d4e765a476c755a7a316b5a584977485159445652304f42425945464167706b386e6b7a4c6371776b6749376f7567574844560a574d67314d41344741315564447745422f775145417749477744414d42674e5648524d4241663845416a41414d4949434f77594a4b6f5a496876684e415130420a424949434c444343416967774867594b4b6f5a496876684e415130424151515151576f736c643645563066526f62747368385149737a434341575547436971470a534962345451454e41514977676746564d42414743797147534962345451454e415149424167454f4d42414743797147534962345451454e415149434167454f0a4d42414743797147534962345451454e41514944416745444d42414743797147534962345451454e41514945416745444d42454743797147534962345451454e0a41514946416749412f7a415242677371686b69472b4530424451454342674943415038774541594c4b6f5a496876684e4151304241676343415145774541594c0a4b6f5a496876684e4151304241676743415141774541594c4b6f5a496876684e4151304241676b43415141774541594c4b6f5a496876684e4151304241676f430a415141774541594c4b6f5a496876684e4151304241677343415141774541594c4b6f5a496876684e4151304241677743415141774541594c4b6f5a496876684e0a4151304241673043415141774541594c4b6f5a496876684e4151304241673443415141774541594c4b6f5a496876684e4151304241673843415141774541594c0a4b6f5a496876684e4151304241684143415141774541594c4b6f5a496876684e4151304241684543415130774877594c4b6f5a496876684e41513042416849450a4541344f4177502f2f7745414141414141414141414141774541594b4b6f5a496876684e4151304241775143414141774641594b4b6f5a496876684e415130420a4241514741474271414141414d41384743697147534962345451454e4151554b415145774867594b4b6f5a496876684e4151304242675151446758512b3446660a2b6c2b4853522f457161474d737a424542676f71686b69472b453042445145484d4459774541594c4b6f5a496876684e4151304242774542416638774541594c0a4b6f5a496876684e4151304242774942415141774541594c4b6f5a496876684e4151304242774d4241514177436759494b6f5a497a6a304541774944534141770a52514968414c3047436752526b30764e6c585a594e506d5738634f313632364c4353332f2f4c6d6f416638756a4457484169426d41324d56347058774f386d6d0a4171444e4c345a6843792f64657a4842796c746f307271377149664c51773d3d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d4949436c6a4343416a32674177494241674956414a567658633239472b487051456e4a3150517a7a674658433935554d416f4743437147534d343942414d430a4d476778476a415942674e5642414d4d45556c756447567349464e48574342536232393049454e424d526f77474159445651514b4442464a626e526c624342440a62334a7762334a6864476c76626a45554d424947413155454277774c553246756447456751327868636d4578437a414a42674e564241674d416b4e424d5173770a435159445651514745774a56557a4165467730784f4441314d6a45784d4455774d5442614677307a4d7a41314d6a45784d4455774d5442614d484178496a41670a42674e5642414d4d47556c756447567349464e4857434251513073675547786864475a76636d306751304578476a415942674e5642416f4d45556c75644756730a49454e76636e4276636d4630615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b474131554543417743513045780a437a414a42674e5642415954416c56544d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a304441516344516741454e53422f377432316c58534f0a3243757a7078773734654a423732457944476757357258437478327456544c7136684b6b367a2b5569525a436e71523770734f766771466553786c6d546c4a6c0a65546d693257597a33714f42757a43427544416642674e5648534d4547444157674251695a517a575770303069664f44744a5653763141624f536347724442530a42674e5648523845537a424a4d45656752614244686b466f64485277637a6f764c324e6c636e52705a6d6c6a5958526c63793530636e567a6447566b633256790a646d6c6a5a584d75615735305a577775593239744c306c756447567355306459556d397664454e424c6d526c636a416442674e5648513445466751556c5739640a7a62306234656c4153636e553944504f4156634c336c517744675944565230504151482f42415144416745474d42494741315564457745422f7751494d4159420a4166384341514177436759494b6f5a497a6a30454177494452774177524149675873566b6930772b6936565947573355462f32327561586530594a446a3155650a6e412b546a44316169356343494359623153416d4435786b66545670766f34556f79695359787244574c6d5552344349394e4b7966504e2b0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d4949436a7a4343416a53674177494241674955496d554d316c71644e496e7a6737535655723951477a6b6e42717777436759494b6f5a497a6a3045417749770a614445614d4267474131554541777752535735305a5777675530645949464a766233516751304578476a415942674e5642416f4d45556c756447567349454e760a636e4276636d4630615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b47413155454341774351304578437a414a0a42674e5642415954416c56544d423458445445344d4455794d5445774e4455784d466f58445451354d54497a4d54497a4e546b314f566f77614445614d4267470a4131554541777752535735305a5777675530645949464a766233516751304578476a415942674e5642416f4d45556c756447567349454e76636e4276636d46300a615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b47413155454341774351304578437a414a42674e56424159540a416c56544d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a3044415163445167414543366e45774d4449595a4f6a2f69505773437a61454b69370a314f694f534c52466857476a626e42564a66566e6b59347533496a6b4459594c304d784f346d717379596a6c42616c54565978465032734a424b357a6c4b4f420a757a43427544416642674e5648534d4547444157674251695a517a575770303069664f44744a5653763141624f5363477244425342674e5648523845537a424a0a4d45656752614244686b466f64485277637a6f764c324e6c636e52705a6d6c6a5958526c63793530636e567a6447566b63325679646d6c6a5a584d75615735300a5a577775593239744c306c756447567355306459556d397664454e424c6d526c636a416442674e564851344546675155496d554d316c71644e496e7a673753560a55723951477a6b6e4271777744675944565230504151482f42415144416745474d42494741315564457745422f7751494d4159424166384341514577436759490a4b6f5a497a6a3045417749445351417752674968414f572f35516b522b533943695344634e6f6f774c7550524c735747662f59693747535839344267775477670a41694541344a306c72486f4d732b586f356f2f7358364f39515778485241765a55474f6452513763767152586171493d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a00",
"collateral":"a76b726f6f745f63615f63726c590125308201213081c8020101300a06082a8648ce3d0403023068311a301806035504030c11496e74656c2053475820526f6f74204341311a3018060355040a0c11496e74656c20436f72706f726174696f6e3114301206035504070c0b53616e746120436c617261310b300906035504080c024341310b3009060355040613025553170d3233303430333130323235315a170d3234303430323130323235315aa02f302d300a0603551d140403020101301f0603551d2304183016801422650cd65a9d3489f383b49552bf501b392706ac300a06082a8648ce3d0403020348003045022051577d47d9fba157b65f1eb5f4657bbc5e56ccaf735a03f1b963d704805ab118022100939015ec1636e7eafa5f426c1e402647c673132b6850cabd68cef6bad7682a037470636b5f63726c5f6973737565725f636861696e8299029c183018820218981830188202183e18a00302010202150018d018e818aa18da187518d718f9182e1849171898183c187b14186518d018d518f21859184d18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183318331830183518321831183118301835183018311830185a1830187118311823183018210603185504030c181a1849186e18741865186c1820185318471858182018501843184b182018501872186f1863186518731873186f18721820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418bf186a18f818d3182918d8188318a018b518d91875186e184f18ee1859189e187e184c1864182618f118a018a218f3183e18fc187e18cf189f182818241837187718eb188318cd187918d5184c0418f618661018c2188918fc188818b8189c182f1837187c0d06189f1862181c141892183018930918ac1318a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e0416041418d018e818aa18da187518d718f9182e1849171898183c187b14186518d018d518f21859184d18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010018300a0608182a1886184818ce183d04030203184800183018450218210018891881183618ed185618a318b21867185918b7188e18a81880185c18ce1890186118ae18ab18e618c5189218e3182f18c618ef182f182e1820189118b11877021820184618a318ef05182218b318cd0618a00418b4182a18e618ce184018ef184a185d18a218261891182718cc18ff18d218e018f318e018d81518f718599902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a26770636b5f63726c59012f3082012b3081d1020101300a06082a8648ce3d04030230713123302106035504030c1a496e74656c205347582050434b2050726f636573736f72204341311a3018060355040a0c11496e74656c20436f72706f726174696f6e3114301206035504070c0b53616e746120436c617261310b300906035504080c024341310b3009060355040613025553170d3234303932343030343030305a170d3234313032343030343030305aa02f302d300a0603551d140403020101301f0603551d23041830168014d0e8aada75d7f92e4917983c7b1465d0d5f2594d300a06082a8648ce3d040302034900304602210093195ebc95f8d6eb2d9200c6926f1348d1c03e53fd0f66bdc349e660f091a0fe022100c8dd1c4c657ec607aa0737a498ea2cd41aac8be39b94502ee00b6d6cb2d4c155707463625f6973737565725f636861696e8299028f1830188202188b1830188202183218a0030201020214187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183218351830183518321831183118301835183018311830185a1830186c1831181e1830181c0603185504030c151849186e18741865186c182018531847185818201854184318421820185318691867186e1869186e18671831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418431845181b18cc187318c918d51891187c18af1876186e186118af183f18e91880188718dd184f131825187b1826181e1885181818971879189d18d1183d18681118fb1847187118380318bb189b18ae1858187f18cc18dd18c218e3181b18e918a2188b18861896182a18cc186d18af189618da185818ee18ca189618a3188118b51830188118b21830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300e06031855181d0f010118ff040403020618c018300c06031855181d13010118ff040218300018300a0608182a1886184818ce183d0403020318470018301844021820181f184218f3031880183718f2182618c4183b1846001825187618e318a2189c18aa183618a0186418e4187418931827182d18c8181a18ec1818186218550218201823187e18d618eb1834186b06185318c60718db185d185d184618260d18a018f318ee18d718d6186918ff183718bc18261868186e188c181d1828079902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a2687463625f696e666f6c303036303661303030303030781871655f6964656e746974795f6973737565725f636861696e8299028f1830188202188b1830188202183218a0030201020214187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183218351830183518321831183118301835183018311830185a1830186c1831181e1830181c0603185504030c151849186e18741865186c182018531847185818201854184318421820185318691867186e1869186e18671831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418431845181b18cc187318c918d51891187c18af1876186e186118af183f18e91880188718dd184f131825187b1826181e1885181818971879189d18d1183d18681118fb1847187118380318bb189b18ae1858187f18cc18dd18c218e3181b18e918a2188b18861896182a18cc186d18af189618da185818ee18ca189618a3188118b51830188118b21830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300e06031855181d0f010118ff040403020618c018300c06031855181d13010118ff040218300018300a0608182a1886184818ce183d0403020318470018301844021820181f184218f3031880183718f2182618c4183b1846001825187618e318a2189c18aa183618a0186418e4187418931827182d18c8181a18ec1818186218550218201823187e18d618eb1834186b06185318c60718db185d185d184618260d18a018f318ee18d718d6186918ff183718bc18261868186e188c181d1828079902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a26b71655f6964656e746974797905647b22656e636c6176654964656e74697479223a7b226964223a225145222c2276657273696f6e223a322c22697373756544617465223a22323032332d30372d31325432303a34383a32355a222c226e657874557064617465223a22323032332d30382d31315432303a34383a32355a222c227463624576616c756174696f6e446174614e756d626572223a31352c226d69736373656c656374223a223030303030303030222c226d69736373656c6563744d61736b223a224646464646464646222c2261747472696275746573223a223131303030303030303030303030303030303030303030303030303030303030222c22617474726962757465734d61736b223a224642464646464646464646464646464630303030303030303030303030303030222c226d727369676e6572223a2238433446353737354437393635303345393631333746373743363841383239413030353641433844454437303134304230383142303934343930433537424646222c2269737670726f646964223a312c227463624c6576656c73223a5b7b22746362223a7b2269737673766e223a387d2c2274636244617465223a22323032332d30322d31355430303a30303a30305a222c22746362537461747573223a225570546f44617465227d2c7b22746362223a7b2269737673766e223a367d2c2274636244617465223a22323032312d31312d31305430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a357d2c2274636244617465223a22323032302d31312d31315430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a347d2c2274636244617465223a22323031392d31312d31335430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a327d2c2274636244617465223a22323031392d30352d31355430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030323139222c22494e54454c2d53412d3030323933222c22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a317d2c2274636244617465223a22323031382d30382d31355430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030323032222c22494e54454c2d53412d3030323139222c22494e54454c2d53412d3030323933222c22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d5d7d2c227369676e6174757265223a223935336164643639613536346238306334336164623963396462633838386461383161616438616632343063643764666437353166303230396432363261373164393234303630336135323863623736366539666333323738373232653539613433663261326534336235356337373661376234386163626538636436316133227d"
}
}
}
}"#,
).expect("failed to deserialize hardcoded quartz msg");
}
}