Skip to content

Instantly share code, notes, and snippets.

@p-offtermatt
Created January 16, 2024 16:50
Show Gist options
  • Save p-offtermatt/735391abd7b65d6bd953ebf192504ae8 to your computer and use it in GitHub Desktop.
Save p-offtermatt/735391abd7b65d6bd953ebf192504ae8 to your computer and use it in GitHub Desktop.
Quint trace for type system weirdness
This file has been truncated, but you can view the full file.
{"stage":"running","warnings":[],"modules":[{"id":4618,"name":"Time","declarations":[{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"}},{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1}},{"id":4601,"kind":"def","name":"Minute","qualifier":"pureval","expr":{"id":4600,"kind":"app","opcode":"imul","args":[{"id":4598,"kind":"int","value":60},{"id":4599,"kind":"name","name":"Second"}]}},{"id":4605,"kind":"def","name":"Hour","qualifier":"pureval","expr":{"id":4604,"kind":"app","opcode":"imul","args":[{"id":4602,"kind":"int","value":60},{"id":4603,"kind":"name","name":"Minute"}]}},{"id":4609,"kind":"def","name":"Day","qualifier":"pureval","expr":{"id":4608,"kind":"app","opcode":"imul","args":[{"id":4606,"kind":"int","value":24},{"id":4607,"kind":"name","name":"Hour"}]}},{"id":4613,"kind":"def","name":"Week","qualifier":"pureval","expr":{"id":4612,"kind":"app","opcode":"imul","args":[{"id":4610,"kind":"int","value":7},{"id":4611,"kind":"name","name":"Day"}]}},{"id":4617,"kind":"def","name":"Year","qualifier":"pureval","expr":{"id":4616,"kind":"app","opcode":"imul","args":[{"id":4614,"kind":"int","value":365},{"id":4615,"kind":"name","name":"Day"}]}}]},{"id":5236,"name":"extraSpells","declarations":[{"id":4632,"kind":"def","name":"prepend","qualifier":"puredef","expr":{"id":4631,"kind":"lambda","params":[{"id":4619,"name":"__list"},{"id":4622,"name":"__elem"}],"qualifier":"puredef","expr":{"id":4629,"kind":"app","opcode":"concat","args":[{"id":4627,"kind":"app","opcode":"List","args":[{"id":4626,"kind":"name","name":"__elem"}]},{"id":4628,"kind":"name","name":"__list"}]}},"typeAnnotation":{"id":4630,"kind":"oper","args":[{"id":4621,"kind":"list","elem":{"id":4620,"kind":"var","name":"a"}},{"id":4623,"kind":"var","name":"a"}],"res":{"id":4625,"kind":"list","elem":{"id":4624,"kind":"var","name":"a"}}}},{"doc":"An annotation for writing preconditions.\n- @param __cond condition to check\n- @returns true if and only if __cond evaluates to true","id":4661,"kind":"def","name":"require","qualifier":"puredef","expr":{"id":4660,"kind":"lambda","params":[{"id":4655,"name":"__cond"}],"qualifier":"puredef","expr":{"id":4658,"kind":"name","name":"__cond"}},"typeAnnotation":{"id":4659,"kind":"oper","args":[{"id":4656,"kind":"bool"}],"res":{"id":4657,"kind":"bool"}}},{"doc":"A convenience operator that returns a string error code,\n if the condition does not hold true.\n\n- @param __cond condition to check\n- @param __error a non-empty error message\n- @returns \"\", when __cond holds true; otherwise __error","id":4684,"kind":"def","name":"requires","qualifier":"puredef","expr":{"id":4683,"kind":"lambda","params":[{"id":4673,"name":"__cond"},{"id":4675,"name":"__error"}],"qualifier":"puredef","expr":{"id":4681,"kind":"app","opcode":"ite","args":[{"id":4678,"kind":"name","name":"__cond"},{"id":4679,"kind":"str","value":""},{"id":4680,"kind":"name","name":"__error"}]}},"typeAnnotation":{"id":4682,"kind":"oper","args":[{"id":4674,"kind":"bool"},{"id":4676,"kind":"str"}],"res":{"id":4677,"kind":"str"}}},{"doc":"Compute the absolute value of an integer\n\n- @param __i : an integer whose absolute value we are interested in\n- @returns |__i|, the absolute value of __i","id":4715,"kind":"def","name":"abs","qualifier":"puredef","expr":{"id":4714,"kind":"lambda","params":[{"id":4703,"name":"__i"}],"qualifier":"puredef","expr":{"id":4712,"kind":"app","opcode":"ite","args":[{"id":4708,"kind":"app","opcode":"ilt","args":[{"id":4706,"kind":"name","name":"__i"},{"id":4707,"kind":"int","value":0}]},{"id":4710,"kind":"app","opcode":"iuminus","args":[{"id":4709,"kind":"name","name":"__i"}]},{"id":4711,"kind":"name","name":"__i"}]}},"typeAnnotation":{"id":4713,"kind":"oper","args":[{"id":4704,"kind":"int"}],"res":{"id":4705,"kind":"int"}}},{"doc":"Remove a set element.\n\n- @param __set a set to remove an element from\n- @param __elem an element to remove\n- @returns a new set that contains all elements of __set but __elem","id":4747,"kind":"def","name":"setRemove","qualifier":"puredef","expr":{"id":4746,"kind":"lambda","params":[{"id":4734,"name":"__set"},{"id":4737,"name":"__elem"}],"qualifier":"puredef","expr":{"id":4744,"kind":"app","opcode":"exclude","args":[{"id":4741,"kind":"name","name":"__set"},{"id":4743,"kind":"app","opcode":"Set","args":[{"id":4742,"kind":"name","name":"__elem"}]}]}},"typeAnnotation":{"id":4745,"kind":"oper","args":[{"id":4736,"kind":"set","elem":{"id":4735,"kind":"var","name":"a"}},{"id":4738,"kind":"var","name":"a"}],"res":{"id":4740,"kind":"set","elem":{"id":4739,"kind":"var","name":"a"}}}},{"doc":"Test whether a key is present in a map\n\n- @param __map a map to query\n- @param __key the key to look for\n- @returns true if and only __map has an entry associated with __key","id":4780,"kind":"def","name":"has","qualifier":"puredef","expr":{"id":4779,"kind":"lambda","params":[{"id":4767,"name":"__map"},{"id":4771,"name":"__key"}],"qualifier":"puredef","expr":{"id":4777,"kind":"app","opcode":"contains","args":[{"id":4775,"kind":"app","opcode":"keys","args":[{"id":4774,"kind":"name","name":"__map"}]},{"id":4776,"kind":"name","name":"__key"}]}},"typeAnnotation":{"id":4778,"kind":"oper","args":[{"id":4770,"kind":"fun","arg":{"id":4768,"kind":"var","name":"a"},"res":{"id":4769,"kind":"var","name":"b"}},{"id":4772,"kind":"var","name":"a"}],"res":{"id":4773,"kind":"bool"}}},{"doc":"Removes a set of map entry.\n\n- @param __map a map to remove an entry from\n- @param __keys a set of keys to remove from the map\n- @returns a new map that contains all entries of __map\n that do not have a key in __keys","id":4877,"kind":"def","name":"mapRemoveAll","qualifier":"puredef","expr":{"id":4876,"kind":"lambda","params":[{"id":4855,"name":"__map"},{"id":4859,"name":"__keys"}],"qualifier":"puredef","expr":{"id":4874,"kind":"app","opcode":"mapBy","args":[{"id":4868,"kind":"app","opcode":"exclude","args":[{"id":4866,"kind":"app","opcode":"keys","args":[{"id":4865,"kind":"name","name":"__map"}]},{"id":4867,"kind":"name","name":"__keys"}]},{"id":4873,"kind":"lambda","params":[{"id":4869,"name":"__k"}],"qualifier":"def","expr":{"id":4872,"kind":"app","opcode":"get","args":[{"id":4870,"kind":"name","name":"__map"},{"id":4871,"kind":"name","name":"__k"}]}}]}},"typeAnnotation":{"id":4875,"kind":"oper","args":[{"id":4858,"kind":"fun","arg":{"id":4856,"kind":"var","name":"a"},"res":{"id":4857,"kind":"var","name":"b"}},{"id":4861,"kind":"set","elem":{"id":4860,"kind":"var","name":"a"}}],"res":{"id":4864,"kind":"fun","arg":{"id":4862,"kind":"var","name":"a"},"res":{"id":4863,"kind":"var","name":"b"}}}},{"doc":" Returns a list of all elements of a set.\n\n - @param __set a set\n - @returns a list of all elements of __set","id":4933,"kind":"def","name":"toList","qualifier":"puredef","expr":{"id":4932,"kind":"lambda","params":[{"id":4917,"name":"__set"}],"qualifier":"puredef","expr":{"id":4930,"kind":"app","opcode":"fold","args":[{"id":4922,"kind":"name","name":"__set"},{"id":4923,"kind":"app","opcode":"List","args":[]},{"id":4929,"kind":"lambda","params":[{"id":4924,"name":"__l"},{"id":4925,"name":"__e"}],"qualifier":"def","expr":{"id":4928,"kind":"app","opcode":"append","args":[{"id":4926,"kind":"name","name":"__l"},{"id":4927,"kind":"name","name":"__e"}]}}]}},"typeAnnotation":{"id":4931,"kind":"oper","args":[{"id":4919,"kind":"set","elem":{"id":4918,"kind":"var","name":"a"}}],"res":{"id":4921,"kind":"list","elem":{"id":4920,"kind":"var","name":"a"}}}},{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"typeAnnotation":{"id":4949,"kind":"oper","args":[{"id":4936,"kind":"list","elem":{"id":4935,"kind":"var","name":"a"}}],"res":{"id":4938,"kind":"set","elem":{"id":4937,"kind":"var","name":"a"}}}},{"id":5012,"kind":"def","name":"add","qualifier":"puredef","expr":{"id":5011,"kind":"lambda","params":[{"id":4999,"name":"__set"},{"id":5002,"name":"elem"}],"qualifier":"puredef","expr":{"id":5009,"kind":"app","opcode":"union","args":[{"id":5006,"kind":"name","name":"__set"},{"id":5008,"kind":"app","opcode":"Set","args":[{"id":5007,"kind":"name","name":"elem"}]}]}},"typeAnnotation":{"id":5010,"kind":"oper","args":[{"id":5001,"kind":"set","elem":{"id":5000,"kind":"var","name":"a"}},{"id":5003,"kind":"var","name":"a"}],"res":{"id":5005,"kind":"set","elem":{"id":5004,"kind":"var","name":"a"}}}},{"doc":" Returns a new list l, where l[i] = __f(__list[i])\n\n - @param __list a list\n - @param __f a function that is applied to each element of __list\n\n - @returns a set of the elements in __list","id":5075,"kind":"def","name":"transform","qualifier":"puredef","expr":{"id":5074,"kind":"lambda","params":[{"id":5054,"name":"__list"},{"id":5057,"name":"__f"}],"qualifier":"puredef","expr":{"id":5072,"kind":"app","opcode":"foldl","args":[{"id":5063,"kind":"name","name":"__list"},{"id":5064,"kind":"app","opcode":"List","args":[]},{"id":5071,"kind":"lambda","params":[{"id":5065,"name":"__l"},{"id":5066,"name":"__e"}],"qualifier":"def","expr":{"id":5070,"kind":"app","opcode":"append","args":[{"id":5067,"kind":"name","name":"__l"},{"id":5069,"kind":"app","opcode":"__f","args":[{"id":5068,"kind":"name","name":"__e"}]}]}}]}},"typeAnnotation":{"id":5073,"kind":"oper","args":[{"id":5056,"kind":"list","elem":{"id":5055,"kind":"var","name":"a"}},{"id":5060,"kind":"oper","args":[{"id":5058,"kind":"var","name":"a"}],"res":{"id":5059,"kind":"var","name":"b"}}],"res":{"id":5062,"kind":"list","elem":{"id":5061,"kind":"var","name":"b"}}}},{"id":5202,"kind":"def","name":"listForAll","qualifier":"puredef","expr":{"id":5201,"kind":"lambda","params":[{"id":5182,"name":"__list"},{"id":5185,"name":"__f"}],"qualifier":"puredef","expr":{"id":5199,"kind":"app","opcode":"foldl","args":[{"id":5190,"kind":"name","name":"__list"},{"id":5191,"kind":"bool","value":true},{"id":5198,"kind":"lambda","params":[{"id":5192,"name":"__b"},{"id":5193,"name":"__e"}],"qualifier":"def","expr":{"id":5197,"kind":"app","opcode":"and","args":[{"id":5194,"kind":"name","name":"__b"},{"id":5196,"kind":"app","opcode":"__f","args":[{"id":5195,"kind":"name","name":"__e"}]}]}}]}},"typeAnnotation":{"id":5200,"kind":"oper","args":[{"id":5184,"kind":"list","elem":{"id":5183,"kind":"var","name":"a"}},{"id":5188,"kind":"oper","args":[{"id":5186,"kind":"var","name":"a"}],"res":{"id":5187,"kind":"bool"}}],"res":{"id":5189,"kind":"bool"}}},{"id":4654,"kind":"def","name":"prependTest","qualifier":"run","expr":{"id":4653,"kind":"app","opcode":"actionAll","args":[{"id":4645,"kind":"app","opcode":"assert","args":[{"id":4644,"kind":"app","opcode":"eq","args":[{"id":4638,"kind":"app","opcode":"prepend","args":[{"id":4636,"kind":"app","opcode":"List","args":[{"id":4633,"kind":"int","value":2},{"id":4634,"kind":"int","value":3},{"id":4635,"kind":"int","value":4}]},{"id":4637,"kind":"int","value":1}]},{"id":4643,"kind":"app","opcode":"List","args":[{"id":4639,"kind":"int","value":1},{"id":4640,"kind":"int","value":2},{"id":4641,"kind":"int","value":3},{"id":4642,"kind":"int","value":4}]}]}]},{"id":4652,"kind":"app","opcode":"assert","args":[{"id":4651,"kind":"app","opcode":"eq","args":[{"id":4648,"kind":"app","opcode":"prepend","args":[{"id":4646,"kind":"app","opcode":"List","args":[]},{"id":4647,"kind":"int","value":1}]},{"id":4650,"kind":"app","opcode":"List","args":[{"id":4649,"kind":"int","value":1}]}]}]}]}},{"id":4672,"kind":"def","name":"requireTest","qualifier":"run","expr":{"id":4671,"kind":"app","opcode":"actionAll","args":[{"id":4666,"kind":"app","opcode":"assert","args":[{"id":4665,"kind":"app","opcode":"require","args":[{"id":4664,"kind":"app","opcode":"igt","args":[{"id":4662,"kind":"int","value":4},{"id":4663,"kind":"int","value":3}]}]}]},{"id":4670,"kind":"app","opcode":"assert","args":[{"id":4669,"kind":"app","opcode":"not","args":[{"id":4668,"kind":"app","opcode":"require","args":[{"id":4667,"kind":"bool","value":false}]}]}]}]}},{"id":4702,"kind":"def","name":"requiresTest","qualifier":"run","expr":{"id":4701,"kind":"app","opcode":"actionAll","args":[{"id":4692,"kind":"app","opcode":"assert","args":[{"id":4691,"kind":"app","opcode":"eq","args":[{"id":4689,"kind":"app","opcode":"requires","args":[{"id":4687,"kind":"app","opcode":"igt","args":[{"id":4685,"kind":"int","value":4},{"id":4686,"kind":"int","value":3}]},{"id":4688,"kind":"str","value":"4 > 3"}]},{"id":4690,"kind":"str","value":""}]}]},{"id":4700,"kind":"app","opcode":"assert","args":[{"id":4699,"kind":"app","opcode":"eq","args":[{"id":4697,"kind":"app","opcode":"requires","args":[{"id":4695,"kind":"app","opcode":"ilt","args":[{"id":4693,"kind":"int","value":4},{"id":4694,"kind":"int","value":3}]},{"id":4696,"kind":"str","value":"false: 4 < 3"}]},{"id":4698,"kind":"str","value":"false: 4 < 3"}]}]}]}},{"id":4733,"kind":"def","name":"absTest","qualifier":"run","expr":{"id":4732,"kind":"app","opcode":"actionAll","args":[{"id":4720,"kind":"app","opcode":"assert","args":[{"id":4719,"kind":"app","opcode":"eq","args":[{"id":4717,"kind":"app","opcode":"abs","args":[{"id":4716,"kind":"int","value":3}]},{"id":4718,"kind":"int","value":3}]}]},{"id":4726,"kind":"app","opcode":"assert","args":[{"id":4725,"kind":"app","opcode":"eq","args":[{"id":4723,"kind":"app","opcode":"abs","args":[{"id":4722,"kind":"app","opcode":"iuminus","args":[{"id":4721,"kind":"int","value":3}]}]},{"id":4724,"kind":"int","value":3}]}]},{"id":4731,"kind":"app","opcode":"assert","args":[{"id":4730,"kind":"app","opcode":"eq","args":[{"id":4728,"kind":"app","opcode":"abs","args":[{"id":4727,"kind":"int","value":0}]},{"id":4729,"kind":"int","value":0}]}]}]}},{"id":4766,"kind":"def","name":"setRemoveTest","qualifier":"run","expr":{"id":4765,"kind":"app","opcode":"actionAll","args":[{"id":4758,"kind":"app","opcode":"assert","args":[{"id":4757,"kind":"app","opcode":"eq","args":[{"id":4750,"kind":"app","opcode":"Set","args":[{"id":4748,"kind":"int","value":2},{"id":4749,"kind":"int","value":4}]},{"id":4756,"kind":"app","opcode":"setRemove","args":[{"id":4754,"kind":"app","opcode":"Set","args":[{"id":4751,"kind":"int","value":2},{"id":4752,"kind":"int","value":3},{"id":4753,"kind":"int","value":4}]},{"id":4755,"kind":"int","value":3}]}]}]},{"id":4764,"kind":"app","opcode":"assert","args":[{"id":4763,"kind":"app","opcode":"eq","args":[{"id":4759,"kind":"app","opcode":"Set","args":[]},{"id":4762,"kind":"app","opcode":"setRemove","args":[{"id":4760,"kind":"app","opcode":"Set","args":[]},{"id":4761,"kind":"int","value":3}]}]}]}]}},{"id":4803,"kind":"def","name":"hasTest","qualifier":"run","expr":{"id":4802,"kind":"app","opcode":"actionAll","args":[{"id":4790,"kind":"app","opcode":"assert","args":[{"id":4789,"kind":"app","opcode":"has","args":[{"id":4787,"kind":"app","opcode":"Map","args":[{"id":4783,"kind":"app","opcode":"Tup","args":[{"id":4781,"kind":"int","value":2},{"id":4782,"kind":"int","value":3}]},{"id":4786,"kind":"app","opcode":"Tup","args":[{"id":4784,"kind":"int","value":4},{"id":4785,"kind":"int","value":5}]}]},{"id":4788,"kind":"int","value":2}]}]},{"id":4801,"kind":"app","opcode":"assert","args":[{"id":4800,"kind":"app","opcode":"not","args":[{"id":4799,"kind":"app","opcode":"has","args":[{"id":4797,"kind":"app","opcode":"Map","args":[{"id":4793,"kind":"app","opcode":"Tup","args":[{"id":4791,"kind":"int","value":2},{"id":4792,"kind":"int","value":3}]},{"id":4796,"kind":"app","opcode":"Tup","args":[{"id":4794,"kind":"int","value":4},{"id":4795,"kind":"int","value":5}]}]},{"id":4798,"kind":"int","value":6}]}]}]}]}},{"doc":"Remove a map entry.\n\n- @param __map a map to remove an entry from\n- @param __key the key of an entry to remove\n- @returns a new map that contains all entries of __map\n that do not have the key __key","id":4825,"kind":"def","name":"mapRemove","qualifier":"puredef","expr":{"id":4824,"kind":"lambda","params":[{"id":4804,"name":"__map"},{"id":4808,"name":"__key"}],"qualifier":"puredef","expr":{"id":4822,"kind":"app","opcode":"mapBy","args":[{"id":4816,"kind":"app","opcode":"setRemove","args":[{"id":4814,"kind":"app","opcode":"keys","args":[{"id":4813,"kind":"name","name":"__map"}]},{"id":4815,"kind":"name","name":"__key"}]},{"id":4821,"kind":"lambda","params":[{"id":4817,"name":"__k"}],"qualifier":"def","expr":{"id":4820,"kind":"app","opcode":"get","args":[{"id":4818,"kind":"name","name":"__map"},{"id":4819,"kind":"name","name":"__k"}]}}]}},"typeAnnotation":{"id":4823,"kind":"oper","args":[{"id":4807,"kind":"fun","arg":{"id":4805,"kind":"var","name":"a"},"res":{"id":4806,"kind":"var","name":"b"}},{"id":4809,"kind":"var","name":"a"}],"res":{"id":4812,"kind":"fun","arg":{"id":4810,"kind":"var","name":"a"},"res":{"id":4811,"kind":"var","name":"b"}}}},{"id":4916,"kind":"def","name":"mapRemoveAllTest","qualifier":"run","expr":{"id":4915,"kind":"let","opdef":{"id":4888,"kind":"def","name":"m","qualifier":"val","expr":{"id":4887,"kind":"app","opcode":"Map","args":[{"id":4880,"kind":"app","opcode":"Tup","args":[{"id":4878,"kind":"int","value":3},{"id":4879,"kind":"int","value":4}]},{"id":4883,"kind":"app","opcode":"Tup","args":[{"id":4881,"kind":"int","value":5},{"id":4882,"kind":"int","value":6}]},{"id":4886,"kind":"app","opcode":"Tup","args":[{"id":4884,"kind":"int","value":7},{"id":4885,"kind":"int","value":8}]}]}},"expr":{"id":4914,"kind":"app","opcode":"actionAll","args":[{"id":4899,"kind":"app","opcode":"assert","args":[{"id":4898,"kind":"app","opcode":"eq","args":[{"id":4893,"kind":"app","opcode":"mapRemoveAll","args":[{"id":4889,"kind":"name","name":"m"},{"id":4892,"kind":"app","opcode":"Set","args":[{"id":4890,"kind":"int","value":5},{"id":4891,"kind":"int","value":7}]}]},{"id":4897,"kind":"app","opcode":"Map","args":[{"id":4896,"kind":"app","opcode":"Tup","args":[{"id":4894,"kind":"int","value":3},{"id":4895,"kind":"int","value":4}]}]}]}]},{"id":4913,"kind":"app","opcode":"assert","args":[{"id":4912,"kind":"app","opcode":"eq","args":[{"id":4904,"kind":"app","opcode":"mapRemoveAll","args":[{"id":4900,"kind":"name","name":"m"},{"id":4903,"kind":"app","opcode":"Set","args":[{"id":4901,"kind":"int","value":5},{"id":4902,"kind":"int","value":99999}]}]},{"id":4911,"kind":"app","opcode":"Map","args":[{"id":4907,"kind":"app","opcode":"Tup","args":[{"id":4905,"kind":"int","value":3},{"id":4906,"kind":"int","value":4}]},{"id":4910,"kind":"app","opcode":"Tup","args":[{"id":4908,"kind":"int","value":7},{"id":4909,"kind":"int","value":8}]}]}]}]}]}}},{"id":4998,"kind":"def","name":"toListAndSetTest","qualifier":"run","expr":{"id":4997,"kind":"app","opcode":"actionAll","args":[{"id":4963,"kind":"app","opcode":"assert","args":[{"id":4962,"kind":"app","opcode":"eq","args":[{"id":4957,"kind":"app","opcode":"toSet","args":[{"id":4956,"kind":"app","opcode":"toList","args":[{"id":4955,"kind":"app","opcode":"Set","args":[{"id":4952,"kind":"int","value":3},{"id":4953,"kind":"int","value":2},{"id":4954,"kind":"int","value":1}]}]}]},{"id":4961,"kind":"app","opcode":"Set","args":[{"id":4958,"kind":"int","value":1},{"id":4959,"kind":"int","value":2},{"id":4960,"kind":"int","value":3}]}]}]},{"id":4974,"kind":"app","opcode":"assert","args":[{"id":4973,"kind":"app","opcode":"eq","args":[{"id":4968,"kind":"app","opcode":"toSet","args":[{"id":4967,"kind":"app","opcode":"List","args":[{"id":4964,"kind":"int","value":2},{"id":4965,"kind":"int","value":3},{"id":4966,"kind":"int","value":1}]}]},{"id":4972,"kind":"app","opcode":"Set","args":[{"id":4969,"kind":"int","value":1},{"id":4970,"kind":"int","value":2},{"id":4971,"kind":"int","value":3}]}]}]},{"id":4986,"kind":"app","opcode":"assert","args":[{"id":4985,"kind":"app","opcode":"eq","args":[{"id":4979,"kind":"app","opcode":"toSet","args":[{"id":4978,"kind":"app","opcode":"List","args":[{"id":4975,"kind":"int","value":2},{"id":4976,"kind":"int","value":3},{"id":4977,"kind":"int","value":1}]}]},{"id":4984,"kind":"app","opcode":"toSet","args":[{"id":4983,"kind":"app","opcode":"List","args":[{"id":4980,"kind":"int","value":3},{"id":4981,"kind":"int","value":2},{"id":4982,"kind":"int","value":1}]}]}]}]},{"id":4991,"kind":"app","opcode":"assert","args":[{"id":4990,"kind":"app","opcode":"eq","args":[{"id":4988,"kind":"app","opcode":"toList","args":[{"id":4987,"kind":"app","opcode":"Set","args":[]}]},{"id":4989,"kind":"app","opcode":"List","args":[]}]}]},{"id":4996,"kind":"app","opcode":"assert","args":[{"id":4995,"kind":"app","opcode":"eq","args":[{"id":4993,"kind":"app","opcode":"toSet","args":[{"id":4992,"kind":"app","opcode":"List","args":[]}]},{"id":4994,"kind":"app","opcode":"Set","args":[]}]}]}]}},{"id":5033,"kind":"def","name":"values","qualifier":"puredef","expr":{"id":5032,"kind":"lambda","params":[{"id":5013,"name":"__map"}],"qualifier":"puredef","expr":{"id":5030,"kind":"app","opcode":"fold","args":[{"id":5020,"kind":"app","opcode":"keys","args":[{"id":5019,"kind":"name","name":"__map"}]},{"id":5021,"kind":"app","opcode":"Set","args":[]},{"id":5029,"kind":"lambda","params":[{"id":5022,"name":"__s"},{"id":5023,"name":"__k"}],"qualifier":"def","expr":{"id":5028,"kind":"app","opcode":"add","args":[{"id":5024,"kind":"name","name":"__s"},{"id":5027,"kind":"app","opcode":"get","args":[{"id":5025,"kind":"name","name":"__map"},{"id":5026,"kind":"name","name":"__k"}]}]}}]}},"typeAnnotation":{"id":5031,"kind":"oper","args":[{"id":5016,"kind":"fun","arg":{"id":5014,"kind":"var","name":"a"},"res":{"id":5015,"kind":"var","name":"b"}}],"res":{"id":5018,"kind":"set","elem":{"id":5017,"kind":"var","name":"b"}}}},{"id":5133,"kind":"def","name":"transformTest","qualifier":"run","expr":{"id":5132,"kind":"app","opcode":"actionAll","args":[{"id":5091,"kind":"app","opcode":"assert","args":[{"id":5090,"kind":"app","opcode":"eq","args":[{"id":5085,"kind":"app","opcode":"transform","args":[{"id":5079,"kind":"app","opcode":"List","args":[{"id":5076,"kind":"int","value":1},{"id":5077,"kind":"int","value":2},{"id":5078,"kind":"int","value":3}]},{"id":5084,"kind":"lambda","params":[{"id":5080,"name":"__x"}],"qualifier":"def","expr":{"id":5083,"kind":"app","opcode":"iadd","args":[{"id":5081,"kind":"name","name":"__x"},{"id":5082,"kind":"int","value":1}]}}]},{"id":5089,"kind":"app","opcode":"List","args":[{"id":5086,"kind":"int","value":2},{"id":5087,"kind":"int","value":3},{"id":5088,"kind":"int","value":4}]}]}]},{"id":5101,"kind":"app","opcode":"assert","args":[{"id":5100,"kind":"app","opcode":"eq","args":[{"id":5098,"kind":"app","opcode":"transform","args":[{"id":5092,"kind":"app","opcode":"List","args":[]},{"id":5097,"kind":"lambda","params":[{"id":5093,"name":"__x"}],"qualifier":"def","expr":{"id":5096,"kind":"app","opcode":"iadd","args":[{"id":5094,"kind":"name","name":"__x"},{"id":5095,"kind":"int","value":1}]}}]},{"id":5099,"kind":"app","opcode":"List","args":[]}]}]},{"id":5117,"kind":"app","opcode":"assert","args":[{"id":5116,"kind":"app","opcode":"eq","args":[{"id":5111,"kind":"app","opcode":"transform","args":[{"id":5105,"kind":"app","opcode":"List","args":[{"id":5102,"kind":"int","value":1},{"id":5103,"kind":"int","value":2},{"id":5104,"kind":"int","value":3}]},{"id":5110,"kind":"lambda","params":[{"id":5106,"name":"__x"}],"qualifier":"def","expr":{"id":5109,"kind":"app","opcode":"imul","args":[{"id":5107,"kind":"name","name":"__x"},{"id":5108,"kind":"int","value":2}]}}]},{"id":5115,"kind":"app","opcode":"List","args":[{"id":5112,"kind":"int","value":2},{"id":5113,"kind":"int","value":4},{"id":5114,"kind":"int","value":6}]}]}]},{"id":5131,"kind":"app","opcode":"assert","args":[{"id":5130,"kind":"app","opcode":"eq","args":[{"id":5125,"kind":"app","opcode":"transform","args":[{"id":5121,"kind":"app","opcode":"List","args":[{"id":5118,"kind":"int","value":1},{"id":5119,"kind":"int","value":2},{"id":5120,"kind":"int","value":3}]},{"id":5124,"kind":"lambda","params":[{"id":5122,"name":"__x"}],"qualifier":"def","expr":{"id":5123,"kind":"name","name":"__x"}}]},{"id":5129,"kind":"app","opcode":"List","args":[{"id":5126,"kind":"int","value":1},{"id":5127,"kind":"int","value":2},{"id":5128,"kind":"int","value":3}]}]}]}]}},{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"typeAnnotation":{"id":5151,"kind":"oper","args":[{"id":5137,"kind":"fun","arg":{"id":5135,"kind":"var","name":"a"},"res":{"id":5136,"kind":"var","name":"b"}},{"id":5139,"kind":"var","name":"a"},{"id":5141,"kind":"var","name":"b"}],"res":{"id":5142,"kind":"var","name":"b"}}},{"id":5235,"kind":"def","name":"listForAllTest","qualifier":"run","expr":{"id":5234,"kind":"app","opcode":"actionAll","args":[{"id":5213,"kind":"app","opcode":"assert","args":[{"id":5212,"kind":"app","opcode":"listForAll","args":[{"id":5206,"kind":"app","opcode":"List","args":[{"id":5203,"kind":"int","value":1},{"id":5204,"kind":"int","value":2},{"id":5205,"kind":"int","value":3}]},{"id":5211,"kind":"lambda","params":[{"id":5207,"name":"__x"}],"qualifier":"def","expr":{"id":5210,"kind":"app","opcode":"igt","args":[{"id":5208,"kind":"name","name":"__x"},{"id":5209,"kind":"int","value":0}]}}]}]},{"id":5225,"kind":"app","opcode":"assert","args":[{"id":5224,"kind":"app","opcode":"not","args":[{"id":5223,"kind":"app","opcode":"listForAll","args":[{"id":5217,"kind":"app","opcode":"List","args":[{"id":5214,"kind":"int","value":1},{"id":5215,"kind":"int","value":2},{"id":5216,"kind":"int","value":3}]},{"id":5222,"kind":"lambda","params":[{"id":5218,"name":"__x"}],"qualifier":"def","expr":{"id":5221,"kind":"app","opcode":"igt","args":[{"id":5219,"kind":"name","name":"__x"},{"id":5220,"kind":"int","value":1}]}}]}]}]},{"id":5233,"kind":"app","opcode":"assert","args":[{"id":5232,"kind":"app","opcode":"listForAll","args":[{"id":5226,"kind":"app","opcode":"List","args":[]},{"id":5231,"kind":"lambda","params":[{"id":5227,"name":"__x"}],"qualifier":"def","expr":{"id":5230,"kind":"app","opcode":"igt","args":[{"id":5228,"kind":"name","name":"__x"},{"id":5229,"kind":"int","value":0}]}}]}]}]}},{"id":4854,"kind":"def","name":"mapRemoveTest","qualifier":"run","expr":{"id":4853,"kind":"app","opcode":"actionAll","args":[{"id":4846,"kind":"app","opcode":"assert","args":[{"id":4845,"kind":"app","opcode":"eq","args":[{"id":4832,"kind":"app","opcode":"Map","args":[{"id":4828,"kind":"app","opcode":"Tup","args":[{"id":4826,"kind":"int","value":3},{"id":4827,"kind":"int","value":4}]},{"id":4831,"kind":"app","opcode":"Tup","args":[{"id":4829,"kind":"int","value":7},{"id":4830,"kind":"int","value":8}]}]},{"id":4844,"kind":"app","opcode":"mapRemove","args":[{"id":4842,"kind":"app","opcode":"Map","args":[{"id":4835,"kind":"app","opcode":"Tup","args":[{"id":4833,"kind":"int","value":3},{"id":4834,"kind":"int","value":4}]},{"id":4838,"kind":"app","opcode":"Tup","args":[{"id":4836,"kind":"int","value":5},{"id":4837,"kind":"int","value":6}]},{"id":4841,"kind":"app","opcode":"Tup","args":[{"id":4839,"kind":"int","value":7},{"id":4840,"kind":"int","value":8}]}]},{"id":4843,"kind":"int","value":5}]}]}]},{"id":4852,"kind":"app","opcode":"assert","args":[{"id":4851,"kind":"app","opcode":"eq","args":[{"id":4847,"kind":"app","opcode":"Map","args":[]},{"id":4850,"kind":"app","opcode":"mapRemove","args":[{"id":4848,"kind":"app","opcode":"Map","args":[]},{"id":4849,"kind":"int","value":3}]}]}]}]}},{"id":5053,"kind":"def","name":"valuesTest","qualifier":"run","expr":{"id":5052,"kind":"app","opcode":"actionAll","args":[{"id":5046,"kind":"app","opcode":"assert","args":[{"id":5045,"kind":"app","opcode":"eq","args":[{"id":5041,"kind":"app","opcode":"values","args":[{"id":5040,"kind":"app","opcode":"Map","args":[{"id":5036,"kind":"app","opcode":"Tup","args":[{"id":5034,"kind":"int","value":1},{"id":5035,"kind":"int","value":2}]},{"id":5039,"kind":"app","opcode":"Tup","args":[{"id":5037,"kind":"int","value":3},{"id":5038,"kind":"int","value":4}]}]}]},{"id":5044,"kind":"app","opcode":"Set","args":[{"id":5042,"kind":"int","value":2},{"id":5043,"kind":"int","value":4}]}]}]},{"id":5051,"kind":"app","opcode":"assert","args":[{"id":5050,"kind":"app","opcode":"eq","args":[{"id":5048,"kind":"app","opcode":"values","args":[{"id":5047,"kind":"app","opcode":"Map","args":[]}]},{"id":5049,"kind":"app","opcode":"Set","args":[]}]}]}]}},{"id":5181,"kind":"def","name":"getOrElseTest","qualifier":"run","expr":{"id":5180,"kind":"app","opcode":"actionAll","args":[{"id":5166,"kind":"app","opcode":"assert","args":[{"id":5165,"kind":"app","opcode":"eq","args":[{"id":5163,"kind":"app","opcode":"getOrElse","args":[{"id":5160,"kind":"app","opcode":"Map","args":[{"id":5156,"kind":"app","opcode":"Tup","args":[{"id":5154,"kind":"int","value":2},{"id":5155,"kind":"int","value":3}]},{"id":5159,"kind":"app","opcode":"Tup","args":[{"id":5157,"kind":"int","value":4},{"id":5158,"kind":"int","value":5}]}]},{"id":5161,"kind":"int","value":2},{"id":5162,"kind":"int","value":0}]},{"id":5164,"kind":"int","value":3}]}]},{"id":5179,"kind":"app","opcode":"assert","args":[{"id":5178,"kind":"app","opcode":"eq","args":[{"id":5176,"kind":"app","opcode":"getOrElse","args":[{"id":5173,"kind":"app","opcode":"Map","args":[{"id":5169,"kind":"app","opcode":"Tup","args":[{"id":5167,"kind":"int","value":2},{"id":5168,"kind":"int","value":3}]},{"id":5172,"kind":"app","opcode":"Tup","args":[{"id":5170,"kind":"int","value":4},{"id":5171,"kind":"int","value":5}]}]},{"id":5174,"kind":"int","value":7},{"id":5175,"kind":"int","value":11}]},{"id":5177,"kind":"int","value":11}]}]}]}}]},{"id":2617,"name":"ccv_types","declarations":[{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"}},{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},{"id":2227,"kind":"typedef","name":"Power","type":{"id":2226,"kind":"int"}},{"id":2229,"kind":"typedef","name":"VscId","type":{"id":2228,"kind":"int"}},{"id":2235,"kind":"typedef","name":"Height","type":{"id":2234,"kind":"int"}},{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"}},{"id":2386,"kind":"typedef","name":"Error","type":{"id":2385,"kind":"str"}},{"id":2425,"kind":"def","name":"STOPPED","qualifier":"pureval","expr":{"id":2424,"kind":"str","value":"stopped"}},{"id":2427,"kind":"def","name":"TIMEDOUT","qualifier":"pureval","expr":{"id":2426,"kind":"str","value":"timedout"}},{"id":2429,"kind":"def","name":"RUNNING","qualifier":"pureval","expr":{"id":2428,"kind":"str","value":"running"}},{"id":2431,"kind":"def","name":"NOT_CONSUMER","qualifier":"pureval","expr":{"id":2430,"kind":"str","value":"not consumer"}},{"id":2433,"kind":"def","name":"PROVIDER_CHAIN","qualifier":"pureval","expr":{"id":2432,"kind":"str","value":"provider"}},{"id":2220,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},{"id":2221,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},{"id":2233,"kind":"typedef","name":"ValidatorSet","type":{"id":2232,"kind":"fun","arg":{"id":2230,"kind":"const","name":"Node"},"res":{"id":2231,"kind":"const","name":"Power"}}},{"id":2238,"kind":"typedef","name":"VotingPowerHistory","type":{"id":2237,"kind":"list","elem":{"id":2236,"kind":"const","name":"ValidatorSet"}}},{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},{"id":2251,"kind":"typedef","name":"VscMaturedPacket","type":{"id":2250,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2247,"kind":"const","name":"VscId"}},{"fieldName":"sendingTime","fieldType":{"id":2248,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2249,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},{"id":2257,"kind":"typedef","name":"ChainState","type":{"id":2256,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"votingPowerHistory","fieldType":{"id":2252,"kind":"const","name":"VotingPowerHistory"}},{"fieldName":"currentValidatorSet","fieldType":{"id":2253,"kind":"const","name":"ValidatorSet"}},{"fieldName":"lastTimestamp","fieldType":{"id":2254,"kind":"const","name":"Time"}},{"fieldName":"runningTimestamp","fieldType":{"id":2255,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},{"id":2616,"kind":"def","name":"revertKeyAssignment","qualifier":"puredef","expr":{"id":2615,"kind":"lambda","params":[{"id":2542,"name":"keyAssignment"},{"id":2546,"name":"valSetWithAssignment"}],"qualifier":"puredef","expr":{"id":2613,"kind":"let","opdef":{"id":2572,"kind":"def","name":"reverseAssignment","qualifier":"pureval","expr":{"id":2571,"kind":"app","opcode":"fold","args":[{"id":2558,"kind":"app","opcode":"map","args":[{"id":2550,"kind":"app","opcode":"keys","args":[{"id":2549,"kind":"name","name":"keyAssignment"}]},{"id":2557,"kind":"lambda","params":[{"id":2551,"name":"consAddr"}],"qualifier":"def","expr":{"id":2556,"kind":"app","opcode":"Tup","args":[{"id":2554,"kind":"app","opcode":"get","args":[{"id":2552,"kind":"name","name":"keyAssignment"},{"id":2553,"kind":"name","name":"consAddr"}]},{"id":2555,"kind":"name","name":"consAddr"}]}}]},{"id":2559,"kind":"app","opcode":"Map","args":[]},{"id":2570,"kind":"lambda","params":[{"id":2560,"name":"acc"},{"id":2561,"name":"pair"}],"qualifier":"def","expr":{"id":2569,"kind":"app","opcode":"put","args":[{"id":2562,"kind":"name","name":"acc"},{"id":2565,"kind":"app","opcode":"item","args":[{"id":2563,"kind":"name","name":"pair"},{"id":2564,"kind":"int","value":1}]},{"id":2568,"kind":"app","opcode":"item","args":[{"id":2566,"kind":"name","name":"pair"},{"id":2567,"kind":"int","value":2}]}]}}]}},"expr":{"id":2612,"kind":"app","opcode":"fold","args":[{"id":2599,"kind":"app","opcode":"filter","args":[{"id":2591,"kind":"app","opcode":"map","args":[{"id":2574,"kind":"app","opcode":"keys","args":[{"id":2573,"kind":"name","name":"valSetWithAssignment"}]},{"id":2590,"kind":"lambda","params":[{"id":2575,"name":"node"}],"qualifier":"def","expr":{"id":2589,"kind":"let","opdef":{"id":2579,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2578,"kind":"app","opcode":"get","args":[{"id":2576,"kind":"name","name":"valSetWithAssignment"},{"id":2577,"kind":"name","name":"node"}]}},"expr":{"id":2588,"kind":"let","opdef":{"id":2584,"kind":"def","name":"consAddr","qualifier":"pureval","expr":{"id":2583,"kind":"app","opcode":"getOrElse","args":[{"id":2580,"kind":"name","name":"reverseAssignment"},{"id":2581,"kind":"name","name":"node"},{"id":2582,"kind":"name","name":"node"}]}},"expr":{"id":2587,"kind":"app","opcode":"Tup","args":[{"id":2585,"kind":"name","name":"consAddr"},{"id":2586,"kind":"name","name":"power"}]}}}}]},{"id":2598,"kind":"lambda","params":[{"id":2592,"name":"pair"}],"qualifier":"def","expr":{"id":2597,"kind":"app","opcode":"igt","args":[{"id":2595,"kind":"app","opcode":"item","args":[{"id":2593,"kind":"name","name":"pair"},{"id":2594,"kind":"int","value":2}]},{"id":2596,"kind":"int","value":0}]}}]},{"id":2600,"kind":"app","opcode":"Map","args":[]},{"id":2611,"kind":"lambda","params":[{"id":2601,"name":"acc"},{"id":2602,"name":"pair"}],"qualifier":"def","expr":{"id":2610,"kind":"app","opcode":"put","args":[{"id":2603,"kind":"name","name":"acc"},{"id":2606,"kind":"app","opcode":"item","args":[{"id":2604,"kind":"name","name":"pair"},{"id":2605,"kind":"int","value":1}]},{"id":2609,"kind":"app","opcode":"item","args":[{"id":2607,"kind":"name","name":"pair"},{"id":2608,"kind":"int","value":2}]}]}}]}}},"typeAnnotation":{"id":2614,"kind":"oper","args":[{"id":2545,"kind":"fun","arg":{"id":2543,"kind":"const","name":"Node"},"res":{"id":2544,"kind":"const","name":"ConsumerAddr"}},{"id":2547,"kind":"const","name":"ValidatorSet"}],"res":{"id":2548,"kind":"const","name":"ValidatorSet"}}},{"id":2269,"kind":"def","name":"GetEmptyChainState","qualifier":"puredef","expr":{"id":2268,"kind":"app","opcode":"Rec","args":[{"id":2260,"kind":"str","value":"votingPowerHistory"},{"id":2259,"kind":"app","opcode":"List","args":[]},{"id":2262,"kind":"str","value":"currentValidatorSet"},{"id":2261,"kind":"app","opcode":"Map","args":[]},{"id":2265,"kind":"str","value":"lastTimestamp"},{"id":2264,"kind":"app","opcode":"iuminus","args":[{"id":2263,"kind":"int","value":1}]},{"id":2267,"kind":"str","value":"runningTimestamp"},{"id":2266,"kind":"int","value":0}]},"typeAnnotation":{"id":2258,"kind":"const","name":"ChainState"}},{"id":2320,"kind":"typedef","name":"ProviderState","type":{"id":2319,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2270,"kind":"const","name":"ChainState"}},{"fieldName":"outstandingPacketsToConsumer","fieldType":{"id":2274,"kind":"fun","arg":{"id":2271,"kind":"const","name":"Chain"},"res":{"id":2273,"kind":"list","elem":{"id":2272,"kind":"const","name":"VscPacket"}}}},{"fieldName":"receivedMaturations","fieldType":{"id":2276,"kind":"set","elem":{"id":2275,"kind":"const","name":"VscMaturedPacket"}}},{"fieldName":"sentVscPacketsToConsumer","fieldType":{"id":2280,"kind":"fun","arg":{"id":2277,"kind":"const","name":"Chain"},"res":{"id":2279,"kind":"list","elem":{"id":2278,"kind":"const","name":"VscPacket"}}}},{"fieldName":"providerValidatorSetChangedInThisBlock","fieldType":{"id":2281,"kind":"bool"}},{"fieldName":"consumerStatus","fieldType":{"id":2284,"kind":"fun","arg":{"id":2282,"kind":"const","name":"Chain"},"res":{"id":2283,"kind":"str"}}},{"fieldName":"runningVscId","fieldType":{"id":2285,"kind":"int"}},{"fieldName":"validatorConsumerPubKey","fieldType":{"id":2290,"kind":"fun","arg":{"id":2286,"kind":"const","name":"Chain"},"res":{"id":2289,"kind":"fun","arg":{"id":2287,"kind":"const","name":"Node"},"res":{"id":2288,"kind":"const","name":"ConsumerAddr"}}}},{"fieldName":"keyAssignedValSetHistory","fieldType":{"id":2293,"kind":"fun","arg":{"id":2291,"kind":"const","name":"Chain"},"res":{"id":2292,"kind":"const","name":"VotingPowerHistory"}}},{"fieldName":"validatorByConsumerAddr","fieldType":{"id":2298,"kind":"fun","arg":{"id":2294,"kind":"const","name":"Chain"},"res":{"id":2297,"kind":"fun","arg":{"id":2295,"kind":"const","name":"ConsumerAddr"},"res":{"id":2296,"kind":"const","name":"Node"}}}},{"fieldName":"keyAssignmentReplacements","fieldType":{"id":2305,"kind":"fun","arg":{"id":2299,"kind":"const","name":"Chain"},"res":{"id":2304,"kind":"fun","arg":{"id":2300,"kind":"const","name":"Node"},"res":{"id":2303,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2301,"kind":"const","name":"ConsumerAddr"}},{"fieldName":"1","fieldType":{"id":2302,"kind":"const","name":"Power"}}],"other":{"kind":"empty"}}}}}},{"fieldName":"consumerAddrsToPrune","fieldType":{"id":2311,"kind":"fun","arg":{"id":2306,"kind":"const","name":"Chain"},"res":{"id":2310,"kind":"fun","arg":{"id":2307,"kind":"const","name":"VscId"},"res":{"id":2309,"kind":"list","elem":{"id":2308,"kind":"const","name":"ConsumerAddr"}}}}},{"fieldName":"keyAssignmentsForVSCPackets","fieldType":{"id":2318,"kind":"fun","arg":{"id":2312,"kind":"const","name":"VscId"},"res":{"id":2317,"kind":"fun","arg":{"id":2313,"kind":"const","name":"Chain"},"res":{"id":2316,"kind":"fun","arg":{"id":2314,"kind":"const","name":"Node"},"res":{"id":2315,"kind":"const","name":"ConsumerAddr"}}}}}],"other":{"kind":"empty"}}}},{"id":2360,"kind":"typedef","name":"ConsumerState","type":{"id":2359,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2350,"kind":"const","name":"ChainState"}},{"fieldName":"receivedVscPackets","fieldType":{"id":2352,"kind":"list","elem":{"id":2351,"kind":"const","name":"VscPacket"}}},{"fieldName":"maturationTimes","fieldType":{"id":2356,"kind":"list","elem":{"id":2355,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2353,"kind":"const","name":"VscPacket"}},{"fieldName":"1","fieldType":{"id":2354,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}}},{"fieldName":"outstandingPacketsToProvider","fieldType":{"id":2358,"kind":"list","elem":{"id":2357,"kind":"const","name":"VscMaturedPacket"}}}],"other":{"kind":"empty"}}}},{"id":2349,"kind":"def","name":"GetEmptyProviderState","qualifier":"puredef","expr":{"id":2348,"kind":"app","opcode":"Rec","args":[{"id":2323,"kind":"str","value":"chainState"},{"id":2322,"kind":"name","name":"GetEmptyChainState"},{"id":2325,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":2324,"kind":"app","opcode":"Map","args":[]},{"id":2327,"kind":"str","value":"receivedMaturations"},{"id":2326,"kind":"app","opcode":"Set","args":[]},{"id":2329,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":2328,"kind":"app","opcode":"Map","args":[]},{"id":2331,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":2330,"kind":"bool","value":false},{"id":2333,"kind":"str","value":"consumerStatus"},{"id":2332,"kind":"app","opcode":"Map","args":[]},{"id":2335,"kind":"str","value":"runningVscId"},{"id":2334,"kind":"int","value":0},{"id":2337,"kind":"str","value":"validatorConsumerPubKey"},{"id":2336,"kind":"app","opcode":"Map","args":[]},{"id":2339,"kind":"str","value":"keyAssignedValSetHistory"},{"id":2338,"kind":"app","opcode":"Map","args":[]},{"id":2341,"kind":"str","value":"validatorByConsumerAddr"},{"id":2340,"kind":"app","opcode":"Map","args":[]},{"id":2343,"kind":"str","value":"keyAssignmentReplacements"},{"id":2342,"kind":"app","opcode":"Map","args":[]},{"id":2345,"kind":"str","value":"consumerAddrsToPrune"},{"id":2344,"kind":"app","opcode":"Map","args":[]},{"id":2347,"kind":"str","value":"keyAssignmentsForVSCPackets"},{"id":2346,"kind":"app","opcode":"Map","args":[]}]},"typeAnnotation":{"id":2321,"kind":"const","name":"ProviderState"}},{"id":2371,"kind":"def","name":"GetEmptyConsumerState","qualifier":"puredef","expr":{"id":2370,"kind":"app","opcode":"Rec","args":[{"id":2363,"kind":"str","value":"chainState"},{"id":2362,"kind":"name","name":"GetEmptyChainState"},{"id":2365,"kind":"str","value":"maturationTimes"},{"id":2364,"kind":"app","opcode":"List","args":[]},{"id":2367,"kind":"str","value":"outstandingPacketsToProvider"},{"id":2366,"kind":"app","opcode":"List","args":[]},{"id":2369,"kind":"str","value":"receivedVscPackets"},{"id":2368,"kind":"app","opcode":"List","args":[]}]},"typeAnnotation":{"id":2361,"kind":"const","name":"ConsumerState"}},{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}}},{"id":2384,"kind":"def","name":"GetEmptyProtocolState","qualifier":"puredef","expr":{"id":2383,"kind":"app","opcode":"Rec","args":[{"id":2380,"kind":"str","value":"providerState"},{"id":2379,"kind":"name","name":"GetEmptyProviderState"},{"id":2382,"kind":"str","value":"consumerStates"},{"id":2381,"kind":"app","opcode":"Map","args":[]}]},"typeAnnotation":{"id":2378,"kind":"const","name":"ProtocolState"}},{"id":2390,"kind":"typedef","name":"Result","type":{"id":2389,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"newState","fieldType":{"id":2387,"kind":"const","name":"ProtocolState"}},{"fieldName":"error","fieldType":{"id":2388,"kind":"const","name":"Error"}}],"other":{"kind":"empty"}}}},{"id":2401,"kind":"def","name":"Ok","qualifier":"puredef","expr":{"id":2400,"kind":"lambda","params":[{"id":2391,"name":"newState"}],"qualifier":"puredef","expr":{"id":2398,"kind":"app","opcode":"Rec","args":[{"id":2395,"kind":"str","value":"newState"},{"id":2394,"kind":"name","name":"newState"},{"id":2397,"kind":"str","value":"error"},{"id":2396,"kind":"str","value":""}]}},"typeAnnotation":{"id":2399,"kind":"oper","args":[{"id":2392,"kind":"const","name":"ProtocolState"}],"res":{"id":2393,"kind":"const","name":"Result"}}},{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"typeAnnotation":{"id":2410,"kind":"oper","args":[{"id":2403,"kind":"str"}],"res":{"id":2404,"kind":"const","name":"Result"}}},{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"typeAnnotation":{"id":2421,"kind":"oper","args":[{"id":2414,"kind":"const","name":"Result"}],"res":{"id":2415,"kind":"bool"}}},{"id":2541,"kind":"def","name":"applyKeyAssignmentToValSet","qualifier":"puredef","expr":{"id":2540,"kind":"lambda","params":[{"id":2434,"name":"providerState"},{"id":2436,"name":"consumer"},{"id":2438,"name":"valSet"}],"qualifier":"puredef","expr":{"id":2538,"kind":"let","opdef":{"id":2519,"kind":"def","name":"newValSet","qualifier":"pureval","expr":{"id":2518,"kind":"app","opcode":"map","args":[{"id":2442,"kind":"app","opcode":"keys","args":[{"id":2441,"kind":"name","name":"valSet"}]},{"id":2517,"kind":"lambda","params":[{"id":2443,"name":"node"}],"qualifier":"def","expr":{"id":2516,"kind":"let","opdef":{"id":2447,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2446,"kind":"app","opcode":"get","args":[{"id":2444,"kind":"name","name":"valSet"},{"id":2445,"kind":"name","name":"node"}]}},"expr":{"id":2515,"kind":"let","opdef":{"id":2454,"kind":"def","name":"keyAssignmentReplacements","qualifier":"pureval","expr":{"id":2453,"kind":"app","opcode":"getOrElse","args":[{"id":2450,"kind":"app","opcode":"field","args":[{"id":2448,"kind":"name","name":"providerState"},{"id":2449,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":2451,"kind":"name","name":"consumer"},{"id":2452,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":2514,"kind":"app","opcode":"ite","args":[{"id":2458,"kind":"app","opcode":"contains","args":[{"id":2456,"kind":"app","opcode":"keys","args":[{"id":2455,"kind":"name","name":"keyAssignmentReplacements"}]},{"id":2457,"kind":"name","name":"node"}]},{"id":2487,"kind":"let","opdef":{"id":2462,"kind":"def","name":"replacement","qualifier":"pureval","expr":{"id":2461,"kind":"app","opcode":"get","args":[{"id":2459,"kind":"name","name":"keyAssignmentReplacements"},{"id":2460,"kind":"name","name":"node"}]}},"expr":{"id":2486,"kind":"let","opdef":{"id":2466,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":2465,"kind":"app","opcode":"item","args":[{"id":2463,"kind":"name","name":"replacement"},{"id":2464,"kind":"int","value":1}]}},"expr":{"id":2485,"kind":"let","opdef":{"id":2470,"kind":"def","name":"oldToZero","qualifier":"pureval","expr":{"id":2469,"kind":"app","opcode":"Tup","args":[{"id":2467,"kind":"name","name":"oldConsAddr"},{"id":2468,"kind":"int","value":0}]}},"expr":{"id":2484,"kind":"let","opdef":{"id":2480,"kind":"def","name":"newToPower","qualifier":"pureval","expr":{"id":2479,"kind":"app","opcode":"Tup","args":[{"id":2477,"kind":"app","opcode":"get","args":[{"id":2475,"kind":"app","opcode":"get","args":[{"id":2473,"kind":"app","opcode":"field","args":[{"id":2471,"kind":"name","name":"providerState"},{"id":2472,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2474,"kind":"name","name":"consumer"}]},{"id":2476,"kind":"name","name":"node"}]},{"id":2478,"kind":"name","name":"power"}]}},"expr":{"id":2483,"kind":"app","opcode":"Set","args":[{"id":2481,"kind":"name","name":"oldToZero"},{"id":2482,"kind":"name","name":"newToPower"}]}}}}},{"id":2513,"kind":"let","opdef":{"id":2494,"kind":"def","name":"validatorConsumerPubKey","qualifier":"pureval","expr":{"id":2493,"kind":"app","opcode":"getOrElse","args":[{"id":2490,"kind":"app","opcode":"field","args":[{"id":2488,"kind":"name","name":"providerState"},{"id":2489,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2491,"kind":"name","name":"consumer"},{"id":2492,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":2512,"kind":"app","opcode":"ite","args":[{"id":2498,"kind":"app","opcode":"contains","args":[{"id":2496,"kind":"app","opcode":"keys","args":[{"id":2495,"kind":"name","name":"validatorConsumerPubKey"}]},{"id":2497,"kind":"name","name":"node"}]},{"id":2507,"kind":"let","opdef":{"id":2502,"kind":"def","name":"consAddr","qualifier":"pureval","expr":{"id":2501,"kind":"app","opcode":"get","args":[{"id":2499,"kind":"name","name":"validatorConsumerPubKey"},{"id":2500,"kind":"name","name":"node"}]}},"expr":{"id":2506,"kind":"app","opcode":"Set","args":[{"id":2505,"kind":"app","opcode":"Tup","args":[{"id":2503,"kind":"name","name":"consAddr"},{"id":2504,"kind":"name","name":"power"}]}]}},{"id":2511,"kind":"app","opcode":"Set","args":[{"id":2510,"kind":"app","opcode":"Tup","args":[{"id":2508,"kind":"name","name":"node"},{"id":2509,"kind":"name","name":"power"}]}]}]}}]}}}}]}},"expr":{"id":2537,"kind":"let","opdef":{"id":2522,"kind":"def","name":"flattened","qualifier":"pureval","expr":{"id":2521,"kind":"app","opcode":"flatten","args":[{"id":2520,"kind":"name","name":"newValSet"}]}},"expr":{"id":2536,"kind":"app","opcode":"fold","args":[{"id":2523,"kind":"name","name":"flattened"},{"id":2524,"kind":"app","opcode":"Map","args":[]},{"id":2535,"kind":"lambda","params":[{"id":2525,"name":"acc"},{"id":2526,"name":"pair"}],"qualifier":"def","expr":{"id":2534,"kind":"app","opcode":"put","args":[{"id":2527,"kind":"name","name":"acc"},{"id":2530,"kind":"app","opcode":"item","args":[{"id":2528,"kind":"name","name":"pair"},{"id":2529,"kind":"int","value":1}]},{"id":2533,"kind":"app","opcode":"item","args":[{"id":2531,"kind":"name","name":"pair"},{"id":2532,"kind":"int","value":2}]}]}}]}}}},"typeAnnotation":{"id":2539,"kind":"oper","args":[{"id":2435,"kind":"const","name":"ProviderState"},{"id":2437,"kind":"const","name":"Chain"},{"id":2439,"kind":"const","name":"ValidatorSet"}],"res":{"id":2440,"kind":"const","name":"ValidatorSet"}}}]},{"id":4593,"name":"ccv","declarations":[{"kind":"const","name":"VscTimeout","typeAnnotation":{"id":2628,"kind":"int"},"id":2629},{"id":2618,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},{"id":4549,"kind":"def","name":"VscTimeoutPositiveTest","qualifier":"run","expr":{"id":4548,"kind":"app","opcode":"igt","args":[{"id":4546,"kind":"name","name":"VscTimeout"},{"id":4547,"kind":"int","value":0}]}},{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":2623},{"kind":"const","name":"UnbondingPeriodPerChain","typeAnnotation":{"id":2626,"kind":"fun","arg":{"id":2624,"kind":"const","name":"Chain"},"res":{"id":2625,"kind":"int"}},"id":2627},{"kind":"const","name":"CcvTimeout","typeAnnotation":{"id":2632,"kind":"fun","arg":{"id":2630,"kind":"const","name":"Chain"},"res":{"id":2631,"kind":"int"}},"id":2633},{"kind":"const","name":"TrustingPeriodPerChain","typeAnnotation":{"id":2636,"kind":"fun","arg":{"id":2634,"kind":"const","name":"Chain"},"res":{"id":2635,"kind":"int"}},"id":2637},{"id":3884,"kind":"def","name":"enterCurValSetIntoBlock","qualifier":"puredef","expr":{"id":3883,"kind":"lambda","params":[{"id":3869,"name":"chainState"}],"qualifier":"puredef","expr":{"id":3881,"kind":"app","opcode":"with","args":[{"id":3872,"kind":"name","name":"chainState"},{"id":3873,"kind":"str","value":"votingPowerHistory"},{"id":3880,"kind":"app","opcode":"prepend","args":[{"id":3876,"kind":"app","opcode":"field","args":[{"id":3874,"kind":"name","name":"chainState"},{"id":3875,"kind":"str","value":"votingPowerHistory"}]},{"id":3879,"kind":"app","opcode":"field","args":[{"id":3877,"kind":"name","name":"chainState"},{"id":3878,"kind":"str","value":"currentValidatorSet"}]}]}]}},"typeAnnotation":{"id":3882,"kind":"oper","args":[{"id":3870,"kind":"const","name":"ChainState"}],"res":{"id":3871,"kind":"const","name":"ChainState"}}},{"id":3905,"kind":"def","name":"advanceTime","qualifier":"puredef","expr":{"id":3904,"kind":"lambda","params":[{"id":3885,"name":"chainState"},{"id":3887,"name":"timeAdvancement"}],"qualifier":"puredef","expr":{"id":3902,"kind":"app","opcode":"with","args":[{"id":3901,"kind":"app","opcode":"with","args":[{"id":3890,"kind":"name","name":"chainState"},{"id":3894,"kind":"str","value":"lastTimestamp"},{"id":3893,"kind":"app","opcode":"field","args":[{"id":3891,"kind":"name","name":"chainState"},{"id":3892,"kind":"str","value":"runningTimestamp"}]}]},{"id":3900,"kind":"str","value":"runningTimestamp"},{"id":3899,"kind":"app","opcode":"iadd","args":[{"id":3897,"kind":"app","opcode":"field","args":[{"id":3895,"kind":"name","name":"chainState"},{"id":3896,"kind":"str","value":"runningTimestamp"}]},{"id":3898,"kind":"name","name":"timeAdvancement"}]}]}},"typeAnnotation":{"id":3903,"kind":"oper","args":[{"id":3886,"kind":"const","name":"ChainState"},{"id":3888,"kind":"const","name":"Time"}],"res":{"id":3889,"kind":"const","name":"ChainState"}}},{"id":4404,"kind":"def","name":"setProviderValidatorSet","qualifier":"puredef","expr":{"id":4403,"kind":"lambda","params":[{"id":4378,"name":"currentState"},{"id":4380,"name":"newValidatorSet"}],"qualifier":"puredef","expr":{"id":4401,"kind":"let","opdef":{"id":4391,"kind":"def","name":"newChainState","qualifier":"pureval","expr":{"id":4390,"kind":"app","opcode":"with","args":[{"id":4387,"kind":"app","opcode":"field","args":[{"id":4385,"kind":"app","opcode":"field","args":[{"id":4383,"kind":"name","name":"currentState"},{"id":4384,"kind":"str","value":"providerState"}]},{"id":4386,"kind":"str","value":"chainState"}]},{"id":4388,"kind":"str","value":"currentValidatorSet"},{"id":4389,"kind":"name","name":"newValidatorSet"}]}},"expr":{"id":4400,"kind":"app","opcode":"with","args":[{"id":4392,"kind":"name","name":"currentState"},{"id":4393,"kind":"str","value":"providerState"},{"id":4399,"kind":"app","opcode":"with","args":[{"id":4396,"kind":"app","opcode":"field","args":[{"id":4394,"kind":"name","name":"currentState"},{"id":4395,"kind":"str","value":"providerState"}]},{"id":4397,"kind":"str","value":"chainState"},{"id":4398,"kind":"name","name":"newChainState"}]}]}}},"typeAnnotation":{"id":4402,"kind":"oper","args":[{"id":4379,"kind":"const","name":"ProtocolState"},{"id":4381,"kind":"const","name":"ValidatorSet"}],"res":{"id":4382,"kind":"const","name":"ProtocolState"}}},{"id":4422,"kind":"def","name":"isRunningConsumer","qualifier":"puredef","expr":{"id":4421,"kind":"lambda","params":[{"id":4405,"name":"chain"},{"id":4407,"name":"providerState"}],"qualifier":"puredef","expr":{"id":4419,"kind":"let","opdef":{"id":4415,"kind":"def","name":"status","qualifier":"val","expr":{"id":4414,"kind":"app","opcode":"get","args":[{"id":4412,"kind":"app","opcode":"field","args":[{"id":4410,"kind":"name","name":"providerState"},{"id":4411,"kind":"str","value":"consumerStatus"}]},{"id":4413,"kind":"name","name":"chain"}]}},"expr":{"id":4418,"kind":"app","opcode":"eq","args":[{"id":4416,"kind":"name","name":"status"},{"id":4417,"kind":"name","name":"RUNNING"}]}}},"typeAnnotation":{"id":4420,"kind":"oper","args":[{"id":4406,"kind":"const","name":"Chain"},{"id":4408,"kind":"const","name":"ProviderState"}],"res":{"id":4409,"kind":"bool"}}},{"id":4443,"kind":"def","name":"getRunningConsumers","qualifier":"puredef","expr":{"id":4442,"kind":"lambda","params":[{"id":4423,"name":"providerState"}],"qualifier":"puredef","expr":{"id":4440,"kind":"app","opcode":"filter","args":[{"id":4430,"kind":"app","opcode":"keys","args":[{"id":4429,"kind":"app","opcode":"field","args":[{"id":4427,"kind":"name","name":"providerState"},{"id":4428,"kind":"str","value":"consumerStatus"}]}]},{"id":4439,"kind":"lambda","params":[{"id":4431,"name":"chain"}],"qualifier":"def","expr":{"id":4438,"kind":"app","opcode":"eq","args":[{"id":4436,"kind":"app","opcode":"get","args":[{"id":4434,"kind":"app","opcode":"field","args":[{"id":4432,"kind":"name","name":"providerState"},{"id":4433,"kind":"str","value":"consumerStatus"}]},{"id":4435,"kind":"name","name":"chain"}]},{"id":4437,"kind":"name","name":"RUNNING"}]}}]}},"typeAnnotation":{"id":4441,"kind":"oper","args":[{"id":4424,"kind":"const","name":"ProviderState"}],"res":{"id":4426,"kind":"set","elem":{"id":4425,"kind":"const","name":"Chain"}}}},{"id":4464,"kind":"def","name":"getNonConsumers","qualifier":"puredef","expr":{"id":4463,"kind":"lambda","params":[{"id":4444,"name":"providerState"}],"qualifier":"puredef","expr":{"id":4461,"kind":"app","opcode":"filter","args":[{"id":4451,"kind":"app","opcode":"keys","args":[{"id":4450,"kind":"app","opcode":"field","args":[{"id":4448,"kind":"name","name":"providerState"},{"id":4449,"kind":"str","value":"consumerStatus"}]}]},{"id":4460,"kind":"lambda","params":[{"id":4452,"name":"chain"}],"qualifier":"def","expr":{"id":4459,"kind":"app","opcode":"eq","args":[{"id":4457,"kind":"app","opcode":"get","args":[{"id":4455,"kind":"app","opcode":"field","args":[{"id":4453,"kind":"name","name":"providerState"},{"id":4454,"kind":"str","value":"consumerStatus"}]},{"id":4456,"kind":"name","name":"chain"}]},{"id":4458,"kind":"name","name":"NOT_CONSUMER"}]}}]}},"typeAnnotation":{"id":4462,"kind":"oper","args":[{"id":4445,"kind":"const","name":"ProviderState"}],"res":{"id":4447,"kind":"set","elem":{"id":4446,"kind":"const","name":"Chain"}}}},{"id":3737,"kind":"def","name":"stopConsumers","qualifier":"puredef","expr":{"id":3736,"kind":"lambda","params":[{"id":3675,"name":"currentConsumerStatusMap"},{"id":3679,"name":"consumersToStop"},{"id":3682,"name":"consumersToTimeout"}],"qualifier":"puredef","expr":{"id":3734,"kind":"let","opdef":{"id":3700,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":3699,"kind":"app","opcode":"filter","args":[{"id":3691,"kind":"app","opcode":"keys","args":[{"id":3690,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3698,"kind":"lambda","params":[{"id":3692,"name":"chain"}],"qualifier":"def","expr":{"id":3697,"kind":"app","opcode":"eq","args":[{"id":3695,"kind":"app","opcode":"get","args":[{"id":3693,"kind":"name","name":"currentConsumerStatusMap"},{"id":3694,"kind":"name","name":"chain"}]},{"id":3696,"kind":"name","name":"RUNNING"}]}}]}},"expr":{"id":3733,"kind":"app","opcode":"ite","args":[{"id":3706,"kind":"app","opcode":"igt","args":[{"id":3704,"kind":"app","opcode":"size","args":[{"id":3703,"kind":"app","opcode":"exclude","args":[{"id":3701,"kind":"name","name":"consumersToStop"},{"id":3702,"kind":"name","name":"runningConsumers"}]}]},{"id":3705,"kind":"int","value":0}]},{"id":3709,"kind":"app","opcode":"Tup","args":[{"id":3707,"kind":"name","name":"currentConsumerStatusMap"},{"id":3708,"kind":"str","value":"Cannot stop a consumer that is not running"}]},{"id":3732,"kind":"let","opdef":{"id":3728,"kind":"def","name":"newConsumerStatusMap","qualifier":"val","expr":{"id":3727,"kind":"app","opcode":"mapBy","args":[{"id":3711,"kind":"app","opcode":"keys","args":[{"id":3710,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3726,"kind":"lambda","params":[{"id":3712,"name":"chain"}],"qualifier":"def","expr":{"id":3725,"kind":"app","opcode":"ite","args":[{"id":3715,"kind":"app","opcode":"contains","args":[{"id":3713,"kind":"name","name":"consumersToTimeout"},{"id":3714,"kind":"name","name":"chain"}]},{"id":3716,"kind":"name","name":"TIMEDOUT"},{"id":3724,"kind":"app","opcode":"ite","args":[{"id":3719,"kind":"app","opcode":"contains","args":[{"id":3717,"kind":"name","name":"consumersToStop"},{"id":3718,"kind":"name","name":"chain"}]},{"id":3720,"kind":"name","name":"STOPPED"},{"id":3723,"kind":"app","opcode":"get","args":[{"id":3721,"kind":"name","name":"currentConsumerStatusMap"},{"id":3722,"kind":"name","name":"chain"}]}]}]}}]}},"expr":{"id":3731,"kind":"app","opcode":"Tup","args":[{"id":3729,"kind":"name","name":"newConsumerStatusMap"},{"id":3730,"kind":"str","value":""}]}}]}}},"typeAnnotation":{"id":3735,"kind":"oper","args":[{"id":3678,"kind":"fun","arg":{"id":3676,"kind":"const","name":"Chain"},"res":{"id":3677,"kind":"str"}},{"id":3681,"kind":"set","elem":{"id":3680,"kind":"const","name":"Chain"}},{"id":3684,"kind":"set","elem":{"id":3683,"kind":"const","name":"Chain"}}],"res":{"id":3689,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":3687,"kind":"fun","arg":{"id":3685,"kind":"const","name":"Chain"},"res":{"id":3686,"kind":"str"}}},{"fieldName":"1","fieldType":{"id":3688,"kind":"str"}}],"other":{"kind":"empty"}}}}},{"id":3792,"kind":"def","name":"startConsumers","qualifier":"puredef","expr":{"id":3791,"kind":"lambda","params":[{"id":3738,"name":"currentConsumerStatusMap"},{"id":3742,"name":"consumersToStart"}],"qualifier":"puredef","expr":{"id":3789,"kind":"let","opdef":{"id":3760,"kind":"def","name":"nonConsumers","qualifier":"val","expr":{"id":3759,"kind":"app","opcode":"filter","args":[{"id":3751,"kind":"app","opcode":"keys","args":[{"id":3750,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3758,"kind":"lambda","params":[{"id":3752,"name":"chain"}],"qualifier":"def","expr":{"id":3757,"kind":"app","opcode":"eq","args":[{"id":3755,"kind":"app","opcode":"get","args":[{"id":3753,"kind":"name","name":"currentConsumerStatusMap"},{"id":3754,"kind":"name","name":"chain"}]},{"id":3756,"kind":"name","name":"NOT_CONSUMER"}]}}]}},"expr":{"id":3788,"kind":"app","opcode":"ite","args":[{"id":3766,"kind":"app","opcode":"igt","args":[{"id":3764,"kind":"app","opcode":"size","args":[{"id":3763,"kind":"app","opcode":"exclude","args":[{"id":3761,"kind":"name","name":"consumersToStart"},{"id":3762,"kind":"name","name":"nonConsumers"}]}]},{"id":3765,"kind":"int","value":0}]},{"id":3769,"kind":"app","opcode":"Tup","args":[{"id":3767,"kind":"name","name":"currentConsumerStatusMap"},{"id":3768,"kind":"str","value":"cannot start a consumer that is stopped or already a consumer"}]},{"id":3787,"kind":"let","opdef":{"id":3783,"kind":"def","name":"newConsumerStatusMap","qualifier":"val","expr":{"id":3782,"kind":"app","opcode":"mapBy","args":[{"id":3771,"kind":"app","opcode":"keys","args":[{"id":3770,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3781,"kind":"lambda","params":[{"id":3772,"name":"chain"}],"qualifier":"def","expr":{"id":3780,"kind":"app","opcode":"ite","args":[{"id":3775,"kind":"app","opcode":"contains","args":[{"id":3773,"kind":"name","name":"consumersToStart"},{"id":3774,"kind":"name","name":"chain"}]},{"id":3776,"kind":"name","name":"RUNNING"},{"id":3779,"kind":"app","opcode":"get","args":[{"id":3777,"kind":"name","name":"currentConsumerStatusMap"},{"id":3778,"kind":"name","name":"chain"}]}]}}]}},"expr":{"id":3786,"kind":"app","opcode":"Tup","args":[{"id":3784,"kind":"name","name":"newConsumerStatusMap"},{"id":3785,"kind":"str","value":""}]}}]}}},"typeAnnotation":{"id":3790,"kind":"oper","args":[{"id":3741,"kind":"fun","arg":{"id":3739,"kind":"const","name":"Chain"},"res":{"id":3740,"kind":"str"}},{"id":3744,"kind":"set","elem":{"id":3743,"kind":"const","name":"Chain"}}],"res":{"id":3749,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":3747,"kind":"fun","arg":{"id":3745,"kind":"const","name":"Chain"},"res":{"id":3746,"kind":"str"}}},{"fieldName":"1","fieldType":{"id":3748,"kind":"str"}}],"other":{"kind":"empty"}}}}},{"id":3917,"kind":"def","name":"endAndBeginBlockShared","qualifier":"puredef","expr":{"id":3916,"kind":"lambda","params":[{"id":3906,"name":"chainState"},{"id":3908,"name":"timeAdvancement"}],"qualifier":"puredef","expr":{"id":3914,"kind":"app","opcode":"advanceTime","args":[{"id":3912,"kind":"app","opcode":"enterCurValSetIntoBlock","args":[{"id":3911,"kind":"name","name":"chainState"}]},{"id":3913,"kind":"name","name":"timeAdvancement"}]}},"typeAnnotation":{"id":3915,"kind":"oper","args":[{"id":3907,"kind":"const","name":"ChainState"},{"id":3909,"kind":"const","name":"Time"}],"res":{"id":3910,"kind":"const","name":"ChainState"}}},{"id":4545,"kind":"def","name":"UnbondingPeriodPositiveTest","qualifier":"run","expr":{"id":4544,"kind":"app","opcode":"forall","args":[{"id":4536,"kind":"app","opcode":"keys","args":[{"id":4535,"kind":"name","name":"UnbondingPeriodPerChain"}]},{"id":4543,"kind":"lambda","params":[{"id":4537,"name":"chain"}],"qualifier":"def","expr":{"id":4542,"kind":"app","opcode":"igt","args":[{"id":4540,"kind":"app","opcode":"get","args":[{"id":4538,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":4539,"kind":"name","name":"chain"}]},{"id":4541,"kind":"int","value":0}]}}]}},{"id":4560,"kind":"def","name":"CcvTimeoutPositiveTest","qualifier":"run","expr":{"id":4559,"kind":"app","opcode":"forall","args":[{"id":4551,"kind":"app","opcode":"keys","args":[{"id":4550,"kind":"name","name":"CcvTimeout"}]},{"id":4558,"kind":"lambda","params":[{"id":4552,"name":"chain"}],"qualifier":"def","expr":{"id":4557,"kind":"app","opcode":"igt","args":[{"id":4555,"kind":"app","opcode":"get","args":[{"id":4553,"kind":"name","name":"CcvTimeout"},{"id":4554,"kind":"name","name":"chain"}]},{"id":4556,"kind":"int","value":0}]}}]}},{"id":4571,"kind":"def","name":"CcvTimeoutLargerThanUnbondingPeriodTest","qualifier":"run","expr":{"id":4570,"kind":"app","opcode":"forall","args":[{"id":4562,"kind":"app","opcode":"values","args":[{"id":4561,"kind":"name","name":"UnbondingPeriodPerChain"}]},{"id":4569,"kind":"lambda","params":[{"id":4563,"name":"value"}],"qualifier":"def","expr":{"id":4568,"kind":"app","opcode":"igt","args":[{"id":4566,"kind":"app","opcode":"get","args":[{"id":4564,"kind":"name","name":"CcvTimeout"},{"id":4565,"kind":"name","name":"PROVIDER_CHAIN"}]},{"id":4567,"kind":"name","name":"value"}]}}]}},{"id":4576,"kind":"def","name":"ProviderIsNotAConsumerTest","qualifier":"run","expr":{"id":4575,"kind":"app","opcode":"not","args":[{"id":4574,"kind":"app","opcode":"contains","args":[{"id":4572,"kind":"name","name":"ConsumerChains"},{"id":4573,"kind":"name","name":"PROVIDER_CHAIN"}]}]}},{"id":4584,"kind":"def","name":"CcvTimeoutKeysTest","qualifier":"run","expr":{"id":4583,"kind":"app","opcode":"eq","args":[{"id":4578,"kind":"app","opcode":"keys","args":[{"id":4577,"kind":"name","name":"CcvTimeout"}]},{"id":4582,"kind":"app","opcode":"union","args":[{"id":4579,"kind":"name","name":"ConsumerChains"},{"id":4581,"kind":"app","opcode":"Set","args":[{"id":4580,"kind":"name","name":"PROVIDER_CHAIN"}]}]}]}},{"id":4592,"kind":"def","name":"UnbondingPeriodKeysTest","qualifier":"run","expr":{"id":4591,"kind":"app","opcode":"eq","args":[{"id":4586,"kind":"app","opcode":"keys","args":[{"id":4585,"kind":"name","name":"UnbondingPeriodPerChain"}]},{"id":4590,"kind":"app","opcode":"union","args":[{"id":4587,"kind":"name","name":"ConsumerChains"},{"id":4589,"kind":"app","opcode":"Set","args":[{"id":4588,"kind":"name","name":"PROVIDER_CHAIN"}]}]}]}},{"id":4534,"kind":"def","name":"TimeoutDueToVscTimeout","qualifier":"puredef","expr":{"id":4533,"kind":"lambda","params":[{"id":4465,"name":"currentState"},{"id":4467,"name":"consumer"}],"qualifier":"puredef","expr":{"id":4531,"kind":"app","opcode":"ite","args":[{"id":4477,"kind":"app","opcode":"not","args":[{"id":4476,"kind":"app","opcode":"isRunningConsumer","args":[{"id":4472,"kind":"name","name":"consumer"},{"id":4475,"kind":"app","opcode":"field","args":[{"id":4473,"kind":"name","name":"currentState"},{"id":4474,"kind":"str","value":"providerState"}]}]}]},{"id":4480,"kind":"app","opcode":"Tup","args":[{"id":4478,"kind":"bool","value":false},{"id":4479,"kind":"str","value":"Consumer is not currently a consumer - must have 'running' status!"}]},{"id":4530,"kind":"let","opdef":{"id":4484,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":4483,"kind":"app","opcode":"field","args":[{"id":4481,"kind":"name","name":"currentState"},{"id":4482,"kind":"str","value":"providerState"}]}},"expr":{"id":4529,"kind":"let","opdef":{"id":4491,"kind":"def","name":"consumerState","qualifier":"val","expr":{"id":4490,"kind":"app","opcode":"get","args":[{"id":4488,"kind":"app","opcode":"field","args":[{"id":4486,"kind":"name","name":"currentState"},{"id":4487,"kind":"str","value":"consumerStates"}]},{"id":4489,"kind":"name","name":"consumer"}]},"typeAnnotation":{"id":4485,"kind":"const","name":"ConsumerState"}},"expr":{"id":4528,"kind":"let","opdef":{"id":4497,"kind":"def","name":"sentVscPacketsToConsumer","qualifier":"val","expr":{"id":4496,"kind":"app","opcode":"get","args":[{"id":4494,"kind":"app","opcode":"field","args":[{"id":4492,"kind":"name","name":"providerState"},{"id":4493,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":4495,"kind":"name","name":"consumer"}]}},"expr":{"id":4527,"kind":"app","opcode":"ite","args":[{"id":4501,"kind":"app","opcode":"igt","args":[{"id":4499,"kind":"app","opcode":"length","args":[{"id":4498,"kind":"name","name":"sentVscPacketsToConsumer"}]},{"id":4500,"kind":"int","value":0}]},{"id":4523,"kind":"let","opdef":{"id":4504,"kind":"def","name":"oldestSentVscPacket","qualifier":"val","expr":{"id":4503,"kind":"app","opcode":"head","args":[{"id":4502,"kind":"name","name":"sentVscPacketsToConsumer"}]}},"expr":{"id":4522,"kind":"app","opcode":"ite","args":[{"id":4515,"kind":"app","opcode":"ilt","args":[{"id":4509,"kind":"app","opcode":"iadd","args":[{"id":4507,"kind":"app","opcode":"field","args":[{"id":4505,"kind":"name","name":"oldestSentVscPacket"},{"id":4506,"kind":"str","value":"sendingTime"}]},{"id":4508,"kind":"name","name":"VscTimeout"}]},{"id":4514,"kind":"app","opcode":"field","args":[{"id":4512,"kind":"app","opcode":"field","args":[{"id":4510,"kind":"name","name":"providerState"},{"id":4511,"kind":"str","value":"chainState"}]},{"id":4513,"kind":"str","value":"runningTimestamp"}]}]},{"id":4518,"kind":"app","opcode":"Tup","args":[{"id":4516,"kind":"bool","value":true},{"id":4517,"kind":"str","value":""}]},{"id":4521,"kind":"app","opcode":"Tup","args":[{"id":4519,"kind":"bool","value":false},{"id":4520,"kind":"str","value":""}]}]}},{"id":4526,"kind":"app","opcode":"Tup","args":[{"id":4524,"kind":"bool","value":false},{"id":4525,"kind":"str","value":""}]}]}}}}]}},"typeAnnotation":{"id":4532,"kind":"oper","args":[{"id":4466,"kind":"const","name":"ProtocolState"},{"id":4468,"kind":"const","name":"Chain"}],"res":{"id":4471,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":4469,"kind":"bool"}},{"fieldName":"1","fieldType":{"id":4470,"kind":"str"}}],"other":{"kind":"empty"}}}}},{"id":3674,"kind":"def","name":"AppendConsumerAddrToPrune","qualifier":"puredef","expr":{"id":3673,"kind":"lambda","params":[{"id":3615,"name":"currentState"},{"id":3617,"name":"oldConsAddr"},{"id":3619,"name":"consumer"}],"qualifier":"puredef","expr":{"id":3671,"kind":"let","opdef":{"id":3627,"kind":"def","name":"vscId","qualifier":"pureval","expr":{"id":3626,"kind":"app","opcode":"field","args":[{"id":3624,"kind":"app","opcode":"field","args":[{"id":3622,"kind":"name","name":"currentState"},{"id":3623,"kind":"str","value":"providerState"}]},{"id":3625,"kind":"str","value":"runningVscId"}]}},"expr":{"id":3670,"kind":"let","opdef":{"id":3636,"kind":"def","name":"consumerAddrsToPrune","qualifier":"pureval","expr":{"id":3635,"kind":"app","opcode":"getOrElse","args":[{"id":3632,"kind":"app","opcode":"field","args":[{"id":3630,"kind":"app","opcode":"field","args":[{"id":3628,"kind":"name","name":"currentState"},{"id":3629,"kind":"str","value":"providerState"}]},{"id":3631,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":3633,"kind":"name","name":"consumer"},{"id":3634,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3669,"kind":"let","opdef":{"id":3644,"kind":"def","name":"prevConsAddrs","qualifier":"pureval","expr":{"id":3643,"kind":"app","opcode":"getOrElse","args":[{"id":3640,"kind":"app","opcode":"getOrElse","args":[{"id":3637,"kind":"name","name":"consumerAddrsToPrune"},{"id":3638,"kind":"name","name":"oldConsAddr"},{"id":3639,"kind":"app","opcode":"Map","args":[]}]},{"id":3641,"kind":"name","name":"vscId"},{"id":3642,"kind":"app","opcode":"List","args":[]}]}},"expr":{"id":3668,"kind":"let","opdef":{"id":3651,"kind":"def","name":"newConsAddrsToPrune","qualifier":"pureval","expr":{"id":3650,"kind":"app","opcode":"put","args":[{"id":3645,"kind":"name","name":"consumerAddrsToPrune"},{"id":3646,"kind":"name","name":"vscId"},{"id":3649,"kind":"app","opcode":"append","args":[{"id":3647,"kind":"name","name":"prevConsAddrs"},{"id":3648,"kind":"name","name":"oldConsAddr"}]}]}},"expr":{"id":3667,"kind":"app","opcode":"with","args":[{"id":3652,"kind":"name","name":"currentState"},{"id":3653,"kind":"str","value":"providerState"},{"id":3666,"kind":"app","opcode":"with","args":[{"id":3656,"kind":"app","opcode":"field","args":[{"id":3654,"kind":"name","name":"currentState"},{"id":3655,"kind":"str","value":"providerState"}]},{"id":3657,"kind":"str","value":"consumerAddrsToPrune"},{"id":3665,"kind":"app","opcode":"put","args":[{"id":3662,"kind":"app","opcode":"field","args":[{"id":3660,"kind":"app","opcode":"field","args":[{"id":3658,"kind":"name","name":"currentState"},{"id":3659,"kind":"str","value":"providerState"}]},{"id":3661,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":3663,"kind":"name","name":"consumer"},{"id":3664,"kind":"name","name":"newConsAddrsToPrune"}]}]}]}}}}}},"typeAnnotation":{"id":3672,"kind":"oper","args":[{"id":3616,"kind":"const","name":"ProtocolState"},{"id":3618,"kind":"const","name":"ConsumerAddr"},{"id":3620,"kind":"const","name":"Chain"}],"res":{"id":3621,"kind":"const","name":"ProtocolState"}}},{"id":4036,"kind":"def","name":"sendVscPackets","qualifier":"puredef","expr":{"id":4035,"kind":"lambda","params":[{"id":3918,"name":"providerState"},{"id":3920,"name":"sendingTimestamp"}],"qualifier":"puredef","expr":{"id":4033,"kind":"let","opdef":{"id":3970,"kind":"def","name":"newSentPacketsPerConsumer","qualifier":"val","expr":{"id":3969,"kind":"app","opcode":"mapBy","args":[{"id":3923,"kind":"name","name":"ConsumerChains"},{"id":3968,"kind":"lambda","params":[{"id":3924,"name":"consumer"}],"qualifier":"def","expr":{"id":3967,"kind":"app","opcode":"ite","args":[{"id":3942,"kind":"app","opcode":"and","args":[{"id":3938,"kind":"app","opcode":"or","args":[{"id":3927,"kind":"app","opcode":"field","args":[{"id":3925,"kind":"name","name":"providerState"},{"id":3926,"kind":"str","value":"providerValidatorSetChangedInThisBlock"}]},{"id":3937,"kind":"app","opcode":"igt","args":[{"id":3935,"kind":"app","opcode":"size","args":[{"id":3934,"kind":"app","opcode":"keys","args":[{"id":3933,"kind":"app","opcode":"getOrElse","args":[{"id":3930,"kind":"app","opcode":"field","args":[{"id":3928,"kind":"name","name":"providerState"},{"id":3929,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3931,"kind":"name","name":"consumer"},{"id":3932,"kind":"app","opcode":"Map","args":[]}]}]}]},{"id":3936,"kind":"int","value":0}]}]},{"id":3941,"kind":"app","opcode":"isRunningConsumer","args":[{"id":3939,"kind":"name","name":"consumer"},{"id":3940,"kind":"name","name":"providerState"}]}]},{"id":3965,"kind":"app","opcode":"List","args":[{"id":3964,"kind":"app","opcode":"Rec","args":[{"id":3946,"kind":"str","value":"id"},{"id":3945,"kind":"app","opcode":"field","args":[{"id":3943,"kind":"name","name":"providerState"},{"id":3944,"kind":"str","value":"runningVscId"}]},{"id":3955,"kind":"str","value":"validatorSet"},{"id":3954,"kind":"app","opcode":"applyKeyAssignmentToValSet","args":[{"id":3947,"kind":"name","name":"providerState"},{"id":3948,"kind":"name","name":"consumer"},{"id":3953,"kind":"app","opcode":"field","args":[{"id":3951,"kind":"app","opcode":"field","args":[{"id":3949,"kind":"name","name":"providerState"},{"id":3950,"kind":"str","value":"chainState"}]},{"id":3952,"kind":"str","value":"currentValidatorSet"}]}]},{"id":3957,"kind":"str","value":"sendingTime"},{"id":3956,"kind":"name","name":"sendingTimestamp"},{"id":3963,"kind":"str","value":"timeoutTime"},{"id":3962,"kind":"app","opcode":"iadd","args":[{"id":3958,"kind":"name","name":"sendingTimestamp"},{"id":3961,"kind":"app","opcode":"get","args":[{"id":3959,"kind":"name","name":"CcvTimeout"},{"id":3960,"kind":"name","name":"PROVIDER_CHAIN"}]}]}]}]},{"id":3966,"kind":"app","opcode":"List","args":[]}]}}]}},"expr":{"id":4032,"kind":"let","opdef":{"id":3984,"kind":"def","name":"newOutstandingPacketsToConsumer","qualifier":"val","expr":{"id":3983,"kind":"app","opcode":"mapBy","args":[{"id":3971,"kind":"name","name":"ConsumerChains"},{"id":3982,"kind":"lambda","params":[{"id":3972,"name":"consumer"}],"qualifier":"def","expr":{"id":3981,"kind":"app","opcode":"concat","args":[{"id":3977,"kind":"app","opcode":"get","args":[{"id":3975,"kind":"app","opcode":"field","args":[{"id":3973,"kind":"name","name":"providerState"},{"id":3974,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":3976,"kind":"name","name":"consumer"}]},{"id":3980,"kind":"app","opcode":"get","args":[{"id":3978,"kind":"name","name":"newSentPacketsPerConsumer"},{"id":3979,"kind":"name","name":"consumer"}]}]}}]}},"expr":{"id":4031,"kind":"let","opdef":{"id":3998,"kind":"def","name":"newSentVscPackets","qualifier":"val","expr":{"id":3997,"kind":"app","opcode":"mapBy","args":[{"id":3985,"kind":"name","name":"ConsumerChains"},{"id":3996,"kind":"lambda","params":[{"id":3986,"name":"consumer"}],"qualifier":"def","expr":{"id":3995,"kind":"app","opcode":"concat","args":[{"id":3991,"kind":"app","opcode":"get","args":[{"id":3989,"kind":"app","opcode":"field","args":[{"id":3987,"kind":"name","name":"providerState"},{"id":3988,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":3990,"kind":"name","name":"consumer"}]},{"id":3994,"kind":"app","opcode":"get","args":[{"id":3992,"kind":"name","name":"newSentPacketsPerConsumer"},{"id":3993,"kind":"name","name":"consumer"}]}]}}]}},"expr":{"id":4030,"kind":"app","opcode":"with","args":[{"id":4029,"kind":"app","opcode":"with","args":[{"id":4028,"kind":"app","opcode":"with","args":[{"id":4027,"kind":"app","opcode":"with","args":[{"id":4026,"kind":"app","opcode":"with","args":[{"id":4025,"kind":"app","opcode":"with","args":[{"id":3999,"kind":"name","name":"providerState"},{"id":4001,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":4000,"kind":"name","name":"newOutstandingPacketsToConsumer"}]},{"id":4003,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":4002,"kind":"name","name":"newSentVscPackets"}]},{"id":4005,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":4004,"kind":"bool","value":false}]},{"id":4011,"kind":"str","value":"runningVscId"},{"id":4010,"kind":"app","opcode":"iadd","args":[{"id":4008,"kind":"app","opcode":"field","args":[{"id":4006,"kind":"name","name":"providerState"},{"id":4007,"kind":"str","value":"runningVscId"}]},{"id":4009,"kind":"int","value":1}]}]},{"id":4013,"kind":"str","value":"keyAssignmentReplacements"},{"id":4012,"kind":"app","opcode":"Map","args":[]}]},{"id":4024,"kind":"str","value":"keyAssignmentsForVSCPackets"},{"id":4023,"kind":"app","opcode":"put","args":[{"id":4016,"kind":"app","opcode":"field","args":[{"id":4014,"kind":"name","name":"providerState"},{"id":4015,"kind":"str","value":"keyAssignmentsForVSCPackets"}]},{"id":4019,"kind":"app","opcode":"field","args":[{"id":4017,"kind":"name","name":"providerState"},{"id":4018,"kind":"str","value":"runningVscId"}]},{"id":4022,"kind":"app","opcode":"field","args":[{"id":4020,"kind":"name","name":"providerState"},{"id":4021,"kind":"str","value":"validatorConsumerPubKey"}]}]}]}}}}},"typeAnnotation":{"id":4034,"kind":"oper","args":[{"id":3919,"kind":"const","name":"ProviderState"},{"id":3921,"kind":"const","name":"Time"}],"res":{"id":3922,"kind":"const","name":"ProviderState"}}},{"id":4377,"kind":"def","name":"removeOutstandingPacketFromProvider","qualifier":"puredef","expr":{"id":4376,"kind":"lambda","params":[{"id":4335,"name":"currentState"},{"id":4337,"name":"receiver"}],"qualifier":"puredef","expr":{"id":4374,"kind":"let","opdef":{"id":4347,"kind":"def","name":"currentOutstandingPackets","qualifier":"val","expr":{"id":4346,"kind":"app","opcode":"get","args":[{"id":4344,"kind":"app","opcode":"field","args":[{"id":4342,"kind":"app","opcode":"field","args":[{"id":4340,"kind":"name","name":"currentState"},{"id":4341,"kind":"str","value":"providerState"}]},{"id":4343,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":4345,"kind":"name","name":"receiver"}]}},"expr":{"id":4373,"kind":"let","opdef":{"id":4350,"kind":"def","name":"newOutstandingPackets","qualifier":"val","expr":{"id":4349,"kind":"app","opcode":"tail","args":[{"id":4348,"kind":"name","name":"currentOutstandingPackets"}]}},"expr":{"id":4372,"kind":"let","opdef":{"id":4364,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":4363,"kind":"app","opcode":"with","args":[{"id":4353,"kind":"app","opcode":"field","args":[{"id":4351,"kind":"name","name":"currentState"},{"id":4352,"kind":"str","value":"providerState"}]},{"id":4354,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":4362,"kind":"app","opcode":"set","args":[{"id":4359,"kind":"app","opcode":"field","args":[{"id":4357,"kind":"app","opcode":"field","args":[{"id":4355,"kind":"name","name":"currentState"},{"id":4356,"kind":"str","value":"providerState"}]},{"id":4358,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":4360,"kind":"name","name":"receiver"},{"id":4361,"kind":"name","name":"newOutstandingPackets"}]}]}},"expr":{"id":4371,"kind":"let","opdef":{"id":4369,"kind":"def","name":"newState","qualifier":"val","expr":{"id":4368,"kind":"app","opcode":"with","args":[{"id":4365,"kind":"name","name":"currentState"},{"id":4366,"kind":"str","value":"providerState"},{"id":4367,"kind":"name","name":"newProviderState"}]}},"expr":{"id":4370,"kind":"name","name":"newState"}}}}}},"typeAnnotation":{"id":4375,"kind":"oper","args":[{"id":4336,"kind":"const","name":"ProtocolState"},{"id":4338,"kind":"const","name":"Chain"}],"res":{"id":4339,"kind":"const","name":"ProtocolState"}}},{"id":2730,"kind":"def","name":"votingPowerChange","qualifier":"puredef","expr":{"id":2729,"kind":"lambda","params":[{"id":2638,"name":"currentState"},{"id":2640,"name":"validator"},{"id":2642,"name":"amount"}],"qualifier":"puredef","expr":{"id":2727,"kind":"let","opdef":{"id":2652,"kind":"def","name":"currentValidatorSet","qualifier":"pureval","expr":{"id":2651,"kind":"app","opcode":"field","args":[{"id":2649,"kind":"app","opcode":"field","args":[{"id":2647,"kind":"app","opcode":"field","args":[{"id":2645,"kind":"name","name":"currentState"},{"id":2646,"kind":"str","value":"providerState"}]},{"id":2648,"kind":"str","value":"chainState"}]},{"id":2650,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":2726,"kind":"let","opdef":{"id":2662,"kind":"def","name":"oldVotingPower","qualifier":"pureval","expr":{"id":2661,"kind":"app","opcode":"ite","args":[{"id":2656,"kind":"app","opcode":"contains","args":[{"id":2654,"kind":"app","opcode":"keys","args":[{"id":2653,"kind":"name","name":"currentValidatorSet"}]},{"id":2655,"kind":"name","name":"validator"}]},{"id":2659,"kind":"app","opcode":"get","args":[{"id":2657,"kind":"name","name":"currentValidatorSet"},{"id":2658,"kind":"name","name":"validator"}]},{"id":2660,"kind":"int","value":0}]}},"expr":{"id":2725,"kind":"app","opcode":"ite","args":[{"id":2665,"kind":"app","opcode":"eq","args":[{"id":2663,"kind":"name","name":"amount"},{"id":2664,"kind":"int","value":0}]},{"id":2667,"kind":"app","opcode":"Err","args":[{"id":2666,"kind":"str","value":"Voting power cannot change by zero!"}]},{"id":2724,"kind":"app","opcode":"ite","args":[{"id":2670,"kind":"app","opcode":"eq","args":[{"id":2668,"kind":"name","name":"oldVotingPower"},{"id":2669,"kind":"int","value":0}]},{"id":2672,"kind":"app","opcode":"Err","args":[{"id":2671,"kind":"str","value":"Voting power cannot be changed for a validator that is not in the current validator set!"}]},{"id":2723,"kind":"let","opdef":{"id":2676,"kind":"def","name":"newVotingPower","qualifier":"pureval","expr":{"id":2675,"kind":"app","opcode":"iadd","args":[{"id":2673,"kind":"name","name":"oldVotingPower"},{"id":2674,"kind":"name","name":"amount"}]}},"expr":{"id":2722,"kind":"let","opdef":{"id":2686,"kind":"def","name":"newValidatorSet","qualifier":"pureval","expr":{"id":2685,"kind":"app","opcode":"put","args":[{"id":2677,"kind":"name","name":"currentValidatorSet"},{"id":2678,"kind":"name","name":"validator"},{"id":2684,"kind":"app","opcode":"ite","args":[{"id":2681,"kind":"app","opcode":"igte","args":[{"id":2679,"kind":"name","name":"newVotingPower"},{"id":2680,"kind":"int","value":0}]},{"id":2682,"kind":"name","name":"newVotingPower"},{"id":2683,"kind":"int","value":0}]}]}},"expr":{"id":2721,"kind":"app","opcode":"ite","args":[{"id":2697,"kind":"app","opcode":"eq","args":[{"id":2695,"kind":"app","opcode":"size","args":[{"id":2694,"kind":"app","opcode":"filter","args":[{"id":2688,"kind":"app","opcode":"values","args":[{"id":2687,"kind":"name","name":"newValidatorSet"}]},{"id":2693,"kind":"lambda","params":[{"id":2689,"name":"votingPower"}],"qualifier":"def","expr":{"id":2692,"kind":"app","opcode":"igt","args":[{"id":2690,"kind":"name","name":"votingPower"},{"id":2691,"kind":"int","value":0}]}}]}]},{"id":2696,"kind":"int","value":0}]},{"id":2699,"kind":"app","opcode":"Err","args":[{"id":2698,"kind":"str","value":"Voting power change resulted in empty validator set!"}]},{"id":2720,"kind":"let","opdef":{"id":2706,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":2705,"kind":"app","opcode":"with","args":[{"id":2702,"kind":"app","opcode":"field","args":[{"id":2700,"kind":"name","name":"currentState"},{"id":2701,"kind":"str","value":"providerState"}]},{"id":2703,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":2704,"kind":"bool","value":true}]}},"expr":{"id":2719,"kind":"let","opdef":{"id":2711,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":2710,"kind":"app","opcode":"with","args":[{"id":2707,"kind":"name","name":"currentState"},{"id":2708,"kind":"str","value":"providerState"},{"id":2709,"kind":"name","name":"newProviderState"}]}},"expr":{"id":2718,"kind":"let","opdef":{"id":2715,"kind":"def","name":"newState","qualifier":"pureval","expr":{"id":2714,"kind":"app","opcode":"setProviderValidatorSet","args":[{"id":2712,"kind":"name","name":"tmpState"},{"id":2713,"kind":"name","name":"newValidatorSet"}]}},"expr":{"id":2717,"kind":"app","opcode":"Ok","args":[{"id":2716,"kind":"name","name":"newState"}]}}}}]}}}]}]}}}},"typeAnnotation":{"id":2728,"kind":"oper","args":[{"id":2639,"kind":"const","name":"ProtocolState"},{"id":2641,"kind":"const","name":"Node"},{"id":2643,"kind":"int"}],"res":{"id":2644,"kind":"const","name":"Result"}}},{"id":4117,"kind":"def","name":"recvPacketOnConsumer","qualifier":"puredef","expr":{"id":4116,"kind":"lambda","params":[{"id":4037,"name":"currentState"},{"id":4039,"name":"receiver"},{"id":4041,"name":"packet"}],"qualifier":"puredef","expr":{"id":4114,"kind":"app","opcode":"ite","args":[{"id":4049,"kind":"app","opcode":"not","args":[{"id":4048,"kind":"app","opcode":"isRunningConsumer","args":[{"id":4044,"kind":"name","name":"receiver"},{"id":4047,"kind":"app","opcode":"field","args":[{"id":4045,"kind":"name","name":"currentState"},{"id":4046,"kind":"str","value":"providerState"}]}]}]},{"id":4051,"kind":"app","opcode":"Err","args":[{"id":4050,"kind":"str","value":"Receiver is not currently a consumer - must have 'running' status!"}]},{"id":4113,"kind":"let","opdef":{"id":4058,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":4057,"kind":"app","opcode":"get","args":[{"id":4055,"kind":"app","opcode":"field","args":[{"id":4053,"kind":"name","name":"currentState"},{"id":4054,"kind":"str","value":"consumerStates"}]},{"id":4056,"kind":"name","name":"receiver"}]},"typeAnnotation":{"id":4052,"kind":"const","name":"ConsumerState"}},"expr":{"id":4112,"kind":"let","opdef":{"id":4095,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":4094,"kind":"app","opcode":"with","args":[{"id":4093,"kind":"app","opcode":"with","args":[{"id":4092,"kind":"app","opcode":"with","args":[{"id":4060,"kind":"name","name":"currentConsumerState"},{"id":4069,"kind":"str","value":"chainState"},{"id":4068,"kind":"app","opcode":"with","args":[{"id":4063,"kind":"app","opcode":"field","args":[{"id":4061,"kind":"name","name":"currentConsumerState"},{"id":4062,"kind":"str","value":"chainState"}]},{"id":4064,"kind":"str","value":"currentValidatorSet"},{"id":4067,"kind":"app","opcode":"field","args":[{"id":4065,"kind":"name","name":"packet"},{"id":4066,"kind":"str","value":"validatorSet"}]}]}]},{"id":4085,"kind":"str","value":"maturationTimes"},{"id":4084,"kind":"app","opcode":"append","args":[{"id":4072,"kind":"app","opcode":"field","args":[{"id":4070,"kind":"name","name":"currentConsumerState"},{"id":4071,"kind":"str","value":"maturationTimes"}]},{"id":4083,"kind":"app","opcode":"Tup","args":[{"id":4073,"kind":"name","name":"packet"},{"id":4082,"kind":"app","opcode":"iadd","args":[{"id":4078,"kind":"app","opcode":"field","args":[{"id":4076,"kind":"app","opcode":"field","args":[{"id":4074,"kind":"name","name":"currentConsumerState"},{"id":4075,"kind":"str","value":"chainState"}]},{"id":4077,"kind":"str","value":"runningTimestamp"}]},{"id":4081,"kind":"app","opcode":"get","args":[{"id":4079,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":4080,"kind":"name","name":"receiver"}]}]}]}]}]},{"id":4091,"kind":"str","value":"receivedVscPackets"},{"id":4090,"kind":"app","opcode":"prepend","args":[{"id":4088,"kind":"app","opcode":"field","args":[{"id":4086,"kind":"name","name":"currentConsumerState"},{"id":4087,"kind":"str","value":"receivedVscPackets"}]},{"id":4089,"kind":"name","name":"packet"}]}]},"typeAnnotation":{"id":4059,"kind":"const","name":"ConsumerState"}},"expr":{"id":4111,"kind":"let","opdef":{"id":4102,"kind":"def","name":"newConsumerStates","qualifier":"val","expr":{"id":4101,"kind":"app","opcode":"set","args":[{"id":4098,"kind":"app","opcode":"field","args":[{"id":4096,"kind":"name","name":"currentState"},{"id":4097,"kind":"str","value":"consumerStates"}]},{"id":4099,"kind":"name","name":"receiver"},{"id":4100,"kind":"name","name":"newConsumerState"}]}},"expr":{"id":4110,"kind":"let","opdef":{"id":4107,"kind":"def","name":"newState","qualifier":"val","expr":{"id":4106,"kind":"app","opcode":"with","args":[{"id":4103,"kind":"name","name":"currentState"},{"id":4104,"kind":"str","value":"consumerStates"},{"id":4105,"kind":"name","name":"newConsumerStates"}]}},"expr":{"id":4109,"kind":"app","opcode":"Ok","args":[{"id":4108,"kind":"name","name":"newState"}]}}}}}]}},"typeAnnotation":{"id":4115,"kind":"oper","args":[{"id":4038,"kind":"const","name":"ProtocolState"},{"id":4040,"kind":"const","name":"Chain"},{"id":4042,"kind":"const","name":"VscPacket"}],"res":{"id":4043,"kind":"const","name":"Result"}}},{"id":4334,"kind":"def","name":"removeOutstandingPacketFromConsumer","qualifier":"puredef","expr":{"id":4333,"kind":"lambda","params":[{"id":4289,"name":"currentState"},{"id":4291,"name":"sender"}],"qualifier":"puredef","expr":{"id":4331,"kind":"let","opdef":{"id":4301,"kind":"def","name":"currentOutstandingPackets","qualifier":"val","expr":{"id":4300,"kind":"app","opcode":"field","args":[{"id":4298,"kind":"app","opcode":"get","args":[{"id":4296,"kind":"app","opcode":"field","args":[{"id":4294,"kind":"name","name":"currentState"},{"id":4295,"kind":"str","value":"consumerStates"}]},{"id":4297,"kind":"name","name":"sender"}]},{"id":4299,"kind":"str","value":"outstandingPacketsToProvider"}]}},"expr":{"id":4330,"kind":"let","opdef":{"id":4304,"kind":"def","name":"newOutstandingPackets","qualifier":"val","expr":{"id":4303,"kind":"app","opcode":"tail","args":[{"id":4302,"kind":"name","name":"currentOutstandingPackets"}]}},"expr":{"id":4329,"kind":"let","opdef":{"id":4313,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":4312,"kind":"app","opcode":"with","args":[{"id":4309,"kind":"app","opcode":"get","args":[{"id":4307,"kind":"app","opcode":"field","args":[{"id":4305,"kind":"name","name":"currentState"},{"id":4306,"kind":"str","value":"consumerStates"}]},{"id":4308,"kind":"name","name":"sender"}]},{"id":4310,"kind":"str","value":"outstandingPacketsToProvider"},{"id":4311,"kind":"name","name":"newOutstandingPackets"}]}},"expr":{"id":4328,"kind":"let","opdef":{"id":4320,"kind":"def","name":"newConsumerStates","qualifier":"val","expr":{"id":4319,"kind":"app","opcode":"set","args":[{"id":4316,"kind":"app","opcode":"field","args":[{"id":4314,"kind":"name","name":"currentState"},{"id":4315,"kind":"str","value":"consumerStates"}]},{"id":4317,"kind":"name","name":"sender"},{"id":4318,"kind":"name","name":"newConsumerState"}]}},"expr":{"id":4327,"kind":"let","opdef":{"id":4325,"kind":"def","name":"newState","qualifier":"val","expr":{"id":4324,"kind":"app","opcode":"with","args":[{"id":4321,"kind":"name","name":"currentState"},{"id":4322,"kind":"str","value":"consumerStates"},{"id":4323,"kind":"name","name":"newConsumerStates"}]}},"expr":{"id":4326,"kind":"name","name":"newState"}}}}}}},"typeAnnotation":{"id":4332,"kind":"oper","args":[{"id":4290,"kind":"const","name":"ProtocolState"},{"id":4292,"kind":"const","name":"Chain"}],"res":{"id":4293,"kind":"const","name":"ProtocolState"}}},{"id":3868,"kind":"def","name":"StartStopConsumers","qualifier":"puredef","expr":{"id":3867,"kind":"lambda","params":[{"id":3793,"name":"currentConsumerStatusMap"},{"id":3797,"name":"consumersToStart"},{"id":3800,"name":"consumersToStop"},{"id":3803,"name":"consumersToTimeout"}],"qualifier":"puredef","expr":{"id":3865,"kind":"app","opcode":"ite","args":[{"id":3816,"kind":"app","opcode":"igt","args":[{"id":3814,"kind":"app","opcode":"size","args":[{"id":3813,"kind":"app","opcode":"intersect","args":[{"id":3811,"kind":"name","name":"consumersToStart"},{"id":3812,"kind":"name","name":"consumersToStop"}]}]},{"id":3815,"kind":"int","value":0}]},{"id":3819,"kind":"app","opcode":"Tup","args":[{"id":3817,"kind":"name","name":"currentConsumerStatusMap"},{"id":3818,"kind":"str","value":"Cannot start and stop a consumer at the same time"}]},{"id":3864,"kind":"let","opdef":{"id":3823,"kind":"def","name":"res1","qualifier":"val","expr":{"id":3822,"kind":"app","opcode":"startConsumers","args":[{"id":3820,"kind":"name","name":"currentConsumerStatusMap"},{"id":3821,"kind":"name","name":"consumersToStart"}]}},"expr":{"id":3863,"kind":"let","opdef":{"id":3827,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":3826,"kind":"app","opcode":"item","args":[{"id":3824,"kind":"name","name":"res1"},{"id":3825,"kind":"int","value":1}]}},"expr":{"id":3862,"kind":"let","opdef":{"id":3831,"kind":"def","name":"err1","qualifier":"val","expr":{"id":3830,"kind":"app","opcode":"item","args":[{"id":3828,"kind":"name","name":"res1"},{"id":3829,"kind":"int","value":2}]}},"expr":{"id":3861,"kind":"let","opdef":{"id":3836,"kind":"def","name":"res2","qualifier":"val","expr":{"id":3835,"kind":"app","opcode":"stopConsumers","args":[{"id":3832,"kind":"name","name":"newConsumerStatus"},{"id":3833,"kind":"name","name":"consumersToStop"},{"id":3834,"kind":"name","name":"consumersToTimeout"}]}},"expr":{"id":3860,"kind":"let","opdef":{"id":3840,"kind":"def","name":"err2","qualifier":"val","expr":{"id":3839,"kind":"app","opcode":"item","args":[{"id":3837,"kind":"name","name":"res2"},{"id":3838,"kind":"int","value":2}]}},"expr":{"id":3859,"kind":"app","opcode":"ite","args":[{"id":3843,"kind":"app","opcode":"neq","args":[{"id":3841,"kind":"name","name":"err1"},{"id":3842,"kind":"str","value":""}]},{"id":3846,"kind":"app","opcode":"Tup","args":[{"id":3844,"kind":"name","name":"currentConsumerStatusMap"},{"id":3845,"kind":"name","name":"err1"}]},{"id":3858,"kind":"app","opcode":"ite","args":[{"id":3849,"kind":"app","opcode":"neq","args":[{"id":3847,"kind":"name","name":"err2"},{"id":3848,"kind":"str","value":""}]},{"id":3852,"kind":"app","opcode":"Tup","args":[{"id":3850,"kind":"name","name":"currentConsumerStatusMap"},{"id":3851,"kind":"name","name":"err2"}]},{"id":3857,"kind":"app","opcode":"Tup","args":[{"id":3855,"kind":"app","opcode":"item","args":[{"id":3853,"kind":"name","name":"res2"},{"id":3854,"kind":"int","value":1}]},{"id":3856,"kind":"str","value":""}]}]}]}}}}}}]}},"typeAnnotation":{"id":3866,"kind":"oper","args":[{"id":3796,"kind":"fun","arg":{"id":3794,"kind":"const","name":"Chain"},"res":{"id":3795,"kind":"str"}},{"id":3799,"kind":"set","elem":{"id":3798,"kind":"const","name":"Chain"}},{"id":3802,"kind":"set","elem":{"id":3801,"kind":"const","name":"Chain"}},{"id":3805,"kind":"set","elem":{"id":3804,"kind":"const","name":"Chain"}}],"res":{"id":3810,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":3808,"kind":"fun","arg":{"id":3806,"kind":"const","name":"Chain"},"res":{"id":3807,"kind":"str"}}},{"fieldName":"1","fieldType":{"id":3809,"kind":"str"}}],"other":{"kind":"empty"}}}}},{"id":2990,"kind":"def","name":"deliverPacketToConsumer","qualifier":"puredef","expr":{"id":2989,"kind":"lambda","params":[{"id":2860,"name":"currentState"},{"id":2862,"name":"receiver"}],"qualifier":"puredef","expr":{"id":2987,"kind":"app","opcode":"ite","args":[{"id":2872,"kind":"app","opcode":"not","args":[{"id":2871,"kind":"app","opcode":"isRunningConsumer","args":[{"id":2867,"kind":"name","name":"receiver"},{"id":2870,"kind":"app","opcode":"field","args":[{"id":2868,"kind":"name","name":"currentState"},{"id":2869,"kind":"str","value":"providerState"}]}]}]},{"id":2876,"kind":"app","opcode":"Tup","args":[{"id":2874,"kind":"app","opcode":"Err","args":[{"id":2873,"kind":"str","value":"Receiver is not currently a consumer - must have 'running' status!"}]},{"id":2875,"kind":"bool","value":false}]},{"id":2986,"kind":"app","opcode":"ite","args":[{"id":2886,"kind":"app","opcode":"eq","args":[{"id":2884,"kind":"app","opcode":"length","args":[{"id":2883,"kind":"app","opcode":"get","args":[{"id":2881,"kind":"app","opcode":"field","args":[{"id":2879,"kind":"app","opcode":"field","args":[{"id":2877,"kind":"name","name":"currentState"},{"id":2878,"kind":"str","value":"providerState"}]},{"id":2880,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":2882,"kind":"name","name":"receiver"}]}]},{"id":2885,"kind":"int","value":0}]},{"id":2890,"kind":"app","opcode":"Tup","args":[{"id":2888,"kind":"app","opcode":"Err","args":[{"id":2887,"kind":"str","value":"No outstanding packets to deliver"}]},{"id":2889,"kind":"bool","value":false}]},{"id":2985,"kind":"let","opdef":{"id":2899,"kind":"def","name":"packet","qualifier":"val","expr":{"id":2898,"kind":"app","opcode":"head","args":[{"id":2897,"kind":"app","opcode":"get","args":[{"id":2895,"kind":"app","opcode":"field","args":[{"id":2893,"kind":"app","opcode":"field","args":[{"id":2891,"kind":"name","name":"currentState"},{"id":2892,"kind":"str","value":"providerState"}]},{"id":2894,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":2896,"kind":"name","name":"receiver"}]}]}},"expr":{"id":2984,"kind":"app","opcode":"ite","args":[{"id":2912,"kind":"app","opcode":"ilte","args":[{"id":2902,"kind":"app","opcode":"field","args":[{"id":2900,"kind":"name","name":"packet"},{"id":2901,"kind":"str","value":"timeoutTime"}]},{"id":2911,"kind":"app","opcode":"field","args":[{"id":2909,"kind":"app","opcode":"field","args":[{"id":2907,"kind":"app","opcode":"get","args":[{"id":2905,"kind":"app","opcode":"field","args":[{"id":2903,"kind":"name","name":"currentState"},{"id":2904,"kind":"str","value":"consumerStates"}]},{"id":2906,"kind":"name","name":"receiver"}]},{"id":2908,"kind":"str","value":"chainState"}]},{"id":2910,"kind":"str","value":"runningTimestamp"}]}]},{"id":2960,"kind":"let","opdef":{"id":2922,"kind":"def","name":"result","qualifier":"val","expr":{"id":2921,"kind":"app","opcode":"stopConsumers","args":[{"id":2917,"kind":"app","opcode":"field","args":[{"id":2915,"kind":"app","opcode":"field","args":[{"id":2913,"kind":"name","name":"currentState"},{"id":2914,"kind":"str","value":"providerState"}]},{"id":2916,"kind":"str","value":"consumerStatus"}]},{"id":2918,"kind":"app","opcode":"Set","args":[]},{"id":2920,"kind":"app","opcode":"Set","args":[{"id":2919,"kind":"name","name":"receiver"}]}]}},"expr":{"id":2959,"kind":"let","opdef":{"id":2926,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":2925,"kind":"app","opcode":"item","args":[{"id":2923,"kind":"name","name":"result"},{"id":2924,"kind":"int","value":1}]}},"expr":{"id":2958,"kind":"let","opdef":{"id":2930,"kind":"def","name":"err","qualifier":"val","expr":{"id":2929,"kind":"app","opcode":"item","args":[{"id":2927,"kind":"name","name":"result"},{"id":2928,"kind":"int","value":2}]}},"expr":{"id":2957,"kind":"app","opcode":"ite","args":[{"id":2933,"kind":"app","opcode":"neq","args":[{"id":2931,"kind":"name","name":"err"},{"id":2932,"kind":"str","value":""}]},{"id":2937,"kind":"app","opcode":"Tup","args":[{"id":2935,"kind":"app","opcode":"Err","args":[{"id":2934,"kind":"name","name":"err"}]},{"id":2936,"kind":"bool","value":false}]},{"id":2956,"kind":"let","opdef":{"id":2944,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":2943,"kind":"app","opcode":"with","args":[{"id":2940,"kind":"app","opcode":"field","args":[{"id":2938,"kind":"name","name":"currentState"},{"id":2939,"kind":"str","value":"providerState"}]},{"id":2941,"kind":"str","value":"consumerStatus"},{"id":2942,"kind":"name","name":"newConsumerStatus"}]}},"expr":{"id":2955,"kind":"let","opdef":{"id":2950,"kind":"def","name":"newState","qualifier":"val","expr":{"id":2949,"kind":"app","opcode":"with","args":[{"id":2946,"kind":"name","name":"currentState"},{"id":2947,"kind":"str","value":"providerState"},{"id":2948,"kind":"name","name":"newProviderState"}]},"typeAnnotation":{"id":2945,"kind":"const","name":"ProtocolState"}},"expr":{"id":2954,"kind":"app","opcode":"Tup","args":[{"id":2952,"kind":"app","opcode":"Ok","args":[{"id":2951,"kind":"name","name":"newState"}]},{"id":2953,"kind":"bool","value":true}]}}}]}}}},{"id":2983,"kind":"let","opdef":{"id":2965,"kind":"def","name":"result","qualifier":"val","expr":{"id":2964,"kind":"app","opcode":"recvPacketOnConsumer","args":[{"id":2961,"kind":"name","name":"currentState"},{"id":2962,"kind":"name","name":"receiver"},{"id":2963,"kind":"name","name":"packet"}]}},"expr":{"id":2982,"kind":"let","opdef":{"id":2969,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":2968,"kind":"app","opcode":"field","args":[{"id":2966,"kind":"name","name":"result"},{"id":2967,"kind":"str","value":"newState"}]}},"expr":{"id":2981,"kind":"app","opcode":"ite","args":[{"id":2971,"kind":"app","opcode":"hasError","args":[{"id":2970,"kind":"name","name":"result"}]},{"id":2974,"kind":"app","opcode":"Tup","args":[{"id":2972,"kind":"name","name":"result"},{"id":2973,"kind":"bool","value":false}]},{"id":2980,"kind":"app","opcode":"Tup","args":[{"id":2978,"kind":"app","opcode":"Ok","args":[{"id":2977,"kind":"app","opcode":"removeOutstandingPacketFromProvider","args":[{"id":2975,"kind":"name","name":"tmpState"},{"id":2976,"kind":"name","name":"receiver"}]}]},{"id":2979,"kind":"bool","value":false}]}]}}}]}}]}]}},"typeAnnotation":{"id":2988,"kind":"oper","args":[{"id":2861,"kind":"const","name":"ProtocolState"},{"id":2863,"kind":"const","name":"Chain"}],"res":{"id":2866,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2864,"kind":"const","name":"Result"}},{"fieldName":"1","fieldType":{"id":2865,"kind":"bool"}}],"other":{"kind":"empty"}}}}},{"id":3614,"kind":"def","name":"assignConsumerKey","qualifier":"puredef","expr":{"id":3613,"kind":"lambda","params":[{"id":3381,"name":"currentState"},{"id":3383,"name":"consumer"},{"id":3385,"name":"providerNode"},{"id":3387,"name":"consumerAddr"}],"qualifier":"puredef","expr":{"id":3611,"kind":"let","opdef":{"id":3397,"kind":"def","name":"provCurValSet","qualifier":"pureval","expr":{"id":3396,"kind":"app","opcode":"field","args":[{"id":3394,"kind":"app","opcode":"field","args":[{"id":3392,"kind":"app","opcode":"field","args":[{"id":3390,"kind":"name","name":"currentState"},{"id":3391,"kind":"str","value":"providerState"}]},{"id":3393,"kind":"str","value":"chainState"}]},{"id":3395,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3610,"kind":"app","opcode":"ite","args":[{"id":3409,"kind":"app","opcode":"exists","args":[{"id":3399,"kind":"app","opcode":"keys","args":[{"id":3398,"kind":"name","name":"provCurValSet"}]},{"id":3408,"kind":"lambda","params":[{"id":3400,"name":"node"}],"qualifier":"def","expr":{"id":3407,"kind":"app","opcode":"and","args":[{"id":3403,"kind":"app","opcode":"neq","args":[{"id":3401,"kind":"name","name":"node"},{"id":3402,"kind":"name","name":"providerNode"}]},{"id":3406,"kind":"app","opcode":"eq","args":[{"id":3404,"kind":"name","name":"node"},{"id":3405,"kind":"name","name":"consumerAddr"}]}]}}]},{"id":3411,"kind":"app","opcode":"Err","args":[{"id":3410,"kind":"str","value":"validator A cannot assign consumer key K to consumer chain X\n if there is already a validator B (B!=A) using K on the provider"}]},{"id":3609,"kind":"let","opdef":{"id":3420,"kind":"def","name":"valByConsAddr","qualifier":"pureval","expr":{"id":3419,"kind":"app","opcode":"getOrElse","args":[{"id":3416,"kind":"app","opcode":"field","args":[{"id":3414,"kind":"app","opcode":"field","args":[{"id":3412,"kind":"name","name":"currentState"},{"id":3413,"kind":"str","value":"providerState"}]},{"id":3415,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3417,"kind":"name","name":"consumer"},{"id":3418,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3608,"kind":"app","opcode":"ite","args":[{"id":3424,"kind":"app","opcode":"contains","args":[{"id":3422,"kind":"app","opcode":"keys","args":[{"id":3421,"kind":"name","name":"valByConsAddr"}]},{"id":3423,"kind":"name","name":"consumerAddr"}]},{"id":3426,"kind":"app","opcode":"Err","args":[{"id":3425,"kind":"str","value":"consumer key is already in use on the consumer chain"}]},{"id":3607,"kind":"let","opdef":{"id":3435,"kind":"def","name":"consKeyByVal","qualifier":"pureval","expr":{"id":3434,"kind":"app","opcode":"getOrElse","args":[{"id":3431,"kind":"app","opcode":"field","args":[{"id":3429,"kind":"app","opcode":"field","args":[{"id":3427,"kind":"name","name":"currentState"},{"id":3428,"kind":"str","value":"providerState"}]},{"id":3430,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3432,"kind":"name","name":"consumer"},{"id":3433,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3606,"kind":"let","opdef":{"id":3449,"kind":"def","name":"p","qualifier":"pureval","expr":{"id":3448,"kind":"app","opcode":"ite","args":[{"id":3439,"kind":"app","opcode":"contains","args":[{"id":3437,"kind":"app","opcode":"keys","args":[{"id":3436,"kind":"name","name":"consKeyByVal"}]},{"id":3438,"kind":"name","name":"providerNode"}]},{"id":3444,"kind":"app","opcode":"Tup","args":[{"id":3442,"kind":"app","opcode":"get","args":[{"id":3440,"kind":"name","name":"consKeyByVal"},{"id":3441,"kind":"name","name":"providerNode"}]},{"id":3443,"kind":"bool","value":true}]},{"id":3447,"kind":"app","opcode":"Tup","args":[{"id":3445,"kind":"name","name":"providerNode"},{"id":3446,"kind":"bool","value":false}]}]}},"expr":{"id":3605,"kind":"let","opdef":{"id":3453,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":3452,"kind":"app","opcode":"item","args":[{"id":3450,"kind":"name","name":"p"},{"id":3451,"kind":"int","value":1}]}},"expr":{"id":3604,"kind":"let","opdef":{"id":3457,"kind":"def","name":"prevAssigned","qualifier":"pureval","expr":{"id":3456,"kind":"app","opcode":"item","args":[{"id":3454,"kind":"name","name":"p"},{"id":3455,"kind":"int","value":2}]}},"expr":{"id":3603,"kind":"let","opdef":{"id":3465,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":3464,"kind":"app","opcode":"ite","args":[{"id":3458,"kind":"name","name":"prevAssigned"},{"id":3462,"kind":"app","opcode":"AppendConsumerAddrToPrune","args":[{"id":3459,"kind":"name","name":"currentState"},{"id":3460,"kind":"name","name":"oldConsAddr"},{"id":3461,"kind":"name","name":"consumer"}]},{"id":3463,"kind":"name","name":"currentState"}]}},"expr":{"id":3602,"kind":"let","opdef":{"id":3473,"kind":"def","name":"provValSet","qualifier":"pureval","expr":{"id":3472,"kind":"app","opcode":"field","args":[{"id":3470,"kind":"app","opcode":"field","args":[{"id":3468,"kind":"app","opcode":"field","args":[{"id":3466,"kind":"name","name":"currentState"},{"id":3467,"kind":"str","value":"providerState"}]},{"id":3469,"kind":"str","value":"chainState"}]},{"id":3471,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3601,"kind":"let","opdef":{"id":3483,"kind":"def","name":"provValPower","qualifier":"pureval","expr":{"id":3482,"kind":"app","opcode":"ite","args":[{"id":3477,"kind":"app","opcode":"contains","args":[{"id":3475,"kind":"app","opcode":"keys","args":[{"id":3474,"kind":"name","name":"provValSet"}]},{"id":3476,"kind":"name","name":"providerNode"}]},{"id":3480,"kind":"app","opcode":"get","args":[{"id":3478,"kind":"name","name":"provValSet"},{"id":3479,"kind":"name","name":"providerNode"}]},{"id":3481,"kind":"int","value":0}]}},"expr":{"id":3600,"kind":"let","opdef":{"id":3526,"kind":"def","name":"newKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3525,"kind":"app","opcode":"ite","args":[{"id":3499,"kind":"app","opcode":"and","args":[{"id":3486,"kind":"app","opcode":"igt","args":[{"id":3484,"kind":"name","name":"provValPower"},{"id":3485,"kind":"int","value":0}]},{"id":3498,"kind":"app","opcode":"not","args":[{"id":3497,"kind":"app","opcode":"contains","args":[{"id":3495,"kind":"app","opcode":"keys","args":[{"id":3494,"kind":"app","opcode":"getOrElse","args":[{"id":3491,"kind":"app","opcode":"field","args":[{"id":3489,"kind":"app","opcode":"field","args":[{"id":3487,"kind":"name","name":"currentState"},{"id":3488,"kind":"str","value":"providerState"}]},{"id":3490,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3492,"kind":"name","name":"consumer"},{"id":3493,"kind":"app","opcode":"Map","args":[]}]}]},{"id":3496,"kind":"name","name":"providerNode"}]}]}]},{"id":3519,"kind":"app","opcode":"put","args":[{"id":3504,"kind":"app","opcode":"field","args":[{"id":3502,"kind":"app","opcode":"field","args":[{"id":3500,"kind":"name","name":"currentState"},{"id":3501,"kind":"str","value":"providerState"}]},{"id":3503,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3505,"kind":"name","name":"consumer"},{"id":3518,"kind":"app","opcode":"put","args":[{"id":3513,"kind":"app","opcode":"getOrElse","args":[{"id":3510,"kind":"app","opcode":"field","args":[{"id":3508,"kind":"app","opcode":"field","args":[{"id":3506,"kind":"name","name":"currentState"},{"id":3507,"kind":"str","value":"providerState"}]},{"id":3509,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3511,"kind":"name","name":"consumer"},{"id":3512,"kind":"app","opcode":"Map","args":[]}]},{"id":3514,"kind":"name","name":"providerNode"},{"id":3517,"kind":"app","opcode":"Tup","args":[{"id":3515,"kind":"name","name":"oldConsAddr"},{"id":3516,"kind":"name","name":"provValPower"}]}]}]},{"id":3524,"kind":"app","opcode":"field","args":[{"id":3522,"kind":"app","opcode":"field","args":[{"id":3520,"kind":"name","name":"currentState"},{"id":3521,"kind":"str","value":"providerState"}]},{"id":3523,"kind":"str","value":"keyAssignmentReplacements"}]}]}},"expr":{"id":3599,"kind":"let","opdef":{"id":3536,"kind":"def","name":"tmpStateAfterKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3535,"kind":"app","opcode":"with","args":[{"id":3527,"kind":"name","name":"tmpState"},{"id":3528,"kind":"str","value":"providerState"},{"id":3534,"kind":"app","opcode":"with","args":[{"id":3531,"kind":"app","opcode":"field","args":[{"id":3529,"kind":"name","name":"tmpState"},{"id":3530,"kind":"str","value":"providerState"}]},{"id":3532,"kind":"str","value":"keyAssignmentReplacements"},{"id":3533,"kind":"name","name":"newKeyAssignmentReplacement"}]}]}},"expr":{"id":3598,"kind":"let","opdef":{"id":3558,"kind":"def","name":"newValidatorConsumerPubKey","qualifier":"pureval","expr":{"id":3557,"kind":"app","opcode":"put","args":[{"id":3544,"kind":"app","opcode":"getOrElse","args":[{"id":3541,"kind":"app","opcode":"field","args":[{"id":3539,"kind":"app","opcode":"field","args":[{"id":3537,"kind":"name","name":"currentState"},{"id":3538,"kind":"str","value":"providerState"}]},{"id":3540,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3542,"kind":"name","name":"consumer"},{"id":3543,"kind":"app","opcode":"Map","args":[]}]},{"id":3545,"kind":"name","name":"consumer"},{"id":3556,"kind":"app","opcode":"put","args":[{"id":3553,"kind":"app","opcode":"getOrElse","args":[{"id":3550,"kind":"app","opcode":"field","args":[{"id":3548,"kind":"app","opcode":"field","args":[{"id":3546,"kind":"name","name":"currentState"},{"id":3547,"kind":"str","value":"providerState"}]},{"id":3549,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3551,"kind":"name","name":"consumer"},{"id":3552,"kind":"app","opcode":"Map","args":[]}]},{"id":3554,"kind":"name","name":"providerNode"},{"id":3555,"kind":"name","name":"consumerAddr"}]}]}},"expr":{"id":3597,"kind":"let","opdef":{"id":3580,"kind":"def","name":"newValidatorByConsumerAddr","qualifier":"pureval","expr":{"id":3579,"kind":"app","opcode":"put","args":[{"id":3566,"kind":"app","opcode":"getOrElse","args":[{"id":3563,"kind":"app","opcode":"field","args":[{"id":3561,"kind":"app","opcode":"field","args":[{"id":3559,"kind":"name","name":"currentState"},{"id":3560,"kind":"str","value":"providerState"}]},{"id":3562,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3564,"kind":"name","name":"consumer"},{"id":3565,"kind":"app","opcode":"Map","args":[]}]},{"id":3567,"kind":"name","name":"consumer"},{"id":3578,"kind":"app","opcode":"put","args":[{"id":3575,"kind":"app","opcode":"getOrElse","args":[{"id":3572,"kind":"app","opcode":"field","args":[{"id":3570,"kind":"app","opcode":"field","args":[{"id":3568,"kind":"name","name":"currentState"},{"id":3569,"kind":"str","value":"providerState"}]},{"id":3571,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3573,"kind":"name","name":"consumer"},{"id":3574,"kind":"app","opcode":"Map","args":[]}]},{"id":3576,"kind":"name","name":"consumerAddr"},{"id":3577,"kind":"name","name":"providerNode"}]}]}},"expr":{"id":3596,"kind":"let","opdef":{"id":3590,"kind":"def","name":"newProviderState","qualifier":"pureval","expr":{"id":3589,"kind":"app","opcode":"with","args":[{"id":3586,"kind":"app","opcode":"with","args":[{"id":3583,"kind":"app","opcode":"field","args":[{"id":3581,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3582,"kind":"str","value":"providerState"}]},{"id":3584,"kind":"str","value":"validatorConsumerPubKey"},{"id":3585,"kind":"name","name":"newValidatorConsumerPubKey"}]},{"id":3587,"kind":"str","value":"validatorByConsumerAddr"},{"id":3588,"kind":"name","name":"newValidatorByConsumerAddr"}]}},"expr":{"id":3595,"kind":"app","opcode":"Ok","args":[{"id":3594,"kind":"app","opcode":"with","args":[{"id":3591,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3592,"kind":"str","value":"providerState"},{"id":3593,"kind":"name","name":"newProviderState"}]}]}}}}}}}}}}}}}]}}]}}},"typeAnnotation":{"id":3612,"kind":"oper","args":[{"id":3382,"kind":"const","name":"ProtocolState"},{"id":3384,"kind":"const","name":"Chain"},{"id":3386,"kind":"const","name":"Node"},{"id":3388,"kind":"const","name":"ConsumerAddr"}],"res":{"id":3389,"kind":"const","name":"Result"}}},{"id":4288,"kind":"def","name":"recvPacketOnProvider","qualifier":"puredef","expr":{"id":4287,"kind":"lambda","params":[{"id":4118,"name":"currentState"},{"id":4120,"name":"sender"},{"id":4122,"name":"packet"}],"qualifier":"puredef","expr":{"id":4285,"kind":"app","opcode":"ite","args":[{"id":4130,"kind":"app","opcode":"not","args":[{"id":4129,"kind":"app","opcode":"isRunningConsumer","args":[{"id":4125,"kind":"name","name":"sender"},{"id":4128,"kind":"app","opcode":"field","args":[{"id":4126,"kind":"name","name":"currentState"},{"id":4127,"kind":"str","value":"providerState"}]}]}]},{"id":4132,"kind":"app","opcode":"Err","args":[{"id":4131,"kind":"str","value":"Sender is not currently a consumer - must have 'running' status!"}]},{"id":4284,"kind":"app","opcode":"ite","args":[{"id":4146,"kind":"app","opcode":"neq","args":[{"id":4142,"kind":"app","opcode":"field","args":[{"id":4140,"kind":"app","opcode":"head","args":[{"id":4139,"kind":"app","opcode":"get","args":[{"id":4137,"kind":"app","opcode":"field","args":[{"id":4135,"kind":"app","opcode":"field","args":[{"id":4133,"kind":"name","name":"currentState"},{"id":4134,"kind":"str","value":"providerState"}]},{"id":4136,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":4138,"kind":"name","name":"sender"}]}]},{"id":4141,"kind":"str","value":"id"}]},{"id":4145,"kind":"app","opcode":"field","args":[{"id":4143,"kind":"name","name":"packet"},{"id":4144,"kind":"str","value":"id"}]}]},{"id":4148,"kind":"app","opcode":"Err","args":[{"id":4147,"kind":"str","value":"Received maturation is not for the oldest sentVscPacket"}]},{"id":4283,"kind":"let","opdef":{"id":4154,"kind":"def","name":"currentReceivedMaturations","qualifier":"val","expr":{"id":4153,"kind":"app","opcode":"field","args":[{"id":4151,"kind":"app","opcode":"field","args":[{"id":4149,"kind":"name","name":"currentState"},{"id":4150,"kind":"str","value":"providerState"}]},{"id":4152,"kind":"str","value":"receivedMaturations"}]}},"expr":{"id":4282,"kind":"let","opdef":{"id":4159,"kind":"def","name":"newReceivedMaturations","qualifier":"val","expr":{"id":4158,"kind":"app","opcode":"union","args":[{"id":4155,"kind":"name","name":"currentReceivedMaturations"},{"id":4157,"kind":"app","opcode":"Set","args":[{"id":4156,"kind":"name","name":"packet"}]}]}},"expr":{"id":4281,"kind":"let","opdef":{"id":4166,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":4165,"kind":"app","opcode":"with","args":[{"id":4162,"kind":"app","opcode":"field","args":[{"id":4160,"kind":"name","name":"currentState"},{"id":4161,"kind":"str","value":"providerState"}]},{"id":4163,"kind":"str","value":"receivedMaturations"},{"id":4164,"kind":"name","name":"newReceivedMaturations"}]}},"expr":{"id":4280,"kind":"let","opdef":{"id":4175,"kind":"def","name":"newSentVscPacket","qualifier":"val","expr":{"id":4174,"kind":"app","opcode":"tail","args":[{"id":4173,"kind":"app","opcode":"get","args":[{"id":4171,"kind":"app","opcode":"field","args":[{"id":4169,"kind":"app","opcode":"field","args":[{"id":4167,"kind":"name","name":"currentState"},{"id":4168,"kind":"str","value":"providerState"}]},{"id":4170,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":4172,"kind":"name","name":"sender"}]}]}},"expr":{"id":4279,"kind":"let","opdef":{"id":4190,"kind":"def","name":"newState","qualifier":"val","expr":{"id":4189,"kind":"app","opcode":"with","args":[{"id":4176,"kind":"name","name":"currentState"},{"id":4177,"kind":"str","value":"providerState"},{"id":4188,"kind":"app","opcode":"with","args":[{"id":4178,"kind":"name","name":"newProviderState"},{"id":4187,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":4186,"kind":"app","opcode":"set","args":[{"id":4183,"kind":"app","opcode":"field","args":[{"id":4181,"kind":"app","opcode":"field","args":[{"id":4179,"kind":"name","name":"currentState"},{"id":4180,"kind":"str","value":"providerState"}]},{"id":4182,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":4184,"kind":"name","name":"sender"},{"id":4185,"kind":"name","name":"newSentVscPacket"}]}]}]}},"expr":{"id":4278,"kind":"let","opdef":{"id":4205,"kind":"def","name":"consumerAddrsToPrune","qualifier":"pureval","expr":{"id":4204,"kind":"app","opcode":"toSet","args":[{"id":4203,"kind":"app","opcode":"getOrElse","args":[{"id":4198,"kind":"app","opcode":"getOrElse","args":[{"id":4195,"kind":"app","opcode":"field","args":[{"id":4193,"kind":"app","opcode":"field","args":[{"id":4191,"kind":"name","name":"currentState"},{"id":4192,"kind":"str","value":"providerState"}]},{"id":4194,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":4196,"kind":"name","name":"sender"},{"id":4197,"kind":"app","opcode":"Map","args":[]}]},{"id":4201,"kind":"app","opcode":"field","args":[{"id":4199,"kind":"name","name":"packet"},{"id":4200,"kind":"str","value":"id"}]},{"id":4202,"kind":"app","opcode":"List","args":[]}]}]}},"expr":{"id":4277,"kind":"let","opdef":{"id":4214,"kind":"def","name":"senderValByConsAddr","qualifier":"pureval","expr":{"id":4213,"kind":"app","opcode":"getOrElse","args":[{"id":4210,"kind":"app","opcode":"field","args":[{"id":4208,"kind":"app","opcode":"field","args":[{"id":4206,"kind":"name","name":"newState"},{"id":4207,"kind":"str","value":"providerState"}]},{"id":4209,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":4211,"kind":"name","name":"sender"},{"id":4212,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":4276,"kind":"let","opdef":{"id":4230,"kind":"def","name":"newSenderValByConsAddr","qualifier":"pureval","expr":{"id":4229,"kind":"app","opcode":"mapBy","args":[{"id":4223,"kind":"app","opcode":"filter","args":[{"id":4216,"kind":"app","opcode":"keys","args":[{"id":4215,"kind":"name","name":"senderValByConsAddr"}]},{"id":4222,"kind":"lambda","params":[{"id":4217,"name":"consAddr"}],"qualifier":"def","expr":{"id":4221,"kind":"app","opcode":"not","args":[{"id":4220,"kind":"app","opcode":"contains","args":[{"id":4218,"kind":"name","name":"consumerAddrsToPrune"},{"id":4219,"kind":"name","name":"consAddr"}]}]}}]},{"id":4228,"kind":"lambda","params":[{"id":4224,"name":"consAddr"}],"qualifier":"def","expr":{"id":4227,"kind":"app","opcode":"get","args":[{"id":4225,"kind":"name","name":"senderValByConsAddr"},{"id":4226,"kind":"name","name":"consAddr"}]}}]}},"expr":{"id":4275,"kind":"let","opdef":{"id":4266,"kind":"def","name":"newProviderState2","qualifier":"pureval","expr":{"id":4265,"kind":"app","opcode":"with","args":[{"id":4243,"kind":"app","opcode":"with","args":[{"id":4233,"kind":"app","opcode":"field","args":[{"id":4231,"kind":"name","name":"newState"},{"id":4232,"kind":"str","value":"providerState"}]},{"id":4234,"kind":"str","value":"validatorByConsumerAddr"},{"id":4242,"kind":"app","opcode":"put","args":[{"id":4239,"kind":"app","opcode":"field","args":[{"id":4237,"kind":"app","opcode":"field","args":[{"id":4235,"kind":"name","name":"newState"},{"id":4236,"kind":"str","value":"providerState"}]},{"id":4238,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":4240,"kind":"name","name":"sender"},{"id":4241,"kind":"name","name":"newSenderValByConsAddr"}]}]},{"id":4244,"kind":"str","value":"consumerAddrsToPrune"},{"id":4264,"kind":"app","opcode":"put","args":[{"id":4249,"kind":"app","opcode":"field","args":[{"id":4247,"kind":"app","opcode":"field","args":[{"id":4245,"kind":"name","name":"newState"},{"id":4246,"kind":"str","value":"providerState"}]},{"id":4248,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":4250,"kind":"name","name":"sender"},{"id":4263,"kind":"app","opcode":"put","args":[{"id":4258,"kind":"app","opcode":"getOrElse","args":[{"id":4255,"kind":"app","opcode":"field","args":[{"id":4253,"kind":"app","opcode":"field","args":[{"id":4251,"kind":"name","name":"newState"},{"id":4252,"kind":"str","value":"providerState"}]},{"id":4254,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":4256,"kind":"name","name":"sender"},{"id":4257,"kind":"app","opcode":"Map","args":[]}]},{"id":4261,"kind":"app","opcode":"field","args":[{"id":4259,"kind":"name","name":"packet"},{"id":4260,"kind":"str","value":"id"}]},{"id":4262,"kind":"app","opcode":"List","args":[]}]}]}]}},"expr":{"id":4274,"kind":"let","opdef":{"id":4271,"kind":"def","name":"newState2","qualifier":"pureval","expr":{"id":4270,"kind":"app","opcode":"with","args":[{"id":4267,"kind":"name","name":"newState"},{"id":4268,"kind":"str","value":"providerState"},{"id":4269,"kind":"name","name":"newProviderState2"}]}},"expr":{"id":4273,"kind":"app","opcode":"Ok","args":[{"id":4272,"kind":"name","name":"newState2"}]}}}}}}}}}}}]}]}},"typeAnnotation":{"id":4286,"kind":"oper","args":[{"id":4119,"kind":"const","name":"ProtocolState"},{"id":4121,"kind":"const","name":"Chain"},{"id":4123,"kind":"const","name":"VscMaturedPacket"}],"res":{"id":4124,"kind":"const","name":"Result"}}},{"id":3380,"kind":"def","name":"endAndBeginBlockForConsumer","qualifier":"puredef","expr":{"id":3379,"kind":"lambda","params":[{"id":3224,"name":"currentState"},{"id":3226,"name":"chain"},{"id":3228,"name":"timeAdvancement"}],"qualifier":"puredef","expr":{"id":3377,"kind":"app","opcode":"ite","args":[{"id":3237,"kind":"app","opcode":"not","args":[{"id":3236,"kind":"app","opcode":"contains","args":[{"id":3234,"kind":"app","opcode":"keys","args":[{"id":3233,"kind":"app","opcode":"field","args":[{"id":3231,"kind":"name","name":"currentState"},{"id":3232,"kind":"str","value":"consumerStates"}]}]},{"id":3235,"kind":"name","name":"chain"}]}]},{"id":3239,"kind":"app","opcode":"Err","args":[{"id":3238,"kind":"str","value":"chain is not a consumer"}]},{"id":3376,"kind":"let","opdef":{"id":3246,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":3245,"kind":"app","opcode":"get","args":[{"id":3243,"kind":"app","opcode":"field","args":[{"id":3241,"kind":"name","name":"currentState"},{"id":3242,"kind":"str","value":"consumerStates"}]},{"id":3244,"kind":"name","name":"chain"}]},"typeAnnotation":{"id":3240,"kind":"const","name":"ConsumerState"}},"expr":{"id":3375,"kind":"let","opdef":{"id":3251,"kind":"def","name":"oldChainState","qualifier":"val","expr":{"id":3250,"kind":"app","opcode":"field","args":[{"id":3248,"kind":"name","name":"currentConsumerState"},{"id":3249,"kind":"str","value":"chainState"}]},"typeAnnotation":{"id":3247,"kind":"const","name":"ChainState"}},"expr":{"id":3374,"kind":"let","opdef":{"id":3258,"kind":"def","name":"newChainState","qualifier":"val","expr":{"id":3257,"kind":"app","opcode":"endAndBeginBlockShared","args":[{"id":3255,"kind":"app","opcode":"field","args":[{"id":3253,"kind":"name","name":"currentConsumerState"},{"id":3254,"kind":"str","value":"chainState"}]},{"id":3256,"kind":"name","name":"timeAdvancement"}]},"typeAnnotation":{"id":3252,"kind":"const","name":"ChainState"}},"expr":{"id":3373,"kind":"let","opdef":{"id":3264,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":3263,"kind":"app","opcode":"with","args":[{"id":3260,"kind":"name","name":"currentConsumerState"},{"id":3261,"kind":"str","value":"chainState"},{"id":3262,"kind":"name","name":"newChainState"}]},"typeAnnotation":{"id":3259,"kind":"const","name":"ConsumerState"}},"expr":{"id":3372,"kind":"let","opdef":{"id":3293,"kind":"def","name":"maturedPackets","qualifier":"val","expr":{"id":3292,"kind":"app","opcode":"transform","args":[{"id":3286,"kind":"app","opcode":"select","args":[{"id":3267,"kind":"app","opcode":"field","args":[{"id":3265,"kind":"name","name":"newConsumerState"},{"id":3266,"kind":"str","value":"maturationTimes"}]},{"id":3285,"kind":"lambda","params":[{"id":3268,"name":"pair"}],"qualifier":"def","expr":{"id":3284,"kind":"let","opdef":{"id":3272,"kind":"def","name":"packet","qualifier":"val","expr":{"id":3271,"kind":"app","opcode":"item","args":[{"id":3269,"kind":"name","name":"pair"},{"id":3270,"kind":"int","value":1}]}},"expr":{"id":3283,"kind":"let","opdef":{"id":3277,"kind":"def","name":"maturationTime","qualifier":"val","expr":{"id":3276,"kind":"app","opcode":"item","args":[{"id":3274,"kind":"name","name":"pair"},{"id":3275,"kind":"int","value":2}]},"typeAnnotation":{"id":3273,"kind":"const","name":"Time"}},"expr":{"id":3282,"kind":"app","opcode":"ilte","args":[{"id":3278,"kind":"name","name":"maturationTime"},{"id":3281,"kind":"app","opcode":"field","args":[{"id":3279,"kind":"name","name":"newChainState"},{"id":3280,"kind":"str","value":"lastTimestamp"}]}]}}}}]},{"id":3291,"kind":"lambda","params":[{"id":3287,"name":"pair"}],"qualifier":"def","expr":{"id":3290,"kind":"app","opcode":"item","args":[{"id":3288,"kind":"name","name":"pair"},{"id":3289,"kind":"int","value":1}]}}]}},"expr":{"id":3371,"kind":"let","opdef":{"id":3316,"kind":"def","name":"newMaturationTimes","qualifier":"val","expr":{"id":3315,"kind":"app","opcode":"select","args":[{"id":3296,"kind":"app","opcode":"field","args":[{"id":3294,"kind":"name","name":"newConsumerState"},{"id":3295,"kind":"str","value":"maturationTimes"}]},{"id":3314,"kind":"lambda","params":[{"id":3297,"name":"pair"}],"qualifier":"def","expr":{"id":3313,"kind":"let","opdef":{"id":3301,"kind":"def","name":"packet","qualifier":"val","expr":{"id":3300,"kind":"app","opcode":"item","args":[{"id":3298,"kind":"name","name":"pair"},{"id":3299,"kind":"int","value":1}]}},"expr":{"id":3312,"kind":"let","opdef":{"id":3306,"kind":"def","name":"maturationTime","qualifier":"val","expr":{"id":3305,"kind":"app","opcode":"item","args":[{"id":3303,"kind":"name","name":"pair"},{"id":3304,"kind":"int","value":2}]},"typeAnnotation":{"id":3302,"kind":"const","name":"Time"}},"expr":{"id":3311,"kind":"app","opcode":"igt","args":[{"id":3307,"kind":"name","name":"maturationTime"},{"id":3310,"kind":"app","opcode":"field","args":[{"id":3308,"kind":"name","name":"newChainState"},{"id":3309,"kind":"str","value":"lastTimestamp"}]}]}}}}]}},"expr":{"id":3370,"kind":"let","opdef":{"id":3342,"kind":"def","name":"newOutstandingPackets","qualifier":"val","expr":{"id":3341,"kind":"app","opcode":"concat","args":[{"id":3319,"kind":"app","opcode":"field","args":[{"id":3317,"kind":"name","name":"newConsumerState"},{"id":3318,"kind":"str","value":"outstandingPacketsToProvider"}]},{"id":3340,"kind":"app","opcode":"transform","args":[{"id":3320,"kind":"name","name":"maturedPackets"},{"id":3339,"kind":"lambda","params":[{"id":3321,"name":"packet"}],"qualifier":"def","expr":{"id":3338,"kind":"app","opcode":"Rec","args":[{"id":3325,"kind":"str","value":"id"},{"id":3324,"kind":"app","opcode":"field","args":[{"id":3322,"kind":"name","name":"packet"},{"id":3323,"kind":"str","value":"id"}]},{"id":3329,"kind":"str","value":"sendingTime"},{"id":3328,"kind":"app","opcode":"field","args":[{"id":3326,"kind":"name","name":"oldChainState"},{"id":3327,"kind":"str","value":"runningTimestamp"}]},{"id":3337,"kind":"str","value":"timeoutTime"},{"id":3336,"kind":"app","opcode":"iadd","args":[{"id":3332,"kind":"app","opcode":"field","args":[{"id":3330,"kind":"name","name":"oldChainState"},{"id":3331,"kind":"str","value":"runningTimestamp"}]},{"id":3335,"kind":"app","opcode":"get","args":[{"id":3333,"kind":"name","name":"CcvTimeout"},{"id":3334,"kind":"name","name":"chain"}]}]}]}}]}]}},"expr":{"id":3369,"kind":"let","opdef":{"id":3351,"kind":"def","name":"newConsumerState2","qualifier":"val","expr":{"id":3350,"kind":"app","opcode":"with","args":[{"id":3347,"kind":"app","opcode":"with","args":[{"id":3344,"kind":"name","name":"newConsumerState"},{"id":3345,"kind":"str","value":"maturationTimes"},{"id":3346,"kind":"name","name":"newMaturationTimes"}]},{"id":3348,"kind":"str","value":"outstandingPacketsToProvider"},{"id":3349,"kind":"name","name":"newOutstandingPackets"}]},"typeAnnotation":{"id":3343,"kind":"const","name":"ConsumerState"}},"expr":{"id":3368,"kind":"let","opdef":{"id":3358,"kind":"def","name":"newConsumerStates","qualifier":"val","expr":{"id":3357,"kind":"app","opcode":"set","args":[{"id":3354,"kind":"app","opcode":"field","args":[{"id":3352,"kind":"name","name":"currentState"},{"id":3353,"kind":"str","value":"consumerStates"}]},{"id":3355,"kind":"name","name":"chain"},{"id":3356,"kind":"name","name":"newConsumerState2"}]}},"expr":{"id":3367,"kind":"let","opdef":{"id":3364,"kind":"def","name":"newState","qualifier":"val","expr":{"id":3363,"kind":"app","opcode":"with","args":[{"id":3360,"kind":"name","name":"currentState"},{"id":3361,"kind":"str","value":"consumerStates"},{"id":3362,"kind":"name","name":"newConsumerStates"}]},"typeAnnotation":{"id":3359,"kind":"const","name":"ProtocolState"}},"expr":{"id":3366,"kind":"app","opcode":"Ok","args":[{"id":3365,"kind":"name","name":"newState"}]}}}}}}}}}}}]}},"typeAnnotation":{"id":3378,"kind":"oper","args":[{"id":3225,"kind":"const","name":"ProtocolState"},{"id":3227,"kind":"const","name":"Chain"},{"id":3229,"kind":"const","name":"Time"}],"res":{"id":3230,"kind":"const","name":"Result"}}},{"id":2859,"kind":"def","name":"deliverPacketToProvider","qualifier":"puredef","expr":{"id":2858,"kind":"lambda","params":[{"id":2731,"name":"currentState"},{"id":2733,"name":"sender"}],"qualifier":"puredef","expr":{"id":2856,"kind":"app","opcode":"ite","args":[{"id":2743,"kind":"app","opcode":"not","args":[{"id":2742,"kind":"app","opcode":"isRunningConsumer","args":[{"id":2738,"kind":"name","name":"sender"},{"id":2741,"kind":"app","opcode":"field","args":[{"id":2739,"kind":"name","name":"currentState"},{"id":2740,"kind":"str","value":"providerState"}]}]}]},{"id":2747,"kind":"app","opcode":"Tup","args":[{"id":2745,"kind":"app","opcode":"Err","args":[{"id":2744,"kind":"str","value":"Sender is not currently a consumer - must have 'running' status!"}]},{"id":2746,"kind":"bool","value":false}]},{"id":2855,"kind":"app","opcode":"ite","args":[{"id":2757,"kind":"app","opcode":"eq","args":[{"id":2755,"kind":"app","opcode":"length","args":[{"id":2754,"kind":"app","opcode":"field","args":[{"id":2752,"kind":"app","opcode":"get","args":[{"id":2750,"kind":"app","opcode":"field","args":[{"id":2748,"kind":"name","name":"currentState"},{"id":2749,"kind":"str","value":"consumerStates"}]},{"id":2751,"kind":"name","name":"sender"}]},{"id":2753,"kind":"str","value":"outstandingPacketsToProvider"}]}]},{"id":2756,"kind":"int","value":0}]},{"id":2761,"kind":"app","opcode":"Tup","args":[{"id":2759,"kind":"app","opcode":"Err","args":[{"id":2758,"kind":"str","value":"No outstanding packets to deliver"}]},{"id":2760,"kind":"bool","value":false}]},{"id":2854,"kind":"let","opdef":{"id":2770,"kind":"def","name":"packet","qualifier":"val","expr":{"id":2769,"kind":"app","opcode":"head","args":[{"id":2768,"kind":"app","opcode":"field","args":[{"id":2766,"kind":"app","opcode":"get","args":[{"id":2764,"kind":"app","opcode":"field","args":[{"id":2762,"kind":"name","name":"currentState"},{"id":2763,"kind":"str","value":"consumerStates"}]},{"id":2765,"kind":"name","name":"sender"}]},{"id":2767,"kind":"str","value":"outstandingPacketsToProvider"}]}]}},"expr":{"id":2853,"kind":"app","opcode":"ite","args":[{"id":2781,"kind":"app","opcode":"ilte","args":[{"id":2773,"kind":"app","opcode":"field","args":[{"id":2771,"kind":"name","name":"packet"},{"id":2772,"kind":"str","value":"timeoutTime"}]},{"id":2780,"kind":"app","opcode":"field","args":[{"id":2778,"kind":"app","opcode":"field","args":[{"id":2776,"kind":"app","opcode":"field","args":[{"id":2774,"kind":"name","name":"currentState"},{"id":2775,"kind":"str","value":"providerState"}]},{"id":2777,"kind":"str","value":"chainState"}]},{"id":2779,"kind":"str","value":"runningTimestamp"}]}]},{"id":2829,"kind":"let","opdef":{"id":2791,"kind":"def","name":"result","qualifier":"val","expr":{"id":2790,"kind":"app","opcode":"stopConsumers","args":[{"id":2786,"kind":"app","opcode":"field","args":[{"id":2784,"kind":"app","opcode":"field","args":[{"id":2782,"kind":"name","name":"currentState"},{"id":2783,"kind":"str","value":"providerState"}]},{"id":2785,"kind":"str","value":"consumerStatus"}]},{"id":2787,"kind":"app","opcode":"Set","args":[]},{"id":2789,"kind":"app","opcode":"Set","args":[{"id":2788,"kind":"name","name":"sender"}]}]}},"expr":{"id":2828,"kind":"let","opdef":{"id":2795,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":2794,"kind":"app","opcode":"item","args":[{"id":2792,"kind":"name","name":"result"},{"id":2793,"kind":"int","value":1}]}},"expr":{"id":2827,"kind":"let","opdef":{"id":2799,"kind":"def","name":"err","qualifier":"val","expr":{"id":2798,"kind":"app","opcode":"item","args":[{"id":2796,"kind":"name","name":"result"},{"id":2797,"kind":"int","value":2}]}},"expr":{"id":2826,"kind":"app","opcode":"ite","args":[{"id":2802,"kind":"app","opcode":"neq","args":[{"id":2800,"kind":"name","name":"err"},{"id":2801,"kind":"str","value":""}]},{"id":2806,"kind":"app","opcode":"Tup","args":[{"id":2804,"kind":"app","opcode":"Err","args":[{"id":2803,"kind":"name","name":"err"}]},{"id":2805,"kind":"bool","value":false}]},{"id":2825,"kind":"let","opdef":{"id":2813,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":2812,"kind":"app","opcode":"with","args":[{"id":2809,"kind":"app","opcode":"field","args":[{"id":2807,"kind":"name","name":"currentState"},{"id":2808,"kind":"str","value":"providerState"}]},{"id":2810,"kind":"str","value":"consumerStatus"},{"id":2811,"kind":"name","name":"newConsumerStatus"}]}},"expr":{"id":2824,"kind":"let","opdef":{"id":2819,"kind":"def","name":"newState","qualifier":"val","expr":{"id":2818,"kind":"app","opcode":"with","args":[{"id":2815,"kind":"name","name":"currentState"},{"id":2816,"kind":"str","value":"providerState"},{"id":2817,"kind":"name","name":"newProviderState"}]},"typeAnnotation":{"id":2814,"kind":"const","name":"ProtocolState"}},"expr":{"id":2823,"kind":"app","opcode":"Tup","args":[{"id":2821,"kind":"app","opcode":"Ok","args":[{"id":2820,"kind":"name","name":"newState"}]},{"id":2822,"kind":"bool","value":true}]}}}]}}}},{"id":2852,"kind":"let","opdef":{"id":2834,"kind":"def","name":"result","qualifier":"val","expr":{"id":2833,"kind":"app","opcode":"recvPacketOnProvider","args":[{"id":2830,"kind":"name","name":"currentState"},{"id":2831,"kind":"name","name":"sender"},{"id":2832,"kind":"name","name":"packet"}]}},"expr":{"id":2851,"kind":"let","opdef":{"id":2838,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":2837,"kind":"app","opcode":"field","args":[{"id":2835,"kind":"name","name":"result"},{"id":2836,"kind":"str","value":"newState"}]}},"expr":{"id":2850,"kind":"app","opcode":"ite","args":[{"id":2840,"kind":"app","opcode":"hasError","args":[{"id":2839,"kind":"name","name":"result"}]},{"id":2843,"kind":"app","opcode":"Tup","args":[{"id":2841,"kind":"name","name":"result"},{"id":2842,"kind":"bool","value":false}]},{"id":2849,"kind":"app","opcode":"Tup","args":[{"id":2847,"kind":"app","opcode":"Ok","args":[{"id":2846,"kind":"app","opcode":"removeOutstandingPacketFromConsumer","args":[{"id":2844,"kind":"name","name":"tmpState"},{"id":2845,"kind":"name","name":"sender"}]}]},{"id":2848,"kind":"bool","value":false}]}]}}}]}}]}]}},"typeAnnotation":{"id":2857,"kind":"oper","args":[{"id":2732,"kind":"const","name":"ProtocolState"},{"id":2734,"kind":"const","name":"Chain"}],"res":{"id":2737,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2735,"kind":"const","name":"Result"}},{"fieldName":"1","fieldType":{"id":2736,"kind":"bool"}}],"other":{"kind":"empty"}}}}},{"doc":"Ends a block on the provider. This means that the current validator set is committed on chain,\npackets are queued, and the next block is started. Also, consumers that have passed\nthe VscTimeout without responding to a pending vscpacket are dropped.","id":3223,"kind":"def","name":"endAndBeginBlockForProvider","qualifier":"puredef","expr":{"id":3222,"kind":"lambda","params":[{"id":2991,"name":"currentState"},{"id":2993,"name":"timeAdvancement"},{"id":2995,"name":"consumersToStart"},{"id":2998,"name":"consumersToStop"}],"qualifier":"puredef","expr":{"id":3220,"kind":"let","opdef":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]}},"expr":{"id":3219,"kind":"let","opdef":{"id":3019,"kind":"def","name":"timedOutConsumers","qualifier":"val","expr":{"id":3018,"kind":"app","opcode":"filter","args":[{"id":3007,"kind":"app","opcode":"getRunningConsumers","args":[{"id":3006,"kind":"name","name":"currentProviderState"}]},{"id":3017,"kind":"lambda","params":[{"id":3008,"name":"consumer"}],"qualifier":"def","expr":{"id":3016,"kind":"let","opdef":{"id":3012,"kind":"def","name":"res","qualifier":"val","expr":{"id":3011,"kind":"app","opcode":"TimeoutDueToVscTimeout","args":[{"id":3009,"kind":"name","name":"currentState"},{"id":3010,"kind":"name","name":"consumer"}]}},"expr":{"id":3015,"kind":"app","opcode":"item","args":[{"id":3013,"kind":"name","name":"res"},{"id":3014,"kind":"int","value":1}]}}}]}},"expr":{"id":3218,"kind":"let","opdef":{"id":3032,"kind":"def","name":"currentValSets","qualifier":"val","expr":{"id":3031,"kind":"app","opcode":"mapBy","args":[{"id":3020,"kind":"name","name":"ConsumerChains"},{"id":3030,"kind":"lambda","params":[{"id":3021,"name":"consumer"}],"qualifier":"def","expr":{"id":3029,"kind":"app","opcode":"applyKeyAssignmentToValSet","args":[{"id":3022,"kind":"name","name":"currentProviderState"},{"id":3023,"kind":"name","name":"consumer"},{"id":3028,"kind":"app","opcode":"field","args":[{"id":3026,"kind":"app","opcode":"field","args":[{"id":3024,"kind":"name","name":"currentProviderState"},{"id":3025,"kind":"str","value":"chainState"}]},{"id":3027,"kind":"str","value":"currentValidatorSet"}]}]}}]}},"expr":{"id":3217,"kind":"let","opdef":{"id":3048,"kind":"def","name":"newKeyAssignedValSetHistory","qualifier":"val","expr":{"id":3047,"kind":"app","opcode":"mapBy","args":[{"id":3034,"kind":"app","opcode":"keys","args":[{"id":3033,"kind":"name","name":"currentValSets"}]},{"id":3046,"kind":"lambda","params":[{"id":3035,"name":"consumer"}],"qualifier":"def","expr":{"id":3045,"kind":"app","opcode":"prepend","args":[{"id":3041,"kind":"app","opcode":"getOrElse","args":[{"id":3038,"kind":"app","opcode":"field","args":[{"id":3036,"kind":"name","name":"currentProviderState"},{"id":3037,"kind":"str","value":"keyAssignedValSetHistory"}]},{"id":3039,"kind":"name","name":"consumer"},{"id":3040,"kind":"app","opcode":"List","args":[]}]},{"id":3044,"kind":"app","opcode":"get","args":[{"id":3042,"kind":"name","name":"currentValSets"},{"id":3043,"kind":"name","name":"consumer"}]}]}}]}},"expr":{"id":3216,"kind":"let","opdef":{"id":3054,"kind":"def","name":"newChainState","qualifier":"val","expr":{"id":3053,"kind":"app","opcode":"endAndBeginBlockShared","args":[{"id":3051,"kind":"app","opcode":"field","args":[{"id":3049,"kind":"name","name":"currentProviderState"},{"id":3050,"kind":"str","value":"chainState"}]},{"id":3052,"kind":"name","name":"timeAdvancement"}]}},"expr":{"id":3215,"kind":"let","opdef":{"id":3062,"kind":"def","name":"providerStateAfterTimeAdvancement","qualifier":"val","expr":{"id":3061,"kind":"app","opcode":"with","args":[{"id":3058,"kind":"app","opcode":"with","args":[{"id":3055,"kind":"name","name":"currentProviderState"},{"id":3056,"kind":"str","value":"chainState"},{"id":3057,"kind":"name","name":"newChainState"}]},{"id":3059,"kind":"str","value":"keyAssignedValSetHistory"},{"id":3060,"kind":"name","name":"newKeyAssignedValSetHistory"}]}},"expr":{"id":3214,"kind":"let","opdef":{"id":3067,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":3066,"kind":"app","opcode":"with","args":[{"id":3063,"kind":"name","name":"currentState"},{"id":3064,"kind":"str","value":"providerState"},{"id":3065,"kind":"name","name":"providerStateAfterTimeAdvancement"}]}},"expr":{"id":3213,"kind":"let","opdef":{"id":3103,"kind":"def","name":"providerStateAfterSending","qualifier":"val","expr":{"id":3102,"kind":"app","opcode":"ite","args":[{"id":3093,"kind":"app","opcode":"and","args":[{"id":3087,"kind":"app","opcode":"or","args":[{"id":3070,"kind":"app","opcode":"field","args":[{"id":3068,"kind":"name","name":"currentProviderState"},{"id":3069,"kind":"str","value":"providerValidatorSetChangedInThisBlock"}]},{"id":3086,"kind":"app","opcode":"exists","args":[{"id":3074,"kind":"app","opcode":"keys","args":[{"id":3073,"kind":"app","opcode":"field","args":[{"id":3071,"kind":"name","name":"currentProviderState"},{"id":3072,"kind":"str","value":"keyAssignmentReplacements"}]}]},{"id":3085,"kind":"lambda","params":[{"id":3075,"name":"consumer"}],"qualifier":"def","expr":{"id":3084,"kind":"app","opcode":"igt","args":[{"id":3082,"kind":"app","opcode":"size","args":[{"id":3081,"kind":"app","opcode":"keys","args":[{"id":3080,"kind":"app","opcode":"get","args":[{"id":3078,"kind":"app","opcode":"field","args":[{"id":3076,"kind":"name","name":"currentProviderState"},{"id":3077,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3079,"kind":"name","name":"consumer"}]}]}]},{"id":3083,"kind":"int","value":0}]}}]}]},{"id":3092,"kind":"app","opcode":"igt","args":[{"id":3090,"kind":"app","opcode":"size","args":[{"id":3089,"kind":"app","opcode":"getRunningConsumers","args":[{"id":3088,"kind":"name","name":"providerStateAfterTimeAdvancement"}]}]},{"id":3091,"kind":"int","value":0}]}]},{"id":3100,"kind":"app","opcode":"sendVscPackets","args":[{"id":3094,"kind":"name","name":"providerStateAfterTimeAdvancement"},{"id":3099,"kind":"app","opcode":"field","args":[{"id":3097,"kind":"app","opcode":"field","args":[{"id":3095,"kind":"name","name":"currentProviderState"},{"id":3096,"kind":"str","value":"chainState"}]},{"id":3098,"kind":"str","value":"runningTimestamp"}]}]},{"id":3101,"kind":"name","name":"providerStateAfterTimeAdvancement"}]}},"expr":{"id":3212,"kind":"let","opdef":{"id":3111,"kind":"def","name":"res","qualifier":"val","expr":{"id":3110,"kind":"app","opcode":"StartStopConsumers","args":[{"id":3106,"kind":"app","opcode":"field","args":[{"id":3104,"kind":"name","name":"providerStateAfterSending"},{"id":3105,"kind":"str","value":"consumerStatus"}]},{"id":3107,"kind":"name","name":"consumersToStart"},{"id":3108,"kind":"name","name":"consumersToStop"},{"id":3109,"kind":"name","name":"timedOutConsumers"}]}},"expr":{"id":3211,"kind":"let","opdef":{"id":3115,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":3114,"kind":"app","opcode":"item","args":[{"id":3112,"kind":"name","name":"res"},{"id":3113,"kind":"int","value":1}]}},"expr":{"id":3210,"kind":"let","opdef":{"id":3119,"kind":"def","name":"err","qualifier":"val","expr":{"id":3118,"kind":"app","opcode":"item","args":[{"id":3116,"kind":"name","name":"res"},{"id":3117,"kind":"int","value":2}]}},"expr":{"id":3209,"kind":"let","opdef":{"id":3127,"kind":"def","name":"providerStateAfterConsumerAdvancement","qualifier":"val","expr":{"id":3126,"kind":"app","opcode":"with","args":[{"id":3123,"kind":"app","opcode":"with","args":[{"id":3120,"kind":"name","name":"providerStateAfterSending"},{"id":3121,"kind":"str","value":"consumerStatus"},{"id":3122,"kind":"name","name":"newConsumerStatus"}]},{"id":3124,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":3125,"kind":"bool","value":false}]}},"expr":{"id":3208,"kind":"app","opcode":"ite","args":[{"id":3130,"kind":"app","opcode":"neq","args":[{"id":3128,"kind":"name","name":"err"},{"id":3129,"kind":"str","value":""}]},{"id":3132,"kind":"app","opcode":"Err","args":[{"id":3131,"kind":"name","name":"err"}]},{"id":3207,"kind":"let","opdef":{"id":3138,"kind":"def","name":"valSet","qualifier":"val","expr":{"id":3137,"kind":"app","opcode":"field","args":[{"id":3135,"kind":"app","opcode":"field","args":[{"id":3133,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3134,"kind":"str","value":"chainState"}]},{"id":3136,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3206,"kind":"let","opdef":{"id":3194,"kind":"def","name":"newConsumerStateMap","qualifier":"val","expr":{"id":3193,"kind":"app","opcode":"mapBy","args":[{"id":3142,"kind":"app","opcode":"keys","args":[{"id":3141,"kind":"app","opcode":"field","args":[{"id":3139,"kind":"name","name":"tmpState"},{"id":3140,"kind":"str","value":"consumerStates"}]}]},{"id":3192,"kind":"lambda","params":[{"id":3143,"name":"consumer"}],"qualifier":"def","expr":{"id":3191,"kind":"app","opcode":"ite","args":[{"id":3146,"kind":"app","opcode":"contains","args":[{"id":3144,"kind":"name","name":"consumersToStart"},{"id":3145,"kind":"name","name":"consumer"}]},{"id":3185,"kind":"let","opdef":{"id":3153,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":3152,"kind":"app","opcode":"get","args":[{"id":3150,"kind":"app","opcode":"field","args":[{"id":3148,"kind":"name","name":"tmpState"},{"id":3149,"kind":"str","value":"consumerStates"}]},{"id":3151,"kind":"name","name":"consumer"}]},"typeAnnotation":{"id":3147,"kind":"const","name":"ConsumerState"}},"expr":{"id":3184,"kind":"let","opdef":{"id":3182,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":3181,"kind":"app","opcode":"with","args":[{"id":3155,"kind":"name","name":"currentConsumerState"},{"id":3156,"kind":"str","value":"chainState"},{"id":3180,"kind":"app","opcode":"with","args":[{"id":3173,"kind":"app","opcode":"with","args":[{"id":3166,"kind":"app","opcode":"with","args":[{"id":3162,"kind":"app","opcode":"with","args":[{"id":3159,"kind":"app","opcode":"field","args":[{"id":3157,"kind":"name","name":"currentConsumerState"},{"id":3158,"kind":"str","value":"chainState"}]},{"id":3160,"kind":"str","value":"currentValidatorSet"},{"id":3161,"kind":"name","name":"valSet"}]},{"id":3163,"kind":"str","value":"votingPowerHistory"},{"id":3165,"kind":"app","opcode":"List","args":[{"id":3164,"kind":"name","name":"valSet"}]}]},{"id":3167,"kind":"str","value":"lastTimestamp"},{"id":3172,"kind":"app","opcode":"field","args":[{"id":3170,"kind":"app","opcode":"field","args":[{"id":3168,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3169,"kind":"str","value":"chainState"}]},{"id":3171,"kind":"str","value":"lastTimestamp"}]}]},{"id":3174,"kind":"str","value":"runningTimestamp"},{"id":3179,"kind":"app","opcode":"field","args":[{"id":3177,"kind":"app","opcode":"field","args":[{"id":3175,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3176,"kind":"str","value":"chainState"}]},{"id":3178,"kind":"str","value":"runningTimestamp"}]}]}]},"typeAnnotation":{"id":3154,"kind":"const","name":"ConsumerState"}},"expr":{"id":3183,"kind":"name","name":"newConsumerState"}}},{"id":3190,"kind":"app","opcode":"get","args":[{"id":3188,"kind":"app","opcode":"field","args":[{"id":3186,"kind":"name","name":"currentState"},{"id":3187,"kind":"str","value":"consumerStates"}]},{"id":3189,"kind":"name","name":"consumer"}]}]}}]}},"expr":{"id":3205,"kind":"let","opdef":{"id":3202,"kind":"def","name":"newState","qualifier":"val","expr":{"id":3201,"kind":"app","opcode":"with","args":[{"id":3198,"kind":"app","opcode":"with","args":[{"id":3195,"kind":"name","name":"tmpState"},{"id":3196,"kind":"str","value":"providerState"},{"id":3197,"kind":"name","name":"providerStateAfterConsumerAdvancement"}]},{"id":3199,"kind":"str","value":"consumerStates"},{"id":3200,"kind":"name","name":"newConsumerStateMap"}]}},"expr":{"id":3204,"kind":"app","opcode":"Ok","args":[{"id":3203,"kind":"name","name":"newState"}]}}}}]}}}}}}}}}}}}}},"typeAnnotation":{"id":3221,"kind":"oper","args":[{"id":2992,"kind":"const","name":"ProtocolState"},{"id":2994,"kind":"const","name":"Time"},{"id":2997,"kind":"set","elem":{"id":2996,"kind":"const","name":"Chain"}},{"id":3000,"kind":"set","elem":{"id":2999,"kind":"const","name":"Chain"}}],"res":{"id":3001,"kind":"const","name":"Result"}}}]},{"id":2219,"name":"ccv_model","declarations":[{"id":56,"kind":"def","name":"nodes","qualifier":"pureval","expr":{"id":55,"kind":"app","opcode":"Set","args":[{"id":45,"kind":"str","value":"node1"},{"id":46,"kind":"str","value":"node2"},{"id":47,"kind":"str","value":"node3"},{"id":48,"kind":"str","value":"node4"},{"id":49,"kind":"str","value":"node5"},{"id":50,"kind":"str","value":"node6"},{"id":51,"kind":"str","value":"node7"},{"id":52,"kind":"str","value":"node8"},{"id":53,"kind":"str","value":"node9"},{"id":54,"kind":"str","value":"node10"}]}},{"id":68,"kind":"def","name":"consumerAddresses","qualifier":"pureval","expr":{"id":67,"kind":"app","opcode":"Set","args":[{"id":57,"kind":"str","value":"consAddr1"},{"id":58,"kind":"str","value":"consAddr2"},{"id":59,"kind":"str","value":"consAddr3"},{"id":60,"kind":"str","value":"consAddr4"},{"id":61,"kind":"str","value":"consAddr5"},{"id":62,"kind":"str","value":"consAddr6"},{"id":63,"kind":"str","value":"consAddr7"},{"id":64,"kind":"str","value":"consAddr8"},{"id":65,"kind":"str","value":"consAddr9"},{"id":66,"kind":"str","value":"consAddr10"}]}},{"id":8,"kind":"def","name":"consumerChainList","qualifier":"pureval","expr":{"id":7,"kind":"app","opcode":"List","args":[{"id":4,"kind":"str","value":"consumer1"},{"id":5,"kind":"str","value":"consumer2"},{"id":6,"kind":"str","value":"consumer3"}]}},{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]}},{"id":106,"kind":"typedef","name":"Parameters","type":{"id":105,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"VscTimeout","fieldType":{"id":88,"kind":"const","name":"Time"}},{"fieldName":"CcvTimeout","fieldType":{"id":91,"kind":"fun","arg":{"id":89,"kind":"const","name":"Chain"},"res":{"id":90,"kind":"const","name":"Time"}}},{"fieldName":"UnbondingPeriodPerChain","fieldType":{"id":94,"kind":"fun","arg":{"id":92,"kind":"const","name":"Chain"},"res":{"id":93,"kind":"const","name":"Time"}}},{"fieldName":"TrustingPeriodPerChain","fieldType":{"id":97,"kind":"fun","arg":{"id":95,"kind":"const","name":"Chain"},"res":{"id":96,"kind":"const","name":"Time"}}},{"fieldName":"ConsumerChains","fieldType":{"id":99,"kind":"set","elem":{"id":98,"kind":"const","name":"Chain"}}},{"fieldName":"Nodes","fieldType":{"id":101,"kind":"set","elem":{"id":100,"kind":"const","name":"Node"}}},{"fieldName":"InitialValidatorSet","fieldType":{"id":104,"kind":"fun","arg":{"id":102,"kind":"const","name":"Node"},"res":{"id":103,"kind":"int"}}}],"other":{"kind":"empty"}}}},{"id":11,"kind":"def","name":"consumerChains","qualifier":"pureval","expr":{"id":10,"kind":"app","opcode":"toSet","args":[{"id":9,"kind":"name","name":"consumerChainList"}]}},{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},{"id":122,"kind":"typedef","name":"Action","type":{"id":121,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"kind","fieldType":{"id":111,"kind":"str"}},{"fieldName":"consumerChain","fieldType":{"id":112,"kind":"const","name":"Chain"}},{"fieldName":"timeAdvancement","fieldType":{"id":113,"kind":"const","name":"Time"}},{"fieldName":"consumersToStart","fieldType":{"id":115,"kind":"set","elem":{"id":114,"kind":"const","name":"Chain"}}},{"fieldName":"consumersToStop","fieldType":{"id":117,"kind":"set","elem":{"id":116,"kind":"const","name":"Chain"}}},{"fieldName":"validator","fieldType":{"id":118,"kind":"const","name":"Node"}},{"fieldName":"changeAmount","fieldType":{"id":119,"kind":"int"}},{"fieldName":"consumerAddr","fieldType":{"id":120,"kind":"const","name":"ConsumerAddr"}}],"other":{"kind":"empty"}}}},{"id":140,"kind":"def","name":"timeAdvancements","qualifier":"pureval","expr":{"id":139,"kind":"app","opcode":"Set","args":[{"id":128,"kind":"app","opcode":"imul","args":[{"id":126,"kind":"int","value":1},{"id":127,"kind":"name","name":"Second"}]},{"id":131,"kind":"app","opcode":"imul","args":[{"id":129,"kind":"int","value":1},{"id":130,"kind":"name","name":"Day"}]},{"id":138,"kind":"app","opcode":"isub","args":[{"id":134,"kind":"app","opcode":"imul","args":[{"id":132,"kind":"int","value":1},{"id":133,"kind":"name","name":"Week"}]},{"id":137,"kind":"app","opcode":"imul","args":[{"id":135,"kind":"int","value":1},{"id":136,"kind":"name","name":"Hour"}]}]}]}},{"id":20,"kind":"def","name":"defUnbondingPeriod","qualifier":"pureval","expr":{"id":19,"kind":"app","opcode":"imul","args":[{"id":17,"kind":"int","value":2},{"id":18,"kind":"name","name":"Week"}]}},{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},{"id":16,"kind":"def","name":"chains","qualifier":"pureval","expr":{"id":15,"kind":"app","opcode":"union","args":[{"id":12,"kind":"name","name":"consumerChains"},{"id":14,"kind":"app","opcode":"Set","args":[{"id":13,"kind":"name","name":"PROVIDER_CHAIN"}]}]}},{"id":161,"kind":"def","name":"emptyAction","qualifier":"puredef","expr":{"id":160,"kind":"app","opcode":"Rec","args":[{"id":143,"kind":"str","value":"kind"},{"id":142,"kind":"str","value":""},{"id":145,"kind":"str","value":"consumerChain"},{"id":144,"kind":"str","value":""},{"id":149,"kind":"str","value":"timeAdvancement"},{"id":148,"kind":"app","opcode":"imul","args":[{"id":146,"kind":"int","value":0},{"id":147,"kind":"name","name":"Second"}]},{"id":151,"kind":"str","value":"consumersToStart"},{"id":150,"kind":"app","opcode":"Set","args":[]},{"id":153,"kind":"str","value":"consumersToStop"},{"id":152,"kind":"app","opcode":"Set","args":[]},{"id":155,"kind":"str","value":"validator"},{"id":154,"kind":"str","value":""},{"id":157,"kind":"str","value":"changeAmount"},{"id":156,"kind":"int","value":0},{"id":159,"kind":"str","value":"consumerAddr"},{"id":158,"kind":"str","value":""}]},"typeAnnotation":{"id":141,"kind":"const","name":"Action"}},{"id":1641,"kind":"def","name":"providerKeyAssignedValSetHistory","qualifier":"val","expr":{"id":1640,"kind":"app","opcode":"field","args":[{"id":1638,"kind":"app","opcode":"field","args":[{"id":1636,"kind":"name","name":"currentState"},{"id":1637,"kind":"str","value":"providerState"}]},{"id":1639,"kind":"str","value":"keyAssignedValSetHistory"}]}},{"id":169,"kind":"def","name":"providerValidatorHistory","qualifier":"val","expr":{"id":168,"kind":"app","opcode":"field","args":[{"id":166,"kind":"app","opcode":"field","args":[{"id":164,"kind":"app","opcode":"field","args":[{"id":162,"kind":"name","name":"currentState"},{"id":163,"kind":"str","value":"providerState"}]},{"id":165,"kind":"str","value":"chainState"}]},{"id":167,"kind":"str","value":"votingPowerHistory"}]}},{"id":1986,"kind":"def","name":"CanAssignConsumerKey","qualifier":"val","expr":{"id":1985,"kind":"app","opcode":"not","args":[{"id":1984,"kind":"app","opcode":"exists","args":[{"id":1969,"kind":"name","name":"consumerChains"},{"id":1983,"kind":"lambda","params":[{"id":1970,"name":"consumer"}],"qualifier":"def","expr":{"id":1982,"kind":"app","opcode":"igt","args":[{"id":1980,"kind":"app","opcode":"size","args":[{"id":1979,"kind":"app","opcode":"keys","args":[{"id":1978,"kind":"app","opcode":"getOrElse","args":[{"id":1975,"kind":"app","opcode":"field","args":[{"id":1973,"kind":"app","opcode":"field","args":[{"id":1971,"kind":"name","name":"currentState"},{"id":1972,"kind":"str","value":"providerState"}]},{"id":1974,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":1976,"kind":"name","name":"consumer"},{"id":1977,"kind":"app","opcode":"Map","args":[]}]}]}]},{"id":1981,"kind":"int","value":0}]}}]}]}},{"id":2008,"kind":"def","name":"CanHaveConsumerAddresses","qualifier":"val","expr":{"id":2007,"kind":"app","opcode":"not","args":[{"id":2006,"kind":"app","opcode":"exists","args":[{"id":1987,"kind":"name","name":"consumerChains"},{"id":2005,"kind":"lambda","params":[{"id":1988,"name":"consumer"}],"qualifier":"def","expr":{"id":2004,"kind":"app","opcode":"exists","args":[{"id":1998,"kind":"app","opcode":"keys","args":[{"id":1997,"kind":"app","opcode":"field","args":[{"id":1995,"kind":"app","opcode":"field","args":[{"id":1993,"kind":"app","opcode":"get","args":[{"id":1991,"kind":"app","opcode":"field","args":[{"id":1989,"kind":"name","name":"currentState"},{"id":1990,"kind":"str","value":"consumerStates"}]},{"id":1992,"kind":"name","name":"consumer"}]},{"id":1994,"kind":"str","value":"chainState"}]},{"id":1996,"kind":"str","value":"currentValidatorSet"}]}]},{"id":2003,"kind":"lambda","params":[{"id":1999,"name":"addr"}],"qualifier":"def","expr":{"id":2002,"kind":"app","opcode":"in","args":[{"id":2000,"kind":"name","name":"addr"},{"id":2001,"kind":"name","name":"consumerAddresses"}]}}]}}]}]}},{"id":599,"kind":"def","name":"oldest","qualifier":"puredef","expr":{"id":598,"kind":"lambda","params":[{"id":561,"name":"packets"}],"qualifier":"puredef","expr":{"id":596,"kind":"let","opdef":{"id":579,"kind":"def","name":"newestPossiblePacket","qualifier":"val","expr":{"id":578,"kind":"app","opcode":"Rec","args":[{"id":567,"kind":"str","value":"id"},{"id":566,"kind":"int","value":0},{"id":569,"kind":"str","value":"validatorSet"},{"id":568,"kind":"app","opcode":"Map","args":[]},{"id":573,"kind":"str","value":"sendingTime"},{"id":572,"kind":"app","opcode":"imul","args":[{"id":570,"kind":"int","value":9999999999999},{"id":571,"kind":"name","name":"Second"}]},{"id":577,"kind":"str","value":"timeoutTime"},{"id":576,"kind":"app","opcode":"imul","args":[{"id":574,"kind":"int","value":9999999999999},{"id":575,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":565,"kind":"const","name":"VscPacket"}},"expr":{"id":595,"kind":"app","opcode":"fold","args":[{"id":580,"kind":"name","name":"packets"},{"id":581,"kind":"name","name":"newestPossiblePacket"},{"id":594,"kind":"lambda","params":[{"id":582,"name":"res"},{"id":583,"name":"pack"}],"qualifier":"def","expr":{"id":593,"kind":"app","opcode":"ite","args":[{"id":590,"kind":"app","opcode":"ilt","args":[{"id":586,"kind":"app","opcode":"field","args":[{"id":584,"kind":"name","name":"res"},{"id":585,"kind":"str","value":"sendingTime"}]},{"id":589,"kind":"app","opcode":"field","args":[{"id":587,"kind":"name","name":"pack"},{"id":588,"kind":"str","value":"sendingTime"}]}]},{"id":591,"kind":"name","name":"res"},{"id":592,"kind":"name","name":"pack"}]}}]}}},"typeAnnotation":{"id":597,"kind":"oper","args":[{"id":563,"kind":"set","elem":{"id":562,"kind":"const","name":"VscPacket"}}],"res":{"id":564,"kind":"const","name":"VscPacket"}}},{"id":640,"kind":"def","name":"newest","qualifier":"puredef","expr":{"id":639,"kind":"lambda","params":[{"id":600,"name":"packets"}],"qualifier":"puredef","expr":{"id":637,"kind":"let","opdef":{"id":620,"kind":"def","name":"oldestPossiblePacket","qualifier":"val","expr":{"id":619,"kind":"app","opcode":"Rec","args":[{"id":606,"kind":"str","value":"id"},{"id":605,"kind":"int","value":0},{"id":608,"kind":"str","value":"validatorSet"},{"id":607,"kind":"app","opcode":"Map","args":[]},{"id":613,"kind":"str","value":"sendingTime"},{"id":612,"kind":"app","opcode":"imul","args":[{"id":610,"kind":"app","opcode":"iuminus","args":[{"id":609,"kind":"int","value":9999999999}]},{"id":611,"kind":"name","name":"Second"}]},{"id":618,"kind":"str","value":"timeoutTime"},{"id":617,"kind":"app","opcode":"imul","args":[{"id":615,"kind":"app","opcode":"iuminus","args":[{"id":614,"kind":"int","value":9999999999}]},{"id":616,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":604,"kind":"const","name":"VscPacket"}},"expr":{"id":636,"kind":"app","opcode":"fold","args":[{"id":621,"kind":"name","name":"packets"},{"id":622,"kind":"name","name":"oldestPossiblePacket"},{"id":635,"kind":"lambda","params":[{"id":623,"name":"res"},{"id":624,"name":"pack"}],"qualifier":"def","expr":{"id":634,"kind":"app","opcode":"ite","args":[{"id":631,"kind":"app","opcode":"igte","args":[{"id":627,"kind":"app","opcode":"field","args":[{"id":625,"kind":"name","name":"res"},{"id":626,"kind":"str","value":"sendingTime"}]},{"id":630,"kind":"app","opcode":"field","args":[{"id":628,"kind":"name","name":"pack"},{"id":629,"kind":"str","value":"sendingTime"}]}]},{"id":632,"kind":"name","name":"res"},{"id":633,"kind":"name","name":"pack"}]}}]}}},"typeAnnotation":{"id":638,"kind":"oper","args":[{"id":602,"kind":"set","elem":{"id":601,"kind":"const","name":"VscPacket"}}],"res":{"id":603,"kind":"const","name":"VscPacket"}}},{"id":1091,"kind":"def","name":"CanReceiveVscPackets","qualifier":"val","expr":{"id":1090,"kind":"app","opcode":"not","args":[{"id":1089,"kind":"app","opcode":"eq","args":[{"id":1087,"kind":"app","opcode":"field","args":[{"id":1085,"kind":"app","opcode":"nth","args":[{"id":1080,"kind":"name","name":"trace"},{"id":1084,"kind":"app","opcode":"isub","args":[{"id":1082,"kind":"app","opcode":"length","args":[{"id":1081,"kind":"name","name":"trace"}]},{"id":1083,"kind":"int","value":1}]}]},{"id":1086,"kind":"str","value":"kind"}]},{"id":1088,"kind":"str","value":"DeliverVscPacket"}]}]}},{"id":26,"kind":"def","name":"unbondingPeriods","qualifier":"pureval","expr":{"id":25,"kind":"app","opcode":"mapBy","args":[{"id":21,"kind":"name","name":"chains"},{"id":24,"kind":"lambda","params":[{"id":22,"name":"chain"}],"qualifier":"def","expr":{"id":23,"kind":"name","name":"defUnbondingPeriod"}}]}},{"id":36,"kind":"def","name":"trustingPeriods","qualifier":"pureval","expr":{"id":35,"kind":"app","opcode":"mapBy","args":[{"id":27,"kind":"name","name":"chains"},{"id":34,"kind":"lambda","params":[{"id":28,"name":"chain"}],"qualifier":"def","expr":{"id":33,"kind":"app","opcode":"isub","args":[{"id":29,"kind":"name","name":"defUnbondingPeriod"},{"id":32,"kind":"app","opcode":"imul","args":[{"id":30,"kind":"int","value":1},{"id":31,"kind":"name","name":"Hour"}]}]}}]}},{"id":44,"kind":"def","name":"ccvTimeouts","qualifier":"pureval","expr":{"id":43,"kind":"app","opcode":"mapBy","args":[{"id":37,"kind":"name","name":"chains"},{"id":42,"kind":"lambda","params":[{"id":38,"name":"chain"}],"qualifier":"def","expr":{"id":41,"kind":"app","opcode":"imul","args":[{"id":39,"kind":"int","value":3},{"id":40,"kind":"name","name":"Week"}]}}]}},{"id":719,"kind":"def","name":"oldestnewestTest","qualifier":"run","expr":{"id":718,"kind":"let","opdef":{"id":654,"kind":"def","name":"packet1","qualifier":"val","expr":{"id":653,"kind":"app","opcode":"Rec","args":[{"id":642,"kind":"str","value":"id"},{"id":641,"kind":"int","value":1},{"id":644,"kind":"str","value":"validatorSet"},{"id":643,"kind":"app","opcode":"Map","args":[]},{"id":648,"kind":"str","value":"sendingTime"},{"id":647,"kind":"app","opcode":"imul","args":[{"id":645,"kind":"int","value":1},{"id":646,"kind":"name","name":"Second"}]},{"id":652,"kind":"str","value":"timeoutTime"},{"id":651,"kind":"app","opcode":"imul","args":[{"id":649,"kind":"int","value":1},{"id":650,"kind":"name","name":"Second"}]}]}},"expr":{"id":717,"kind":"let","opdef":{"id":668,"kind":"def","name":"packet2","qualifier":"val","expr":{"id":667,"kind":"app","opcode":"Rec","args":[{"id":656,"kind":"str","value":"id"},{"id":655,"kind":"int","value":2},{"id":658,"kind":"str","value":"validatorSet"},{"id":657,"kind":"app","opcode":"Map","args":[]},{"id":662,"kind":"str","value":"sendingTime"},{"id":661,"kind":"app","opcode":"imul","args":[{"id":659,"kind":"int","value":2},{"id":660,"kind":"name","name":"Second"}]},{"id":666,"kind":"str","value":"timeoutTime"},{"id":665,"kind":"app","opcode":"imul","args":[{"id":663,"kind":"int","value":2},{"id":664,"kind":"name","name":"Second"}]}]}},"expr":{"id":716,"kind":"let","opdef":{"id":682,"kind":"def","name":"packet3","qualifier":"val","expr":{"id":681,"kind":"app","opcode":"Rec","args":[{"id":670,"kind":"str","value":"id"},{"id":669,"kind":"int","value":3},{"id":672,"kind":"str","value":"validatorSet"},{"id":671,"kind":"app","opcode":"Map","args":[]},{"id":676,"kind":"str","value":"sendingTime"},{"id":675,"kind":"app","opcode":"imul","args":[{"id":673,"kind":"int","value":3},{"id":674,"kind":"name","name":"Second"}]},{"id":680,"kind":"str","value":"timeoutTime"},{"id":679,"kind":"app","opcode":"imul","args":[{"id":677,"kind":"int","value":3},{"id":678,"kind":"name","name":"Second"}]}]}},"expr":{"id":715,"kind":"app","opcode":"actionAll","args":[{"id":690,"kind":"app","opcode":"assert","args":[{"id":689,"kind":"app","opcode":"eq","args":[{"id":687,"kind":"app","opcode":"oldest","args":[{"id":686,"kind":"app","opcode":"Set","args":[{"id":683,"kind":"name","name":"packet1"},{"id":684,"kind":"name","name":"packet2"},{"id":685,"kind":"name","name":"packet3"}]}]},{"id":688,"kind":"name","name":"packet1"}]}]},{"id":698,"kind":"app","opcode":"assert","args":[{"id":697,"kind":"app","opcode":"eq","args":[{"id":695,"kind":"app","opcode":"oldest","args":[{"id":694,"kind":"app","opcode":"Set","args":[{"id":691,"kind":"name","name":"packet3"},{"id":692,"kind":"name","name":"packet2"},{"id":693,"kind":"name","name":"packet1"}]}]},{"id":696,"kind":"name","name":"packet1"}]}]},{"id":706,"kind":"app","opcode":"assert","args":[{"id":705,"kind":"app","opcode":"eq","args":[{"id":703,"kind":"app","opcode":"newest","args":[{"id":702,"kind":"app","opcode":"Set","args":[{"id":699,"kind":"name","name":"packet1"},{"id":700,"kind":"name","name":"packet2"},{"id":701,"kind":"name","name":"packet3"}]}]},{"id":704,"kind":"name","name":"packet3"}]}]},{"id":714,"kind":"app","opcode":"assert","args":[{"id":713,"kind":"app","opcode":"eq","args":[{"id":711,"kind":"app","opcode":"newest","args":[{"id":710,"kind":"app","opcode":"Set","args":[{"id":707,"kind":"name","name":"packet3"},{"id":708,"kind":"name","name":"packet2"},{"id":709,"kind":"name","name":"packet1"}]}]},{"id":712,"kind":"name","name":"packet3"}]}]}]}}}}},{"id":752,"kind":"def","name":"ValUpdatePrecondition","qualifier":"val","expr":{"id":751,"kind":"app","opcode":"eq","args":[{"id":749,"kind":"app","opcode":"field","args":[{"id":747,"kind":"app","opcode":"nth","args":[{"id":742,"kind":"name","name":"trace"},{"id":746,"kind":"app","opcode":"isub","args":[{"id":744,"kind":"app","opcode":"length","args":[{"id":743,"kind":"name","name":"trace"}]},{"id":745,"kind":"int","value":1}]}]},{"id":748,"kind":"str","value":"kind"}]},{"id":750,"kind":"str","value":"EndAndBeginBlockForProvider"}]}},{"id":913,"kind":"def","name":"MaturationPrecondition","qualifier":"val","expr":{"id":912,"kind":"app","opcode":"eq","args":[{"id":910,"kind":"app","opcode":"field","args":[{"id":908,"kind":"app","opcode":"nth","args":[{"id":903,"kind":"name","name":"trace"},{"id":907,"kind":"app","opcode":"isub","args":[{"id":905,"kind":"app","opcode":"length","args":[{"id":904,"kind":"name","name":"trace"}]},{"id":906,"kind":"int","value":1}]}]},{"id":909,"kind":"str","value":"kind"}]},{"id":911,"kind":"str","value":"EndAndBeginBlockForConsumer"}]}},{"id":922,"kind":"def","name":"ConsumerWithPotentialMaturations","qualifier":"val","expr":{"id":921,"kind":"app","opcode":"field","args":[{"id":919,"kind":"app","opcode":"nth","args":[{"id":914,"kind":"name","name":"trace"},{"id":918,"kind":"app","opcode":"isub","args":[{"id":916,"kind":"app","opcode":"length","args":[{"id":915,"kind":"name","name":"trace"}]},{"id":917,"kind":"int","value":1}]}]},{"id":920,"kind":"str","value":"consumerChain"}]}},{"id":931,"kind":"def","name":"lastTimeAdvancement","qualifier":"val","expr":{"id":930,"kind":"app","opcode":"field","args":[{"id":928,"kind":"app","opcode":"nth","args":[{"id":923,"kind":"name","name":"trace"},{"id":927,"kind":"app","opcode":"isub","args":[{"id":925,"kind":"app","opcode":"length","args":[{"id":924,"kind":"name","name":"trace"}]},{"id":926,"kind":"int","value":1}]}]},{"id":929,"kind":"str","value":"timeAdvancement"}]}},{"id":1928,"kind":"def","name":"NoProviderReuse","qualifier":"val","expr":{"id":1927,"kind":"app","opcode":"forall","args":[{"id":1889,"kind":"name","name":"consumerChains"},{"id":1926,"kind":"lambda","params":[{"id":1890,"name":"consumer"}],"qualifier":"def","expr":{"id":1925,"kind":"let","opdef":{"id":1899,"kind":"def","name":"valConsPk","qualifier":"val","expr":{"id":1898,"kind":"app","opcode":"getOrElse","args":[{"id":1895,"kind":"app","opcode":"field","args":[{"id":1893,"kind":"app","opcode":"field","args":[{"id":1891,"kind":"name","name":"currentState"},{"id":1892,"kind":"str","value":"providerState"}]},{"id":1894,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":1896,"kind":"name","name":"consumer"},{"id":1897,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":1924,"kind":"app","opcode":"forall","args":[{"id":1901,"kind":"app","opcode":"keys","args":[{"id":1900,"kind":"name","name":"valConsPk"}]},{"id":1923,"kind":"lambda","params":[{"id":1902,"name":"node"}],"qualifier":"def","expr":{"id":1922,"kind":"let","opdef":{"id":1906,"kind":"def","name":"consAddr","qualifier":"val","expr":{"id":1905,"kind":"app","opcode":"get","args":[{"id":1903,"kind":"name","name":"valConsPk"},{"id":1904,"kind":"name","name":"node"}]}},"expr":{"id":1921,"kind":"app","opcode":"or","args":[{"id":1909,"kind":"app","opcode":"eq","args":[{"id":1907,"kind":"name","name":"consAddr"},{"id":1908,"kind":"name","name":"node"}]},{"id":1920,"kind":"app","opcode":"not","args":[{"id":1919,"kind":"app","opcode":"contains","args":[{"id":1917,"kind":"app","opcode":"keys","args":[{"id":1916,"kind":"app","opcode":"field","args":[{"id":1914,"kind":"app","opcode":"field","args":[{"id":1912,"kind":"app","opcode":"field","args":[{"id":1910,"kind":"name","name":"currentState"},{"id":1911,"kind":"str","value":"providerState"}]},{"id":1913,"kind":"str","value":"chainState"}]},{"id":1915,"kind":"str","value":"currentValidatorSet"}]}]},{"id":1918,"kind":"name","name":"consAddr"}]}]}]}}}]}}}]}},{"id":1968,"kind":"def","name":"NoDuplicationOnSameConsumer","qualifier":"val","expr":{"id":1967,"kind":"app","opcode":"forall","args":[{"id":1929,"kind":"name","name":"consumerChains"},{"id":1966,"kind":"lambda","params":[{"id":1930,"name":"consumer"}],"qualifier":"def","expr":{"id":1965,"kind":"let","opdef":{"id":1939,"kind":"def","name":"valConsPk","qualifier":"val","expr":{"id":1938,"kind":"app","opcode":"getOrElse","args":[{"id":1935,"kind":"app","opcode":"field","args":[{"id":1933,"kind":"app","opcode":"field","args":[{"id":1931,"kind":"name","name":"currentState"},{"id":1932,"kind":"str","value":"providerState"}]},{"id":1934,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":1936,"kind":"name","name":"consumer"},{"id":1937,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":1964,"kind":"app","opcode":"forall","args":[{"id":1941,"kind":"app","opcode":"keys","args":[{"id":1940,"kind":"name","name":"valConsPk"}]},{"id":1963,"kind":"lambda","params":[{"id":1942,"name":"node"}],"qualifier":"def","expr":{"id":1962,"kind":"let","opdef":{"id":1946,"kind":"def","name":"consAddr","qualifier":"val","expr":{"id":1945,"kind":"app","opcode":"get","args":[{"id":1943,"kind":"name","name":"valConsPk"},{"id":1944,"kind":"name","name":"node"}]}},"expr":{"id":1961,"kind":"app","opcode":"not","args":[{"id":1960,"kind":"app","opcode":"exists","args":[{"id":1948,"kind":"app","opcode":"keys","args":[{"id":1947,"kind":"name","name":"valConsPk"}]},{"id":1959,"kind":"lambda","params":[{"id":1949,"name":"otherNode"}],"qualifier":"def","expr":{"id":1958,"kind":"app","opcode":"and","args":[{"id":1952,"kind":"app","opcode":"neq","args":[{"id":1950,"kind":"name","name":"otherNode"},{"id":1951,"kind":"name","name":"node"}]},{"id":1957,"kind":"app","opcode":"eq","args":[{"id":1955,"kind":"app","opcode":"get","args":[{"id":1953,"kind":"name","name":"valConsPk"},{"id":1954,"kind":"name","name":"otherNode"}]},{"id":1956,"kind":"name","name":"consAddr"}]}]}}]}]}}}]}}}]}},{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},{"id":943,"kind":"def","name":"lastBlockTime","qualifier":"val","expr":{"id":942,"kind":"app","opcode":"isub","args":[{"id":940,"kind":"app","opcode":"field","args":[{"id":938,"kind":"app","opcode":"field","args":[{"id":936,"kind":"app","opcode":"get","args":[{"id":934,"kind":"app","opcode":"field","args":[{"id":932,"kind":"name","name":"currentState"},{"id":933,"kind":"str","value":"consumerStates"}]},{"id":935,"kind":"name","name":"ConsumerWithPotentialMaturations"}]},{"id":937,"kind":"str","value":"chainState"}]},{"id":939,"kind":"str","value":"lastTimestamp"}]},{"id":941,"kind":"name","name":"lastTimeAdvancement"}]}},{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]}},{"id":179,"kind":"def","name":"nonConsumers","qualifier":"val","expr":{"id":178,"kind":"app","opcode":"getNonConsumers","args":[{"id":177,"kind":"app","opcode":"field","args":[{"id":175,"kind":"name","name":"currentState"},{"id":176,"kind":"str","value":"providerState"}]}]}},{"id":1888,"kind":"def","name":"KeyAssignmentRulesInv","qualifier":"val","expr":{"id":1887,"kind":"app","opcode":"and","args":[{"id":1885,"kind":"name","name":"NoProviderReuse"},{"id":1886,"kind":"name","name":"NoDuplicationOnSameConsumer"}]}},{"id":965,"kind":"def","name":"MatureOnTimeInv","qualifier":"val","expr":{"id":964,"kind":"app","opcode":"implies","args":[{"id":944,"kind":"name","name":"MaturationPrecondition"},{"id":963,"kind":"app","opcode":"forall","args":[{"id":952,"kind":"app","opcode":"toSet","args":[{"id":951,"kind":"app","opcode":"field","args":[{"id":949,"kind":"app","opcode":"get","args":[{"id":947,"kind":"app","opcode":"field","args":[{"id":945,"kind":"name","name":"currentState"},{"id":946,"kind":"str","value":"consumerStates"}]},{"id":948,"kind":"name","name":"ConsumerWithPotentialMaturations"}]},{"id":950,"kind":"str","value":"maturationTimes"}]}]},{"id":962,"kind":"lambda","params":[{"id":953,"name":"pair"}],"qualifier":"def","expr":{"id":961,"kind":"let","opdef":{"id":957,"kind":"def","name":"maturationTime","qualifier":"val","expr":{"id":956,"kind":"app","opcode":"item","args":[{"id":954,"kind":"name","name":"pair"},{"id":955,"kind":"int","value":2}]}},"expr":{"id":960,"kind":"app","opcode":"igt","args":[{"id":958,"kind":"name","name":"maturationTime"},{"id":959,"kind":"name","name":"lastBlockTime"}]}}}]}]}},{"id":1018,"kind":"def","name":"EventuallyMatureOnProviderInv","qualifier":"val","expr":{"id":1017,"kind":"app","opcode":"forall","args":[{"id":966,"kind":"name","name":"runningConsumers"},{"id":1016,"kind":"lambda","params":[{"id":967,"name":"consumer"}],"qualifier":"def","expr":{"id":1015,"kind":"let","opdef":{"id":976,"kind":"def","name":"sentPackets","qualifier":"val","expr":{"id":975,"kind":"app","opcode":"toSet","args":[{"id":974,"kind":"app","opcode":"get","args":[{"id":972,"kind":"app","opcode":"field","args":[{"id":970,"kind":"app","opcode":"field","args":[{"id":968,"kind":"name","name":"currentState"},{"id":969,"kind":"str","value":"providerState"}]},{"id":971,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":973,"kind":"name","name":"consumer"}]}]}},"expr":{"id":1014,"kind":"app","opcode":"forall","args":[{"id":977,"kind":"name","name":"sentPackets"},{"id":1013,"kind":"lambda","params":[{"id":978,"name":"packet"}],"qualifier":"def","expr":{"id":1012,"kind":"app","opcode":"or","args":[{"id":1002,"kind":"app","opcode":"or","args":[{"id":992,"kind":"app","opcode":"not","args":[{"id":991,"kind":"app","opcode":"ilt","args":[{"id":983,"kind":"app","opcode":"iadd","args":[{"id":981,"kind":"app","opcode":"field","args":[{"id":979,"kind":"name","name":"packet"},{"id":980,"kind":"str","value":"sendingTime"}]},{"id":982,"kind":"name","name":"VscTimeout"}]},{"id":990,"kind":"app","opcode":"field","args":[{"id":988,"kind":"app","opcode":"field","args":[{"id":986,"kind":"app","opcode":"field","args":[{"id":984,"kind":"name","name":"currentState"},{"id":985,"kind":"str","value":"providerState"}]},{"id":987,"kind":"str","value":"chainState"}]},{"id":989,"kind":"str","value":"lastTimestamp"}]}]}]},{"id":1001,"kind":"app","opcode":"eq","args":[{"id":999,"kind":"app","opcode":"get","args":[{"id":997,"kind":"app","opcode":"field","args":[{"id":995,"kind":"app","opcode":"field","args":[{"id":993,"kind":"name","name":"currentState"},{"id":994,"kind":"str","value":"providerState"}]},{"id":996,"kind":"str","value":"consumerStatus"}]},{"id":998,"kind":"name","name":"consumer"}]},{"id":1000,"kind":"name","name":"STOPPED"}]}]},{"id":1011,"kind":"app","opcode":"eq","args":[{"id":1009,"kind":"app","opcode":"get","args":[{"id":1007,"kind":"app","opcode":"field","args":[{"id":1005,"kind":"app","opcode":"field","args":[{"id":1003,"kind":"name","name":"currentState"},{"id":1004,"kind":"str","value":"providerState"}]},{"id":1006,"kind":"str","value":"consumerStatus"}]},{"id":1008,"kind":"name","name":"consumer"}]},{"id":1010,"kind":"name","name":"TIMEDOUT"}]}]}}]}}}]}},{"id":1033,"kind":"def","name":"CanRunConsumer","qualifier":"val","expr":{"id":1032,"kind":"app","opcode":"not","args":[{"id":1031,"kind":"app","opcode":"exists","args":[{"id":1019,"kind":"name","name":"ConsumerChains"},{"id":1030,"kind":"lambda","params":[{"id":1020,"name":"consumer"}],"qualifier":"def","expr":{"id":1029,"kind":"app","opcode":"eq","args":[{"id":1027,"kind":"app","opcode":"get","args":[{"id":1025,"kind":"app","opcode":"field","args":[{"id":1023,"kind":"app","opcode":"field","args":[{"id":1021,"kind":"name","name":"currentState"},{"id":1022,"kind":"str","value":"providerState"}]},{"id":1024,"kind":"str","value":"consumerStatus"}]},{"id":1026,"kind":"name","name":"consumer"}]},{"id":1028,"kind":"name","name":"RUNNING"}]}}]}]}},{"id":1048,"kind":"def","name":"CanStopConsumer","qualifier":"val","expr":{"id":1047,"kind":"app","opcode":"not","args":[{"id":1046,"kind":"app","opcode":"exists","args":[{"id":1034,"kind":"name","name":"ConsumerChains"},{"id":1045,"kind":"lambda","params":[{"id":1035,"name":"consumer"}],"qualifier":"def","expr":{"id":1044,"kind":"app","opcode":"eq","args":[{"id":1042,"kind":"app","opcode":"get","args":[{"id":1040,"kind":"app","opcode":"field","args":[{"id":1038,"kind":"app","opcode":"field","args":[{"id":1036,"kind":"name","name":"currentState"},{"id":1037,"kind":"str","value":"providerState"}]},{"id":1039,"kind":"str","value":"consumerStatus"}]},{"id":1041,"kind":"name","name":"consumer"}]},{"id":1043,"kind":"name","name":"STOPPED"}]}}]}]}},{"id":1063,"kind":"def","name":"CanTimeoutConsumer","qualifier":"val","expr":{"id":1062,"kind":"app","opcode":"not","args":[{"id":1061,"kind":"app","opcode":"exists","args":[{"id":1049,"kind":"name","name":"ConsumerChains"},{"id":1060,"kind":"lambda","params":[{"id":1050,"name":"consumer"}],"qualifier":"def","expr":{"id":1059,"kind":"app","opcode":"eq","args":[{"id":1057,"kind":"app","opcode":"get","args":[{"id":1055,"kind":"app","opcode":"field","args":[{"id":1053,"kind":"app","opcode":"field","args":[{"id":1051,"kind":"name","name":"currentState"},{"id":1052,"kind":"str","value":"providerState"}]},{"id":1054,"kind":"str","value":"consumerStatus"}]},{"id":1056,"kind":"name","name":"consumer"}]},{"id":1058,"kind":"name","name":"TIMEDOUT"}]}}]}]}},{"id":1079,"kind":"def","name":"CanSendVscPackets","qualifier":"val","expr":{"id":1078,"kind":"app","opcode":"not","args":[{"id":1077,"kind":"app","opcode":"exists","args":[{"id":1064,"kind":"name","name":"ConsumerChains"},{"id":1076,"kind":"lambda","params":[{"id":1065,"name":"consumer"}],"qualifier":"def","expr":{"id":1075,"kind":"app","opcode":"igt","args":[{"id":1073,"kind":"app","opcode":"length","args":[{"id":1072,"kind":"app","opcode":"get","args":[{"id":1070,"kind":"app","opcode":"field","args":[{"id":1068,"kind":"app","opcode":"field","args":[{"id":1066,"kind":"name","name":"currentState"},{"id":1067,"kind":"str","value":"providerState"}]},{"id":1069,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":1071,"kind":"name","name":"consumer"}]}]},{"id":1074,"kind":"int","value":0}]}}]}]}},{"id":1107,"kind":"def","name":"CanSendVscMaturedPackets","qualifier":"val","expr":{"id":1106,"kind":"app","opcode":"not","args":[{"id":1105,"kind":"app","opcode":"exists","args":[{"id":1092,"kind":"name","name":"ConsumerChains"},{"id":1104,"kind":"lambda","params":[{"id":1093,"name":"consumer"}],"qualifier":"def","expr":{"id":1103,"kind":"app","opcode":"igt","args":[{"id":1101,"kind":"app","opcode":"length","args":[{"id":1100,"kind":"app","opcode":"field","args":[{"id":1098,"kind":"app","opcode":"get","args":[{"id":1096,"kind":"app","opcode":"field","args":[{"id":1094,"kind":"name","name":"currentState"},{"id":1095,"kind":"str","value":"consumerStates"}]},{"id":1097,"kind":"name","name":"consumer"}]},{"id":1099,"kind":"str","value":"outstandingPacketsToProvider"}]}]},{"id":1102,"kind":"int","value":0}]}}]}]}},{"id":1121,"kind":"def","name":"CanReceiveMaturations","qualifier":"val","expr":{"id":1120,"kind":"app","opcode":"not","args":[{"id":1119,"kind":"app","opcode":"exists","args":[{"id":1108,"kind":"name","name":"ConsumerChains"},{"id":1118,"kind":"lambda","params":[{"id":1109,"name":"consumer"}],"qualifier":"def","expr":{"id":1117,"kind":"app","opcode":"igt","args":[{"id":1115,"kind":"app","opcode":"size","args":[{"id":1114,"kind":"app","opcode":"field","args":[{"id":1112,"kind":"app","opcode":"field","args":[{"id":1110,"kind":"name","name":"currentState"},{"id":1111,"kind":"str","value":"providerState"}]},{"id":1113,"kind":"str","value":"receivedMaturations"}]}]},{"id":1116,"kind":"int","value":0}]}}]}]}},{"id":1635,"kind":"def","name":"KeyAssignment","qualifier":"action","expr":{"id":1634,"kind":"lambda","params":[{"id":1589,"name":"chain"},{"id":1591,"name":"validator"},{"id":1593,"name":"consumerAddr"}],"qualifier":"action","expr":{"id":1632,"kind":"let","opdef":{"id":1601,"kind":"def","name":"result","qualifier":"val","expr":{"id":1600,"kind":"app","opcode":"assignConsumerKey","args":[{"id":1596,"kind":"name","name":"currentState"},{"id":1597,"kind":"name","name":"chain"},{"id":1598,"kind":"name","name":"validator"},{"id":1599,"kind":"name","name":"consumerAddr"}]}},"expr":{"id":1631,"kind":"app","opcode":"actionAll","args":[{"id":1605,"kind":"app","opcode":"eq","args":[{"id":1603,"kind":"app","opcode":"hasError","args":[{"id":1602,"kind":"name","name":"result"}]},{"id":1604,"kind":"bool","value":false}]},{"id":1610,"kind":"app","opcode":"assign","args":[{"id":1609,"kind":"name","name":"currentState"},{"id":1608,"kind":"app","opcode":"field","args":[{"id":1606,"kind":"name","name":"result"},{"id":1607,"kind":"str","value":"newState"}]}]},{"id":1627,"kind":"app","opcode":"assign","args":[{"id":1626,"kind":"name","name":"trace"},{"id":1625,"kind":"app","opcode":"append","args":[{"id":1611,"kind":"name","name":"trace"},{"id":1624,"kind":"app","opcode":"with","args":[{"id":1623,"kind":"app","opcode":"with","args":[{"id":1622,"kind":"app","opcode":"with","args":[{"id":1621,"kind":"app","opcode":"with","args":[{"id":1612,"kind":"name","name":"emptyAction"},{"id":1614,"kind":"str","value":"kind"},{"id":1613,"kind":"str","value":"KeyAssignment"}]},{"id":1616,"kind":"str","value":"consumerChain"},{"id":1615,"kind":"name","name":"chain"}]},{"id":1618,"kind":"str","value":"validator"},{"id":1617,"kind":"name","name":"validator"}]},{"id":1620,"kind":"str","value":"consumerAddr"},{"id":1619,"kind":"name","name":"consumerAddr"}]}]}]},{"id":1630,"kind":"app","opcode":"assign","args":[{"id":1629,"kind":"name","name":"params"},{"id":1628,"kind":"name","name":"params"}]}]}}},"typeAnnotation":{"id":1633,"kind":"oper","args":[{"id":1590,"kind":"const","name":"Chain"},{"id":1592,"kind":"const","name":"Node"},{"id":1594,"kind":"const","name":"ConsumerAddr"}],"res":{"id":1595,"kind":"bool"}}},{"id":1666,"kind":"def","name":"ValidatorSetHasExistedKeyAssignmentInv","qualifier":"val","expr":{"id":1665,"kind":"app","opcode":"forall","args":[{"id":1642,"kind":"name","name":"runningConsumers"},{"id":1664,"kind":"lambda","params":[{"id":1643,"name":"chain"}],"qualifier":"def","expr":{"id":1663,"kind":"app","opcode":"forall","args":[{"id":1653,"kind":"app","opcode":"toSet","args":[{"id":1652,"kind":"app","opcode":"field","args":[{"id":1650,"kind":"app","opcode":"field","args":[{"id":1648,"kind":"app","opcode":"get","args":[{"id":1646,"kind":"app","opcode":"field","args":[{"id":1644,"kind":"name","name":"currentState"},{"id":1645,"kind":"str","value":"consumerStates"}]},{"id":1647,"kind":"name","name":"chain"}]},{"id":1649,"kind":"str","value":"chainState"}]},{"id":1651,"kind":"str","value":"votingPowerHistory"}]}]},{"id":1662,"kind":"lambda","params":[{"id":1654,"name":"validatorSet"}],"qualifier":"def","expr":{"id":1661,"kind":"app","opcode":"contains","args":[{"id":1659,"kind":"app","opcode":"toSet","args":[{"id":1658,"kind":"app","opcode":"getOrElse","args":[{"id":1655,"kind":"name","name":"providerKeyAssignedValSetHistory"},{"id":1656,"kind":"name","name":"chain"},{"id":1657,"kind":"app","opcode":"List","args":[]}]}]},{"id":1660,"kind":"name","name":"validatorSet"}]}}]}}]}},{"id":1729,"kind":"def","name":"ValidatorUpdatesArePropagatedKeyAssignmentInv","qualifier":"val","expr":{"id":1728,"kind":"app","opcode":"implies","args":[{"id":1673,"kind":"app","opcode":"and","args":[{"id":1667,"kind":"name","name":"ValUpdatePrecondition"},{"id":1672,"kind":"app","opcode":"field","args":[{"id":1670,"kind":"app","opcode":"field","args":[{"id":1668,"kind":"name","name":"currentState"},{"id":1669,"kind":"str","value":"providerState"}]},{"id":1671,"kind":"str","value":"providerValidatorSetChangedInThisBlock"}]}]},{"id":1727,"kind":"let","opdef":{"id":1676,"kind":"def","name":"providerValSetInCurBlock","qualifier":"val","expr":{"id":1675,"kind":"app","opcode":"head","args":[{"id":1674,"kind":"name","name":"providerValidatorHistory"}]}},"expr":{"id":1726,"kind":"app","opcode":"forall","args":[{"id":1677,"kind":"name","name":"runningConsumers"},{"id":1725,"kind":"let","opdef":{"id":1681,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":1680,"kind":"app","opcode":"field","args":[{"id":1678,"kind":"name","name":"currentState"},{"id":1679,"kind":"str","value":"providerState"}]}},"expr":{"id":1724,"kind":"lambda","params":[{"id":1682,"name":"consumer"}],"qualifier":"def","expr":{"id":1723,"kind":"app","opcode":"or","args":[{"id":1699,"kind":"app","opcode":"exists","args":[{"id":1688,"kind":"app","opcode":"toSet","args":[{"id":1687,"kind":"app","opcode":"get","args":[{"id":1685,"kind":"app","opcode":"field","args":[{"id":1683,"kind":"name","name":"providerState"},{"id":1684,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":1686,"kind":"name","name":"consumer"}]}]},{"id":1698,"kind":"lambda","params":[{"id":1689,"name":"packet"}],"qualifier":"def","expr":{"id":1697,"kind":"app","opcode":"eq","args":[{"id":1692,"kind":"app","opcode":"field","args":[{"id":1690,"kind":"name","name":"packet"},{"id":1691,"kind":"str","value":"validatorSet"}]},{"id":1696,"kind":"app","opcode":"applyKeyAssignmentToValSet","args":[{"id":1693,"kind":"name","name":"providerState"},{"id":1694,"kind":"name","name":"consumer"},{"id":1695,"kind":"name","name":"providerValSetInCurBlock"}]}]}}]},{"id":1722,"kind":"app","opcode":"and","args":[{"id":1710,"kind":"app","opcode":"eq","args":[{"id":1708,"kind":"app","opcode":"field","args":[{"id":1706,"kind":"app","opcode":"field","args":[{"id":1704,"kind":"app","opcode":"get","args":[{"id":1702,"kind":"app","opcode":"field","args":[{"id":1700,"kind":"name","name":"currentState"},{"id":1701,"kind":"str","value":"consumerStates"}]},{"id":1703,"kind":"name","name":"consumer"}]},{"id":1705,"kind":"str","value":"chainState"}]},{"id":1707,"kind":"str","value":"lastTimestamp"}]},{"id":1709,"kind":"int","value":0}]},{"id":1721,"kind":"app","opcode":"eq","args":[{"id":1719,"kind":"app","opcode":"field","args":[{"id":1717,"kind":"app","opcode":"field","args":[{"id":1715,"kind":"app","opcode":"get","args":[{"id":1713,"kind":"app","opcode":"field","args":[{"id":1711,"kind":"name","name":"currentState"},{"id":1712,"kind":"str","value":"consumerStates"}]},{"id":1714,"kind":"name","name":"consumer"}]},{"id":1716,"kind":"str","value":"chainState"}]},{"id":1718,"kind":"str","value":"currentValidatorSet"}]},{"id":1720,"kind":"name","name":"providerValSetInCurBlock"}]}]}]}}}]}}]}},{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"typeAnnotation":{"id":306,"kind":"oper","args":[{"id":269,"kind":"const","name":"Node"},{"id":271,"kind":"int"}],"res":{"id":272,"kind":"bool"}}},{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"typeAnnotation":{"id":435,"kind":"oper","args":[{"id":390,"kind":"const","name":"Time"},{"id":393,"kind":"set","elem":{"id":392,"kind":"const","name":"Chain"}},{"id":396,"kind":"set","elem":{"id":395,"kind":"const","name":"Chain"}}],"res":{"id":397,"kind":"bool"}}},{"id":478,"kind":"def","name":"EndAndBeginBlockForConsumer","qualifier":"action","expr":{"id":477,"kind":"lambda","params":[{"id":438,"name":"chain"},{"id":440,"name":"timeAdvancement"}],"qualifier":"action","expr":{"id":475,"kind":"let","opdef":{"id":447,"kind":"def","name":"result","qualifier":"val","expr":{"id":446,"kind":"app","opcode":"endAndBeginBlockForConsumer","args":[{"id":443,"kind":"name","name":"currentState"},{"id":444,"kind":"name","name":"chain"},{"id":445,"kind":"name","name":"timeAdvancement"}]}},"expr":{"id":474,"kind":"app","opcode":"actionAll","args":[{"id":451,"kind":"app","opcode":"eq","args":[{"id":449,"kind":"app","opcode":"hasError","args":[{"id":448,"kind":"name","name":"result"}]},{"id":450,"kind":"bool","value":false}]},{"id":456,"kind":"app","opcode":"assign","args":[{"id":455,"kind":"name","name":"currentState"},{"id":454,"kind":"app","opcode":"field","args":[{"id":452,"kind":"name","name":"result"},{"id":453,"kind":"str","value":"newState"}]}]},{"id":470,"kind":"app","opcode":"assign","args":[{"id":469,"kind":"name","name":"trace"},{"id":468,"kind":"app","opcode":"append","args":[{"id":457,"kind":"name","name":"trace"},{"id":467,"kind":"app","opcode":"with","args":[{"id":464,"kind":"app","opcode":"with","args":[{"id":461,"kind":"app","opcode":"with","args":[{"id":458,"kind":"name","name":"emptyAction"},{"id":459,"kind":"str","value":"kind"},{"id":460,"kind":"str","value":"EndAndBeginBlockForConsumer"}]},{"id":462,"kind":"str","value":"consumerChain"},{"id":463,"kind":"name","name":"chain"}]},{"id":465,"kind":"str","value":"timeAdvancement"},{"id":466,"kind":"name","name":"timeAdvancement"}]}]}]},{"id":473,"kind":"app","opcode":"assign","args":[{"id":472,"kind":"name","name":"params"},{"id":471,"kind":"name","name":"params"}]}]}}},"typeAnnotation":{"id":476,"kind":"oper","args":[{"id":439,"kind":"const","name":"Chain"},{"id":441,"kind":"const","name":"Time"}],"res":{"id":442,"kind":"bool"}}},{"id":741,"kind":"def","name":"ValidatorSetHasExistedInv","qualifier":"val","expr":{"id":740,"kind":"app","opcode":"forall","args":[{"id":720,"kind":"name","name":"runningConsumers"},{"id":739,"kind":"lambda","params":[{"id":721,"name":"chain"}],"qualifier":"def","expr":{"id":738,"kind":"app","opcode":"forall","args":[{"id":731,"kind":"app","opcode":"toSet","args":[{"id":730,"kind":"app","opcode":"field","args":[{"id":728,"kind":"app","opcode":"field","args":[{"id":726,"kind":"app","opcode":"get","args":[{"id":724,"kind":"app","opcode":"field","args":[{"id":722,"kind":"name","name":"currentState"},{"id":723,"kind":"str","value":"consumerStates"}]},{"id":725,"kind":"name","name":"chain"}]},{"id":727,"kind":"str","value":"chainState"}]},{"id":729,"kind":"str","value":"votingPowerHistory"}]}]},{"id":737,"kind":"lambda","params":[{"id":732,"name":"validatorSet"}],"qualifier":"def","expr":{"id":736,"kind":"app","opcode":"contains","args":[{"id":734,"kind":"app","opcode":"toSet","args":[{"id":733,"kind":"name","name":"providerValidatorHistory"}]},{"id":735,"kind":"name","name":"validatorSet"}]}}]}}]}},{"id":809,"kind":"def","name":"ValidatorUpdatesArePropagatedInv","qualifier":"val","expr":{"id":808,"kind":"app","opcode":"implies","args":[{"id":759,"kind":"app","opcode":"and","args":[{"id":753,"kind":"name","name":"ValUpdatePrecondition"},{"id":758,"kind":"app","opcode":"field","args":[{"id":756,"kind":"app","opcode":"field","args":[{"id":754,"kind":"name","name":"currentState"},{"id":755,"kind":"str","value":"providerState"}]},{"id":757,"kind":"str","value":"providerValidatorSetChangedInThisBlock"}]}]},{"id":807,"kind":"let","opdef":{"id":762,"kind":"def","name":"providerValSetInCurBlock","qualifier":"val","expr":{"id":761,"kind":"app","opcode":"head","args":[{"id":760,"kind":"name","name":"providerValidatorHistory"}]}},"expr":{"id":806,"kind":"app","opcode":"forall","args":[{"id":763,"kind":"name","name":"runningConsumers"},{"id":805,"kind":"lambda","params":[{"id":764,"name":"consumer"}],"qualifier":"def","expr":{"id":804,"kind":"app","opcode":"or","args":[{"id":780,"kind":"app","opcode":"exists","args":[{"id":772,"kind":"app","opcode":"toSet","args":[{"id":771,"kind":"app","opcode":"get","args":[{"id":769,"kind":"app","opcode":"field","args":[{"id":767,"kind":"app","opcode":"field","args":[{"id":765,"kind":"name","name":"currentState"},{"id":766,"kind":"str","value":"providerState"}]},{"id":768,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":770,"kind":"name","name":"consumer"}]}]},{"id":779,"kind":"lambda","params":[{"id":773,"name":"packet"}],"qualifier":"def","expr":{"id":778,"kind":"app","opcode":"eq","args":[{"id":776,"kind":"app","opcode":"field","args":[{"id":774,"kind":"name","name":"packet"},{"id":775,"kind":"str","value":"validatorSet"}]},{"id":777,"kind":"name","name":"providerValSetInCurBlock"}]}}]},{"id":803,"kind":"app","opcode":"and","args":[{"id":791,"kind":"app","opcode":"eq","args":[{"id":789,"kind":"app","opcode":"field","args":[{"id":787,"kind":"app","opcode":"field","args":[{"id":785,"kind":"app","opcode":"get","args":[{"id":783,"kind":"app","opcode":"field","args":[{"id":781,"kind":"name","name":"currentState"},{"id":782,"kind":"str","value":"consumerStates"}]},{"id":784,"kind":"name","name":"consumer"}]},{"id":786,"kind":"str","value":"chainState"}]},{"id":788,"kind":"str","value":"lastTimestamp"}]},{"id":790,"kind":"int","value":0}]},{"id":802,"kind":"app","opcode":"eq","args":[{"id":800,"kind":"app","opcode":"field","args":[{"id":798,"kind":"app","opcode":"field","args":[{"id":796,"kind":"app","opcode":"get","args":[{"id":794,"kind":"app","opcode":"field","args":[{"id":792,"kind":"name","name":"currentState"},{"id":793,"kind":"str","value":"consumerStates"}]},{"id":795,"kind":"name","name":"consumer"}]},{"id":797,"kind":"str","value":"chainState"}]},{"id":799,"kind":"str","value":"currentValidatorSet"}]},{"id":801,"kind":"name","name":"providerValSetInCurBlock"}]}]}]}}]}}]}},{"id":902,"kind":"def","name":"SameVscPacketsInv","qualifier":"val","expr":{"id":901,"kind":"app","opcode":"forall","args":[{"id":810,"kind":"name","name":"runningConsumers"},{"id":900,"kind":"lambda","params":[{"id":811,"name":"consumer1"}],"qualifier":"def","expr":{"id":899,"kind":"app","opcode":"forall","args":[{"id":812,"kind":"name","name":"runningConsumers"},{"id":898,"kind":"lambda","params":[{"id":813,"name":"consumer2"}],"qualifier":"def","expr":{"id":897,"kind":"let","opdef":{"id":821,"kind":"def","name":"packets1","qualifier":"val","expr":{"id":820,"kind":"app","opcode":"field","args":[{"id":818,"kind":"app","opcode":"get","args":[{"id":816,"kind":"app","opcode":"field","args":[{"id":814,"kind":"name","name":"currentState"},{"id":815,"kind":"str","value":"consumerStates"}]},{"id":817,"kind":"name","name":"consumer1"}]},{"id":819,"kind":"str","value":"receivedVscPackets"}]}},"expr":{"id":896,"kind":"let","opdef":{"id":829,"kind":"def","name":"packets2","qualifier":"val","expr":{"id":828,"kind":"app","opcode":"field","args":[{"id":826,"kind":"app","opcode":"get","args":[{"id":824,"kind":"app","opcode":"field","args":[{"id":822,"kind":"name","name":"currentState"},{"id":823,"kind":"str","value":"consumerStates"}]},{"id":825,"kind":"name","name":"consumer2"}]},{"id":827,"kind":"str","value":"receivedVscPackets"}]}},"expr":{"id":895,"kind":"let","opdef":{"id":835,"kind":"def","name":"commonPackets","qualifier":"val","expr":{"id":834,"kind":"app","opcode":"intersect","args":[{"id":831,"kind":"app","opcode":"toSet","args":[{"id":830,"kind":"name","name":"packets1"}]},{"id":833,"kind":"app","opcode":"toSet","args":[{"id":832,"kind":"name","name":"packets2"}]}]}},"expr":{"id":894,"kind":"app","opcode":"ite","args":[{"id":839,"kind":"app","opcode":"eq","args":[{"id":837,"kind":"app","opcode":"size","args":[{"id":836,"kind":"name","name":"commonPackets"}]},{"id":838,"kind":"int","value":0}]},{"id":840,"kind":"bool","value":true},{"id":893,"kind":"let","opdef":{"id":843,"kind":"def","name":"newestCommonPacket","qualifier":"val","expr":{"id":842,"kind":"app","opcode":"newest","args":[{"id":841,"kind":"name","name":"commonPackets"}]}},"expr":{"id":892,"kind":"let","opdef":{"id":846,"kind":"def","name":"oldestCommonPacket","qualifier":"val","expr":{"id":845,"kind":"app","opcode":"oldest","args":[{"id":844,"kind":"name","name":"commonPackets"}]}},"expr":{"id":891,"kind":"let","opdef":{"id":866,"kind":"def","name":"packetsBetween1","qualifier":"val","expr":{"id":865,"kind":"app","opcode":"select","args":[{"id":847,"kind":"name","name":"packets1"},{"id":864,"kind":"lambda","params":[{"id":848,"name":"packet"}],"qualifier":"def","expr":{"id":863,"kind":"app","opcode":"and","args":[{"id":855,"kind":"app","opcode":"igte","args":[{"id":851,"kind":"app","opcode":"field","args":[{"id":849,"kind":"name","name":"packet"},{"id":850,"kind":"str","value":"sendingTime"}]},{"id":854,"kind":"app","opcode":"field","args":[{"id":852,"kind":"name","name":"oldestCommonPacket"},{"id":853,"kind":"str","value":"sendingTime"}]}]},{"id":862,"kind":"app","opcode":"ilte","args":[{"id":858,"kind":"app","opcode":"field","args":[{"id":856,"kind":"name","name":"packet"},{"id":857,"kind":"str","value":"sendingTime"}]},{"id":861,"kind":"app","opcode":"field","args":[{"id":859,"kind":"name","name":"newestCommonPacket"},{"id":860,"kind":"str","value":"sendingTime"}]}]}]}}]}},"expr":{"id":890,"kind":"let","opdef":{"id":886,"kind":"def","name":"packetsBetween2","qualifier":"val","expr":{"id":885,"kind":"app","opcode":"select","args":[{"id":867,"kind":"name","name":"packets2"},{"id":884,"kind":"lambda","params":[{"id":868,"name":"packet"}],"qualifier":"def","expr":{"id":883,"kind":"app","opcode":"and","args":[{"id":875,"kind":"app","opcode":"igte","args":[{"id":871,"kind":"app","opcode":"field","args":[{"id":869,"kind":"name","name":"packet"},{"id":870,"kind":"str","value":"sendingTime"}]},{"id":874,"kind":"app","opcode":"field","args":[{"id":872,"kind":"name","name":"oldestCommonPacket"},{"id":873,"kind":"str","value":"sendingTime"}]}]},{"id":882,"kind":"app","opcode":"ilte","args":[{"id":878,"kind":"app","opcode":"field","args":[{"id":876,"kind":"name","name":"packet"},{"id":877,"kind":"str","value":"sendingTime"}]},{"id":881,"kind":"app","opcode":"field","args":[{"id":879,"kind":"name","name":"newestCommonPacket"},{"id":880,"kind":"str","value":"sendingTime"}]}]}]}}]}},"expr":{"id":889,"kind":"app","opcode":"eq","args":[{"id":887,"kind":"name","name":"packetsBetween1"},{"id":888,"kind":"name","name":"packetsBetween2"}]}}}}}]}}}}}]}}]}},{"id":1884,"kind":"def","name":"SameVscPacketsKeyAssignmentInv","qualifier":"val","expr":{"id":1883,"kind":"app","opcode":"forall","args":[{"id":1730,"kind":"name","name":"runningConsumers"},{"id":1882,"kind":"lambda","params":[{"id":1731,"name":"consumer1"}],"qualifier":"def","expr":{"id":1881,"kind":"app","opcode":"forall","args":[{"id":1732,"kind":"name","name":"runningConsumers"},{"id":1880,"kind":"lambda","params":[{"id":1733,"name":"consumer2"}],"qualifier":"def","expr":{"id":1879,"kind":"let","opdef":{"id":1741,"kind":"def","name":"packets1","qualifier":"val","expr":{"id":1740,"kind":"app","opcode":"field","args":[{"id":1738,"kind":"app","opcode":"get","args":[{"id":1736,"kind":"app","opcode":"field","args":[{"id":1734,"kind":"name","name":"currentState"},{"id":1735,"kind":"str","value":"consumerStates"}]},{"id":1737,"kind":"name","name":"consumer1"}]},{"id":1739,"kind":"str","value":"receivedVscPackets"}]}},"expr":{"id":1878,"kind":"let","opdef":{"id":1749,"kind":"def","name":"packets2","qualifier":"val","expr":{"id":1748,"kind":"app","opcode":"field","args":[{"id":1746,"kind":"app","opcode":"get","args":[{"id":1744,"kind":"app","opcode":"field","args":[{"id":1742,"kind":"name","name":"currentState"},{"id":1743,"kind":"str","value":"consumerStates"}]},{"id":1745,"kind":"name","name":"consumer2"}]},{"id":1747,"kind":"str","value":"receivedVscPackets"}]}},"expr":{"id":1877,"kind":"let","opdef":{"id":1755,"kind":"def","name":"commonPackets","qualifier":"val","expr":{"id":1754,"kind":"app","opcode":"intersect","args":[{"id":1751,"kind":"app","opcode":"toSet","args":[{"id":1750,"kind":"name","name":"packets1"}]},{"id":1753,"kind":"app","opcode":"toSet","args":[{"id":1752,"kind":"name","name":"packets2"}]}]}},"expr":{"id":1876,"kind":"app","opcode":"ite","args":[{"id":1759,"kind":"app","opcode":"eq","args":[{"id":1757,"kind":"app","opcode":"size","args":[{"id":1756,"kind":"name","name":"commonPackets"}]},{"id":1758,"kind":"int","value":0}]},{"id":1760,"kind":"bool","value":true},{"id":1875,"kind":"let","opdef":{"id":1763,"kind":"def","name":"newestCommonPacket","qualifier":"val","expr":{"id":1762,"kind":"app","opcode":"newest","args":[{"id":1761,"kind":"name","name":"commonPackets"}]}},"expr":{"id":1874,"kind":"let","opdef":{"id":1766,"kind":"def","name":"oldestCommonPacket","qualifier":"val","expr":{"id":1765,"kind":"app","opcode":"oldest","args":[{"id":1764,"kind":"name","name":"commonPackets"}]}},"expr":{"id":1873,"kind":"let","opdef":{"id":1786,"kind":"def","name":"packetsBetween1","qualifier":"val","expr":{"id":1785,"kind":"app","opcode":"select","args":[{"id":1767,"kind":"name","name":"packets1"},{"id":1784,"kind":"lambda","params":[{"id":1768,"name":"packet"}],"qualifier":"def","expr":{"id":1783,"kind":"app","opcode":"and","args":[{"id":1775,"kind":"app","opcode":"igte","args":[{"id":1771,"kind":"app","opcode":"field","args":[{"id":1769,"kind":"name","name":"packet"},{"id":1770,"kind":"str","value":"sendingTime"}]},{"id":1774,"kind":"app","opcode":"field","args":[{"id":1772,"kind":"name","name":"oldestCommonPacket"},{"id":1773,"kind":"str","value":"sendingTime"}]}]},{"id":1782,"kind":"app","opcode":"ilte","args":[{"id":1778,"kind":"app","opcode":"field","args":[{"id":1776,"kind":"name","name":"packet"},{"id":1777,"kind":"str","value":"sendingTime"}]},{"id":1781,"kind":"app","opcode":"field","args":[{"id":1779,"kind":"name","name":"newestCommonPacket"},{"id":1780,"kind":"str","value":"sendingTime"}]}]}]}}]}},"expr":{"id":1872,"kind":"let","opdef":{"id":1806,"kind":"def","name":"packetsBetween2","qualifier":"val","expr":{"id":1805,"kind":"app","opcode":"select","args":[{"id":1787,"kind":"name","name":"packets2"},{"id":1804,"kind":"lambda","params":[{"id":1788,"name":"packet"}],"qualifier":"def","expr":{"id":1803,"kind":"app","opcode":"and","args":[{"id":1795,"kind":"app","opcode":"igte","args":[{"id":1791,"kind":"app","opcode":"field","args":[{"id":1789,"kind":"name","name":"packet"},{"id":1790,"kind":"str","value":"sendingTime"}]},{"id":1794,"kind":"app","opcode":"field","args":[{"id":1792,"kind":"name","name":"oldestCommonPacket"},{"id":1793,"kind":"str","value":"sendingTime"}]}]},{"id":1802,"kind":"app","opcode":"ilte","args":[{"id":1798,"kind":"app","opcode":"field","args":[{"id":1796,"kind":"name","name":"packet"},{"id":1797,"kind":"str","value":"sendingTime"}]},{"id":1801,"kind":"app","opcode":"field","args":[{"id":1799,"kind":"name","name":"newestCommonPacket"},{"id":1800,"kind":"str","value":"sendingTime"}]}]}]}}]}},"expr":{"id":1871,"kind":"let","opdef":{"id":1836,"kind":"def","name":"packetsBetween1noKeyAssignment","qualifier":"val","expr":{"id":1835,"kind":"app","opcode":"foldl","args":[{"id":1807,"kind":"name","name":"packetsBetween1"},{"id":1808,"kind":"app","opcode":"List","args":[]},{"id":1834,"kind":"lambda","params":[{"id":1809,"name":"acc"},{"id":1810,"name":"packet"}],"qualifier":"def","expr":{"id":1833,"kind":"app","opcode":"concat","args":[{"id":1811,"kind":"name","name":"acc"},{"id":1832,"kind":"app","opcode":"List","args":[{"id":1831,"kind":"app","opcode":"with","args":[{"id":1812,"kind":"name","name":"packet"},{"id":1830,"kind":"str","value":"validatorSet"},{"id":1829,"kind":"app","opcode":"revertKeyAssignment","args":[{"id":1825,"kind":"app","opcode":"getOrElse","args":[{"id":1822,"kind":"app","opcode":"getOrElse","args":[{"id":1817,"kind":"app","opcode":"field","args":[{"id":1815,"kind":"app","opcode":"field","args":[{"id":1813,"kind":"name","name":"currentState"},{"id":1814,"kind":"str","value":"providerState"}]},{"id":1816,"kind":"str","value":"keyAssignmentsForVSCPackets"}]},{"id":1820,"kind":"app","opcode":"field","args":[{"id":1818,"kind":"name","name":"packet"},{"id":1819,"kind":"str","value":"id"}]},{"id":1821,"kind":"app","opcode":"Map","args":[]}]},{"id":1823,"kind":"name","name":"consumer1"},{"id":1824,"kind":"app","opcode":"Map","args":[]}]},{"id":1828,"kind":"app","opcode":"field","args":[{"id":1826,"kind":"name","name":"packet"},{"id":1827,"kind":"str","value":"validatorSet"}]}]}]}]}]}}]}},"expr":{"id":1870,"kind":"let","opdef":{"id":1866,"kind":"def","name":"packetsBetween2noKeyAssignment","qualifier":"val","expr":{"id":1865,"kind":"app","opcode":"foldl","args":[{"id":1837,"kind":"name","name":"packetsBetween2"},{"id":1838,"kind":"app","opcode":"List","args":[]},{"id":1864,"kind":"lambda","params":[{"id":1839,"name":"acc"},{"id":1840,"name":"packet"}],"qualifier":"def","expr":{"id":1863,"kind":"app","opcode":"concat","args":[{"id":1841,"kind":"name","name":"acc"},{"id":1862,"kind":"app","opcode":"List","args":[{"id":1861,"kind":"app","opcode":"with","args":[{"id":1842,"kind":"name","name":"packet"},{"id":1860,"kind":"str","value":"validatorSet"},{"id":1859,"kind":"app","opcode":"revertKeyAssignment","args":[{"id":1855,"kind":"app","opcode":"getOrElse","args":[{"id":1852,"kind":"app","opcode":"getOrElse","args":[{"id":1847,"kind":"app","opcode":"field","args":[{"id":1845,"kind":"app","opcode":"field","args":[{"id":1843,"kind":"name","name":"currentState"},{"id":1844,"kind":"str","value":"providerState"}]},{"id":1846,"kind":"str","value":"keyAssignmentsForVSCPackets"}]},{"id":1850,"kind":"app","opcode":"field","args":[{"id":1848,"kind":"name","name":"packet"},{"id":1849,"kind":"str","value":"id"}]},{"id":1851,"kind":"app","opcode":"Map","args":[]}]},{"id":1853,"kind":"name","name":"consumer2"},{"id":1854,"kind":"app","opcode":"Map","args":[]}]},{"id":1858,"kind":"app","opcode":"field","args":[{"id":1856,"kind":"name","name":"packet"},{"id":1857,"kind":"str","value":"validatorSet"}]}]}]}]}]}}]}},"expr":{"id":1869,"kind":"app","opcode":"eq","args":[{"id":1867,"kind":"name","name":"packetsBetween1noKeyAssignment"},{"id":1868,"kind":"name","name":"packetsBetween2noKeyAssignment"}]}}}}}}}]}}}}}]}}]}},{"id":267,"kind":"def","name":"init","qualifier":"action","expr":{"id":266,"kind":"app","opcode":"actionAll","args":[{"id":241,"kind":"let","opdef":{"id":182,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":181,"kind":"name","name":"GetEmptyProviderState"}},"expr":{"id":240,"kind":"let","opdef":{"id":188,"kind":"def","name":"consumerStates","qualifier":"val","expr":{"id":187,"kind":"app","opcode":"mapBy","args":[{"id":183,"kind":"name","name":"ConsumerChains"},{"id":186,"kind":"lambda","params":[{"id":184,"name":"chain"}],"qualifier":"def","expr":{"id":185,"kind":"name","name":"GetEmptyConsumerState"}}]}},"expr":{"id":239,"kind":"let","opdef":{"id":231,"kind":"def","name":"providerStateWithConsumers","qualifier":"val","expr":{"id":230,"kind":"app","opcode":"with","args":[{"id":222,"kind":"app","opcode":"with","args":[{"id":210,"kind":"app","opcode":"with","args":[{"id":203,"kind":"app","opcode":"with","args":[{"id":196,"kind":"app","opcode":"with","args":[{"id":189,"kind":"name","name":"providerState"},{"id":190,"kind":"str","value":"consumerStatus"},{"id":195,"kind":"app","opcode":"mapBy","args":[{"id":191,"kind":"name","name":"ConsumerChains"},{"id":194,"kind":"lambda","params":[{"id":192,"name":"chain"}],"qualifier":"def","expr":{"id":193,"kind":"name","name":"NOT_CONSUMER"}}]}]},{"id":197,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":202,"kind":"app","opcode":"mapBy","args":[{"id":198,"kind":"name","name":"ConsumerChains"},{"id":201,"kind":"lambda","params":[{"id":199,"name":"chain"}],"qualifier":"def","expr":{"id":200,"kind":"app","opcode":"List","args":[]}}]}]},{"id":204,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":209,"kind":"app","opcode":"mapBy","args":[{"id":205,"kind":"name","name":"ConsumerChains"},{"id":208,"kind":"lambda","params":[{"id":206,"name":"chain"}],"qualifier":"def","expr":{"id":207,"kind":"app","opcode":"List","args":[]}}]}]},{"id":211,"kind":"str","value":"chainState"},{"id":221,"kind":"app","opcode":"with","args":[{"id":218,"kind":"app","opcode":"with","args":[{"id":214,"kind":"app","opcode":"field","args":[{"id":212,"kind":"name","name":"providerState"},{"id":213,"kind":"str","value":"chainState"}]},{"id":215,"kind":"str","value":"votingPowerHistory"},{"id":217,"kind":"app","opcode":"List","args":[{"id":216,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":219,"kind":"str","value":"currentValidatorSet"},{"id":220,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":223,"kind":"str","value":"keyAssignedValSetHistory"},{"id":229,"kind":"app","opcode":"mapBy","args":[{"id":224,"kind":"name","name":"ConsumerChains"},{"id":228,"kind":"lambda","params":[{"id":225,"name":"chain"}],"qualifier":"def","expr":{"id":227,"kind":"app","opcode":"List","args":[{"id":226,"kind":"name","name":"InitialValidatorSet"}]}}]}]}},"expr":{"id":238,"kind":"app","opcode":"assign","args":[{"id":237,"kind":"name","name":"currentState"},{"id":236,"kind":"app","opcode":"Rec","args":[{"id":233,"kind":"str","value":"providerState"},{"id":232,"kind":"name","name":"providerStateWithConsumers"},{"id":235,"kind":"str","value":"consumerStates"},{"id":234,"kind":"name","name":"consumerStates"}]}]}}}},{"id":248,"kind":"app","opcode":"assign","args":[{"id":247,"kind":"name","name":"trace"},{"id":246,"kind":"app","opcode":"List","args":[{"id":245,"kind":"app","opcode":"with","args":[{"id":242,"kind":"name","name":"emptyAction"},{"id":243,"kind":"str","value":"kind"},{"id":244,"kind":"str","value":"init"}]}]}]},{"id":265,"kind":"app","opcode":"assign","args":[{"id":264,"kind":"name","name":"params"},{"id":263,"kind":"app","opcode":"Rec","args":[{"id":250,"kind":"str","value":"VscTimeout"},{"id":249,"kind":"name","name":"VscTimeout"},{"id":252,"kind":"str","value":"CcvTimeout"},{"id":251,"kind":"name","name":"CcvTimeout"},{"id":254,"kind":"str","value":"UnbondingPeriodPerChain"},{"id":253,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":256,"kind":"str","value":"ConsumerChains"},{"id":255,"kind":"name","name":"ConsumerChains"},{"id":258,"kind":"str","value":"Nodes"},{"id":257,"kind":"name","name":"nodes"},{"id":260,"kind":"str","value":"InitialValidatorSet"},{"id":259,"kind":"name","name":"InitialValidatorSet"},{"id":262,"kind":"str","value":"TrustingPeriodPerChain"},{"id":261,"kind":"name","name":"TrustingPeriodPerChain"}]}]}]},"typeAnnotation":{"id":180,"kind":"bool"}},{"id":348,"kind":"def","name":"DeliverVscPacket","qualifier":"action","expr":{"id":347,"kind":"lambda","params":[{"id":309,"name":"receiver"}],"qualifier":"action","expr":{"id":345,"kind":"let","opdef":{"id":315,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":314,"kind":"app","opcode":"deliverPacketToConsumer","args":[{"id":312,"kind":"name","name":"currentState"},{"id":313,"kind":"name","name":"receiver"}]}},"expr":{"id":344,"kind":"let","opdef":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]}},"expr":{"id":343,"kind":"app","opcode":"actionAll","args":[{"id":323,"kind":"app","opcode":"eq","args":[{"id":321,"kind":"app","opcode":"hasError","args":[{"id":320,"kind":"name","name":"result"}]},{"id":322,"kind":"bool","value":false}]},{"id":328,"kind":"app","opcode":"assign","args":[{"id":327,"kind":"name","name":"currentState"},{"id":326,"kind":"app","opcode":"field","args":[{"id":324,"kind":"name","name":"result"},{"id":325,"kind":"str","value":"newState"}]}]},{"id":339,"kind":"app","opcode":"assign","args":[{"id":338,"kind":"name","name":"trace"},{"id":337,"kind":"app","opcode":"append","args":[{"id":329,"kind":"name","name":"trace"},{"id":336,"kind":"app","opcode":"with","args":[{"id":333,"kind":"app","opcode":"with","args":[{"id":330,"kind":"name","name":"emptyAction"},{"id":331,"kind":"str","value":"kind"},{"id":332,"kind":"str","value":"DeliverVscPacket"}]},{"id":334,"kind":"str","value":"consumerChain"},{"id":335,"kind":"name","name":"receiver"}]}]}]},{"id":342,"kind":"app","opcode":"assign","args":[{"id":341,"kind":"name","name":"params"},{"id":340,"kind":"name","name":"params"}]}]}}}},"typeAnnotation":{"id":346,"kind":"oper","args":[{"id":310,"kind":"const","name":"Chain"}],"res":{"id":311,"kind":"bool"}}},{"id":388,"kind":"def","name":"DeliverVscMaturedPacket","qualifier":"action","expr":{"id":387,"kind":"lambda","params":[{"id":349,"name":"sender"}],"qualifier":"action","expr":{"id":385,"kind":"let","opdef":{"id":355,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":354,"kind":"app","opcode":"deliverPacketToProvider","args":[{"id":352,"kind":"name","name":"currentState"},{"id":353,"kind":"name","name":"sender"}]}},"expr":{"id":384,"kind":"let","opdef":{"id":359,"kind":"def","name":"result","qualifier":"val","expr":{"id":358,"kind":"app","opcode":"item","args":[{"id":356,"kind":"name","name":"resultAndTimeout"},{"id":357,"kind":"int","value":1}]}},"expr":{"id":383,"kind":"app","opcode":"actionAll","args":[{"id":363,"kind":"app","opcode":"eq","args":[{"id":361,"kind":"app","opcode":"hasError","args":[{"id":360,"kind":"name","name":"result"}]},{"id":362,"kind":"bool","value":false}]},{"id":368,"kind":"app","opcode":"assign","args":[{"id":367,"kind":"name","name":"currentState"},{"id":366,"kind":"app","opcode":"field","args":[{"id":364,"kind":"name","name":"result"},{"id":365,"kind":"str","value":"newState"}]}]},{"id":379,"kind":"app","opcode":"assign","args":[{"id":378,"kind":"name","name":"trace"},{"id":377,"kind":"app","opcode":"append","args":[{"id":369,"kind":"name","name":"trace"},{"id":376,"kind":"app","opcode":"with","args":[{"id":373,"kind":"app","opcode":"with","args":[{"id":370,"kind":"name","name":"emptyAction"},{"id":371,"kind":"str","value":"kind"},{"id":372,"kind":"str","value":"DeliverVscMaturedPacket"}]},{"id":374,"kind":"str","value":"consumerChain"},{"id":375,"kind":"name","name":"sender"}]}]}]},{"id":382,"kind":"app","opcode":"assign","args":[{"id":381,"kind":"name","name":"params"},{"id":380,"kind":"name","name":"params"}]}]}}}},"typeAnnotation":{"id":386,"kind":"oper","args":[{"id":350,"kind":"const","name":"Chain"}],"res":{"id":351,"kind":"bool"}}},{"doc":"Test a simple happy path where:\n* the consumer chain is set to running\n* a validator set change happens\n* a block is ended on the provider, i.e. a packet is sent to the consumer\n* the consumer receives the packet\n* the chains wait until the unbonding period is over\n* the consumer sends a VscMaturedPacket to the provider\n* the provider receives the VscMaturedPacket","id":1441,"kind":"def","name":"HappyPathTest","qualifier":"run","expr":{"id":1440,"kind":"app","opcode":"then","args":[{"id":1415,"kind":"app","opcode":"then","args":[{"id":1389,"kind":"app","opcode":"then","args":[{"id":1360,"kind":"app","opcode":"then","args":[{"id":1301,"kind":"app","opcode":"then","args":[{"id":1250,"kind":"app","opcode":"then","args":[{"id":1228,"kind":"app","opcode":"then","args":[{"id":1123,"kind":"name","name":"init"},{"id":1227,"kind":"app","opcode":"actionAll","args":[{"id":1140,"kind":"app","opcode":"assert","args":[{"id":1139,"kind":"app","opcode":"eq","args":[{"id":1128,"kind":"app","opcode":"field","args":[{"id":1126,"kind":"app","opcode":"field","args":[{"id":1124,"kind":"name","name":"currentState"},{"id":1125,"kind":"str","value":"providerState"}]},{"id":1127,"kind":"str","value":"consumerStatus"}]},{"id":1138,"kind":"app","opcode":"Map","args":[{"id":1131,"kind":"app","opcode":"Tup","args":[{"id":1129,"kind":"str","value":"consumer1"},{"id":1130,"kind":"name","name":"NOT_CONSUMER"}]},{"id":1134,"kind":"app","opcode":"Tup","args":[{"id":1132,"kind":"str","value":"consumer2"},{"id":1133,"kind":"name","name":"NOT_CONSUMER"}]},{"id":1137,"kind":"app","opcode":"Tup","args":[{"id":1135,"kind":"str","value":"consumer3"},{"id":1136,"kind":"name","name":"NOT_CONSUMER"}]}]}]}]},{"id":1157,"kind":"app","opcode":"assert","args":[{"id":1156,"kind":"app","opcode":"eq","args":[{"id":1145,"kind":"app","opcode":"field","args":[{"id":1143,"kind":"app","opcode":"field","args":[{"id":1141,"kind":"name","name":"currentState"},{"id":1142,"kind":"str","value":"providerState"}]},{"id":1144,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":1155,"kind":"app","opcode":"Map","args":[{"id":1148,"kind":"app","opcode":"Tup","args":[{"id":1146,"kind":"str","value":"consumer1"},{"id":1147,"kind":"app","opcode":"List","args":[]}]},{"id":1151,"kind":"app","opcode":"Tup","args":[{"id":1149,"kind":"str","value":"consumer2"},{"id":1150,"kind":"app","opcode":"List","args":[]}]},{"id":1154,"kind":"app","opcode":"Tup","args":[{"id":1152,"kind":"str","value":"consumer3"},{"id":1153,"kind":"app","opcode":"List","args":[]}]}]}]}]},{"id":1174,"kind":"app","opcode":"assert","args":[{"id":1173,"kind":"app","opcode":"eq","args":[{"id":1162,"kind":"app","opcode":"field","args":[{"id":1160,"kind":"app","opcode":"field","args":[{"id":1158,"kind":"name","name":"currentState"},{"id":1159,"kind":"str","value":"providerState"}]},{"id":1161,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":1172,"kind":"app","opcode":"Map","args":[{"id":1165,"kind":"app","opcode":"Tup","args":[{"id":1163,"kind":"str","value":"consumer1"},{"id":1164,"kind":"app","opcode":"List","args":[]}]},{"id":1168,"kind":"app","opcode":"Tup","args":[{"id":1166,"kind":"str","value":"consumer2"},{"id":1167,"kind":"app","opcode":"List","args":[]}]},{"id":1171,"kind":"app","opcode":"Tup","args":[{"id":1169,"kind":"str","value":"consumer3"},{"id":1170,"kind":"app","opcode":"List","args":[]}]}]}]}]},{"id":1181,"kind":"app","opcode":"assert","args":[{"id":1180,"kind":"app","opcode":"eq","args":[{"id":1178,"kind":"app","opcode":"keys","args":[{"id":1177,"kind":"app","opcode":"field","args":[{"id":1175,"kind":"name","name":"currentState"},{"id":1176,"kind":"str","value":"consumerStates"}]}]},{"id":1179,"kind":"name","name":"consumerChains"}]}]},{"id":1192,"kind":"app","opcode":"assert","args":[{"id":1191,"kind":"app","opcode":"eq","args":[{"id":1188,"kind":"app","opcode":"field","args":[{"id":1186,"kind":"app","opcode":"field","args":[{"id":1184,"kind":"app","opcode":"field","args":[{"id":1182,"kind":"name","name":"currentState"},{"id":1183,"kind":"str","value":"providerState"}]},{"id":1185,"kind":"str","value":"chainState"}]},{"id":1187,"kind":"str","value":"votingPowerHistory"}]},{"id":1190,"kind":"app","opcode":"List","args":[{"id":1189,"kind":"name","name":"InitialValidatorSet"}]}]}]},{"id":1202,"kind":"app","opcode":"assert","args":[{"id":1201,"kind":"app","opcode":"eq","args":[{"id":1199,"kind":"app","opcode":"field","args":[{"id":1197,"kind":"app","opcode":"field","args":[{"id":1195,"kind":"app","opcode":"field","args":[{"id":1193,"kind":"name","name":"currentState"},{"id":1194,"kind":"str","value":"providerState"}]},{"id":1196,"kind":"str","value":"chainState"}]},{"id":1198,"kind":"str","value":"currentValidatorSet"}]},{"id":1200,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":1213,"kind":"app","opcode":"assert","args":[{"id":1212,"kind":"app","opcode":"eq","args":[{"id":1209,"kind":"app","opcode":"field","args":[{"id":1207,"kind":"app","opcode":"field","args":[{"id":1205,"kind":"app","opcode":"field","args":[{"id":1203,"kind":"name","name":"currentState"},{"id":1204,"kind":"str","value":"providerState"}]},{"id":1206,"kind":"str","value":"chainState"}]},{"id":1208,"kind":"str","value":"lastTimestamp"}]},{"id":1211,"kind":"app","opcode":"iuminus","args":[{"id":1210,"kind":"int","value":1}]}]}]},{"id":1223,"kind":"app","opcode":"assert","args":[{"id":1222,"kind":"app","opcode":"eq","args":[{"id":1220,"kind":"app","opcode":"field","args":[{"id":1218,"kind":"app","opcode":"field","args":[{"id":1216,"kind":"app","opcode":"field","args":[{"id":1214,"kind":"name","name":"currentState"},{"id":1215,"kind":"str","value":"providerState"}]},{"id":1217,"kind":"str","value":"chainState"}]},{"id":1219,"kind":"str","value":"runningTimestamp"}]},{"id":1221,"kind":"int","value":0}]}]},{"id":1226,"kind":"app","opcode":"VotingPowerChange","args":[{"id":1224,"kind":"str","value":"node1"},{"id":1225,"kind":"int","value":50}]}]}]},{"id":1249,"kind":"app","opcode":"actionAll","args":[{"id":1241,"kind":"app","opcode":"assert","args":[{"id":1240,"kind":"app","opcode":"eq","args":[{"id":1235,"kind":"app","opcode":"field","args":[{"id":1233,"kind":"app","opcode":"field","args":[{"id":1231,"kind":"app","opcode":"field","args":[{"id":1229,"kind":"name","name":"currentState"},{"id":1230,"kind":"str","value":"providerState"}]},{"id":1232,"kind":"str","value":"chainState"}]},{"id":1234,"kind":"str","value":"currentValidatorSet"}]},{"id":1239,"kind":"app","opcode":"put","args":[{"id":1236,"kind":"name","name":"InitialValidatorSet"},{"id":1237,"kind":"str","value":"node1"},{"id":1238,"kind":"int","value":150}]}]}]},{"id":1248,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1244,"kind":"app","opcode":"imul","args":[{"id":1242,"kind":"int","value":1},{"id":1243,"kind":"name","name":"Second"}]},{"id":1246,"kind":"app","opcode":"Set","args":[{"id":1245,"kind":"str","value":"consumer1"}]},{"id":1247,"kind":"app","opcode":"Set","args":[]}]}]}]},{"id":1300,"kind":"app","opcode":"actionAll","args":[{"id":1260,"kind":"app","opcode":"assert","args":[{"id":1259,"kind":"app","opcode":"eq","args":[{"id":1257,"kind":"app","opcode":"get","args":[{"id":1255,"kind":"app","opcode":"field","args":[{"id":1253,"kind":"app","opcode":"field","args":[{"id":1251,"kind":"name","name":"currentState"},{"id":1252,"kind":"str","value":"providerState"}]},{"id":1254,"kind":"str","value":"consumerStatus"}]},{"id":1256,"kind":"str","value":"consumer1"}]},{"id":1258,"kind":"name","name":"RUNNING"}]}]},{"id":1271,"kind":"app","opcode":"assert","args":[{"id":1270,"kind":"app","opcode":"eq","args":[{"id":1268,"kind":"app","opcode":"length","args":[{"id":1267,"kind":"app","opcode":"get","args":[{"id":1265,"kind":"app","opcode":"field","args":[{"id":1263,"kind":"app","opcode":"field","args":[{"id":1261,"kind":"name","name":"currentState"},{"id":1262,"kind":"str","value":"providerState"}]},{"id":1264,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":1266,"kind":"str","value":"consumer1"}]}]},{"id":1269,"kind":"int","value":0}]}]},{"id":1286,"kind":"app","opcode":"assert","args":[{"id":1285,"kind":"app","opcode":"eq","args":[{"id":1278,"kind":"app","opcode":"field","args":[{"id":1276,"kind":"app","opcode":"field","args":[{"id":1274,"kind":"app","opcode":"field","args":[{"id":1272,"kind":"name","name":"currentState"},{"id":1273,"kind":"str","value":"providerState"}]},{"id":1275,"kind":"str","value":"chainState"}]},{"id":1277,"kind":"str","value":"votingPowerHistory"}]},{"id":1284,"kind":"app","opcode":"List","args":[{"id":1282,"kind":"app","opcode":"put","args":[{"id":1279,"kind":"name","name":"InitialValidatorSet"},{"id":1280,"kind":"str","value":"node1"},{"id":1281,"kind":"int","value":150}]},{"id":1283,"kind":"name","name":"InitialValidatorSet"}]}]}]},{"id":1299,"kind":"app","opcode":"then","args":[{"id":1296,"kind":"app","opcode":"then","args":[{"id":1289,"kind":"app","opcode":"VotingPowerChange","args":[{"id":1287,"kind":"str","value":"node1"},{"id":1288,"kind":"int","value":50}]},{"id":1295,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1292,"kind":"app","opcode":"imul","args":[{"id":1290,"kind":"int","value":1},{"id":1291,"kind":"name","name":"Second"}]},{"id":1293,"kind":"app","opcode":"Set","args":[]},{"id":1294,"kind":"app","opcode":"Set","args":[]}]}]},{"id":1298,"kind":"app","opcode":"DeliverVscPacket","args":[{"id":1297,"kind":"str","value":"consumer1"}]}]}]}]},{"id":1359,"kind":"app","opcode":"actionAll","args":[{"id":1312,"kind":"app","opcode":"assert","args":[{"id":1311,"kind":"app","opcode":"eq","args":[{"id":1309,"kind":"app","opcode":"length","args":[{"id":1308,"kind":"app","opcode":"get","args":[{"id":1306,"kind":"app","opcode":"field","args":[{"id":1304,"kind":"app","opcode":"field","args":[{"id":1302,"kind":"name","name":"currentState"},{"id":1303,"kind":"str","value":"providerState"}]},{"id":1305,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":1307,"kind":"str","value":"consumer1"}]}]},{"id":1310,"kind":"int","value":0}]}]},{"id":1323,"kind":"app","opcode":"assert","args":[{"id":1322,"kind":"app","opcode":"eq","args":[{"id":1320,"kind":"app","opcode":"length","args":[{"id":1319,"kind":"app","opcode":"field","args":[{"id":1317,"kind":"app","opcode":"get","args":[{"id":1315,"kind":"app","opcode":"field","args":[{"id":1313,"kind":"name","name":"currentState"},{"id":1314,"kind":"str","value":"consumerStates"}]},{"id":1316,"kind":"str","value":"consumer1"}]},{"id":1318,"kind":"str","value":"maturationTimes"}]}]},{"id":1321,"kind":"int","value":1}]}]},{"id":1338,"kind":"app","opcode":"assert","args":[{"id":1337,"kind":"app","opcode":"eq","args":[{"id":1332,"kind":"app","opcode":"field","args":[{"id":1330,"kind":"app","opcode":"field","args":[{"id":1328,"kind":"app","opcode":"get","args":[{"id":1326,"kind":"app","opcode":"field","args":[{"id":1324,"kind":"name","name":"currentState"},{"id":1325,"kind":"str","value":"consumerStates"}]},{"id":1327,"kind":"str","value":"consumer1"}]},{"id":1329,"kind":"str","value":"chainState"}]},{"id":1331,"kind":"str","value":"currentValidatorSet"}]},{"id":1336,"kind":"app","opcode":"put","args":[{"id":1333,"kind":"name","name":"InitialValidatorSet"},{"id":1334,"kind":"str","value":"node1"},{"id":1335,"kind":"int","value":200}]}]}]},{"id":1358,"kind":"app","opcode":"reps","args":[{"id":1339,"kind":"int","value":4},{"id":1357,"kind":"lambda","params":[{"id":1340,"name":"i"}],"qualifier":"def","expr":{"id":1356,"kind":"app","opcode":"then","args":[{"id":1348,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1345,"kind":"app","opcode":"idiv","args":[{"id":1343,"kind":"app","opcode":"get","args":[{"id":1341,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":1342,"kind":"str","value":"consumer1"}]},{"id":1344,"kind":"int","value":4}]},{"id":1346,"kind":"app","opcode":"Set","args":[]},{"id":1347,"kind":"app","opcode":"Set","args":[]}]},{"id":1355,"kind":"app","opcode":"EndAndBeginBlockForConsumer","args":[{"id":1349,"kind":"str","value":"consumer1"},{"id":1354,"kind":"app","opcode":"idiv","args":[{"id":1352,"kind":"app","opcode":"get","args":[{"id":1350,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":1351,"kind":"str","value":"consumer1"}]},{"id":1353,"kind":"int","value":4}]}]}]}}]}]}]},{"id":1388,"kind":"app","opcode":"actionAll","args":[{"id":1371,"kind":"app","opcode":"assert","args":[{"id":1370,"kind":"app","opcode":"eq","args":[{"id":1368,"kind":"app","opcode":"length","args":[{"id":1367,"kind":"app","opcode":"field","args":[{"id":1365,"kind":"app","opcode":"get","args":[{"id":1363,"kind":"app","opcode":"field","args":[{"id":1361,"kind":"name","name":"currentState"},{"id":1362,"kind":"str","value":"consumerStates"}]},{"id":1364,"kind":"str","value":"consumer1"}]},{"id":1366,"kind":"str","value":"outstandingPacketsToProvider"}]}]},{"id":1369,"kind":"int","value":0}]}]},{"id":1382,"kind":"app","opcode":"assert","args":[{"id":1381,"kind":"app","opcode":"eq","args":[{"id":1379,"kind":"app","opcode":"length","args":[{"id":1378,"kind":"app","opcode":"field","args":[{"id":1376,"kind":"app","opcode":"get","args":[{"id":1374,"kind":"app","opcode":"field","args":[{"id":1372,"kind":"name","name":"currentState"},{"id":1373,"kind":"str","value":"consumerStates"}]},{"id":1375,"kind":"str","value":"consumer1"}]},{"id":1377,"kind":"str","value":"maturationTimes"}]}]},{"id":1380,"kind":"int","value":1}]}]},{"id":1387,"kind":"app","opcode":"EndAndBeginBlockForConsumer","args":[{"id":1383,"kind":"str","value":"consumer1"},{"id":1386,"kind":"app","opcode":"imul","args":[{"id":1384,"kind":"int","value":1},{"id":1385,"kind":"name","name":"Second"}]}]}]}]},{"id":1414,"kind":"app","opcode":"actionAll","args":[{"id":1400,"kind":"app","opcode":"assert","args":[{"id":1399,"kind":"app","opcode":"eq","args":[{"id":1397,"kind":"app","opcode":"length","args":[{"id":1396,"kind":"app","opcode":"field","args":[{"id":1394,"kind":"app","opcode":"get","args":[{"id":1392,"kind":"app","opcode":"field","args":[{"id":1390,"kind":"name","name":"currentState"},{"id":1391,"kind":"str","value":"consumerStates"}]},{"id":1393,"kind":"str","value":"consumer1"}]},{"id":1395,"kind":"str","value":"outstandingPacketsToProvider"}]}]},{"id":1398,"kind":"int","value":1}]}]},{"id":1411,"kind":"app","opcode":"assert","args":[{"id":1410,"kind":"app","opcode":"eq","args":[{"id":1408,"kind":"app","opcode":"length","args":[{"id":1407,"kind":"app","opcode":"field","args":[{"id":1405,"kind":"app","opcode":"get","args":[{"id":1403,"kind":"app","opcode":"field","args":[{"id":1401,"kind":"name","name":"currentState"},{"id":1402,"kind":"str","value":"consumerStates"}]},{"id":1404,"kind":"str","value":"consumer1"}]},{"id":1406,"kind":"str","value":"maturationTimes"}]}]},{"id":1409,"kind":"int","value":0}]}]},{"id":1413,"kind":"app","opcode":"DeliverVscMaturedPacket","args":[{"id":1412,"kind":"str","value":"consumer1"}]}]}]},{"id":1439,"kind":"app","opcode":"actionAll","args":[{"id":1424,"kind":"app","opcode":"assert","args":[{"id":1423,"kind":"app","opcode":"eq","args":[{"id":1421,"kind":"app","opcode":"size","args":[{"id":1420,"kind":"app","opcode":"field","args":[{"id":1418,"kind":"app","opcode":"field","args":[{"id":1416,"kind":"name","name":"currentState"},{"id":1417,"kind":"str","value":"providerState"}]},{"id":1419,"kind":"str","value":"receivedMaturations"}]}]},{"id":1422,"kind":"int","value":1}]}]},{"id":1435,"kind":"app","opcode":"assert","args":[{"id":1434,"kind":"app","opcode":"eq","args":[{"id":1432,"kind":"app","opcode":"length","args":[{"id":1431,"kind":"app","opcode":"field","args":[{"id":1429,"kind":"app","opcode":"get","args":[{"id":1427,"kind":"app","opcode":"field","args":[{"id":1425,"kind":"name","name":"currentState"},{"id":1426,"kind":"str","value":"consumerStates"}]},{"id":1428,"kind":"str","value":"consumer1"}]},{"id":1430,"kind":"str","value":"outstandingPacketsToProvider"}]}]},{"id":1433,"kind":"int","value":0}]}]},{"id":1438,"kind":"app","opcode":"VotingPowerChange","args":[{"id":1436,"kind":"str","value":"node1"},{"id":1437,"kind":"int","value":50}]}]}]},"typeAnnotation":{"id":1122,"kind":"bool"}},{"doc":"a manual test case for the SameVscPacketsInv, since it needs very specific behaviour to even apply.","id":1504,"kind":"def","name":"SameVscPacketsManualTest","qualifier":"run","expr":{"id":1503,"kind":"app","opcode":"then","args":[{"id":1496,"kind":"app","opcode":"then","args":[{"id":1493,"kind":"app","opcode":"then","args":[{"id":1490,"kind":"app","opcode":"then","args":[{"id":1487,"kind":"app","opcode":"then","args":[{"id":1480,"kind":"app","opcode":"then","args":[{"id":1476,"kind":"app","opcode":"then","args":[{"id":1468,"kind":"app","opcode":"then","args":[{"id":1465,"kind":"app","opcode":"then","args":[{"id":1462,"kind":"app","opcode":"then","args":[{"id":1455,"kind":"app","opcode":"then","args":[{"id":1451,"kind":"app","opcode":"then","args":[{"id":1442,"kind":"name","name":"init"},{"id":1450,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1445,"kind":"app","opcode":"imul","args":[{"id":1443,"kind":"int","value":1},{"id":1444,"kind":"name","name":"Second"}]},{"id":1448,"kind":"app","opcode":"Set","args":[{"id":1446,"kind":"str","value":"consumer1"},{"id":1447,"kind":"str","value":"consumer2"}]},{"id":1449,"kind":"app","opcode":"Set","args":[]}]}]},{"id":1454,"kind":"app","opcode":"VotingPowerChange","args":[{"id":1452,"kind":"str","value":"node1"},{"id":1453,"kind":"int","value":50}]}]},{"id":1461,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1458,"kind":"app","opcode":"imul","args":[{"id":1456,"kind":"int","value":1},{"id":1457,"kind":"name","name":"Second"}]},{"id":1459,"kind":"app","opcode":"Set","args":[]},{"id":1460,"kind":"app","opcode":"Set","args":[]}]}]},{"id":1464,"kind":"app","opcode":"DeliverVscPacket","args":[{"id":1463,"kind":"str","value":"consumer1"}]}]},{"id":1467,"kind":"app","opcode":"DeliverVscPacket","args":[{"id":1466,"kind":"str","value":"consumer2"}]}]},{"id":1475,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1471,"kind":"app","opcode":"imul","args":[{"id":1469,"kind":"int","value":1},{"id":1470,"kind":"name","name":"Second"}]},{"id":1473,"kind":"app","opcode":"Set","args":[{"id":1472,"kind":"str","value":"consumer3"}]},{"id":1474,"kind":"app","opcode":"Set","args":[]}]}]},{"id":1479,"kind":"app","opcode":"VotingPowerChange","args":[{"id":1477,"kind":"str","value":"node2"},{"id":1478,"kind":"int","value":50}]}]},{"id":1486,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1483,"kind":"app","opcode":"imul","args":[{"id":1481,"kind":"int","value":1},{"id":1482,"kind":"name","name":"Second"}]},{"id":1484,"kind":"app","opcode":"Set","args":[]},{"id":1485,"kind":"app","opcode":"Set","args":[]}]}]},{"id":1489,"kind":"app","opcode":"DeliverVscPacket","args":[{"id":1488,"kind":"str","value":"consumer1"}]}]},{"id":1492,"kind":"app","opcode":"DeliverVscPacket","args":[{"id":1491,"kind":"str","value":"consumer2"}]}]},{"id":1495,"kind":"app","opcode":"DeliverVscPacket","args":[{"id":1494,"kind":"str","value":"consumer3"}]}]},{"id":1502,"kind":"app","opcode":"actionAll","args":[{"id":1498,"kind":"app","opcode":"assert","args":[{"id":1497,"kind":"name","name":"SameVscPacketsInv"}]},{"id":1501,"kind":"app","opcode":"VotingPowerChange","args":[{"id":1499,"kind":"str","value":"node1"},{"id":1500,"kind":"int","value":50}]}]}]}},{"id":1559,"kind":"def","name":"VscTimeoutManualTest","qualifier":"run","expr":{"id":1558,"kind":"app","opcode":"then","args":[{"id":1539,"kind":"app","opcode":"then","args":[{"id":1532,"kind":"app","opcode":"then","args":[{"id":1523,"kind":"app","opcode":"then","args":[{"id":1516,"kind":"app","opcode":"then","args":[{"id":1512,"kind":"app","opcode":"then","args":[{"id":1505,"kind":"name","name":"init"},{"id":1511,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1508,"kind":"app","opcode":"imul","args":[{"id":1506,"kind":"int","value":1},{"id":1507,"kind":"name","name":"Second"}]},{"id":1509,"kind":"name","name":"ConsumerChains"},{"id":1510,"kind":"app","opcode":"Set","args":[]}]}]},{"id":1515,"kind":"app","opcode":"VotingPowerChange","args":[{"id":1513,"kind":"str","value":"node1"},{"id":1514,"kind":"int","value":50}]}]},{"id":1522,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1519,"kind":"app","opcode":"imul","args":[{"id":1517,"kind":"int","value":1},{"id":1518,"kind":"name","name":"Second"}]},{"id":1520,"kind":"app","opcode":"Set","args":[]},{"id":1521,"kind":"app","opcode":"Set","args":[]}]}]},{"id":1531,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1528,"kind":"app","opcode":"iadd","args":[{"id":1524,"kind":"name","name":"VscTimeout"},{"id":1527,"kind":"app","opcode":"imul","args":[{"id":1525,"kind":"int","value":1},{"id":1526,"kind":"name","name":"Second"}]}]},{"id":1529,"kind":"app","opcode":"Set","args":[]},{"id":1530,"kind":"app","opcode":"Set","args":[]}]}]},{"id":1538,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":1535,"kind":"app","opcode":"imul","args":[{"id":1533,"kind":"int","value":1},{"id":1534,"kind":"name","name":"Second"}]},{"id":1536,"kind":"app","opcode":"Set","args":[]},{"id":1537,"kind":"app","opcode":"Set","args":[]}]}]},{"id":1557,"kind":"app","opcode":"actionAll","args":[{"id":1553,"kind":"app","opcode":"assert","args":[{"id":1552,"kind":"app","opcode":"forall","args":[{"id":1540,"kind":"name","name":"ConsumerChains"},{"id":1551,"kind":"lambda","params":[{"id":1541,"name":"chain"}],"qualifier":"def","expr":{"id":1550,"kind":"app","opcode":"eq","args":[{"id":1548,"kind":"app","opcode":"get","args":[{"id":1546,"kind":"app","opcode":"field","args":[{"id":1544,"kind":"app","opcode":"field","args":[{"id":1542,"kind":"name","name":"currentState"},{"id":1543,"kind":"str","value":"providerState"}]},{"id":1545,"kind":"str","value":"consumerStatus"}]},{"id":1547,"kind":"name","name":"chain"}]},{"id":1549,"kind":"name","name":"TIMEDOUT"}]}}]}]},{"id":1556,"kind":"app","opcode":"VotingPowerChange","args":[{"id":1554,"kind":"str","value":"node1"},{"id":1555,"kind":"int","value":50}]}]}]}},{"id":2192,"kind":"def","name":"KeyAssignmentTest","qualifier":"run","expr":{"id":2191,"kind":"app","opcode":"then","args":[{"id":2148,"kind":"app","opcode":"then","args":[{"id":2145,"kind":"app","opcode":"then","args":[{"id":2139,"kind":"app","opcode":"then","args":[{"id":2037,"kind":"app","opcode":"then","args":[{"id":2031,"kind":"app","opcode":"then","args":[{"id":2028,"kind":"app","opcode":"then","args":[{"id":2021,"kind":"app","opcode":"then","args":[{"id":2016,"kind":"app","opcode":"then","args":[{"id":2009,"kind":"name","name":"init"},{"id":2015,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":2012,"kind":"app","opcode":"imul","args":[{"id":2010,"kind":"int","value":1},{"id":2011,"kind":"name","name":"Second"}]},{"id":2013,"kind":"name","name":"consumerChains"},{"id":2014,"kind":"app","opcode":"Set","args":[]}]}]},{"id":2020,"kind":"app","opcode":"KeyAssignment","args":[{"id":2017,"kind":"str","value":"consumer1"},{"id":2018,"kind":"str","value":"node1"},{"id":2019,"kind":"str","value":"consAddr1"}]}]},{"id":2027,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":2024,"kind":"app","opcode":"imul","args":[{"id":2022,"kind":"int","value":1},{"id":2023,"kind":"name","name":"Second"}]},{"id":2025,"kind":"app","opcode":"Set","args":[]},{"id":2026,"kind":"app","opcode":"Set","args":[]}]}]},{"id":2030,"kind":"app","opcode":"DeliverVscPacket","args":[{"id":2029,"kind":"str","value":"consumer1"}]}]},{"id":2036,"kind":"app","opcode":"EndAndBeginBlockForConsumer","args":[{"id":2032,"kind":"str","value":"consumer1"},{"id":2035,"kind":"app","opcode":"imul","args":[{"id":2033,"kind":"int","value":1},{"id":2034,"kind":"name","name":"Second"}]}]}]},{"id":2138,"kind":"app","opcode":"actionAll","args":[{"id":2051,"kind":"app","opcode":"assert","args":[{"id":2050,"kind":"app","opcode":"eq","args":[{"id":2048,"kind":"app","opcode":"get","args":[{"id":2046,"kind":"app","opcode":"field","args":[{"id":2044,"kind":"app","opcode":"field","args":[{"id":2042,"kind":"app","opcode":"get","args":[{"id":2040,"kind":"app","opcode":"field","args":[{"id":2038,"kind":"name","name":"currentState"},{"id":2039,"kind":"str","value":"consumerStates"}]},{"id":2041,"kind":"str","value":"consumer1"}]},{"id":2043,"kind":"str","value":"chainState"}]},{"id":2045,"kind":"str","value":"currentValidatorSet"}]},{"id":2047,"kind":"str","value":"node1"}]},{"id":2049,"kind":"int","value":0}]}]},{"id":2065,"kind":"app","opcode":"assert","args":[{"id":2064,"kind":"app","opcode":"eq","args":[{"id":2062,"kind":"app","opcode":"get","args":[{"id":2060,"kind":"app","opcode":"field","args":[{"id":2058,"kind":"app","opcode":"field","args":[{"id":2056,"kind":"app","opcode":"get","args":[{"id":2054,"kind":"app","opcode":"field","args":[{"id":2052,"kind":"name","name":"currentState"},{"id":2053,"kind":"str","value":"consumerStates"}]},{"id":2055,"kind":"str","value":"consumer1"}]},{"id":2057,"kind":"str","value":"chainState"}]},{"id":2059,"kind":"str","value":"currentValidatorSet"}]},{"id":2061,"kind":"str","value":"consAddr1"}]},{"id":2063,"kind":"int","value":100}]}]},{"id":2075,"kind":"let","opdef":{"id":2071,"kind":"def","name":"res","qualifier":"val","expr":{"id":2070,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2066,"kind":"name","name":"currentState"},{"id":2067,"kind":"str","value":"consumer1"},{"id":2068,"kind":"str","value":"node1"},{"id":2069,"kind":"str","value":"consAddr1"}]}},"expr":{"id":2074,"kind":"app","opcode":"assert","args":[{"id":2073,"kind":"app","opcode":"hasError","args":[{"id":2072,"kind":"name","name":"res"}]}]}},{"id":2085,"kind":"let","opdef":{"id":2081,"kind":"def","name":"res2","qualifier":"val","expr":{"id":2080,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2076,"kind":"name","name":"currentState"},{"id":2077,"kind":"str","value":"consumer1"},{"id":2078,"kind":"str","value":"node2"},{"id":2079,"kind":"str","value":"consAddr1"}]}},"expr":{"id":2084,"kind":"app","opcode":"assert","args":[{"id":2083,"kind":"app","opcode":"hasError","args":[{"id":2082,"kind":"name","name":"res2"}]}]}},{"id":2096,"kind":"let","opdef":{"id":2091,"kind":"def","name":"res3","qualifier":"val","expr":{"id":2090,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2086,"kind":"name","name":"currentState"},{"id":2087,"kind":"str","value":"consumer2"},{"id":2088,"kind":"str","value":"node2"},{"id":2089,"kind":"str","value":"consAddr1"}]}},"expr":{"id":2095,"kind":"app","opcode":"assert","args":[{"id":2094,"kind":"app","opcode":"not","args":[{"id":2093,"kind":"app","opcode":"hasError","args":[{"id":2092,"kind":"name","name":"res3"}]}]}]}},{"id":2106,"kind":"let","opdef":{"id":2102,"kind":"def","name":"res4","qualifier":"val","expr":{"id":2101,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2097,"kind":"name","name":"currentState"},{"id":2098,"kind":"str","value":"consumer1"},{"id":2099,"kind":"str","value":"node2"},{"id":2100,"kind":"str","value":"node1"}]}},"expr":{"id":2105,"kind":"app","opcode":"assert","args":[{"id":2104,"kind":"app","opcode":"hasError","args":[{"id":2103,"kind":"name","name":"res4"}]}]}},{"id":2117,"kind":"let","opdef":{"id":2112,"kind":"def","name":"res5","qualifier":"val","expr":{"id":2111,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2107,"kind":"name","name":"currentState"},{"id":2108,"kind":"str","value":"consumer1"},{"id":2109,"kind":"str","value":"node1"},{"id":2110,"kind":"str","value":"consAddr2"}]}},"expr":{"id":2116,"kind":"app","opcode":"assert","args":[{"id":2115,"kind":"app","opcode":"not","args":[{"id":2114,"kind":"app","opcode":"hasError","args":[{"id":2113,"kind":"name","name":"res5"}]}]}]}},{"id":2128,"kind":"let","opdef":{"id":2123,"kind":"def","name":"res6","qualifier":"val","expr":{"id":2122,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2118,"kind":"name","name":"currentState"},{"id":2119,"kind":"str","value":"consumer1"},{"id":2120,"kind":"str","value":"node1"},{"id":2121,"kind":"str","value":"node1"}]}},"expr":{"id":2127,"kind":"app","opcode":"assert","args":[{"id":2126,"kind":"app","opcode":"not","args":[{"id":2125,"kind":"app","opcode":"hasError","args":[{"id":2124,"kind":"name","name":"res6"}]}]}]}},{"id":2137,"kind":"app","opcode":"EndAndBeginBlockForConsumer","args":[{"id":2129,"kind":"str","value":"consumer1"},{"id":2136,"kind":"app","opcode":"iadd","args":[{"id":2132,"kind":"app","opcode":"get","args":[{"id":2130,"kind":"name","name":"unbondingPeriods"},{"id":2131,"kind":"str","value":"consumer1"}]},{"id":2135,"kind":"app","opcode":"imul","args":[{"id":2133,"kind":"int","value":1},{"id":2134,"kind":"name","name":"Hour"}]}]}]}]}]},{"id":2144,"kind":"app","opcode":"EndAndBeginBlockForConsumer","args":[{"id":2140,"kind":"str","value":"consumer1"},{"id":2143,"kind":"app","opcode":"imul","args":[{"id":2141,"kind":"int","value":1},{"id":2142,"kind":"name","name":"Second"}]}]}]},{"id":2147,"kind":"app","opcode":"DeliverVscMaturedPacket","args":[{"id":2146,"kind":"str","value":"consumer1"}]}]},{"id":2190,"kind":"app","opcode":"actionAll","args":[{"id":2160,"kind":"app","opcode":"assert","args":[{"id":2159,"kind":"app","opcode":"eq","args":[{"id":2157,"kind":"app","opcode":"get","args":[{"id":2155,"kind":"app","opcode":"get","args":[{"id":2153,"kind":"app","opcode":"field","args":[{"id":2151,"kind":"app","opcode":"field","args":[{"id":2149,"kind":"name","name":"currentState"},{"id":2150,"kind":"str","value":"providerState"}]},{"id":2152,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":2154,"kind":"str","value":"consumer1"}]},{"id":2156,"kind":"str","value":"consAddr1"}]},{"id":2158,"kind":"str","value":"node1"}]}]},{"id":2173,"kind":"app","opcode":"assert","args":[{"id":2172,"kind":"app","opcode":"eq","args":[{"id":2170,"kind":"app","opcode":"length","args":[{"id":2169,"kind":"app","opcode":"get","args":[{"id":2167,"kind":"app","opcode":"get","args":[{"id":2165,"kind":"app","opcode":"field","args":[{"id":2163,"kind":"app","opcode":"field","args":[{"id":2161,"kind":"name","name":"currentState"},{"id":2162,"kind":"str","value":"providerState"}]},{"id":2164,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":2166,"kind":"str","value":"consumer1"}]},{"id":2168,"kind":"int","value":0}]}]},{"id":2171,"kind":"int","value":0}]}]},{"id":2186,"kind":"app","opcode":"assert","args":[{"id":2185,"kind":"app","opcode":"eq","args":[{"id":2183,"kind":"app","opcode":"size","args":[{"id":2182,"kind":"app","opcode":"keys","args":[{"id":2181,"kind":"app","opcode":"getOrElse","args":[{"id":2178,"kind":"app","opcode":"field","args":[{"id":2176,"kind":"app","opcode":"field","args":[{"id":2174,"kind":"name","name":"currentState"},{"id":2175,"kind":"str","value":"providerState"}]},{"id":2177,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":2179,"kind":"str","value":"consumer1"},{"id":2180,"kind":"app","opcode":"Map","args":[]}]}]}]},{"id":2184,"kind":"int","value":0}]}]},{"id":2189,"kind":"app","opcode":"VotingPowerChange","args":[{"id":2187,"kind":"str","value":"node1"},{"id":2188,"kind":"int","value":50}]}]}]}},{"id":2218,"kind":"def","name":"KeyAssignmentInvTest","qualifier":"run","expr":{"id":2217,"kind":"app","opcode":"then","args":[{"id":2211,"kind":"app","opcode":"then","args":[{"id":2202,"kind":"app","opcode":"then","args":[{"id":2198,"kind":"app","opcode":"then","args":[{"id":2193,"kind":"name","name":"init"},{"id":2197,"kind":"app","opcode":"KeyAssignment","args":[{"id":2194,"kind":"str","value":"consumer3"},{"id":2195,"kind":"str","value":"node3"},{"id":2196,"kind":"str","value":"consAddr6"}]}]},{"id":2201,"kind":"app","opcode":"VotingPowerChange","args":[{"id":2199,"kind":"str","value":"node1"},{"id":2200,"kind":"int","value":50}]}]},{"id":2210,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":2205,"kind":"app","opcode":"imul","args":[{"id":2203,"kind":"int","value":1},{"id":2204,"kind":"name","name":"Second"}]},{"id":2208,"kind":"app","opcode":"Set","args":[{"id":2206,"kind":"str","value":"consumer1"},{"id":2207,"kind":"str","value":"consumer2"}]},{"id":2209,"kind":"app","opcode":"Set","args":[]}]}]},{"id":2216,"kind":"app","opcode":"actionAll","args":[{"id":2212,"kind":"name","name":"ValidatorSetHasExistedKeyAssignmentInv"},{"id":2215,"kind":"app","opcode":"VotingPowerChange","args":[{"id":2213,"kind":"str","value":"node1"},{"id":2214,"kind":"int","value":50}]}]}]}},{"id":516,"kind":"def","name":"stepCommon","qualifier":"action","expr":{"id":515,"kind":"app","opcode":"actionAny","args":[{"id":492,"kind":"let","opdef":{"id":481,"kind":"def","name":"node","qualifier":"nondet","expr":{"id":480,"kind":"app","opcode":"oneOf","args":[{"id":479,"kind":"name","name":"nodes"}]}},"expr":{"id":491,"kind":"let","opdef":{"id":487,"kind":"def","name":"newVotingPower","qualifier":"nondet","expr":{"id":486,"kind":"app","opcode":"oneOf","args":[{"id":485,"kind":"app","opcode":"Set","args":[{"id":483,"kind":"app","opcode":"iuminus","args":[{"id":482,"kind":"int","value":50}]},{"id":484,"kind":"int","value":50}]}]}},"expr":{"id":490,"kind":"app","opcode":"VotingPowerChange","args":[{"id":488,"kind":"name","name":"node"},{"id":489,"kind":"name","name":"newVotingPower"}]}}},{"id":503,"kind":"app","opcode":"actionAll","args":[{"id":496,"kind":"app","opcode":"igt","args":[{"id":494,"kind":"app","opcode":"size","args":[{"id":493,"kind":"name","name":"runningConsumers"}]},{"id":495,"kind":"int","value":0}]},{"id":502,"kind":"let","opdef":{"id":499,"kind":"def","name":"sender","qualifier":"nondet","expr":{"id":498,"kind":"app","opcode":"oneOf","args":[{"id":497,"kind":"name","name":"runningConsumers"}]}},"expr":{"id":501,"kind":"app","opcode":"DeliverVscMaturedPacket","args":[{"id":500,"kind":"name","name":"sender"}]}}]},{"id":514,"kind":"app","opcode":"actionAll","args":[{"id":507,"kind":"app","opcode":"igt","args":[{"id":505,"kind":"app","opcode":"size","args":[{"id":504,"kind":"name","name":"runningConsumers"}]},{"id":506,"kind":"int","value":0}]},{"id":513,"kind":"let","opdef":{"id":510,"kind":"def","name":"receiver","qualifier":"nondet","expr":{"id":509,"kind":"app","opcode":"oneOf","args":[{"id":508,"kind":"name","name":"runningConsumers"}]}},"expr":{"id":512,"kind":"app","opcode":"DeliverVscPacket","args":[{"id":511,"kind":"name","name":"receiver"}]}}]}]}},{"id":560,"kind":"def","name":"step","qualifier":"action","expr":{"id":559,"kind":"app","opcode":"actionAny","args":[{"id":532,"kind":"app","opcode":"actionAll","args":[{"id":520,"kind":"app","opcode":"igt","args":[{"id":518,"kind":"app","opcode":"size","args":[{"id":517,"kind":"name","name":"runningConsumers"}]},{"id":519,"kind":"int","value":0}]},{"id":531,"kind":"let","opdef":{"id":523,"kind":"def","name":"chain","qualifier":"nondet","expr":{"id":522,"kind":"app","opcode":"oneOf","args":[{"id":521,"kind":"name","name":"runningConsumers"}]}},"expr":{"id":530,"kind":"let","opdef":{"id":526,"kind":"def","name":"timeAdvancement","qualifier":"nondet","expr":{"id":525,"kind":"app","opcode":"oneOf","args":[{"id":524,"kind":"name","name":"timeAdvancements"}]}},"expr":{"id":529,"kind":"app","opcode":"EndAndBeginBlockForConsumer","args":[{"id":527,"kind":"name","name":"chain"},{"id":528,"kind":"name","name":"timeAdvancement"}]}}}]},{"id":557,"kind":"let","opdef":{"id":538,"kind":"def","name":"consumerStatus","qualifier":"val","expr":{"id":537,"kind":"app","opcode":"field","args":[{"id":535,"kind":"app","opcode":"field","args":[{"id":533,"kind":"name","name":"currentState"},{"id":534,"kind":"str","value":"providerState"}]},{"id":536,"kind":"str","value":"consumerStatus"}]}},"expr":{"id":556,"kind":"let","opdef":{"id":542,"kind":"def","name":"consumersToStart","qualifier":"nondet","expr":{"id":541,"kind":"app","opcode":"oneOf","args":[{"id":540,"kind":"app","opcode":"powerset","args":[{"id":539,"kind":"name","name":"nonConsumers"}]}]}},"expr":{"id":555,"kind":"let","opdef":{"id":546,"kind":"def","name":"consumersToStop","qualifier":"nondet","expr":{"id":545,"kind":"app","opcode":"oneOf","args":[{"id":544,"kind":"app","opcode":"powerset","args":[{"id":543,"kind":"name","name":"runningConsumers"}]}]}},"expr":{"id":554,"kind":"let","opdef":{"id":549,"kind":"def","name":"timeAdvancement","qualifier":"nondet","expr":{"id":548,"kind":"app","opcode":"oneOf","args":[{"id":547,"kind":"name","name":"timeAdvancements"}]}},"expr":{"id":553,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":550,"kind":"name","name":"timeAdvancement"},{"id":551,"kind":"name","name":"consumersToStart"},{"id":552,"kind":"name","name":"consumersToStop"}]}}}}},{"id":558,"kind":"name","name":"stepCommon"}]}},{"id":1588,"kind":"def","name":"stepKeyAssignment","qualifier":"action","expr":{"id":1587,"kind":"app","opcode":"actionAny","args":[{"id":1560,"kind":"name","name":"step"},{"id":1586,"kind":"app","opcode":"actionAll","args":[{"id":1567,"kind":"app","opcode":"igt","args":[{"id":1565,"kind":"app","opcode":"iadd","args":[{"id":1562,"kind":"app","opcode":"size","args":[{"id":1561,"kind":"name","name":"runningConsumers"}]},{"id":1564,"kind":"app","opcode":"size","args":[{"id":1563,"kind":"name","name":"nonConsumers"}]}]},{"id":1566,"kind":"int","value":0}]},{"id":1585,"kind":"let","opdef":{"id":1572,"kind":"def","name":"consumer","qualifier":"nondet","expr":{"id":1571,"kind":"app","opcode":"oneOf","args":[{"id":1570,"kind":"app","opcode":"union","args":[{"id":1568,"kind":"name","name":"runningConsumers"},{"id":1569,"kind":"name","name":"nonConsumers"}]}]}},"expr":{"id":1584,"kind":"let","opdef":{"id":1575,"kind":"def","name":"node","qualifier":"nondet","expr":{"id":1574,"kind":"app","opcode":"oneOf","args":[{"id":1573,"kind":"name","name":"nodes"}]}},"expr":{"id":1583,"kind":"let","opdef":{"id":1578,"kind":"def","name":"address","qualifier":"nondet","expr":{"id":1577,"kind":"app","opcode":"oneOf","args":[{"id":1576,"kind":"name","name":"consumerAddresses"}]}},"expr":{"id":1582,"kind":"app","opcode":"KeyAssignment","args":[{"id":1579,"kind":"name","name":"consumer"},{"id":1580,"kind":"name","name":"node"},{"id":1581,"kind":"name","name":"address"}]}}}}]}]}}]}],"table":{"9":{"id":8,"kind":"def","name":"consumerChainList","qualifier":"pureval","expr":{"id":7,"kind":"app","opcode":"List","args":[{"id":4,"kind":"str","value":"consumer1"},{"id":5,"kind":"str","value":"consumer2"},{"id":6,"kind":"str","value":"consumer3"}]},"depth":0},"10":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"12":{"id":11,"kind":"def","name":"consumerChains","qualifier":"pureval","expr":{"id":10,"kind":"app","opcode":"toSet","args":[{"id":9,"kind":"name","name":"consumerChainList"}]},"depth":0},"13":{"id":2433,"kind":"def","name":"PROVIDER_CHAIN","qualifier":"pureval","expr":{"id":2432,"kind":"str","value":"provider"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"18":{"id":4613,"kind":"def","name":"Week","qualifier":"pureval","expr":{"id":4612,"kind":"app","opcode":"imul","args":[{"id":4610,"kind":"int","value":7},{"id":4611,"kind":"name","name":"Day"}]},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"21":{"id":16,"kind":"def","name":"chains","qualifier":"pureval","expr":{"id":15,"kind":"app","opcode":"union","args":[{"id":12,"kind":"name","name":"consumerChains"},{"id":14,"kind":"app","opcode":"Set","args":[{"id":13,"kind":"name","name":"PROVIDER_CHAIN"}]}]},"depth":0},"23":{"id":20,"kind":"def","name":"defUnbondingPeriod","qualifier":"pureval","expr":{"id":19,"kind":"app","opcode":"imul","args":[{"id":17,"kind":"int","value":2},{"id":18,"kind":"name","name":"Week"}]},"depth":0},"27":{"id":16,"kind":"def","name":"chains","qualifier":"pureval","expr":{"id":15,"kind":"app","opcode":"union","args":[{"id":12,"kind":"name","name":"consumerChains"},{"id":14,"kind":"app","opcode":"Set","args":[{"id":13,"kind":"name","name":"PROVIDER_CHAIN"}]}]},"depth":0},"29":{"id":20,"kind":"def","name":"defUnbondingPeriod","qualifier":"pureval","expr":{"id":19,"kind":"app","opcode":"imul","args":[{"id":17,"kind":"int","value":2},{"id":18,"kind":"name","name":"Week"}]},"depth":0},"31":{"id":4605,"kind":"def","name":"Hour","qualifier":"pureval","expr":{"id":4604,"kind":"app","opcode":"imul","args":[{"id":4602,"kind":"int","value":60},{"id":4603,"kind":"name","name":"Minute"}]},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"37":{"id":16,"kind":"def","name":"chains","qualifier":"pureval","expr":{"id":15,"kind":"app","opcode":"union","args":[{"id":12,"kind":"name","name":"consumerChains"},{"id":14,"kind":"app","opcode":"Set","args":[{"id":13,"kind":"name","name":"PROVIDER_CHAIN"}]}]},"depth":0},"40":{"id":4613,"kind":"def","name":"Week","qualifier":"pureval","expr":{"id":4612,"kind":"app","opcode":"imul","args":[{"id":4610,"kind":"int","value":7},{"id":4611,"kind":"name","name":"Day"}]},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"69":{"id":56,"kind":"def","name":"nodes","qualifier":"pureval","expr":{"id":55,"kind":"app","opcode":"Set","args":[{"id":45,"kind":"str","value":"node1"},{"id":46,"kind":"str","value":"node2"},{"id":47,"kind":"str","value":"node3"},{"id":48,"kind":"str","value":"node4"},{"id":49,"kind":"str","value":"node5"},{"id":50,"kind":"str","value":"node6"},{"id":51,"kind":"str","value":"node7"},{"id":52,"kind":"str","value":"node8"},{"id":53,"kind":"str","value":"node9"},{"id":54,"kind":"str","value":"node10"}]},"depth":0},"76":{"id":4613,"kind":"def","name":"Week","qualifier":"pureval","expr":{"id":4612,"kind":"app","opcode":"imul","args":[{"id":4610,"kind":"int","value":7},{"id":4611,"kind":"name","name":"Day"}]},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"78":{"id":44,"kind":"def","name":"ccvTimeouts","qualifier":"pureval","expr":{"id":43,"kind":"app","opcode":"mapBy","args":[{"id":37,"kind":"name","name":"chains"},{"id":42,"kind":"lambda","params":[{"id":38,"name":"chain"}],"qualifier":"def","expr":{"id":41,"kind":"app","opcode":"imul","args":[{"id":39,"kind":"int","value":3},{"id":40,"kind":"name","name":"Week"}]}}]},"depth":0},"79":{"id":26,"kind":"def","name":"unbondingPeriods","qualifier":"pureval","expr":{"id":25,"kind":"app","opcode":"mapBy","args":[{"id":21,"kind":"name","name":"chains"},{"id":24,"kind":"lambda","params":[{"id":22,"name":"chain"}],"qualifier":"def","expr":{"id":23,"kind":"name","name":"defUnbondingPeriod"}}]},"depth":0},"80":{"id":11,"kind":"def","name":"consumerChains","qualifier":"pureval","expr":{"id":10,"kind":"app","opcode":"toSet","args":[{"id":9,"kind":"name","name":"consumerChainList"}]},"depth":0},"81":{"id":36,"kind":"def","name":"trustingPeriods","qualifier":"pureval","expr":{"id":35,"kind":"app","opcode":"mapBy","args":[{"id":27,"kind":"name","name":"chains"},{"id":34,"kind":"lambda","params":[{"id":28,"name":"chain"}],"qualifier":"def","expr":{"id":33,"kind":"app","opcode":"isub","args":[{"id":29,"kind":"name","name":"defUnbondingPeriod"},{"id":32,"kind":"app","opcode":"imul","args":[{"id":30,"kind":"int","value":1},{"id":31,"kind":"name","name":"Hour"}]}]}}]},"depth":0},"82":{"kind":"const","name":"VscTimeout","typeAnnotation":{"id":2628,"kind":"int"},"id":77,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"83":{"kind":"const","name":"CcvTimeout","typeAnnotation":{"id":2632,"kind":"fun","arg":{"id":2630,"kind":"const","name":"Chain"},"res":{"id":2631,"kind":"int"}},"id":78,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"84":{"kind":"const","name":"UnbondingPeriodPerChain","typeAnnotation":{"id":2626,"kind":"fun","arg":{"id":2624,"kind":"const","name":"Chain"},"res":{"id":2625,"kind":"int"}},"id":79,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"85":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"86":{"kind":"const","name":"TrustingPeriodPerChain","typeAnnotation":{"id":2636,"kind":"fun","arg":{"id":2634,"kind":"const","name":"Chain"},"res":{"id":2635,"kind":"int"}},"id":81,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"88":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"89":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"90":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"92":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"93":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"95":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"96":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"98":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"100":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"102":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"107":{"id":106,"kind":"typedef","name":"Parameters","type":{"id":105,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"VscTimeout","fieldType":{"id":88,"kind":"const","name":"Time"}},{"fieldName":"CcvTimeout","fieldType":{"id":91,"kind":"fun","arg":{"id":89,"kind":"const","name":"Chain"},"res":{"id":90,"kind":"const","name":"Time"}}},{"fieldName":"UnbondingPeriodPerChain","fieldType":{"id":94,"kind":"fun","arg":{"id":92,"kind":"const","name":"Chain"},"res":{"id":93,"kind":"const","name":"Time"}}},{"fieldName":"TrustingPeriodPerChain","fieldType":{"id":97,"kind":"fun","arg":{"id":95,"kind":"const","name":"Chain"},"res":{"id":96,"kind":"const","name":"Time"}}},{"fieldName":"ConsumerChains","fieldType":{"id":99,"kind":"set","elem":{"id":98,"kind":"const","name":"Chain"}}},{"fieldName":"Nodes","fieldType":{"id":101,"kind":"set","elem":{"id":100,"kind":"const","name":"Node"}}},{"fieldName":"InitialValidatorSet","fieldType":{"id":104,"kind":"fun","arg":{"id":102,"kind":"const","name":"Node"},"res":{"id":103,"kind":"int"}}}],"other":{"kind":"empty"}}}},"109":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"112":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"113":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"114":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"116":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"118":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"120":{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"123":{"id":122,"kind":"typedef","name":"Action","type":{"id":121,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"kind","fieldType":{"id":111,"kind":"str"}},{"fieldName":"consumerChain","fieldType":{"id":112,"kind":"const","name":"Chain"}},{"fieldName":"timeAdvancement","fieldType":{"id":113,"kind":"const","name":"Time"}},{"fieldName":"consumersToStart","fieldType":{"id":115,"kind":"set","elem":{"id":114,"kind":"const","name":"Chain"}}},{"fieldName":"consumersToStop","fieldType":{"id":117,"kind":"set","elem":{"id":116,"kind":"const","name":"Chain"}}},{"fieldName":"validator","fieldType":{"id":118,"kind":"const","name":"Node"}},{"fieldName":"changeAmount","fieldType":{"id":119,"kind":"int"}},{"fieldName":"consumerAddr","fieldType":{"id":120,"kind":"const","name":"ConsumerAddr"}}],"other":{"kind":"empty"}}}},"127":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"130":{"id":4609,"kind":"def","name":"Day","qualifier":"pureval","expr":{"id":4608,"kind":"app","opcode":"imul","args":[{"id":4606,"kind":"int","value":24},{"id":4607,"kind":"name","name":"Hour"}]},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"133":{"id":4613,"kind":"def","name":"Week","qualifier":"pureval","expr":{"id":4612,"kind":"app","opcode":"imul","args":[{"id":4610,"kind":"int","value":7},{"id":4611,"kind":"name","name":"Day"}]},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"136":{"id":4605,"kind":"def","name":"Hour","qualifier":"pureval","expr":{"id":4604,"kind":"app","opcode":"imul","args":[{"id":4602,"kind":"int","value":60},{"id":4603,"kind":"name","name":"Minute"}]},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"141":{"id":122,"kind":"typedef","name":"Action","type":{"id":121,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"kind","fieldType":{"id":111,"kind":"str"}},{"fieldName":"consumerChain","fieldType":{"id":112,"kind":"const","name":"Chain"}},{"fieldName":"timeAdvancement","fieldType":{"id":113,"kind":"const","name":"Time"}},{"fieldName":"consumersToStart","fieldType":{"id":115,"kind":"set","elem":{"id":114,"kind":"const","name":"Chain"}}},{"fieldName":"consumersToStop","fieldType":{"id":117,"kind":"set","elem":{"id":116,"kind":"const","name":"Chain"}}},{"fieldName":"validator","fieldType":{"id":118,"kind":"const","name":"Node"}},{"fieldName":"changeAmount","fieldType":{"id":119,"kind":"int"}},{"fieldName":"consumerAddr","fieldType":{"id":120,"kind":"const","name":"ConsumerAddr"}}],"other":{"kind":"empty"}}}},"147":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"162":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"170":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"173":{"id":4443,"kind":"def","name":"getRunningConsumers","qualifier":"puredef","expr":{"id":4442,"kind":"lambda","params":[{"id":4423,"name":"providerState"}],"qualifier":"puredef","expr":{"id":4440,"kind":"app","opcode":"filter","args":[{"id":4430,"kind":"app","opcode":"keys","args":[{"id":4429,"kind":"app","opcode":"field","args":[{"id":4427,"kind":"name","name":"providerState"},{"id":4428,"kind":"str","value":"consumerStatus"}]}]},{"id":4439,"kind":"lambda","params":[{"id":4431,"name":"chain"}],"qualifier":"def","expr":{"id":4438,"kind":"app","opcode":"eq","args":[{"id":4436,"kind":"app","opcode":"get","args":[{"id":4434,"kind":"app","opcode":"field","args":[{"id":4432,"kind":"name","name":"providerState"},{"id":4433,"kind":"str","value":"consumerStatus"}]},{"id":4435,"kind":"name","name":"chain"}]},{"id":4437,"kind":"name","name":"RUNNING"}]}}]}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"175":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"178":{"id":4464,"kind":"def","name":"getNonConsumers","qualifier":"puredef","expr":{"id":4463,"kind":"lambda","params":[{"id":4444,"name":"providerState"}],"qualifier":"puredef","expr":{"id":4461,"kind":"app","opcode":"filter","args":[{"id":4451,"kind":"app","opcode":"keys","args":[{"id":4450,"kind":"app","opcode":"field","args":[{"id":4448,"kind":"name","name":"providerState"},{"id":4449,"kind":"str","value":"consumerStatus"}]}]},{"id":4460,"kind":"lambda","params":[{"id":4452,"name":"chain"}],"qualifier":"def","expr":{"id":4459,"kind":"app","opcode":"eq","args":[{"id":4457,"kind":"app","opcode":"get","args":[{"id":4455,"kind":"app","opcode":"field","args":[{"id":4453,"kind":"name","name":"providerState"},{"id":4454,"kind":"str","value":"consumerStatus"}]},{"id":4456,"kind":"name","name":"chain"}]},{"id":4458,"kind":"name","name":"NOT_CONSUMER"}]}}]}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"181":{"id":2349,"kind":"def","name":"GetEmptyProviderState","qualifier":"puredef","expr":{"id":2348,"kind":"app","opcode":"Rec","args":[{"id":2323,"kind":"str","value":"chainState"},{"id":2322,"kind":"name","name":"GetEmptyChainState"},{"id":2325,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":2324,"kind":"app","opcode":"Map","args":[]},{"id":2327,"kind":"str","value":"receivedMaturations"},{"id":2326,"kind":"app","opcode":"Set","args":[]},{"id":2329,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":2328,"kind":"app","opcode":"Map","args":[]},{"id":2331,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":2330,"kind":"bool","value":false},{"id":2333,"kind":"str","value":"consumerStatus"},{"id":2332,"kind":"app","opcode":"Map","args":[]},{"id":2335,"kind":"str","value":"runningVscId"},{"id":2334,"kind":"int","value":0},{"id":2337,"kind":"str","value":"validatorConsumerPubKey"},{"id":2336,"kind":"app","opcode":"Map","args":[]},{"id":2339,"kind":"str","value":"keyAssignedValSetHistory"},{"id":2338,"kind":"app","opcode":"Map","args":[]},{"id":2341,"kind":"str","value":"validatorByConsumerAddr"},{"id":2340,"kind":"app","opcode":"Map","args":[]},{"id":2343,"kind":"str","value":"keyAssignmentReplacements"},{"id":2342,"kind":"app","opcode":"Map","args":[]},{"id":2345,"kind":"str","value":"consumerAddrsToPrune"},{"id":2344,"kind":"app","opcode":"Map","args":[]},{"id":2347,"kind":"str","value":"keyAssignmentsForVSCPackets"},{"id":2346,"kind":"app","opcode":"Map","args":[]}]},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"183":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"185":{"id":2371,"kind":"def","name":"GetEmptyConsumerState","qualifier":"puredef","expr":{"id":2370,"kind":"app","opcode":"Rec","args":[{"id":2363,"kind":"str","value":"chainState"},{"id":2362,"kind":"name","name":"GetEmptyChainState"},{"id":2365,"kind":"str","value":"maturationTimes"},{"id":2364,"kind":"app","opcode":"List","args":[]},{"id":2367,"kind":"str","value":"outstandingPacketsToProvider"},{"id":2366,"kind":"app","opcode":"List","args":[]},{"id":2369,"kind":"str","value":"receivedVscPackets"},{"id":2368,"kind":"app","opcode":"List","args":[]}]},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"189":{"id":182,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":181,"kind":"name","name":"GetEmptyProviderState"},"depth":1},"191":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"193":{"id":2431,"kind":"def","name":"NOT_CONSUMER","qualifier":"pureval","expr":{"id":2430,"kind":"str","value":"not consumer"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"198":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"205":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"212":{"id":182,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":181,"kind":"name","name":"GetEmptyProviderState"},"depth":1},"216":{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]},"depth":0},"220":{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]},"depth":0},"224":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"226":{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]},"depth":0},"232":{"id":231,"kind":"def","name":"providerStateWithConsumers","qualifier":"val","expr":{"id":230,"kind":"app","opcode":"with","args":[{"id":222,"kind":"app","opcode":"with","args":[{"id":210,"kind":"app","opcode":"with","args":[{"id":203,"kind":"app","opcode":"with","args":[{"id":196,"kind":"app","opcode":"with","args":[{"id":189,"kind":"name","name":"providerState"},{"id":190,"kind":"str","value":"consumerStatus"},{"id":195,"kind":"app","opcode":"mapBy","args":[{"id":191,"kind":"name","name":"ConsumerChains"},{"id":194,"kind":"lambda","params":[{"id":192,"name":"chain"}],"qualifier":"def","expr":{"id":193,"kind":"name","name":"NOT_CONSUMER"}}]}]},{"id":197,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":202,"kind":"app","opcode":"mapBy","args":[{"id":198,"kind":"name","name":"ConsumerChains"},{"id":201,"kind":"lambda","params":[{"id":199,"name":"chain"}],"qualifier":"def","expr":{"id":200,"kind":"app","opcode":"List","args":[]}}]}]},{"id":204,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":209,"kind":"app","opcode":"mapBy","args":[{"id":205,"kind":"name","name":"ConsumerChains"},{"id":208,"kind":"lambda","params":[{"id":206,"name":"chain"}],"qualifier":"def","expr":{"id":207,"kind":"app","opcode":"List","args":[]}}]}]},{"id":211,"kind":"str","value":"chainState"},{"id":221,"kind":"app","opcode":"with","args":[{"id":218,"kind":"app","opcode":"with","args":[{"id":214,"kind":"app","opcode":"field","args":[{"id":212,"kind":"name","name":"providerState"},{"id":213,"kind":"str","value":"chainState"}]},{"id":215,"kind":"str","value":"votingPowerHistory"},{"id":217,"kind":"app","opcode":"List","args":[{"id":216,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":219,"kind":"str","value":"currentValidatorSet"},{"id":220,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":223,"kind":"str","value":"keyAssignedValSetHistory"},{"id":229,"kind":"app","opcode":"mapBy","args":[{"id":224,"kind":"name","name":"ConsumerChains"},{"id":228,"kind":"lambda","params":[{"id":225,"name":"chain"}],"qualifier":"def","expr":{"id":227,"kind":"app","opcode":"List","args":[{"id":226,"kind":"name","name":"InitialValidatorSet"}]}}]}]},"depth":1},"234":{"id":188,"kind":"def","name":"consumerStates","qualifier":"val","expr":{"id":187,"kind":"app","opcode":"mapBy","args":[{"id":183,"kind":"name","name":"ConsumerChains"},{"id":186,"kind":"lambda","params":[{"id":184,"name":"chain"}],"qualifier":"def","expr":{"id":185,"kind":"name","name":"GetEmptyConsumerState"}}]},"depth":1},"237":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"242":{"id":161,"kind":"def","name":"emptyAction","qualifier":"puredef","expr":{"id":160,"kind":"app","opcode":"Rec","args":[{"id":143,"kind":"str","value":"kind"},{"id":142,"kind":"str","value":""},{"id":145,"kind":"str","value":"consumerChain"},{"id":144,"kind":"str","value":""},{"id":149,"kind":"str","value":"timeAdvancement"},{"id":148,"kind":"app","opcode":"imul","args":[{"id":146,"kind":"int","value":0},{"id":147,"kind":"name","name":"Second"}]},{"id":151,"kind":"str","value":"consumersToStart"},{"id":150,"kind":"app","opcode":"Set","args":[]},{"id":153,"kind":"str","value":"consumersToStop"},{"id":152,"kind":"app","opcode":"Set","args":[]},{"id":155,"kind":"str","value":"validator"},{"id":154,"kind":"str","value":""},{"id":157,"kind":"str","value":"changeAmount"},{"id":156,"kind":"int","value":0},{"id":159,"kind":"str","value":"consumerAddr"},{"id":158,"kind":"str","value":""}]},"depth":0},"247":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"249":{"kind":"const","name":"VscTimeout","typeAnnotation":{"id":2628,"kind":"int"},"id":77,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"251":{"kind":"const","name":"CcvTimeout","typeAnnotation":{"id":2632,"kind":"fun","arg":{"id":2630,"kind":"const","name":"Chain"},"res":{"id":2631,"kind":"int"}},"id":78,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"253":{"kind":"const","name":"UnbondingPeriodPerChain","typeAnnotation":{"id":2626,"kind":"fun","arg":{"id":2624,"kind":"const","name":"Chain"},"res":{"id":2625,"kind":"int"}},"id":79,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"255":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"257":{"id":56,"kind":"def","name":"nodes","qualifier":"pureval","expr":{"id":55,"kind":"app","opcode":"Set","args":[{"id":45,"kind":"str","value":"node1"},{"id":46,"kind":"str","value":"node2"},{"id":47,"kind":"str","value":"node3"},{"id":48,"kind":"str","value":"node4"},{"id":49,"kind":"str","value":"node5"},{"id":50,"kind":"str","value":"node6"},{"id":51,"kind":"str","value":"node7"},{"id":52,"kind":"str","value":"node8"},{"id":53,"kind":"str","value":"node9"},{"id":54,"kind":"str","value":"node10"}]},"depth":0},"259":{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]},"depth":0},"261":{"kind":"const","name":"TrustingPeriodPerChain","typeAnnotation":{"id":2636,"kind":"fun","arg":{"id":2634,"kind":"const","name":"Chain"},"res":{"id":2635,"kind":"int"}},"id":81,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"264":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"269":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"273":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"274":{"id":268,"name":"validator","kind":"param"},"275":{"id":270,"name":"changeAmount","kind":"param"},"276":{"id":2730,"kind":"def","name":"votingPowerChange","qualifier":"puredef","expr":{"id":2729,"kind":"lambda","params":[{"id":2638,"name":"currentState"},{"id":2640,"name":"validator"},{"id":2642,"name":"amount"}],"qualifier":"puredef","expr":{"id":2727,"kind":"let","opdef":{"id":2652,"kind":"def","name":"currentValidatorSet","qualifier":"pureval","expr":{"id":2651,"kind":"app","opcode":"field","args":[{"id":2649,"kind":"app","opcode":"field","args":[{"id":2647,"kind":"app","opcode":"field","args":[{"id":2645,"kind":"name","name":"currentState"},{"id":2646,"kind":"str","value":"providerState"}]},{"id":2648,"kind":"str","value":"chainState"}]},{"id":2650,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":2726,"kind":"let","opdef":{"id":2662,"kind":"def","name":"oldVotingPower","qualifier":"pureval","expr":{"id":2661,"kind":"app","opcode":"ite","args":[{"id":2656,"kind":"app","opcode":"contains","args":[{"id":2654,"kind":"app","opcode":"keys","args":[{"id":2653,"kind":"name","name":"currentValidatorSet"}]},{"id":2655,"kind":"name","name":"validator"}]},{"id":2659,"kind":"app","opcode":"get","args":[{"id":2657,"kind":"name","name":"currentValidatorSet"},{"id":2658,"kind":"name","name":"validator"}]},{"id":2660,"kind":"int","value":0}]}},"expr":{"id":2725,"kind":"app","opcode":"ite","args":[{"id":2665,"kind":"app","opcode":"eq","args":[{"id":2663,"kind":"name","name":"amount"},{"id":2664,"kind":"int","value":0}]},{"id":2667,"kind":"app","opcode":"Err","args":[{"id":2666,"kind":"str","value":"Voting power cannot change by zero!"}]},{"id":2724,"kind":"app","opcode":"ite","args":[{"id":2670,"kind":"app","opcode":"eq","args":[{"id":2668,"kind":"name","name":"oldVotingPower"},{"id":2669,"kind":"int","value":0}]},{"id":2672,"kind":"app","opcode":"Err","args":[{"id":2671,"kind":"str","value":"Voting power cannot be changed for a validator that is not in the current validator set!"}]},{"id":2723,"kind":"let","opdef":{"id":2676,"kind":"def","name":"newVotingPower","qualifier":"pureval","expr":{"id":2675,"kind":"app","opcode":"iadd","args":[{"id":2673,"kind":"name","name":"oldVotingPower"},{"id":2674,"kind":"name","name":"amount"}]}},"expr":{"id":2722,"kind":"let","opdef":{"id":2686,"kind":"def","name":"newValidatorSet","qualifier":"pureval","expr":{"id":2685,"kind":"app","opcode":"put","args":[{"id":2677,"kind":"name","name":"currentValidatorSet"},{"id":2678,"kind":"name","name":"validator"},{"id":2684,"kind":"app","opcode":"ite","args":[{"id":2681,"kind":"app","opcode":"igte","args":[{"id":2679,"kind":"name","name":"newVotingPower"},{"id":2680,"kind":"int","value":0}]},{"id":2682,"kind":"name","name":"newVotingPower"},{"id":2683,"kind":"int","value":0}]}]}},"expr":{"id":2721,"kind":"app","opcode":"ite","args":[{"id":2697,"kind":"app","opcode":"eq","args":[{"id":2695,"kind":"app","opcode":"size","args":[{"id":2694,"kind":"app","opcode":"filter","args":[{"id":2688,"kind":"app","opcode":"values","args":[{"id":2687,"kind":"name","name":"newValidatorSet"}]},{"id":2693,"kind":"lambda","params":[{"id":2689,"name":"votingPower"}],"qualifier":"def","expr":{"id":2692,"kind":"app","opcode":"igt","args":[{"id":2690,"kind":"name","name":"votingPower"},{"id":2691,"kind":"int","value":0}]}}]}]},{"id":2696,"kind":"int","value":0}]},{"id":2699,"kind":"app","opcode":"Err","args":[{"id":2698,"kind":"str","value":"Voting power change resulted in empty validator set!"}]},{"id":2720,"kind":"let","opdef":{"id":2706,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":2705,"kind":"app","opcode":"with","args":[{"id":2702,"kind":"app","opcode":"field","args":[{"id":2700,"kind":"name","name":"currentState"},{"id":2701,"kind":"str","value":"providerState"}]},{"id":2703,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":2704,"kind":"bool","value":true}]}},"expr":{"id":2719,"kind":"let","opdef":{"id":2711,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":2710,"kind":"app","opcode":"with","args":[{"id":2707,"kind":"name","name":"currentState"},{"id":2708,"kind":"str","value":"providerState"},{"id":2709,"kind":"name","name":"newProviderState"}]}},"expr":{"id":2718,"kind":"let","opdef":{"id":2715,"kind":"def","name":"newState","qualifier":"pureval","expr":{"id":2714,"kind":"app","opcode":"setProviderValidatorSet","args":[{"id":2712,"kind":"name","name":"tmpState"},{"id":2713,"kind":"name","name":"newValidatorSet"}]}},"expr":{"id":2717,"kind":"app","opcode":"Ok","args":[{"id":2716,"kind":"name","name":"newState"}]}}}}]}}}]}]}}}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"278":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]},"depth":1},"279":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"282":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]},"depth":1},"285":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"287":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"288":{"id":161,"kind":"def","name":"emptyAction","qualifier":"puredef","expr":{"id":160,"kind":"app","opcode":"Rec","args":[{"id":143,"kind":"str","value":"kind"},{"id":142,"kind":"str","value":""},{"id":145,"kind":"str","value":"consumerChain"},{"id":144,"kind":"str","value":""},{"id":149,"kind":"str","value":"timeAdvancement"},{"id":148,"kind":"app","opcode":"imul","args":[{"id":146,"kind":"int","value":0},{"id":147,"kind":"name","name":"Second"}]},{"id":151,"kind":"str","value":"consumersToStart"},{"id":150,"kind":"app","opcode":"Set","args":[]},{"id":153,"kind":"str","value":"consumersToStop"},{"id":152,"kind":"app","opcode":"Set","args":[]},{"id":155,"kind":"str","value":"validator"},{"id":154,"kind":"str","value":""},{"id":157,"kind":"str","value":"changeAmount"},{"id":156,"kind":"int","value":0},{"id":159,"kind":"str","value":"consumerAddr"},{"id":158,"kind":"str","value":""}]},"depth":0},"293":{"id":268,"name":"validator","kind":"param"},"296":{"id":270,"name":"changeAmount","kind":"param"},"299":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"301":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"302":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"310":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"312":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"313":{"id":309,"name":"receiver","kind":"param"},"314":{"id":2990,"kind":"def","name":"deliverPacketToConsumer","qualifier":"puredef","expr":{"id":2989,"kind":"lambda","params":[{"id":2860,"name":"currentState"},{"id":2862,"name":"receiver"}],"qualifier":"puredef","expr":{"id":2987,"kind":"app","opcode":"ite","args":[{"id":2872,"kind":"app","opcode":"not","args":[{"id":2871,"kind":"app","opcode":"isRunningConsumer","args":[{"id":2867,"kind":"name","name":"receiver"},{"id":2870,"kind":"app","opcode":"field","args":[{"id":2868,"kind":"name","name":"currentState"},{"id":2869,"kind":"str","value":"providerState"}]}]}]},{"id":2876,"kind":"app","opcode":"Tup","args":[{"id":2874,"kind":"app","opcode":"Err","args":[{"id":2873,"kind":"str","value":"Receiver is not currently a consumer - must have 'running' status!"}]},{"id":2875,"kind":"bool","value":false}]},{"id":2986,"kind":"app","opcode":"ite","args":[{"id":2886,"kind":"app","opcode":"eq","args":[{"id":2884,"kind":"app","opcode":"length","args":[{"id":2883,"kind":"app","opcode":"get","args":[{"id":2881,"kind":"app","opcode":"field","args":[{"id":2879,"kind":"app","opcode":"field","args":[{"id":2877,"kind":"name","name":"currentState"},{"id":2878,"kind":"str","value":"providerState"}]},{"id":2880,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":2882,"kind":"name","name":"receiver"}]}]},{"id":2885,"kind":"int","value":0}]},{"id":2890,"kind":"app","opcode":"Tup","args":[{"id":2888,"kind":"app","opcode":"Err","args":[{"id":2887,"kind":"str","value":"No outstanding packets to deliver"}]},{"id":2889,"kind":"bool","value":false}]},{"id":2985,"kind":"let","opdef":{"id":2899,"kind":"def","name":"packet","qualifier":"val","expr":{"id":2898,"kind":"app","opcode":"head","args":[{"id":2897,"kind":"app","opcode":"get","args":[{"id":2895,"kind":"app","opcode":"field","args":[{"id":2893,"kind":"app","opcode":"field","args":[{"id":2891,"kind":"name","name":"currentState"},{"id":2892,"kind":"str","value":"providerState"}]},{"id":2894,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":2896,"kind":"name","name":"receiver"}]}]}},"expr":{"id":2984,"kind":"app","opcode":"ite","args":[{"id":2912,"kind":"app","opcode":"ilte","args":[{"id":2902,"kind":"app","opcode":"field","args":[{"id":2900,"kind":"name","name":"packet"},{"id":2901,"kind":"str","value":"timeoutTime"}]},{"id":2911,"kind":"app","opcode":"field","args":[{"id":2909,"kind":"app","opcode":"field","args":[{"id":2907,"kind":"app","opcode":"get","args":[{"id":2905,"kind":"app","opcode":"field","args":[{"id":2903,"kind":"name","name":"currentState"},{"id":2904,"kind":"str","value":"consumerStates"}]},{"id":2906,"kind":"name","name":"receiver"}]},{"id":2908,"kind":"str","value":"chainState"}]},{"id":2910,"kind":"str","value":"runningTimestamp"}]}]},{"id":2960,"kind":"let","opdef":{"id":2922,"kind":"def","name":"result","qualifier":"val","expr":{"id":2921,"kind":"app","opcode":"stopConsumers","args":[{"id":2917,"kind":"app","opcode":"field","args":[{"id":2915,"kind":"app","opcode":"field","args":[{"id":2913,"kind":"name","name":"currentState"},{"id":2914,"kind":"str","value":"providerState"}]},{"id":2916,"kind":"str","value":"consumerStatus"}]},{"id":2918,"kind":"app","opcode":"Set","args":[]},{"id":2920,"kind":"app","opcode":"Set","args":[{"id":2919,"kind":"name","name":"receiver"}]}]}},"expr":{"id":2959,"kind":"let","opdef":{"id":2926,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":2925,"kind":"app","opcode":"item","args":[{"id":2923,"kind":"name","name":"result"},{"id":2924,"kind":"int","value":1}]}},"expr":{"id":2958,"kind":"let","opdef":{"id":2930,"kind":"def","name":"err","qualifier":"val","expr":{"id":2929,"kind":"app","opcode":"item","args":[{"id":2927,"kind":"name","name":"result"},{"id":2928,"kind":"int","value":2}]}},"expr":{"id":2957,"kind":"app","opcode":"ite","args":[{"id":2933,"kind":"app","opcode":"neq","args":[{"id":2931,"kind":"name","name":"err"},{"id":2932,"kind":"str","value":""}]},{"id":2937,"kind":"app","opcode":"Tup","args":[{"id":2935,"kind":"app","opcode":"Err","args":[{"id":2934,"kind":"name","name":"err"}]},{"id":2936,"kind":"bool","value":false}]},{"id":2956,"kind":"let","opdef":{"id":2944,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":2943,"kind":"app","opcode":"with","args":[{"id":2940,"kind":"app","opcode":"field","args":[{"id":2938,"kind":"name","name":"currentState"},{"id":2939,"kind":"str","value":"providerState"}]},{"id":2941,"kind":"str","value":"consumerStatus"},{"id":2942,"kind":"name","name":"newConsumerStatus"}]}},"expr":{"id":2955,"kind":"let","opdef":{"id":2950,"kind":"def","name":"newState","qualifier":"val","expr":{"id":2949,"kind":"app","opcode":"with","args":[{"id":2946,"kind":"name","name":"currentState"},{"id":2947,"kind":"str","value":"providerState"},{"id":2948,"kind":"name","name":"newProviderState"}]},"typeAnnotation":{"id":2945,"kind":"const","name":"ProtocolState"}},"expr":{"id":2954,"kind":"app","opcode":"Tup","args":[{"id":2952,"kind":"app","opcode":"Ok","args":[{"id":2951,"kind":"name","name":"newState"}]},{"id":2953,"kind":"bool","value":true}]}}}]}}}},{"id":2983,"kind":"let","opdef":{"id":2965,"kind":"def","name":"result","qualifier":"val","expr":{"id":2964,"kind":"app","opcode":"recvPacketOnConsumer","args":[{"id":2961,"kind":"name","name":"currentState"},{"id":2962,"kind":"name","name":"receiver"},{"id":2963,"kind":"name","name":"packet"}]}},"expr":{"id":2982,"kind":"let","opdef":{"id":2969,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":2968,"kind":"app","opcode":"field","args":[{"id":2966,"kind":"name","name":"result"},{"id":2967,"kind":"str","value":"newState"}]}},"expr":{"id":2981,"kind":"app","opcode":"ite","args":[{"id":2971,"kind":"app","opcode":"hasError","args":[{"id":2970,"kind":"name","name":"result"}]},{"id":2974,"kind":"app","opcode":"Tup","args":[{"id":2972,"kind":"name","name":"result"},{"id":2973,"kind":"bool","value":false}]},{"id":2980,"kind":"app","opcode":"Tup","args":[{"id":2978,"kind":"app","opcode":"Ok","args":[{"id":2977,"kind":"app","opcode":"removeOutstandingPacketFromProvider","args":[{"id":2975,"kind":"name","name":"tmpState"},{"id":2976,"kind":"name","name":"receiver"}]}]},{"id":2979,"kind":"bool","value":false}]}]}}}]}}]}]}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"316":{"id":315,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":314,"kind":"app","opcode":"deliverPacketToConsumer","args":[{"id":312,"kind":"name","name":"currentState"},{"id":313,"kind":"name","name":"receiver"}]},"depth":1},"320":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]},"depth":1},"321":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"324":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]},"depth":1},"327":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"329":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"330":{"id":161,"kind":"def","name":"emptyAction","qualifier":"puredef","expr":{"id":160,"kind":"app","opcode":"Rec","args":[{"id":143,"kind":"str","value":"kind"},{"id":142,"kind":"str","value":""},{"id":145,"kind":"str","value":"consumerChain"},{"id":144,"kind":"str","value":""},{"id":149,"kind":"str","value":"timeAdvancement"},{"id":148,"kind":"app","opcode":"imul","args":[{"id":146,"kind":"int","value":0},{"id":147,"kind":"name","name":"Second"}]},{"id":151,"kind":"str","value":"consumersToStart"},{"id":150,"kind":"app","opcode":"Set","args":[]},{"id":153,"kind":"str","value":"consumersToStop"},{"id":152,"kind":"app","opcode":"Set","args":[]},{"id":155,"kind":"str","value":"validator"},{"id":154,"kind":"str","value":""},{"id":157,"kind":"str","value":"changeAmount"},{"id":156,"kind":"int","value":0},{"id":159,"kind":"str","value":"consumerAddr"},{"id":158,"kind":"str","value":""}]},"depth":0},"335":{"id":309,"name":"receiver","kind":"param"},"338":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"340":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"341":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"350":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"352":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"353":{"id":349,"name":"sender","kind":"param"},"354":{"id":2859,"kind":"def","name":"deliverPacketToProvider","qualifier":"puredef","expr":{"id":2858,"kind":"lambda","params":[{"id":2731,"name":"currentState"},{"id":2733,"name":"sender"}],"qualifier":"puredef","expr":{"id":2856,"kind":"app","opcode":"ite","args":[{"id":2743,"kind":"app","opcode":"not","args":[{"id":2742,"kind":"app","opcode":"isRunningConsumer","args":[{"id":2738,"kind":"name","name":"sender"},{"id":2741,"kind":"app","opcode":"field","args":[{"id":2739,"kind":"name","name":"currentState"},{"id":2740,"kind":"str","value":"providerState"}]}]}]},{"id":2747,"kind":"app","opcode":"Tup","args":[{"id":2745,"kind":"app","opcode":"Err","args":[{"id":2744,"kind":"str","value":"Sender is not currently a consumer - must have 'running' status!"}]},{"id":2746,"kind":"bool","value":false}]},{"id":2855,"kind":"app","opcode":"ite","args":[{"id":2757,"kind":"app","opcode":"eq","args":[{"id":2755,"kind":"app","opcode":"length","args":[{"id":2754,"kind":"app","opcode":"field","args":[{"id":2752,"kind":"app","opcode":"get","args":[{"id":2750,"kind":"app","opcode":"field","args":[{"id":2748,"kind":"name","name":"currentState"},{"id":2749,"kind":"str","value":"consumerStates"}]},{"id":2751,"kind":"name","name":"sender"}]},{"id":2753,"kind":"str","value":"outstandingPacketsToProvider"}]}]},{"id":2756,"kind":"int","value":0}]},{"id":2761,"kind":"app","opcode":"Tup","args":[{"id":2759,"kind":"app","opcode":"Err","args":[{"id":2758,"kind":"str","value":"No outstanding packets to deliver"}]},{"id":2760,"kind":"bool","value":false}]},{"id":2854,"kind":"let","opdef":{"id":2770,"kind":"def","name":"packet","qualifier":"val","expr":{"id":2769,"kind":"app","opcode":"head","args":[{"id":2768,"kind":"app","opcode":"field","args":[{"id":2766,"kind":"app","opcode":"get","args":[{"id":2764,"kind":"app","opcode":"field","args":[{"id":2762,"kind":"name","name":"currentState"},{"id":2763,"kind":"str","value":"consumerStates"}]},{"id":2765,"kind":"name","name":"sender"}]},{"id":2767,"kind":"str","value":"outstandingPacketsToProvider"}]}]}},"expr":{"id":2853,"kind":"app","opcode":"ite","args":[{"id":2781,"kind":"app","opcode":"ilte","args":[{"id":2773,"kind":"app","opcode":"field","args":[{"id":2771,"kind":"name","name":"packet"},{"id":2772,"kind":"str","value":"timeoutTime"}]},{"id":2780,"kind":"app","opcode":"field","args":[{"id":2778,"kind":"app","opcode":"field","args":[{"id":2776,"kind":"app","opcode":"field","args":[{"id":2774,"kind":"name","name":"currentState"},{"id":2775,"kind":"str","value":"providerState"}]},{"id":2777,"kind":"str","value":"chainState"}]},{"id":2779,"kind":"str","value":"runningTimestamp"}]}]},{"id":2829,"kind":"let","opdef":{"id":2791,"kind":"def","name":"result","qualifier":"val","expr":{"id":2790,"kind":"app","opcode":"stopConsumers","args":[{"id":2786,"kind":"app","opcode":"field","args":[{"id":2784,"kind":"app","opcode":"field","args":[{"id":2782,"kind":"name","name":"currentState"},{"id":2783,"kind":"str","value":"providerState"}]},{"id":2785,"kind":"str","value":"consumerStatus"}]},{"id":2787,"kind":"app","opcode":"Set","args":[]},{"id":2789,"kind":"app","opcode":"Set","args":[{"id":2788,"kind":"name","name":"sender"}]}]}},"expr":{"id":2828,"kind":"let","opdef":{"id":2795,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":2794,"kind":"app","opcode":"item","args":[{"id":2792,"kind":"name","name":"result"},{"id":2793,"kind":"int","value":1}]}},"expr":{"id":2827,"kind":"let","opdef":{"id":2799,"kind":"def","name":"err","qualifier":"val","expr":{"id":2798,"kind":"app","opcode":"item","args":[{"id":2796,"kind":"name","name":"result"},{"id":2797,"kind":"int","value":2}]}},"expr":{"id":2826,"kind":"app","opcode":"ite","args":[{"id":2802,"kind":"app","opcode":"neq","args":[{"id":2800,"kind":"name","name":"err"},{"id":2801,"kind":"str","value":""}]},{"id":2806,"kind":"app","opcode":"Tup","args":[{"id":2804,"kind":"app","opcode":"Err","args":[{"id":2803,"kind":"name","name":"err"}]},{"id":2805,"kind":"bool","value":false}]},{"id":2825,"kind":"let","opdef":{"id":2813,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":2812,"kind":"app","opcode":"with","args":[{"id":2809,"kind":"app","opcode":"field","args":[{"id":2807,"kind":"name","name":"currentState"},{"id":2808,"kind":"str","value":"providerState"}]},{"id":2810,"kind":"str","value":"consumerStatus"},{"id":2811,"kind":"name","name":"newConsumerStatus"}]}},"expr":{"id":2824,"kind":"let","opdef":{"id":2819,"kind":"def","name":"newState","qualifier":"val","expr":{"id":2818,"kind":"app","opcode":"with","args":[{"id":2815,"kind":"name","name":"currentState"},{"id":2816,"kind":"str","value":"providerState"},{"id":2817,"kind":"name","name":"newProviderState"}]},"typeAnnotation":{"id":2814,"kind":"const","name":"ProtocolState"}},"expr":{"id":2823,"kind":"app","opcode":"Tup","args":[{"id":2821,"kind":"app","opcode":"Ok","args":[{"id":2820,"kind":"name","name":"newState"}]},{"id":2822,"kind":"bool","value":true}]}}}]}}}},{"id":2852,"kind":"let","opdef":{"id":2834,"kind":"def","name":"result","qualifier":"val","expr":{"id":2833,"kind":"app","opcode":"recvPacketOnProvider","args":[{"id":2830,"kind":"name","name":"currentState"},{"id":2831,"kind":"name","name":"sender"},{"id":2832,"kind":"name","name":"packet"}]}},"expr":{"id":2851,"kind":"let","opdef":{"id":2838,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":2837,"kind":"app","opcode":"field","args":[{"id":2835,"kind":"name","name":"result"},{"id":2836,"kind":"str","value":"newState"}]}},"expr":{"id":2850,"kind":"app","opcode":"ite","args":[{"id":2840,"kind":"app","opcode":"hasError","args":[{"id":2839,"kind":"name","name":"result"}]},{"id":2843,"kind":"app","opcode":"Tup","args":[{"id":2841,"kind":"name","name":"result"},{"id":2842,"kind":"bool","value":false}]},{"id":2849,"kind":"app","opcode":"Tup","args":[{"id":2847,"kind":"app","opcode":"Ok","args":[{"id":2846,"kind":"app","opcode":"removeOutstandingPacketFromConsumer","args":[{"id":2844,"kind":"name","name":"tmpState"},{"id":2845,"kind":"name","name":"sender"}]}]},{"id":2848,"kind":"bool","value":false}]}]}}}]}}]}]}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"356":{"id":355,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":354,"kind":"app","opcode":"deliverPacketToProvider","args":[{"id":352,"kind":"name","name":"currentState"},{"id":353,"kind":"name","name":"sender"}]},"depth":1},"360":{"id":359,"kind":"def","name":"result","qualifier":"val","expr":{"id":358,"kind":"app","opcode":"item","args":[{"id":356,"kind":"name","name":"resultAndTimeout"},{"id":357,"kind":"int","value":1}]},"depth":1},"361":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"364":{"id":359,"kind":"def","name":"result","qualifier":"val","expr":{"id":358,"kind":"app","opcode":"item","args":[{"id":356,"kind":"name","name":"resultAndTimeout"},{"id":357,"kind":"int","value":1}]},"depth":1},"367":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"369":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"370":{"id":161,"kind":"def","name":"emptyAction","qualifier":"puredef","expr":{"id":160,"kind":"app","opcode":"Rec","args":[{"id":143,"kind":"str","value":"kind"},{"id":142,"kind":"str","value":""},{"id":145,"kind":"str","value":"consumerChain"},{"id":144,"kind":"str","value":""},{"id":149,"kind":"str","value":"timeAdvancement"},{"id":148,"kind":"app","opcode":"imul","args":[{"id":146,"kind":"int","value":0},{"id":147,"kind":"name","name":"Second"}]},{"id":151,"kind":"str","value":"consumersToStart"},{"id":150,"kind":"app","opcode":"Set","args":[]},{"id":153,"kind":"str","value":"consumersToStop"},{"id":152,"kind":"app","opcode":"Set","args":[]},{"id":155,"kind":"str","value":"validator"},{"id":154,"kind":"str","value":""},{"id":157,"kind":"str","value":"changeAmount"},{"id":156,"kind":"int","value":0},{"id":159,"kind":"str","value":"consumerAddr"},{"id":158,"kind":"str","value":""}]},"depth":0},"375":{"id":349,"name":"sender","kind":"param"},"378":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"380":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"381":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"390":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"392":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"395":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"398":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"399":{"id":389,"name":"timeAdvancement","kind":"param"},"400":{"id":391,"name":"consumersToStart","kind":"param"},"401":{"id":394,"name":"consumersToStop","kind":"param"},"402":{"doc":"Ends a block on the provider. This means that the current validator set is committed on chain,\npackets are queued, and the next block is started. Also, consumers that have passed\nthe VscTimeout without responding to a pending vscpacket are dropped.","id":3223,"kind":"def","name":"endAndBeginBlockForProvider","qualifier":"puredef","expr":{"id":3222,"kind":"lambda","params":[{"id":2991,"name":"currentState"},{"id":2993,"name":"timeAdvancement"},{"id":2995,"name":"consumersToStart"},{"id":2998,"name":"consumersToStop"}],"qualifier":"puredef","expr":{"id":3220,"kind":"let","opdef":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]}},"expr":{"id":3219,"kind":"let","opdef":{"id":3019,"kind":"def","name":"timedOutConsumers","qualifier":"val","expr":{"id":3018,"kind":"app","opcode":"filter","args":[{"id":3007,"kind":"app","opcode":"getRunningConsumers","args":[{"id":3006,"kind":"name","name":"currentProviderState"}]},{"id":3017,"kind":"lambda","params":[{"id":3008,"name":"consumer"}],"qualifier":"def","expr":{"id":3016,"kind":"let","opdef":{"id":3012,"kind":"def","name":"res","qualifier":"val","expr":{"id":3011,"kind":"app","opcode":"TimeoutDueToVscTimeout","args":[{"id":3009,"kind":"name","name":"currentState"},{"id":3010,"kind":"name","name":"consumer"}]}},"expr":{"id":3015,"kind":"app","opcode":"item","args":[{"id":3013,"kind":"name","name":"res"},{"id":3014,"kind":"int","value":1}]}}}]}},"expr":{"id":3218,"kind":"let","opdef":{"id":3032,"kind":"def","name":"currentValSets","qualifier":"val","expr":{"id":3031,"kind":"app","opcode":"mapBy","args":[{"id":3020,"kind":"name","name":"ConsumerChains"},{"id":3030,"kind":"lambda","params":[{"id":3021,"name":"consumer"}],"qualifier":"def","expr":{"id":3029,"kind":"app","opcode":"applyKeyAssignmentToValSet","args":[{"id":3022,"kind":"name","name":"currentProviderState"},{"id":3023,"kind":"name","name":"consumer"},{"id":3028,"kind":"app","opcode":"field","args":[{"id":3026,"kind":"app","opcode":"field","args":[{"id":3024,"kind":"name","name":"currentProviderState"},{"id":3025,"kind":"str","value":"chainState"}]},{"id":3027,"kind":"str","value":"currentValidatorSet"}]}]}}]}},"expr":{"id":3217,"kind":"let","opdef":{"id":3048,"kind":"def","name":"newKeyAssignedValSetHistory","qualifier":"val","expr":{"id":3047,"kind":"app","opcode":"mapBy","args":[{"id":3034,"kind":"app","opcode":"keys","args":[{"id":3033,"kind":"name","name":"currentValSets"}]},{"id":3046,"kind":"lambda","params":[{"id":3035,"name":"consumer"}],"qualifier":"def","expr":{"id":3045,"kind":"app","opcode":"prepend","args":[{"id":3041,"kind":"app","opcode":"getOrElse","args":[{"id":3038,"kind":"app","opcode":"field","args":[{"id":3036,"kind":"name","name":"currentProviderState"},{"id":3037,"kind":"str","value":"keyAssignedValSetHistory"}]},{"id":3039,"kind":"name","name":"consumer"},{"id":3040,"kind":"app","opcode":"List","args":[]}]},{"id":3044,"kind":"app","opcode":"get","args":[{"id":3042,"kind":"name","name":"currentValSets"},{"id":3043,"kind":"name","name":"consumer"}]}]}}]}},"expr":{"id":3216,"kind":"let","opdef":{"id":3054,"kind":"def","name":"newChainState","qualifier":"val","expr":{"id":3053,"kind":"app","opcode":"endAndBeginBlockShared","args":[{"id":3051,"kind":"app","opcode":"field","args":[{"id":3049,"kind":"name","name":"currentProviderState"},{"id":3050,"kind":"str","value":"chainState"}]},{"id":3052,"kind":"name","name":"timeAdvancement"}]}},"expr":{"id":3215,"kind":"let","opdef":{"id":3062,"kind":"def","name":"providerStateAfterTimeAdvancement","qualifier":"val","expr":{"id":3061,"kind":"app","opcode":"with","args":[{"id":3058,"kind":"app","opcode":"with","args":[{"id":3055,"kind":"name","name":"currentProviderState"},{"id":3056,"kind":"str","value":"chainState"},{"id":3057,"kind":"name","name":"newChainState"}]},{"id":3059,"kind":"str","value":"keyAssignedValSetHistory"},{"id":3060,"kind":"name","name":"newKeyAssignedValSetHistory"}]}},"expr":{"id":3214,"kind":"let","opdef":{"id":3067,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":3066,"kind":"app","opcode":"with","args":[{"id":3063,"kind":"name","name":"currentState"},{"id":3064,"kind":"str","value":"providerState"},{"id":3065,"kind":"name","name":"providerStateAfterTimeAdvancement"}]}},"expr":{"id":3213,"kind":"let","opdef":{"id":3103,"kind":"def","name":"providerStateAfterSending","qualifier":"val","expr":{"id":3102,"kind":"app","opcode":"ite","args":[{"id":3093,"kind":"app","opcode":"and","args":[{"id":3087,"kind":"app","opcode":"or","args":[{"id":3070,"kind":"app","opcode":"field","args":[{"id":3068,"kind":"name","name":"currentProviderState"},{"id":3069,"kind":"str","value":"providerValidatorSetChangedInThisBlock"}]},{"id":3086,"kind":"app","opcode":"exists","args":[{"id":3074,"kind":"app","opcode":"keys","args":[{"id":3073,"kind":"app","opcode":"field","args":[{"id":3071,"kind":"name","name":"currentProviderState"},{"id":3072,"kind":"str","value":"keyAssignmentReplacements"}]}]},{"id":3085,"kind":"lambda","params":[{"id":3075,"name":"consumer"}],"qualifier":"def","expr":{"id":3084,"kind":"app","opcode":"igt","args":[{"id":3082,"kind":"app","opcode":"size","args":[{"id":3081,"kind":"app","opcode":"keys","args":[{"id":3080,"kind":"app","opcode":"get","args":[{"id":3078,"kind":"app","opcode":"field","args":[{"id":3076,"kind":"name","name":"currentProviderState"},{"id":3077,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3079,"kind":"name","name":"consumer"}]}]}]},{"id":3083,"kind":"int","value":0}]}}]}]},{"id":3092,"kind":"app","opcode":"igt","args":[{"id":3090,"kind":"app","opcode":"size","args":[{"id":3089,"kind":"app","opcode":"getRunningConsumers","args":[{"id":3088,"kind":"name","name":"providerStateAfterTimeAdvancement"}]}]},{"id":3091,"kind":"int","value":0}]}]},{"id":3100,"kind":"app","opcode":"sendVscPackets","args":[{"id":3094,"kind":"name","name":"providerStateAfterTimeAdvancement"},{"id":3099,"kind":"app","opcode":"field","args":[{"id":3097,"kind":"app","opcode":"field","args":[{"id":3095,"kind":"name","name":"currentProviderState"},{"id":3096,"kind":"str","value":"chainState"}]},{"id":3098,"kind":"str","value":"runningTimestamp"}]}]},{"id":3101,"kind":"name","name":"providerStateAfterTimeAdvancement"}]}},"expr":{"id":3212,"kind":"let","opdef":{"id":3111,"kind":"def","name":"res","qualifier":"val","expr":{"id":3110,"kind":"app","opcode":"StartStopConsumers","args":[{"id":3106,"kind":"app","opcode":"field","args":[{"id":3104,"kind":"name","name":"providerStateAfterSending"},{"id":3105,"kind":"str","value":"consumerStatus"}]},{"id":3107,"kind":"name","name":"consumersToStart"},{"id":3108,"kind":"name","name":"consumersToStop"},{"id":3109,"kind":"name","name":"timedOutConsumers"}]}},"expr":{"id":3211,"kind":"let","opdef":{"id":3115,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":3114,"kind":"app","opcode":"item","args":[{"id":3112,"kind":"name","name":"res"},{"id":3113,"kind":"int","value":1}]}},"expr":{"id":3210,"kind":"let","opdef":{"id":3119,"kind":"def","name":"err","qualifier":"val","expr":{"id":3118,"kind":"app","opcode":"item","args":[{"id":3116,"kind":"name","name":"res"},{"id":3117,"kind":"int","value":2}]}},"expr":{"id":3209,"kind":"let","opdef":{"id":3127,"kind":"def","name":"providerStateAfterConsumerAdvancement","qualifier":"val","expr":{"id":3126,"kind":"app","opcode":"with","args":[{"id":3123,"kind":"app","opcode":"with","args":[{"id":3120,"kind":"name","name":"providerStateAfterSending"},{"id":3121,"kind":"str","value":"consumerStatus"},{"id":3122,"kind":"name","name":"newConsumerStatus"}]},{"id":3124,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":3125,"kind":"bool","value":false}]}},"expr":{"id":3208,"kind":"app","opcode":"ite","args":[{"id":3130,"kind":"app","opcode":"neq","args":[{"id":3128,"kind":"name","name":"err"},{"id":3129,"kind":"str","value":""}]},{"id":3132,"kind":"app","opcode":"Err","args":[{"id":3131,"kind":"name","name":"err"}]},{"id":3207,"kind":"let","opdef":{"id":3138,"kind":"def","name":"valSet","qualifier":"val","expr":{"id":3137,"kind":"app","opcode":"field","args":[{"id":3135,"kind":"app","opcode":"field","args":[{"id":3133,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3134,"kind":"str","value":"chainState"}]},{"id":3136,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3206,"kind":"let","opdef":{"id":3194,"kind":"def","name":"newConsumerStateMap","qualifier":"val","expr":{"id":3193,"kind":"app","opcode":"mapBy","args":[{"id":3142,"kind":"app","opcode":"keys","args":[{"id":3141,"kind":"app","opcode":"field","args":[{"id":3139,"kind":"name","name":"tmpState"},{"id":3140,"kind":"str","value":"consumerStates"}]}]},{"id":3192,"kind":"lambda","params":[{"id":3143,"name":"consumer"}],"qualifier":"def","expr":{"id":3191,"kind":"app","opcode":"ite","args":[{"id":3146,"kind":"app","opcode":"contains","args":[{"id":3144,"kind":"name","name":"consumersToStart"},{"id":3145,"kind":"name","name":"consumer"}]},{"id":3185,"kind":"let","opdef":{"id":3153,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":3152,"kind":"app","opcode":"get","args":[{"id":3150,"kind":"app","opcode":"field","args":[{"id":3148,"kind":"name","name":"tmpState"},{"id":3149,"kind":"str","value":"consumerStates"}]},{"id":3151,"kind":"name","name":"consumer"}]},"typeAnnotation":{"id":3147,"kind":"const","name":"ConsumerState"}},"expr":{"id":3184,"kind":"let","opdef":{"id":3182,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":3181,"kind":"app","opcode":"with","args":[{"id":3155,"kind":"name","name":"currentConsumerState"},{"id":3156,"kind":"str","value":"chainState"},{"id":3180,"kind":"app","opcode":"with","args":[{"id":3173,"kind":"app","opcode":"with","args":[{"id":3166,"kind":"app","opcode":"with","args":[{"id":3162,"kind":"app","opcode":"with","args":[{"id":3159,"kind":"app","opcode":"field","args":[{"id":3157,"kind":"name","name":"currentConsumerState"},{"id":3158,"kind":"str","value":"chainState"}]},{"id":3160,"kind":"str","value":"currentValidatorSet"},{"id":3161,"kind":"name","name":"valSet"}]},{"id":3163,"kind":"str","value":"votingPowerHistory"},{"id":3165,"kind":"app","opcode":"List","args":[{"id":3164,"kind":"name","name":"valSet"}]}]},{"id":3167,"kind":"str","value":"lastTimestamp"},{"id":3172,"kind":"app","opcode":"field","args":[{"id":3170,"kind":"app","opcode":"field","args":[{"id":3168,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3169,"kind":"str","value":"chainState"}]},{"id":3171,"kind":"str","value":"lastTimestamp"}]}]},{"id":3174,"kind":"str","value":"runningTimestamp"},{"id":3179,"kind":"app","opcode":"field","args":[{"id":3177,"kind":"app","opcode":"field","args":[{"id":3175,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3176,"kind":"str","value":"chainState"}]},{"id":3178,"kind":"str","value":"runningTimestamp"}]}]}]},"typeAnnotation":{"id":3154,"kind":"const","name":"ConsumerState"}},"expr":{"id":3183,"kind":"name","name":"newConsumerState"}}},{"id":3190,"kind":"app","opcode":"get","args":[{"id":3188,"kind":"app","opcode":"field","args":[{"id":3186,"kind":"name","name":"currentState"},{"id":3187,"kind":"str","value":"consumerStates"}]},{"id":3189,"kind":"name","name":"consumer"}]}]}}]}},"expr":{"id":3205,"kind":"let","opdef":{"id":3202,"kind":"def","name":"newState","qualifier":"val","expr":{"id":3201,"kind":"app","opcode":"with","args":[{"id":3198,"kind":"app","opcode":"with","args":[{"id":3195,"kind":"name","name":"tmpState"},{"id":3196,"kind":"str","value":"providerState"},{"id":3197,"kind":"name","name":"providerStateAfterConsumerAdvancement"}]},{"id":3199,"kind":"str","value":"consumerStates"},{"id":3200,"kind":"name","name":"newConsumerStateMap"}]}},"expr":{"id":3204,"kind":"app","opcode":"Ok","args":[{"id":3203,"kind":"name","name":"newState"}]}}}}]}}}}}}}}}}}}}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"404":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]},"depth":1},"405":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"408":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]},"depth":1},"411":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"413":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"414":{"id":161,"kind":"def","name":"emptyAction","qualifier":"puredef","expr":{"id":160,"kind":"app","opcode":"Rec","args":[{"id":143,"kind":"str","value":"kind"},{"id":142,"kind":"str","value":""},{"id":145,"kind":"str","value":"consumerChain"},{"id":144,"kind":"str","value":""},{"id":149,"kind":"str","value":"timeAdvancement"},{"id":148,"kind":"app","opcode":"imul","args":[{"id":146,"kind":"int","value":0},{"id":147,"kind":"name","name":"Second"}]},{"id":151,"kind":"str","value":"consumersToStart"},{"id":150,"kind":"app","opcode":"Set","args":[]},{"id":153,"kind":"str","value":"consumersToStop"},{"id":152,"kind":"app","opcode":"Set","args":[]},{"id":155,"kind":"str","value":"validator"},{"id":154,"kind":"str","value":""},{"id":157,"kind":"str","value":"changeAmount"},{"id":156,"kind":"int","value":0},{"id":159,"kind":"str","value":"consumerAddr"},{"id":158,"kind":"str","value":""}]},"depth":0},"419":{"id":389,"name":"timeAdvancement","kind":"param"},"422":{"id":391,"name":"consumersToStart","kind":"param"},"425":{"id":394,"name":"consumersToStop","kind":"param"},"428":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"430":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"431":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"439":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"441":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"443":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"444":{"id":438,"name":"chain","kind":"param"},"445":{"id":440,"name":"timeAdvancement","kind":"param"},"446":{"id":3380,"kind":"def","name":"endAndBeginBlockForConsumer","qualifier":"puredef","expr":{"id":3379,"kind":"lambda","params":[{"id":3224,"name":"currentState"},{"id":3226,"name":"chain"},{"id":3228,"name":"timeAdvancement"}],"qualifier":"puredef","expr":{"id":3377,"kind":"app","opcode":"ite","args":[{"id":3237,"kind":"app","opcode":"not","args":[{"id":3236,"kind":"app","opcode":"contains","args":[{"id":3234,"kind":"app","opcode":"keys","args":[{"id":3233,"kind":"app","opcode":"field","args":[{"id":3231,"kind":"name","name":"currentState"},{"id":3232,"kind":"str","value":"consumerStates"}]}]},{"id":3235,"kind":"name","name":"chain"}]}]},{"id":3239,"kind":"app","opcode":"Err","args":[{"id":3238,"kind":"str","value":"chain is not a consumer"}]},{"id":3376,"kind":"let","opdef":{"id":3246,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":3245,"kind":"app","opcode":"get","args":[{"id":3243,"kind":"app","opcode":"field","args":[{"id":3241,"kind":"name","name":"currentState"},{"id":3242,"kind":"str","value":"consumerStates"}]},{"id":3244,"kind":"name","name":"chain"}]},"typeAnnotation":{"id":3240,"kind":"const","name":"ConsumerState"}},"expr":{"id":3375,"kind":"let","opdef":{"id":3251,"kind":"def","name":"oldChainState","qualifier":"val","expr":{"id":3250,"kind":"app","opcode":"field","args":[{"id":3248,"kind":"name","name":"currentConsumerState"},{"id":3249,"kind":"str","value":"chainState"}]},"typeAnnotation":{"id":3247,"kind":"const","name":"ChainState"}},"expr":{"id":3374,"kind":"let","opdef":{"id":3258,"kind":"def","name":"newChainState","qualifier":"val","expr":{"id":3257,"kind":"app","opcode":"endAndBeginBlockShared","args":[{"id":3255,"kind":"app","opcode":"field","args":[{"id":3253,"kind":"name","name":"currentConsumerState"},{"id":3254,"kind":"str","value":"chainState"}]},{"id":3256,"kind":"name","name":"timeAdvancement"}]},"typeAnnotation":{"id":3252,"kind":"const","name":"ChainState"}},"expr":{"id":3373,"kind":"let","opdef":{"id":3264,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":3263,"kind":"app","opcode":"with","args":[{"id":3260,"kind":"name","name":"currentConsumerState"},{"id":3261,"kind":"str","value":"chainState"},{"id":3262,"kind":"name","name":"newChainState"}]},"typeAnnotation":{"id":3259,"kind":"const","name":"ConsumerState"}},"expr":{"id":3372,"kind":"let","opdef":{"id":3293,"kind":"def","name":"maturedPackets","qualifier":"val","expr":{"id":3292,"kind":"app","opcode":"transform","args":[{"id":3286,"kind":"app","opcode":"select","args":[{"id":3267,"kind":"app","opcode":"field","args":[{"id":3265,"kind":"name","name":"newConsumerState"},{"id":3266,"kind":"str","value":"maturationTimes"}]},{"id":3285,"kind":"lambda","params":[{"id":3268,"name":"pair"}],"qualifier":"def","expr":{"id":3284,"kind":"let","opdef":{"id":3272,"kind":"def","name":"packet","qualifier":"val","expr":{"id":3271,"kind":"app","opcode":"item","args":[{"id":3269,"kind":"name","name":"pair"},{"id":3270,"kind":"int","value":1}]}},"expr":{"id":3283,"kind":"let","opdef":{"id":3277,"kind":"def","name":"maturationTime","qualifier":"val","expr":{"id":3276,"kind":"app","opcode":"item","args":[{"id":3274,"kind":"name","name":"pair"},{"id":3275,"kind":"int","value":2}]},"typeAnnotation":{"id":3273,"kind":"const","name":"Time"}},"expr":{"id":3282,"kind":"app","opcode":"ilte","args":[{"id":3278,"kind":"name","name":"maturationTime"},{"id":3281,"kind":"app","opcode":"field","args":[{"id":3279,"kind":"name","name":"newChainState"},{"id":3280,"kind":"str","value":"lastTimestamp"}]}]}}}}]},{"id":3291,"kind":"lambda","params":[{"id":3287,"name":"pair"}],"qualifier":"def","expr":{"id":3290,"kind":"app","opcode":"item","args":[{"id":3288,"kind":"name","name":"pair"},{"id":3289,"kind":"int","value":1}]}}]}},"expr":{"id":3371,"kind":"let","opdef":{"id":3316,"kind":"def","name":"newMaturationTimes","qualifier":"val","expr":{"id":3315,"kind":"app","opcode":"select","args":[{"id":3296,"kind":"app","opcode":"field","args":[{"id":3294,"kind":"name","name":"newConsumerState"},{"id":3295,"kind":"str","value":"maturationTimes"}]},{"id":3314,"kind":"lambda","params":[{"id":3297,"name":"pair"}],"qualifier":"def","expr":{"id":3313,"kind":"let","opdef":{"id":3301,"kind":"def","name":"packet","qualifier":"val","expr":{"id":3300,"kind":"app","opcode":"item","args":[{"id":3298,"kind":"name","name":"pair"},{"id":3299,"kind":"int","value":1}]}},"expr":{"id":3312,"kind":"let","opdef":{"id":3306,"kind":"def","name":"maturationTime","qualifier":"val","expr":{"id":3305,"kind":"app","opcode":"item","args":[{"id":3303,"kind":"name","name":"pair"},{"id":3304,"kind":"int","value":2}]},"typeAnnotation":{"id":3302,"kind":"const","name":"Time"}},"expr":{"id":3311,"kind":"app","opcode":"igt","args":[{"id":3307,"kind":"name","name":"maturationTime"},{"id":3310,"kind":"app","opcode":"field","args":[{"id":3308,"kind":"name","name":"newChainState"},{"id":3309,"kind":"str","value":"lastTimestamp"}]}]}}}}]}},"expr":{"id":3370,"kind":"let","opdef":{"id":3342,"kind":"def","name":"newOutstandingPackets","qualifier":"val","expr":{"id":3341,"kind":"app","opcode":"concat","args":[{"id":3319,"kind":"app","opcode":"field","args":[{"id":3317,"kind":"name","name":"newConsumerState"},{"id":3318,"kind":"str","value":"outstandingPacketsToProvider"}]},{"id":3340,"kind":"app","opcode":"transform","args":[{"id":3320,"kind":"name","name":"maturedPackets"},{"id":3339,"kind":"lambda","params":[{"id":3321,"name":"packet"}],"qualifier":"def","expr":{"id":3338,"kind":"app","opcode":"Rec","args":[{"id":3325,"kind":"str","value":"id"},{"id":3324,"kind":"app","opcode":"field","args":[{"id":3322,"kind":"name","name":"packet"},{"id":3323,"kind":"str","value":"id"}]},{"id":3329,"kind":"str","value":"sendingTime"},{"id":3328,"kind":"app","opcode":"field","args":[{"id":3326,"kind":"name","name":"oldChainState"},{"id":3327,"kind":"str","value":"runningTimestamp"}]},{"id":3337,"kind":"str","value":"timeoutTime"},{"id":3336,"kind":"app","opcode":"iadd","args":[{"id":3332,"kind":"app","opcode":"field","args":[{"id":3330,"kind":"name","name":"oldChainState"},{"id":3331,"kind":"str","value":"runningTimestamp"}]},{"id":3335,"kind":"app","opcode":"get","args":[{"id":3333,"kind":"name","name":"CcvTimeout"},{"id":3334,"kind":"name","name":"chain"}]}]}]}}]}]}},"expr":{"id":3369,"kind":"let","opdef":{"id":3351,"kind":"def","name":"newConsumerState2","qualifier":"val","expr":{"id":3350,"kind":"app","opcode":"with","args":[{"id":3347,"kind":"app","opcode":"with","args":[{"id":3344,"kind":"name","name":"newConsumerState"},{"id":3345,"kind":"str","value":"maturationTimes"},{"id":3346,"kind":"name","name":"newMaturationTimes"}]},{"id":3348,"kind":"str","value":"outstandingPacketsToProvider"},{"id":3349,"kind":"name","name":"newOutstandingPackets"}]},"typeAnnotation":{"id":3343,"kind":"const","name":"ConsumerState"}},"expr":{"id":3368,"kind":"let","opdef":{"id":3358,"kind":"def","name":"newConsumerStates","qualifier":"val","expr":{"id":3357,"kind":"app","opcode":"set","args":[{"id":3354,"kind":"app","opcode":"field","args":[{"id":3352,"kind":"name","name":"currentState"},{"id":3353,"kind":"str","value":"consumerStates"}]},{"id":3355,"kind":"name","name":"chain"},{"id":3356,"kind":"name","name":"newConsumerState2"}]}},"expr":{"id":3367,"kind":"let","opdef":{"id":3364,"kind":"def","name":"newState","qualifier":"val","expr":{"id":3363,"kind":"app","opcode":"with","args":[{"id":3360,"kind":"name","name":"currentState"},{"id":3361,"kind":"str","value":"consumerStates"},{"id":3362,"kind":"name","name":"newConsumerStates"}]},"typeAnnotation":{"id":3359,"kind":"const","name":"ProtocolState"}},"expr":{"id":3366,"kind":"app","opcode":"Ok","args":[{"id":3365,"kind":"name","name":"newState"}]}}}}}}}}}}}]}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"448":{"id":447,"kind":"def","name":"result","qualifier":"val","expr":{"id":446,"kind":"app","opcode":"endAndBeginBlockForConsumer","args":[{"id":443,"kind":"name","name":"currentState"},{"id":444,"kind":"name","name":"chain"},{"id":445,"kind":"name","name":"timeAdvancement"}]},"depth":1},"449":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"452":{"id":447,"kind":"def","name":"result","qualifier":"val","expr":{"id":446,"kind":"app","opcode":"endAndBeginBlockForConsumer","args":[{"id":443,"kind":"name","name":"currentState"},{"id":444,"kind":"name","name":"chain"},{"id":445,"kind":"name","name":"timeAdvancement"}]},"depth":1},"455":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"457":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"458":{"id":161,"kind":"def","name":"emptyAction","qualifier":"puredef","expr":{"id":160,"kind":"app","opcode":"Rec","args":[{"id":143,"kind":"str","value":"kind"},{"id":142,"kind":"str","value":""},{"id":145,"kind":"str","value":"consumerChain"},{"id":144,"kind":"str","value":""},{"id":149,"kind":"str","value":"timeAdvancement"},{"id":148,"kind":"app","opcode":"imul","args":[{"id":146,"kind":"int","value":0},{"id":147,"kind":"name","name":"Second"}]},{"id":151,"kind":"str","value":"consumersToStart"},{"id":150,"kind":"app","opcode":"Set","args":[]},{"id":153,"kind":"str","value":"consumersToStop"},{"id":152,"kind":"app","opcode":"Set","args":[]},{"id":155,"kind":"str","value":"validator"},{"id":154,"kind":"str","value":""},{"id":157,"kind":"str","value":"changeAmount"},{"id":156,"kind":"int","value":0},{"id":159,"kind":"str","value":"consumerAddr"},{"id":158,"kind":"str","value":""}]},"depth":0},"463":{"id":438,"name":"chain","kind":"param"},"466":{"id":440,"name":"timeAdvancement","kind":"param"},"469":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"471":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"472":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"479":{"id":56,"kind":"def","name":"nodes","qualifier":"pureval","expr":{"id":55,"kind":"app","opcode":"Set","args":[{"id":45,"kind":"str","value":"node1"},{"id":46,"kind":"str","value":"node2"},{"id":47,"kind":"str","value":"node3"},{"id":48,"kind":"str","value":"node4"},{"id":49,"kind":"str","value":"node5"},{"id":50,"kind":"str","value":"node6"},{"id":51,"kind":"str","value":"node7"},{"id":52,"kind":"str","value":"node8"},{"id":53,"kind":"str","value":"node9"},{"id":54,"kind":"str","value":"node10"}]},"depth":0},"488":{"id":481,"kind":"def","name":"node","qualifier":"nondet","expr":{"id":480,"kind":"app","opcode":"oneOf","args":[{"id":479,"kind":"name","name":"nodes"}]},"depth":1},"489":{"id":487,"kind":"def","name":"newVotingPower","qualifier":"nondet","expr":{"id":486,"kind":"app","opcode":"oneOf","args":[{"id":485,"kind":"app","opcode":"Set","args":[{"id":483,"kind":"app","opcode":"iuminus","args":[{"id":482,"kind":"int","value":50}]},{"id":484,"kind":"int","value":50}]}]},"depth":1},"490":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"493":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"497":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"500":{"id":499,"kind":"def","name":"sender","qualifier":"nondet","expr":{"id":498,"kind":"app","opcode":"oneOf","args":[{"id":497,"kind":"name","name":"runningConsumers"}]},"depth":1},"501":{"id":388,"kind":"def","name":"DeliverVscMaturedPacket","qualifier":"action","expr":{"id":387,"kind":"lambda","params":[{"id":349,"name":"sender"}],"qualifier":"action","expr":{"id":385,"kind":"let","opdef":{"id":355,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":354,"kind":"app","opcode":"deliverPacketToProvider","args":[{"id":352,"kind":"name","name":"currentState"},{"id":353,"kind":"name","name":"sender"}]}},"expr":{"id":384,"kind":"let","opdef":{"id":359,"kind":"def","name":"result","qualifier":"val","expr":{"id":358,"kind":"app","opcode":"item","args":[{"id":356,"kind":"name","name":"resultAndTimeout"},{"id":357,"kind":"int","value":1}]}},"expr":{"id":383,"kind":"app","opcode":"actionAll","args":[{"id":363,"kind":"app","opcode":"eq","args":[{"id":361,"kind":"app","opcode":"hasError","args":[{"id":360,"kind":"name","name":"result"}]},{"id":362,"kind":"bool","value":false}]},{"id":368,"kind":"app","opcode":"assign","args":[{"id":367,"kind":"name","name":"currentState"},{"id":366,"kind":"app","opcode":"field","args":[{"id":364,"kind":"name","name":"result"},{"id":365,"kind":"str","value":"newState"}]}]},{"id":379,"kind":"app","opcode":"assign","args":[{"id":378,"kind":"name","name":"trace"},{"id":377,"kind":"app","opcode":"append","args":[{"id":369,"kind":"name","name":"trace"},{"id":376,"kind":"app","opcode":"with","args":[{"id":373,"kind":"app","opcode":"with","args":[{"id":370,"kind":"name","name":"emptyAction"},{"id":371,"kind":"str","value":"kind"},{"id":372,"kind":"str","value":"DeliverVscMaturedPacket"}]},{"id":374,"kind":"str","value":"consumerChain"},{"id":375,"kind":"name","name":"sender"}]}]}]},{"id":382,"kind":"app","opcode":"assign","args":[{"id":381,"kind":"name","name":"params"},{"id":380,"kind":"name","name":"params"}]}]}}}},"depth":0},"504":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"508":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"511":{"id":510,"kind":"def","name":"receiver","qualifier":"nondet","expr":{"id":509,"kind":"app","opcode":"oneOf","args":[{"id":508,"kind":"name","name":"runningConsumers"}]},"depth":1},"512":{"id":348,"kind":"def","name":"DeliverVscPacket","qualifier":"action","expr":{"id":347,"kind":"lambda","params":[{"id":309,"name":"receiver"}],"qualifier":"action","expr":{"id":345,"kind":"let","opdef":{"id":315,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":314,"kind":"app","opcode":"deliverPacketToConsumer","args":[{"id":312,"kind":"name","name":"currentState"},{"id":313,"kind":"name","name":"receiver"}]}},"expr":{"id":344,"kind":"let","opdef":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]}},"expr":{"id":343,"kind":"app","opcode":"actionAll","args":[{"id":323,"kind":"app","opcode":"eq","args":[{"id":321,"kind":"app","opcode":"hasError","args":[{"id":320,"kind":"name","name":"result"}]},{"id":322,"kind":"bool","value":false}]},{"id":328,"kind":"app","opcode":"assign","args":[{"id":327,"kind":"name","name":"currentState"},{"id":326,"kind":"app","opcode":"field","args":[{"id":324,"kind":"name","name":"result"},{"id":325,"kind":"str","value":"newState"}]}]},{"id":339,"kind":"app","opcode":"assign","args":[{"id":338,"kind":"name","name":"trace"},{"id":337,"kind":"app","opcode":"append","args":[{"id":329,"kind":"name","name":"trace"},{"id":336,"kind":"app","opcode":"with","args":[{"id":333,"kind":"app","opcode":"with","args":[{"id":330,"kind":"name","name":"emptyAction"},{"id":331,"kind":"str","value":"kind"},{"id":332,"kind":"str","value":"DeliverVscPacket"}]},{"id":334,"kind":"str","value":"consumerChain"},{"id":335,"kind":"name","name":"receiver"}]}]}]},{"id":342,"kind":"app","opcode":"assign","args":[{"id":341,"kind":"name","name":"params"},{"id":340,"kind":"name","name":"params"}]}]}}}},"depth":0},"517":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"521":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"524":{"id":140,"kind":"def","name":"timeAdvancements","qualifier":"pureval","expr":{"id":139,"kind":"app","opcode":"Set","args":[{"id":128,"kind":"app","opcode":"imul","args":[{"id":126,"kind":"int","value":1},{"id":127,"kind":"name","name":"Second"}]},{"id":131,"kind":"app","opcode":"imul","args":[{"id":129,"kind":"int","value":1},{"id":130,"kind":"name","name":"Day"}]},{"id":138,"kind":"app","opcode":"isub","args":[{"id":134,"kind":"app","opcode":"imul","args":[{"id":132,"kind":"int","value":1},{"id":133,"kind":"name","name":"Week"}]},{"id":137,"kind":"app","opcode":"imul","args":[{"id":135,"kind":"int","value":1},{"id":136,"kind":"name","name":"Hour"}]}]}]},"depth":0},"527":{"id":523,"kind":"def","name":"chain","qualifier":"nondet","expr":{"id":522,"kind":"app","opcode":"oneOf","args":[{"id":521,"kind":"name","name":"runningConsumers"}]},"depth":1},"528":{"id":526,"kind":"def","name":"timeAdvancement","qualifier":"nondet","expr":{"id":525,"kind":"app","opcode":"oneOf","args":[{"id":524,"kind":"name","name":"timeAdvancements"}]},"depth":1},"529":{"id":478,"kind":"def","name":"EndAndBeginBlockForConsumer","qualifier":"action","expr":{"id":477,"kind":"lambda","params":[{"id":438,"name":"chain"},{"id":440,"name":"timeAdvancement"}],"qualifier":"action","expr":{"id":475,"kind":"let","opdef":{"id":447,"kind":"def","name":"result","qualifier":"val","expr":{"id":446,"kind":"app","opcode":"endAndBeginBlockForConsumer","args":[{"id":443,"kind":"name","name":"currentState"},{"id":444,"kind":"name","name":"chain"},{"id":445,"kind":"name","name":"timeAdvancement"}]}},"expr":{"id":474,"kind":"app","opcode":"actionAll","args":[{"id":451,"kind":"app","opcode":"eq","args":[{"id":449,"kind":"app","opcode":"hasError","args":[{"id":448,"kind":"name","name":"result"}]},{"id":450,"kind":"bool","value":false}]},{"id":456,"kind":"app","opcode":"assign","args":[{"id":455,"kind":"name","name":"currentState"},{"id":454,"kind":"app","opcode":"field","args":[{"id":452,"kind":"name","name":"result"},{"id":453,"kind":"str","value":"newState"}]}]},{"id":470,"kind":"app","opcode":"assign","args":[{"id":469,"kind":"name","name":"trace"},{"id":468,"kind":"app","opcode":"append","args":[{"id":457,"kind":"name","name":"trace"},{"id":467,"kind":"app","opcode":"with","args":[{"id":464,"kind":"app","opcode":"with","args":[{"id":461,"kind":"app","opcode":"with","args":[{"id":458,"kind":"name","name":"emptyAction"},{"id":459,"kind":"str","value":"kind"},{"id":460,"kind":"str","value":"EndAndBeginBlockForConsumer"}]},{"id":462,"kind":"str","value":"consumerChain"},{"id":463,"kind":"name","name":"chain"}]},{"id":465,"kind":"str","value":"timeAdvancement"},{"id":466,"kind":"name","name":"timeAdvancement"}]}]}]},{"id":473,"kind":"app","opcode":"assign","args":[{"id":472,"kind":"name","name":"params"},{"id":471,"kind":"name","name":"params"}]}]}}},"depth":0},"533":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"539":{"id":179,"kind":"def","name":"nonConsumers","qualifier":"val","expr":{"id":178,"kind":"app","opcode":"getNonConsumers","args":[{"id":177,"kind":"app","opcode":"field","args":[{"id":175,"kind":"name","name":"currentState"},{"id":176,"kind":"str","value":"providerState"}]}]},"depth":0},"543":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"547":{"id":140,"kind":"def","name":"timeAdvancements","qualifier":"pureval","expr":{"id":139,"kind":"app","opcode":"Set","args":[{"id":128,"kind":"app","opcode":"imul","args":[{"id":126,"kind":"int","value":1},{"id":127,"kind":"name","name":"Second"}]},{"id":131,"kind":"app","opcode":"imul","args":[{"id":129,"kind":"int","value":1},{"id":130,"kind":"name","name":"Day"}]},{"id":138,"kind":"app","opcode":"isub","args":[{"id":134,"kind":"app","opcode":"imul","args":[{"id":132,"kind":"int","value":1},{"id":133,"kind":"name","name":"Week"}]},{"id":137,"kind":"app","opcode":"imul","args":[{"id":135,"kind":"int","value":1},{"id":136,"kind":"name","name":"Hour"}]}]}]},"depth":0},"550":{"id":549,"kind":"def","name":"timeAdvancement","qualifier":"nondet","expr":{"id":548,"kind":"app","opcode":"oneOf","args":[{"id":547,"kind":"name","name":"timeAdvancements"}]},"depth":1},"551":{"id":542,"kind":"def","name":"consumersToStart","qualifier":"nondet","expr":{"id":541,"kind":"app","opcode":"oneOf","args":[{"id":540,"kind":"app","opcode":"powerset","args":[{"id":539,"kind":"name","name":"nonConsumers"}]}]},"depth":1},"552":{"id":546,"kind":"def","name":"consumersToStop","qualifier":"nondet","expr":{"id":545,"kind":"app","opcode":"oneOf","args":[{"id":544,"kind":"app","opcode":"powerset","args":[{"id":543,"kind":"name","name":"runningConsumers"}]}]},"depth":1},"553":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"558":{"id":516,"kind":"def","name":"stepCommon","qualifier":"action","expr":{"id":515,"kind":"app","opcode":"actionAny","args":[{"id":492,"kind":"let","opdef":{"id":481,"kind":"def","name":"node","qualifier":"nondet","expr":{"id":480,"kind":"app","opcode":"oneOf","args":[{"id":479,"kind":"name","name":"nodes"}]}},"expr":{"id":491,"kind":"let","opdef":{"id":487,"kind":"def","name":"newVotingPower","qualifier":"nondet","expr":{"id":486,"kind":"app","opcode":"oneOf","args":[{"id":485,"kind":"app","opcode":"Set","args":[{"id":483,"kind":"app","opcode":"iuminus","args":[{"id":482,"kind":"int","value":50}]},{"id":484,"kind":"int","value":50}]}]}},"expr":{"id":490,"kind":"app","opcode":"VotingPowerChange","args":[{"id":488,"kind":"name","name":"node"},{"id":489,"kind":"name","name":"newVotingPower"}]}}},{"id":503,"kind":"app","opcode":"actionAll","args":[{"id":496,"kind":"app","opcode":"igt","args":[{"id":494,"kind":"app","opcode":"size","args":[{"id":493,"kind":"name","name":"runningConsumers"}]},{"id":495,"kind":"int","value":0}]},{"id":502,"kind":"let","opdef":{"id":499,"kind":"def","name":"sender","qualifier":"nondet","expr":{"id":498,"kind":"app","opcode":"oneOf","args":[{"id":497,"kind":"name","name":"runningConsumers"}]}},"expr":{"id":501,"kind":"app","opcode":"DeliverVscMaturedPacket","args":[{"id":500,"kind":"name","name":"sender"}]}}]},{"id":514,"kind":"app","opcode":"actionAll","args":[{"id":507,"kind":"app","opcode":"igt","args":[{"id":505,"kind":"app","opcode":"size","args":[{"id":504,"kind":"name","name":"runningConsumers"}]},{"id":506,"kind":"int","value":0}]},{"id":513,"kind":"let","opdef":{"id":510,"kind":"def","name":"receiver","qualifier":"nondet","expr":{"id":509,"kind":"app","opcode":"oneOf","args":[{"id":508,"kind":"name","name":"runningConsumers"}]}},"expr":{"id":512,"kind":"app","opcode":"DeliverVscPacket","args":[{"id":511,"kind":"name","name":"receiver"}]}}]}]},"depth":0},"562":{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"564":{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"565":{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"571":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"575":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"580":{"id":561,"name":"packets","kind":"param"},"581":{"id":579,"kind":"def","name":"newestPossiblePacket","qualifier":"val","expr":{"id":578,"kind":"app","opcode":"Rec","args":[{"id":567,"kind":"str","value":"id"},{"id":566,"kind":"int","value":0},{"id":569,"kind":"str","value":"validatorSet"},{"id":568,"kind":"app","opcode":"Map","args":[]},{"id":573,"kind":"str","value":"sendingTime"},{"id":572,"kind":"app","opcode":"imul","args":[{"id":570,"kind":"int","value":9999999999999},{"id":571,"kind":"name","name":"Second"}]},{"id":577,"kind":"str","value":"timeoutTime"},{"id":576,"kind":"app","opcode":"imul","args":[{"id":574,"kind":"int","value":9999999999999},{"id":575,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":565,"kind":"const","name":"VscPacket"},"depth":1},"584":{"id":582,"name":"res","kind":"param"},"587":{"id":583,"name":"pack","kind":"param"},"591":{"id":582,"name":"res","kind":"param"},"592":{"id":583,"name":"pack","kind":"param"},"601":{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"603":{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"604":{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"611":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"616":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"621":{"id":600,"name":"packets","kind":"param"},"622":{"id":620,"kind":"def","name":"oldestPossiblePacket","qualifier":"val","expr":{"id":619,"kind":"app","opcode":"Rec","args":[{"id":606,"kind":"str","value":"id"},{"id":605,"kind":"int","value":0},{"id":608,"kind":"str","value":"validatorSet"},{"id":607,"kind":"app","opcode":"Map","args":[]},{"id":613,"kind":"str","value":"sendingTime"},{"id":612,"kind":"app","opcode":"imul","args":[{"id":610,"kind":"app","opcode":"iuminus","args":[{"id":609,"kind":"int","value":9999999999}]},{"id":611,"kind":"name","name":"Second"}]},{"id":618,"kind":"str","value":"timeoutTime"},{"id":617,"kind":"app","opcode":"imul","args":[{"id":615,"kind":"app","opcode":"iuminus","args":[{"id":614,"kind":"int","value":9999999999}]},{"id":616,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":604,"kind":"const","name":"VscPacket"},"depth":1},"625":{"id":623,"name":"res","kind":"param"},"628":{"id":624,"name":"pack","kind":"param"},"632":{"id":623,"name":"res","kind":"param"},"633":{"id":624,"name":"pack","kind":"param"},"646":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"650":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"660":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"664":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"674":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"678":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"683":{"id":654,"kind":"def","name":"packet1","qualifier":"val","expr":{"id":653,"kind":"app","opcode":"Rec","args":[{"id":642,"kind":"str","value":"id"},{"id":641,"kind":"int","value":1},{"id":644,"kind":"str","value":"validatorSet"},{"id":643,"kind":"app","opcode":"Map","args":[]},{"id":648,"kind":"str","value":"sendingTime"},{"id":647,"kind":"app","opcode":"imul","args":[{"id":645,"kind":"int","value":1},{"id":646,"kind":"name","name":"Second"}]},{"id":652,"kind":"str","value":"timeoutTime"},{"id":651,"kind":"app","opcode":"imul","args":[{"id":649,"kind":"int","value":1},{"id":650,"kind":"name","name":"Second"}]}]},"depth":1},"684":{"id":668,"kind":"def","name":"packet2","qualifier":"val","expr":{"id":667,"kind":"app","opcode":"Rec","args":[{"id":656,"kind":"str","value":"id"},{"id":655,"kind":"int","value":2},{"id":658,"kind":"str","value":"validatorSet"},{"id":657,"kind":"app","opcode":"Map","args":[]},{"id":662,"kind":"str","value":"sendingTime"},{"id":661,"kind":"app","opcode":"imul","args":[{"id":659,"kind":"int","value":2},{"id":660,"kind":"name","name":"Second"}]},{"id":666,"kind":"str","value":"timeoutTime"},{"id":665,"kind":"app","opcode":"imul","args":[{"id":663,"kind":"int","value":2},{"id":664,"kind":"name","name":"Second"}]}]},"depth":1},"685":{"id":682,"kind":"def","name":"packet3","qualifier":"val","expr":{"id":681,"kind":"app","opcode":"Rec","args":[{"id":670,"kind":"str","value":"id"},{"id":669,"kind":"int","value":3},{"id":672,"kind":"str","value":"validatorSet"},{"id":671,"kind":"app","opcode":"Map","args":[]},{"id":676,"kind":"str","value":"sendingTime"},{"id":675,"kind":"app","opcode":"imul","args":[{"id":673,"kind":"int","value":3},{"id":674,"kind":"name","name":"Second"}]},{"id":680,"kind":"str","value":"timeoutTime"},{"id":679,"kind":"app","opcode":"imul","args":[{"id":677,"kind":"int","value":3},{"id":678,"kind":"name","name":"Second"}]}]},"depth":1},"687":{"id":599,"kind":"def","name":"oldest","qualifier":"puredef","expr":{"id":598,"kind":"lambda","params":[{"id":561,"name":"packets"}],"qualifier":"puredef","expr":{"id":596,"kind":"let","opdef":{"id":579,"kind":"def","name":"newestPossiblePacket","qualifier":"val","expr":{"id":578,"kind":"app","opcode":"Rec","args":[{"id":567,"kind":"str","value":"id"},{"id":566,"kind":"int","value":0},{"id":569,"kind":"str","value":"validatorSet"},{"id":568,"kind":"app","opcode":"Map","args":[]},{"id":573,"kind":"str","value":"sendingTime"},{"id":572,"kind":"app","opcode":"imul","args":[{"id":570,"kind":"int","value":9999999999999},{"id":571,"kind":"name","name":"Second"}]},{"id":577,"kind":"str","value":"timeoutTime"},{"id":576,"kind":"app","opcode":"imul","args":[{"id":574,"kind":"int","value":9999999999999},{"id":575,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":565,"kind":"const","name":"VscPacket"}},"expr":{"id":595,"kind":"app","opcode":"fold","args":[{"id":580,"kind":"name","name":"packets"},{"id":581,"kind":"name","name":"newestPossiblePacket"},{"id":594,"kind":"lambda","params":[{"id":582,"name":"res"},{"id":583,"name":"pack"}],"qualifier":"def","expr":{"id":593,"kind":"app","opcode":"ite","args":[{"id":590,"kind":"app","opcode":"ilt","args":[{"id":586,"kind":"app","opcode":"field","args":[{"id":584,"kind":"name","name":"res"},{"id":585,"kind":"str","value":"sendingTime"}]},{"id":589,"kind":"app","opcode":"field","args":[{"id":587,"kind":"name","name":"pack"},{"id":588,"kind":"str","value":"sendingTime"}]}]},{"id":591,"kind":"name","name":"res"},{"id":592,"kind":"name","name":"pack"}]}}]}}},"depth":0},"688":{"id":654,"kind":"def","name":"packet1","qualifier":"val","expr":{"id":653,"kind":"app","opcode":"Rec","args":[{"id":642,"kind":"str","value":"id"},{"id":641,"kind":"int","value":1},{"id":644,"kind":"str","value":"validatorSet"},{"id":643,"kind":"app","opcode":"Map","args":[]},{"id":648,"kind":"str","value":"sendingTime"},{"id":647,"kind":"app","opcode":"imul","args":[{"id":645,"kind":"int","value":1},{"id":646,"kind":"name","name":"Second"}]},{"id":652,"kind":"str","value":"timeoutTime"},{"id":651,"kind":"app","opcode":"imul","args":[{"id":649,"kind":"int","value":1},{"id":650,"kind":"name","name":"Second"}]}]},"depth":1},"691":{"id":682,"kind":"def","name":"packet3","qualifier":"val","expr":{"id":681,"kind":"app","opcode":"Rec","args":[{"id":670,"kind":"str","value":"id"},{"id":669,"kind":"int","value":3},{"id":672,"kind":"str","value":"validatorSet"},{"id":671,"kind":"app","opcode":"Map","args":[]},{"id":676,"kind":"str","value":"sendingTime"},{"id":675,"kind":"app","opcode":"imul","args":[{"id":673,"kind":"int","value":3},{"id":674,"kind":"name","name":"Second"}]},{"id":680,"kind":"str","value":"timeoutTime"},{"id":679,"kind":"app","opcode":"imul","args":[{"id":677,"kind":"int","value":3},{"id":678,"kind":"name","name":"Second"}]}]},"depth":1},"692":{"id":668,"kind":"def","name":"packet2","qualifier":"val","expr":{"id":667,"kind":"app","opcode":"Rec","args":[{"id":656,"kind":"str","value":"id"},{"id":655,"kind":"int","value":2},{"id":658,"kind":"str","value":"validatorSet"},{"id":657,"kind":"app","opcode":"Map","args":[]},{"id":662,"kind":"str","value":"sendingTime"},{"id":661,"kind":"app","opcode":"imul","args":[{"id":659,"kind":"int","value":2},{"id":660,"kind":"name","name":"Second"}]},{"id":666,"kind":"str","value":"timeoutTime"},{"id":665,"kind":"app","opcode":"imul","args":[{"id":663,"kind":"int","value":2},{"id":664,"kind":"name","name":"Second"}]}]},"depth":1},"693":{"id":654,"kind":"def","name":"packet1","qualifier":"val","expr":{"id":653,"kind":"app","opcode":"Rec","args":[{"id":642,"kind":"str","value":"id"},{"id":641,"kind":"int","value":1},{"id":644,"kind":"str","value":"validatorSet"},{"id":643,"kind":"app","opcode":"Map","args":[]},{"id":648,"kind":"str","value":"sendingTime"},{"id":647,"kind":"app","opcode":"imul","args":[{"id":645,"kind":"int","value":1},{"id":646,"kind":"name","name":"Second"}]},{"id":652,"kind":"str","value":"timeoutTime"},{"id":651,"kind":"app","opcode":"imul","args":[{"id":649,"kind":"int","value":1},{"id":650,"kind":"name","name":"Second"}]}]},"depth":1},"695":{"id":599,"kind":"def","name":"oldest","qualifier":"puredef","expr":{"id":598,"kind":"lambda","params":[{"id":561,"name":"packets"}],"qualifier":"puredef","expr":{"id":596,"kind":"let","opdef":{"id":579,"kind":"def","name":"newestPossiblePacket","qualifier":"val","expr":{"id":578,"kind":"app","opcode":"Rec","args":[{"id":567,"kind":"str","value":"id"},{"id":566,"kind":"int","value":0},{"id":569,"kind":"str","value":"validatorSet"},{"id":568,"kind":"app","opcode":"Map","args":[]},{"id":573,"kind":"str","value":"sendingTime"},{"id":572,"kind":"app","opcode":"imul","args":[{"id":570,"kind":"int","value":9999999999999},{"id":571,"kind":"name","name":"Second"}]},{"id":577,"kind":"str","value":"timeoutTime"},{"id":576,"kind":"app","opcode":"imul","args":[{"id":574,"kind":"int","value":9999999999999},{"id":575,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":565,"kind":"const","name":"VscPacket"}},"expr":{"id":595,"kind":"app","opcode":"fold","args":[{"id":580,"kind":"name","name":"packets"},{"id":581,"kind":"name","name":"newestPossiblePacket"},{"id":594,"kind":"lambda","params":[{"id":582,"name":"res"},{"id":583,"name":"pack"}],"qualifier":"def","expr":{"id":593,"kind":"app","opcode":"ite","args":[{"id":590,"kind":"app","opcode":"ilt","args":[{"id":586,"kind":"app","opcode":"field","args":[{"id":584,"kind":"name","name":"res"},{"id":585,"kind":"str","value":"sendingTime"}]},{"id":589,"kind":"app","opcode":"field","args":[{"id":587,"kind":"name","name":"pack"},{"id":588,"kind":"str","value":"sendingTime"}]}]},{"id":591,"kind":"name","name":"res"},{"id":592,"kind":"name","name":"pack"}]}}]}}},"depth":0},"696":{"id":654,"kind":"def","name":"packet1","qualifier":"val","expr":{"id":653,"kind":"app","opcode":"Rec","args":[{"id":642,"kind":"str","value":"id"},{"id":641,"kind":"int","value":1},{"id":644,"kind":"str","value":"validatorSet"},{"id":643,"kind":"app","opcode":"Map","args":[]},{"id":648,"kind":"str","value":"sendingTime"},{"id":647,"kind":"app","opcode":"imul","args":[{"id":645,"kind":"int","value":1},{"id":646,"kind":"name","name":"Second"}]},{"id":652,"kind":"str","value":"timeoutTime"},{"id":651,"kind":"app","opcode":"imul","args":[{"id":649,"kind":"int","value":1},{"id":650,"kind":"name","name":"Second"}]}]},"depth":1},"699":{"id":654,"kind":"def","name":"packet1","qualifier":"val","expr":{"id":653,"kind":"app","opcode":"Rec","args":[{"id":642,"kind":"str","value":"id"},{"id":641,"kind":"int","value":1},{"id":644,"kind":"str","value":"validatorSet"},{"id":643,"kind":"app","opcode":"Map","args":[]},{"id":648,"kind":"str","value":"sendingTime"},{"id":647,"kind":"app","opcode":"imul","args":[{"id":645,"kind":"int","value":1},{"id":646,"kind":"name","name":"Second"}]},{"id":652,"kind":"str","value":"timeoutTime"},{"id":651,"kind":"app","opcode":"imul","args":[{"id":649,"kind":"int","value":1},{"id":650,"kind":"name","name":"Second"}]}]},"depth":1},"700":{"id":668,"kind":"def","name":"packet2","qualifier":"val","expr":{"id":667,"kind":"app","opcode":"Rec","args":[{"id":656,"kind":"str","value":"id"},{"id":655,"kind":"int","value":2},{"id":658,"kind":"str","value":"validatorSet"},{"id":657,"kind":"app","opcode":"Map","args":[]},{"id":662,"kind":"str","value":"sendingTime"},{"id":661,"kind":"app","opcode":"imul","args":[{"id":659,"kind":"int","value":2},{"id":660,"kind":"name","name":"Second"}]},{"id":666,"kind":"str","value":"timeoutTime"},{"id":665,"kind":"app","opcode":"imul","args":[{"id":663,"kind":"int","value":2},{"id":664,"kind":"name","name":"Second"}]}]},"depth":1},"701":{"id":682,"kind":"def","name":"packet3","qualifier":"val","expr":{"id":681,"kind":"app","opcode":"Rec","args":[{"id":670,"kind":"str","value":"id"},{"id":669,"kind":"int","value":3},{"id":672,"kind":"str","value":"validatorSet"},{"id":671,"kind":"app","opcode":"Map","args":[]},{"id":676,"kind":"str","value":"sendingTime"},{"id":675,"kind":"app","opcode":"imul","args":[{"id":673,"kind":"int","value":3},{"id":674,"kind":"name","name":"Second"}]},{"id":680,"kind":"str","value":"timeoutTime"},{"id":679,"kind":"app","opcode":"imul","args":[{"id":677,"kind":"int","value":3},{"id":678,"kind":"name","name":"Second"}]}]},"depth":1},"703":{"id":640,"kind":"def","name":"newest","qualifier":"puredef","expr":{"id":639,"kind":"lambda","params":[{"id":600,"name":"packets"}],"qualifier":"puredef","expr":{"id":637,"kind":"let","opdef":{"id":620,"kind":"def","name":"oldestPossiblePacket","qualifier":"val","expr":{"id":619,"kind":"app","opcode":"Rec","args":[{"id":606,"kind":"str","value":"id"},{"id":605,"kind":"int","value":0},{"id":608,"kind":"str","value":"validatorSet"},{"id":607,"kind":"app","opcode":"Map","args":[]},{"id":613,"kind":"str","value":"sendingTime"},{"id":612,"kind":"app","opcode":"imul","args":[{"id":610,"kind":"app","opcode":"iuminus","args":[{"id":609,"kind":"int","value":9999999999}]},{"id":611,"kind":"name","name":"Second"}]},{"id":618,"kind":"str","value":"timeoutTime"},{"id":617,"kind":"app","opcode":"imul","args":[{"id":615,"kind":"app","opcode":"iuminus","args":[{"id":614,"kind":"int","value":9999999999}]},{"id":616,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":604,"kind":"const","name":"VscPacket"}},"expr":{"id":636,"kind":"app","opcode":"fold","args":[{"id":621,"kind":"name","name":"packets"},{"id":622,"kind":"name","name":"oldestPossiblePacket"},{"id":635,"kind":"lambda","params":[{"id":623,"name":"res"},{"id":624,"name":"pack"}],"qualifier":"def","expr":{"id":634,"kind":"app","opcode":"ite","args":[{"id":631,"kind":"app","opcode":"igte","args":[{"id":627,"kind":"app","opcode":"field","args":[{"id":625,"kind":"name","name":"res"},{"id":626,"kind":"str","value":"sendingTime"}]},{"id":630,"kind":"app","opcode":"field","args":[{"id":628,"kind":"name","name":"pack"},{"id":629,"kind":"str","value":"sendingTime"}]}]},{"id":632,"kind":"name","name":"res"},{"id":633,"kind":"name","name":"pack"}]}}]}}},"depth":0},"704":{"id":682,"kind":"def","name":"packet3","qualifier":"val","expr":{"id":681,"kind":"app","opcode":"Rec","args":[{"id":670,"kind":"str","value":"id"},{"id":669,"kind":"int","value":3},{"id":672,"kind":"str","value":"validatorSet"},{"id":671,"kind":"app","opcode":"Map","args":[]},{"id":676,"kind":"str","value":"sendingTime"},{"id":675,"kind":"app","opcode":"imul","args":[{"id":673,"kind":"int","value":3},{"id":674,"kind":"name","name":"Second"}]},{"id":680,"kind":"str","value":"timeoutTime"},{"id":679,"kind":"app","opcode":"imul","args":[{"id":677,"kind":"int","value":3},{"id":678,"kind":"name","name":"Second"}]}]},"depth":1},"707":{"id":682,"kind":"def","name":"packet3","qualifier":"val","expr":{"id":681,"kind":"app","opcode":"Rec","args":[{"id":670,"kind":"str","value":"id"},{"id":669,"kind":"int","value":3},{"id":672,"kind":"str","value":"validatorSet"},{"id":671,"kind":"app","opcode":"Map","args":[]},{"id":676,"kind":"str","value":"sendingTime"},{"id":675,"kind":"app","opcode":"imul","args":[{"id":673,"kind":"int","value":3},{"id":674,"kind":"name","name":"Second"}]},{"id":680,"kind":"str","value":"timeoutTime"},{"id":679,"kind":"app","opcode":"imul","args":[{"id":677,"kind":"int","value":3},{"id":678,"kind":"name","name":"Second"}]}]},"depth":1},"708":{"id":668,"kind":"def","name":"packet2","qualifier":"val","expr":{"id":667,"kind":"app","opcode":"Rec","args":[{"id":656,"kind":"str","value":"id"},{"id":655,"kind":"int","value":2},{"id":658,"kind":"str","value":"validatorSet"},{"id":657,"kind":"app","opcode":"Map","args":[]},{"id":662,"kind":"str","value":"sendingTime"},{"id":661,"kind":"app","opcode":"imul","args":[{"id":659,"kind":"int","value":2},{"id":660,"kind":"name","name":"Second"}]},{"id":666,"kind":"str","value":"timeoutTime"},{"id":665,"kind":"app","opcode":"imul","args":[{"id":663,"kind":"int","value":2},{"id":664,"kind":"name","name":"Second"}]}]},"depth":1},"709":{"id":654,"kind":"def","name":"packet1","qualifier":"val","expr":{"id":653,"kind":"app","opcode":"Rec","args":[{"id":642,"kind":"str","value":"id"},{"id":641,"kind":"int","value":1},{"id":644,"kind":"str","value":"validatorSet"},{"id":643,"kind":"app","opcode":"Map","args":[]},{"id":648,"kind":"str","value":"sendingTime"},{"id":647,"kind":"app","opcode":"imul","args":[{"id":645,"kind":"int","value":1},{"id":646,"kind":"name","name":"Second"}]},{"id":652,"kind":"str","value":"timeoutTime"},{"id":651,"kind":"app","opcode":"imul","args":[{"id":649,"kind":"int","value":1},{"id":650,"kind":"name","name":"Second"}]}]},"depth":1},"711":{"id":640,"kind":"def","name":"newest","qualifier":"puredef","expr":{"id":639,"kind":"lambda","params":[{"id":600,"name":"packets"}],"qualifier":"puredef","expr":{"id":637,"kind":"let","opdef":{"id":620,"kind":"def","name":"oldestPossiblePacket","qualifier":"val","expr":{"id":619,"kind":"app","opcode":"Rec","args":[{"id":606,"kind":"str","value":"id"},{"id":605,"kind":"int","value":0},{"id":608,"kind":"str","value":"validatorSet"},{"id":607,"kind":"app","opcode":"Map","args":[]},{"id":613,"kind":"str","value":"sendingTime"},{"id":612,"kind":"app","opcode":"imul","args":[{"id":610,"kind":"app","opcode":"iuminus","args":[{"id":609,"kind":"int","value":9999999999}]},{"id":611,"kind":"name","name":"Second"}]},{"id":618,"kind":"str","value":"timeoutTime"},{"id":617,"kind":"app","opcode":"imul","args":[{"id":615,"kind":"app","opcode":"iuminus","args":[{"id":614,"kind":"int","value":9999999999}]},{"id":616,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":604,"kind":"const","name":"VscPacket"}},"expr":{"id":636,"kind":"app","opcode":"fold","args":[{"id":621,"kind":"name","name":"packets"},{"id":622,"kind":"name","name":"oldestPossiblePacket"},{"id":635,"kind":"lambda","params":[{"id":623,"name":"res"},{"id":624,"name":"pack"}],"qualifier":"def","expr":{"id":634,"kind":"app","opcode":"ite","args":[{"id":631,"kind":"app","opcode":"igte","args":[{"id":627,"kind":"app","opcode":"field","args":[{"id":625,"kind":"name","name":"res"},{"id":626,"kind":"str","value":"sendingTime"}]},{"id":630,"kind":"app","opcode":"field","args":[{"id":628,"kind":"name","name":"pack"},{"id":629,"kind":"str","value":"sendingTime"}]}]},{"id":632,"kind":"name","name":"res"},{"id":633,"kind":"name","name":"pack"}]}}]}}},"depth":0},"712":{"id":682,"kind":"def","name":"packet3","qualifier":"val","expr":{"id":681,"kind":"app","opcode":"Rec","args":[{"id":670,"kind":"str","value":"id"},{"id":669,"kind":"int","value":3},{"id":672,"kind":"str","value":"validatorSet"},{"id":671,"kind":"app","opcode":"Map","args":[]},{"id":676,"kind":"str","value":"sendingTime"},{"id":675,"kind":"app","opcode":"imul","args":[{"id":673,"kind":"int","value":3},{"id":674,"kind":"name","name":"Second"}]},{"id":680,"kind":"str","value":"timeoutTime"},{"id":679,"kind":"app","opcode":"imul","args":[{"id":677,"kind":"int","value":3},{"id":678,"kind":"name","name":"Second"}]}]},"depth":1},"720":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"722":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"725":{"id":721,"name":"chain","kind":"param"},"731":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"733":{"id":169,"kind":"def","name":"providerValidatorHistory","qualifier":"val","expr":{"id":168,"kind":"app","opcode":"field","args":[{"id":166,"kind":"app","opcode":"field","args":[{"id":164,"kind":"app","opcode":"field","args":[{"id":162,"kind":"name","name":"currentState"},{"id":163,"kind":"str","value":"providerState"}]},{"id":165,"kind":"str","value":"chainState"}]},{"id":167,"kind":"str","value":"votingPowerHistory"}]},"depth":0},"734":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"735":{"id":732,"name":"validatorSet","kind":"param"},"742":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"743":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"753":{"id":752,"kind":"def","name":"ValUpdatePrecondition","qualifier":"val","expr":{"id":751,"kind":"app","opcode":"eq","args":[{"id":749,"kind":"app","opcode":"field","args":[{"id":747,"kind":"app","opcode":"nth","args":[{"id":742,"kind":"name","name":"trace"},{"id":746,"kind":"app","opcode":"isub","args":[{"id":744,"kind":"app","opcode":"length","args":[{"id":743,"kind":"name","name":"trace"}]},{"id":745,"kind":"int","value":1}]}]},{"id":748,"kind":"str","value":"kind"}]},{"id":750,"kind":"str","value":"EndAndBeginBlockForProvider"}]},"depth":0},"754":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"760":{"id":169,"kind":"def","name":"providerValidatorHistory","qualifier":"val","expr":{"id":168,"kind":"app","opcode":"field","args":[{"id":166,"kind":"app","opcode":"field","args":[{"id":164,"kind":"app","opcode":"field","args":[{"id":162,"kind":"name","name":"currentState"},{"id":163,"kind":"str","value":"providerState"}]},{"id":165,"kind":"str","value":"chainState"}]},{"id":167,"kind":"str","value":"votingPowerHistory"}]},"depth":0},"763":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"765":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"770":{"id":764,"name":"consumer","kind":"param"},"772":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"774":{"id":773,"name":"packet","kind":"param"},"777":{"id":762,"kind":"def","name":"providerValSetInCurBlock","qualifier":"val","expr":{"id":761,"kind":"app","opcode":"head","args":[{"id":760,"kind":"name","name":"providerValidatorHistory"}]},"depth":1},"781":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"784":{"id":764,"name":"consumer","kind":"param"},"792":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"795":{"id":764,"name":"consumer","kind":"param"},"801":{"id":762,"kind":"def","name":"providerValSetInCurBlock","qualifier":"val","expr":{"id":761,"kind":"app","opcode":"head","args":[{"id":760,"kind":"name","name":"providerValidatorHistory"}]},"depth":1},"810":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"812":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"814":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"817":{"id":811,"name":"consumer1","kind":"param"},"822":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"825":{"id":813,"name":"consumer2","kind":"param"},"830":{"id":821,"kind":"def","name":"packets1","qualifier":"val","expr":{"id":820,"kind":"app","opcode":"field","args":[{"id":818,"kind":"app","opcode":"get","args":[{"id":816,"kind":"app","opcode":"field","args":[{"id":814,"kind":"name","name":"currentState"},{"id":815,"kind":"str","value":"consumerStates"}]},{"id":817,"kind":"name","name":"consumer1"}]},{"id":819,"kind":"str","value":"receivedVscPackets"}]},"depth":1},"831":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"832":{"id":829,"kind":"def","name":"packets2","qualifier":"val","expr":{"id":828,"kind":"app","opcode":"field","args":[{"id":826,"kind":"app","opcode":"get","args":[{"id":824,"kind":"app","opcode":"field","args":[{"id":822,"kind":"name","name":"currentState"},{"id":823,"kind":"str","value":"consumerStates"}]},{"id":825,"kind":"name","name":"consumer2"}]},{"id":827,"kind":"str","value":"receivedVscPackets"}]},"depth":1},"833":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"836":{"id":835,"kind":"def","name":"commonPackets","qualifier":"val","expr":{"id":834,"kind":"app","opcode":"intersect","args":[{"id":831,"kind":"app","opcode":"toSet","args":[{"id":830,"kind":"name","name":"packets1"}]},{"id":833,"kind":"app","opcode":"toSet","args":[{"id":832,"kind":"name","name":"packets2"}]}]},"depth":1},"841":{"id":835,"kind":"def","name":"commonPackets","qualifier":"val","expr":{"id":834,"kind":"app","opcode":"intersect","args":[{"id":831,"kind":"app","opcode":"toSet","args":[{"id":830,"kind":"name","name":"packets1"}]},{"id":833,"kind":"app","opcode":"toSet","args":[{"id":832,"kind":"name","name":"packets2"}]}]},"depth":1},"842":{"id":640,"kind":"def","name":"newest","qualifier":"puredef","expr":{"id":639,"kind":"lambda","params":[{"id":600,"name":"packets"}],"qualifier":"puredef","expr":{"id":637,"kind":"let","opdef":{"id":620,"kind":"def","name":"oldestPossiblePacket","qualifier":"val","expr":{"id":619,"kind":"app","opcode":"Rec","args":[{"id":606,"kind":"str","value":"id"},{"id":605,"kind":"int","value":0},{"id":608,"kind":"str","value":"validatorSet"},{"id":607,"kind":"app","opcode":"Map","args":[]},{"id":613,"kind":"str","value":"sendingTime"},{"id":612,"kind":"app","opcode":"imul","args":[{"id":610,"kind":"app","opcode":"iuminus","args":[{"id":609,"kind":"int","value":9999999999}]},{"id":611,"kind":"name","name":"Second"}]},{"id":618,"kind":"str","value":"timeoutTime"},{"id":617,"kind":"app","opcode":"imul","args":[{"id":615,"kind":"app","opcode":"iuminus","args":[{"id":614,"kind":"int","value":9999999999}]},{"id":616,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":604,"kind":"const","name":"VscPacket"}},"expr":{"id":636,"kind":"app","opcode":"fold","args":[{"id":621,"kind":"name","name":"packets"},{"id":622,"kind":"name","name":"oldestPossiblePacket"},{"id":635,"kind":"lambda","params":[{"id":623,"name":"res"},{"id":624,"name":"pack"}],"qualifier":"def","expr":{"id":634,"kind":"app","opcode":"ite","args":[{"id":631,"kind":"app","opcode":"igte","args":[{"id":627,"kind":"app","opcode":"field","args":[{"id":625,"kind":"name","name":"res"},{"id":626,"kind":"str","value":"sendingTime"}]},{"id":630,"kind":"app","opcode":"field","args":[{"id":628,"kind":"name","name":"pack"},{"id":629,"kind":"str","value":"sendingTime"}]}]},{"id":632,"kind":"name","name":"res"},{"id":633,"kind":"name","name":"pack"}]}}]}}},"depth":0},"844":{"id":835,"kind":"def","name":"commonPackets","qualifier":"val","expr":{"id":834,"kind":"app","opcode":"intersect","args":[{"id":831,"kind":"app","opcode":"toSet","args":[{"id":830,"kind":"name","name":"packets1"}]},{"id":833,"kind":"app","opcode":"toSet","args":[{"id":832,"kind":"name","name":"packets2"}]}]},"depth":1},"845":{"id":599,"kind":"def","name":"oldest","qualifier":"puredef","expr":{"id":598,"kind":"lambda","params":[{"id":561,"name":"packets"}],"qualifier":"puredef","expr":{"id":596,"kind":"let","opdef":{"id":579,"kind":"def","name":"newestPossiblePacket","qualifier":"val","expr":{"id":578,"kind":"app","opcode":"Rec","args":[{"id":567,"kind":"str","value":"id"},{"id":566,"kind":"int","value":0},{"id":569,"kind":"str","value":"validatorSet"},{"id":568,"kind":"app","opcode":"Map","args":[]},{"id":573,"kind":"str","value":"sendingTime"},{"id":572,"kind":"app","opcode":"imul","args":[{"id":570,"kind":"int","value":9999999999999},{"id":571,"kind":"name","name":"Second"}]},{"id":577,"kind":"str","value":"timeoutTime"},{"id":576,"kind":"app","opcode":"imul","args":[{"id":574,"kind":"int","value":9999999999999},{"id":575,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":565,"kind":"const","name":"VscPacket"}},"expr":{"id":595,"kind":"app","opcode":"fold","args":[{"id":580,"kind":"name","name":"packets"},{"id":581,"kind":"name","name":"newestPossiblePacket"},{"id":594,"kind":"lambda","params":[{"id":582,"name":"res"},{"id":583,"name":"pack"}],"qualifier":"def","expr":{"id":593,"kind":"app","opcode":"ite","args":[{"id":590,"kind":"app","opcode":"ilt","args":[{"id":586,"kind":"app","opcode":"field","args":[{"id":584,"kind":"name","name":"res"},{"id":585,"kind":"str","value":"sendingTime"}]},{"id":589,"kind":"app","opcode":"field","args":[{"id":587,"kind":"name","name":"pack"},{"id":588,"kind":"str","value":"sendingTime"}]}]},{"id":591,"kind":"name","name":"res"},{"id":592,"kind":"name","name":"pack"}]}}]}}},"depth":0},"847":{"id":821,"kind":"def","name":"packets1","qualifier":"val","expr":{"id":820,"kind":"app","opcode":"field","args":[{"id":818,"kind":"app","opcode":"get","args":[{"id":816,"kind":"app","opcode":"field","args":[{"id":814,"kind":"name","name":"currentState"},{"id":815,"kind":"str","value":"consumerStates"}]},{"id":817,"kind":"name","name":"consumer1"}]},{"id":819,"kind":"str","value":"receivedVscPackets"}]},"depth":1},"849":{"id":848,"name":"packet","kind":"param"},"852":{"id":846,"kind":"def","name":"oldestCommonPacket","qualifier":"val","expr":{"id":845,"kind":"app","opcode":"oldest","args":[{"id":844,"kind":"name","name":"commonPackets"}]},"depth":1},"856":{"id":848,"name":"packet","kind":"param"},"859":{"id":843,"kind":"def","name":"newestCommonPacket","qualifier":"val","expr":{"id":842,"kind":"app","opcode":"newest","args":[{"id":841,"kind":"name","name":"commonPackets"}]},"depth":1},"867":{"id":829,"kind":"def","name":"packets2","qualifier":"val","expr":{"id":828,"kind":"app","opcode":"field","args":[{"id":826,"kind":"app","opcode":"get","args":[{"id":824,"kind":"app","opcode":"field","args":[{"id":822,"kind":"name","name":"currentState"},{"id":823,"kind":"str","value":"consumerStates"}]},{"id":825,"kind":"name","name":"consumer2"}]},{"id":827,"kind":"str","value":"receivedVscPackets"}]},"depth":1},"869":{"id":868,"name":"packet","kind":"param"},"872":{"id":846,"kind":"def","name":"oldestCommonPacket","qualifier":"val","expr":{"id":845,"kind":"app","opcode":"oldest","args":[{"id":844,"kind":"name","name":"commonPackets"}]},"depth":1},"876":{"id":868,"name":"packet","kind":"param"},"879":{"id":843,"kind":"def","name":"newestCommonPacket","qualifier":"val","expr":{"id":842,"kind":"app","opcode":"newest","args":[{"id":841,"kind":"name","name":"commonPackets"}]},"depth":1},"887":{"id":866,"kind":"def","name":"packetsBetween1","qualifier":"val","expr":{"id":865,"kind":"app","opcode":"select","args":[{"id":847,"kind":"name","name":"packets1"},{"id":864,"kind":"lambda","params":[{"id":848,"name":"packet"}],"qualifier":"def","expr":{"id":863,"kind":"app","opcode":"and","args":[{"id":855,"kind":"app","opcode":"igte","args":[{"id":851,"kind":"app","opcode":"field","args":[{"id":849,"kind":"name","name":"packet"},{"id":850,"kind":"str","value":"sendingTime"}]},{"id":854,"kind":"app","opcode":"field","args":[{"id":852,"kind":"name","name":"oldestCommonPacket"},{"id":853,"kind":"str","value":"sendingTime"}]}]},{"id":862,"kind":"app","opcode":"ilte","args":[{"id":858,"kind":"app","opcode":"field","args":[{"id":856,"kind":"name","name":"packet"},{"id":857,"kind":"str","value":"sendingTime"}]},{"id":861,"kind":"app","opcode":"field","args":[{"id":859,"kind":"name","name":"newestCommonPacket"},{"id":860,"kind":"str","value":"sendingTime"}]}]}]}}]},"depth":1},"888":{"id":886,"kind":"def","name":"packetsBetween2","qualifier":"val","expr":{"id":885,"kind":"app","opcode":"select","args":[{"id":867,"kind":"name","name":"packets2"},{"id":884,"kind":"lambda","params":[{"id":868,"name":"packet"}],"qualifier":"def","expr":{"id":883,"kind":"app","opcode":"and","args":[{"id":875,"kind":"app","opcode":"igte","args":[{"id":871,"kind":"app","opcode":"field","args":[{"id":869,"kind":"name","name":"packet"},{"id":870,"kind":"str","value":"sendingTime"}]},{"id":874,"kind":"app","opcode":"field","args":[{"id":872,"kind":"name","name":"oldestCommonPacket"},{"id":873,"kind":"str","value":"sendingTime"}]}]},{"id":882,"kind":"app","opcode":"ilte","args":[{"id":878,"kind":"app","opcode":"field","args":[{"id":876,"kind":"name","name":"packet"},{"id":877,"kind":"str","value":"sendingTime"}]},{"id":881,"kind":"app","opcode":"field","args":[{"id":879,"kind":"name","name":"newestCommonPacket"},{"id":880,"kind":"str","value":"sendingTime"}]}]}]}}]},"depth":1},"903":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"904":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"914":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"915":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"923":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"924":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"932":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"935":{"id":922,"kind":"def","name":"ConsumerWithPotentialMaturations","qualifier":"val","expr":{"id":921,"kind":"app","opcode":"field","args":[{"id":919,"kind":"app","opcode":"nth","args":[{"id":914,"kind":"name","name":"trace"},{"id":918,"kind":"app","opcode":"isub","args":[{"id":916,"kind":"app","opcode":"length","args":[{"id":915,"kind":"name","name":"trace"}]},{"id":917,"kind":"int","value":1}]}]},{"id":920,"kind":"str","value":"consumerChain"}]},"depth":0},"941":{"id":931,"kind":"def","name":"lastTimeAdvancement","qualifier":"val","expr":{"id":930,"kind":"app","opcode":"field","args":[{"id":928,"kind":"app","opcode":"nth","args":[{"id":923,"kind":"name","name":"trace"},{"id":927,"kind":"app","opcode":"isub","args":[{"id":925,"kind":"app","opcode":"length","args":[{"id":924,"kind":"name","name":"trace"}]},{"id":926,"kind":"int","value":1}]}]},{"id":929,"kind":"str","value":"timeAdvancement"}]},"depth":0},"944":{"id":913,"kind":"def","name":"MaturationPrecondition","qualifier":"val","expr":{"id":912,"kind":"app","opcode":"eq","args":[{"id":910,"kind":"app","opcode":"field","args":[{"id":908,"kind":"app","opcode":"nth","args":[{"id":903,"kind":"name","name":"trace"},{"id":907,"kind":"app","opcode":"isub","args":[{"id":905,"kind":"app","opcode":"length","args":[{"id":904,"kind":"name","name":"trace"}]},{"id":906,"kind":"int","value":1}]}]},{"id":909,"kind":"str","value":"kind"}]},{"id":911,"kind":"str","value":"EndAndBeginBlockForConsumer"}]},"depth":0},"945":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"948":{"id":922,"kind":"def","name":"ConsumerWithPotentialMaturations","qualifier":"val","expr":{"id":921,"kind":"app","opcode":"field","args":[{"id":919,"kind":"app","opcode":"nth","args":[{"id":914,"kind":"name","name":"trace"},{"id":918,"kind":"app","opcode":"isub","args":[{"id":916,"kind":"app","opcode":"length","args":[{"id":915,"kind":"name","name":"trace"}]},{"id":917,"kind":"int","value":1}]}]},{"id":920,"kind":"str","value":"consumerChain"}]},"depth":0},"952":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"954":{"id":953,"name":"pair","kind":"param"},"958":{"id":957,"kind":"def","name":"maturationTime","qualifier":"val","expr":{"id":956,"kind":"app","opcode":"item","args":[{"id":954,"kind":"name","name":"pair"},{"id":955,"kind":"int","value":2}]},"depth":1},"959":{"id":943,"kind":"def","name":"lastBlockTime","qualifier":"val","expr":{"id":942,"kind":"app","opcode":"isub","args":[{"id":940,"kind":"app","opcode":"field","args":[{"id":938,"kind":"app","opcode":"field","args":[{"id":936,"kind":"app","opcode":"get","args":[{"id":934,"kind":"app","opcode":"field","args":[{"id":932,"kind":"name","name":"currentState"},{"id":933,"kind":"str","value":"consumerStates"}]},{"id":935,"kind":"name","name":"ConsumerWithPotentialMaturations"}]},{"id":937,"kind":"str","value":"chainState"}]},{"id":939,"kind":"str","value":"lastTimestamp"}]},{"id":941,"kind":"name","name":"lastTimeAdvancement"}]},"depth":0},"966":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"968":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"973":{"id":967,"name":"consumer","kind":"param"},"975":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"977":{"id":976,"kind":"def","name":"sentPackets","qualifier":"val","expr":{"id":975,"kind":"app","opcode":"toSet","args":[{"id":974,"kind":"app","opcode":"get","args":[{"id":972,"kind":"app","opcode":"field","args":[{"id":970,"kind":"app","opcode":"field","args":[{"id":968,"kind":"name","name":"currentState"},{"id":969,"kind":"str","value":"providerState"}]},{"id":971,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":973,"kind":"name","name":"consumer"}]}]},"depth":1},"979":{"id":978,"name":"packet","kind":"param"},"982":{"kind":"const","name":"VscTimeout","typeAnnotation":{"id":2628,"kind":"int"},"id":77,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"984":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"993":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"998":{"id":967,"name":"consumer","kind":"param"},"1000":{"id":2425,"kind":"def","name":"STOPPED","qualifier":"pureval","expr":{"id":2424,"kind":"str","value":"stopped"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1003":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1008":{"id":967,"name":"consumer","kind":"param"},"1010":{"id":2427,"kind":"def","name":"TIMEDOUT","qualifier":"pureval","expr":{"id":2426,"kind":"str","value":"timedout"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1019":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1021":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1026":{"id":1020,"name":"consumer","kind":"param"},"1028":{"id":2429,"kind":"def","name":"RUNNING","qualifier":"pureval","expr":{"id":2428,"kind":"str","value":"running"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1034":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1036":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1041":{"id":1035,"name":"consumer","kind":"param"},"1043":{"id":2425,"kind":"def","name":"STOPPED","qualifier":"pureval","expr":{"id":2424,"kind":"str","value":"stopped"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1049":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1051":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1056":{"id":1050,"name":"consumer","kind":"param"},"1058":{"id":2427,"kind":"def","name":"TIMEDOUT","qualifier":"pureval","expr":{"id":2426,"kind":"str","value":"timedout"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1064":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1066":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1071":{"id":1065,"name":"consumer","kind":"param"},"1080":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"1081":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"1092":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1094":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1097":{"id":1093,"name":"consumer","kind":"param"},"1108":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1110":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1123":{"id":267,"kind":"def","name":"init","qualifier":"action","expr":{"id":266,"kind":"app","opcode":"actionAll","args":[{"id":241,"kind":"let","opdef":{"id":182,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":181,"kind":"name","name":"GetEmptyProviderState"}},"expr":{"id":240,"kind":"let","opdef":{"id":188,"kind":"def","name":"consumerStates","qualifier":"val","expr":{"id":187,"kind":"app","opcode":"mapBy","args":[{"id":183,"kind":"name","name":"ConsumerChains"},{"id":186,"kind":"lambda","params":[{"id":184,"name":"chain"}],"qualifier":"def","expr":{"id":185,"kind":"name","name":"GetEmptyConsumerState"}}]}},"expr":{"id":239,"kind":"let","opdef":{"id":231,"kind":"def","name":"providerStateWithConsumers","qualifier":"val","expr":{"id":230,"kind":"app","opcode":"with","args":[{"id":222,"kind":"app","opcode":"with","args":[{"id":210,"kind":"app","opcode":"with","args":[{"id":203,"kind":"app","opcode":"with","args":[{"id":196,"kind":"app","opcode":"with","args":[{"id":189,"kind":"name","name":"providerState"},{"id":190,"kind":"str","value":"consumerStatus"},{"id":195,"kind":"app","opcode":"mapBy","args":[{"id":191,"kind":"name","name":"ConsumerChains"},{"id":194,"kind":"lambda","params":[{"id":192,"name":"chain"}],"qualifier":"def","expr":{"id":193,"kind":"name","name":"NOT_CONSUMER"}}]}]},{"id":197,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":202,"kind":"app","opcode":"mapBy","args":[{"id":198,"kind":"name","name":"ConsumerChains"},{"id":201,"kind":"lambda","params":[{"id":199,"name":"chain"}],"qualifier":"def","expr":{"id":200,"kind":"app","opcode":"List","args":[]}}]}]},{"id":204,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":209,"kind":"app","opcode":"mapBy","args":[{"id":205,"kind":"name","name":"ConsumerChains"},{"id":208,"kind":"lambda","params":[{"id":206,"name":"chain"}],"qualifier":"def","expr":{"id":207,"kind":"app","opcode":"List","args":[]}}]}]},{"id":211,"kind":"str","value":"chainState"},{"id":221,"kind":"app","opcode":"with","args":[{"id":218,"kind":"app","opcode":"with","args":[{"id":214,"kind":"app","opcode":"field","args":[{"id":212,"kind":"name","name":"providerState"},{"id":213,"kind":"str","value":"chainState"}]},{"id":215,"kind":"str","value":"votingPowerHistory"},{"id":217,"kind":"app","opcode":"List","args":[{"id":216,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":219,"kind":"str","value":"currentValidatorSet"},{"id":220,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":223,"kind":"str","value":"keyAssignedValSetHistory"},{"id":229,"kind":"app","opcode":"mapBy","args":[{"id":224,"kind":"name","name":"ConsumerChains"},{"id":228,"kind":"lambda","params":[{"id":225,"name":"chain"}],"qualifier":"def","expr":{"id":227,"kind":"app","opcode":"List","args":[{"id":226,"kind":"name","name":"InitialValidatorSet"}]}}]}]}},"expr":{"id":238,"kind":"app","opcode":"assign","args":[{"id":237,"kind":"name","name":"currentState"},{"id":236,"kind":"app","opcode":"Rec","args":[{"id":233,"kind":"str","value":"providerState"},{"id":232,"kind":"name","name":"providerStateWithConsumers"},{"id":235,"kind":"str","value":"consumerStates"},{"id":234,"kind":"name","name":"consumerStates"}]}]}}}},{"id":248,"kind":"app","opcode":"assign","args":[{"id":247,"kind":"name","name":"trace"},{"id":246,"kind":"app","opcode":"List","args":[{"id":245,"kind":"app","opcode":"with","args":[{"id":242,"kind":"name","name":"emptyAction"},{"id":243,"kind":"str","value":"kind"},{"id":244,"kind":"str","value":"init"}]}]}]},{"id":265,"kind":"app","opcode":"assign","args":[{"id":264,"kind":"name","name":"params"},{"id":263,"kind":"app","opcode":"Rec","args":[{"id":250,"kind":"str","value":"VscTimeout"},{"id":249,"kind":"name","name":"VscTimeout"},{"id":252,"kind":"str","value":"CcvTimeout"},{"id":251,"kind":"name","name":"CcvTimeout"},{"id":254,"kind":"str","value":"UnbondingPeriodPerChain"},{"id":253,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":256,"kind":"str","value":"ConsumerChains"},{"id":255,"kind":"name","name":"ConsumerChains"},{"id":258,"kind":"str","value":"Nodes"},{"id":257,"kind":"name","name":"nodes"},{"id":260,"kind":"str","value":"InitialValidatorSet"},{"id":259,"kind":"name","name":"InitialValidatorSet"},{"id":262,"kind":"str","value":"TrustingPeriodPerChain"},{"id":261,"kind":"name","name":"TrustingPeriodPerChain"}]}]}]},"depth":0},"1124":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1130":{"id":2431,"kind":"def","name":"NOT_CONSUMER","qualifier":"pureval","expr":{"id":2430,"kind":"str","value":"not consumer"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1133":{"id":2431,"kind":"def","name":"NOT_CONSUMER","qualifier":"pureval","expr":{"id":2430,"kind":"str","value":"not consumer"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1136":{"id":2431,"kind":"def","name":"NOT_CONSUMER","qualifier":"pureval","expr":{"id":2430,"kind":"str","value":"not consumer"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1141":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1158":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1175":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1179":{"id":11,"kind":"def","name":"consumerChains","qualifier":"pureval","expr":{"id":10,"kind":"app","opcode":"toSet","args":[{"id":9,"kind":"name","name":"consumerChainList"}]},"depth":0},"1182":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1189":{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]},"depth":0},"1193":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1200":{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]},"depth":0},"1203":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1214":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1226":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"1229":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1236":{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]},"depth":0},"1243":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1248":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1251":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1258":{"id":2429,"kind":"def","name":"RUNNING","qualifier":"pureval","expr":{"id":2428,"kind":"str","value":"running"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1261":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1272":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1279":{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]},"depth":0},"1283":{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]},"depth":0},"1289":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"1291":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1295":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1298":{"id":348,"kind":"def","name":"DeliverVscPacket","qualifier":"action","expr":{"id":347,"kind":"lambda","params":[{"id":309,"name":"receiver"}],"qualifier":"action","expr":{"id":345,"kind":"let","opdef":{"id":315,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":314,"kind":"app","opcode":"deliverPacketToConsumer","args":[{"id":312,"kind":"name","name":"currentState"},{"id":313,"kind":"name","name":"receiver"}]}},"expr":{"id":344,"kind":"let","opdef":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]}},"expr":{"id":343,"kind":"app","opcode":"actionAll","args":[{"id":323,"kind":"app","opcode":"eq","args":[{"id":321,"kind":"app","opcode":"hasError","args":[{"id":320,"kind":"name","name":"result"}]},{"id":322,"kind":"bool","value":false}]},{"id":328,"kind":"app","opcode":"assign","args":[{"id":327,"kind":"name","name":"currentState"},{"id":326,"kind":"app","opcode":"field","args":[{"id":324,"kind":"name","name":"result"},{"id":325,"kind":"str","value":"newState"}]}]},{"id":339,"kind":"app","opcode":"assign","args":[{"id":338,"kind":"name","name":"trace"},{"id":337,"kind":"app","opcode":"append","args":[{"id":329,"kind":"name","name":"trace"},{"id":336,"kind":"app","opcode":"with","args":[{"id":333,"kind":"app","opcode":"with","args":[{"id":330,"kind":"name","name":"emptyAction"},{"id":331,"kind":"str","value":"kind"},{"id":332,"kind":"str","value":"DeliverVscPacket"}]},{"id":334,"kind":"str","value":"consumerChain"},{"id":335,"kind":"name","name":"receiver"}]}]}]},{"id":342,"kind":"app","opcode":"assign","args":[{"id":341,"kind":"name","name":"params"},{"id":340,"kind":"name","name":"params"}]}]}}}},"depth":0},"1302":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1313":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1324":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1333":{"id":74,"kind":"def","name":"InitialValidatorSet","qualifier":"pureval","expr":{"id":73,"kind":"app","opcode":"mapBy","args":[{"id":69,"kind":"name","name":"nodes"},{"id":72,"kind":"lambda","params":[{"id":70,"name":"node"}],"qualifier":"def","expr":{"id":71,"kind":"int","value":100}}]},"depth":0},"1341":{"kind":"const","name":"UnbondingPeriodPerChain","typeAnnotation":{"id":2626,"kind":"fun","arg":{"id":2624,"kind":"const","name":"Chain"},"res":{"id":2625,"kind":"int"}},"id":79,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1348":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1350":{"kind":"const","name":"UnbondingPeriodPerChain","typeAnnotation":{"id":2626,"kind":"fun","arg":{"id":2624,"kind":"const","name":"Chain"},"res":{"id":2625,"kind":"int"}},"id":79,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1355":{"id":478,"kind":"def","name":"EndAndBeginBlockForConsumer","qualifier":"action","expr":{"id":477,"kind":"lambda","params":[{"id":438,"name":"chain"},{"id":440,"name":"timeAdvancement"}],"qualifier":"action","expr":{"id":475,"kind":"let","opdef":{"id":447,"kind":"def","name":"result","qualifier":"val","expr":{"id":446,"kind":"app","opcode":"endAndBeginBlockForConsumer","args":[{"id":443,"kind":"name","name":"currentState"},{"id":444,"kind":"name","name":"chain"},{"id":445,"kind":"name","name":"timeAdvancement"}]}},"expr":{"id":474,"kind":"app","opcode":"actionAll","args":[{"id":451,"kind":"app","opcode":"eq","args":[{"id":449,"kind":"app","opcode":"hasError","args":[{"id":448,"kind":"name","name":"result"}]},{"id":450,"kind":"bool","value":false}]},{"id":456,"kind":"app","opcode":"assign","args":[{"id":455,"kind":"name","name":"currentState"},{"id":454,"kind":"app","opcode":"field","args":[{"id":452,"kind":"name","name":"result"},{"id":453,"kind":"str","value":"newState"}]}]},{"id":470,"kind":"app","opcode":"assign","args":[{"id":469,"kind":"name","name":"trace"},{"id":468,"kind":"app","opcode":"append","args":[{"id":457,"kind":"name","name":"trace"},{"id":467,"kind":"app","opcode":"with","args":[{"id":464,"kind":"app","opcode":"with","args":[{"id":461,"kind":"app","opcode":"with","args":[{"id":458,"kind":"name","name":"emptyAction"},{"id":459,"kind":"str","value":"kind"},{"id":460,"kind":"str","value":"EndAndBeginBlockForConsumer"}]},{"id":462,"kind":"str","value":"consumerChain"},{"id":463,"kind":"name","name":"chain"}]},{"id":465,"kind":"str","value":"timeAdvancement"},{"id":466,"kind":"name","name":"timeAdvancement"}]}]}]},{"id":473,"kind":"app","opcode":"assign","args":[{"id":472,"kind":"name","name":"params"},{"id":471,"kind":"name","name":"params"}]}]}}},"depth":0},"1361":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1372":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1385":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1387":{"id":478,"kind":"def","name":"EndAndBeginBlockForConsumer","qualifier":"action","expr":{"id":477,"kind":"lambda","params":[{"id":438,"name":"chain"},{"id":440,"name":"timeAdvancement"}],"qualifier":"action","expr":{"id":475,"kind":"let","opdef":{"id":447,"kind":"def","name":"result","qualifier":"val","expr":{"id":446,"kind":"app","opcode":"endAndBeginBlockForConsumer","args":[{"id":443,"kind":"name","name":"currentState"},{"id":444,"kind":"name","name":"chain"},{"id":445,"kind":"name","name":"timeAdvancement"}]}},"expr":{"id":474,"kind":"app","opcode":"actionAll","args":[{"id":451,"kind":"app","opcode":"eq","args":[{"id":449,"kind":"app","opcode":"hasError","args":[{"id":448,"kind":"name","name":"result"}]},{"id":450,"kind":"bool","value":false}]},{"id":456,"kind":"app","opcode":"assign","args":[{"id":455,"kind":"name","name":"currentState"},{"id":454,"kind":"app","opcode":"field","args":[{"id":452,"kind":"name","name":"result"},{"id":453,"kind":"str","value":"newState"}]}]},{"id":470,"kind":"app","opcode":"assign","args":[{"id":469,"kind":"name","name":"trace"},{"id":468,"kind":"app","opcode":"append","args":[{"id":457,"kind":"name","name":"trace"},{"id":467,"kind":"app","opcode":"with","args":[{"id":464,"kind":"app","opcode":"with","args":[{"id":461,"kind":"app","opcode":"with","args":[{"id":458,"kind":"name","name":"emptyAction"},{"id":459,"kind":"str","value":"kind"},{"id":460,"kind":"str","value":"EndAndBeginBlockForConsumer"}]},{"id":462,"kind":"str","value":"consumerChain"},{"id":463,"kind":"name","name":"chain"}]},{"id":465,"kind":"str","value":"timeAdvancement"},{"id":466,"kind":"name","name":"timeAdvancement"}]}]}]},{"id":473,"kind":"app","opcode":"assign","args":[{"id":472,"kind":"name","name":"params"},{"id":471,"kind":"name","name":"params"}]}]}}},"depth":0},"1390":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1401":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1413":{"id":388,"kind":"def","name":"DeliverVscMaturedPacket","qualifier":"action","expr":{"id":387,"kind":"lambda","params":[{"id":349,"name":"sender"}],"qualifier":"action","expr":{"id":385,"kind":"let","opdef":{"id":355,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":354,"kind":"app","opcode":"deliverPacketToProvider","args":[{"id":352,"kind":"name","name":"currentState"},{"id":353,"kind":"name","name":"sender"}]}},"expr":{"id":384,"kind":"let","opdef":{"id":359,"kind":"def","name":"result","qualifier":"val","expr":{"id":358,"kind":"app","opcode":"item","args":[{"id":356,"kind":"name","name":"resultAndTimeout"},{"id":357,"kind":"int","value":1}]}},"expr":{"id":383,"kind":"app","opcode":"actionAll","args":[{"id":363,"kind":"app","opcode":"eq","args":[{"id":361,"kind":"app","opcode":"hasError","args":[{"id":360,"kind":"name","name":"result"}]},{"id":362,"kind":"bool","value":false}]},{"id":368,"kind":"app","opcode":"assign","args":[{"id":367,"kind":"name","name":"currentState"},{"id":366,"kind":"app","opcode":"field","args":[{"id":364,"kind":"name","name":"result"},{"id":365,"kind":"str","value":"newState"}]}]},{"id":379,"kind":"app","opcode":"assign","args":[{"id":378,"kind":"name","name":"trace"},{"id":377,"kind":"app","opcode":"append","args":[{"id":369,"kind":"name","name":"trace"},{"id":376,"kind":"app","opcode":"with","args":[{"id":373,"kind":"app","opcode":"with","args":[{"id":370,"kind":"name","name":"emptyAction"},{"id":371,"kind":"str","value":"kind"},{"id":372,"kind":"str","value":"DeliverVscMaturedPacket"}]},{"id":374,"kind":"str","value":"consumerChain"},{"id":375,"kind":"name","name":"sender"}]}]}]},{"id":382,"kind":"app","opcode":"assign","args":[{"id":381,"kind":"name","name":"params"},{"id":380,"kind":"name","name":"params"}]}]}}}},"depth":0},"1416":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1425":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1438":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"1442":{"id":267,"kind":"def","name":"init","qualifier":"action","expr":{"id":266,"kind":"app","opcode":"actionAll","args":[{"id":241,"kind":"let","opdef":{"id":182,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":181,"kind":"name","name":"GetEmptyProviderState"}},"expr":{"id":240,"kind":"let","opdef":{"id":188,"kind":"def","name":"consumerStates","qualifier":"val","expr":{"id":187,"kind":"app","opcode":"mapBy","args":[{"id":183,"kind":"name","name":"ConsumerChains"},{"id":186,"kind":"lambda","params":[{"id":184,"name":"chain"}],"qualifier":"def","expr":{"id":185,"kind":"name","name":"GetEmptyConsumerState"}}]}},"expr":{"id":239,"kind":"let","opdef":{"id":231,"kind":"def","name":"providerStateWithConsumers","qualifier":"val","expr":{"id":230,"kind":"app","opcode":"with","args":[{"id":222,"kind":"app","opcode":"with","args":[{"id":210,"kind":"app","opcode":"with","args":[{"id":203,"kind":"app","opcode":"with","args":[{"id":196,"kind":"app","opcode":"with","args":[{"id":189,"kind":"name","name":"providerState"},{"id":190,"kind":"str","value":"consumerStatus"},{"id":195,"kind":"app","opcode":"mapBy","args":[{"id":191,"kind":"name","name":"ConsumerChains"},{"id":194,"kind":"lambda","params":[{"id":192,"name":"chain"}],"qualifier":"def","expr":{"id":193,"kind":"name","name":"NOT_CONSUMER"}}]}]},{"id":197,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":202,"kind":"app","opcode":"mapBy","args":[{"id":198,"kind":"name","name":"ConsumerChains"},{"id":201,"kind":"lambda","params":[{"id":199,"name":"chain"}],"qualifier":"def","expr":{"id":200,"kind":"app","opcode":"List","args":[]}}]}]},{"id":204,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":209,"kind":"app","opcode":"mapBy","args":[{"id":205,"kind":"name","name":"ConsumerChains"},{"id":208,"kind":"lambda","params":[{"id":206,"name":"chain"}],"qualifier":"def","expr":{"id":207,"kind":"app","opcode":"List","args":[]}}]}]},{"id":211,"kind":"str","value":"chainState"},{"id":221,"kind":"app","opcode":"with","args":[{"id":218,"kind":"app","opcode":"with","args":[{"id":214,"kind":"app","opcode":"field","args":[{"id":212,"kind":"name","name":"providerState"},{"id":213,"kind":"str","value":"chainState"}]},{"id":215,"kind":"str","value":"votingPowerHistory"},{"id":217,"kind":"app","opcode":"List","args":[{"id":216,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":219,"kind":"str","value":"currentValidatorSet"},{"id":220,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":223,"kind":"str","value":"keyAssignedValSetHistory"},{"id":229,"kind":"app","opcode":"mapBy","args":[{"id":224,"kind":"name","name":"ConsumerChains"},{"id":228,"kind":"lambda","params":[{"id":225,"name":"chain"}],"qualifier":"def","expr":{"id":227,"kind":"app","opcode":"List","args":[{"id":226,"kind":"name","name":"InitialValidatorSet"}]}}]}]}},"expr":{"id":238,"kind":"app","opcode":"assign","args":[{"id":237,"kind":"name","name":"currentState"},{"id":236,"kind":"app","opcode":"Rec","args":[{"id":233,"kind":"str","value":"providerState"},{"id":232,"kind":"name","name":"providerStateWithConsumers"},{"id":235,"kind":"str","value":"consumerStates"},{"id":234,"kind":"name","name":"consumerStates"}]}]}}}},{"id":248,"kind":"app","opcode":"assign","args":[{"id":247,"kind":"name","name":"trace"},{"id":246,"kind":"app","opcode":"List","args":[{"id":245,"kind":"app","opcode":"with","args":[{"id":242,"kind":"name","name":"emptyAction"},{"id":243,"kind":"str","value":"kind"},{"id":244,"kind":"str","value":"init"}]}]}]},{"id":265,"kind":"app","opcode":"assign","args":[{"id":264,"kind":"name","name":"params"},{"id":263,"kind":"app","opcode":"Rec","args":[{"id":250,"kind":"str","value":"VscTimeout"},{"id":249,"kind":"name","name":"VscTimeout"},{"id":252,"kind":"str","value":"CcvTimeout"},{"id":251,"kind":"name","name":"CcvTimeout"},{"id":254,"kind":"str","value":"UnbondingPeriodPerChain"},{"id":253,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":256,"kind":"str","value":"ConsumerChains"},{"id":255,"kind":"name","name":"ConsumerChains"},{"id":258,"kind":"str","value":"Nodes"},{"id":257,"kind":"name","name":"nodes"},{"id":260,"kind":"str","value":"InitialValidatorSet"},{"id":259,"kind":"name","name":"InitialValidatorSet"},{"id":262,"kind":"str","value":"TrustingPeriodPerChain"},{"id":261,"kind":"name","name":"TrustingPeriodPerChain"}]}]}]},"depth":0},"1444":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1450":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1454":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"1457":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1461":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1464":{"id":348,"kind":"def","name":"DeliverVscPacket","qualifier":"action","expr":{"id":347,"kind":"lambda","params":[{"id":309,"name":"receiver"}],"qualifier":"action","expr":{"id":345,"kind":"let","opdef":{"id":315,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":314,"kind":"app","opcode":"deliverPacketToConsumer","args":[{"id":312,"kind":"name","name":"currentState"},{"id":313,"kind":"name","name":"receiver"}]}},"expr":{"id":344,"kind":"let","opdef":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]}},"expr":{"id":343,"kind":"app","opcode":"actionAll","args":[{"id":323,"kind":"app","opcode":"eq","args":[{"id":321,"kind":"app","opcode":"hasError","args":[{"id":320,"kind":"name","name":"result"}]},{"id":322,"kind":"bool","value":false}]},{"id":328,"kind":"app","opcode":"assign","args":[{"id":327,"kind":"name","name":"currentState"},{"id":326,"kind":"app","opcode":"field","args":[{"id":324,"kind":"name","name":"result"},{"id":325,"kind":"str","value":"newState"}]}]},{"id":339,"kind":"app","opcode":"assign","args":[{"id":338,"kind":"name","name":"trace"},{"id":337,"kind":"app","opcode":"append","args":[{"id":329,"kind":"name","name":"trace"},{"id":336,"kind":"app","opcode":"with","args":[{"id":333,"kind":"app","opcode":"with","args":[{"id":330,"kind":"name","name":"emptyAction"},{"id":331,"kind":"str","value":"kind"},{"id":332,"kind":"str","value":"DeliverVscPacket"}]},{"id":334,"kind":"str","value":"consumerChain"},{"id":335,"kind":"name","name":"receiver"}]}]}]},{"id":342,"kind":"app","opcode":"assign","args":[{"id":341,"kind":"name","name":"params"},{"id":340,"kind":"name","name":"params"}]}]}}}},"depth":0},"1467":{"id":348,"kind":"def","name":"DeliverVscPacket","qualifier":"action","expr":{"id":347,"kind":"lambda","params":[{"id":309,"name":"receiver"}],"qualifier":"action","expr":{"id":345,"kind":"let","opdef":{"id":315,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":314,"kind":"app","opcode":"deliverPacketToConsumer","args":[{"id":312,"kind":"name","name":"currentState"},{"id":313,"kind":"name","name":"receiver"}]}},"expr":{"id":344,"kind":"let","opdef":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]}},"expr":{"id":343,"kind":"app","opcode":"actionAll","args":[{"id":323,"kind":"app","opcode":"eq","args":[{"id":321,"kind":"app","opcode":"hasError","args":[{"id":320,"kind":"name","name":"result"}]},{"id":322,"kind":"bool","value":false}]},{"id":328,"kind":"app","opcode":"assign","args":[{"id":327,"kind":"name","name":"currentState"},{"id":326,"kind":"app","opcode":"field","args":[{"id":324,"kind":"name","name":"result"},{"id":325,"kind":"str","value":"newState"}]}]},{"id":339,"kind":"app","opcode":"assign","args":[{"id":338,"kind":"name","name":"trace"},{"id":337,"kind":"app","opcode":"append","args":[{"id":329,"kind":"name","name":"trace"},{"id":336,"kind":"app","opcode":"with","args":[{"id":333,"kind":"app","opcode":"with","args":[{"id":330,"kind":"name","name":"emptyAction"},{"id":331,"kind":"str","value":"kind"},{"id":332,"kind":"str","value":"DeliverVscPacket"}]},{"id":334,"kind":"str","value":"consumerChain"},{"id":335,"kind":"name","name":"receiver"}]}]}]},{"id":342,"kind":"app","opcode":"assign","args":[{"id":341,"kind":"name","name":"params"},{"id":340,"kind":"name","name":"params"}]}]}}}},"depth":0},"1470":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1475":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1479":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"1482":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1486":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1489":{"id":348,"kind":"def","name":"DeliverVscPacket","qualifier":"action","expr":{"id":347,"kind":"lambda","params":[{"id":309,"name":"receiver"}],"qualifier":"action","expr":{"id":345,"kind":"let","opdef":{"id":315,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":314,"kind":"app","opcode":"deliverPacketToConsumer","args":[{"id":312,"kind":"name","name":"currentState"},{"id":313,"kind":"name","name":"receiver"}]}},"expr":{"id":344,"kind":"let","opdef":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]}},"expr":{"id":343,"kind":"app","opcode":"actionAll","args":[{"id":323,"kind":"app","opcode":"eq","args":[{"id":321,"kind":"app","opcode":"hasError","args":[{"id":320,"kind":"name","name":"result"}]},{"id":322,"kind":"bool","value":false}]},{"id":328,"kind":"app","opcode":"assign","args":[{"id":327,"kind":"name","name":"currentState"},{"id":326,"kind":"app","opcode":"field","args":[{"id":324,"kind":"name","name":"result"},{"id":325,"kind":"str","value":"newState"}]}]},{"id":339,"kind":"app","opcode":"assign","args":[{"id":338,"kind":"name","name":"trace"},{"id":337,"kind":"app","opcode":"append","args":[{"id":329,"kind":"name","name":"trace"},{"id":336,"kind":"app","opcode":"with","args":[{"id":333,"kind":"app","opcode":"with","args":[{"id":330,"kind":"name","name":"emptyAction"},{"id":331,"kind":"str","value":"kind"},{"id":332,"kind":"str","value":"DeliverVscPacket"}]},{"id":334,"kind":"str","value":"consumerChain"},{"id":335,"kind":"name","name":"receiver"}]}]}]},{"id":342,"kind":"app","opcode":"assign","args":[{"id":341,"kind":"name","name":"params"},{"id":340,"kind":"name","name":"params"}]}]}}}},"depth":0},"1492":{"id":348,"kind":"def","name":"DeliverVscPacket","qualifier":"action","expr":{"id":347,"kind":"lambda","params":[{"id":309,"name":"receiver"}],"qualifier":"action","expr":{"id":345,"kind":"let","opdef":{"id":315,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":314,"kind":"app","opcode":"deliverPacketToConsumer","args":[{"id":312,"kind":"name","name":"currentState"},{"id":313,"kind":"name","name":"receiver"}]}},"expr":{"id":344,"kind":"let","opdef":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]}},"expr":{"id":343,"kind":"app","opcode":"actionAll","args":[{"id":323,"kind":"app","opcode":"eq","args":[{"id":321,"kind":"app","opcode":"hasError","args":[{"id":320,"kind":"name","name":"result"}]},{"id":322,"kind":"bool","value":false}]},{"id":328,"kind":"app","opcode":"assign","args":[{"id":327,"kind":"name","name":"currentState"},{"id":326,"kind":"app","opcode":"field","args":[{"id":324,"kind":"name","name":"result"},{"id":325,"kind":"str","value":"newState"}]}]},{"id":339,"kind":"app","opcode":"assign","args":[{"id":338,"kind":"name","name":"trace"},{"id":337,"kind":"app","opcode":"append","args":[{"id":329,"kind":"name","name":"trace"},{"id":336,"kind":"app","opcode":"with","args":[{"id":333,"kind":"app","opcode":"with","args":[{"id":330,"kind":"name","name":"emptyAction"},{"id":331,"kind":"str","value":"kind"},{"id":332,"kind":"str","value":"DeliverVscPacket"}]},{"id":334,"kind":"str","value":"consumerChain"},{"id":335,"kind":"name","name":"receiver"}]}]}]},{"id":342,"kind":"app","opcode":"assign","args":[{"id":341,"kind":"name","name":"params"},{"id":340,"kind":"name","name":"params"}]}]}}}},"depth":0},"1495":{"id":348,"kind":"def","name":"DeliverVscPacket","qualifier":"action","expr":{"id":347,"kind":"lambda","params":[{"id":309,"name":"receiver"}],"qualifier":"action","expr":{"id":345,"kind":"let","opdef":{"id":315,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":314,"kind":"app","opcode":"deliverPacketToConsumer","args":[{"id":312,"kind":"name","name":"currentState"},{"id":313,"kind":"name","name":"receiver"}]}},"expr":{"id":344,"kind":"let","opdef":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]}},"expr":{"id":343,"kind":"app","opcode":"actionAll","args":[{"id":323,"kind":"app","opcode":"eq","args":[{"id":321,"kind":"app","opcode":"hasError","args":[{"id":320,"kind":"name","name":"result"}]},{"id":322,"kind":"bool","value":false}]},{"id":328,"kind":"app","opcode":"assign","args":[{"id":327,"kind":"name","name":"currentState"},{"id":326,"kind":"app","opcode":"field","args":[{"id":324,"kind":"name","name":"result"},{"id":325,"kind":"str","value":"newState"}]}]},{"id":339,"kind":"app","opcode":"assign","args":[{"id":338,"kind":"name","name":"trace"},{"id":337,"kind":"app","opcode":"append","args":[{"id":329,"kind":"name","name":"trace"},{"id":336,"kind":"app","opcode":"with","args":[{"id":333,"kind":"app","opcode":"with","args":[{"id":330,"kind":"name","name":"emptyAction"},{"id":331,"kind":"str","value":"kind"},{"id":332,"kind":"str","value":"DeliverVscPacket"}]},{"id":334,"kind":"str","value":"consumerChain"},{"id":335,"kind":"name","name":"receiver"}]}]}]},{"id":342,"kind":"app","opcode":"assign","args":[{"id":341,"kind":"name","name":"params"},{"id":340,"kind":"name","name":"params"}]}]}}}},"depth":0},"1497":{"id":902,"kind":"def","name":"SameVscPacketsInv","qualifier":"val","expr":{"id":901,"kind":"app","opcode":"forall","args":[{"id":810,"kind":"name","name":"runningConsumers"},{"id":900,"kind":"lambda","params":[{"id":811,"name":"consumer1"}],"qualifier":"def","expr":{"id":899,"kind":"app","opcode":"forall","args":[{"id":812,"kind":"name","name":"runningConsumers"},{"id":898,"kind":"lambda","params":[{"id":813,"name":"consumer2"}],"qualifier":"def","expr":{"id":897,"kind":"let","opdef":{"id":821,"kind":"def","name":"packets1","qualifier":"val","expr":{"id":820,"kind":"app","opcode":"field","args":[{"id":818,"kind":"app","opcode":"get","args":[{"id":816,"kind":"app","opcode":"field","args":[{"id":814,"kind":"name","name":"currentState"},{"id":815,"kind":"str","value":"consumerStates"}]},{"id":817,"kind":"name","name":"consumer1"}]},{"id":819,"kind":"str","value":"receivedVscPackets"}]}},"expr":{"id":896,"kind":"let","opdef":{"id":829,"kind":"def","name":"packets2","qualifier":"val","expr":{"id":828,"kind":"app","opcode":"field","args":[{"id":826,"kind":"app","opcode":"get","args":[{"id":824,"kind":"app","opcode":"field","args":[{"id":822,"kind":"name","name":"currentState"},{"id":823,"kind":"str","value":"consumerStates"}]},{"id":825,"kind":"name","name":"consumer2"}]},{"id":827,"kind":"str","value":"receivedVscPackets"}]}},"expr":{"id":895,"kind":"let","opdef":{"id":835,"kind":"def","name":"commonPackets","qualifier":"val","expr":{"id":834,"kind":"app","opcode":"intersect","args":[{"id":831,"kind":"app","opcode":"toSet","args":[{"id":830,"kind":"name","name":"packets1"}]},{"id":833,"kind":"app","opcode":"toSet","args":[{"id":832,"kind":"name","name":"packets2"}]}]}},"expr":{"id":894,"kind":"app","opcode":"ite","args":[{"id":839,"kind":"app","opcode":"eq","args":[{"id":837,"kind":"app","opcode":"size","args":[{"id":836,"kind":"name","name":"commonPackets"}]},{"id":838,"kind":"int","value":0}]},{"id":840,"kind":"bool","value":true},{"id":893,"kind":"let","opdef":{"id":843,"kind":"def","name":"newestCommonPacket","qualifier":"val","expr":{"id":842,"kind":"app","opcode":"newest","args":[{"id":841,"kind":"name","name":"commonPackets"}]}},"expr":{"id":892,"kind":"let","opdef":{"id":846,"kind":"def","name":"oldestCommonPacket","qualifier":"val","expr":{"id":845,"kind":"app","opcode":"oldest","args":[{"id":844,"kind":"name","name":"commonPackets"}]}},"expr":{"id":891,"kind":"let","opdef":{"id":866,"kind":"def","name":"packetsBetween1","qualifier":"val","expr":{"id":865,"kind":"app","opcode":"select","args":[{"id":847,"kind":"name","name":"packets1"},{"id":864,"kind":"lambda","params":[{"id":848,"name":"packet"}],"qualifier":"def","expr":{"id":863,"kind":"app","opcode":"and","args":[{"id":855,"kind":"app","opcode":"igte","args":[{"id":851,"kind":"app","opcode":"field","args":[{"id":849,"kind":"name","name":"packet"},{"id":850,"kind":"str","value":"sendingTime"}]},{"id":854,"kind":"app","opcode":"field","args":[{"id":852,"kind":"name","name":"oldestCommonPacket"},{"id":853,"kind":"str","value":"sendingTime"}]}]},{"id":862,"kind":"app","opcode":"ilte","args":[{"id":858,"kind":"app","opcode":"field","args":[{"id":856,"kind":"name","name":"packet"},{"id":857,"kind":"str","value":"sendingTime"}]},{"id":861,"kind":"app","opcode":"field","args":[{"id":859,"kind":"name","name":"newestCommonPacket"},{"id":860,"kind":"str","value":"sendingTime"}]}]}]}}]}},"expr":{"id":890,"kind":"let","opdef":{"id":886,"kind":"def","name":"packetsBetween2","qualifier":"val","expr":{"id":885,"kind":"app","opcode":"select","args":[{"id":867,"kind":"name","name":"packets2"},{"id":884,"kind":"lambda","params":[{"id":868,"name":"packet"}],"qualifier":"def","expr":{"id":883,"kind":"app","opcode":"and","args":[{"id":875,"kind":"app","opcode":"igte","args":[{"id":871,"kind":"app","opcode":"field","args":[{"id":869,"kind":"name","name":"packet"},{"id":870,"kind":"str","value":"sendingTime"}]},{"id":874,"kind":"app","opcode":"field","args":[{"id":872,"kind":"name","name":"oldestCommonPacket"},{"id":873,"kind":"str","value":"sendingTime"}]}]},{"id":882,"kind":"app","opcode":"ilte","args":[{"id":878,"kind":"app","opcode":"field","args":[{"id":876,"kind":"name","name":"packet"},{"id":877,"kind":"str","value":"sendingTime"}]},{"id":881,"kind":"app","opcode":"field","args":[{"id":879,"kind":"name","name":"newestCommonPacket"},{"id":880,"kind":"str","value":"sendingTime"}]}]}]}}]}},"expr":{"id":889,"kind":"app","opcode":"eq","args":[{"id":887,"kind":"name","name":"packetsBetween1"},{"id":888,"kind":"name","name":"packetsBetween2"}]}}}}}]}}}}}]}}]},"depth":0},"1501":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"1505":{"id":267,"kind":"def","name":"init","qualifier":"action","expr":{"id":266,"kind":"app","opcode":"actionAll","args":[{"id":241,"kind":"let","opdef":{"id":182,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":181,"kind":"name","name":"GetEmptyProviderState"}},"expr":{"id":240,"kind":"let","opdef":{"id":188,"kind":"def","name":"consumerStates","qualifier":"val","expr":{"id":187,"kind":"app","opcode":"mapBy","args":[{"id":183,"kind":"name","name":"ConsumerChains"},{"id":186,"kind":"lambda","params":[{"id":184,"name":"chain"}],"qualifier":"def","expr":{"id":185,"kind":"name","name":"GetEmptyConsumerState"}}]}},"expr":{"id":239,"kind":"let","opdef":{"id":231,"kind":"def","name":"providerStateWithConsumers","qualifier":"val","expr":{"id":230,"kind":"app","opcode":"with","args":[{"id":222,"kind":"app","opcode":"with","args":[{"id":210,"kind":"app","opcode":"with","args":[{"id":203,"kind":"app","opcode":"with","args":[{"id":196,"kind":"app","opcode":"with","args":[{"id":189,"kind":"name","name":"providerState"},{"id":190,"kind":"str","value":"consumerStatus"},{"id":195,"kind":"app","opcode":"mapBy","args":[{"id":191,"kind":"name","name":"ConsumerChains"},{"id":194,"kind":"lambda","params":[{"id":192,"name":"chain"}],"qualifier":"def","expr":{"id":193,"kind":"name","name":"NOT_CONSUMER"}}]}]},{"id":197,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":202,"kind":"app","opcode":"mapBy","args":[{"id":198,"kind":"name","name":"ConsumerChains"},{"id":201,"kind":"lambda","params":[{"id":199,"name":"chain"}],"qualifier":"def","expr":{"id":200,"kind":"app","opcode":"List","args":[]}}]}]},{"id":204,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":209,"kind":"app","opcode":"mapBy","args":[{"id":205,"kind":"name","name":"ConsumerChains"},{"id":208,"kind":"lambda","params":[{"id":206,"name":"chain"}],"qualifier":"def","expr":{"id":207,"kind":"app","opcode":"List","args":[]}}]}]},{"id":211,"kind":"str","value":"chainState"},{"id":221,"kind":"app","opcode":"with","args":[{"id":218,"kind":"app","opcode":"with","args":[{"id":214,"kind":"app","opcode":"field","args":[{"id":212,"kind":"name","name":"providerState"},{"id":213,"kind":"str","value":"chainState"}]},{"id":215,"kind":"str","value":"votingPowerHistory"},{"id":217,"kind":"app","opcode":"List","args":[{"id":216,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":219,"kind":"str","value":"currentValidatorSet"},{"id":220,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":223,"kind":"str","value":"keyAssignedValSetHistory"},{"id":229,"kind":"app","opcode":"mapBy","args":[{"id":224,"kind":"name","name":"ConsumerChains"},{"id":228,"kind":"lambda","params":[{"id":225,"name":"chain"}],"qualifier":"def","expr":{"id":227,"kind":"app","opcode":"List","args":[{"id":226,"kind":"name","name":"InitialValidatorSet"}]}}]}]}},"expr":{"id":238,"kind":"app","opcode":"assign","args":[{"id":237,"kind":"name","name":"currentState"},{"id":236,"kind":"app","opcode":"Rec","args":[{"id":233,"kind":"str","value":"providerState"},{"id":232,"kind":"name","name":"providerStateWithConsumers"},{"id":235,"kind":"str","value":"consumerStates"},{"id":234,"kind":"name","name":"consumerStates"}]}]}}}},{"id":248,"kind":"app","opcode":"assign","args":[{"id":247,"kind":"name","name":"trace"},{"id":246,"kind":"app","opcode":"List","args":[{"id":245,"kind":"app","opcode":"with","args":[{"id":242,"kind":"name","name":"emptyAction"},{"id":243,"kind":"str","value":"kind"},{"id":244,"kind":"str","value":"init"}]}]}]},{"id":265,"kind":"app","opcode":"assign","args":[{"id":264,"kind":"name","name":"params"},{"id":263,"kind":"app","opcode":"Rec","args":[{"id":250,"kind":"str","value":"VscTimeout"},{"id":249,"kind":"name","name":"VscTimeout"},{"id":252,"kind":"str","value":"CcvTimeout"},{"id":251,"kind":"name","name":"CcvTimeout"},{"id":254,"kind":"str","value":"UnbondingPeriodPerChain"},{"id":253,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":256,"kind":"str","value":"ConsumerChains"},{"id":255,"kind":"name","name":"ConsumerChains"},{"id":258,"kind":"str","value":"Nodes"},{"id":257,"kind":"name","name":"nodes"},{"id":260,"kind":"str","value":"InitialValidatorSet"},{"id":259,"kind":"name","name":"InitialValidatorSet"},{"id":262,"kind":"str","value":"TrustingPeriodPerChain"},{"id":261,"kind":"name","name":"TrustingPeriodPerChain"}]}]}]},"depth":0},"1507":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1509":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1511":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1515":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"1518":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1522":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1524":{"kind":"const","name":"VscTimeout","typeAnnotation":{"id":2628,"kind":"int"},"id":77,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1526":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1531":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1534":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"1538":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"1540":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":80,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1542":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1547":{"id":1541,"name":"chain","kind":"param"},"1549":{"id":2427,"kind":"def","name":"TIMEDOUT","qualifier":"pureval","expr":{"id":2426,"kind":"str","value":"timedout"},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1556":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"1560":{"id":560,"kind":"def","name":"step","qualifier":"action","expr":{"id":559,"kind":"app","opcode":"actionAny","args":[{"id":532,"kind":"app","opcode":"actionAll","args":[{"id":520,"kind":"app","opcode":"igt","args":[{"id":518,"kind":"app","opcode":"size","args":[{"id":517,"kind":"name","name":"runningConsumers"}]},{"id":519,"kind":"int","value":0}]},{"id":531,"kind":"let","opdef":{"id":523,"kind":"def","name":"chain","qualifier":"nondet","expr":{"id":522,"kind":"app","opcode":"oneOf","args":[{"id":521,"kind":"name","name":"runningConsumers"}]}},"expr":{"id":530,"kind":"let","opdef":{"id":526,"kind":"def","name":"timeAdvancement","qualifier":"nondet","expr":{"id":525,"kind":"app","opcode":"oneOf","args":[{"id":524,"kind":"name","name":"timeAdvancements"}]}},"expr":{"id":529,"kind":"app","opcode":"EndAndBeginBlockForConsumer","args":[{"id":527,"kind":"name","name":"chain"},{"id":528,"kind":"name","name":"timeAdvancement"}]}}}]},{"id":557,"kind":"let","opdef":{"id":538,"kind":"def","name":"consumerStatus","qualifier":"val","expr":{"id":537,"kind":"app","opcode":"field","args":[{"id":535,"kind":"app","opcode":"field","args":[{"id":533,"kind":"name","name":"currentState"},{"id":534,"kind":"str","value":"providerState"}]},{"id":536,"kind":"str","value":"consumerStatus"}]}},"expr":{"id":556,"kind":"let","opdef":{"id":542,"kind":"def","name":"consumersToStart","qualifier":"nondet","expr":{"id":541,"kind":"app","opcode":"oneOf","args":[{"id":540,"kind":"app","opcode":"powerset","args":[{"id":539,"kind":"name","name":"nonConsumers"}]}]}},"expr":{"id":555,"kind":"let","opdef":{"id":546,"kind":"def","name":"consumersToStop","qualifier":"nondet","expr":{"id":545,"kind":"app","opcode":"oneOf","args":[{"id":544,"kind":"app","opcode":"powerset","args":[{"id":543,"kind":"name","name":"runningConsumers"}]}]}},"expr":{"id":554,"kind":"let","opdef":{"id":549,"kind":"def","name":"timeAdvancement","qualifier":"nondet","expr":{"id":548,"kind":"app","opcode":"oneOf","args":[{"id":547,"kind":"name","name":"timeAdvancements"}]}},"expr":{"id":553,"kind":"app","opcode":"EndAndBeginBlockForProvider","args":[{"id":550,"kind":"name","name":"timeAdvancement"},{"id":551,"kind":"name","name":"consumersToStart"},{"id":552,"kind":"name","name":"consumersToStop"}]}}}}},{"id":558,"kind":"name","name":"stepCommon"}]},"depth":0},"1561":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"1563":{"id":179,"kind":"def","name":"nonConsumers","qualifier":"val","expr":{"id":178,"kind":"app","opcode":"getNonConsumers","args":[{"id":177,"kind":"app","opcode":"field","args":[{"id":175,"kind":"name","name":"currentState"},{"id":176,"kind":"str","value":"providerState"}]}]},"depth":0},"1568":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"1569":{"id":179,"kind":"def","name":"nonConsumers","qualifier":"val","expr":{"id":178,"kind":"app","opcode":"getNonConsumers","args":[{"id":177,"kind":"app","opcode":"field","args":[{"id":175,"kind":"name","name":"currentState"},{"id":176,"kind":"str","value":"providerState"}]}]},"depth":0},"1573":{"id":56,"kind":"def","name":"nodes","qualifier":"pureval","expr":{"id":55,"kind":"app","opcode":"Set","args":[{"id":45,"kind":"str","value":"node1"},{"id":46,"kind":"str","value":"node2"},{"id":47,"kind":"str","value":"node3"},{"id":48,"kind":"str","value":"node4"},{"id":49,"kind":"str","value":"node5"},{"id":50,"kind":"str","value":"node6"},{"id":51,"kind":"str","value":"node7"},{"id":52,"kind":"str","value":"node8"},{"id":53,"kind":"str","value":"node9"},{"id":54,"kind":"str","value":"node10"}]},"depth":0},"1576":{"id":68,"kind":"def","name":"consumerAddresses","qualifier":"pureval","expr":{"id":67,"kind":"app","opcode":"Set","args":[{"id":57,"kind":"str","value":"consAddr1"},{"id":58,"kind":"str","value":"consAddr2"},{"id":59,"kind":"str","value":"consAddr3"},{"id":60,"kind":"str","value":"consAddr4"},{"id":61,"kind":"str","value":"consAddr5"},{"id":62,"kind":"str","value":"consAddr6"},{"id":63,"kind":"str","value":"consAddr7"},{"id":64,"kind":"str","value":"consAddr8"},{"id":65,"kind":"str","value":"consAddr9"},{"id":66,"kind":"str","value":"consAddr10"}]},"depth":0},"1579":{"id":1572,"kind":"def","name":"consumer","qualifier":"nondet","expr":{"id":1571,"kind":"app","opcode":"oneOf","args":[{"id":1570,"kind":"app","opcode":"union","args":[{"id":1568,"kind":"name","name":"runningConsumers"},{"id":1569,"kind":"name","name":"nonConsumers"}]}]},"depth":1},"1580":{"id":1575,"kind":"def","name":"node","qualifier":"nondet","expr":{"id":1574,"kind":"app","opcode":"oneOf","args":[{"id":1573,"kind":"name","name":"nodes"}]},"depth":1},"1581":{"id":1578,"kind":"def","name":"address","qualifier":"nondet","expr":{"id":1577,"kind":"app","opcode":"oneOf","args":[{"id":1576,"kind":"name","name":"consumerAddresses"}]},"depth":1},"1582":{"id":1635,"kind":"def","name":"KeyAssignment","qualifier":"action","expr":{"id":1634,"kind":"lambda","params":[{"id":1589,"name":"chain"},{"id":1591,"name":"validator"},{"id":1593,"name":"consumerAddr"}],"qualifier":"action","expr":{"id":1632,"kind":"let","opdef":{"id":1601,"kind":"def","name":"result","qualifier":"val","expr":{"id":1600,"kind":"app","opcode":"assignConsumerKey","args":[{"id":1596,"kind":"name","name":"currentState"},{"id":1597,"kind":"name","name":"chain"},{"id":1598,"kind":"name","name":"validator"},{"id":1599,"kind":"name","name":"consumerAddr"}]}},"expr":{"id":1631,"kind":"app","opcode":"actionAll","args":[{"id":1605,"kind":"app","opcode":"eq","args":[{"id":1603,"kind":"app","opcode":"hasError","args":[{"id":1602,"kind":"name","name":"result"}]},{"id":1604,"kind":"bool","value":false}]},{"id":1610,"kind":"app","opcode":"assign","args":[{"id":1609,"kind":"name","name":"currentState"},{"id":1608,"kind":"app","opcode":"field","args":[{"id":1606,"kind":"name","name":"result"},{"id":1607,"kind":"str","value":"newState"}]}]},{"id":1627,"kind":"app","opcode":"assign","args":[{"id":1626,"kind":"name","name":"trace"},{"id":1625,"kind":"app","opcode":"append","args":[{"id":1611,"kind":"name","name":"trace"},{"id":1624,"kind":"app","opcode":"with","args":[{"id":1623,"kind":"app","opcode":"with","args":[{"id":1622,"kind":"app","opcode":"with","args":[{"id":1621,"kind":"app","opcode":"with","args":[{"id":1612,"kind":"name","name":"emptyAction"},{"id":1614,"kind":"str","value":"kind"},{"id":1613,"kind":"str","value":"KeyAssignment"}]},{"id":1616,"kind":"str","value":"consumerChain"},{"id":1615,"kind":"name","name":"chain"}]},{"id":1618,"kind":"str","value":"validator"},{"id":1617,"kind":"name","name":"validator"}]},{"id":1620,"kind":"str","value":"consumerAddr"},{"id":1619,"kind":"name","name":"consumerAddr"}]}]}]},{"id":1630,"kind":"app","opcode":"assign","args":[{"id":1629,"kind":"name","name":"params"},{"id":1628,"kind":"name","name":"params"}]}]}}},"depth":0},"1590":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1592":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1594":{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"},"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1596":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1597":{"id":1589,"name":"chain","kind":"param"},"1598":{"id":1591,"name":"validator","kind":"param"},"1599":{"id":1593,"name":"consumerAddr","kind":"param"},"1600":{"id":3614,"kind":"def","name":"assignConsumerKey","qualifier":"puredef","expr":{"id":3613,"kind":"lambda","params":[{"id":3381,"name":"currentState"},{"id":3383,"name":"consumer"},{"id":3385,"name":"providerNode"},{"id":3387,"name":"consumerAddr"}],"qualifier":"puredef","expr":{"id":3611,"kind":"let","opdef":{"id":3397,"kind":"def","name":"provCurValSet","qualifier":"pureval","expr":{"id":3396,"kind":"app","opcode":"field","args":[{"id":3394,"kind":"app","opcode":"field","args":[{"id":3392,"kind":"app","opcode":"field","args":[{"id":3390,"kind":"name","name":"currentState"},{"id":3391,"kind":"str","value":"providerState"}]},{"id":3393,"kind":"str","value":"chainState"}]},{"id":3395,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3610,"kind":"app","opcode":"ite","args":[{"id":3409,"kind":"app","opcode":"exists","args":[{"id":3399,"kind":"app","opcode":"keys","args":[{"id":3398,"kind":"name","name":"provCurValSet"}]},{"id":3408,"kind":"lambda","params":[{"id":3400,"name":"node"}],"qualifier":"def","expr":{"id":3407,"kind":"app","opcode":"and","args":[{"id":3403,"kind":"app","opcode":"neq","args":[{"id":3401,"kind":"name","name":"node"},{"id":3402,"kind":"name","name":"providerNode"}]},{"id":3406,"kind":"app","opcode":"eq","args":[{"id":3404,"kind":"name","name":"node"},{"id":3405,"kind":"name","name":"consumerAddr"}]}]}}]},{"id":3411,"kind":"app","opcode":"Err","args":[{"id":3410,"kind":"str","value":"validator A cannot assign consumer key K to consumer chain X\n if there is already a validator B (B!=A) using K on the provider"}]},{"id":3609,"kind":"let","opdef":{"id":3420,"kind":"def","name":"valByConsAddr","qualifier":"pureval","expr":{"id":3419,"kind":"app","opcode":"getOrElse","args":[{"id":3416,"kind":"app","opcode":"field","args":[{"id":3414,"kind":"app","opcode":"field","args":[{"id":3412,"kind":"name","name":"currentState"},{"id":3413,"kind":"str","value":"providerState"}]},{"id":3415,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3417,"kind":"name","name":"consumer"},{"id":3418,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3608,"kind":"app","opcode":"ite","args":[{"id":3424,"kind":"app","opcode":"contains","args":[{"id":3422,"kind":"app","opcode":"keys","args":[{"id":3421,"kind":"name","name":"valByConsAddr"}]},{"id":3423,"kind":"name","name":"consumerAddr"}]},{"id":3426,"kind":"app","opcode":"Err","args":[{"id":3425,"kind":"str","value":"consumer key is already in use on the consumer chain"}]},{"id":3607,"kind":"let","opdef":{"id":3435,"kind":"def","name":"consKeyByVal","qualifier":"pureval","expr":{"id":3434,"kind":"app","opcode":"getOrElse","args":[{"id":3431,"kind":"app","opcode":"field","args":[{"id":3429,"kind":"app","opcode":"field","args":[{"id":3427,"kind":"name","name":"currentState"},{"id":3428,"kind":"str","value":"providerState"}]},{"id":3430,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3432,"kind":"name","name":"consumer"},{"id":3433,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3606,"kind":"let","opdef":{"id":3449,"kind":"def","name":"p","qualifier":"pureval","expr":{"id":3448,"kind":"app","opcode":"ite","args":[{"id":3439,"kind":"app","opcode":"contains","args":[{"id":3437,"kind":"app","opcode":"keys","args":[{"id":3436,"kind":"name","name":"consKeyByVal"}]},{"id":3438,"kind":"name","name":"providerNode"}]},{"id":3444,"kind":"app","opcode":"Tup","args":[{"id":3442,"kind":"app","opcode":"get","args":[{"id":3440,"kind":"name","name":"consKeyByVal"},{"id":3441,"kind":"name","name":"providerNode"}]},{"id":3443,"kind":"bool","value":true}]},{"id":3447,"kind":"app","opcode":"Tup","args":[{"id":3445,"kind":"name","name":"providerNode"},{"id":3446,"kind":"bool","value":false}]}]}},"expr":{"id":3605,"kind":"let","opdef":{"id":3453,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":3452,"kind":"app","opcode":"item","args":[{"id":3450,"kind":"name","name":"p"},{"id":3451,"kind":"int","value":1}]}},"expr":{"id":3604,"kind":"let","opdef":{"id":3457,"kind":"def","name":"prevAssigned","qualifier":"pureval","expr":{"id":3456,"kind":"app","opcode":"item","args":[{"id":3454,"kind":"name","name":"p"},{"id":3455,"kind":"int","value":2}]}},"expr":{"id":3603,"kind":"let","opdef":{"id":3465,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":3464,"kind":"app","opcode":"ite","args":[{"id":3458,"kind":"name","name":"prevAssigned"},{"id":3462,"kind":"app","opcode":"AppendConsumerAddrToPrune","args":[{"id":3459,"kind":"name","name":"currentState"},{"id":3460,"kind":"name","name":"oldConsAddr"},{"id":3461,"kind":"name","name":"consumer"}]},{"id":3463,"kind":"name","name":"currentState"}]}},"expr":{"id":3602,"kind":"let","opdef":{"id":3473,"kind":"def","name":"provValSet","qualifier":"pureval","expr":{"id":3472,"kind":"app","opcode":"field","args":[{"id":3470,"kind":"app","opcode":"field","args":[{"id":3468,"kind":"app","opcode":"field","args":[{"id":3466,"kind":"name","name":"currentState"},{"id":3467,"kind":"str","value":"providerState"}]},{"id":3469,"kind":"str","value":"chainState"}]},{"id":3471,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3601,"kind":"let","opdef":{"id":3483,"kind":"def","name":"provValPower","qualifier":"pureval","expr":{"id":3482,"kind":"app","opcode":"ite","args":[{"id":3477,"kind":"app","opcode":"contains","args":[{"id":3475,"kind":"app","opcode":"keys","args":[{"id":3474,"kind":"name","name":"provValSet"}]},{"id":3476,"kind":"name","name":"providerNode"}]},{"id":3480,"kind":"app","opcode":"get","args":[{"id":3478,"kind":"name","name":"provValSet"},{"id":3479,"kind":"name","name":"providerNode"}]},{"id":3481,"kind":"int","value":0}]}},"expr":{"id":3600,"kind":"let","opdef":{"id":3526,"kind":"def","name":"newKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3525,"kind":"app","opcode":"ite","args":[{"id":3499,"kind":"app","opcode":"and","args":[{"id":3486,"kind":"app","opcode":"igt","args":[{"id":3484,"kind":"name","name":"provValPower"},{"id":3485,"kind":"int","value":0}]},{"id":3498,"kind":"app","opcode":"not","args":[{"id":3497,"kind":"app","opcode":"contains","args":[{"id":3495,"kind":"app","opcode":"keys","args":[{"id":3494,"kind":"app","opcode":"getOrElse","args":[{"id":3491,"kind":"app","opcode":"field","args":[{"id":3489,"kind":"app","opcode":"field","args":[{"id":3487,"kind":"name","name":"currentState"},{"id":3488,"kind":"str","value":"providerState"}]},{"id":3490,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3492,"kind":"name","name":"consumer"},{"id":3493,"kind":"app","opcode":"Map","args":[]}]}]},{"id":3496,"kind":"name","name":"providerNode"}]}]}]},{"id":3519,"kind":"app","opcode":"put","args":[{"id":3504,"kind":"app","opcode":"field","args":[{"id":3502,"kind":"app","opcode":"field","args":[{"id":3500,"kind":"name","name":"currentState"},{"id":3501,"kind":"str","value":"providerState"}]},{"id":3503,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3505,"kind":"name","name":"consumer"},{"id":3518,"kind":"app","opcode":"put","args":[{"id":3513,"kind":"app","opcode":"getOrElse","args":[{"id":3510,"kind":"app","opcode":"field","args":[{"id":3508,"kind":"app","opcode":"field","args":[{"id":3506,"kind":"name","name":"currentState"},{"id":3507,"kind":"str","value":"providerState"}]},{"id":3509,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3511,"kind":"name","name":"consumer"},{"id":3512,"kind":"app","opcode":"Map","args":[]}]},{"id":3514,"kind":"name","name":"providerNode"},{"id":3517,"kind":"app","opcode":"Tup","args":[{"id":3515,"kind":"name","name":"oldConsAddr"},{"id":3516,"kind":"name","name":"provValPower"}]}]}]},{"id":3524,"kind":"app","opcode":"field","args":[{"id":3522,"kind":"app","opcode":"field","args":[{"id":3520,"kind":"name","name":"currentState"},{"id":3521,"kind":"str","value":"providerState"}]},{"id":3523,"kind":"str","value":"keyAssignmentReplacements"}]}]}},"expr":{"id":3599,"kind":"let","opdef":{"id":3536,"kind":"def","name":"tmpStateAfterKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3535,"kind":"app","opcode":"with","args":[{"id":3527,"kind":"name","name":"tmpState"},{"id":3528,"kind":"str","value":"providerState"},{"id":3534,"kind":"app","opcode":"with","args":[{"id":3531,"kind":"app","opcode":"field","args":[{"id":3529,"kind":"name","name":"tmpState"},{"id":3530,"kind":"str","value":"providerState"}]},{"id":3532,"kind":"str","value":"keyAssignmentReplacements"},{"id":3533,"kind":"name","name":"newKeyAssignmentReplacement"}]}]}},"expr":{"id":3598,"kind":"let","opdef":{"id":3558,"kind":"def","name":"newValidatorConsumerPubKey","qualifier":"pureval","expr":{"id":3557,"kind":"app","opcode":"put","args":[{"id":3544,"kind":"app","opcode":"getOrElse","args":[{"id":3541,"kind":"app","opcode":"field","args":[{"id":3539,"kind":"app","opcode":"field","args":[{"id":3537,"kind":"name","name":"currentState"},{"id":3538,"kind":"str","value":"providerState"}]},{"id":3540,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3542,"kind":"name","name":"consumer"},{"id":3543,"kind":"app","opcode":"Map","args":[]}]},{"id":3545,"kind":"name","name":"consumer"},{"id":3556,"kind":"app","opcode":"put","args":[{"id":3553,"kind":"app","opcode":"getOrElse","args":[{"id":3550,"kind":"app","opcode":"field","args":[{"id":3548,"kind":"app","opcode":"field","args":[{"id":3546,"kind":"name","name":"currentState"},{"id":3547,"kind":"str","value":"providerState"}]},{"id":3549,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3551,"kind":"name","name":"consumer"},{"id":3552,"kind":"app","opcode":"Map","args":[]}]},{"id":3554,"kind":"name","name":"providerNode"},{"id":3555,"kind":"name","name":"consumerAddr"}]}]}},"expr":{"id":3597,"kind":"let","opdef":{"id":3580,"kind":"def","name":"newValidatorByConsumerAddr","qualifier":"pureval","expr":{"id":3579,"kind":"app","opcode":"put","args":[{"id":3566,"kind":"app","opcode":"getOrElse","args":[{"id":3563,"kind":"app","opcode":"field","args":[{"id":3561,"kind":"app","opcode":"field","args":[{"id":3559,"kind":"name","name":"currentState"},{"id":3560,"kind":"str","value":"providerState"}]},{"id":3562,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3564,"kind":"name","name":"consumer"},{"id":3565,"kind":"app","opcode":"Map","args":[]}]},{"id":3567,"kind":"name","name":"consumer"},{"id":3578,"kind":"app","opcode":"put","args":[{"id":3575,"kind":"app","opcode":"getOrElse","args":[{"id":3572,"kind":"app","opcode":"field","args":[{"id":3570,"kind":"app","opcode":"field","args":[{"id":3568,"kind":"name","name":"currentState"},{"id":3569,"kind":"str","value":"providerState"}]},{"id":3571,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3573,"kind":"name","name":"consumer"},{"id":3574,"kind":"app","opcode":"Map","args":[]}]},{"id":3576,"kind":"name","name":"consumerAddr"},{"id":3577,"kind":"name","name":"providerNode"}]}]}},"expr":{"id":3596,"kind":"let","opdef":{"id":3590,"kind":"def","name":"newProviderState","qualifier":"pureval","expr":{"id":3589,"kind":"app","opcode":"with","args":[{"id":3586,"kind":"app","opcode":"with","args":[{"id":3583,"kind":"app","opcode":"field","args":[{"id":3581,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3582,"kind":"str","value":"providerState"}]},{"id":3584,"kind":"str","value":"validatorConsumerPubKey"},{"id":3585,"kind":"name","name":"newValidatorConsumerPubKey"}]},{"id":3587,"kind":"str","value":"validatorByConsumerAddr"},{"id":3588,"kind":"name","name":"newValidatorByConsumerAddr"}]}},"expr":{"id":3595,"kind":"app","opcode":"Ok","args":[{"id":3594,"kind":"app","opcode":"with","args":[{"id":3591,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3592,"kind":"str","value":"providerState"},{"id":3593,"kind":"name","name":"newProviderState"}]}]}}}}}}}}}}}}}]}}]}}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"1602":{"id":1601,"kind":"def","name":"result","qualifier":"val","expr":{"id":1600,"kind":"app","opcode":"assignConsumerKey","args":[{"id":1596,"kind":"name","name":"currentState"},{"id":1597,"kind":"name","name":"chain"},{"id":1598,"kind":"name","name":"validator"},{"id":1599,"kind":"name","name":"consumerAddr"}]},"depth":1},"1603":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1606":{"id":1601,"kind":"def","name":"result","qualifier":"val","expr":{"id":1600,"kind":"app","opcode":"assignConsumerKey","args":[{"id":1596,"kind":"name","name":"currentState"},{"id":1597,"kind":"name","name":"chain"},{"id":1598,"kind":"name","name":"validator"},{"id":1599,"kind":"name","name":"consumerAddr"}]},"depth":1},"1609":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1611":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"1612":{"id":161,"kind":"def","name":"emptyAction","qualifier":"puredef","expr":{"id":160,"kind":"app","opcode":"Rec","args":[{"id":143,"kind":"str","value":"kind"},{"id":142,"kind":"str","value":""},{"id":145,"kind":"str","value":"consumerChain"},{"id":144,"kind":"str","value":""},{"id":149,"kind":"str","value":"timeAdvancement"},{"id":148,"kind":"app","opcode":"imul","args":[{"id":146,"kind":"int","value":0},{"id":147,"kind":"name","name":"Second"}]},{"id":151,"kind":"str","value":"consumersToStart"},{"id":150,"kind":"app","opcode":"Set","args":[]},{"id":153,"kind":"str","value":"consumersToStop"},{"id":152,"kind":"app","opcode":"Set","args":[]},{"id":155,"kind":"str","value":"validator"},{"id":154,"kind":"str","value":""},{"id":157,"kind":"str","value":"changeAmount"},{"id":156,"kind":"int","value":0},{"id":159,"kind":"str","value":"consumerAddr"},{"id":158,"kind":"str","value":""}]},"depth":0},"1615":{"id":1589,"name":"chain","kind":"param"},"1617":{"id":1591,"name":"validator","kind":"param"},"1619":{"id":1593,"name":"consumerAddr","kind":"param"},"1626":{"kind":"var","name":"trace","typeAnnotation":{"id":124,"kind":"list","elem":{"id":123,"kind":"const","name":"Action"}},"id":125},"1628":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"1629":{"kind":"var","name":"params","typeAnnotation":{"id":107,"kind":"const","name":"Parameters"},"id":108},"1636":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1642":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"1644":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1647":{"id":1643,"name":"chain","kind":"param"},"1653":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1655":{"id":1641,"kind":"def","name":"providerKeyAssignedValSetHistory","qualifier":"val","expr":{"id":1640,"kind":"app","opcode":"field","args":[{"id":1638,"kind":"app","opcode":"field","args":[{"id":1636,"kind":"name","name":"currentState"},{"id":1637,"kind":"str","value":"providerState"}]},{"id":1639,"kind":"str","value":"keyAssignedValSetHistory"}]},"depth":0},"1656":{"id":1643,"name":"chain","kind":"param"},"1658":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1659":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1660":{"id":1654,"name":"validatorSet","kind":"param"},"1667":{"id":752,"kind":"def","name":"ValUpdatePrecondition","qualifier":"val","expr":{"id":751,"kind":"app","opcode":"eq","args":[{"id":749,"kind":"app","opcode":"field","args":[{"id":747,"kind":"app","opcode":"nth","args":[{"id":742,"kind":"name","name":"trace"},{"id":746,"kind":"app","opcode":"isub","args":[{"id":744,"kind":"app","opcode":"length","args":[{"id":743,"kind":"name","name":"trace"}]},{"id":745,"kind":"int","value":1}]}]},{"id":748,"kind":"str","value":"kind"}]},{"id":750,"kind":"str","value":"EndAndBeginBlockForProvider"}]},"depth":0},"1668":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1674":{"id":169,"kind":"def","name":"providerValidatorHistory","qualifier":"val","expr":{"id":168,"kind":"app","opcode":"field","args":[{"id":166,"kind":"app","opcode":"field","args":[{"id":164,"kind":"app","opcode":"field","args":[{"id":162,"kind":"name","name":"currentState"},{"id":163,"kind":"str","value":"providerState"}]},{"id":165,"kind":"str","value":"chainState"}]},{"id":167,"kind":"str","value":"votingPowerHistory"}]},"depth":0},"1677":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"1678":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1683":{"id":1681,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":1680,"kind":"app","opcode":"field","args":[{"id":1678,"kind":"name","name":"currentState"},{"id":1679,"kind":"str","value":"providerState"}]},"depth":1},"1686":{"id":1682,"name":"consumer","kind":"param"},"1688":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1690":{"id":1689,"name":"packet","kind":"param"},"1693":{"id":1681,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":1680,"kind":"app","opcode":"field","args":[{"id":1678,"kind":"name","name":"currentState"},{"id":1679,"kind":"str","value":"providerState"}]},"depth":1},"1694":{"id":1682,"name":"consumer","kind":"param"},"1695":{"id":1676,"kind":"def","name":"providerValSetInCurBlock","qualifier":"val","expr":{"id":1675,"kind":"app","opcode":"head","args":[{"id":1674,"kind":"name","name":"providerValidatorHistory"}]},"depth":1},"1696":{"id":2541,"kind":"def","name":"applyKeyAssignmentToValSet","qualifier":"puredef","expr":{"id":2540,"kind":"lambda","params":[{"id":2434,"name":"providerState"},{"id":2436,"name":"consumer"},{"id":2438,"name":"valSet"}],"qualifier":"puredef","expr":{"id":2538,"kind":"let","opdef":{"id":2519,"kind":"def","name":"newValSet","qualifier":"pureval","expr":{"id":2518,"kind":"app","opcode":"map","args":[{"id":2442,"kind":"app","opcode":"keys","args":[{"id":2441,"kind":"name","name":"valSet"}]},{"id":2517,"kind":"lambda","params":[{"id":2443,"name":"node"}],"qualifier":"def","expr":{"id":2516,"kind":"let","opdef":{"id":2447,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2446,"kind":"app","opcode":"get","args":[{"id":2444,"kind":"name","name":"valSet"},{"id":2445,"kind":"name","name":"node"}]}},"expr":{"id":2515,"kind":"let","opdef":{"id":2454,"kind":"def","name":"keyAssignmentReplacements","qualifier":"pureval","expr":{"id":2453,"kind":"app","opcode":"getOrElse","args":[{"id":2450,"kind":"app","opcode":"field","args":[{"id":2448,"kind":"name","name":"providerState"},{"id":2449,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":2451,"kind":"name","name":"consumer"},{"id":2452,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":2514,"kind":"app","opcode":"ite","args":[{"id":2458,"kind":"app","opcode":"contains","args":[{"id":2456,"kind":"app","opcode":"keys","args":[{"id":2455,"kind":"name","name":"keyAssignmentReplacements"}]},{"id":2457,"kind":"name","name":"node"}]},{"id":2487,"kind":"let","opdef":{"id":2462,"kind":"def","name":"replacement","qualifier":"pureval","expr":{"id":2461,"kind":"app","opcode":"get","args":[{"id":2459,"kind":"name","name":"keyAssignmentReplacements"},{"id":2460,"kind":"name","name":"node"}]}},"expr":{"id":2486,"kind":"let","opdef":{"id":2466,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":2465,"kind":"app","opcode":"item","args":[{"id":2463,"kind":"name","name":"replacement"},{"id":2464,"kind":"int","value":1}]}},"expr":{"id":2485,"kind":"let","opdef":{"id":2470,"kind":"def","name":"oldToZero","qualifier":"pureval","expr":{"id":2469,"kind":"app","opcode":"Tup","args":[{"id":2467,"kind":"name","name":"oldConsAddr"},{"id":2468,"kind":"int","value":0}]}},"expr":{"id":2484,"kind":"let","opdef":{"id":2480,"kind":"def","name":"newToPower","qualifier":"pureval","expr":{"id":2479,"kind":"app","opcode":"Tup","args":[{"id":2477,"kind":"app","opcode":"get","args":[{"id":2475,"kind":"app","opcode":"get","args":[{"id":2473,"kind":"app","opcode":"field","args":[{"id":2471,"kind":"name","name":"providerState"},{"id":2472,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2474,"kind":"name","name":"consumer"}]},{"id":2476,"kind":"name","name":"node"}]},{"id":2478,"kind":"name","name":"power"}]}},"expr":{"id":2483,"kind":"app","opcode":"Set","args":[{"id":2481,"kind":"name","name":"oldToZero"},{"id":2482,"kind":"name","name":"newToPower"}]}}}}},{"id":2513,"kind":"let","opdef":{"id":2494,"kind":"def","name":"validatorConsumerPubKey","qualifier":"pureval","expr":{"id":2493,"kind":"app","opcode":"getOrElse","args":[{"id":2490,"kind":"app","opcode":"field","args":[{"id":2488,"kind":"name","name":"providerState"},{"id":2489,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2491,"kind":"name","name":"consumer"},{"id":2492,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":2512,"kind":"app","opcode":"ite","args":[{"id":2498,"kind":"app","opcode":"contains","args":[{"id":2496,"kind":"app","opcode":"keys","args":[{"id":2495,"kind":"name","name":"validatorConsumerPubKey"}]},{"id":2497,"kind":"name","name":"node"}]},{"id":2507,"kind":"let","opdef":{"id":2502,"kind":"def","name":"consAddr","qualifier":"pureval","expr":{"id":2501,"kind":"app","opcode":"get","args":[{"id":2499,"kind":"name","name":"validatorConsumerPubKey"},{"id":2500,"kind":"name","name":"node"}]}},"expr":{"id":2506,"kind":"app","opcode":"Set","args":[{"id":2505,"kind":"app","opcode":"Tup","args":[{"id":2503,"kind":"name","name":"consAddr"},{"id":2504,"kind":"name","name":"power"}]}]}},{"id":2511,"kind":"app","opcode":"Set","args":[{"id":2510,"kind":"app","opcode":"Tup","args":[{"id":2508,"kind":"name","name":"node"},{"id":2509,"kind":"name","name":"power"}]}]}]}}]}}}}]}},"expr":{"id":2537,"kind":"let","opdef":{"id":2522,"kind":"def","name":"flattened","qualifier":"pureval","expr":{"id":2521,"kind":"app","opcode":"flatten","args":[{"id":2520,"kind":"name","name":"newValSet"}]}},"expr":{"id":2536,"kind":"app","opcode":"fold","args":[{"id":2523,"kind":"name","name":"flattened"},{"id":2524,"kind":"app","opcode":"Map","args":[]},{"id":2535,"kind":"lambda","params":[{"id":2525,"name":"acc"},{"id":2526,"name":"pair"}],"qualifier":"def","expr":{"id":2534,"kind":"app","opcode":"put","args":[{"id":2527,"kind":"name","name":"acc"},{"id":2530,"kind":"app","opcode":"item","args":[{"id":2528,"kind":"name","name":"pair"},{"id":2529,"kind":"int","value":1}]},{"id":2533,"kind":"app","opcode":"item","args":[{"id":2531,"kind":"name","name":"pair"},{"id":2532,"kind":"int","value":2}]}]}}]}}}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1700":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1703":{"id":1682,"name":"consumer","kind":"param"},"1711":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1714":{"id":1682,"name":"consumer","kind":"param"},"1720":{"id":1676,"kind":"def","name":"providerValSetInCurBlock","qualifier":"val","expr":{"id":1675,"kind":"app","opcode":"head","args":[{"id":1674,"kind":"name","name":"providerValidatorHistory"}]},"depth":1},"1730":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"1732":{"id":174,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":173,"kind":"app","opcode":"getRunningConsumers","args":[{"id":172,"kind":"app","opcode":"field","args":[{"id":170,"kind":"name","name":"currentState"},{"id":171,"kind":"str","value":"providerState"}]}]},"depth":0},"1734":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1737":{"id":1731,"name":"consumer1","kind":"param"},"1742":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1745":{"id":1733,"name":"consumer2","kind":"param"},"1750":{"id":1741,"kind":"def","name":"packets1","qualifier":"val","expr":{"id":1740,"kind":"app","opcode":"field","args":[{"id":1738,"kind":"app","opcode":"get","args":[{"id":1736,"kind":"app","opcode":"field","args":[{"id":1734,"kind":"name","name":"currentState"},{"id":1735,"kind":"str","value":"consumerStates"}]},{"id":1737,"kind":"name","name":"consumer1"}]},{"id":1739,"kind":"str","value":"receivedVscPackets"}]},"depth":1},"1751":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1752":{"id":1749,"kind":"def","name":"packets2","qualifier":"val","expr":{"id":1748,"kind":"app","opcode":"field","args":[{"id":1746,"kind":"app","opcode":"get","args":[{"id":1744,"kind":"app","opcode":"field","args":[{"id":1742,"kind":"name","name":"currentState"},{"id":1743,"kind":"str","value":"consumerStates"}]},{"id":1745,"kind":"name","name":"consumer2"}]},{"id":1747,"kind":"str","value":"receivedVscPackets"}]},"depth":1},"1753":{"doc":" Returns a set of the elements in the list.\n\n - @param __list a list\n - @returns a set of the elements in __list","id":4951,"kind":"def","name":"toSet","qualifier":"puredef","expr":{"id":4950,"kind":"lambda","params":[{"id":4934,"name":"__list"}],"qualifier":"puredef","expr":{"id":4948,"kind":"app","opcode":"foldl","args":[{"id":4939,"kind":"name","name":"__list"},{"id":4940,"kind":"app","opcode":"Set","args":[]},{"id":4947,"kind":"lambda","params":[{"id":4941,"name":"__s"},{"id":4942,"name":"__e"}],"qualifier":"def","expr":{"id":4946,"kind":"app","opcode":"union","args":[{"id":4943,"kind":"name","name":"__s"},{"id":4945,"kind":"app","opcode":"Set","args":[{"id":4944,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1756":{"id":1755,"kind":"def","name":"commonPackets","qualifier":"val","expr":{"id":1754,"kind":"app","opcode":"intersect","args":[{"id":1751,"kind":"app","opcode":"toSet","args":[{"id":1750,"kind":"name","name":"packets1"}]},{"id":1753,"kind":"app","opcode":"toSet","args":[{"id":1752,"kind":"name","name":"packets2"}]}]},"depth":1},"1761":{"id":1755,"kind":"def","name":"commonPackets","qualifier":"val","expr":{"id":1754,"kind":"app","opcode":"intersect","args":[{"id":1751,"kind":"app","opcode":"toSet","args":[{"id":1750,"kind":"name","name":"packets1"}]},{"id":1753,"kind":"app","opcode":"toSet","args":[{"id":1752,"kind":"name","name":"packets2"}]}]},"depth":1},"1762":{"id":640,"kind":"def","name":"newest","qualifier":"puredef","expr":{"id":639,"kind":"lambda","params":[{"id":600,"name":"packets"}],"qualifier":"puredef","expr":{"id":637,"kind":"let","opdef":{"id":620,"kind":"def","name":"oldestPossiblePacket","qualifier":"val","expr":{"id":619,"kind":"app","opcode":"Rec","args":[{"id":606,"kind":"str","value":"id"},{"id":605,"kind":"int","value":0},{"id":608,"kind":"str","value":"validatorSet"},{"id":607,"kind":"app","opcode":"Map","args":[]},{"id":613,"kind":"str","value":"sendingTime"},{"id":612,"kind":"app","opcode":"imul","args":[{"id":610,"kind":"app","opcode":"iuminus","args":[{"id":609,"kind":"int","value":9999999999}]},{"id":611,"kind":"name","name":"Second"}]},{"id":618,"kind":"str","value":"timeoutTime"},{"id":617,"kind":"app","opcode":"imul","args":[{"id":615,"kind":"app","opcode":"iuminus","args":[{"id":614,"kind":"int","value":9999999999}]},{"id":616,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":604,"kind":"const","name":"VscPacket"}},"expr":{"id":636,"kind":"app","opcode":"fold","args":[{"id":621,"kind":"name","name":"packets"},{"id":622,"kind":"name","name":"oldestPossiblePacket"},{"id":635,"kind":"lambda","params":[{"id":623,"name":"res"},{"id":624,"name":"pack"}],"qualifier":"def","expr":{"id":634,"kind":"app","opcode":"ite","args":[{"id":631,"kind":"app","opcode":"igte","args":[{"id":627,"kind":"app","opcode":"field","args":[{"id":625,"kind":"name","name":"res"},{"id":626,"kind":"str","value":"sendingTime"}]},{"id":630,"kind":"app","opcode":"field","args":[{"id":628,"kind":"name","name":"pack"},{"id":629,"kind":"str","value":"sendingTime"}]}]},{"id":632,"kind":"name","name":"res"},{"id":633,"kind":"name","name":"pack"}]}}]}}},"depth":0},"1764":{"id":1755,"kind":"def","name":"commonPackets","qualifier":"val","expr":{"id":1754,"kind":"app","opcode":"intersect","args":[{"id":1751,"kind":"app","opcode":"toSet","args":[{"id":1750,"kind":"name","name":"packets1"}]},{"id":1753,"kind":"app","opcode":"toSet","args":[{"id":1752,"kind":"name","name":"packets2"}]}]},"depth":1},"1765":{"id":599,"kind":"def","name":"oldest","qualifier":"puredef","expr":{"id":598,"kind":"lambda","params":[{"id":561,"name":"packets"}],"qualifier":"puredef","expr":{"id":596,"kind":"let","opdef":{"id":579,"kind":"def","name":"newestPossiblePacket","qualifier":"val","expr":{"id":578,"kind":"app","opcode":"Rec","args":[{"id":567,"kind":"str","value":"id"},{"id":566,"kind":"int","value":0},{"id":569,"kind":"str","value":"validatorSet"},{"id":568,"kind":"app","opcode":"Map","args":[]},{"id":573,"kind":"str","value":"sendingTime"},{"id":572,"kind":"app","opcode":"imul","args":[{"id":570,"kind":"int","value":9999999999999},{"id":571,"kind":"name","name":"Second"}]},{"id":577,"kind":"str","value":"timeoutTime"},{"id":576,"kind":"app","opcode":"imul","args":[{"id":574,"kind":"int","value":9999999999999},{"id":575,"kind":"name","name":"Second"}]}]},"typeAnnotation":{"id":565,"kind":"const","name":"VscPacket"}},"expr":{"id":595,"kind":"app","opcode":"fold","args":[{"id":580,"kind":"name","name":"packets"},{"id":581,"kind":"name","name":"newestPossiblePacket"},{"id":594,"kind":"lambda","params":[{"id":582,"name":"res"},{"id":583,"name":"pack"}],"qualifier":"def","expr":{"id":593,"kind":"app","opcode":"ite","args":[{"id":590,"kind":"app","opcode":"ilt","args":[{"id":586,"kind":"app","opcode":"field","args":[{"id":584,"kind":"name","name":"res"},{"id":585,"kind":"str","value":"sendingTime"}]},{"id":589,"kind":"app","opcode":"field","args":[{"id":587,"kind":"name","name":"pack"},{"id":588,"kind":"str","value":"sendingTime"}]}]},{"id":591,"kind":"name","name":"res"},{"id":592,"kind":"name","name":"pack"}]}}]}}},"depth":0},"1767":{"id":1741,"kind":"def","name":"packets1","qualifier":"val","expr":{"id":1740,"kind":"app","opcode":"field","args":[{"id":1738,"kind":"app","opcode":"get","args":[{"id":1736,"kind":"app","opcode":"field","args":[{"id":1734,"kind":"name","name":"currentState"},{"id":1735,"kind":"str","value":"consumerStates"}]},{"id":1737,"kind":"name","name":"consumer1"}]},{"id":1739,"kind":"str","value":"receivedVscPackets"}]},"depth":1},"1769":{"id":1768,"name":"packet","kind":"param"},"1772":{"id":1766,"kind":"def","name":"oldestCommonPacket","qualifier":"val","expr":{"id":1765,"kind":"app","opcode":"oldest","args":[{"id":1764,"kind":"name","name":"commonPackets"}]},"depth":1},"1776":{"id":1768,"name":"packet","kind":"param"},"1779":{"id":1763,"kind":"def","name":"newestCommonPacket","qualifier":"val","expr":{"id":1762,"kind":"app","opcode":"newest","args":[{"id":1761,"kind":"name","name":"commonPackets"}]},"depth":1},"1787":{"id":1749,"kind":"def","name":"packets2","qualifier":"val","expr":{"id":1748,"kind":"app","opcode":"field","args":[{"id":1746,"kind":"app","opcode":"get","args":[{"id":1744,"kind":"app","opcode":"field","args":[{"id":1742,"kind":"name","name":"currentState"},{"id":1743,"kind":"str","value":"consumerStates"}]},{"id":1745,"kind":"name","name":"consumer2"}]},{"id":1747,"kind":"str","value":"receivedVscPackets"}]},"depth":1},"1789":{"id":1788,"name":"packet","kind":"param"},"1792":{"id":1766,"kind":"def","name":"oldestCommonPacket","qualifier":"val","expr":{"id":1765,"kind":"app","opcode":"oldest","args":[{"id":1764,"kind":"name","name":"commonPackets"}]},"depth":1},"1796":{"id":1788,"name":"packet","kind":"param"},"1799":{"id":1763,"kind":"def","name":"newestCommonPacket","qualifier":"val","expr":{"id":1762,"kind":"app","opcode":"newest","args":[{"id":1761,"kind":"name","name":"commonPackets"}]},"depth":1},"1807":{"id":1786,"kind":"def","name":"packetsBetween1","qualifier":"val","expr":{"id":1785,"kind":"app","opcode":"select","args":[{"id":1767,"kind":"name","name":"packets1"},{"id":1784,"kind":"lambda","params":[{"id":1768,"name":"packet"}],"qualifier":"def","expr":{"id":1783,"kind":"app","opcode":"and","args":[{"id":1775,"kind":"app","opcode":"igte","args":[{"id":1771,"kind":"app","opcode":"field","args":[{"id":1769,"kind":"name","name":"packet"},{"id":1770,"kind":"str","value":"sendingTime"}]},{"id":1774,"kind":"app","opcode":"field","args":[{"id":1772,"kind":"name","name":"oldestCommonPacket"},{"id":1773,"kind":"str","value":"sendingTime"}]}]},{"id":1782,"kind":"app","opcode":"ilte","args":[{"id":1778,"kind":"app","opcode":"field","args":[{"id":1776,"kind":"name","name":"packet"},{"id":1777,"kind":"str","value":"sendingTime"}]},{"id":1781,"kind":"app","opcode":"field","args":[{"id":1779,"kind":"name","name":"newestCommonPacket"},{"id":1780,"kind":"str","value":"sendingTime"}]}]}]}}]},"depth":1},"1811":{"id":1809,"name":"acc","kind":"param"},"1812":{"id":1810,"name":"packet","kind":"param"},"1813":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1818":{"id":1810,"name":"packet","kind":"param"},"1822":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1823":{"id":1731,"name":"consumer1","kind":"param"},"1825":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1826":{"id":1810,"name":"packet","kind":"param"},"1829":{"id":2616,"kind":"def","name":"revertKeyAssignment","qualifier":"puredef","expr":{"id":2615,"kind":"lambda","params":[{"id":2542,"name":"keyAssignment"},{"id":2546,"name":"valSetWithAssignment"}],"qualifier":"puredef","expr":{"id":2613,"kind":"let","opdef":{"id":2572,"kind":"def","name":"reverseAssignment","qualifier":"pureval","expr":{"id":2571,"kind":"app","opcode":"fold","args":[{"id":2558,"kind":"app","opcode":"map","args":[{"id":2550,"kind":"app","opcode":"keys","args":[{"id":2549,"kind":"name","name":"keyAssignment"}]},{"id":2557,"kind":"lambda","params":[{"id":2551,"name":"consAddr"}],"qualifier":"def","expr":{"id":2556,"kind":"app","opcode":"Tup","args":[{"id":2554,"kind":"app","opcode":"get","args":[{"id":2552,"kind":"name","name":"keyAssignment"},{"id":2553,"kind":"name","name":"consAddr"}]},{"id":2555,"kind":"name","name":"consAddr"}]}}]},{"id":2559,"kind":"app","opcode":"Map","args":[]},{"id":2570,"kind":"lambda","params":[{"id":2560,"name":"acc"},{"id":2561,"name":"pair"}],"qualifier":"def","expr":{"id":2569,"kind":"app","opcode":"put","args":[{"id":2562,"kind":"name","name":"acc"},{"id":2565,"kind":"app","opcode":"item","args":[{"id":2563,"kind":"name","name":"pair"},{"id":2564,"kind":"int","value":1}]},{"id":2568,"kind":"app","opcode":"item","args":[{"id":2566,"kind":"name","name":"pair"},{"id":2567,"kind":"int","value":2}]}]}}]}},"expr":{"id":2612,"kind":"app","opcode":"fold","args":[{"id":2599,"kind":"app","opcode":"filter","args":[{"id":2591,"kind":"app","opcode":"map","args":[{"id":2574,"kind":"app","opcode":"keys","args":[{"id":2573,"kind":"name","name":"valSetWithAssignment"}]},{"id":2590,"kind":"lambda","params":[{"id":2575,"name":"node"}],"qualifier":"def","expr":{"id":2589,"kind":"let","opdef":{"id":2579,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2578,"kind":"app","opcode":"get","args":[{"id":2576,"kind":"name","name":"valSetWithAssignment"},{"id":2577,"kind":"name","name":"node"}]}},"expr":{"id":2588,"kind":"let","opdef":{"id":2584,"kind":"def","name":"consAddr","qualifier":"pureval","expr":{"id":2583,"kind":"app","opcode":"getOrElse","args":[{"id":2580,"kind":"name","name":"reverseAssignment"},{"id":2581,"kind":"name","name":"node"},{"id":2582,"kind":"name","name":"node"}]}},"expr":{"id":2587,"kind":"app","opcode":"Tup","args":[{"id":2585,"kind":"name","name":"consAddr"},{"id":2586,"kind":"name","name":"power"}]}}}}]},{"id":2598,"kind":"lambda","params":[{"id":2592,"name":"pair"}],"qualifier":"def","expr":{"id":2597,"kind":"app","opcode":"igt","args":[{"id":2595,"kind":"app","opcode":"item","args":[{"id":2593,"kind":"name","name":"pair"},{"id":2594,"kind":"int","value":2}]},{"id":2596,"kind":"int","value":0}]}}]},{"id":2600,"kind":"app","opcode":"Map","args":[]},{"id":2611,"kind":"lambda","params":[{"id":2601,"name":"acc"},{"id":2602,"name":"pair"}],"qualifier":"def","expr":{"id":2610,"kind":"app","opcode":"put","args":[{"id":2603,"kind":"name","name":"acc"},{"id":2606,"kind":"app","opcode":"item","args":[{"id":2604,"kind":"name","name":"pair"},{"id":2605,"kind":"int","value":1}]},{"id":2609,"kind":"app","opcode":"item","args":[{"id":2607,"kind":"name","name":"pair"},{"id":2608,"kind":"int","value":2}]}]}}]}}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1837":{"id":1806,"kind":"def","name":"packetsBetween2","qualifier":"val","expr":{"id":1805,"kind":"app","opcode":"select","args":[{"id":1787,"kind":"name","name":"packets2"},{"id":1804,"kind":"lambda","params":[{"id":1788,"name":"packet"}],"qualifier":"def","expr":{"id":1803,"kind":"app","opcode":"and","args":[{"id":1795,"kind":"app","opcode":"igte","args":[{"id":1791,"kind":"app","opcode":"field","args":[{"id":1789,"kind":"name","name":"packet"},{"id":1790,"kind":"str","value":"sendingTime"}]},{"id":1794,"kind":"app","opcode":"field","args":[{"id":1792,"kind":"name","name":"oldestCommonPacket"},{"id":1793,"kind":"str","value":"sendingTime"}]}]},{"id":1802,"kind":"app","opcode":"ilte","args":[{"id":1798,"kind":"app","opcode":"field","args":[{"id":1796,"kind":"name","name":"packet"},{"id":1797,"kind":"str","value":"sendingTime"}]},{"id":1801,"kind":"app","opcode":"field","args":[{"id":1799,"kind":"name","name":"newestCommonPacket"},{"id":1800,"kind":"str","value":"sendingTime"}]}]}]}}]},"depth":1},"1841":{"id":1839,"name":"acc","kind":"param"},"1842":{"id":1840,"name":"packet","kind":"param"},"1843":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1848":{"id":1840,"name":"packet","kind":"param"},"1852":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1853":{"id":1733,"name":"consumer2","kind":"param"},"1855":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1856":{"id":1840,"name":"packet","kind":"param"},"1859":{"id":2616,"kind":"def","name":"revertKeyAssignment","qualifier":"puredef","expr":{"id":2615,"kind":"lambda","params":[{"id":2542,"name":"keyAssignment"},{"id":2546,"name":"valSetWithAssignment"}],"qualifier":"puredef","expr":{"id":2613,"kind":"let","opdef":{"id":2572,"kind":"def","name":"reverseAssignment","qualifier":"pureval","expr":{"id":2571,"kind":"app","opcode":"fold","args":[{"id":2558,"kind":"app","opcode":"map","args":[{"id":2550,"kind":"app","opcode":"keys","args":[{"id":2549,"kind":"name","name":"keyAssignment"}]},{"id":2557,"kind":"lambda","params":[{"id":2551,"name":"consAddr"}],"qualifier":"def","expr":{"id":2556,"kind":"app","opcode":"Tup","args":[{"id":2554,"kind":"app","opcode":"get","args":[{"id":2552,"kind":"name","name":"keyAssignment"},{"id":2553,"kind":"name","name":"consAddr"}]},{"id":2555,"kind":"name","name":"consAddr"}]}}]},{"id":2559,"kind":"app","opcode":"Map","args":[]},{"id":2570,"kind":"lambda","params":[{"id":2560,"name":"acc"},{"id":2561,"name":"pair"}],"qualifier":"def","expr":{"id":2569,"kind":"app","opcode":"put","args":[{"id":2562,"kind":"name","name":"acc"},{"id":2565,"kind":"app","opcode":"item","args":[{"id":2563,"kind":"name","name":"pair"},{"id":2564,"kind":"int","value":1}]},{"id":2568,"kind":"app","opcode":"item","args":[{"id":2566,"kind":"name","name":"pair"},{"id":2567,"kind":"int","value":2}]}]}}]}},"expr":{"id":2612,"kind":"app","opcode":"fold","args":[{"id":2599,"kind":"app","opcode":"filter","args":[{"id":2591,"kind":"app","opcode":"map","args":[{"id":2574,"kind":"app","opcode":"keys","args":[{"id":2573,"kind":"name","name":"valSetWithAssignment"}]},{"id":2590,"kind":"lambda","params":[{"id":2575,"name":"node"}],"qualifier":"def","expr":{"id":2589,"kind":"let","opdef":{"id":2579,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2578,"kind":"app","opcode":"get","args":[{"id":2576,"kind":"name","name":"valSetWithAssignment"},{"id":2577,"kind":"name","name":"node"}]}},"expr":{"id":2588,"kind":"let","opdef":{"id":2584,"kind":"def","name":"consAddr","qualifier":"pureval","expr":{"id":2583,"kind":"app","opcode":"getOrElse","args":[{"id":2580,"kind":"name","name":"reverseAssignment"},{"id":2581,"kind":"name","name":"node"},{"id":2582,"kind":"name","name":"node"}]}},"expr":{"id":2587,"kind":"app","opcode":"Tup","args":[{"id":2585,"kind":"name","name":"consAddr"},{"id":2586,"kind":"name","name":"power"}]}}}}]},{"id":2598,"kind":"lambda","params":[{"id":2592,"name":"pair"}],"qualifier":"def","expr":{"id":2597,"kind":"app","opcode":"igt","args":[{"id":2595,"kind":"app","opcode":"item","args":[{"id":2593,"kind":"name","name":"pair"},{"id":2594,"kind":"int","value":2}]},{"id":2596,"kind":"int","value":0}]}}]},{"id":2600,"kind":"app","opcode":"Map","args":[]},{"id":2611,"kind":"lambda","params":[{"id":2601,"name":"acc"},{"id":2602,"name":"pair"}],"qualifier":"def","expr":{"id":2610,"kind":"app","opcode":"put","args":[{"id":2603,"kind":"name","name":"acc"},{"id":2606,"kind":"app","opcode":"item","args":[{"id":2604,"kind":"name","name":"pair"},{"id":2605,"kind":"int","value":1}]},{"id":2609,"kind":"app","opcode":"item","args":[{"id":2607,"kind":"name","name":"pair"},{"id":2608,"kind":"int","value":2}]}]}}]}}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"1867":{"id":1836,"kind":"def","name":"packetsBetween1noKeyAssignment","qualifier":"val","expr":{"id":1835,"kind":"app","opcode":"foldl","args":[{"id":1807,"kind":"name","name":"packetsBetween1"},{"id":1808,"kind":"app","opcode":"List","args":[]},{"id":1834,"kind":"lambda","params":[{"id":1809,"name":"acc"},{"id":1810,"name":"packet"}],"qualifier":"def","expr":{"id":1833,"kind":"app","opcode":"concat","args":[{"id":1811,"kind":"name","name":"acc"},{"id":1832,"kind":"app","opcode":"List","args":[{"id":1831,"kind":"app","opcode":"with","args":[{"id":1812,"kind":"name","name":"packet"},{"id":1830,"kind":"str","value":"validatorSet"},{"id":1829,"kind":"app","opcode":"revertKeyAssignment","args":[{"id":1825,"kind":"app","opcode":"getOrElse","args":[{"id":1822,"kind":"app","opcode":"getOrElse","args":[{"id":1817,"kind":"app","opcode":"field","args":[{"id":1815,"kind":"app","opcode":"field","args":[{"id":1813,"kind":"name","name":"currentState"},{"id":1814,"kind":"str","value":"providerState"}]},{"id":1816,"kind":"str","value":"keyAssignmentsForVSCPackets"}]},{"id":1820,"kind":"app","opcode":"field","args":[{"id":1818,"kind":"name","name":"packet"},{"id":1819,"kind":"str","value":"id"}]},{"id":1821,"kind":"app","opcode":"Map","args":[]}]},{"id":1823,"kind":"name","name":"consumer1"},{"id":1824,"kind":"app","opcode":"Map","args":[]}]},{"id":1828,"kind":"app","opcode":"field","args":[{"id":1826,"kind":"name","name":"packet"},{"id":1827,"kind":"str","value":"validatorSet"}]}]}]}]}]}}]},"depth":1},"1868":{"id":1866,"kind":"def","name":"packetsBetween2noKeyAssignment","qualifier":"val","expr":{"id":1865,"kind":"app","opcode":"foldl","args":[{"id":1837,"kind":"name","name":"packetsBetween2"},{"id":1838,"kind":"app","opcode":"List","args":[]},{"id":1864,"kind":"lambda","params":[{"id":1839,"name":"acc"},{"id":1840,"name":"packet"}],"qualifier":"def","expr":{"id":1863,"kind":"app","opcode":"concat","args":[{"id":1841,"kind":"name","name":"acc"},{"id":1862,"kind":"app","opcode":"List","args":[{"id":1861,"kind":"app","opcode":"with","args":[{"id":1842,"kind":"name","name":"packet"},{"id":1860,"kind":"str","value":"validatorSet"},{"id":1859,"kind":"app","opcode":"revertKeyAssignment","args":[{"id":1855,"kind":"app","opcode":"getOrElse","args":[{"id":1852,"kind":"app","opcode":"getOrElse","args":[{"id":1847,"kind":"app","opcode":"field","args":[{"id":1845,"kind":"app","opcode":"field","args":[{"id":1843,"kind":"name","name":"currentState"},{"id":1844,"kind":"str","value":"providerState"}]},{"id":1846,"kind":"str","value":"keyAssignmentsForVSCPackets"}]},{"id":1850,"kind":"app","opcode":"field","args":[{"id":1848,"kind":"name","name":"packet"},{"id":1849,"kind":"str","value":"id"}]},{"id":1851,"kind":"app","opcode":"Map","args":[]}]},{"id":1853,"kind":"name","name":"consumer2"},{"id":1854,"kind":"app","opcode":"Map","args":[]}]},{"id":1858,"kind":"app","opcode":"field","args":[{"id":1856,"kind":"name","name":"packet"},{"id":1857,"kind":"str","value":"validatorSet"}]}]}]}]}]}}]},"depth":1},"1885":{"id":1928,"kind":"def","name":"NoProviderReuse","qualifier":"val","expr":{"id":1927,"kind":"app","opcode":"forall","args":[{"id":1889,"kind":"name","name":"consumerChains"},{"id":1926,"kind":"lambda","params":[{"id":1890,"name":"consumer"}],"qualifier":"def","expr":{"id":1925,"kind":"let","opdef":{"id":1899,"kind":"def","name":"valConsPk","qualifier":"val","expr":{"id":1898,"kind":"app","opcode":"getOrElse","args":[{"id":1895,"kind":"app","opcode":"field","args":[{"id":1893,"kind":"app","opcode":"field","args":[{"id":1891,"kind":"name","name":"currentState"},{"id":1892,"kind":"str","value":"providerState"}]},{"id":1894,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":1896,"kind":"name","name":"consumer"},{"id":1897,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":1924,"kind":"app","opcode":"forall","args":[{"id":1901,"kind":"app","opcode":"keys","args":[{"id":1900,"kind":"name","name":"valConsPk"}]},{"id":1923,"kind":"lambda","params":[{"id":1902,"name":"node"}],"qualifier":"def","expr":{"id":1922,"kind":"let","opdef":{"id":1906,"kind":"def","name":"consAddr","qualifier":"val","expr":{"id":1905,"kind":"app","opcode":"get","args":[{"id":1903,"kind":"name","name":"valConsPk"},{"id":1904,"kind":"name","name":"node"}]}},"expr":{"id":1921,"kind":"app","opcode":"or","args":[{"id":1909,"kind":"app","opcode":"eq","args":[{"id":1907,"kind":"name","name":"consAddr"},{"id":1908,"kind":"name","name":"node"}]},{"id":1920,"kind":"app","opcode":"not","args":[{"id":1919,"kind":"app","opcode":"contains","args":[{"id":1917,"kind":"app","opcode":"keys","args":[{"id":1916,"kind":"app","opcode":"field","args":[{"id":1914,"kind":"app","opcode":"field","args":[{"id":1912,"kind":"app","opcode":"field","args":[{"id":1910,"kind":"name","name":"currentState"},{"id":1911,"kind":"str","value":"providerState"}]},{"id":1913,"kind":"str","value":"chainState"}]},{"id":1915,"kind":"str","value":"currentValidatorSet"}]}]},{"id":1918,"kind":"name","name":"consAddr"}]}]}]}}}]}}}]},"depth":0},"1886":{"id":1968,"kind":"def","name":"NoDuplicationOnSameConsumer","qualifier":"val","expr":{"id":1967,"kind":"app","opcode":"forall","args":[{"id":1929,"kind":"name","name":"consumerChains"},{"id":1966,"kind":"lambda","params":[{"id":1930,"name":"consumer"}],"qualifier":"def","expr":{"id":1965,"kind":"let","opdef":{"id":1939,"kind":"def","name":"valConsPk","qualifier":"val","expr":{"id":1938,"kind":"app","opcode":"getOrElse","args":[{"id":1935,"kind":"app","opcode":"field","args":[{"id":1933,"kind":"app","opcode":"field","args":[{"id":1931,"kind":"name","name":"currentState"},{"id":1932,"kind":"str","value":"providerState"}]},{"id":1934,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":1936,"kind":"name","name":"consumer"},{"id":1937,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":1964,"kind":"app","opcode":"forall","args":[{"id":1941,"kind":"app","opcode":"keys","args":[{"id":1940,"kind":"name","name":"valConsPk"}]},{"id":1963,"kind":"lambda","params":[{"id":1942,"name":"node"}],"qualifier":"def","expr":{"id":1962,"kind":"let","opdef":{"id":1946,"kind":"def","name":"consAddr","qualifier":"val","expr":{"id":1945,"kind":"app","opcode":"get","args":[{"id":1943,"kind":"name","name":"valConsPk"},{"id":1944,"kind":"name","name":"node"}]}},"expr":{"id":1961,"kind":"app","opcode":"not","args":[{"id":1960,"kind":"app","opcode":"exists","args":[{"id":1948,"kind":"app","opcode":"keys","args":[{"id":1947,"kind":"name","name":"valConsPk"}]},{"id":1959,"kind":"lambda","params":[{"id":1949,"name":"otherNode"}],"qualifier":"def","expr":{"id":1958,"kind":"app","opcode":"and","args":[{"id":1952,"kind":"app","opcode":"neq","args":[{"id":1950,"kind":"name","name":"otherNode"},{"id":1951,"kind":"name","name":"node"}]},{"id":1957,"kind":"app","opcode":"eq","args":[{"id":1955,"kind":"app","opcode":"get","args":[{"id":1953,"kind":"name","name":"valConsPk"},{"id":1954,"kind":"name","name":"otherNode"}]},{"id":1956,"kind":"name","name":"consAddr"}]}]}}]}]}}}]}}}]},"depth":0},"1889":{"id":11,"kind":"def","name":"consumerChains","qualifier":"pureval","expr":{"id":10,"kind":"app","opcode":"toSet","args":[{"id":9,"kind":"name","name":"consumerChainList"}]},"depth":0},"1891":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1896":{"id":1890,"name":"consumer","kind":"param"},"1898":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1900":{"id":1899,"kind":"def","name":"valConsPk","qualifier":"val","expr":{"id":1898,"kind":"app","opcode":"getOrElse","args":[{"id":1895,"kind":"app","opcode":"field","args":[{"id":1893,"kind":"app","opcode":"field","args":[{"id":1891,"kind":"name","name":"currentState"},{"id":1892,"kind":"str","value":"providerState"}]},{"id":1894,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":1896,"kind":"name","name":"consumer"},{"id":1897,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"1903":{"id":1899,"kind":"def","name":"valConsPk","qualifier":"val","expr":{"id":1898,"kind":"app","opcode":"getOrElse","args":[{"id":1895,"kind":"app","opcode":"field","args":[{"id":1893,"kind":"app","opcode":"field","args":[{"id":1891,"kind":"name","name":"currentState"},{"id":1892,"kind":"str","value":"providerState"}]},{"id":1894,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":1896,"kind":"name","name":"consumer"},{"id":1897,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"1904":{"id":1902,"name":"node","kind":"param"},"1907":{"id":1906,"kind":"def","name":"consAddr","qualifier":"val","expr":{"id":1905,"kind":"app","opcode":"get","args":[{"id":1903,"kind":"name","name":"valConsPk"},{"id":1904,"kind":"name","name":"node"}]},"depth":1},"1908":{"id":1902,"name":"node","kind":"param"},"1910":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1918":{"id":1906,"kind":"def","name":"consAddr","qualifier":"val","expr":{"id":1905,"kind":"app","opcode":"get","args":[{"id":1903,"kind":"name","name":"valConsPk"},{"id":1904,"kind":"name","name":"node"}]},"depth":1},"1929":{"id":11,"kind":"def","name":"consumerChains","qualifier":"pureval","expr":{"id":10,"kind":"app","opcode":"toSet","args":[{"id":9,"kind":"name","name":"consumerChainList"}]},"depth":0},"1931":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1936":{"id":1930,"name":"consumer","kind":"param"},"1938":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1940":{"id":1939,"kind":"def","name":"valConsPk","qualifier":"val","expr":{"id":1938,"kind":"app","opcode":"getOrElse","args":[{"id":1935,"kind":"app","opcode":"field","args":[{"id":1933,"kind":"app","opcode":"field","args":[{"id":1931,"kind":"name","name":"currentState"},{"id":1932,"kind":"str","value":"providerState"}]},{"id":1934,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":1936,"kind":"name","name":"consumer"},{"id":1937,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"1943":{"id":1939,"kind":"def","name":"valConsPk","qualifier":"val","expr":{"id":1938,"kind":"app","opcode":"getOrElse","args":[{"id":1935,"kind":"app","opcode":"field","args":[{"id":1933,"kind":"app","opcode":"field","args":[{"id":1931,"kind":"name","name":"currentState"},{"id":1932,"kind":"str","value":"providerState"}]},{"id":1934,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":1936,"kind":"name","name":"consumer"},{"id":1937,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"1944":{"id":1942,"name":"node","kind":"param"},"1947":{"id":1939,"kind":"def","name":"valConsPk","qualifier":"val","expr":{"id":1938,"kind":"app","opcode":"getOrElse","args":[{"id":1935,"kind":"app","opcode":"field","args":[{"id":1933,"kind":"app","opcode":"field","args":[{"id":1931,"kind":"name","name":"currentState"},{"id":1932,"kind":"str","value":"providerState"}]},{"id":1934,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":1936,"kind":"name","name":"consumer"},{"id":1937,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"1950":{"id":1949,"name":"otherNode","kind":"param"},"1951":{"id":1942,"name":"node","kind":"param"},"1953":{"id":1939,"kind":"def","name":"valConsPk","qualifier":"val","expr":{"id":1938,"kind":"app","opcode":"getOrElse","args":[{"id":1935,"kind":"app","opcode":"field","args":[{"id":1933,"kind":"app","opcode":"field","args":[{"id":1931,"kind":"name","name":"currentState"},{"id":1932,"kind":"str","value":"providerState"}]},{"id":1934,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":1936,"kind":"name","name":"consumer"},{"id":1937,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"1954":{"id":1949,"name":"otherNode","kind":"param"},"1956":{"id":1946,"kind":"def","name":"consAddr","qualifier":"val","expr":{"id":1945,"kind":"app","opcode":"get","args":[{"id":1943,"kind":"name","name":"valConsPk"},{"id":1944,"kind":"name","name":"node"}]},"depth":1},"1969":{"id":11,"kind":"def","name":"consumerChains","qualifier":"pureval","expr":{"id":10,"kind":"app","opcode":"toSet","args":[{"id":9,"kind":"name","name":"consumerChainList"}]},"depth":0},"1971":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1976":{"id":1970,"name":"consumer","kind":"param"},"1978":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"1987":{"id":11,"kind":"def","name":"consumerChains","qualifier":"pureval","expr":{"id":10,"kind":"app","opcode":"toSet","args":[{"id":9,"kind":"name","name":"consumerChainList"}]},"depth":0},"1989":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"1992":{"id":1988,"name":"consumer","kind":"param"},"2000":{"id":1999,"name":"addr","kind":"param"},"2001":{"id":68,"kind":"def","name":"consumerAddresses","qualifier":"pureval","expr":{"id":67,"kind":"app","opcode":"Set","args":[{"id":57,"kind":"str","value":"consAddr1"},{"id":58,"kind":"str","value":"consAddr2"},{"id":59,"kind":"str","value":"consAddr3"},{"id":60,"kind":"str","value":"consAddr4"},{"id":61,"kind":"str","value":"consAddr5"},{"id":62,"kind":"str","value":"consAddr6"},{"id":63,"kind":"str","value":"consAddr7"},{"id":64,"kind":"str","value":"consAddr8"},{"id":65,"kind":"str","value":"consAddr9"},{"id":66,"kind":"str","value":"consAddr10"}]},"depth":0},"2009":{"id":267,"kind":"def","name":"init","qualifier":"action","expr":{"id":266,"kind":"app","opcode":"actionAll","args":[{"id":241,"kind":"let","opdef":{"id":182,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":181,"kind":"name","name":"GetEmptyProviderState"}},"expr":{"id":240,"kind":"let","opdef":{"id":188,"kind":"def","name":"consumerStates","qualifier":"val","expr":{"id":187,"kind":"app","opcode":"mapBy","args":[{"id":183,"kind":"name","name":"ConsumerChains"},{"id":186,"kind":"lambda","params":[{"id":184,"name":"chain"}],"qualifier":"def","expr":{"id":185,"kind":"name","name":"GetEmptyConsumerState"}}]}},"expr":{"id":239,"kind":"let","opdef":{"id":231,"kind":"def","name":"providerStateWithConsumers","qualifier":"val","expr":{"id":230,"kind":"app","opcode":"with","args":[{"id":222,"kind":"app","opcode":"with","args":[{"id":210,"kind":"app","opcode":"with","args":[{"id":203,"kind":"app","opcode":"with","args":[{"id":196,"kind":"app","opcode":"with","args":[{"id":189,"kind":"name","name":"providerState"},{"id":190,"kind":"str","value":"consumerStatus"},{"id":195,"kind":"app","opcode":"mapBy","args":[{"id":191,"kind":"name","name":"ConsumerChains"},{"id":194,"kind":"lambda","params":[{"id":192,"name":"chain"}],"qualifier":"def","expr":{"id":193,"kind":"name","name":"NOT_CONSUMER"}}]}]},{"id":197,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":202,"kind":"app","opcode":"mapBy","args":[{"id":198,"kind":"name","name":"ConsumerChains"},{"id":201,"kind":"lambda","params":[{"id":199,"name":"chain"}],"qualifier":"def","expr":{"id":200,"kind":"app","opcode":"List","args":[]}}]}]},{"id":204,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":209,"kind":"app","opcode":"mapBy","args":[{"id":205,"kind":"name","name":"ConsumerChains"},{"id":208,"kind":"lambda","params":[{"id":206,"name":"chain"}],"qualifier":"def","expr":{"id":207,"kind":"app","opcode":"List","args":[]}}]}]},{"id":211,"kind":"str","value":"chainState"},{"id":221,"kind":"app","opcode":"with","args":[{"id":218,"kind":"app","opcode":"with","args":[{"id":214,"kind":"app","opcode":"field","args":[{"id":212,"kind":"name","name":"providerState"},{"id":213,"kind":"str","value":"chainState"}]},{"id":215,"kind":"str","value":"votingPowerHistory"},{"id":217,"kind":"app","opcode":"List","args":[{"id":216,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":219,"kind":"str","value":"currentValidatorSet"},{"id":220,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":223,"kind":"str","value":"keyAssignedValSetHistory"},{"id":229,"kind":"app","opcode":"mapBy","args":[{"id":224,"kind":"name","name":"ConsumerChains"},{"id":228,"kind":"lambda","params":[{"id":225,"name":"chain"}],"qualifier":"def","expr":{"id":227,"kind":"app","opcode":"List","args":[{"id":226,"kind":"name","name":"InitialValidatorSet"}]}}]}]}},"expr":{"id":238,"kind":"app","opcode":"assign","args":[{"id":237,"kind":"name","name":"currentState"},{"id":236,"kind":"app","opcode":"Rec","args":[{"id":233,"kind":"str","value":"providerState"},{"id":232,"kind":"name","name":"providerStateWithConsumers"},{"id":235,"kind":"str","value":"consumerStates"},{"id":234,"kind":"name","name":"consumerStates"}]}]}}}},{"id":248,"kind":"app","opcode":"assign","args":[{"id":247,"kind":"name","name":"trace"},{"id":246,"kind":"app","opcode":"List","args":[{"id":245,"kind":"app","opcode":"with","args":[{"id":242,"kind":"name","name":"emptyAction"},{"id":243,"kind":"str","value":"kind"},{"id":244,"kind":"str","value":"init"}]}]}]},{"id":265,"kind":"app","opcode":"assign","args":[{"id":264,"kind":"name","name":"params"},{"id":263,"kind":"app","opcode":"Rec","args":[{"id":250,"kind":"str","value":"VscTimeout"},{"id":249,"kind":"name","name":"VscTimeout"},{"id":252,"kind":"str","value":"CcvTimeout"},{"id":251,"kind":"name","name":"CcvTimeout"},{"id":254,"kind":"str","value":"UnbondingPeriodPerChain"},{"id":253,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":256,"kind":"str","value":"ConsumerChains"},{"id":255,"kind":"name","name":"ConsumerChains"},{"id":258,"kind":"str","value":"Nodes"},{"id":257,"kind":"name","name":"nodes"},{"id":260,"kind":"str","value":"InitialValidatorSet"},{"id":259,"kind":"name","name":"InitialValidatorSet"},{"id":262,"kind":"str","value":"TrustingPeriodPerChain"},{"id":261,"kind":"name","name":"TrustingPeriodPerChain"}]}]}]},"depth":0},"2011":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2013":{"id":11,"kind":"def","name":"consumerChains","qualifier":"pureval","expr":{"id":10,"kind":"app","opcode":"toSet","args":[{"id":9,"kind":"name","name":"consumerChainList"}]},"depth":0},"2015":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"2020":{"id":1635,"kind":"def","name":"KeyAssignment","qualifier":"action","expr":{"id":1634,"kind":"lambda","params":[{"id":1589,"name":"chain"},{"id":1591,"name":"validator"},{"id":1593,"name":"consumerAddr"}],"qualifier":"action","expr":{"id":1632,"kind":"let","opdef":{"id":1601,"kind":"def","name":"result","qualifier":"val","expr":{"id":1600,"kind":"app","opcode":"assignConsumerKey","args":[{"id":1596,"kind":"name","name":"currentState"},{"id":1597,"kind":"name","name":"chain"},{"id":1598,"kind":"name","name":"validator"},{"id":1599,"kind":"name","name":"consumerAddr"}]}},"expr":{"id":1631,"kind":"app","opcode":"actionAll","args":[{"id":1605,"kind":"app","opcode":"eq","args":[{"id":1603,"kind":"app","opcode":"hasError","args":[{"id":1602,"kind":"name","name":"result"}]},{"id":1604,"kind":"bool","value":false}]},{"id":1610,"kind":"app","opcode":"assign","args":[{"id":1609,"kind":"name","name":"currentState"},{"id":1608,"kind":"app","opcode":"field","args":[{"id":1606,"kind":"name","name":"result"},{"id":1607,"kind":"str","value":"newState"}]}]},{"id":1627,"kind":"app","opcode":"assign","args":[{"id":1626,"kind":"name","name":"trace"},{"id":1625,"kind":"app","opcode":"append","args":[{"id":1611,"kind":"name","name":"trace"},{"id":1624,"kind":"app","opcode":"with","args":[{"id":1623,"kind":"app","opcode":"with","args":[{"id":1622,"kind":"app","opcode":"with","args":[{"id":1621,"kind":"app","opcode":"with","args":[{"id":1612,"kind":"name","name":"emptyAction"},{"id":1614,"kind":"str","value":"kind"},{"id":1613,"kind":"str","value":"KeyAssignment"}]},{"id":1616,"kind":"str","value":"consumerChain"},{"id":1615,"kind":"name","name":"chain"}]},{"id":1618,"kind":"str","value":"validator"},{"id":1617,"kind":"name","name":"validator"}]},{"id":1620,"kind":"str","value":"consumerAddr"},{"id":1619,"kind":"name","name":"consumerAddr"}]}]}]},{"id":1630,"kind":"app","opcode":"assign","args":[{"id":1629,"kind":"name","name":"params"},{"id":1628,"kind":"name","name":"params"}]}]}}},"depth":0},"2023":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2027":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"2030":{"id":348,"kind":"def","name":"DeliverVscPacket","qualifier":"action","expr":{"id":347,"kind":"lambda","params":[{"id":309,"name":"receiver"}],"qualifier":"action","expr":{"id":345,"kind":"let","opdef":{"id":315,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":314,"kind":"app","opcode":"deliverPacketToConsumer","args":[{"id":312,"kind":"name","name":"currentState"},{"id":313,"kind":"name","name":"receiver"}]}},"expr":{"id":344,"kind":"let","opdef":{"id":319,"kind":"def","name":"result","qualifier":"val","expr":{"id":318,"kind":"app","opcode":"item","args":[{"id":316,"kind":"name","name":"resultAndTimeout"},{"id":317,"kind":"int","value":1}]}},"expr":{"id":343,"kind":"app","opcode":"actionAll","args":[{"id":323,"kind":"app","opcode":"eq","args":[{"id":321,"kind":"app","opcode":"hasError","args":[{"id":320,"kind":"name","name":"result"}]},{"id":322,"kind":"bool","value":false}]},{"id":328,"kind":"app","opcode":"assign","args":[{"id":327,"kind":"name","name":"currentState"},{"id":326,"kind":"app","opcode":"field","args":[{"id":324,"kind":"name","name":"result"},{"id":325,"kind":"str","value":"newState"}]}]},{"id":339,"kind":"app","opcode":"assign","args":[{"id":338,"kind":"name","name":"trace"},{"id":337,"kind":"app","opcode":"append","args":[{"id":329,"kind":"name","name":"trace"},{"id":336,"kind":"app","opcode":"with","args":[{"id":333,"kind":"app","opcode":"with","args":[{"id":330,"kind":"name","name":"emptyAction"},{"id":331,"kind":"str","value":"kind"},{"id":332,"kind":"str","value":"DeliverVscPacket"}]},{"id":334,"kind":"str","value":"consumerChain"},{"id":335,"kind":"name","name":"receiver"}]}]}]},{"id":342,"kind":"app","opcode":"assign","args":[{"id":341,"kind":"name","name":"params"},{"id":340,"kind":"name","name":"params"}]}]}}}},"depth":0},"2034":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2036":{"id":478,"kind":"def","name":"EndAndBeginBlockForConsumer","qualifier":"action","expr":{"id":477,"kind":"lambda","params":[{"id":438,"name":"chain"},{"id":440,"name":"timeAdvancement"}],"qualifier":"action","expr":{"id":475,"kind":"let","opdef":{"id":447,"kind":"def","name":"result","qualifier":"val","expr":{"id":446,"kind":"app","opcode":"endAndBeginBlockForConsumer","args":[{"id":443,"kind":"name","name":"currentState"},{"id":444,"kind":"name","name":"chain"},{"id":445,"kind":"name","name":"timeAdvancement"}]}},"expr":{"id":474,"kind":"app","opcode":"actionAll","args":[{"id":451,"kind":"app","opcode":"eq","args":[{"id":449,"kind":"app","opcode":"hasError","args":[{"id":448,"kind":"name","name":"result"}]},{"id":450,"kind":"bool","value":false}]},{"id":456,"kind":"app","opcode":"assign","args":[{"id":455,"kind":"name","name":"currentState"},{"id":454,"kind":"app","opcode":"field","args":[{"id":452,"kind":"name","name":"result"},{"id":453,"kind":"str","value":"newState"}]}]},{"id":470,"kind":"app","opcode":"assign","args":[{"id":469,"kind":"name","name":"trace"},{"id":468,"kind":"app","opcode":"append","args":[{"id":457,"kind":"name","name":"trace"},{"id":467,"kind":"app","opcode":"with","args":[{"id":464,"kind":"app","opcode":"with","args":[{"id":461,"kind":"app","opcode":"with","args":[{"id":458,"kind":"name","name":"emptyAction"},{"id":459,"kind":"str","value":"kind"},{"id":460,"kind":"str","value":"EndAndBeginBlockForConsumer"}]},{"id":462,"kind":"str","value":"consumerChain"},{"id":463,"kind":"name","name":"chain"}]},{"id":465,"kind":"str","value":"timeAdvancement"},{"id":466,"kind":"name","name":"timeAdvancement"}]}]}]},{"id":473,"kind":"app","opcode":"assign","args":[{"id":472,"kind":"name","name":"params"},{"id":471,"kind":"name","name":"params"}]}]}}},"depth":0},"2038":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2052":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2066":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2070":{"id":3614,"kind":"def","name":"assignConsumerKey","qualifier":"puredef","expr":{"id":3613,"kind":"lambda","params":[{"id":3381,"name":"currentState"},{"id":3383,"name":"consumer"},{"id":3385,"name":"providerNode"},{"id":3387,"name":"consumerAddr"}],"qualifier":"puredef","expr":{"id":3611,"kind":"let","opdef":{"id":3397,"kind":"def","name":"provCurValSet","qualifier":"pureval","expr":{"id":3396,"kind":"app","opcode":"field","args":[{"id":3394,"kind":"app","opcode":"field","args":[{"id":3392,"kind":"app","opcode":"field","args":[{"id":3390,"kind":"name","name":"currentState"},{"id":3391,"kind":"str","value":"providerState"}]},{"id":3393,"kind":"str","value":"chainState"}]},{"id":3395,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3610,"kind":"app","opcode":"ite","args":[{"id":3409,"kind":"app","opcode":"exists","args":[{"id":3399,"kind":"app","opcode":"keys","args":[{"id":3398,"kind":"name","name":"provCurValSet"}]},{"id":3408,"kind":"lambda","params":[{"id":3400,"name":"node"}],"qualifier":"def","expr":{"id":3407,"kind":"app","opcode":"and","args":[{"id":3403,"kind":"app","opcode":"neq","args":[{"id":3401,"kind":"name","name":"node"},{"id":3402,"kind":"name","name":"providerNode"}]},{"id":3406,"kind":"app","opcode":"eq","args":[{"id":3404,"kind":"name","name":"node"},{"id":3405,"kind":"name","name":"consumerAddr"}]}]}}]},{"id":3411,"kind":"app","opcode":"Err","args":[{"id":3410,"kind":"str","value":"validator A cannot assign consumer key K to consumer chain X\n if there is already a validator B (B!=A) using K on the provider"}]},{"id":3609,"kind":"let","opdef":{"id":3420,"kind":"def","name":"valByConsAddr","qualifier":"pureval","expr":{"id":3419,"kind":"app","opcode":"getOrElse","args":[{"id":3416,"kind":"app","opcode":"field","args":[{"id":3414,"kind":"app","opcode":"field","args":[{"id":3412,"kind":"name","name":"currentState"},{"id":3413,"kind":"str","value":"providerState"}]},{"id":3415,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3417,"kind":"name","name":"consumer"},{"id":3418,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3608,"kind":"app","opcode":"ite","args":[{"id":3424,"kind":"app","opcode":"contains","args":[{"id":3422,"kind":"app","opcode":"keys","args":[{"id":3421,"kind":"name","name":"valByConsAddr"}]},{"id":3423,"kind":"name","name":"consumerAddr"}]},{"id":3426,"kind":"app","opcode":"Err","args":[{"id":3425,"kind":"str","value":"consumer key is already in use on the consumer chain"}]},{"id":3607,"kind":"let","opdef":{"id":3435,"kind":"def","name":"consKeyByVal","qualifier":"pureval","expr":{"id":3434,"kind":"app","opcode":"getOrElse","args":[{"id":3431,"kind":"app","opcode":"field","args":[{"id":3429,"kind":"app","opcode":"field","args":[{"id":3427,"kind":"name","name":"currentState"},{"id":3428,"kind":"str","value":"providerState"}]},{"id":3430,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3432,"kind":"name","name":"consumer"},{"id":3433,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3606,"kind":"let","opdef":{"id":3449,"kind":"def","name":"p","qualifier":"pureval","expr":{"id":3448,"kind":"app","opcode":"ite","args":[{"id":3439,"kind":"app","opcode":"contains","args":[{"id":3437,"kind":"app","opcode":"keys","args":[{"id":3436,"kind":"name","name":"consKeyByVal"}]},{"id":3438,"kind":"name","name":"providerNode"}]},{"id":3444,"kind":"app","opcode":"Tup","args":[{"id":3442,"kind":"app","opcode":"get","args":[{"id":3440,"kind":"name","name":"consKeyByVal"},{"id":3441,"kind":"name","name":"providerNode"}]},{"id":3443,"kind":"bool","value":true}]},{"id":3447,"kind":"app","opcode":"Tup","args":[{"id":3445,"kind":"name","name":"providerNode"},{"id":3446,"kind":"bool","value":false}]}]}},"expr":{"id":3605,"kind":"let","opdef":{"id":3453,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":3452,"kind":"app","opcode":"item","args":[{"id":3450,"kind":"name","name":"p"},{"id":3451,"kind":"int","value":1}]}},"expr":{"id":3604,"kind":"let","opdef":{"id":3457,"kind":"def","name":"prevAssigned","qualifier":"pureval","expr":{"id":3456,"kind":"app","opcode":"item","args":[{"id":3454,"kind":"name","name":"p"},{"id":3455,"kind":"int","value":2}]}},"expr":{"id":3603,"kind":"let","opdef":{"id":3465,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":3464,"kind":"app","opcode":"ite","args":[{"id":3458,"kind":"name","name":"prevAssigned"},{"id":3462,"kind":"app","opcode":"AppendConsumerAddrToPrune","args":[{"id":3459,"kind":"name","name":"currentState"},{"id":3460,"kind":"name","name":"oldConsAddr"},{"id":3461,"kind":"name","name":"consumer"}]},{"id":3463,"kind":"name","name":"currentState"}]}},"expr":{"id":3602,"kind":"let","opdef":{"id":3473,"kind":"def","name":"provValSet","qualifier":"pureval","expr":{"id":3472,"kind":"app","opcode":"field","args":[{"id":3470,"kind":"app","opcode":"field","args":[{"id":3468,"kind":"app","opcode":"field","args":[{"id":3466,"kind":"name","name":"currentState"},{"id":3467,"kind":"str","value":"providerState"}]},{"id":3469,"kind":"str","value":"chainState"}]},{"id":3471,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3601,"kind":"let","opdef":{"id":3483,"kind":"def","name":"provValPower","qualifier":"pureval","expr":{"id":3482,"kind":"app","opcode":"ite","args":[{"id":3477,"kind":"app","opcode":"contains","args":[{"id":3475,"kind":"app","opcode":"keys","args":[{"id":3474,"kind":"name","name":"provValSet"}]},{"id":3476,"kind":"name","name":"providerNode"}]},{"id":3480,"kind":"app","opcode":"get","args":[{"id":3478,"kind":"name","name":"provValSet"},{"id":3479,"kind":"name","name":"providerNode"}]},{"id":3481,"kind":"int","value":0}]}},"expr":{"id":3600,"kind":"let","opdef":{"id":3526,"kind":"def","name":"newKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3525,"kind":"app","opcode":"ite","args":[{"id":3499,"kind":"app","opcode":"and","args":[{"id":3486,"kind":"app","opcode":"igt","args":[{"id":3484,"kind":"name","name":"provValPower"},{"id":3485,"kind":"int","value":0}]},{"id":3498,"kind":"app","opcode":"not","args":[{"id":3497,"kind":"app","opcode":"contains","args":[{"id":3495,"kind":"app","opcode":"keys","args":[{"id":3494,"kind":"app","opcode":"getOrElse","args":[{"id":3491,"kind":"app","opcode":"field","args":[{"id":3489,"kind":"app","opcode":"field","args":[{"id":3487,"kind":"name","name":"currentState"},{"id":3488,"kind":"str","value":"providerState"}]},{"id":3490,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3492,"kind":"name","name":"consumer"},{"id":3493,"kind":"app","opcode":"Map","args":[]}]}]},{"id":3496,"kind":"name","name":"providerNode"}]}]}]},{"id":3519,"kind":"app","opcode":"put","args":[{"id":3504,"kind":"app","opcode":"field","args":[{"id":3502,"kind":"app","opcode":"field","args":[{"id":3500,"kind":"name","name":"currentState"},{"id":3501,"kind":"str","value":"providerState"}]},{"id":3503,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3505,"kind":"name","name":"consumer"},{"id":3518,"kind":"app","opcode":"put","args":[{"id":3513,"kind":"app","opcode":"getOrElse","args":[{"id":3510,"kind":"app","opcode":"field","args":[{"id":3508,"kind":"app","opcode":"field","args":[{"id":3506,"kind":"name","name":"currentState"},{"id":3507,"kind":"str","value":"providerState"}]},{"id":3509,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3511,"kind":"name","name":"consumer"},{"id":3512,"kind":"app","opcode":"Map","args":[]}]},{"id":3514,"kind":"name","name":"providerNode"},{"id":3517,"kind":"app","opcode":"Tup","args":[{"id":3515,"kind":"name","name":"oldConsAddr"},{"id":3516,"kind":"name","name":"provValPower"}]}]}]},{"id":3524,"kind":"app","opcode":"field","args":[{"id":3522,"kind":"app","opcode":"field","args":[{"id":3520,"kind":"name","name":"currentState"},{"id":3521,"kind":"str","value":"providerState"}]},{"id":3523,"kind":"str","value":"keyAssignmentReplacements"}]}]}},"expr":{"id":3599,"kind":"let","opdef":{"id":3536,"kind":"def","name":"tmpStateAfterKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3535,"kind":"app","opcode":"with","args":[{"id":3527,"kind":"name","name":"tmpState"},{"id":3528,"kind":"str","value":"providerState"},{"id":3534,"kind":"app","opcode":"with","args":[{"id":3531,"kind":"app","opcode":"field","args":[{"id":3529,"kind":"name","name":"tmpState"},{"id":3530,"kind":"str","value":"providerState"}]},{"id":3532,"kind":"str","value":"keyAssignmentReplacements"},{"id":3533,"kind":"name","name":"newKeyAssignmentReplacement"}]}]}},"expr":{"id":3598,"kind":"let","opdef":{"id":3558,"kind":"def","name":"newValidatorConsumerPubKey","qualifier":"pureval","expr":{"id":3557,"kind":"app","opcode":"put","args":[{"id":3544,"kind":"app","opcode":"getOrElse","args":[{"id":3541,"kind":"app","opcode":"field","args":[{"id":3539,"kind":"app","opcode":"field","args":[{"id":3537,"kind":"name","name":"currentState"},{"id":3538,"kind":"str","value":"providerState"}]},{"id":3540,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3542,"kind":"name","name":"consumer"},{"id":3543,"kind":"app","opcode":"Map","args":[]}]},{"id":3545,"kind":"name","name":"consumer"},{"id":3556,"kind":"app","opcode":"put","args":[{"id":3553,"kind":"app","opcode":"getOrElse","args":[{"id":3550,"kind":"app","opcode":"field","args":[{"id":3548,"kind":"app","opcode":"field","args":[{"id":3546,"kind":"name","name":"currentState"},{"id":3547,"kind":"str","value":"providerState"}]},{"id":3549,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3551,"kind":"name","name":"consumer"},{"id":3552,"kind":"app","opcode":"Map","args":[]}]},{"id":3554,"kind":"name","name":"providerNode"},{"id":3555,"kind":"name","name":"consumerAddr"}]}]}},"expr":{"id":3597,"kind":"let","opdef":{"id":3580,"kind":"def","name":"newValidatorByConsumerAddr","qualifier":"pureval","expr":{"id":3579,"kind":"app","opcode":"put","args":[{"id":3566,"kind":"app","opcode":"getOrElse","args":[{"id":3563,"kind":"app","opcode":"field","args":[{"id":3561,"kind":"app","opcode":"field","args":[{"id":3559,"kind":"name","name":"currentState"},{"id":3560,"kind":"str","value":"providerState"}]},{"id":3562,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3564,"kind":"name","name":"consumer"},{"id":3565,"kind":"app","opcode":"Map","args":[]}]},{"id":3567,"kind":"name","name":"consumer"},{"id":3578,"kind":"app","opcode":"put","args":[{"id":3575,"kind":"app","opcode":"getOrElse","args":[{"id":3572,"kind":"app","opcode":"field","args":[{"id":3570,"kind":"app","opcode":"field","args":[{"id":3568,"kind":"name","name":"currentState"},{"id":3569,"kind":"str","value":"providerState"}]},{"id":3571,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3573,"kind":"name","name":"consumer"},{"id":3574,"kind":"app","opcode":"Map","args":[]}]},{"id":3576,"kind":"name","name":"consumerAddr"},{"id":3577,"kind":"name","name":"providerNode"}]}]}},"expr":{"id":3596,"kind":"let","opdef":{"id":3590,"kind":"def","name":"newProviderState","qualifier":"pureval","expr":{"id":3589,"kind":"app","opcode":"with","args":[{"id":3586,"kind":"app","opcode":"with","args":[{"id":3583,"kind":"app","opcode":"field","args":[{"id":3581,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3582,"kind":"str","value":"providerState"}]},{"id":3584,"kind":"str","value":"validatorConsumerPubKey"},{"id":3585,"kind":"name","name":"newValidatorConsumerPubKey"}]},{"id":3587,"kind":"str","value":"validatorByConsumerAddr"},{"id":3588,"kind":"name","name":"newValidatorByConsumerAddr"}]}},"expr":{"id":3595,"kind":"app","opcode":"Ok","args":[{"id":3594,"kind":"app","opcode":"with","args":[{"id":3591,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3592,"kind":"str","value":"providerState"},{"id":3593,"kind":"name","name":"newProviderState"}]}]}}}}}}}}}}}}}]}}]}}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"2072":{"id":2071,"kind":"def","name":"res","qualifier":"val","expr":{"id":2070,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2066,"kind":"name","name":"currentState"},{"id":2067,"kind":"str","value":"consumer1"},{"id":2068,"kind":"str","value":"node1"},{"id":2069,"kind":"str","value":"consAddr1"}]},"depth":1},"2073":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"2076":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2080":{"id":3614,"kind":"def","name":"assignConsumerKey","qualifier":"puredef","expr":{"id":3613,"kind":"lambda","params":[{"id":3381,"name":"currentState"},{"id":3383,"name":"consumer"},{"id":3385,"name":"providerNode"},{"id":3387,"name":"consumerAddr"}],"qualifier":"puredef","expr":{"id":3611,"kind":"let","opdef":{"id":3397,"kind":"def","name":"provCurValSet","qualifier":"pureval","expr":{"id":3396,"kind":"app","opcode":"field","args":[{"id":3394,"kind":"app","opcode":"field","args":[{"id":3392,"kind":"app","opcode":"field","args":[{"id":3390,"kind":"name","name":"currentState"},{"id":3391,"kind":"str","value":"providerState"}]},{"id":3393,"kind":"str","value":"chainState"}]},{"id":3395,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3610,"kind":"app","opcode":"ite","args":[{"id":3409,"kind":"app","opcode":"exists","args":[{"id":3399,"kind":"app","opcode":"keys","args":[{"id":3398,"kind":"name","name":"provCurValSet"}]},{"id":3408,"kind":"lambda","params":[{"id":3400,"name":"node"}],"qualifier":"def","expr":{"id":3407,"kind":"app","opcode":"and","args":[{"id":3403,"kind":"app","opcode":"neq","args":[{"id":3401,"kind":"name","name":"node"},{"id":3402,"kind":"name","name":"providerNode"}]},{"id":3406,"kind":"app","opcode":"eq","args":[{"id":3404,"kind":"name","name":"node"},{"id":3405,"kind":"name","name":"consumerAddr"}]}]}}]},{"id":3411,"kind":"app","opcode":"Err","args":[{"id":3410,"kind":"str","value":"validator A cannot assign consumer key K to consumer chain X\n if there is already a validator B (B!=A) using K on the provider"}]},{"id":3609,"kind":"let","opdef":{"id":3420,"kind":"def","name":"valByConsAddr","qualifier":"pureval","expr":{"id":3419,"kind":"app","opcode":"getOrElse","args":[{"id":3416,"kind":"app","opcode":"field","args":[{"id":3414,"kind":"app","opcode":"field","args":[{"id":3412,"kind":"name","name":"currentState"},{"id":3413,"kind":"str","value":"providerState"}]},{"id":3415,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3417,"kind":"name","name":"consumer"},{"id":3418,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3608,"kind":"app","opcode":"ite","args":[{"id":3424,"kind":"app","opcode":"contains","args":[{"id":3422,"kind":"app","opcode":"keys","args":[{"id":3421,"kind":"name","name":"valByConsAddr"}]},{"id":3423,"kind":"name","name":"consumerAddr"}]},{"id":3426,"kind":"app","opcode":"Err","args":[{"id":3425,"kind":"str","value":"consumer key is already in use on the consumer chain"}]},{"id":3607,"kind":"let","opdef":{"id":3435,"kind":"def","name":"consKeyByVal","qualifier":"pureval","expr":{"id":3434,"kind":"app","opcode":"getOrElse","args":[{"id":3431,"kind":"app","opcode":"field","args":[{"id":3429,"kind":"app","opcode":"field","args":[{"id":3427,"kind":"name","name":"currentState"},{"id":3428,"kind":"str","value":"providerState"}]},{"id":3430,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3432,"kind":"name","name":"consumer"},{"id":3433,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3606,"kind":"let","opdef":{"id":3449,"kind":"def","name":"p","qualifier":"pureval","expr":{"id":3448,"kind":"app","opcode":"ite","args":[{"id":3439,"kind":"app","opcode":"contains","args":[{"id":3437,"kind":"app","opcode":"keys","args":[{"id":3436,"kind":"name","name":"consKeyByVal"}]},{"id":3438,"kind":"name","name":"providerNode"}]},{"id":3444,"kind":"app","opcode":"Tup","args":[{"id":3442,"kind":"app","opcode":"get","args":[{"id":3440,"kind":"name","name":"consKeyByVal"},{"id":3441,"kind":"name","name":"providerNode"}]},{"id":3443,"kind":"bool","value":true}]},{"id":3447,"kind":"app","opcode":"Tup","args":[{"id":3445,"kind":"name","name":"providerNode"},{"id":3446,"kind":"bool","value":false}]}]}},"expr":{"id":3605,"kind":"let","opdef":{"id":3453,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":3452,"kind":"app","opcode":"item","args":[{"id":3450,"kind":"name","name":"p"},{"id":3451,"kind":"int","value":1}]}},"expr":{"id":3604,"kind":"let","opdef":{"id":3457,"kind":"def","name":"prevAssigned","qualifier":"pureval","expr":{"id":3456,"kind":"app","opcode":"item","args":[{"id":3454,"kind":"name","name":"p"},{"id":3455,"kind":"int","value":2}]}},"expr":{"id":3603,"kind":"let","opdef":{"id":3465,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":3464,"kind":"app","opcode":"ite","args":[{"id":3458,"kind":"name","name":"prevAssigned"},{"id":3462,"kind":"app","opcode":"AppendConsumerAddrToPrune","args":[{"id":3459,"kind":"name","name":"currentState"},{"id":3460,"kind":"name","name":"oldConsAddr"},{"id":3461,"kind":"name","name":"consumer"}]},{"id":3463,"kind":"name","name":"currentState"}]}},"expr":{"id":3602,"kind":"let","opdef":{"id":3473,"kind":"def","name":"provValSet","qualifier":"pureval","expr":{"id":3472,"kind":"app","opcode":"field","args":[{"id":3470,"kind":"app","opcode":"field","args":[{"id":3468,"kind":"app","opcode":"field","args":[{"id":3466,"kind":"name","name":"currentState"},{"id":3467,"kind":"str","value":"providerState"}]},{"id":3469,"kind":"str","value":"chainState"}]},{"id":3471,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3601,"kind":"let","opdef":{"id":3483,"kind":"def","name":"provValPower","qualifier":"pureval","expr":{"id":3482,"kind":"app","opcode":"ite","args":[{"id":3477,"kind":"app","opcode":"contains","args":[{"id":3475,"kind":"app","opcode":"keys","args":[{"id":3474,"kind":"name","name":"provValSet"}]},{"id":3476,"kind":"name","name":"providerNode"}]},{"id":3480,"kind":"app","opcode":"get","args":[{"id":3478,"kind":"name","name":"provValSet"},{"id":3479,"kind":"name","name":"providerNode"}]},{"id":3481,"kind":"int","value":0}]}},"expr":{"id":3600,"kind":"let","opdef":{"id":3526,"kind":"def","name":"newKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3525,"kind":"app","opcode":"ite","args":[{"id":3499,"kind":"app","opcode":"and","args":[{"id":3486,"kind":"app","opcode":"igt","args":[{"id":3484,"kind":"name","name":"provValPower"},{"id":3485,"kind":"int","value":0}]},{"id":3498,"kind":"app","opcode":"not","args":[{"id":3497,"kind":"app","opcode":"contains","args":[{"id":3495,"kind":"app","opcode":"keys","args":[{"id":3494,"kind":"app","opcode":"getOrElse","args":[{"id":3491,"kind":"app","opcode":"field","args":[{"id":3489,"kind":"app","opcode":"field","args":[{"id":3487,"kind":"name","name":"currentState"},{"id":3488,"kind":"str","value":"providerState"}]},{"id":3490,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3492,"kind":"name","name":"consumer"},{"id":3493,"kind":"app","opcode":"Map","args":[]}]}]},{"id":3496,"kind":"name","name":"providerNode"}]}]}]},{"id":3519,"kind":"app","opcode":"put","args":[{"id":3504,"kind":"app","opcode":"field","args":[{"id":3502,"kind":"app","opcode":"field","args":[{"id":3500,"kind":"name","name":"currentState"},{"id":3501,"kind":"str","value":"providerState"}]},{"id":3503,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3505,"kind":"name","name":"consumer"},{"id":3518,"kind":"app","opcode":"put","args":[{"id":3513,"kind":"app","opcode":"getOrElse","args":[{"id":3510,"kind":"app","opcode":"field","args":[{"id":3508,"kind":"app","opcode":"field","args":[{"id":3506,"kind":"name","name":"currentState"},{"id":3507,"kind":"str","value":"providerState"}]},{"id":3509,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3511,"kind":"name","name":"consumer"},{"id":3512,"kind":"app","opcode":"Map","args":[]}]},{"id":3514,"kind":"name","name":"providerNode"},{"id":3517,"kind":"app","opcode":"Tup","args":[{"id":3515,"kind":"name","name":"oldConsAddr"},{"id":3516,"kind":"name","name":"provValPower"}]}]}]},{"id":3524,"kind":"app","opcode":"field","args":[{"id":3522,"kind":"app","opcode":"field","args":[{"id":3520,"kind":"name","name":"currentState"},{"id":3521,"kind":"str","value":"providerState"}]},{"id":3523,"kind":"str","value":"keyAssignmentReplacements"}]}]}},"expr":{"id":3599,"kind":"let","opdef":{"id":3536,"kind":"def","name":"tmpStateAfterKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3535,"kind":"app","opcode":"with","args":[{"id":3527,"kind":"name","name":"tmpState"},{"id":3528,"kind":"str","value":"providerState"},{"id":3534,"kind":"app","opcode":"with","args":[{"id":3531,"kind":"app","opcode":"field","args":[{"id":3529,"kind":"name","name":"tmpState"},{"id":3530,"kind":"str","value":"providerState"}]},{"id":3532,"kind":"str","value":"keyAssignmentReplacements"},{"id":3533,"kind":"name","name":"newKeyAssignmentReplacement"}]}]}},"expr":{"id":3598,"kind":"let","opdef":{"id":3558,"kind":"def","name":"newValidatorConsumerPubKey","qualifier":"pureval","expr":{"id":3557,"kind":"app","opcode":"put","args":[{"id":3544,"kind":"app","opcode":"getOrElse","args":[{"id":3541,"kind":"app","opcode":"field","args":[{"id":3539,"kind":"app","opcode":"field","args":[{"id":3537,"kind":"name","name":"currentState"},{"id":3538,"kind":"str","value":"providerState"}]},{"id":3540,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3542,"kind":"name","name":"consumer"},{"id":3543,"kind":"app","opcode":"Map","args":[]}]},{"id":3545,"kind":"name","name":"consumer"},{"id":3556,"kind":"app","opcode":"put","args":[{"id":3553,"kind":"app","opcode":"getOrElse","args":[{"id":3550,"kind":"app","opcode":"field","args":[{"id":3548,"kind":"app","opcode":"field","args":[{"id":3546,"kind":"name","name":"currentState"},{"id":3547,"kind":"str","value":"providerState"}]},{"id":3549,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3551,"kind":"name","name":"consumer"},{"id":3552,"kind":"app","opcode":"Map","args":[]}]},{"id":3554,"kind":"name","name":"providerNode"},{"id":3555,"kind":"name","name":"consumerAddr"}]}]}},"expr":{"id":3597,"kind":"let","opdef":{"id":3580,"kind":"def","name":"newValidatorByConsumerAddr","qualifier":"pureval","expr":{"id":3579,"kind":"app","opcode":"put","args":[{"id":3566,"kind":"app","opcode":"getOrElse","args":[{"id":3563,"kind":"app","opcode":"field","args":[{"id":3561,"kind":"app","opcode":"field","args":[{"id":3559,"kind":"name","name":"currentState"},{"id":3560,"kind":"str","value":"providerState"}]},{"id":3562,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3564,"kind":"name","name":"consumer"},{"id":3565,"kind":"app","opcode":"Map","args":[]}]},{"id":3567,"kind":"name","name":"consumer"},{"id":3578,"kind":"app","opcode":"put","args":[{"id":3575,"kind":"app","opcode":"getOrElse","args":[{"id":3572,"kind":"app","opcode":"field","args":[{"id":3570,"kind":"app","opcode":"field","args":[{"id":3568,"kind":"name","name":"currentState"},{"id":3569,"kind":"str","value":"providerState"}]},{"id":3571,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3573,"kind":"name","name":"consumer"},{"id":3574,"kind":"app","opcode":"Map","args":[]}]},{"id":3576,"kind":"name","name":"consumerAddr"},{"id":3577,"kind":"name","name":"providerNode"}]}]}},"expr":{"id":3596,"kind":"let","opdef":{"id":3590,"kind":"def","name":"newProviderState","qualifier":"pureval","expr":{"id":3589,"kind":"app","opcode":"with","args":[{"id":3586,"kind":"app","opcode":"with","args":[{"id":3583,"kind":"app","opcode":"field","args":[{"id":3581,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3582,"kind":"str","value":"providerState"}]},{"id":3584,"kind":"str","value":"validatorConsumerPubKey"},{"id":3585,"kind":"name","name":"newValidatorConsumerPubKey"}]},{"id":3587,"kind":"str","value":"validatorByConsumerAddr"},{"id":3588,"kind":"name","name":"newValidatorByConsumerAddr"}]}},"expr":{"id":3595,"kind":"app","opcode":"Ok","args":[{"id":3594,"kind":"app","opcode":"with","args":[{"id":3591,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3592,"kind":"str","value":"providerState"},{"id":3593,"kind":"name","name":"newProviderState"}]}]}}}}}}}}}}}}}]}}]}}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"2082":{"id":2081,"kind":"def","name":"res2","qualifier":"val","expr":{"id":2080,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2076,"kind":"name","name":"currentState"},{"id":2077,"kind":"str","value":"consumer1"},{"id":2078,"kind":"str","value":"node2"},{"id":2079,"kind":"str","value":"consAddr1"}]},"depth":1},"2083":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"2086":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2090":{"id":3614,"kind":"def","name":"assignConsumerKey","qualifier":"puredef","expr":{"id":3613,"kind":"lambda","params":[{"id":3381,"name":"currentState"},{"id":3383,"name":"consumer"},{"id":3385,"name":"providerNode"},{"id":3387,"name":"consumerAddr"}],"qualifier":"puredef","expr":{"id":3611,"kind":"let","opdef":{"id":3397,"kind":"def","name":"provCurValSet","qualifier":"pureval","expr":{"id":3396,"kind":"app","opcode":"field","args":[{"id":3394,"kind":"app","opcode":"field","args":[{"id":3392,"kind":"app","opcode":"field","args":[{"id":3390,"kind":"name","name":"currentState"},{"id":3391,"kind":"str","value":"providerState"}]},{"id":3393,"kind":"str","value":"chainState"}]},{"id":3395,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3610,"kind":"app","opcode":"ite","args":[{"id":3409,"kind":"app","opcode":"exists","args":[{"id":3399,"kind":"app","opcode":"keys","args":[{"id":3398,"kind":"name","name":"provCurValSet"}]},{"id":3408,"kind":"lambda","params":[{"id":3400,"name":"node"}],"qualifier":"def","expr":{"id":3407,"kind":"app","opcode":"and","args":[{"id":3403,"kind":"app","opcode":"neq","args":[{"id":3401,"kind":"name","name":"node"},{"id":3402,"kind":"name","name":"providerNode"}]},{"id":3406,"kind":"app","opcode":"eq","args":[{"id":3404,"kind":"name","name":"node"},{"id":3405,"kind":"name","name":"consumerAddr"}]}]}}]},{"id":3411,"kind":"app","opcode":"Err","args":[{"id":3410,"kind":"str","value":"validator A cannot assign consumer key K to consumer chain X\n if there is already a validator B (B!=A) using K on the provider"}]},{"id":3609,"kind":"let","opdef":{"id":3420,"kind":"def","name":"valByConsAddr","qualifier":"pureval","expr":{"id":3419,"kind":"app","opcode":"getOrElse","args":[{"id":3416,"kind":"app","opcode":"field","args":[{"id":3414,"kind":"app","opcode":"field","args":[{"id":3412,"kind":"name","name":"currentState"},{"id":3413,"kind":"str","value":"providerState"}]},{"id":3415,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3417,"kind":"name","name":"consumer"},{"id":3418,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3608,"kind":"app","opcode":"ite","args":[{"id":3424,"kind":"app","opcode":"contains","args":[{"id":3422,"kind":"app","opcode":"keys","args":[{"id":3421,"kind":"name","name":"valByConsAddr"}]},{"id":3423,"kind":"name","name":"consumerAddr"}]},{"id":3426,"kind":"app","opcode":"Err","args":[{"id":3425,"kind":"str","value":"consumer key is already in use on the consumer chain"}]},{"id":3607,"kind":"let","opdef":{"id":3435,"kind":"def","name":"consKeyByVal","qualifier":"pureval","expr":{"id":3434,"kind":"app","opcode":"getOrElse","args":[{"id":3431,"kind":"app","opcode":"field","args":[{"id":3429,"kind":"app","opcode":"field","args":[{"id":3427,"kind":"name","name":"currentState"},{"id":3428,"kind":"str","value":"providerState"}]},{"id":3430,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3432,"kind":"name","name":"consumer"},{"id":3433,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3606,"kind":"let","opdef":{"id":3449,"kind":"def","name":"p","qualifier":"pureval","expr":{"id":3448,"kind":"app","opcode":"ite","args":[{"id":3439,"kind":"app","opcode":"contains","args":[{"id":3437,"kind":"app","opcode":"keys","args":[{"id":3436,"kind":"name","name":"consKeyByVal"}]},{"id":3438,"kind":"name","name":"providerNode"}]},{"id":3444,"kind":"app","opcode":"Tup","args":[{"id":3442,"kind":"app","opcode":"get","args":[{"id":3440,"kind":"name","name":"consKeyByVal"},{"id":3441,"kind":"name","name":"providerNode"}]},{"id":3443,"kind":"bool","value":true}]},{"id":3447,"kind":"app","opcode":"Tup","args":[{"id":3445,"kind":"name","name":"providerNode"},{"id":3446,"kind":"bool","value":false}]}]}},"expr":{"id":3605,"kind":"let","opdef":{"id":3453,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":3452,"kind":"app","opcode":"item","args":[{"id":3450,"kind":"name","name":"p"},{"id":3451,"kind":"int","value":1}]}},"expr":{"id":3604,"kind":"let","opdef":{"id":3457,"kind":"def","name":"prevAssigned","qualifier":"pureval","expr":{"id":3456,"kind":"app","opcode":"item","args":[{"id":3454,"kind":"name","name":"p"},{"id":3455,"kind":"int","value":2}]}},"expr":{"id":3603,"kind":"let","opdef":{"id":3465,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":3464,"kind":"app","opcode":"ite","args":[{"id":3458,"kind":"name","name":"prevAssigned"},{"id":3462,"kind":"app","opcode":"AppendConsumerAddrToPrune","args":[{"id":3459,"kind":"name","name":"currentState"},{"id":3460,"kind":"name","name":"oldConsAddr"},{"id":3461,"kind":"name","name":"consumer"}]},{"id":3463,"kind":"name","name":"currentState"}]}},"expr":{"id":3602,"kind":"let","opdef":{"id":3473,"kind":"def","name":"provValSet","qualifier":"pureval","expr":{"id":3472,"kind":"app","opcode":"field","args":[{"id":3470,"kind":"app","opcode":"field","args":[{"id":3468,"kind":"app","opcode":"field","args":[{"id":3466,"kind":"name","name":"currentState"},{"id":3467,"kind":"str","value":"providerState"}]},{"id":3469,"kind":"str","value":"chainState"}]},{"id":3471,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3601,"kind":"let","opdef":{"id":3483,"kind":"def","name":"provValPower","qualifier":"pureval","expr":{"id":3482,"kind":"app","opcode":"ite","args":[{"id":3477,"kind":"app","opcode":"contains","args":[{"id":3475,"kind":"app","opcode":"keys","args":[{"id":3474,"kind":"name","name":"provValSet"}]},{"id":3476,"kind":"name","name":"providerNode"}]},{"id":3480,"kind":"app","opcode":"get","args":[{"id":3478,"kind":"name","name":"provValSet"},{"id":3479,"kind":"name","name":"providerNode"}]},{"id":3481,"kind":"int","value":0}]}},"expr":{"id":3600,"kind":"let","opdef":{"id":3526,"kind":"def","name":"newKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3525,"kind":"app","opcode":"ite","args":[{"id":3499,"kind":"app","opcode":"and","args":[{"id":3486,"kind":"app","opcode":"igt","args":[{"id":3484,"kind":"name","name":"provValPower"},{"id":3485,"kind":"int","value":0}]},{"id":3498,"kind":"app","opcode":"not","args":[{"id":3497,"kind":"app","opcode":"contains","args":[{"id":3495,"kind":"app","opcode":"keys","args":[{"id":3494,"kind":"app","opcode":"getOrElse","args":[{"id":3491,"kind":"app","opcode":"field","args":[{"id":3489,"kind":"app","opcode":"field","args":[{"id":3487,"kind":"name","name":"currentState"},{"id":3488,"kind":"str","value":"providerState"}]},{"id":3490,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3492,"kind":"name","name":"consumer"},{"id":3493,"kind":"app","opcode":"Map","args":[]}]}]},{"id":3496,"kind":"name","name":"providerNode"}]}]}]},{"id":3519,"kind":"app","opcode":"put","args":[{"id":3504,"kind":"app","opcode":"field","args":[{"id":3502,"kind":"app","opcode":"field","args":[{"id":3500,"kind":"name","name":"currentState"},{"id":3501,"kind":"str","value":"providerState"}]},{"id":3503,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3505,"kind":"name","name":"consumer"},{"id":3518,"kind":"app","opcode":"put","args":[{"id":3513,"kind":"app","opcode":"getOrElse","args":[{"id":3510,"kind":"app","opcode":"field","args":[{"id":3508,"kind":"app","opcode":"field","args":[{"id":3506,"kind":"name","name":"currentState"},{"id":3507,"kind":"str","value":"providerState"}]},{"id":3509,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3511,"kind":"name","name":"consumer"},{"id":3512,"kind":"app","opcode":"Map","args":[]}]},{"id":3514,"kind":"name","name":"providerNode"},{"id":3517,"kind":"app","opcode":"Tup","args":[{"id":3515,"kind":"name","name":"oldConsAddr"},{"id":3516,"kind":"name","name":"provValPower"}]}]}]},{"id":3524,"kind":"app","opcode":"field","args":[{"id":3522,"kind":"app","opcode":"field","args":[{"id":3520,"kind":"name","name":"currentState"},{"id":3521,"kind":"str","value":"providerState"}]},{"id":3523,"kind":"str","value":"keyAssignmentReplacements"}]}]}},"expr":{"id":3599,"kind":"let","opdef":{"id":3536,"kind":"def","name":"tmpStateAfterKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3535,"kind":"app","opcode":"with","args":[{"id":3527,"kind":"name","name":"tmpState"},{"id":3528,"kind":"str","value":"providerState"},{"id":3534,"kind":"app","opcode":"with","args":[{"id":3531,"kind":"app","opcode":"field","args":[{"id":3529,"kind":"name","name":"tmpState"},{"id":3530,"kind":"str","value":"providerState"}]},{"id":3532,"kind":"str","value":"keyAssignmentReplacements"},{"id":3533,"kind":"name","name":"newKeyAssignmentReplacement"}]}]}},"expr":{"id":3598,"kind":"let","opdef":{"id":3558,"kind":"def","name":"newValidatorConsumerPubKey","qualifier":"pureval","expr":{"id":3557,"kind":"app","opcode":"put","args":[{"id":3544,"kind":"app","opcode":"getOrElse","args":[{"id":3541,"kind":"app","opcode":"field","args":[{"id":3539,"kind":"app","opcode":"field","args":[{"id":3537,"kind":"name","name":"currentState"},{"id":3538,"kind":"str","value":"providerState"}]},{"id":3540,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3542,"kind":"name","name":"consumer"},{"id":3543,"kind":"app","opcode":"Map","args":[]}]},{"id":3545,"kind":"name","name":"consumer"},{"id":3556,"kind":"app","opcode":"put","args":[{"id":3553,"kind":"app","opcode":"getOrElse","args":[{"id":3550,"kind":"app","opcode":"field","args":[{"id":3548,"kind":"app","opcode":"field","args":[{"id":3546,"kind":"name","name":"currentState"},{"id":3547,"kind":"str","value":"providerState"}]},{"id":3549,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3551,"kind":"name","name":"consumer"},{"id":3552,"kind":"app","opcode":"Map","args":[]}]},{"id":3554,"kind":"name","name":"providerNode"},{"id":3555,"kind":"name","name":"consumerAddr"}]}]}},"expr":{"id":3597,"kind":"let","opdef":{"id":3580,"kind":"def","name":"newValidatorByConsumerAddr","qualifier":"pureval","expr":{"id":3579,"kind":"app","opcode":"put","args":[{"id":3566,"kind":"app","opcode":"getOrElse","args":[{"id":3563,"kind":"app","opcode":"field","args":[{"id":3561,"kind":"app","opcode":"field","args":[{"id":3559,"kind":"name","name":"currentState"},{"id":3560,"kind":"str","value":"providerState"}]},{"id":3562,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3564,"kind":"name","name":"consumer"},{"id":3565,"kind":"app","opcode":"Map","args":[]}]},{"id":3567,"kind":"name","name":"consumer"},{"id":3578,"kind":"app","opcode":"put","args":[{"id":3575,"kind":"app","opcode":"getOrElse","args":[{"id":3572,"kind":"app","opcode":"field","args":[{"id":3570,"kind":"app","opcode":"field","args":[{"id":3568,"kind":"name","name":"currentState"},{"id":3569,"kind":"str","value":"providerState"}]},{"id":3571,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3573,"kind":"name","name":"consumer"},{"id":3574,"kind":"app","opcode":"Map","args":[]}]},{"id":3576,"kind":"name","name":"consumerAddr"},{"id":3577,"kind":"name","name":"providerNode"}]}]}},"expr":{"id":3596,"kind":"let","opdef":{"id":3590,"kind":"def","name":"newProviderState","qualifier":"pureval","expr":{"id":3589,"kind":"app","opcode":"with","args":[{"id":3586,"kind":"app","opcode":"with","args":[{"id":3583,"kind":"app","opcode":"field","args":[{"id":3581,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3582,"kind":"str","value":"providerState"}]},{"id":3584,"kind":"str","value":"validatorConsumerPubKey"},{"id":3585,"kind":"name","name":"newValidatorConsumerPubKey"}]},{"id":3587,"kind":"str","value":"validatorByConsumerAddr"},{"id":3588,"kind":"name","name":"newValidatorByConsumerAddr"}]}},"expr":{"id":3595,"kind":"app","opcode":"Ok","args":[{"id":3594,"kind":"app","opcode":"with","args":[{"id":3591,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3592,"kind":"str","value":"providerState"},{"id":3593,"kind":"name","name":"newProviderState"}]}]}}}}}}}}}}}}}]}}]}}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"2092":{"id":2091,"kind":"def","name":"res3","qualifier":"val","expr":{"id":2090,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2086,"kind":"name","name":"currentState"},{"id":2087,"kind":"str","value":"consumer2"},{"id":2088,"kind":"str","value":"node2"},{"id":2089,"kind":"str","value":"consAddr1"}]},"depth":1},"2093":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"2097":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2101":{"id":3614,"kind":"def","name":"assignConsumerKey","qualifier":"puredef","expr":{"id":3613,"kind":"lambda","params":[{"id":3381,"name":"currentState"},{"id":3383,"name":"consumer"},{"id":3385,"name":"providerNode"},{"id":3387,"name":"consumerAddr"}],"qualifier":"puredef","expr":{"id":3611,"kind":"let","opdef":{"id":3397,"kind":"def","name":"provCurValSet","qualifier":"pureval","expr":{"id":3396,"kind":"app","opcode":"field","args":[{"id":3394,"kind":"app","opcode":"field","args":[{"id":3392,"kind":"app","opcode":"field","args":[{"id":3390,"kind":"name","name":"currentState"},{"id":3391,"kind":"str","value":"providerState"}]},{"id":3393,"kind":"str","value":"chainState"}]},{"id":3395,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3610,"kind":"app","opcode":"ite","args":[{"id":3409,"kind":"app","opcode":"exists","args":[{"id":3399,"kind":"app","opcode":"keys","args":[{"id":3398,"kind":"name","name":"provCurValSet"}]},{"id":3408,"kind":"lambda","params":[{"id":3400,"name":"node"}],"qualifier":"def","expr":{"id":3407,"kind":"app","opcode":"and","args":[{"id":3403,"kind":"app","opcode":"neq","args":[{"id":3401,"kind":"name","name":"node"},{"id":3402,"kind":"name","name":"providerNode"}]},{"id":3406,"kind":"app","opcode":"eq","args":[{"id":3404,"kind":"name","name":"node"},{"id":3405,"kind":"name","name":"consumerAddr"}]}]}}]},{"id":3411,"kind":"app","opcode":"Err","args":[{"id":3410,"kind":"str","value":"validator A cannot assign consumer key K to consumer chain X\n if there is already a validator B (B!=A) using K on the provider"}]},{"id":3609,"kind":"let","opdef":{"id":3420,"kind":"def","name":"valByConsAddr","qualifier":"pureval","expr":{"id":3419,"kind":"app","opcode":"getOrElse","args":[{"id":3416,"kind":"app","opcode":"field","args":[{"id":3414,"kind":"app","opcode":"field","args":[{"id":3412,"kind":"name","name":"currentState"},{"id":3413,"kind":"str","value":"providerState"}]},{"id":3415,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3417,"kind":"name","name":"consumer"},{"id":3418,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3608,"kind":"app","opcode":"ite","args":[{"id":3424,"kind":"app","opcode":"contains","args":[{"id":3422,"kind":"app","opcode":"keys","args":[{"id":3421,"kind":"name","name":"valByConsAddr"}]},{"id":3423,"kind":"name","name":"consumerAddr"}]},{"id":3426,"kind":"app","opcode":"Err","args":[{"id":3425,"kind":"str","value":"consumer key is already in use on the consumer chain"}]},{"id":3607,"kind":"let","opdef":{"id":3435,"kind":"def","name":"consKeyByVal","qualifier":"pureval","expr":{"id":3434,"kind":"app","opcode":"getOrElse","args":[{"id":3431,"kind":"app","opcode":"field","args":[{"id":3429,"kind":"app","opcode":"field","args":[{"id":3427,"kind":"name","name":"currentState"},{"id":3428,"kind":"str","value":"providerState"}]},{"id":3430,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3432,"kind":"name","name":"consumer"},{"id":3433,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3606,"kind":"let","opdef":{"id":3449,"kind":"def","name":"p","qualifier":"pureval","expr":{"id":3448,"kind":"app","opcode":"ite","args":[{"id":3439,"kind":"app","opcode":"contains","args":[{"id":3437,"kind":"app","opcode":"keys","args":[{"id":3436,"kind":"name","name":"consKeyByVal"}]},{"id":3438,"kind":"name","name":"providerNode"}]},{"id":3444,"kind":"app","opcode":"Tup","args":[{"id":3442,"kind":"app","opcode":"get","args":[{"id":3440,"kind":"name","name":"consKeyByVal"},{"id":3441,"kind":"name","name":"providerNode"}]},{"id":3443,"kind":"bool","value":true}]},{"id":3447,"kind":"app","opcode":"Tup","args":[{"id":3445,"kind":"name","name":"providerNode"},{"id":3446,"kind":"bool","value":false}]}]}},"expr":{"id":3605,"kind":"let","opdef":{"id":3453,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":3452,"kind":"app","opcode":"item","args":[{"id":3450,"kind":"name","name":"p"},{"id":3451,"kind":"int","value":1}]}},"expr":{"id":3604,"kind":"let","opdef":{"id":3457,"kind":"def","name":"prevAssigned","qualifier":"pureval","expr":{"id":3456,"kind":"app","opcode":"item","args":[{"id":3454,"kind":"name","name":"p"},{"id":3455,"kind":"int","value":2}]}},"expr":{"id":3603,"kind":"let","opdef":{"id":3465,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":3464,"kind":"app","opcode":"ite","args":[{"id":3458,"kind":"name","name":"prevAssigned"},{"id":3462,"kind":"app","opcode":"AppendConsumerAddrToPrune","args":[{"id":3459,"kind":"name","name":"currentState"},{"id":3460,"kind":"name","name":"oldConsAddr"},{"id":3461,"kind":"name","name":"consumer"}]},{"id":3463,"kind":"name","name":"currentState"}]}},"expr":{"id":3602,"kind":"let","opdef":{"id":3473,"kind":"def","name":"provValSet","qualifier":"pureval","expr":{"id":3472,"kind":"app","opcode":"field","args":[{"id":3470,"kind":"app","opcode":"field","args":[{"id":3468,"kind":"app","opcode":"field","args":[{"id":3466,"kind":"name","name":"currentState"},{"id":3467,"kind":"str","value":"providerState"}]},{"id":3469,"kind":"str","value":"chainState"}]},{"id":3471,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3601,"kind":"let","opdef":{"id":3483,"kind":"def","name":"provValPower","qualifier":"pureval","expr":{"id":3482,"kind":"app","opcode":"ite","args":[{"id":3477,"kind":"app","opcode":"contains","args":[{"id":3475,"kind":"app","opcode":"keys","args":[{"id":3474,"kind":"name","name":"provValSet"}]},{"id":3476,"kind":"name","name":"providerNode"}]},{"id":3480,"kind":"app","opcode":"get","args":[{"id":3478,"kind":"name","name":"provValSet"},{"id":3479,"kind":"name","name":"providerNode"}]},{"id":3481,"kind":"int","value":0}]}},"expr":{"id":3600,"kind":"let","opdef":{"id":3526,"kind":"def","name":"newKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3525,"kind":"app","opcode":"ite","args":[{"id":3499,"kind":"app","opcode":"and","args":[{"id":3486,"kind":"app","opcode":"igt","args":[{"id":3484,"kind":"name","name":"provValPower"},{"id":3485,"kind":"int","value":0}]},{"id":3498,"kind":"app","opcode":"not","args":[{"id":3497,"kind":"app","opcode":"contains","args":[{"id":3495,"kind":"app","opcode":"keys","args":[{"id":3494,"kind":"app","opcode":"getOrElse","args":[{"id":3491,"kind":"app","opcode":"field","args":[{"id":3489,"kind":"app","opcode":"field","args":[{"id":3487,"kind":"name","name":"currentState"},{"id":3488,"kind":"str","value":"providerState"}]},{"id":3490,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3492,"kind":"name","name":"consumer"},{"id":3493,"kind":"app","opcode":"Map","args":[]}]}]},{"id":3496,"kind":"name","name":"providerNode"}]}]}]},{"id":3519,"kind":"app","opcode":"put","args":[{"id":3504,"kind":"app","opcode":"field","args":[{"id":3502,"kind":"app","opcode":"field","args":[{"id":3500,"kind":"name","name":"currentState"},{"id":3501,"kind":"str","value":"providerState"}]},{"id":3503,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3505,"kind":"name","name":"consumer"},{"id":3518,"kind":"app","opcode":"put","args":[{"id":3513,"kind":"app","opcode":"getOrElse","args":[{"id":3510,"kind":"app","opcode":"field","args":[{"id":3508,"kind":"app","opcode":"field","args":[{"id":3506,"kind":"name","name":"currentState"},{"id":3507,"kind":"str","value":"providerState"}]},{"id":3509,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3511,"kind":"name","name":"consumer"},{"id":3512,"kind":"app","opcode":"Map","args":[]}]},{"id":3514,"kind":"name","name":"providerNode"},{"id":3517,"kind":"app","opcode":"Tup","args":[{"id":3515,"kind":"name","name":"oldConsAddr"},{"id":3516,"kind":"name","name":"provValPower"}]}]}]},{"id":3524,"kind":"app","opcode":"field","args":[{"id":3522,"kind":"app","opcode":"field","args":[{"id":3520,"kind":"name","name":"currentState"},{"id":3521,"kind":"str","value":"providerState"}]},{"id":3523,"kind":"str","value":"keyAssignmentReplacements"}]}]}},"expr":{"id":3599,"kind":"let","opdef":{"id":3536,"kind":"def","name":"tmpStateAfterKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3535,"kind":"app","opcode":"with","args":[{"id":3527,"kind":"name","name":"tmpState"},{"id":3528,"kind":"str","value":"providerState"},{"id":3534,"kind":"app","opcode":"with","args":[{"id":3531,"kind":"app","opcode":"field","args":[{"id":3529,"kind":"name","name":"tmpState"},{"id":3530,"kind":"str","value":"providerState"}]},{"id":3532,"kind":"str","value":"keyAssignmentReplacements"},{"id":3533,"kind":"name","name":"newKeyAssignmentReplacement"}]}]}},"expr":{"id":3598,"kind":"let","opdef":{"id":3558,"kind":"def","name":"newValidatorConsumerPubKey","qualifier":"pureval","expr":{"id":3557,"kind":"app","opcode":"put","args":[{"id":3544,"kind":"app","opcode":"getOrElse","args":[{"id":3541,"kind":"app","opcode":"field","args":[{"id":3539,"kind":"app","opcode":"field","args":[{"id":3537,"kind":"name","name":"currentState"},{"id":3538,"kind":"str","value":"providerState"}]},{"id":3540,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3542,"kind":"name","name":"consumer"},{"id":3543,"kind":"app","opcode":"Map","args":[]}]},{"id":3545,"kind":"name","name":"consumer"},{"id":3556,"kind":"app","opcode":"put","args":[{"id":3553,"kind":"app","opcode":"getOrElse","args":[{"id":3550,"kind":"app","opcode":"field","args":[{"id":3548,"kind":"app","opcode":"field","args":[{"id":3546,"kind":"name","name":"currentState"},{"id":3547,"kind":"str","value":"providerState"}]},{"id":3549,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3551,"kind":"name","name":"consumer"},{"id":3552,"kind":"app","opcode":"Map","args":[]}]},{"id":3554,"kind":"name","name":"providerNode"},{"id":3555,"kind":"name","name":"consumerAddr"}]}]}},"expr":{"id":3597,"kind":"let","opdef":{"id":3580,"kind":"def","name":"newValidatorByConsumerAddr","qualifier":"pureval","expr":{"id":3579,"kind":"app","opcode":"put","args":[{"id":3566,"kind":"app","opcode":"getOrElse","args":[{"id":3563,"kind":"app","opcode":"field","args":[{"id":3561,"kind":"app","opcode":"field","args":[{"id":3559,"kind":"name","name":"currentState"},{"id":3560,"kind":"str","value":"providerState"}]},{"id":3562,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3564,"kind":"name","name":"consumer"},{"id":3565,"kind":"app","opcode":"Map","args":[]}]},{"id":3567,"kind":"name","name":"consumer"},{"id":3578,"kind":"app","opcode":"put","args":[{"id":3575,"kind":"app","opcode":"getOrElse","args":[{"id":3572,"kind":"app","opcode":"field","args":[{"id":3570,"kind":"app","opcode":"field","args":[{"id":3568,"kind":"name","name":"currentState"},{"id":3569,"kind":"str","value":"providerState"}]},{"id":3571,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3573,"kind":"name","name":"consumer"},{"id":3574,"kind":"app","opcode":"Map","args":[]}]},{"id":3576,"kind":"name","name":"consumerAddr"},{"id":3577,"kind":"name","name":"providerNode"}]}]}},"expr":{"id":3596,"kind":"let","opdef":{"id":3590,"kind":"def","name":"newProviderState","qualifier":"pureval","expr":{"id":3589,"kind":"app","opcode":"with","args":[{"id":3586,"kind":"app","opcode":"with","args":[{"id":3583,"kind":"app","opcode":"field","args":[{"id":3581,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3582,"kind":"str","value":"providerState"}]},{"id":3584,"kind":"str","value":"validatorConsumerPubKey"},{"id":3585,"kind":"name","name":"newValidatorConsumerPubKey"}]},{"id":3587,"kind":"str","value":"validatorByConsumerAddr"},{"id":3588,"kind":"name","name":"newValidatorByConsumerAddr"}]}},"expr":{"id":3595,"kind":"app","opcode":"Ok","args":[{"id":3594,"kind":"app","opcode":"with","args":[{"id":3591,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3592,"kind":"str","value":"providerState"},{"id":3593,"kind":"name","name":"newProviderState"}]}]}}}}}}}}}}}}}]}}]}}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"2103":{"id":2102,"kind":"def","name":"res4","qualifier":"val","expr":{"id":2101,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2097,"kind":"name","name":"currentState"},{"id":2098,"kind":"str","value":"consumer1"},{"id":2099,"kind":"str","value":"node2"},{"id":2100,"kind":"str","value":"node1"}]},"depth":1},"2104":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"2107":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2111":{"id":3614,"kind":"def","name":"assignConsumerKey","qualifier":"puredef","expr":{"id":3613,"kind":"lambda","params":[{"id":3381,"name":"currentState"},{"id":3383,"name":"consumer"},{"id":3385,"name":"providerNode"},{"id":3387,"name":"consumerAddr"}],"qualifier":"puredef","expr":{"id":3611,"kind":"let","opdef":{"id":3397,"kind":"def","name":"provCurValSet","qualifier":"pureval","expr":{"id":3396,"kind":"app","opcode":"field","args":[{"id":3394,"kind":"app","opcode":"field","args":[{"id":3392,"kind":"app","opcode":"field","args":[{"id":3390,"kind":"name","name":"currentState"},{"id":3391,"kind":"str","value":"providerState"}]},{"id":3393,"kind":"str","value":"chainState"}]},{"id":3395,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3610,"kind":"app","opcode":"ite","args":[{"id":3409,"kind":"app","opcode":"exists","args":[{"id":3399,"kind":"app","opcode":"keys","args":[{"id":3398,"kind":"name","name":"provCurValSet"}]},{"id":3408,"kind":"lambda","params":[{"id":3400,"name":"node"}],"qualifier":"def","expr":{"id":3407,"kind":"app","opcode":"and","args":[{"id":3403,"kind":"app","opcode":"neq","args":[{"id":3401,"kind":"name","name":"node"},{"id":3402,"kind":"name","name":"providerNode"}]},{"id":3406,"kind":"app","opcode":"eq","args":[{"id":3404,"kind":"name","name":"node"},{"id":3405,"kind":"name","name":"consumerAddr"}]}]}}]},{"id":3411,"kind":"app","opcode":"Err","args":[{"id":3410,"kind":"str","value":"validator A cannot assign consumer key K to consumer chain X\n if there is already a validator B (B!=A) using K on the provider"}]},{"id":3609,"kind":"let","opdef":{"id":3420,"kind":"def","name":"valByConsAddr","qualifier":"pureval","expr":{"id":3419,"kind":"app","opcode":"getOrElse","args":[{"id":3416,"kind":"app","opcode":"field","args":[{"id":3414,"kind":"app","opcode":"field","args":[{"id":3412,"kind":"name","name":"currentState"},{"id":3413,"kind":"str","value":"providerState"}]},{"id":3415,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3417,"kind":"name","name":"consumer"},{"id":3418,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3608,"kind":"app","opcode":"ite","args":[{"id":3424,"kind":"app","opcode":"contains","args":[{"id":3422,"kind":"app","opcode":"keys","args":[{"id":3421,"kind":"name","name":"valByConsAddr"}]},{"id":3423,"kind":"name","name":"consumerAddr"}]},{"id":3426,"kind":"app","opcode":"Err","args":[{"id":3425,"kind":"str","value":"consumer key is already in use on the consumer chain"}]},{"id":3607,"kind":"let","opdef":{"id":3435,"kind":"def","name":"consKeyByVal","qualifier":"pureval","expr":{"id":3434,"kind":"app","opcode":"getOrElse","args":[{"id":3431,"kind":"app","opcode":"field","args":[{"id":3429,"kind":"app","opcode":"field","args":[{"id":3427,"kind":"name","name":"currentState"},{"id":3428,"kind":"str","value":"providerState"}]},{"id":3430,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3432,"kind":"name","name":"consumer"},{"id":3433,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3606,"kind":"let","opdef":{"id":3449,"kind":"def","name":"p","qualifier":"pureval","expr":{"id":3448,"kind":"app","opcode":"ite","args":[{"id":3439,"kind":"app","opcode":"contains","args":[{"id":3437,"kind":"app","opcode":"keys","args":[{"id":3436,"kind":"name","name":"consKeyByVal"}]},{"id":3438,"kind":"name","name":"providerNode"}]},{"id":3444,"kind":"app","opcode":"Tup","args":[{"id":3442,"kind":"app","opcode":"get","args":[{"id":3440,"kind":"name","name":"consKeyByVal"},{"id":3441,"kind":"name","name":"providerNode"}]},{"id":3443,"kind":"bool","value":true}]},{"id":3447,"kind":"app","opcode":"Tup","args":[{"id":3445,"kind":"name","name":"providerNode"},{"id":3446,"kind":"bool","value":false}]}]}},"expr":{"id":3605,"kind":"let","opdef":{"id":3453,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":3452,"kind":"app","opcode":"item","args":[{"id":3450,"kind":"name","name":"p"},{"id":3451,"kind":"int","value":1}]}},"expr":{"id":3604,"kind":"let","opdef":{"id":3457,"kind":"def","name":"prevAssigned","qualifier":"pureval","expr":{"id":3456,"kind":"app","opcode":"item","args":[{"id":3454,"kind":"name","name":"p"},{"id":3455,"kind":"int","value":2}]}},"expr":{"id":3603,"kind":"let","opdef":{"id":3465,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":3464,"kind":"app","opcode":"ite","args":[{"id":3458,"kind":"name","name":"prevAssigned"},{"id":3462,"kind":"app","opcode":"AppendConsumerAddrToPrune","args":[{"id":3459,"kind":"name","name":"currentState"},{"id":3460,"kind":"name","name":"oldConsAddr"},{"id":3461,"kind":"name","name":"consumer"}]},{"id":3463,"kind":"name","name":"currentState"}]}},"expr":{"id":3602,"kind":"let","opdef":{"id":3473,"kind":"def","name":"provValSet","qualifier":"pureval","expr":{"id":3472,"kind":"app","opcode":"field","args":[{"id":3470,"kind":"app","opcode":"field","args":[{"id":3468,"kind":"app","opcode":"field","args":[{"id":3466,"kind":"name","name":"currentState"},{"id":3467,"kind":"str","value":"providerState"}]},{"id":3469,"kind":"str","value":"chainState"}]},{"id":3471,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3601,"kind":"let","opdef":{"id":3483,"kind":"def","name":"provValPower","qualifier":"pureval","expr":{"id":3482,"kind":"app","opcode":"ite","args":[{"id":3477,"kind":"app","opcode":"contains","args":[{"id":3475,"kind":"app","opcode":"keys","args":[{"id":3474,"kind":"name","name":"provValSet"}]},{"id":3476,"kind":"name","name":"providerNode"}]},{"id":3480,"kind":"app","opcode":"get","args":[{"id":3478,"kind":"name","name":"provValSet"},{"id":3479,"kind":"name","name":"providerNode"}]},{"id":3481,"kind":"int","value":0}]}},"expr":{"id":3600,"kind":"let","opdef":{"id":3526,"kind":"def","name":"newKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3525,"kind":"app","opcode":"ite","args":[{"id":3499,"kind":"app","opcode":"and","args":[{"id":3486,"kind":"app","opcode":"igt","args":[{"id":3484,"kind":"name","name":"provValPower"},{"id":3485,"kind":"int","value":0}]},{"id":3498,"kind":"app","opcode":"not","args":[{"id":3497,"kind":"app","opcode":"contains","args":[{"id":3495,"kind":"app","opcode":"keys","args":[{"id":3494,"kind":"app","opcode":"getOrElse","args":[{"id":3491,"kind":"app","opcode":"field","args":[{"id":3489,"kind":"app","opcode":"field","args":[{"id":3487,"kind":"name","name":"currentState"},{"id":3488,"kind":"str","value":"providerState"}]},{"id":3490,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3492,"kind":"name","name":"consumer"},{"id":3493,"kind":"app","opcode":"Map","args":[]}]}]},{"id":3496,"kind":"name","name":"providerNode"}]}]}]},{"id":3519,"kind":"app","opcode":"put","args":[{"id":3504,"kind":"app","opcode":"field","args":[{"id":3502,"kind":"app","opcode":"field","args":[{"id":3500,"kind":"name","name":"currentState"},{"id":3501,"kind":"str","value":"providerState"}]},{"id":3503,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3505,"kind":"name","name":"consumer"},{"id":3518,"kind":"app","opcode":"put","args":[{"id":3513,"kind":"app","opcode":"getOrElse","args":[{"id":3510,"kind":"app","opcode":"field","args":[{"id":3508,"kind":"app","opcode":"field","args":[{"id":3506,"kind":"name","name":"currentState"},{"id":3507,"kind":"str","value":"providerState"}]},{"id":3509,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3511,"kind":"name","name":"consumer"},{"id":3512,"kind":"app","opcode":"Map","args":[]}]},{"id":3514,"kind":"name","name":"providerNode"},{"id":3517,"kind":"app","opcode":"Tup","args":[{"id":3515,"kind":"name","name":"oldConsAddr"},{"id":3516,"kind":"name","name":"provValPower"}]}]}]},{"id":3524,"kind":"app","opcode":"field","args":[{"id":3522,"kind":"app","opcode":"field","args":[{"id":3520,"kind":"name","name":"currentState"},{"id":3521,"kind":"str","value":"providerState"}]},{"id":3523,"kind":"str","value":"keyAssignmentReplacements"}]}]}},"expr":{"id":3599,"kind":"let","opdef":{"id":3536,"kind":"def","name":"tmpStateAfterKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3535,"kind":"app","opcode":"with","args":[{"id":3527,"kind":"name","name":"tmpState"},{"id":3528,"kind":"str","value":"providerState"},{"id":3534,"kind":"app","opcode":"with","args":[{"id":3531,"kind":"app","opcode":"field","args":[{"id":3529,"kind":"name","name":"tmpState"},{"id":3530,"kind":"str","value":"providerState"}]},{"id":3532,"kind":"str","value":"keyAssignmentReplacements"},{"id":3533,"kind":"name","name":"newKeyAssignmentReplacement"}]}]}},"expr":{"id":3598,"kind":"let","opdef":{"id":3558,"kind":"def","name":"newValidatorConsumerPubKey","qualifier":"pureval","expr":{"id":3557,"kind":"app","opcode":"put","args":[{"id":3544,"kind":"app","opcode":"getOrElse","args":[{"id":3541,"kind":"app","opcode":"field","args":[{"id":3539,"kind":"app","opcode":"field","args":[{"id":3537,"kind":"name","name":"currentState"},{"id":3538,"kind":"str","value":"providerState"}]},{"id":3540,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3542,"kind":"name","name":"consumer"},{"id":3543,"kind":"app","opcode":"Map","args":[]}]},{"id":3545,"kind":"name","name":"consumer"},{"id":3556,"kind":"app","opcode":"put","args":[{"id":3553,"kind":"app","opcode":"getOrElse","args":[{"id":3550,"kind":"app","opcode":"field","args":[{"id":3548,"kind":"app","opcode":"field","args":[{"id":3546,"kind":"name","name":"currentState"},{"id":3547,"kind":"str","value":"providerState"}]},{"id":3549,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3551,"kind":"name","name":"consumer"},{"id":3552,"kind":"app","opcode":"Map","args":[]}]},{"id":3554,"kind":"name","name":"providerNode"},{"id":3555,"kind":"name","name":"consumerAddr"}]}]}},"expr":{"id":3597,"kind":"let","opdef":{"id":3580,"kind":"def","name":"newValidatorByConsumerAddr","qualifier":"pureval","expr":{"id":3579,"kind":"app","opcode":"put","args":[{"id":3566,"kind":"app","opcode":"getOrElse","args":[{"id":3563,"kind":"app","opcode":"field","args":[{"id":3561,"kind":"app","opcode":"field","args":[{"id":3559,"kind":"name","name":"currentState"},{"id":3560,"kind":"str","value":"providerState"}]},{"id":3562,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3564,"kind":"name","name":"consumer"},{"id":3565,"kind":"app","opcode":"Map","args":[]}]},{"id":3567,"kind":"name","name":"consumer"},{"id":3578,"kind":"app","opcode":"put","args":[{"id":3575,"kind":"app","opcode":"getOrElse","args":[{"id":3572,"kind":"app","opcode":"field","args":[{"id":3570,"kind":"app","opcode":"field","args":[{"id":3568,"kind":"name","name":"currentState"},{"id":3569,"kind":"str","value":"providerState"}]},{"id":3571,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3573,"kind":"name","name":"consumer"},{"id":3574,"kind":"app","opcode":"Map","args":[]}]},{"id":3576,"kind":"name","name":"consumerAddr"},{"id":3577,"kind":"name","name":"providerNode"}]}]}},"expr":{"id":3596,"kind":"let","opdef":{"id":3590,"kind":"def","name":"newProviderState","qualifier":"pureval","expr":{"id":3589,"kind":"app","opcode":"with","args":[{"id":3586,"kind":"app","opcode":"with","args":[{"id":3583,"kind":"app","opcode":"field","args":[{"id":3581,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3582,"kind":"str","value":"providerState"}]},{"id":3584,"kind":"str","value":"validatorConsumerPubKey"},{"id":3585,"kind":"name","name":"newValidatorConsumerPubKey"}]},{"id":3587,"kind":"str","value":"validatorByConsumerAddr"},{"id":3588,"kind":"name","name":"newValidatorByConsumerAddr"}]}},"expr":{"id":3595,"kind":"app","opcode":"Ok","args":[{"id":3594,"kind":"app","opcode":"with","args":[{"id":3591,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3592,"kind":"str","value":"providerState"},{"id":3593,"kind":"name","name":"newProviderState"}]}]}}}}}}}}}}}}}]}}]}}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"2113":{"id":2112,"kind":"def","name":"res5","qualifier":"val","expr":{"id":2111,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2107,"kind":"name","name":"currentState"},{"id":2108,"kind":"str","value":"consumer1"},{"id":2109,"kind":"str","value":"node1"},{"id":2110,"kind":"str","value":"consAddr2"}]},"depth":1},"2114":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"2118":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2122":{"id":3614,"kind":"def","name":"assignConsumerKey","qualifier":"puredef","expr":{"id":3613,"kind":"lambda","params":[{"id":3381,"name":"currentState"},{"id":3383,"name":"consumer"},{"id":3385,"name":"providerNode"},{"id":3387,"name":"consumerAddr"}],"qualifier":"puredef","expr":{"id":3611,"kind":"let","opdef":{"id":3397,"kind":"def","name":"provCurValSet","qualifier":"pureval","expr":{"id":3396,"kind":"app","opcode":"field","args":[{"id":3394,"kind":"app","opcode":"field","args":[{"id":3392,"kind":"app","opcode":"field","args":[{"id":3390,"kind":"name","name":"currentState"},{"id":3391,"kind":"str","value":"providerState"}]},{"id":3393,"kind":"str","value":"chainState"}]},{"id":3395,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3610,"kind":"app","opcode":"ite","args":[{"id":3409,"kind":"app","opcode":"exists","args":[{"id":3399,"kind":"app","opcode":"keys","args":[{"id":3398,"kind":"name","name":"provCurValSet"}]},{"id":3408,"kind":"lambda","params":[{"id":3400,"name":"node"}],"qualifier":"def","expr":{"id":3407,"kind":"app","opcode":"and","args":[{"id":3403,"kind":"app","opcode":"neq","args":[{"id":3401,"kind":"name","name":"node"},{"id":3402,"kind":"name","name":"providerNode"}]},{"id":3406,"kind":"app","opcode":"eq","args":[{"id":3404,"kind":"name","name":"node"},{"id":3405,"kind":"name","name":"consumerAddr"}]}]}}]},{"id":3411,"kind":"app","opcode":"Err","args":[{"id":3410,"kind":"str","value":"validator A cannot assign consumer key K to consumer chain X\n if there is already a validator B (B!=A) using K on the provider"}]},{"id":3609,"kind":"let","opdef":{"id":3420,"kind":"def","name":"valByConsAddr","qualifier":"pureval","expr":{"id":3419,"kind":"app","opcode":"getOrElse","args":[{"id":3416,"kind":"app","opcode":"field","args":[{"id":3414,"kind":"app","opcode":"field","args":[{"id":3412,"kind":"name","name":"currentState"},{"id":3413,"kind":"str","value":"providerState"}]},{"id":3415,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3417,"kind":"name","name":"consumer"},{"id":3418,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3608,"kind":"app","opcode":"ite","args":[{"id":3424,"kind":"app","opcode":"contains","args":[{"id":3422,"kind":"app","opcode":"keys","args":[{"id":3421,"kind":"name","name":"valByConsAddr"}]},{"id":3423,"kind":"name","name":"consumerAddr"}]},{"id":3426,"kind":"app","opcode":"Err","args":[{"id":3425,"kind":"str","value":"consumer key is already in use on the consumer chain"}]},{"id":3607,"kind":"let","opdef":{"id":3435,"kind":"def","name":"consKeyByVal","qualifier":"pureval","expr":{"id":3434,"kind":"app","opcode":"getOrElse","args":[{"id":3431,"kind":"app","opcode":"field","args":[{"id":3429,"kind":"app","opcode":"field","args":[{"id":3427,"kind":"name","name":"currentState"},{"id":3428,"kind":"str","value":"providerState"}]},{"id":3430,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3432,"kind":"name","name":"consumer"},{"id":3433,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3606,"kind":"let","opdef":{"id":3449,"kind":"def","name":"p","qualifier":"pureval","expr":{"id":3448,"kind":"app","opcode":"ite","args":[{"id":3439,"kind":"app","opcode":"contains","args":[{"id":3437,"kind":"app","opcode":"keys","args":[{"id":3436,"kind":"name","name":"consKeyByVal"}]},{"id":3438,"kind":"name","name":"providerNode"}]},{"id":3444,"kind":"app","opcode":"Tup","args":[{"id":3442,"kind":"app","opcode":"get","args":[{"id":3440,"kind":"name","name":"consKeyByVal"},{"id":3441,"kind":"name","name":"providerNode"}]},{"id":3443,"kind":"bool","value":true}]},{"id":3447,"kind":"app","opcode":"Tup","args":[{"id":3445,"kind":"name","name":"providerNode"},{"id":3446,"kind":"bool","value":false}]}]}},"expr":{"id":3605,"kind":"let","opdef":{"id":3453,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":3452,"kind":"app","opcode":"item","args":[{"id":3450,"kind":"name","name":"p"},{"id":3451,"kind":"int","value":1}]}},"expr":{"id":3604,"kind":"let","opdef":{"id":3457,"kind":"def","name":"prevAssigned","qualifier":"pureval","expr":{"id":3456,"kind":"app","opcode":"item","args":[{"id":3454,"kind":"name","name":"p"},{"id":3455,"kind":"int","value":2}]}},"expr":{"id":3603,"kind":"let","opdef":{"id":3465,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":3464,"kind":"app","opcode":"ite","args":[{"id":3458,"kind":"name","name":"prevAssigned"},{"id":3462,"kind":"app","opcode":"AppendConsumerAddrToPrune","args":[{"id":3459,"kind":"name","name":"currentState"},{"id":3460,"kind":"name","name":"oldConsAddr"},{"id":3461,"kind":"name","name":"consumer"}]},{"id":3463,"kind":"name","name":"currentState"}]}},"expr":{"id":3602,"kind":"let","opdef":{"id":3473,"kind":"def","name":"provValSet","qualifier":"pureval","expr":{"id":3472,"kind":"app","opcode":"field","args":[{"id":3470,"kind":"app","opcode":"field","args":[{"id":3468,"kind":"app","opcode":"field","args":[{"id":3466,"kind":"name","name":"currentState"},{"id":3467,"kind":"str","value":"providerState"}]},{"id":3469,"kind":"str","value":"chainState"}]},{"id":3471,"kind":"str","value":"currentValidatorSet"}]}},"expr":{"id":3601,"kind":"let","opdef":{"id":3483,"kind":"def","name":"provValPower","qualifier":"pureval","expr":{"id":3482,"kind":"app","opcode":"ite","args":[{"id":3477,"kind":"app","opcode":"contains","args":[{"id":3475,"kind":"app","opcode":"keys","args":[{"id":3474,"kind":"name","name":"provValSet"}]},{"id":3476,"kind":"name","name":"providerNode"}]},{"id":3480,"kind":"app","opcode":"get","args":[{"id":3478,"kind":"name","name":"provValSet"},{"id":3479,"kind":"name","name":"providerNode"}]},{"id":3481,"kind":"int","value":0}]}},"expr":{"id":3600,"kind":"let","opdef":{"id":3526,"kind":"def","name":"newKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3525,"kind":"app","opcode":"ite","args":[{"id":3499,"kind":"app","opcode":"and","args":[{"id":3486,"kind":"app","opcode":"igt","args":[{"id":3484,"kind":"name","name":"provValPower"},{"id":3485,"kind":"int","value":0}]},{"id":3498,"kind":"app","opcode":"not","args":[{"id":3497,"kind":"app","opcode":"contains","args":[{"id":3495,"kind":"app","opcode":"keys","args":[{"id":3494,"kind":"app","opcode":"getOrElse","args":[{"id":3491,"kind":"app","opcode":"field","args":[{"id":3489,"kind":"app","opcode":"field","args":[{"id":3487,"kind":"name","name":"currentState"},{"id":3488,"kind":"str","value":"providerState"}]},{"id":3490,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3492,"kind":"name","name":"consumer"},{"id":3493,"kind":"app","opcode":"Map","args":[]}]}]},{"id":3496,"kind":"name","name":"providerNode"}]}]}]},{"id":3519,"kind":"app","opcode":"put","args":[{"id":3504,"kind":"app","opcode":"field","args":[{"id":3502,"kind":"app","opcode":"field","args":[{"id":3500,"kind":"name","name":"currentState"},{"id":3501,"kind":"str","value":"providerState"}]},{"id":3503,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3505,"kind":"name","name":"consumer"},{"id":3518,"kind":"app","opcode":"put","args":[{"id":3513,"kind":"app","opcode":"getOrElse","args":[{"id":3510,"kind":"app","opcode":"field","args":[{"id":3508,"kind":"app","opcode":"field","args":[{"id":3506,"kind":"name","name":"currentState"},{"id":3507,"kind":"str","value":"providerState"}]},{"id":3509,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3511,"kind":"name","name":"consumer"},{"id":3512,"kind":"app","opcode":"Map","args":[]}]},{"id":3514,"kind":"name","name":"providerNode"},{"id":3517,"kind":"app","opcode":"Tup","args":[{"id":3515,"kind":"name","name":"oldConsAddr"},{"id":3516,"kind":"name","name":"provValPower"}]}]}]},{"id":3524,"kind":"app","opcode":"field","args":[{"id":3522,"kind":"app","opcode":"field","args":[{"id":3520,"kind":"name","name":"currentState"},{"id":3521,"kind":"str","value":"providerState"}]},{"id":3523,"kind":"str","value":"keyAssignmentReplacements"}]}]}},"expr":{"id":3599,"kind":"let","opdef":{"id":3536,"kind":"def","name":"tmpStateAfterKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3535,"kind":"app","opcode":"with","args":[{"id":3527,"kind":"name","name":"tmpState"},{"id":3528,"kind":"str","value":"providerState"},{"id":3534,"kind":"app","opcode":"with","args":[{"id":3531,"kind":"app","opcode":"field","args":[{"id":3529,"kind":"name","name":"tmpState"},{"id":3530,"kind":"str","value":"providerState"}]},{"id":3532,"kind":"str","value":"keyAssignmentReplacements"},{"id":3533,"kind":"name","name":"newKeyAssignmentReplacement"}]}]}},"expr":{"id":3598,"kind":"let","opdef":{"id":3558,"kind":"def","name":"newValidatorConsumerPubKey","qualifier":"pureval","expr":{"id":3557,"kind":"app","opcode":"put","args":[{"id":3544,"kind":"app","opcode":"getOrElse","args":[{"id":3541,"kind":"app","opcode":"field","args":[{"id":3539,"kind":"app","opcode":"field","args":[{"id":3537,"kind":"name","name":"currentState"},{"id":3538,"kind":"str","value":"providerState"}]},{"id":3540,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3542,"kind":"name","name":"consumer"},{"id":3543,"kind":"app","opcode":"Map","args":[]}]},{"id":3545,"kind":"name","name":"consumer"},{"id":3556,"kind":"app","opcode":"put","args":[{"id":3553,"kind":"app","opcode":"getOrElse","args":[{"id":3550,"kind":"app","opcode":"field","args":[{"id":3548,"kind":"app","opcode":"field","args":[{"id":3546,"kind":"name","name":"currentState"},{"id":3547,"kind":"str","value":"providerState"}]},{"id":3549,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3551,"kind":"name","name":"consumer"},{"id":3552,"kind":"app","opcode":"Map","args":[]}]},{"id":3554,"kind":"name","name":"providerNode"},{"id":3555,"kind":"name","name":"consumerAddr"}]}]}},"expr":{"id":3597,"kind":"let","opdef":{"id":3580,"kind":"def","name":"newValidatorByConsumerAddr","qualifier":"pureval","expr":{"id":3579,"kind":"app","opcode":"put","args":[{"id":3566,"kind":"app","opcode":"getOrElse","args":[{"id":3563,"kind":"app","opcode":"field","args":[{"id":3561,"kind":"app","opcode":"field","args":[{"id":3559,"kind":"name","name":"currentState"},{"id":3560,"kind":"str","value":"providerState"}]},{"id":3562,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3564,"kind":"name","name":"consumer"},{"id":3565,"kind":"app","opcode":"Map","args":[]}]},{"id":3567,"kind":"name","name":"consumer"},{"id":3578,"kind":"app","opcode":"put","args":[{"id":3575,"kind":"app","opcode":"getOrElse","args":[{"id":3572,"kind":"app","opcode":"field","args":[{"id":3570,"kind":"app","opcode":"field","args":[{"id":3568,"kind":"name","name":"currentState"},{"id":3569,"kind":"str","value":"providerState"}]},{"id":3571,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3573,"kind":"name","name":"consumer"},{"id":3574,"kind":"app","opcode":"Map","args":[]}]},{"id":3576,"kind":"name","name":"consumerAddr"},{"id":3577,"kind":"name","name":"providerNode"}]}]}},"expr":{"id":3596,"kind":"let","opdef":{"id":3590,"kind":"def","name":"newProviderState","qualifier":"pureval","expr":{"id":3589,"kind":"app","opcode":"with","args":[{"id":3586,"kind":"app","opcode":"with","args":[{"id":3583,"kind":"app","opcode":"field","args":[{"id":3581,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3582,"kind":"str","value":"providerState"}]},{"id":3584,"kind":"str","value":"validatorConsumerPubKey"},{"id":3585,"kind":"name","name":"newValidatorConsumerPubKey"}]},{"id":3587,"kind":"str","value":"validatorByConsumerAddr"},{"id":3588,"kind":"name","name":"newValidatorByConsumerAddr"}]}},"expr":{"id":3595,"kind":"app","opcode":"Ok","args":[{"id":3594,"kind":"app","opcode":"with","args":[{"id":3591,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3592,"kind":"str","value":"providerState"},{"id":3593,"kind":"name","name":"newProviderState"}]}]}}}}}}}}}}}}}]}}]}}},"depth":0,"importedFrom":{"id":87,"kind":"instance","protoName":"ccv","overrides":[[{"id":82,"name":"VscTimeout"},{"id":77,"kind":"app","opcode":"imul","args":[{"id":75,"kind":"int","value":5},{"id":76,"kind":"name","name":"Week"}]}],[{"id":83,"name":"CcvTimeout"},{"id":78,"kind":"name","name":"ccvTimeouts"}],[{"id":84,"name":"UnbondingPeriodPerChain"},{"id":79,"kind":"name","name":"unbondingPeriods"}],[{"id":85,"name":"ConsumerChains"},{"id":80,"kind":"name","name":"consumerChains"}],[{"id":86,"name":"TrustingPeriodPerChain"},{"id":81,"kind":"name","name":"trustingPeriods"}]],"identityOverride":true,"fromSource":"./ccv"},"hidden":true,"namespaces":["ccv","ccv_model"]},"2124":{"id":2123,"kind":"def","name":"res6","qualifier":"val","expr":{"id":2122,"kind":"app","opcode":"assignConsumerKey","args":[{"id":2118,"kind":"name","name":"currentState"},{"id":2119,"kind":"str","value":"consumer1"},{"id":2120,"kind":"str","value":"node1"},{"id":2121,"kind":"str","value":"node1"}]},"depth":1},"2125":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":1,"kind":"import","defName":"*","protoName":"ccv_types","fromSource":"./ccv"},"hidden":true},"2130":{"id":26,"kind":"def","name":"unbondingPeriods","qualifier":"pureval","expr":{"id":25,"kind":"app","opcode":"mapBy","args":[{"id":21,"kind":"name","name":"chains"},{"id":24,"kind":"lambda","params":[{"id":22,"name":"chain"}],"qualifier":"def","expr":{"id":23,"kind":"name","name":"defUnbondingPeriod"}}]},"depth":0},"2134":{"id":4605,"kind":"def","name":"Hour","qualifier":"pureval","expr":{"id":4604,"kind":"app","opcode":"imul","args":[{"id":4602,"kind":"int","value":60},{"id":4603,"kind":"name","name":"Minute"}]},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2137":{"id":478,"kind":"def","name":"EndAndBeginBlockForConsumer","qualifier":"action","expr":{"id":477,"kind":"lambda","params":[{"id":438,"name":"chain"},{"id":440,"name":"timeAdvancement"}],"qualifier":"action","expr":{"id":475,"kind":"let","opdef":{"id":447,"kind":"def","name":"result","qualifier":"val","expr":{"id":446,"kind":"app","opcode":"endAndBeginBlockForConsumer","args":[{"id":443,"kind":"name","name":"currentState"},{"id":444,"kind":"name","name":"chain"},{"id":445,"kind":"name","name":"timeAdvancement"}]}},"expr":{"id":474,"kind":"app","opcode":"actionAll","args":[{"id":451,"kind":"app","opcode":"eq","args":[{"id":449,"kind":"app","opcode":"hasError","args":[{"id":448,"kind":"name","name":"result"}]},{"id":450,"kind":"bool","value":false}]},{"id":456,"kind":"app","opcode":"assign","args":[{"id":455,"kind":"name","name":"currentState"},{"id":454,"kind":"app","opcode":"field","args":[{"id":452,"kind":"name","name":"result"},{"id":453,"kind":"str","value":"newState"}]}]},{"id":470,"kind":"app","opcode":"assign","args":[{"id":469,"kind":"name","name":"trace"},{"id":468,"kind":"app","opcode":"append","args":[{"id":457,"kind":"name","name":"trace"},{"id":467,"kind":"app","opcode":"with","args":[{"id":464,"kind":"app","opcode":"with","args":[{"id":461,"kind":"app","opcode":"with","args":[{"id":458,"kind":"name","name":"emptyAction"},{"id":459,"kind":"str","value":"kind"},{"id":460,"kind":"str","value":"EndAndBeginBlockForConsumer"}]},{"id":462,"kind":"str","value":"consumerChain"},{"id":463,"kind":"name","name":"chain"}]},{"id":465,"kind":"str","value":"timeAdvancement"},{"id":466,"kind":"name","name":"timeAdvancement"}]}]}]},{"id":473,"kind":"app","opcode":"assign","args":[{"id":472,"kind":"name","name":"params"},{"id":471,"kind":"name","name":"params"}]}]}}},"depth":0},"2142":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2144":{"id":478,"kind":"def","name":"EndAndBeginBlockForConsumer","qualifier":"action","expr":{"id":477,"kind":"lambda","params":[{"id":438,"name":"chain"},{"id":440,"name":"timeAdvancement"}],"qualifier":"action","expr":{"id":475,"kind":"let","opdef":{"id":447,"kind":"def","name":"result","qualifier":"val","expr":{"id":446,"kind":"app","opcode":"endAndBeginBlockForConsumer","args":[{"id":443,"kind":"name","name":"currentState"},{"id":444,"kind":"name","name":"chain"},{"id":445,"kind":"name","name":"timeAdvancement"}]}},"expr":{"id":474,"kind":"app","opcode":"actionAll","args":[{"id":451,"kind":"app","opcode":"eq","args":[{"id":449,"kind":"app","opcode":"hasError","args":[{"id":448,"kind":"name","name":"result"}]},{"id":450,"kind":"bool","value":false}]},{"id":456,"kind":"app","opcode":"assign","args":[{"id":455,"kind":"name","name":"currentState"},{"id":454,"kind":"app","opcode":"field","args":[{"id":452,"kind":"name","name":"result"},{"id":453,"kind":"str","value":"newState"}]}]},{"id":470,"kind":"app","opcode":"assign","args":[{"id":469,"kind":"name","name":"trace"},{"id":468,"kind":"app","opcode":"append","args":[{"id":457,"kind":"name","name":"trace"},{"id":467,"kind":"app","opcode":"with","args":[{"id":464,"kind":"app","opcode":"with","args":[{"id":461,"kind":"app","opcode":"with","args":[{"id":458,"kind":"name","name":"emptyAction"},{"id":459,"kind":"str","value":"kind"},{"id":460,"kind":"str","value":"EndAndBeginBlockForConsumer"}]},{"id":462,"kind":"str","value":"consumerChain"},{"id":463,"kind":"name","name":"chain"}]},{"id":465,"kind":"str","value":"timeAdvancement"},{"id":466,"kind":"name","name":"timeAdvancement"}]}]}]},{"id":473,"kind":"app","opcode":"assign","args":[{"id":472,"kind":"name","name":"params"},{"id":471,"kind":"name","name":"params"}]}]}}},"depth":0},"2147":{"id":388,"kind":"def","name":"DeliverVscMaturedPacket","qualifier":"action","expr":{"id":387,"kind":"lambda","params":[{"id":349,"name":"sender"}],"qualifier":"action","expr":{"id":385,"kind":"let","opdef":{"id":355,"kind":"def","name":"resultAndTimeout","qualifier":"val","expr":{"id":354,"kind":"app","opcode":"deliverPacketToProvider","args":[{"id":352,"kind":"name","name":"currentState"},{"id":353,"kind":"name","name":"sender"}]}},"expr":{"id":384,"kind":"let","opdef":{"id":359,"kind":"def","name":"result","qualifier":"val","expr":{"id":358,"kind":"app","opcode":"item","args":[{"id":356,"kind":"name","name":"resultAndTimeout"},{"id":357,"kind":"int","value":1}]}},"expr":{"id":383,"kind":"app","opcode":"actionAll","args":[{"id":363,"kind":"app","opcode":"eq","args":[{"id":361,"kind":"app","opcode":"hasError","args":[{"id":360,"kind":"name","name":"result"}]},{"id":362,"kind":"bool","value":false}]},{"id":368,"kind":"app","opcode":"assign","args":[{"id":367,"kind":"name","name":"currentState"},{"id":366,"kind":"app","opcode":"field","args":[{"id":364,"kind":"name","name":"result"},{"id":365,"kind":"str","value":"newState"}]}]},{"id":379,"kind":"app","opcode":"assign","args":[{"id":378,"kind":"name","name":"trace"},{"id":377,"kind":"app","opcode":"append","args":[{"id":369,"kind":"name","name":"trace"},{"id":376,"kind":"app","opcode":"with","args":[{"id":373,"kind":"app","opcode":"with","args":[{"id":370,"kind":"name","name":"emptyAction"},{"id":371,"kind":"str","value":"kind"},{"id":372,"kind":"str","value":"DeliverVscMaturedPacket"}]},{"id":374,"kind":"str","value":"consumerChain"},{"id":375,"kind":"name","name":"sender"}]}]}]},{"id":382,"kind":"app","opcode":"assign","args":[{"id":381,"kind":"name","name":"params"},{"id":380,"kind":"name","name":"params"}]}]}}}},"depth":0},"2149":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2161":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2174":{"kind":"var","name":"currentState","typeAnnotation":{"id":109,"kind":"const","name":"ProtocolState"},"id":110},"2181":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":3,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"2189":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"2193":{"id":267,"kind":"def","name":"init","qualifier":"action","expr":{"id":266,"kind":"app","opcode":"actionAll","args":[{"id":241,"kind":"let","opdef":{"id":182,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":181,"kind":"name","name":"GetEmptyProviderState"}},"expr":{"id":240,"kind":"let","opdef":{"id":188,"kind":"def","name":"consumerStates","qualifier":"val","expr":{"id":187,"kind":"app","opcode":"mapBy","args":[{"id":183,"kind":"name","name":"ConsumerChains"},{"id":186,"kind":"lambda","params":[{"id":184,"name":"chain"}],"qualifier":"def","expr":{"id":185,"kind":"name","name":"GetEmptyConsumerState"}}]}},"expr":{"id":239,"kind":"let","opdef":{"id":231,"kind":"def","name":"providerStateWithConsumers","qualifier":"val","expr":{"id":230,"kind":"app","opcode":"with","args":[{"id":222,"kind":"app","opcode":"with","args":[{"id":210,"kind":"app","opcode":"with","args":[{"id":203,"kind":"app","opcode":"with","args":[{"id":196,"kind":"app","opcode":"with","args":[{"id":189,"kind":"name","name":"providerState"},{"id":190,"kind":"str","value":"consumerStatus"},{"id":195,"kind":"app","opcode":"mapBy","args":[{"id":191,"kind":"name","name":"ConsumerChains"},{"id":194,"kind":"lambda","params":[{"id":192,"name":"chain"}],"qualifier":"def","expr":{"id":193,"kind":"name","name":"NOT_CONSUMER"}}]}]},{"id":197,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":202,"kind":"app","opcode":"mapBy","args":[{"id":198,"kind":"name","name":"ConsumerChains"},{"id":201,"kind":"lambda","params":[{"id":199,"name":"chain"}],"qualifier":"def","expr":{"id":200,"kind":"app","opcode":"List","args":[]}}]}]},{"id":204,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":209,"kind":"app","opcode":"mapBy","args":[{"id":205,"kind":"name","name":"ConsumerChains"},{"id":208,"kind":"lambda","params":[{"id":206,"name":"chain"}],"qualifier":"def","expr":{"id":207,"kind":"app","opcode":"List","args":[]}}]}]},{"id":211,"kind":"str","value":"chainState"},{"id":221,"kind":"app","opcode":"with","args":[{"id":218,"kind":"app","opcode":"with","args":[{"id":214,"kind":"app","opcode":"field","args":[{"id":212,"kind":"name","name":"providerState"},{"id":213,"kind":"str","value":"chainState"}]},{"id":215,"kind":"str","value":"votingPowerHistory"},{"id":217,"kind":"app","opcode":"List","args":[{"id":216,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":219,"kind":"str","value":"currentValidatorSet"},{"id":220,"kind":"name","name":"InitialValidatorSet"}]}]},{"id":223,"kind":"str","value":"keyAssignedValSetHistory"},{"id":229,"kind":"app","opcode":"mapBy","args":[{"id":224,"kind":"name","name":"ConsumerChains"},{"id":228,"kind":"lambda","params":[{"id":225,"name":"chain"}],"qualifier":"def","expr":{"id":227,"kind":"app","opcode":"List","args":[{"id":226,"kind":"name","name":"InitialValidatorSet"}]}}]}]}},"expr":{"id":238,"kind":"app","opcode":"assign","args":[{"id":237,"kind":"name","name":"currentState"},{"id":236,"kind":"app","opcode":"Rec","args":[{"id":233,"kind":"str","value":"providerState"},{"id":232,"kind":"name","name":"providerStateWithConsumers"},{"id":235,"kind":"str","value":"consumerStates"},{"id":234,"kind":"name","name":"consumerStates"}]}]}}}},{"id":248,"kind":"app","opcode":"assign","args":[{"id":247,"kind":"name","name":"trace"},{"id":246,"kind":"app","opcode":"List","args":[{"id":245,"kind":"app","opcode":"with","args":[{"id":242,"kind":"name","name":"emptyAction"},{"id":243,"kind":"str","value":"kind"},{"id":244,"kind":"str","value":"init"}]}]}]},{"id":265,"kind":"app","opcode":"assign","args":[{"id":264,"kind":"name","name":"params"},{"id":263,"kind":"app","opcode":"Rec","args":[{"id":250,"kind":"str","value":"VscTimeout"},{"id":249,"kind":"name","name":"VscTimeout"},{"id":252,"kind":"str","value":"CcvTimeout"},{"id":251,"kind":"name","name":"CcvTimeout"},{"id":254,"kind":"str","value":"UnbondingPeriodPerChain"},{"id":253,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":256,"kind":"str","value":"ConsumerChains"},{"id":255,"kind":"name","name":"ConsumerChains"},{"id":258,"kind":"str","value":"Nodes"},{"id":257,"kind":"name","name":"nodes"},{"id":260,"kind":"str","value":"InitialValidatorSet"},{"id":259,"kind":"name","name":"InitialValidatorSet"},{"id":262,"kind":"str","value":"TrustingPeriodPerChain"},{"id":261,"kind":"name","name":"TrustingPeriodPerChain"}]}]}]},"depth":0},"2197":{"id":1635,"kind":"def","name":"KeyAssignment","qualifier":"action","expr":{"id":1634,"kind":"lambda","params":[{"id":1589,"name":"chain"},{"id":1591,"name":"validator"},{"id":1593,"name":"consumerAddr"}],"qualifier":"action","expr":{"id":1632,"kind":"let","opdef":{"id":1601,"kind":"def","name":"result","qualifier":"val","expr":{"id":1600,"kind":"app","opcode":"assignConsumerKey","args":[{"id":1596,"kind":"name","name":"currentState"},{"id":1597,"kind":"name","name":"chain"},{"id":1598,"kind":"name","name":"validator"},{"id":1599,"kind":"name","name":"consumerAddr"}]}},"expr":{"id":1631,"kind":"app","opcode":"actionAll","args":[{"id":1605,"kind":"app","opcode":"eq","args":[{"id":1603,"kind":"app","opcode":"hasError","args":[{"id":1602,"kind":"name","name":"result"}]},{"id":1604,"kind":"bool","value":false}]},{"id":1610,"kind":"app","opcode":"assign","args":[{"id":1609,"kind":"name","name":"currentState"},{"id":1608,"kind":"app","opcode":"field","args":[{"id":1606,"kind":"name","name":"result"},{"id":1607,"kind":"str","value":"newState"}]}]},{"id":1627,"kind":"app","opcode":"assign","args":[{"id":1626,"kind":"name","name":"trace"},{"id":1625,"kind":"app","opcode":"append","args":[{"id":1611,"kind":"name","name":"trace"},{"id":1624,"kind":"app","opcode":"with","args":[{"id":1623,"kind":"app","opcode":"with","args":[{"id":1622,"kind":"app","opcode":"with","args":[{"id":1621,"kind":"app","opcode":"with","args":[{"id":1612,"kind":"name","name":"emptyAction"},{"id":1614,"kind":"str","value":"kind"},{"id":1613,"kind":"str","value":"KeyAssignment"}]},{"id":1616,"kind":"str","value":"consumerChain"},{"id":1615,"kind":"name","name":"chain"}]},{"id":1618,"kind":"str","value":"validator"},{"id":1617,"kind":"name","name":"validator"}]},{"id":1620,"kind":"str","value":"consumerAddr"},{"id":1619,"kind":"name","name":"consumerAddr"}]}]}]},{"id":1630,"kind":"app","opcode":"assign","args":[{"id":1629,"kind":"name","name":"params"},{"id":1628,"kind":"name","name":"params"}]}]}}},"depth":0},"2201":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"2204":{"id":4597,"kind":"def","name":"Second","qualifier":"pureval","expr":{"id":4596,"kind":"int","value":1},"depth":0,"importedFrom":{"id":2,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2210":{"id":437,"kind":"def","name":"EndAndBeginBlockForProvider","qualifier":"action","expr":{"id":436,"kind":"lambda","params":[{"id":389,"name":"timeAdvancement"},{"id":391,"name":"consumersToStart"},{"id":394,"name":"consumersToStop"}],"qualifier":"action","expr":{"id":434,"kind":"let","opdef":{"id":403,"kind":"def","name":"result","qualifier":"val","expr":{"id":402,"kind":"app","opcode":"endAndBeginBlockForProvider","args":[{"id":398,"kind":"name","name":"currentState"},{"id":399,"kind":"name","name":"timeAdvancement"},{"id":400,"kind":"name","name":"consumersToStart"},{"id":401,"kind":"name","name":"consumersToStop"}]}},"expr":{"id":433,"kind":"app","opcode":"actionAll","args":[{"id":407,"kind":"app","opcode":"eq","args":[{"id":405,"kind":"app","opcode":"hasError","args":[{"id":404,"kind":"name","name":"result"}]},{"id":406,"kind":"bool","value":false}]},{"id":412,"kind":"app","opcode":"assign","args":[{"id":411,"kind":"name","name":"currentState"},{"id":410,"kind":"app","opcode":"field","args":[{"id":408,"kind":"name","name":"result"},{"id":409,"kind":"str","value":"newState"}]}]},{"id":429,"kind":"app","opcode":"assign","args":[{"id":428,"kind":"name","name":"trace"},{"id":427,"kind":"app","opcode":"append","args":[{"id":413,"kind":"name","name":"trace"},{"id":426,"kind":"app","opcode":"with","args":[{"id":423,"kind":"app","opcode":"with","args":[{"id":420,"kind":"app","opcode":"with","args":[{"id":417,"kind":"app","opcode":"with","args":[{"id":414,"kind":"name","name":"emptyAction"},{"id":415,"kind":"str","value":"kind"},{"id":416,"kind":"str","value":"EndAndBeginBlockForProvider"}]},{"id":418,"kind":"str","value":"timeAdvancement"},{"id":419,"kind":"name","name":"timeAdvancement"}]},{"id":421,"kind":"str","value":"consumersToStart"},{"id":422,"kind":"name","name":"consumersToStart"}]},{"id":424,"kind":"str","value":"consumersToStop"},{"id":425,"kind":"name","name":"consumersToStop"}]}]}]},{"id":432,"kind":"app","opcode":"assign","args":[{"id":431,"kind":"name","name":"params"},{"id":430,"kind":"name","name":"params"}]}]}}},"depth":0},"2212":{"id":1666,"kind":"def","name":"ValidatorSetHasExistedKeyAssignmentInv","qualifier":"val","expr":{"id":1665,"kind":"app","opcode":"forall","args":[{"id":1642,"kind":"name","name":"runningConsumers"},{"id":1664,"kind":"lambda","params":[{"id":1643,"name":"chain"}],"qualifier":"def","expr":{"id":1663,"kind":"app","opcode":"forall","args":[{"id":1653,"kind":"app","opcode":"toSet","args":[{"id":1652,"kind":"app","opcode":"field","args":[{"id":1650,"kind":"app","opcode":"field","args":[{"id":1648,"kind":"app","opcode":"get","args":[{"id":1646,"kind":"app","opcode":"field","args":[{"id":1644,"kind":"name","name":"currentState"},{"id":1645,"kind":"str","value":"consumerStates"}]},{"id":1647,"kind":"name","name":"chain"}]},{"id":1649,"kind":"str","value":"chainState"}]},{"id":1651,"kind":"str","value":"votingPowerHistory"}]}]},{"id":1662,"kind":"lambda","params":[{"id":1654,"name":"validatorSet"}],"qualifier":"def","expr":{"id":1661,"kind":"app","opcode":"contains","args":[{"id":1659,"kind":"app","opcode":"toSet","args":[{"id":1658,"kind":"app","opcode":"getOrElse","args":[{"id":1655,"kind":"name","name":"providerKeyAssignedValSetHistory"},{"id":1656,"kind":"name","name":"chain"},{"id":1657,"kind":"app","opcode":"List","args":[]}]}]},{"id":1660,"kind":"name","name":"validatorSet"}]}}]}}]},"depth":0},"2215":{"id":308,"kind":"def","name":"VotingPowerChange","qualifier":"action","expr":{"id":307,"kind":"lambda","params":[{"id":268,"name":"validator"},{"id":270,"name":"changeAmount"}],"qualifier":"action","expr":{"id":305,"kind":"let","opdef":{"id":277,"kind":"def","name":"result","qualifier":"val","expr":{"id":276,"kind":"app","opcode":"votingPowerChange","args":[{"id":273,"kind":"name","name":"currentState"},{"id":274,"kind":"name","name":"validator"},{"id":275,"kind":"name","name":"changeAmount"}]}},"expr":{"id":304,"kind":"app","opcode":"actionAll","args":[{"id":281,"kind":"app","opcode":"eq","args":[{"id":279,"kind":"app","opcode":"hasError","args":[{"id":278,"kind":"name","name":"result"}]},{"id":280,"kind":"bool","value":false}]},{"id":286,"kind":"app","opcode":"assign","args":[{"id":285,"kind":"name","name":"currentState"},{"id":284,"kind":"app","opcode":"field","args":[{"id":282,"kind":"name","name":"result"},{"id":283,"kind":"str","value":"newState"}]}]},{"id":300,"kind":"app","opcode":"assign","args":[{"id":299,"kind":"name","name":"trace"},{"id":298,"kind":"app","opcode":"append","args":[{"id":287,"kind":"name","name":"trace"},{"id":297,"kind":"app","opcode":"with","args":[{"id":294,"kind":"app","opcode":"with","args":[{"id":291,"kind":"app","opcode":"with","args":[{"id":288,"kind":"name","name":"emptyAction"},{"id":289,"kind":"str","value":"kind"},{"id":290,"kind":"str","value":"VotingPowerChange"}]},{"id":292,"kind":"str","value":"validator"},{"id":293,"kind":"name","name":"validator"}]},{"id":295,"kind":"str","value":"changeAmount"},{"id":296,"kind":"name","name":"changeAmount"}]}]}]},{"id":303,"kind":"app","opcode":"assign","args":[{"id":302,"kind":"name","name":"params"},{"id":301,"kind":"name","name":"params"}]}]}}},"depth":0},"2230":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"}},"2231":{"id":2227,"kind":"typedef","name":"Power","type":{"id":2226,"kind":"int"}},"2236":{"id":2233,"kind":"typedef","name":"ValidatorSet","type":{"id":2232,"kind":"fun","arg":{"id":2230,"kind":"const","name":"Node"},"res":{"id":2231,"kind":"const","name":"Power"}}},"2241":{"id":2229,"kind":"typedef","name":"VscId","type":{"id":2228,"kind":"int"}},"2242":{"id":2233,"kind":"typedef","name":"ValidatorSet","type":{"id":2232,"kind":"fun","arg":{"id":2230,"kind":"const","name":"Node"},"res":{"id":2231,"kind":"const","name":"Power"}}},"2243":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2220,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2244":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2220,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2247":{"id":2229,"kind":"typedef","name":"VscId","type":{"id":2228,"kind":"int"}},"2248":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2220,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2249":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2220,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2252":{"id":2238,"kind":"typedef","name":"VotingPowerHistory","type":{"id":2237,"kind":"list","elem":{"id":2236,"kind":"const","name":"ValidatorSet"}}},"2253":{"id":2233,"kind":"typedef","name":"ValidatorSet","type":{"id":2232,"kind":"fun","arg":{"id":2230,"kind":"const","name":"Node"},"res":{"id":2231,"kind":"const","name":"Power"}}},"2254":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2220,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2255":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2220,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2258":{"id":2257,"kind":"typedef","name":"ChainState","type":{"id":2256,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"votingPowerHistory","fieldType":{"id":2252,"kind":"const","name":"VotingPowerHistory"}},{"fieldName":"currentValidatorSet","fieldType":{"id":2253,"kind":"const","name":"ValidatorSet"}},{"fieldName":"lastTimestamp","fieldType":{"id":2254,"kind":"const","name":"Time"}},{"fieldName":"runningTimestamp","fieldType":{"id":2255,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},"2270":{"id":2257,"kind":"typedef","name":"ChainState","type":{"id":2256,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"votingPowerHistory","fieldType":{"id":2252,"kind":"const","name":"VotingPowerHistory"}},{"fieldName":"currentValidatorSet","fieldType":{"id":2253,"kind":"const","name":"ValidatorSet"}},{"fieldName":"lastTimestamp","fieldType":{"id":2254,"kind":"const","name":"Time"}},{"fieldName":"runningTimestamp","fieldType":{"id":2255,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},"2271":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2272":{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},"2275":{"id":2251,"kind":"typedef","name":"VscMaturedPacket","type":{"id":2250,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2247,"kind":"const","name":"VscId"}},{"fieldName":"sendingTime","fieldType":{"id":2248,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2249,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},"2277":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2278":{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},"2282":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2286":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2287":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"}},"2288":{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"}},"2291":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2292":{"id":2238,"kind":"typedef","name":"VotingPowerHistory","type":{"id":2237,"kind":"list","elem":{"id":2236,"kind":"const","name":"ValidatorSet"}}},"2294":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2295":{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"}},"2296":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"}},"2299":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2300":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"}},"2301":{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"}},"2302":{"id":2227,"kind":"typedef","name":"Power","type":{"id":2226,"kind":"int"}},"2306":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2307":{"id":2229,"kind":"typedef","name":"VscId","type":{"id":2228,"kind":"int"}},"2308":{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"}},"2312":{"id":2229,"kind":"typedef","name":"VscId","type":{"id":2228,"kind":"int"}},"2313":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2314":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"}},"2315":{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"}},"2321":{"id":2320,"kind":"typedef","name":"ProviderState","type":{"id":2319,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2270,"kind":"const","name":"ChainState"}},{"fieldName":"outstandingPacketsToConsumer","fieldType":{"id":2274,"kind":"fun","arg":{"id":2271,"kind":"const","name":"Chain"},"res":{"id":2273,"kind":"list","elem":{"id":2272,"kind":"const","name":"VscPacket"}}}},{"fieldName":"receivedMaturations","fieldType":{"id":2276,"kind":"set","elem":{"id":2275,"kind":"const","name":"VscMaturedPacket"}}},{"fieldName":"sentVscPacketsToConsumer","fieldType":{"id":2280,"kind":"fun","arg":{"id":2277,"kind":"const","name":"Chain"},"res":{"id":2279,"kind":"list","elem":{"id":2278,"kind":"const","name":"VscPacket"}}}},{"fieldName":"providerValidatorSetChangedInThisBlock","fieldType":{"id":2281,"kind":"bool"}},{"fieldName":"consumerStatus","fieldType":{"id":2284,"kind":"fun","arg":{"id":2282,"kind":"const","name":"Chain"},"res":{"id":2283,"kind":"str"}}},{"fieldName":"runningVscId","fieldType":{"id":2285,"kind":"int"}},{"fieldName":"validatorConsumerPubKey","fieldType":{"id":2290,"kind":"fun","arg":{"id":2286,"kind":"const","name":"Chain"},"res":{"id":2289,"kind":"fun","arg":{"id":2287,"kind":"const","name":"Node"},"res":{"id":2288,"kind":"const","name":"ConsumerAddr"}}}},{"fieldName":"keyAssignedValSetHistory","fieldType":{"id":2293,"kind":"fun","arg":{"id":2291,"kind":"const","name":"Chain"},"res":{"id":2292,"kind":"const","name":"VotingPowerHistory"}}},{"fieldName":"validatorByConsumerAddr","fieldType":{"id":2298,"kind":"fun","arg":{"id":2294,"kind":"const","name":"Chain"},"res":{"id":2297,"kind":"fun","arg":{"id":2295,"kind":"const","name":"ConsumerAddr"},"res":{"id":2296,"kind":"const","name":"Node"}}}},{"fieldName":"keyAssignmentReplacements","fieldType":{"id":2305,"kind":"fun","arg":{"id":2299,"kind":"const","name":"Chain"},"res":{"id":2304,"kind":"fun","arg":{"id":2300,"kind":"const","name":"Node"},"res":{"id":2303,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2301,"kind":"const","name":"ConsumerAddr"}},{"fieldName":"1","fieldType":{"id":2302,"kind":"const","name":"Power"}}],"other":{"kind":"empty"}}}}}},{"fieldName":"consumerAddrsToPrune","fieldType":{"id":2311,"kind":"fun","arg":{"id":2306,"kind":"const","name":"Chain"},"res":{"id":2310,"kind":"fun","arg":{"id":2307,"kind":"const","name":"VscId"},"res":{"id":2309,"kind":"list","elem":{"id":2308,"kind":"const","name":"ConsumerAddr"}}}}},{"fieldName":"keyAssignmentsForVSCPackets","fieldType":{"id":2318,"kind":"fun","arg":{"id":2312,"kind":"const","name":"VscId"},"res":{"id":2317,"kind":"fun","arg":{"id":2313,"kind":"const","name":"Chain"},"res":{"id":2316,"kind":"fun","arg":{"id":2314,"kind":"const","name":"Node"},"res":{"id":2315,"kind":"const","name":"ConsumerAddr"}}}}}],"other":{"kind":"empty"}}}},"2322":{"id":2269,"kind":"def","name":"GetEmptyChainState","qualifier":"puredef","expr":{"id":2268,"kind":"app","opcode":"Rec","args":[{"id":2260,"kind":"str","value":"votingPowerHistory"},{"id":2259,"kind":"app","opcode":"List","args":[]},{"id":2262,"kind":"str","value":"currentValidatorSet"},{"id":2261,"kind":"app","opcode":"Map","args":[]},{"id":2265,"kind":"str","value":"lastTimestamp"},{"id":2264,"kind":"app","opcode":"iuminus","args":[{"id":2263,"kind":"int","value":1}]},{"id":2267,"kind":"str","value":"runningTimestamp"},{"id":2266,"kind":"int","value":0}]},"depth":0},"2350":{"id":2257,"kind":"typedef","name":"ChainState","type":{"id":2256,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"votingPowerHistory","fieldType":{"id":2252,"kind":"const","name":"VotingPowerHistory"}},{"fieldName":"currentValidatorSet","fieldType":{"id":2253,"kind":"const","name":"ValidatorSet"}},{"fieldName":"lastTimestamp","fieldType":{"id":2254,"kind":"const","name":"Time"}},{"fieldName":"runningTimestamp","fieldType":{"id":2255,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},"2351":{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},"2353":{"id":2246,"kind":"typedef","name":"VscPacket","type":{"id":2245,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2241,"kind":"const","name":"VscId"}},{"fieldName":"validatorSet","fieldType":{"id":2242,"kind":"const","name":"ValidatorSet"}},{"fieldName":"sendingTime","fieldType":{"id":2243,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2244,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},"2354":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2220,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2357":{"id":2251,"kind":"typedef","name":"VscMaturedPacket","type":{"id":2250,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"id","fieldType":{"id":2247,"kind":"const","name":"VscId"}},{"fieldName":"sendingTime","fieldType":{"id":2248,"kind":"const","name":"Time"}},{"fieldName":"timeoutTime","fieldType":{"id":2249,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}},"2361":{"id":2360,"kind":"typedef","name":"ConsumerState","type":{"id":2359,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2350,"kind":"const","name":"ChainState"}},{"fieldName":"receivedVscPackets","fieldType":{"id":2352,"kind":"list","elem":{"id":2351,"kind":"const","name":"VscPacket"}}},{"fieldName":"maturationTimes","fieldType":{"id":2356,"kind":"list","elem":{"id":2355,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2353,"kind":"const","name":"VscPacket"}},{"fieldName":"1","fieldType":{"id":2354,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}}},{"fieldName":"outstandingPacketsToProvider","fieldType":{"id":2358,"kind":"list","elem":{"id":2357,"kind":"const","name":"VscMaturedPacket"}}}],"other":{"kind":"empty"}}}},"2362":{"id":2269,"kind":"def","name":"GetEmptyChainState","qualifier":"puredef","expr":{"id":2268,"kind":"app","opcode":"Rec","args":[{"id":2260,"kind":"str","value":"votingPowerHistory"},{"id":2259,"kind":"app","opcode":"List","args":[]},{"id":2262,"kind":"str","value":"currentValidatorSet"},{"id":2261,"kind":"app","opcode":"Map","args":[]},{"id":2265,"kind":"str","value":"lastTimestamp"},{"id":2264,"kind":"app","opcode":"iuminus","args":[{"id":2263,"kind":"int","value":1}]},{"id":2267,"kind":"str","value":"runningTimestamp"},{"id":2266,"kind":"int","value":0}]},"depth":0},"2372":{"id":2320,"kind":"typedef","name":"ProviderState","type":{"id":2319,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2270,"kind":"const","name":"ChainState"}},{"fieldName":"outstandingPacketsToConsumer","fieldType":{"id":2274,"kind":"fun","arg":{"id":2271,"kind":"const","name":"Chain"},"res":{"id":2273,"kind":"list","elem":{"id":2272,"kind":"const","name":"VscPacket"}}}},{"fieldName":"receivedMaturations","fieldType":{"id":2276,"kind":"set","elem":{"id":2275,"kind":"const","name":"VscMaturedPacket"}}},{"fieldName":"sentVscPacketsToConsumer","fieldType":{"id":2280,"kind":"fun","arg":{"id":2277,"kind":"const","name":"Chain"},"res":{"id":2279,"kind":"list","elem":{"id":2278,"kind":"const","name":"VscPacket"}}}},{"fieldName":"providerValidatorSetChangedInThisBlock","fieldType":{"id":2281,"kind":"bool"}},{"fieldName":"consumerStatus","fieldType":{"id":2284,"kind":"fun","arg":{"id":2282,"kind":"const","name":"Chain"},"res":{"id":2283,"kind":"str"}}},{"fieldName":"runningVscId","fieldType":{"id":2285,"kind":"int"}},{"fieldName":"validatorConsumerPubKey","fieldType":{"id":2290,"kind":"fun","arg":{"id":2286,"kind":"const","name":"Chain"},"res":{"id":2289,"kind":"fun","arg":{"id":2287,"kind":"const","name":"Node"},"res":{"id":2288,"kind":"const","name":"ConsumerAddr"}}}},{"fieldName":"keyAssignedValSetHistory","fieldType":{"id":2293,"kind":"fun","arg":{"id":2291,"kind":"const","name":"Chain"},"res":{"id":2292,"kind":"const","name":"VotingPowerHistory"}}},{"fieldName":"validatorByConsumerAddr","fieldType":{"id":2298,"kind":"fun","arg":{"id":2294,"kind":"const","name":"Chain"},"res":{"id":2297,"kind":"fun","arg":{"id":2295,"kind":"const","name":"ConsumerAddr"},"res":{"id":2296,"kind":"const","name":"Node"}}}},{"fieldName":"keyAssignmentReplacements","fieldType":{"id":2305,"kind":"fun","arg":{"id":2299,"kind":"const","name":"Chain"},"res":{"id":2304,"kind":"fun","arg":{"id":2300,"kind":"const","name":"Node"},"res":{"id":2303,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2301,"kind":"const","name":"ConsumerAddr"}},{"fieldName":"1","fieldType":{"id":2302,"kind":"const","name":"Power"}}],"other":{"kind":"empty"}}}}}},{"fieldName":"consumerAddrsToPrune","fieldType":{"id":2311,"kind":"fun","arg":{"id":2306,"kind":"const","name":"Chain"},"res":{"id":2310,"kind":"fun","arg":{"id":2307,"kind":"const","name":"VscId"},"res":{"id":2309,"kind":"list","elem":{"id":2308,"kind":"const","name":"ConsumerAddr"}}}}},{"fieldName":"keyAssignmentsForVSCPackets","fieldType":{"id":2318,"kind":"fun","arg":{"id":2312,"kind":"const","name":"VscId"},"res":{"id":2317,"kind":"fun","arg":{"id":2313,"kind":"const","name":"Chain"},"res":{"id":2316,"kind":"fun","arg":{"id":2314,"kind":"const","name":"Node"},"res":{"id":2315,"kind":"const","name":"ConsumerAddr"}}}}}],"other":{"kind":"empty"}}}},"2373":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2374":{"id":2360,"kind":"typedef","name":"ConsumerState","type":{"id":2359,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2350,"kind":"const","name":"ChainState"}},{"fieldName":"receivedVscPackets","fieldType":{"id":2352,"kind":"list","elem":{"id":2351,"kind":"const","name":"VscPacket"}}},{"fieldName":"maturationTimes","fieldType":{"id":2356,"kind":"list","elem":{"id":2355,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2353,"kind":"const","name":"VscPacket"}},{"fieldName":"1","fieldType":{"id":2354,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}}},{"fieldName":"outstandingPacketsToProvider","fieldType":{"id":2358,"kind":"list","elem":{"id":2357,"kind":"const","name":"VscMaturedPacket"}}}],"other":{"kind":"empty"}}}},"2378":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}}},"2379":{"id":2349,"kind":"def","name":"GetEmptyProviderState","qualifier":"puredef","expr":{"id":2348,"kind":"app","opcode":"Rec","args":[{"id":2323,"kind":"str","value":"chainState"},{"id":2322,"kind":"name","name":"GetEmptyChainState"},{"id":2325,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":2324,"kind":"app","opcode":"Map","args":[]},{"id":2327,"kind":"str","value":"receivedMaturations"},{"id":2326,"kind":"app","opcode":"Set","args":[]},{"id":2329,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":2328,"kind":"app","opcode":"Map","args":[]},{"id":2331,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":2330,"kind":"bool","value":false},{"id":2333,"kind":"str","value":"consumerStatus"},{"id":2332,"kind":"app","opcode":"Map","args":[]},{"id":2335,"kind":"str","value":"runningVscId"},{"id":2334,"kind":"int","value":0},{"id":2337,"kind":"str","value":"validatorConsumerPubKey"},{"id":2336,"kind":"app","opcode":"Map","args":[]},{"id":2339,"kind":"str","value":"keyAssignedValSetHistory"},{"id":2338,"kind":"app","opcode":"Map","args":[]},{"id":2341,"kind":"str","value":"validatorByConsumerAddr"},{"id":2340,"kind":"app","opcode":"Map","args":[]},{"id":2343,"kind":"str","value":"keyAssignmentReplacements"},{"id":2342,"kind":"app","opcode":"Map","args":[]},{"id":2345,"kind":"str","value":"consumerAddrsToPrune"},{"id":2344,"kind":"app","opcode":"Map","args":[]},{"id":2347,"kind":"str","value":"keyAssignmentsForVSCPackets"},{"id":2346,"kind":"app","opcode":"Map","args":[]}]},"depth":0},"2387":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}}},"2388":{"id":2386,"kind":"typedef","name":"Error","type":{"id":2385,"kind":"str"}},"2392":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}}},"2393":{"id":2390,"kind":"typedef","name":"Result","type":{"id":2389,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"newState","fieldType":{"id":2387,"kind":"const","name":"ProtocolState"}},{"fieldName":"error","fieldType":{"id":2388,"kind":"const","name":"Error"}}],"other":{"kind":"empty"}}}},"2394":{"id":2391,"name":"newState","kind":"param"},"2404":{"id":2390,"kind":"typedef","name":"Result","type":{"id":2389,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"newState","fieldType":{"id":2387,"kind":"const","name":"ProtocolState"}},{"fieldName":"error","fieldType":{"id":2388,"kind":"const","name":"Error"}}],"other":{"kind":"empty"}}}},"2405":{"id":2384,"kind":"def","name":"GetEmptyProtocolState","qualifier":"puredef","expr":{"id":2383,"kind":"app","opcode":"Rec","args":[{"id":2380,"kind":"str","value":"providerState"},{"id":2379,"kind":"name","name":"GetEmptyProviderState"},{"id":2382,"kind":"str","value":"consumerStates"},{"id":2381,"kind":"app","opcode":"Map","args":[]}]},"depth":0},"2407":{"id":2402,"name":"msg","kind":"param"},"2414":{"id":2390,"kind":"typedef","name":"Result","type":{"id":2389,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"newState","fieldType":{"id":2387,"kind":"const","name":"ProtocolState"}},{"fieldName":"error","fieldType":{"id":2388,"kind":"const","name":"Error"}}],"other":{"kind":"empty"}}}},"2416":{"id":2413,"name":"result","kind":"param"},"2435":{"id":2320,"kind":"typedef","name":"ProviderState","type":{"id":2319,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2270,"kind":"const","name":"ChainState"}},{"fieldName":"outstandingPacketsToConsumer","fieldType":{"id":2274,"kind":"fun","arg":{"id":2271,"kind":"const","name":"Chain"},"res":{"id":2273,"kind":"list","elem":{"id":2272,"kind":"const","name":"VscPacket"}}}},{"fieldName":"receivedMaturations","fieldType":{"id":2276,"kind":"set","elem":{"id":2275,"kind":"const","name":"VscMaturedPacket"}}},{"fieldName":"sentVscPacketsToConsumer","fieldType":{"id":2280,"kind":"fun","arg":{"id":2277,"kind":"const","name":"Chain"},"res":{"id":2279,"kind":"list","elem":{"id":2278,"kind":"const","name":"VscPacket"}}}},{"fieldName":"providerValidatorSetChangedInThisBlock","fieldType":{"id":2281,"kind":"bool"}},{"fieldName":"consumerStatus","fieldType":{"id":2284,"kind":"fun","arg":{"id":2282,"kind":"const","name":"Chain"},"res":{"id":2283,"kind":"str"}}},{"fieldName":"runningVscId","fieldType":{"id":2285,"kind":"int"}},{"fieldName":"validatorConsumerPubKey","fieldType":{"id":2290,"kind":"fun","arg":{"id":2286,"kind":"const","name":"Chain"},"res":{"id":2289,"kind":"fun","arg":{"id":2287,"kind":"const","name":"Node"},"res":{"id":2288,"kind":"const","name":"ConsumerAddr"}}}},{"fieldName":"keyAssignedValSetHistory","fieldType":{"id":2293,"kind":"fun","arg":{"id":2291,"kind":"const","name":"Chain"},"res":{"id":2292,"kind":"const","name":"VotingPowerHistory"}}},{"fieldName":"validatorByConsumerAddr","fieldType":{"id":2298,"kind":"fun","arg":{"id":2294,"kind":"const","name":"Chain"},"res":{"id":2297,"kind":"fun","arg":{"id":2295,"kind":"const","name":"ConsumerAddr"},"res":{"id":2296,"kind":"const","name":"Node"}}}},{"fieldName":"keyAssignmentReplacements","fieldType":{"id":2305,"kind":"fun","arg":{"id":2299,"kind":"const","name":"Chain"},"res":{"id":2304,"kind":"fun","arg":{"id":2300,"kind":"const","name":"Node"},"res":{"id":2303,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2301,"kind":"const","name":"ConsumerAddr"}},{"fieldName":"1","fieldType":{"id":2302,"kind":"const","name":"Power"}}],"other":{"kind":"empty"}}}}}},{"fieldName":"consumerAddrsToPrune","fieldType":{"id":2311,"kind":"fun","arg":{"id":2306,"kind":"const","name":"Chain"},"res":{"id":2310,"kind":"fun","arg":{"id":2307,"kind":"const","name":"VscId"},"res":{"id":2309,"kind":"list","elem":{"id":2308,"kind":"const","name":"ConsumerAddr"}}}}},{"fieldName":"keyAssignmentsForVSCPackets","fieldType":{"id":2318,"kind":"fun","arg":{"id":2312,"kind":"const","name":"VscId"},"res":{"id":2317,"kind":"fun","arg":{"id":2313,"kind":"const","name":"Chain"},"res":{"id":2316,"kind":"fun","arg":{"id":2314,"kind":"const","name":"Node"},"res":{"id":2315,"kind":"const","name":"ConsumerAddr"}}}}}],"other":{"kind":"empty"}}}},"2437":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"}},"2439":{"id":2233,"kind":"typedef","name":"ValidatorSet","type":{"id":2232,"kind":"fun","arg":{"id":2230,"kind":"const","name":"Node"},"res":{"id":2231,"kind":"const","name":"Power"}}},"2440":{"id":2233,"kind":"typedef","name":"ValidatorSet","type":{"id":2232,"kind":"fun","arg":{"id":2230,"kind":"const","name":"Node"},"res":{"id":2231,"kind":"const","name":"Power"}}},"2441":{"id":2438,"name":"valSet","kind":"param"},"2444":{"id":2438,"name":"valSet","kind":"param"},"2445":{"id":2443,"name":"node","kind":"param"},"2448":{"id":2434,"name":"providerState","kind":"param"},"2451":{"id":2436,"name":"consumer","kind":"param"},"2453":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2221,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"2455":{"id":2454,"kind":"def","name":"keyAssignmentReplacements","qualifier":"pureval","expr":{"id":2453,"kind":"app","opcode":"getOrElse","args":[{"id":2450,"kind":"app","opcode":"field","args":[{"id":2448,"kind":"name","name":"providerState"},{"id":2449,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":2451,"kind":"name","name":"consumer"},{"id":2452,"kind":"app","opcode":"Map","args":[]}]},"depth":2},"2457":{"id":2443,"name":"node","kind":"param"},"2459":{"id":2454,"kind":"def","name":"keyAssignmentReplacements","qualifier":"pureval","expr":{"id":2453,"kind":"app","opcode":"getOrElse","args":[{"id":2450,"kind":"app","opcode":"field","args":[{"id":2448,"kind":"name","name":"providerState"},{"id":2449,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":2451,"kind":"name","name":"consumer"},{"id":2452,"kind":"app","opcode":"Map","args":[]}]},"depth":2},"2460":{"id":2443,"name":"node","kind":"param"},"2463":{"id":2462,"kind":"def","name":"replacement","qualifier":"pureval","expr":{"id":2461,"kind":"app","opcode":"get","args":[{"id":2459,"kind":"name","name":"keyAssignmentReplacements"},{"id":2460,"kind":"name","name":"node"}]},"depth":2},"2467":{"id":2466,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":2465,"kind":"app","opcode":"item","args":[{"id":2463,"kind":"name","name":"replacement"},{"id":2464,"kind":"int","value":1}]},"depth":2},"2471":{"id":2434,"name":"providerState","kind":"param"},"2474":{"id":2436,"name":"consumer","kind":"param"},"2476":{"id":2443,"name":"node","kind":"param"},"2478":{"id":2447,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2446,"kind":"app","opcode":"get","args":[{"id":2444,"kind":"name","name":"valSet"},{"id":2445,"kind":"name","name":"node"}]},"depth":2},"2481":{"id":2470,"kind":"def","name":"oldToZero","qualifier":"pureval","expr":{"id":2469,"kind":"app","opcode":"Tup","args":[{"id":2467,"kind":"name","name":"oldConsAddr"},{"id":2468,"kind":"int","value":0}]},"depth":2},"2482":{"id":2480,"kind":"def","name":"newToPower","qualifier":"pureval","expr":{"id":2479,"kind":"app","opcode":"Tup","args":[{"id":2477,"kind":"app","opcode":"get","args":[{"id":2475,"kind":"app","opcode":"get","args":[{"id":2473,"kind":"app","opcode":"field","args":[{"id":2471,"kind":"name","name":"providerState"},{"id":2472,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2474,"kind":"name","name":"consumer"}]},{"id":2476,"kind":"name","name":"node"}]},{"id":2478,"kind":"name","name":"power"}]},"depth":2},"2488":{"id":2434,"name":"providerState","kind":"param"},"2491":{"id":2436,"name":"consumer","kind":"param"},"2493":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2221,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"2495":{"id":2494,"kind":"def","name":"validatorConsumerPubKey","qualifier":"pureval","expr":{"id":2493,"kind":"app","opcode":"getOrElse","args":[{"id":2490,"kind":"app","opcode":"field","args":[{"id":2488,"kind":"name","name":"providerState"},{"id":2489,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2491,"kind":"name","name":"consumer"},{"id":2492,"kind":"app","opcode":"Map","args":[]}]},"depth":2},"2497":{"id":2443,"name":"node","kind":"param"},"2499":{"id":2494,"kind":"def","name":"validatorConsumerPubKey","qualifier":"pureval","expr":{"id":2493,"kind":"app","opcode":"getOrElse","args":[{"id":2490,"kind":"app","opcode":"field","args":[{"id":2488,"kind":"name","name":"providerState"},{"id":2489,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2491,"kind":"name","name":"consumer"},{"id":2492,"kind":"app","opcode":"Map","args":[]}]},"depth":2},"2500":{"id":2443,"name":"node","kind":"param"},"2503":{"id":2502,"kind":"def","name":"consAddr","qualifier":"pureval","expr":{"id":2501,"kind":"app","opcode":"get","args":[{"id":2499,"kind":"name","name":"validatorConsumerPubKey"},{"id":2500,"kind":"name","name":"node"}]},"depth":2},"2504":{"id":2447,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2446,"kind":"app","opcode":"get","args":[{"id":2444,"kind":"name","name":"valSet"},{"id":2445,"kind":"name","name":"node"}]},"depth":2},"2508":{"id":2443,"name":"node","kind":"param"},"2509":{"id":2447,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2446,"kind":"app","opcode":"get","args":[{"id":2444,"kind":"name","name":"valSet"},{"id":2445,"kind":"name","name":"node"}]},"depth":2},"2520":{"id":2519,"kind":"def","name":"newValSet","qualifier":"pureval","expr":{"id":2518,"kind":"app","opcode":"map","args":[{"id":2442,"kind":"app","opcode":"keys","args":[{"id":2441,"kind":"name","name":"valSet"}]},{"id":2517,"kind":"lambda","params":[{"id":2443,"name":"node"}],"qualifier":"def","expr":{"id":2516,"kind":"let","opdef":{"id":2447,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2446,"kind":"app","opcode":"get","args":[{"id":2444,"kind":"name","name":"valSet"},{"id":2445,"kind":"name","name":"node"}]}},"expr":{"id":2515,"kind":"let","opdef":{"id":2454,"kind":"def","name":"keyAssignmentReplacements","qualifier":"pureval","expr":{"id":2453,"kind":"app","opcode":"getOrElse","args":[{"id":2450,"kind":"app","opcode":"field","args":[{"id":2448,"kind":"name","name":"providerState"},{"id":2449,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":2451,"kind":"name","name":"consumer"},{"id":2452,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":2514,"kind":"app","opcode":"ite","args":[{"id":2458,"kind":"app","opcode":"contains","args":[{"id":2456,"kind":"app","opcode":"keys","args":[{"id":2455,"kind":"name","name":"keyAssignmentReplacements"}]},{"id":2457,"kind":"name","name":"node"}]},{"id":2487,"kind":"let","opdef":{"id":2462,"kind":"def","name":"replacement","qualifier":"pureval","expr":{"id":2461,"kind":"app","opcode":"get","args":[{"id":2459,"kind":"name","name":"keyAssignmentReplacements"},{"id":2460,"kind":"name","name":"node"}]}},"expr":{"id":2486,"kind":"let","opdef":{"id":2466,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":2465,"kind":"app","opcode":"item","args":[{"id":2463,"kind":"name","name":"replacement"},{"id":2464,"kind":"int","value":1}]}},"expr":{"id":2485,"kind":"let","opdef":{"id":2470,"kind":"def","name":"oldToZero","qualifier":"pureval","expr":{"id":2469,"kind":"app","opcode":"Tup","args":[{"id":2467,"kind":"name","name":"oldConsAddr"},{"id":2468,"kind":"int","value":0}]}},"expr":{"id":2484,"kind":"let","opdef":{"id":2480,"kind":"def","name":"newToPower","qualifier":"pureval","expr":{"id":2479,"kind":"app","opcode":"Tup","args":[{"id":2477,"kind":"app","opcode":"get","args":[{"id":2475,"kind":"app","opcode":"get","args":[{"id":2473,"kind":"app","opcode":"field","args":[{"id":2471,"kind":"name","name":"providerState"},{"id":2472,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2474,"kind":"name","name":"consumer"}]},{"id":2476,"kind":"name","name":"node"}]},{"id":2478,"kind":"name","name":"power"}]}},"expr":{"id":2483,"kind":"app","opcode":"Set","args":[{"id":2481,"kind":"name","name":"oldToZero"},{"id":2482,"kind":"name","name":"newToPower"}]}}}}},{"id":2513,"kind":"let","opdef":{"id":2494,"kind":"def","name":"validatorConsumerPubKey","qualifier":"pureval","expr":{"id":2493,"kind":"app","opcode":"getOrElse","args":[{"id":2490,"kind":"app","opcode":"field","args":[{"id":2488,"kind":"name","name":"providerState"},{"id":2489,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2491,"kind":"name","name":"consumer"},{"id":2492,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":2512,"kind":"app","opcode":"ite","args":[{"id":2498,"kind":"app","opcode":"contains","args":[{"id":2496,"kind":"app","opcode":"keys","args":[{"id":2495,"kind":"name","name":"validatorConsumerPubKey"}]},{"id":2497,"kind":"name","name":"node"}]},{"id":2507,"kind":"let","opdef":{"id":2502,"kind":"def","name":"consAddr","qualifier":"pureval","expr":{"id":2501,"kind":"app","opcode":"get","args":[{"id":2499,"kind":"name","name":"validatorConsumerPubKey"},{"id":2500,"kind":"name","name":"node"}]}},"expr":{"id":2506,"kind":"app","opcode":"Set","args":[{"id":2505,"kind":"app","opcode":"Tup","args":[{"id":2503,"kind":"name","name":"consAddr"},{"id":2504,"kind":"name","name":"power"}]}]}},{"id":2511,"kind":"app","opcode":"Set","args":[{"id":2510,"kind":"app","opcode":"Tup","args":[{"id":2508,"kind":"name","name":"node"},{"id":2509,"kind":"name","name":"power"}]}]}]}}]}}}}]},"depth":1},"2523":{"id":2522,"kind":"def","name":"flattened","qualifier":"pureval","expr":{"id":2521,"kind":"app","opcode":"flatten","args":[{"id":2520,"kind":"name","name":"newValSet"}]},"depth":1},"2527":{"id":2525,"name":"acc","kind":"param"},"2528":{"id":2526,"name":"pair","kind":"param"},"2531":{"id":2526,"name":"pair","kind":"param"},"2543":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"}},"2544":{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"}},"2547":{"id":2233,"kind":"typedef","name":"ValidatorSet","type":{"id":2232,"kind":"fun","arg":{"id":2230,"kind":"const","name":"Node"},"res":{"id":2231,"kind":"const","name":"Power"}}},"2548":{"id":2233,"kind":"typedef","name":"ValidatorSet","type":{"id":2232,"kind":"fun","arg":{"id":2230,"kind":"const","name":"Node"},"res":{"id":2231,"kind":"const","name":"Power"}}},"2549":{"id":2542,"name":"keyAssignment","kind":"param"},"2552":{"id":2542,"name":"keyAssignment","kind":"param"},"2553":{"id":2551,"name":"consAddr","kind":"param"},"2555":{"id":2551,"name":"consAddr","kind":"param"},"2562":{"id":2560,"name":"acc","kind":"param"},"2563":{"id":2561,"name":"pair","kind":"param"},"2566":{"id":2561,"name":"pair","kind":"param"},"2573":{"id":2546,"name":"valSetWithAssignment","kind":"param"},"2576":{"id":2546,"name":"valSetWithAssignment","kind":"param"},"2577":{"id":2575,"name":"node","kind":"param"},"2580":{"id":2572,"kind":"def","name":"reverseAssignment","qualifier":"pureval","expr":{"id":2571,"kind":"app","opcode":"fold","args":[{"id":2558,"kind":"app","opcode":"map","args":[{"id":2550,"kind":"app","opcode":"keys","args":[{"id":2549,"kind":"name","name":"keyAssignment"}]},{"id":2557,"kind":"lambda","params":[{"id":2551,"name":"consAddr"}],"qualifier":"def","expr":{"id":2556,"kind":"app","opcode":"Tup","args":[{"id":2554,"kind":"app","opcode":"get","args":[{"id":2552,"kind":"name","name":"keyAssignment"},{"id":2553,"kind":"name","name":"consAddr"}]},{"id":2555,"kind":"name","name":"consAddr"}]}}]},{"id":2559,"kind":"app","opcode":"Map","args":[]},{"id":2570,"kind":"lambda","params":[{"id":2560,"name":"acc"},{"id":2561,"name":"pair"}],"qualifier":"def","expr":{"id":2569,"kind":"app","opcode":"put","args":[{"id":2562,"kind":"name","name":"acc"},{"id":2565,"kind":"app","opcode":"item","args":[{"id":2563,"kind":"name","name":"pair"},{"id":2564,"kind":"int","value":1}]},{"id":2568,"kind":"app","opcode":"item","args":[{"id":2566,"kind":"name","name":"pair"},{"id":2567,"kind":"int","value":2}]}]}}]},"depth":1},"2581":{"id":2575,"name":"node","kind":"param"},"2582":{"id":2575,"name":"node","kind":"param"},"2583":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2221,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"2585":{"id":2584,"kind":"def","name":"consAddr","qualifier":"pureval","expr":{"id":2583,"kind":"app","opcode":"getOrElse","args":[{"id":2580,"kind":"name","name":"reverseAssignment"},{"id":2581,"kind":"name","name":"node"},{"id":2582,"kind":"name","name":"node"}]},"depth":1},"2586":{"id":2579,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2578,"kind":"app","opcode":"get","args":[{"id":2576,"kind":"name","name":"valSetWithAssignment"},{"id":2577,"kind":"name","name":"node"}]},"depth":1},"2593":{"id":2592,"name":"pair","kind":"param"},"2603":{"id":2601,"name":"acc","kind":"param"},"2604":{"id":2602,"name":"pair","kind":"param"},"2607":{"id":2602,"name":"pair","kind":"param"},"2621":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2624":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2630":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2634":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2639":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2641":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2644":{"id":2390,"kind":"typedef","name":"Result","type":{"id":2389,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"newState","fieldType":{"id":2387,"kind":"const","name":"ProtocolState"}},{"fieldName":"error","fieldType":{"id":2388,"kind":"const","name":"Error"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2645":{"id":2638,"name":"currentState","kind":"param"},"2653":{"id":2652,"kind":"def","name":"currentValidatorSet","qualifier":"pureval","expr":{"id":2651,"kind":"app","opcode":"field","args":[{"id":2649,"kind":"app","opcode":"field","args":[{"id":2647,"kind":"app","opcode":"field","args":[{"id":2645,"kind":"name","name":"currentState"},{"id":2646,"kind":"str","value":"providerState"}]},{"id":2648,"kind":"str","value":"chainState"}]},{"id":2650,"kind":"str","value":"currentValidatorSet"}]},"depth":1},"2655":{"id":2640,"name":"validator","kind":"param"},"2657":{"id":2652,"kind":"def","name":"currentValidatorSet","qualifier":"pureval","expr":{"id":2651,"kind":"app","opcode":"field","args":[{"id":2649,"kind":"app","opcode":"field","args":[{"id":2647,"kind":"app","opcode":"field","args":[{"id":2645,"kind":"name","name":"currentState"},{"id":2646,"kind":"str","value":"providerState"}]},{"id":2648,"kind":"str","value":"chainState"}]},{"id":2650,"kind":"str","value":"currentValidatorSet"}]},"depth":1},"2658":{"id":2640,"name":"validator","kind":"param"},"2663":{"id":2642,"name":"amount","kind":"param"},"2667":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2668":{"id":2662,"kind":"def","name":"oldVotingPower","qualifier":"pureval","expr":{"id":2661,"kind":"app","opcode":"ite","args":[{"id":2656,"kind":"app","opcode":"contains","args":[{"id":2654,"kind":"app","opcode":"keys","args":[{"id":2653,"kind":"name","name":"currentValidatorSet"}]},{"id":2655,"kind":"name","name":"validator"}]},{"id":2659,"kind":"app","opcode":"get","args":[{"id":2657,"kind":"name","name":"currentValidatorSet"},{"id":2658,"kind":"name","name":"validator"}]},{"id":2660,"kind":"int","value":0}]},"depth":1},"2672":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2673":{"id":2662,"kind":"def","name":"oldVotingPower","qualifier":"pureval","expr":{"id":2661,"kind":"app","opcode":"ite","args":[{"id":2656,"kind":"app","opcode":"contains","args":[{"id":2654,"kind":"app","opcode":"keys","args":[{"id":2653,"kind":"name","name":"currentValidatorSet"}]},{"id":2655,"kind":"name","name":"validator"}]},{"id":2659,"kind":"app","opcode":"get","args":[{"id":2657,"kind":"name","name":"currentValidatorSet"},{"id":2658,"kind":"name","name":"validator"}]},{"id":2660,"kind":"int","value":0}]},"depth":1},"2674":{"id":2642,"name":"amount","kind":"param"},"2677":{"id":2652,"kind":"def","name":"currentValidatorSet","qualifier":"pureval","expr":{"id":2651,"kind":"app","opcode":"field","args":[{"id":2649,"kind":"app","opcode":"field","args":[{"id":2647,"kind":"app","opcode":"field","args":[{"id":2645,"kind":"name","name":"currentState"},{"id":2646,"kind":"str","value":"providerState"}]},{"id":2648,"kind":"str","value":"chainState"}]},{"id":2650,"kind":"str","value":"currentValidatorSet"}]},"depth":1},"2678":{"id":2640,"name":"validator","kind":"param"},"2679":{"id":2676,"kind":"def","name":"newVotingPower","qualifier":"pureval","expr":{"id":2675,"kind":"app","opcode":"iadd","args":[{"id":2673,"kind":"name","name":"oldVotingPower"},{"id":2674,"kind":"name","name":"amount"}]},"depth":1},"2682":{"id":2676,"kind":"def","name":"newVotingPower","qualifier":"pureval","expr":{"id":2675,"kind":"app","opcode":"iadd","args":[{"id":2673,"kind":"name","name":"oldVotingPower"},{"id":2674,"kind":"name","name":"amount"}]},"depth":1},"2687":{"id":2686,"kind":"def","name":"newValidatorSet","qualifier":"pureval","expr":{"id":2685,"kind":"app","opcode":"put","args":[{"id":2677,"kind":"name","name":"currentValidatorSet"},{"id":2678,"kind":"name","name":"validator"},{"id":2684,"kind":"app","opcode":"ite","args":[{"id":2681,"kind":"app","opcode":"igte","args":[{"id":2679,"kind":"name","name":"newVotingPower"},{"id":2680,"kind":"int","value":0}]},{"id":2682,"kind":"name","name":"newVotingPower"},{"id":2683,"kind":"int","value":0}]}]},"depth":1},"2688":{"id":5033,"kind":"def","name":"values","qualifier":"puredef","expr":{"id":5032,"kind":"lambda","params":[{"id":5013,"name":"__map"}],"qualifier":"puredef","expr":{"id":5030,"kind":"app","opcode":"fold","args":[{"id":5020,"kind":"app","opcode":"keys","args":[{"id":5019,"kind":"name","name":"__map"}]},{"id":5021,"kind":"app","opcode":"Set","args":[]},{"id":5029,"kind":"lambda","params":[{"id":5022,"name":"__s"},{"id":5023,"name":"__k"}],"qualifier":"def","expr":{"id":5028,"kind":"app","opcode":"add","args":[{"id":5024,"kind":"name","name":"__s"},{"id":5027,"kind":"app","opcode":"get","args":[{"id":5025,"kind":"name","name":"__map"},{"id":5026,"kind":"name","name":"__k"}]}]}}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"2690":{"id":2689,"name":"votingPower","kind":"param"},"2699":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2700":{"id":2638,"name":"currentState","kind":"param"},"2707":{"id":2638,"name":"currentState","kind":"param"},"2709":{"id":2706,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":2705,"kind":"app","opcode":"with","args":[{"id":2702,"kind":"app","opcode":"field","args":[{"id":2700,"kind":"name","name":"currentState"},{"id":2701,"kind":"str","value":"providerState"}]},{"id":2703,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":2704,"kind":"bool","value":true}]},"depth":1},"2712":{"id":2711,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":2710,"kind":"app","opcode":"with","args":[{"id":2707,"kind":"name","name":"currentState"},{"id":2708,"kind":"str","value":"providerState"},{"id":2709,"kind":"name","name":"newProviderState"}]},"depth":1},"2713":{"id":2686,"kind":"def","name":"newValidatorSet","qualifier":"pureval","expr":{"id":2685,"kind":"app","opcode":"put","args":[{"id":2677,"kind":"name","name":"currentValidatorSet"},{"id":2678,"kind":"name","name":"validator"},{"id":2684,"kind":"app","opcode":"ite","args":[{"id":2681,"kind":"app","opcode":"igte","args":[{"id":2679,"kind":"name","name":"newVotingPower"},{"id":2680,"kind":"int","value":0}]},{"id":2682,"kind":"name","name":"newVotingPower"},{"id":2683,"kind":"int","value":0}]}]},"depth":1},"2714":{"id":4404,"kind":"def","name":"setProviderValidatorSet","qualifier":"puredef","expr":{"id":4403,"kind":"lambda","params":[{"id":4378,"name":"currentState"},{"id":4380,"name":"newValidatorSet"}],"qualifier":"puredef","expr":{"id":4401,"kind":"let","opdef":{"id":4391,"kind":"def","name":"newChainState","qualifier":"pureval","expr":{"id":4390,"kind":"app","opcode":"with","args":[{"id":4387,"kind":"app","opcode":"field","args":[{"id":4385,"kind":"app","opcode":"field","args":[{"id":4383,"kind":"name","name":"currentState"},{"id":4384,"kind":"str","value":"providerState"}]},{"id":4386,"kind":"str","value":"chainState"}]},{"id":4388,"kind":"str","value":"currentValidatorSet"},{"id":4389,"kind":"name","name":"newValidatorSet"}]}},"expr":{"id":4400,"kind":"app","opcode":"with","args":[{"id":4392,"kind":"name","name":"currentState"},{"id":4393,"kind":"str","value":"providerState"},{"id":4399,"kind":"app","opcode":"with","args":[{"id":4396,"kind":"app","opcode":"field","args":[{"id":4394,"kind":"name","name":"currentState"},{"id":4395,"kind":"str","value":"providerState"}]},{"id":4397,"kind":"str","value":"chainState"},{"id":4398,"kind":"name","name":"newChainState"}]}]}}},"depth":0},"2716":{"id":2715,"kind":"def","name":"newState","qualifier":"pureval","expr":{"id":2714,"kind":"app","opcode":"setProviderValidatorSet","args":[{"id":2712,"kind":"name","name":"tmpState"},{"id":2713,"kind":"name","name":"newValidatorSet"}]},"depth":1},"2717":{"id":2401,"kind":"def","name":"Ok","qualifier":"puredef","expr":{"id":2400,"kind":"lambda","params":[{"id":2391,"name":"newState"}],"qualifier":"puredef","expr":{"id":2398,"kind":"app","opcode":"Rec","args":[{"id":2395,"kind":"str","value":"newState"},{"id":2394,"kind":"name","name":"newState"},{"id":2397,"kind":"str","value":"error"},{"id":2396,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2732":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2734":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2735":{"id":2390,"kind":"typedef","name":"Result","type":{"id":2389,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"newState","fieldType":{"id":2387,"kind":"const","name":"ProtocolState"}},{"fieldName":"error","fieldType":{"id":2388,"kind":"const","name":"Error"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2738":{"id":2733,"name":"sender","kind":"param"},"2739":{"id":2731,"name":"currentState","kind":"param"},"2742":{"id":4422,"kind":"def","name":"isRunningConsumer","qualifier":"puredef","expr":{"id":4421,"kind":"lambda","params":[{"id":4405,"name":"chain"},{"id":4407,"name":"providerState"}],"qualifier":"puredef","expr":{"id":4419,"kind":"let","opdef":{"id":4415,"kind":"def","name":"status","qualifier":"val","expr":{"id":4414,"kind":"app","opcode":"get","args":[{"id":4412,"kind":"app","opcode":"field","args":[{"id":4410,"kind":"name","name":"providerState"},{"id":4411,"kind":"str","value":"consumerStatus"}]},{"id":4413,"kind":"name","name":"chain"}]}},"expr":{"id":4418,"kind":"app","opcode":"eq","args":[{"id":4416,"kind":"name","name":"status"},{"id":4417,"kind":"name","name":"RUNNING"}]}}},"depth":0},"2745":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2748":{"id":2731,"name":"currentState","kind":"param"},"2751":{"id":2733,"name":"sender","kind":"param"},"2759":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2762":{"id":2731,"name":"currentState","kind":"param"},"2765":{"id":2733,"name":"sender","kind":"param"},"2771":{"id":2770,"kind":"def","name":"packet","qualifier":"val","expr":{"id":2769,"kind":"app","opcode":"head","args":[{"id":2768,"kind":"app","opcode":"field","args":[{"id":2766,"kind":"app","opcode":"get","args":[{"id":2764,"kind":"app","opcode":"field","args":[{"id":2762,"kind":"name","name":"currentState"},{"id":2763,"kind":"str","value":"consumerStates"}]},{"id":2765,"kind":"name","name":"sender"}]},{"id":2767,"kind":"str","value":"outstandingPacketsToProvider"}]}]},"depth":1},"2774":{"id":2731,"name":"currentState","kind":"param"},"2782":{"id":2731,"name":"currentState","kind":"param"},"2788":{"id":2733,"name":"sender","kind":"param"},"2790":{"id":3737,"kind":"def","name":"stopConsumers","qualifier":"puredef","expr":{"id":3736,"kind":"lambda","params":[{"id":3675,"name":"currentConsumerStatusMap"},{"id":3679,"name":"consumersToStop"},{"id":3682,"name":"consumersToTimeout"}],"qualifier":"puredef","expr":{"id":3734,"kind":"let","opdef":{"id":3700,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":3699,"kind":"app","opcode":"filter","args":[{"id":3691,"kind":"app","opcode":"keys","args":[{"id":3690,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3698,"kind":"lambda","params":[{"id":3692,"name":"chain"}],"qualifier":"def","expr":{"id":3697,"kind":"app","opcode":"eq","args":[{"id":3695,"kind":"app","opcode":"get","args":[{"id":3693,"kind":"name","name":"currentConsumerStatusMap"},{"id":3694,"kind":"name","name":"chain"}]},{"id":3696,"kind":"name","name":"RUNNING"}]}}]}},"expr":{"id":3733,"kind":"app","opcode":"ite","args":[{"id":3706,"kind":"app","opcode":"igt","args":[{"id":3704,"kind":"app","opcode":"size","args":[{"id":3703,"kind":"app","opcode":"exclude","args":[{"id":3701,"kind":"name","name":"consumersToStop"},{"id":3702,"kind":"name","name":"runningConsumers"}]}]},{"id":3705,"kind":"int","value":0}]},{"id":3709,"kind":"app","opcode":"Tup","args":[{"id":3707,"kind":"name","name":"currentConsumerStatusMap"},{"id":3708,"kind":"str","value":"Cannot stop a consumer that is not running"}]},{"id":3732,"kind":"let","opdef":{"id":3728,"kind":"def","name":"newConsumerStatusMap","qualifier":"val","expr":{"id":3727,"kind":"app","opcode":"mapBy","args":[{"id":3711,"kind":"app","opcode":"keys","args":[{"id":3710,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3726,"kind":"lambda","params":[{"id":3712,"name":"chain"}],"qualifier":"def","expr":{"id":3725,"kind":"app","opcode":"ite","args":[{"id":3715,"kind":"app","opcode":"contains","args":[{"id":3713,"kind":"name","name":"consumersToTimeout"},{"id":3714,"kind":"name","name":"chain"}]},{"id":3716,"kind":"name","name":"TIMEDOUT"},{"id":3724,"kind":"app","opcode":"ite","args":[{"id":3719,"kind":"app","opcode":"contains","args":[{"id":3717,"kind":"name","name":"consumersToStop"},{"id":3718,"kind":"name","name":"chain"}]},{"id":3720,"kind":"name","name":"STOPPED"},{"id":3723,"kind":"app","opcode":"get","args":[{"id":3721,"kind":"name","name":"currentConsumerStatusMap"},{"id":3722,"kind":"name","name":"chain"}]}]}]}}]}},"expr":{"id":3731,"kind":"app","opcode":"Tup","args":[{"id":3729,"kind":"name","name":"newConsumerStatusMap"},{"id":3730,"kind":"str","value":""}]}}]}}},"depth":0},"2792":{"id":2791,"kind":"def","name":"result","qualifier":"val","expr":{"id":2790,"kind":"app","opcode":"stopConsumers","args":[{"id":2786,"kind":"app","opcode":"field","args":[{"id":2784,"kind":"app","opcode":"field","args":[{"id":2782,"kind":"name","name":"currentState"},{"id":2783,"kind":"str","value":"providerState"}]},{"id":2785,"kind":"str","value":"consumerStatus"}]},{"id":2787,"kind":"app","opcode":"Set","args":[]},{"id":2789,"kind":"app","opcode":"Set","args":[{"id":2788,"kind":"name","name":"sender"}]}]},"depth":1},"2796":{"id":2791,"kind":"def","name":"result","qualifier":"val","expr":{"id":2790,"kind":"app","opcode":"stopConsumers","args":[{"id":2786,"kind":"app","opcode":"field","args":[{"id":2784,"kind":"app","opcode":"field","args":[{"id":2782,"kind":"name","name":"currentState"},{"id":2783,"kind":"str","value":"providerState"}]},{"id":2785,"kind":"str","value":"consumerStatus"}]},{"id":2787,"kind":"app","opcode":"Set","args":[]},{"id":2789,"kind":"app","opcode":"Set","args":[{"id":2788,"kind":"name","name":"sender"}]}]},"depth":1},"2800":{"id":2799,"kind":"def","name":"err","qualifier":"val","expr":{"id":2798,"kind":"app","opcode":"item","args":[{"id":2796,"kind":"name","name":"result"},{"id":2797,"kind":"int","value":2}]},"depth":1},"2803":{"id":2799,"kind":"def","name":"err","qualifier":"val","expr":{"id":2798,"kind":"app","opcode":"item","args":[{"id":2796,"kind":"name","name":"result"},{"id":2797,"kind":"int","value":2}]},"depth":1},"2804":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2807":{"id":2731,"name":"currentState","kind":"param"},"2811":{"id":2795,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":2794,"kind":"app","opcode":"item","args":[{"id":2792,"kind":"name","name":"result"},{"id":2793,"kind":"int","value":1}]},"depth":1},"2814":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2815":{"id":2731,"name":"currentState","kind":"param"},"2817":{"id":2813,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":2812,"kind":"app","opcode":"with","args":[{"id":2809,"kind":"app","opcode":"field","args":[{"id":2807,"kind":"name","name":"currentState"},{"id":2808,"kind":"str","value":"providerState"}]},{"id":2810,"kind":"str","value":"consumerStatus"},{"id":2811,"kind":"name","name":"newConsumerStatus"}]},"depth":1},"2820":{"id":2819,"kind":"def","name":"newState","qualifier":"val","expr":{"id":2818,"kind":"app","opcode":"with","args":[{"id":2815,"kind":"name","name":"currentState"},{"id":2816,"kind":"str","value":"providerState"},{"id":2817,"kind":"name","name":"newProviderState"}]},"typeAnnotation":{"id":2814,"kind":"const","name":"ProtocolState"},"depth":1},"2821":{"id":2401,"kind":"def","name":"Ok","qualifier":"puredef","expr":{"id":2400,"kind":"lambda","params":[{"id":2391,"name":"newState"}],"qualifier":"puredef","expr":{"id":2398,"kind":"app","opcode":"Rec","args":[{"id":2395,"kind":"str","value":"newState"},{"id":2394,"kind":"name","name":"newState"},{"id":2397,"kind":"str","value":"error"},{"id":2396,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2830":{"id":2731,"name":"currentState","kind":"param"},"2831":{"id":2733,"name":"sender","kind":"param"},"2832":{"id":2770,"kind":"def","name":"packet","qualifier":"val","expr":{"id":2769,"kind":"app","opcode":"head","args":[{"id":2768,"kind":"app","opcode":"field","args":[{"id":2766,"kind":"app","opcode":"get","args":[{"id":2764,"kind":"app","opcode":"field","args":[{"id":2762,"kind":"name","name":"currentState"},{"id":2763,"kind":"str","value":"consumerStates"}]},{"id":2765,"kind":"name","name":"sender"}]},{"id":2767,"kind":"str","value":"outstandingPacketsToProvider"}]}]},"depth":1},"2833":{"id":4288,"kind":"def","name":"recvPacketOnProvider","qualifier":"puredef","expr":{"id":4287,"kind":"lambda","params":[{"id":4118,"name":"currentState"},{"id":4120,"name":"sender"},{"id":4122,"name":"packet"}],"qualifier":"puredef","expr":{"id":4285,"kind":"app","opcode":"ite","args":[{"id":4130,"kind":"app","opcode":"not","args":[{"id":4129,"kind":"app","opcode":"isRunningConsumer","args":[{"id":4125,"kind":"name","name":"sender"},{"id":4128,"kind":"app","opcode":"field","args":[{"id":4126,"kind":"name","name":"currentState"},{"id":4127,"kind":"str","value":"providerState"}]}]}]},{"id":4132,"kind":"app","opcode":"Err","args":[{"id":4131,"kind":"str","value":"Sender is not currently a consumer - must have 'running' status!"}]},{"id":4284,"kind":"app","opcode":"ite","args":[{"id":4146,"kind":"app","opcode":"neq","args":[{"id":4142,"kind":"app","opcode":"field","args":[{"id":4140,"kind":"app","opcode":"head","args":[{"id":4139,"kind":"app","opcode":"get","args":[{"id":4137,"kind":"app","opcode":"field","args":[{"id":4135,"kind":"app","opcode":"field","args":[{"id":4133,"kind":"name","name":"currentState"},{"id":4134,"kind":"str","value":"providerState"}]},{"id":4136,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":4138,"kind":"name","name":"sender"}]}]},{"id":4141,"kind":"str","value":"id"}]},{"id":4145,"kind":"app","opcode":"field","args":[{"id":4143,"kind":"name","name":"packet"},{"id":4144,"kind":"str","value":"id"}]}]},{"id":4148,"kind":"app","opcode":"Err","args":[{"id":4147,"kind":"str","value":"Received maturation is not for the oldest sentVscPacket"}]},{"id":4283,"kind":"let","opdef":{"id":4154,"kind":"def","name":"currentReceivedMaturations","qualifier":"val","expr":{"id":4153,"kind":"app","opcode":"field","args":[{"id":4151,"kind":"app","opcode":"field","args":[{"id":4149,"kind":"name","name":"currentState"},{"id":4150,"kind":"str","value":"providerState"}]},{"id":4152,"kind":"str","value":"receivedMaturations"}]}},"expr":{"id":4282,"kind":"let","opdef":{"id":4159,"kind":"def","name":"newReceivedMaturations","qualifier":"val","expr":{"id":4158,"kind":"app","opcode":"union","args":[{"id":4155,"kind":"name","name":"currentReceivedMaturations"},{"id":4157,"kind":"app","opcode":"Set","args":[{"id":4156,"kind":"name","name":"packet"}]}]}},"expr":{"id":4281,"kind":"let","opdef":{"id":4166,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":4165,"kind":"app","opcode":"with","args":[{"id":4162,"kind":"app","opcode":"field","args":[{"id":4160,"kind":"name","name":"currentState"},{"id":4161,"kind":"str","value":"providerState"}]},{"id":4163,"kind":"str","value":"receivedMaturations"},{"id":4164,"kind":"name","name":"newReceivedMaturations"}]}},"expr":{"id":4280,"kind":"let","opdef":{"id":4175,"kind":"def","name":"newSentVscPacket","qualifier":"val","expr":{"id":4174,"kind":"app","opcode":"tail","args":[{"id":4173,"kind":"app","opcode":"get","args":[{"id":4171,"kind":"app","opcode":"field","args":[{"id":4169,"kind":"app","opcode":"field","args":[{"id":4167,"kind":"name","name":"currentState"},{"id":4168,"kind":"str","value":"providerState"}]},{"id":4170,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":4172,"kind":"name","name":"sender"}]}]}},"expr":{"id":4279,"kind":"let","opdef":{"id":4190,"kind":"def","name":"newState","qualifier":"val","expr":{"id":4189,"kind":"app","opcode":"with","args":[{"id":4176,"kind":"name","name":"currentState"},{"id":4177,"kind":"str","value":"providerState"},{"id":4188,"kind":"app","opcode":"with","args":[{"id":4178,"kind":"name","name":"newProviderState"},{"id":4187,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":4186,"kind":"app","opcode":"set","args":[{"id":4183,"kind":"app","opcode":"field","args":[{"id":4181,"kind":"app","opcode":"field","args":[{"id":4179,"kind":"name","name":"currentState"},{"id":4180,"kind":"str","value":"providerState"}]},{"id":4182,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":4184,"kind":"name","name":"sender"},{"id":4185,"kind":"name","name":"newSentVscPacket"}]}]}]}},"expr":{"id":4278,"kind":"let","opdef":{"id":4205,"kind":"def","name":"consumerAddrsToPrune","qualifier":"pureval","expr":{"id":4204,"kind":"app","opcode":"toSet","args":[{"id":4203,"kind":"app","opcode":"getOrElse","args":[{"id":4198,"kind":"app","opcode":"getOrElse","args":[{"id":4195,"kind":"app","opcode":"field","args":[{"id":4193,"kind":"app","opcode":"field","args":[{"id":4191,"kind":"name","name":"currentState"},{"id":4192,"kind":"str","value":"providerState"}]},{"id":4194,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":4196,"kind":"name","name":"sender"},{"id":4197,"kind":"app","opcode":"Map","args":[]}]},{"id":4201,"kind":"app","opcode":"field","args":[{"id":4199,"kind":"name","name":"packet"},{"id":4200,"kind":"str","value":"id"}]},{"id":4202,"kind":"app","opcode":"List","args":[]}]}]}},"expr":{"id":4277,"kind":"let","opdef":{"id":4214,"kind":"def","name":"senderValByConsAddr","qualifier":"pureval","expr":{"id":4213,"kind":"app","opcode":"getOrElse","args":[{"id":4210,"kind":"app","opcode":"field","args":[{"id":4208,"kind":"app","opcode":"field","args":[{"id":4206,"kind":"name","name":"newState"},{"id":4207,"kind":"str","value":"providerState"}]},{"id":4209,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":4211,"kind":"name","name":"sender"},{"id":4212,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":4276,"kind":"let","opdef":{"id":4230,"kind":"def","name":"newSenderValByConsAddr","qualifier":"pureval","expr":{"id":4229,"kind":"app","opcode":"mapBy","args":[{"id":4223,"kind":"app","opcode":"filter","args":[{"id":4216,"kind":"app","opcode":"keys","args":[{"id":4215,"kind":"name","name":"senderValByConsAddr"}]},{"id":4222,"kind":"lambda","params":[{"id":4217,"name":"consAddr"}],"qualifier":"def","expr":{"id":4221,"kind":"app","opcode":"not","args":[{"id":4220,"kind":"app","opcode":"contains","args":[{"id":4218,"kind":"name","name":"consumerAddrsToPrune"},{"id":4219,"kind":"name","name":"consAddr"}]}]}}]},{"id":4228,"kind":"lambda","params":[{"id":4224,"name":"consAddr"}],"qualifier":"def","expr":{"id":4227,"kind":"app","opcode":"get","args":[{"id":4225,"kind":"name","name":"senderValByConsAddr"},{"id":4226,"kind":"name","name":"consAddr"}]}}]}},"expr":{"id":4275,"kind":"let","opdef":{"id":4266,"kind":"def","name":"newProviderState2","qualifier":"pureval","expr":{"id":4265,"kind":"app","opcode":"with","args":[{"id":4243,"kind":"app","opcode":"with","args":[{"id":4233,"kind":"app","opcode":"field","args":[{"id":4231,"kind":"name","name":"newState"},{"id":4232,"kind":"str","value":"providerState"}]},{"id":4234,"kind":"str","value":"validatorByConsumerAddr"},{"id":4242,"kind":"app","opcode":"put","args":[{"id":4239,"kind":"app","opcode":"field","args":[{"id":4237,"kind":"app","opcode":"field","args":[{"id":4235,"kind":"name","name":"newState"},{"id":4236,"kind":"str","value":"providerState"}]},{"id":4238,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":4240,"kind":"name","name":"sender"},{"id":4241,"kind":"name","name":"newSenderValByConsAddr"}]}]},{"id":4244,"kind":"str","value":"consumerAddrsToPrune"},{"id":4264,"kind":"app","opcode":"put","args":[{"id":4249,"kind":"app","opcode":"field","args":[{"id":4247,"kind":"app","opcode":"field","args":[{"id":4245,"kind":"name","name":"newState"},{"id":4246,"kind":"str","value":"providerState"}]},{"id":4248,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":4250,"kind":"name","name":"sender"},{"id":4263,"kind":"app","opcode":"put","args":[{"id":4258,"kind":"app","opcode":"getOrElse","args":[{"id":4255,"kind":"app","opcode":"field","args":[{"id":4253,"kind":"app","opcode":"field","args":[{"id":4251,"kind":"name","name":"newState"},{"id":4252,"kind":"str","value":"providerState"}]},{"id":4254,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":4256,"kind":"name","name":"sender"},{"id":4257,"kind":"app","opcode":"Map","args":[]}]},{"id":4261,"kind":"app","opcode":"field","args":[{"id":4259,"kind":"name","name":"packet"},{"id":4260,"kind":"str","value":"id"}]},{"id":4262,"kind":"app","opcode":"List","args":[]}]}]}]}},"expr":{"id":4274,"kind":"let","opdef":{"id":4271,"kind":"def","name":"newState2","qualifier":"pureval","expr":{"id":4270,"kind":"app","opcode":"with","args":[{"id":4267,"kind":"name","name":"newState"},{"id":4268,"kind":"str","value":"providerState"},{"id":4269,"kind":"name","name":"newProviderState2"}]}},"expr":{"id":4273,"kind":"app","opcode":"Ok","args":[{"id":4272,"kind":"name","name":"newState2"}]}}}}}}}}}}}]}]}},"depth":0},"2835":{"id":2834,"kind":"def","name":"result","qualifier":"val","expr":{"id":2833,"kind":"app","opcode":"recvPacketOnProvider","args":[{"id":2830,"kind":"name","name":"currentState"},{"id":2831,"kind":"name","name":"sender"},{"id":2832,"kind":"name","name":"packet"}]},"depth":1},"2839":{"id":2834,"kind":"def","name":"result","qualifier":"val","expr":{"id":2833,"kind":"app","opcode":"recvPacketOnProvider","args":[{"id":2830,"kind":"name","name":"currentState"},{"id":2831,"kind":"name","name":"sender"},{"id":2832,"kind":"name","name":"packet"}]},"depth":1},"2840":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2841":{"id":2834,"kind":"def","name":"result","qualifier":"val","expr":{"id":2833,"kind":"app","opcode":"recvPacketOnProvider","args":[{"id":2830,"kind":"name","name":"currentState"},{"id":2831,"kind":"name","name":"sender"},{"id":2832,"kind":"name","name":"packet"}]},"depth":1},"2844":{"id":2838,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":2837,"kind":"app","opcode":"field","args":[{"id":2835,"kind":"name","name":"result"},{"id":2836,"kind":"str","value":"newState"}]},"depth":1},"2845":{"id":2733,"name":"sender","kind":"param"},"2846":{"id":4334,"kind":"def","name":"removeOutstandingPacketFromConsumer","qualifier":"puredef","expr":{"id":4333,"kind":"lambda","params":[{"id":4289,"name":"currentState"},{"id":4291,"name":"sender"}],"qualifier":"puredef","expr":{"id":4331,"kind":"let","opdef":{"id":4301,"kind":"def","name":"currentOutstandingPackets","qualifier":"val","expr":{"id":4300,"kind":"app","opcode":"field","args":[{"id":4298,"kind":"app","opcode":"get","args":[{"id":4296,"kind":"app","opcode":"field","args":[{"id":4294,"kind":"name","name":"currentState"},{"id":4295,"kind":"str","value":"consumerStates"}]},{"id":4297,"kind":"name","name":"sender"}]},{"id":4299,"kind":"str","value":"outstandingPacketsToProvider"}]}},"expr":{"id":4330,"kind":"let","opdef":{"id":4304,"kind":"def","name":"newOutstandingPackets","qualifier":"val","expr":{"id":4303,"kind":"app","opcode":"tail","args":[{"id":4302,"kind":"name","name":"currentOutstandingPackets"}]}},"expr":{"id":4329,"kind":"let","opdef":{"id":4313,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":4312,"kind":"app","opcode":"with","args":[{"id":4309,"kind":"app","opcode":"get","args":[{"id":4307,"kind":"app","opcode":"field","args":[{"id":4305,"kind":"name","name":"currentState"},{"id":4306,"kind":"str","value":"consumerStates"}]},{"id":4308,"kind":"name","name":"sender"}]},{"id":4310,"kind":"str","value":"outstandingPacketsToProvider"},{"id":4311,"kind":"name","name":"newOutstandingPackets"}]}},"expr":{"id":4328,"kind":"let","opdef":{"id":4320,"kind":"def","name":"newConsumerStates","qualifier":"val","expr":{"id":4319,"kind":"app","opcode":"set","args":[{"id":4316,"kind":"app","opcode":"field","args":[{"id":4314,"kind":"name","name":"currentState"},{"id":4315,"kind":"str","value":"consumerStates"}]},{"id":4317,"kind":"name","name":"sender"},{"id":4318,"kind":"name","name":"newConsumerState"}]}},"expr":{"id":4327,"kind":"let","opdef":{"id":4325,"kind":"def","name":"newState","qualifier":"val","expr":{"id":4324,"kind":"app","opcode":"with","args":[{"id":4321,"kind":"name","name":"currentState"},{"id":4322,"kind":"str","value":"consumerStates"},{"id":4323,"kind":"name","name":"newConsumerStates"}]}},"expr":{"id":4326,"kind":"name","name":"newState"}}}}}}},"depth":0},"2847":{"id":2401,"kind":"def","name":"Ok","qualifier":"puredef","expr":{"id":2400,"kind":"lambda","params":[{"id":2391,"name":"newState"}],"qualifier":"puredef","expr":{"id":2398,"kind":"app","opcode":"Rec","args":[{"id":2395,"kind":"str","value":"newState"},{"id":2394,"kind":"name","name":"newState"},{"id":2397,"kind":"str","value":"error"},{"id":2396,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2861":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2863":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2864":{"id":2390,"kind":"typedef","name":"Result","type":{"id":2389,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"newState","fieldType":{"id":2387,"kind":"const","name":"ProtocolState"}},{"fieldName":"error","fieldType":{"id":2388,"kind":"const","name":"Error"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2867":{"id":2862,"name":"receiver","kind":"param"},"2868":{"id":2860,"name":"currentState","kind":"param"},"2871":{"id":4422,"kind":"def","name":"isRunningConsumer","qualifier":"puredef","expr":{"id":4421,"kind":"lambda","params":[{"id":4405,"name":"chain"},{"id":4407,"name":"providerState"}],"qualifier":"puredef","expr":{"id":4419,"kind":"let","opdef":{"id":4415,"kind":"def","name":"status","qualifier":"val","expr":{"id":4414,"kind":"app","opcode":"get","args":[{"id":4412,"kind":"app","opcode":"field","args":[{"id":4410,"kind":"name","name":"providerState"},{"id":4411,"kind":"str","value":"consumerStatus"}]},{"id":4413,"kind":"name","name":"chain"}]}},"expr":{"id":4418,"kind":"app","opcode":"eq","args":[{"id":4416,"kind":"name","name":"status"},{"id":4417,"kind":"name","name":"RUNNING"}]}}},"depth":0},"2874":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2877":{"id":2860,"name":"currentState","kind":"param"},"2882":{"id":2862,"name":"receiver","kind":"param"},"2888":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2891":{"id":2860,"name":"currentState","kind":"param"},"2896":{"id":2862,"name":"receiver","kind":"param"},"2900":{"id":2899,"kind":"def","name":"packet","qualifier":"val","expr":{"id":2898,"kind":"app","opcode":"head","args":[{"id":2897,"kind":"app","opcode":"get","args":[{"id":2895,"kind":"app","opcode":"field","args":[{"id":2893,"kind":"app","opcode":"field","args":[{"id":2891,"kind":"name","name":"currentState"},{"id":2892,"kind":"str","value":"providerState"}]},{"id":2894,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":2896,"kind":"name","name":"receiver"}]}]},"depth":1},"2903":{"id":2860,"name":"currentState","kind":"param"},"2906":{"id":2862,"name":"receiver","kind":"param"},"2913":{"id":2860,"name":"currentState","kind":"param"},"2919":{"id":2862,"name":"receiver","kind":"param"},"2921":{"id":3737,"kind":"def","name":"stopConsumers","qualifier":"puredef","expr":{"id":3736,"kind":"lambda","params":[{"id":3675,"name":"currentConsumerStatusMap"},{"id":3679,"name":"consumersToStop"},{"id":3682,"name":"consumersToTimeout"}],"qualifier":"puredef","expr":{"id":3734,"kind":"let","opdef":{"id":3700,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":3699,"kind":"app","opcode":"filter","args":[{"id":3691,"kind":"app","opcode":"keys","args":[{"id":3690,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3698,"kind":"lambda","params":[{"id":3692,"name":"chain"}],"qualifier":"def","expr":{"id":3697,"kind":"app","opcode":"eq","args":[{"id":3695,"kind":"app","opcode":"get","args":[{"id":3693,"kind":"name","name":"currentConsumerStatusMap"},{"id":3694,"kind":"name","name":"chain"}]},{"id":3696,"kind":"name","name":"RUNNING"}]}}]}},"expr":{"id":3733,"kind":"app","opcode":"ite","args":[{"id":3706,"kind":"app","opcode":"igt","args":[{"id":3704,"kind":"app","opcode":"size","args":[{"id":3703,"kind":"app","opcode":"exclude","args":[{"id":3701,"kind":"name","name":"consumersToStop"},{"id":3702,"kind":"name","name":"runningConsumers"}]}]},{"id":3705,"kind":"int","value":0}]},{"id":3709,"kind":"app","opcode":"Tup","args":[{"id":3707,"kind":"name","name":"currentConsumerStatusMap"},{"id":3708,"kind":"str","value":"Cannot stop a consumer that is not running"}]},{"id":3732,"kind":"let","opdef":{"id":3728,"kind":"def","name":"newConsumerStatusMap","qualifier":"val","expr":{"id":3727,"kind":"app","opcode":"mapBy","args":[{"id":3711,"kind":"app","opcode":"keys","args":[{"id":3710,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3726,"kind":"lambda","params":[{"id":3712,"name":"chain"}],"qualifier":"def","expr":{"id":3725,"kind":"app","opcode":"ite","args":[{"id":3715,"kind":"app","opcode":"contains","args":[{"id":3713,"kind":"name","name":"consumersToTimeout"},{"id":3714,"kind":"name","name":"chain"}]},{"id":3716,"kind":"name","name":"TIMEDOUT"},{"id":3724,"kind":"app","opcode":"ite","args":[{"id":3719,"kind":"app","opcode":"contains","args":[{"id":3717,"kind":"name","name":"consumersToStop"},{"id":3718,"kind":"name","name":"chain"}]},{"id":3720,"kind":"name","name":"STOPPED"},{"id":3723,"kind":"app","opcode":"get","args":[{"id":3721,"kind":"name","name":"currentConsumerStatusMap"},{"id":3722,"kind":"name","name":"chain"}]}]}]}}]}},"expr":{"id":3731,"kind":"app","opcode":"Tup","args":[{"id":3729,"kind":"name","name":"newConsumerStatusMap"},{"id":3730,"kind":"str","value":""}]}}]}}},"depth":0},"2923":{"id":2922,"kind":"def","name":"result","qualifier":"val","expr":{"id":2921,"kind":"app","opcode":"stopConsumers","args":[{"id":2917,"kind":"app","opcode":"field","args":[{"id":2915,"kind":"app","opcode":"field","args":[{"id":2913,"kind":"name","name":"currentState"},{"id":2914,"kind":"str","value":"providerState"}]},{"id":2916,"kind":"str","value":"consumerStatus"}]},{"id":2918,"kind":"app","opcode":"Set","args":[]},{"id":2920,"kind":"app","opcode":"Set","args":[{"id":2919,"kind":"name","name":"receiver"}]}]},"depth":1},"2927":{"id":2922,"kind":"def","name":"result","qualifier":"val","expr":{"id":2921,"kind":"app","opcode":"stopConsumers","args":[{"id":2917,"kind":"app","opcode":"field","args":[{"id":2915,"kind":"app","opcode":"field","args":[{"id":2913,"kind":"name","name":"currentState"},{"id":2914,"kind":"str","value":"providerState"}]},{"id":2916,"kind":"str","value":"consumerStatus"}]},{"id":2918,"kind":"app","opcode":"Set","args":[]},{"id":2920,"kind":"app","opcode":"Set","args":[{"id":2919,"kind":"name","name":"receiver"}]}]},"depth":1},"2931":{"id":2930,"kind":"def","name":"err","qualifier":"val","expr":{"id":2929,"kind":"app","opcode":"item","args":[{"id":2927,"kind":"name","name":"result"},{"id":2928,"kind":"int","value":2}]},"depth":1},"2934":{"id":2930,"kind":"def","name":"err","qualifier":"val","expr":{"id":2929,"kind":"app","opcode":"item","args":[{"id":2927,"kind":"name","name":"result"},{"id":2928,"kind":"int","value":2}]},"depth":1},"2935":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2938":{"id":2860,"name":"currentState","kind":"param"},"2942":{"id":2926,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":2925,"kind":"app","opcode":"item","args":[{"id":2923,"kind":"name","name":"result"},{"id":2924,"kind":"int","value":1}]},"depth":1},"2945":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2946":{"id":2860,"name":"currentState","kind":"param"},"2948":{"id":2944,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":2943,"kind":"app","opcode":"with","args":[{"id":2940,"kind":"app","opcode":"field","args":[{"id":2938,"kind":"name","name":"currentState"},{"id":2939,"kind":"str","value":"providerState"}]},{"id":2941,"kind":"str","value":"consumerStatus"},{"id":2942,"kind":"name","name":"newConsumerStatus"}]},"depth":1},"2951":{"id":2950,"kind":"def","name":"newState","qualifier":"val","expr":{"id":2949,"kind":"app","opcode":"with","args":[{"id":2946,"kind":"name","name":"currentState"},{"id":2947,"kind":"str","value":"providerState"},{"id":2948,"kind":"name","name":"newProviderState"}]},"typeAnnotation":{"id":2945,"kind":"const","name":"ProtocolState"},"depth":1},"2952":{"id":2401,"kind":"def","name":"Ok","qualifier":"puredef","expr":{"id":2400,"kind":"lambda","params":[{"id":2391,"name":"newState"}],"qualifier":"puredef","expr":{"id":2398,"kind":"app","opcode":"Rec","args":[{"id":2395,"kind":"str","value":"newState"},{"id":2394,"kind":"name","name":"newState"},{"id":2397,"kind":"str","value":"error"},{"id":2396,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2961":{"id":2860,"name":"currentState","kind":"param"},"2962":{"id":2862,"name":"receiver","kind":"param"},"2963":{"id":2899,"kind":"def","name":"packet","qualifier":"val","expr":{"id":2898,"kind":"app","opcode":"head","args":[{"id":2897,"kind":"app","opcode":"get","args":[{"id":2895,"kind":"app","opcode":"field","args":[{"id":2893,"kind":"app","opcode":"field","args":[{"id":2891,"kind":"name","name":"currentState"},{"id":2892,"kind":"str","value":"providerState"}]},{"id":2894,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":2896,"kind":"name","name":"receiver"}]}]},"depth":1},"2964":{"id":4117,"kind":"def","name":"recvPacketOnConsumer","qualifier":"puredef","expr":{"id":4116,"kind":"lambda","params":[{"id":4037,"name":"currentState"},{"id":4039,"name":"receiver"},{"id":4041,"name":"packet"}],"qualifier":"puredef","expr":{"id":4114,"kind":"app","opcode":"ite","args":[{"id":4049,"kind":"app","opcode":"not","args":[{"id":4048,"kind":"app","opcode":"isRunningConsumer","args":[{"id":4044,"kind":"name","name":"receiver"},{"id":4047,"kind":"app","opcode":"field","args":[{"id":4045,"kind":"name","name":"currentState"},{"id":4046,"kind":"str","value":"providerState"}]}]}]},{"id":4051,"kind":"app","opcode":"Err","args":[{"id":4050,"kind":"str","value":"Receiver is not currently a consumer - must have 'running' status!"}]},{"id":4113,"kind":"let","opdef":{"id":4058,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":4057,"kind":"app","opcode":"get","args":[{"id":4055,"kind":"app","opcode":"field","args":[{"id":4053,"kind":"name","name":"currentState"},{"id":4054,"kind":"str","value":"consumerStates"}]},{"id":4056,"kind":"name","name":"receiver"}]},"typeAnnotation":{"id":4052,"kind":"const","name":"ConsumerState"}},"expr":{"id":4112,"kind":"let","opdef":{"id":4095,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":4094,"kind":"app","opcode":"with","args":[{"id":4093,"kind":"app","opcode":"with","args":[{"id":4092,"kind":"app","opcode":"with","args":[{"id":4060,"kind":"name","name":"currentConsumerState"},{"id":4069,"kind":"str","value":"chainState"},{"id":4068,"kind":"app","opcode":"with","args":[{"id":4063,"kind":"app","opcode":"field","args":[{"id":4061,"kind":"name","name":"currentConsumerState"},{"id":4062,"kind":"str","value":"chainState"}]},{"id":4064,"kind":"str","value":"currentValidatorSet"},{"id":4067,"kind":"app","opcode":"field","args":[{"id":4065,"kind":"name","name":"packet"},{"id":4066,"kind":"str","value":"validatorSet"}]}]}]},{"id":4085,"kind":"str","value":"maturationTimes"},{"id":4084,"kind":"app","opcode":"append","args":[{"id":4072,"kind":"app","opcode":"field","args":[{"id":4070,"kind":"name","name":"currentConsumerState"},{"id":4071,"kind":"str","value":"maturationTimes"}]},{"id":4083,"kind":"app","opcode":"Tup","args":[{"id":4073,"kind":"name","name":"packet"},{"id":4082,"kind":"app","opcode":"iadd","args":[{"id":4078,"kind":"app","opcode":"field","args":[{"id":4076,"kind":"app","opcode":"field","args":[{"id":4074,"kind":"name","name":"currentConsumerState"},{"id":4075,"kind":"str","value":"chainState"}]},{"id":4077,"kind":"str","value":"runningTimestamp"}]},{"id":4081,"kind":"app","opcode":"get","args":[{"id":4079,"kind":"name","name":"UnbondingPeriodPerChain"},{"id":4080,"kind":"name","name":"receiver"}]}]}]}]}]},{"id":4091,"kind":"str","value":"receivedVscPackets"},{"id":4090,"kind":"app","opcode":"prepend","args":[{"id":4088,"kind":"app","opcode":"field","args":[{"id":4086,"kind":"name","name":"currentConsumerState"},{"id":4087,"kind":"str","value":"receivedVscPackets"}]},{"id":4089,"kind":"name","name":"packet"}]}]},"typeAnnotation":{"id":4059,"kind":"const","name":"ConsumerState"}},"expr":{"id":4111,"kind":"let","opdef":{"id":4102,"kind":"def","name":"newConsumerStates","qualifier":"val","expr":{"id":4101,"kind":"app","opcode":"set","args":[{"id":4098,"kind":"app","opcode":"field","args":[{"id":4096,"kind":"name","name":"currentState"},{"id":4097,"kind":"str","value":"consumerStates"}]},{"id":4099,"kind":"name","name":"receiver"},{"id":4100,"kind":"name","name":"newConsumerState"}]}},"expr":{"id":4110,"kind":"let","opdef":{"id":4107,"kind":"def","name":"newState","qualifier":"val","expr":{"id":4106,"kind":"app","opcode":"with","args":[{"id":4103,"kind":"name","name":"currentState"},{"id":4104,"kind":"str","value":"consumerStates"},{"id":4105,"kind":"name","name":"newConsumerStates"}]}},"expr":{"id":4109,"kind":"app","opcode":"Ok","args":[{"id":4108,"kind":"name","name":"newState"}]}}}}}]}},"depth":0},"2966":{"id":2965,"kind":"def","name":"result","qualifier":"val","expr":{"id":2964,"kind":"app","opcode":"recvPacketOnConsumer","args":[{"id":2961,"kind":"name","name":"currentState"},{"id":2962,"kind":"name","name":"receiver"},{"id":2963,"kind":"name","name":"packet"}]},"depth":1},"2970":{"id":2965,"kind":"def","name":"result","qualifier":"val","expr":{"id":2964,"kind":"app","opcode":"recvPacketOnConsumer","args":[{"id":2961,"kind":"name","name":"currentState"},{"id":2962,"kind":"name","name":"receiver"},{"id":2963,"kind":"name","name":"packet"}]},"depth":1},"2971":{"id":2423,"kind":"def","name":"hasError","qualifier":"puredef","expr":{"id":2422,"kind":"lambda","params":[{"id":2413,"name":"result"}],"qualifier":"puredef","expr":{"id":2420,"kind":"app","opcode":"neq","args":[{"id":2418,"kind":"app","opcode":"field","args":[{"id":2416,"kind":"name","name":"result"},{"id":2417,"kind":"str","value":"error"}]},{"id":2419,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2972":{"id":2965,"kind":"def","name":"result","qualifier":"val","expr":{"id":2964,"kind":"app","opcode":"recvPacketOnConsumer","args":[{"id":2961,"kind":"name","name":"currentState"},{"id":2962,"kind":"name","name":"receiver"},{"id":2963,"kind":"name","name":"packet"}]},"depth":1},"2975":{"id":2969,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":2968,"kind":"app","opcode":"field","args":[{"id":2966,"kind":"name","name":"result"},{"id":2967,"kind":"str","value":"newState"}]},"depth":1},"2976":{"id":2862,"name":"receiver","kind":"param"},"2977":{"id":4377,"kind":"def","name":"removeOutstandingPacketFromProvider","qualifier":"puredef","expr":{"id":4376,"kind":"lambda","params":[{"id":4335,"name":"currentState"},{"id":4337,"name":"receiver"}],"qualifier":"puredef","expr":{"id":4374,"kind":"let","opdef":{"id":4347,"kind":"def","name":"currentOutstandingPackets","qualifier":"val","expr":{"id":4346,"kind":"app","opcode":"get","args":[{"id":4344,"kind":"app","opcode":"field","args":[{"id":4342,"kind":"app","opcode":"field","args":[{"id":4340,"kind":"name","name":"currentState"},{"id":4341,"kind":"str","value":"providerState"}]},{"id":4343,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":4345,"kind":"name","name":"receiver"}]}},"expr":{"id":4373,"kind":"let","opdef":{"id":4350,"kind":"def","name":"newOutstandingPackets","qualifier":"val","expr":{"id":4349,"kind":"app","opcode":"tail","args":[{"id":4348,"kind":"name","name":"currentOutstandingPackets"}]}},"expr":{"id":4372,"kind":"let","opdef":{"id":4364,"kind":"def","name":"newProviderState","qualifier":"val","expr":{"id":4363,"kind":"app","opcode":"with","args":[{"id":4353,"kind":"app","opcode":"field","args":[{"id":4351,"kind":"name","name":"currentState"},{"id":4352,"kind":"str","value":"providerState"}]},{"id":4354,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":4362,"kind":"app","opcode":"set","args":[{"id":4359,"kind":"app","opcode":"field","args":[{"id":4357,"kind":"app","opcode":"field","args":[{"id":4355,"kind":"name","name":"currentState"},{"id":4356,"kind":"str","value":"providerState"}]},{"id":4358,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":4360,"kind":"name","name":"receiver"},{"id":4361,"kind":"name","name":"newOutstandingPackets"}]}]}},"expr":{"id":4371,"kind":"let","opdef":{"id":4369,"kind":"def","name":"newState","qualifier":"val","expr":{"id":4368,"kind":"app","opcode":"with","args":[{"id":4365,"kind":"name","name":"currentState"},{"id":4366,"kind":"str","value":"providerState"},{"id":4367,"kind":"name","name":"newProviderState"}]}},"expr":{"id":4370,"kind":"name","name":"newState"}}}}}},"depth":0},"2978":{"id":2401,"kind":"def","name":"Ok","qualifier":"puredef","expr":{"id":2400,"kind":"lambda","params":[{"id":2391,"name":"newState"}],"qualifier":"puredef","expr":{"id":2398,"kind":"app","opcode":"Rec","args":[{"id":2395,"kind":"str","value":"newState"},{"id":2394,"kind":"name","name":"newState"},{"id":2397,"kind":"str","value":"error"},{"id":2396,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2992":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2994":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2618,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"2996":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"2999":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3001":{"id":2390,"kind":"typedef","name":"Result","type":{"id":2389,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"newState","fieldType":{"id":2387,"kind":"const","name":"ProtocolState"}},{"fieldName":"error","fieldType":{"id":2388,"kind":"const","name":"Error"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3002":{"id":2991,"name":"currentState","kind":"param"},"3006":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]},"depth":1},"3007":{"id":4443,"kind":"def","name":"getRunningConsumers","qualifier":"puredef","expr":{"id":4442,"kind":"lambda","params":[{"id":4423,"name":"providerState"}],"qualifier":"puredef","expr":{"id":4440,"kind":"app","opcode":"filter","args":[{"id":4430,"kind":"app","opcode":"keys","args":[{"id":4429,"kind":"app","opcode":"field","args":[{"id":4427,"kind":"name","name":"providerState"},{"id":4428,"kind":"str","value":"consumerStatus"}]}]},{"id":4439,"kind":"lambda","params":[{"id":4431,"name":"chain"}],"qualifier":"def","expr":{"id":4438,"kind":"app","opcode":"eq","args":[{"id":4436,"kind":"app","opcode":"get","args":[{"id":4434,"kind":"app","opcode":"field","args":[{"id":4432,"kind":"name","name":"providerState"},{"id":4433,"kind":"str","value":"consumerStatus"}]},{"id":4435,"kind":"name","name":"chain"}]},{"id":4437,"kind":"name","name":"RUNNING"}]}}]}},"depth":0},"3009":{"id":2991,"name":"currentState","kind":"param"},"3010":{"id":3008,"name":"consumer","kind":"param"},"3011":{"id":4534,"kind":"def","name":"TimeoutDueToVscTimeout","qualifier":"puredef","expr":{"id":4533,"kind":"lambda","params":[{"id":4465,"name":"currentState"},{"id":4467,"name":"consumer"}],"qualifier":"puredef","expr":{"id":4531,"kind":"app","opcode":"ite","args":[{"id":4477,"kind":"app","opcode":"not","args":[{"id":4476,"kind":"app","opcode":"isRunningConsumer","args":[{"id":4472,"kind":"name","name":"consumer"},{"id":4475,"kind":"app","opcode":"field","args":[{"id":4473,"kind":"name","name":"currentState"},{"id":4474,"kind":"str","value":"providerState"}]}]}]},{"id":4480,"kind":"app","opcode":"Tup","args":[{"id":4478,"kind":"bool","value":false},{"id":4479,"kind":"str","value":"Consumer is not currently a consumer - must have 'running' status!"}]},{"id":4530,"kind":"let","opdef":{"id":4484,"kind":"def","name":"providerState","qualifier":"val","expr":{"id":4483,"kind":"app","opcode":"field","args":[{"id":4481,"kind":"name","name":"currentState"},{"id":4482,"kind":"str","value":"providerState"}]}},"expr":{"id":4529,"kind":"let","opdef":{"id":4491,"kind":"def","name":"consumerState","qualifier":"val","expr":{"id":4490,"kind":"app","opcode":"get","args":[{"id":4488,"kind":"app","opcode":"field","args":[{"id":4486,"kind":"name","name":"currentState"},{"id":4487,"kind":"str","value":"consumerStates"}]},{"id":4489,"kind":"name","name":"consumer"}]},"typeAnnotation":{"id":4485,"kind":"const","name":"ConsumerState"}},"expr":{"id":4528,"kind":"let","opdef":{"id":4497,"kind":"def","name":"sentVscPacketsToConsumer","qualifier":"val","expr":{"id":4496,"kind":"app","opcode":"get","args":[{"id":4494,"kind":"app","opcode":"field","args":[{"id":4492,"kind":"name","name":"providerState"},{"id":4493,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":4495,"kind":"name","name":"consumer"}]}},"expr":{"id":4527,"kind":"app","opcode":"ite","args":[{"id":4501,"kind":"app","opcode":"igt","args":[{"id":4499,"kind":"app","opcode":"length","args":[{"id":4498,"kind":"name","name":"sentVscPacketsToConsumer"}]},{"id":4500,"kind":"int","value":0}]},{"id":4523,"kind":"let","opdef":{"id":4504,"kind":"def","name":"oldestSentVscPacket","qualifier":"val","expr":{"id":4503,"kind":"app","opcode":"head","args":[{"id":4502,"kind":"name","name":"sentVscPacketsToConsumer"}]}},"expr":{"id":4522,"kind":"app","opcode":"ite","args":[{"id":4515,"kind":"app","opcode":"ilt","args":[{"id":4509,"kind":"app","opcode":"iadd","args":[{"id":4507,"kind":"app","opcode":"field","args":[{"id":4505,"kind":"name","name":"oldestSentVscPacket"},{"id":4506,"kind":"str","value":"sendingTime"}]},{"id":4508,"kind":"name","name":"VscTimeout"}]},{"id":4514,"kind":"app","opcode":"field","args":[{"id":4512,"kind":"app","opcode":"field","args":[{"id":4510,"kind":"name","name":"providerState"},{"id":4511,"kind":"str","value":"chainState"}]},{"id":4513,"kind":"str","value":"runningTimestamp"}]}]},{"id":4518,"kind":"app","opcode":"Tup","args":[{"id":4516,"kind":"bool","value":true},{"id":4517,"kind":"str","value":""}]},{"id":4521,"kind":"app","opcode":"Tup","args":[{"id":4519,"kind":"bool","value":false},{"id":4520,"kind":"str","value":""}]}]}},{"id":4526,"kind":"app","opcode":"Tup","args":[{"id":4524,"kind":"bool","value":false},{"id":4525,"kind":"str","value":""}]}]}}}}]}},"depth":0},"3013":{"id":3012,"kind":"def","name":"res","qualifier":"val","expr":{"id":3011,"kind":"app","opcode":"TimeoutDueToVscTimeout","args":[{"id":3009,"kind":"name","name":"currentState"},{"id":3010,"kind":"name","name":"consumer"}]},"depth":2},"3020":{"kind":"const","name":"ConsumerChains","typeAnnotation":{"id":2622,"kind":"set","elem":{"id":2621,"kind":"const","name":"Chain"}},"id":2623},"3022":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]},"depth":1},"3023":{"id":3021,"name":"consumer","kind":"param"},"3024":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]},"depth":1},"3029":{"id":2541,"kind":"def","name":"applyKeyAssignmentToValSet","qualifier":"puredef","expr":{"id":2540,"kind":"lambda","params":[{"id":2434,"name":"providerState"},{"id":2436,"name":"consumer"},{"id":2438,"name":"valSet"}],"qualifier":"puredef","expr":{"id":2538,"kind":"let","opdef":{"id":2519,"kind":"def","name":"newValSet","qualifier":"pureval","expr":{"id":2518,"kind":"app","opcode":"map","args":[{"id":2442,"kind":"app","opcode":"keys","args":[{"id":2441,"kind":"name","name":"valSet"}]},{"id":2517,"kind":"lambda","params":[{"id":2443,"name":"node"}],"qualifier":"def","expr":{"id":2516,"kind":"let","opdef":{"id":2447,"kind":"def","name":"power","qualifier":"pureval","expr":{"id":2446,"kind":"app","opcode":"get","args":[{"id":2444,"kind":"name","name":"valSet"},{"id":2445,"kind":"name","name":"node"}]}},"expr":{"id":2515,"kind":"let","opdef":{"id":2454,"kind":"def","name":"keyAssignmentReplacements","qualifier":"pureval","expr":{"id":2453,"kind":"app","opcode":"getOrElse","args":[{"id":2450,"kind":"app","opcode":"field","args":[{"id":2448,"kind":"name","name":"providerState"},{"id":2449,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":2451,"kind":"name","name":"consumer"},{"id":2452,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":2514,"kind":"app","opcode":"ite","args":[{"id":2458,"kind":"app","opcode":"contains","args":[{"id":2456,"kind":"app","opcode":"keys","args":[{"id":2455,"kind":"name","name":"keyAssignmentReplacements"}]},{"id":2457,"kind":"name","name":"node"}]},{"id":2487,"kind":"let","opdef":{"id":2462,"kind":"def","name":"replacement","qualifier":"pureval","expr":{"id":2461,"kind":"app","opcode":"get","args":[{"id":2459,"kind":"name","name":"keyAssignmentReplacements"},{"id":2460,"kind":"name","name":"node"}]}},"expr":{"id":2486,"kind":"let","opdef":{"id":2466,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":2465,"kind":"app","opcode":"item","args":[{"id":2463,"kind":"name","name":"replacement"},{"id":2464,"kind":"int","value":1}]}},"expr":{"id":2485,"kind":"let","opdef":{"id":2470,"kind":"def","name":"oldToZero","qualifier":"pureval","expr":{"id":2469,"kind":"app","opcode":"Tup","args":[{"id":2467,"kind":"name","name":"oldConsAddr"},{"id":2468,"kind":"int","value":0}]}},"expr":{"id":2484,"kind":"let","opdef":{"id":2480,"kind":"def","name":"newToPower","qualifier":"pureval","expr":{"id":2479,"kind":"app","opcode":"Tup","args":[{"id":2477,"kind":"app","opcode":"get","args":[{"id":2475,"kind":"app","opcode":"get","args":[{"id":2473,"kind":"app","opcode":"field","args":[{"id":2471,"kind":"name","name":"providerState"},{"id":2472,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2474,"kind":"name","name":"consumer"}]},{"id":2476,"kind":"name","name":"node"}]},{"id":2478,"kind":"name","name":"power"}]}},"expr":{"id":2483,"kind":"app","opcode":"Set","args":[{"id":2481,"kind":"name","name":"oldToZero"},{"id":2482,"kind":"name","name":"newToPower"}]}}}}},{"id":2513,"kind":"let","opdef":{"id":2494,"kind":"def","name":"validatorConsumerPubKey","qualifier":"pureval","expr":{"id":2493,"kind":"app","opcode":"getOrElse","args":[{"id":2490,"kind":"app","opcode":"field","args":[{"id":2488,"kind":"name","name":"providerState"},{"id":2489,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":2491,"kind":"name","name":"consumer"},{"id":2492,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":2512,"kind":"app","opcode":"ite","args":[{"id":2498,"kind":"app","opcode":"contains","args":[{"id":2496,"kind":"app","opcode":"keys","args":[{"id":2495,"kind":"name","name":"validatorConsumerPubKey"}]},{"id":2497,"kind":"name","name":"node"}]},{"id":2507,"kind":"let","opdef":{"id":2502,"kind":"def","name":"consAddr","qualifier":"pureval","expr":{"id":2501,"kind":"app","opcode":"get","args":[{"id":2499,"kind":"name","name":"validatorConsumerPubKey"},{"id":2500,"kind":"name","name":"node"}]}},"expr":{"id":2506,"kind":"app","opcode":"Set","args":[{"id":2505,"kind":"app","opcode":"Tup","args":[{"id":2503,"kind":"name","name":"consAddr"},{"id":2504,"kind":"name","name":"power"}]}]}},{"id":2511,"kind":"app","opcode":"Set","args":[{"id":2510,"kind":"app","opcode":"Tup","args":[{"id":2508,"kind":"name","name":"node"},{"id":2509,"kind":"name","name":"power"}]}]}]}}]}}}}]}},"expr":{"id":2537,"kind":"let","opdef":{"id":2522,"kind":"def","name":"flattened","qualifier":"pureval","expr":{"id":2521,"kind":"app","opcode":"flatten","args":[{"id":2520,"kind":"name","name":"newValSet"}]}},"expr":{"id":2536,"kind":"app","opcode":"fold","args":[{"id":2523,"kind":"name","name":"flattened"},{"id":2524,"kind":"app","opcode":"Map","args":[]},{"id":2535,"kind":"lambda","params":[{"id":2525,"name":"acc"},{"id":2526,"name":"pair"}],"qualifier":"def","expr":{"id":2534,"kind":"app","opcode":"put","args":[{"id":2527,"kind":"name","name":"acc"},{"id":2530,"kind":"app","opcode":"item","args":[{"id":2528,"kind":"name","name":"pair"},{"id":2529,"kind":"int","value":1}]},{"id":2533,"kind":"app","opcode":"item","args":[{"id":2531,"kind":"name","name":"pair"},{"id":2532,"kind":"int","value":2}]}]}}]}}}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3033":{"id":3032,"kind":"def","name":"currentValSets","qualifier":"val","expr":{"id":3031,"kind":"app","opcode":"mapBy","args":[{"id":3020,"kind":"name","name":"ConsumerChains"},{"id":3030,"kind":"lambda","params":[{"id":3021,"name":"consumer"}],"qualifier":"def","expr":{"id":3029,"kind":"app","opcode":"applyKeyAssignmentToValSet","args":[{"id":3022,"kind":"name","name":"currentProviderState"},{"id":3023,"kind":"name","name":"consumer"},{"id":3028,"kind":"app","opcode":"field","args":[{"id":3026,"kind":"app","opcode":"field","args":[{"id":3024,"kind":"name","name":"currentProviderState"},{"id":3025,"kind":"str","value":"chainState"}]},{"id":3027,"kind":"str","value":"currentValidatorSet"}]}]}}]},"depth":1},"3036":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]},"depth":1},"3039":{"id":3035,"name":"consumer","kind":"param"},"3041":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3042":{"id":3032,"kind":"def","name":"currentValSets","qualifier":"val","expr":{"id":3031,"kind":"app","opcode":"mapBy","args":[{"id":3020,"kind":"name","name":"ConsumerChains"},{"id":3030,"kind":"lambda","params":[{"id":3021,"name":"consumer"}],"qualifier":"def","expr":{"id":3029,"kind":"app","opcode":"applyKeyAssignmentToValSet","args":[{"id":3022,"kind":"name","name":"currentProviderState"},{"id":3023,"kind":"name","name":"consumer"},{"id":3028,"kind":"app","opcode":"field","args":[{"id":3026,"kind":"app","opcode":"field","args":[{"id":3024,"kind":"name","name":"currentProviderState"},{"id":3025,"kind":"str","value":"chainState"}]},{"id":3027,"kind":"str","value":"currentValidatorSet"}]}]}}]},"depth":1},"3043":{"id":3035,"name":"consumer","kind":"param"},"3045":{"id":4632,"kind":"def","name":"prepend","qualifier":"puredef","expr":{"id":4631,"kind":"lambda","params":[{"id":4619,"name":"__list"},{"id":4622,"name":"__elem"}],"qualifier":"puredef","expr":{"id":4629,"kind":"app","opcode":"concat","args":[{"id":4627,"kind":"app","opcode":"List","args":[{"id":4626,"kind":"name","name":"__elem"}]},{"id":4628,"kind":"name","name":"__list"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3049":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]},"depth":1},"3052":{"id":2993,"name":"timeAdvancement","kind":"param"},"3053":{"id":3917,"kind":"def","name":"endAndBeginBlockShared","qualifier":"puredef","expr":{"id":3916,"kind":"lambda","params":[{"id":3906,"name":"chainState"},{"id":3908,"name":"timeAdvancement"}],"qualifier":"puredef","expr":{"id":3914,"kind":"app","opcode":"advanceTime","args":[{"id":3912,"kind":"app","opcode":"enterCurValSetIntoBlock","args":[{"id":3911,"kind":"name","name":"chainState"}]},{"id":3913,"kind":"name","name":"timeAdvancement"}]}},"depth":0},"3055":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]},"depth":1},"3057":{"id":3054,"kind":"def","name":"newChainState","qualifier":"val","expr":{"id":3053,"kind":"app","opcode":"endAndBeginBlockShared","args":[{"id":3051,"kind":"app","opcode":"field","args":[{"id":3049,"kind":"name","name":"currentProviderState"},{"id":3050,"kind":"str","value":"chainState"}]},{"id":3052,"kind":"name","name":"timeAdvancement"}]},"depth":1},"3060":{"id":3048,"kind":"def","name":"newKeyAssignedValSetHistory","qualifier":"val","expr":{"id":3047,"kind":"app","opcode":"mapBy","args":[{"id":3034,"kind":"app","opcode":"keys","args":[{"id":3033,"kind":"name","name":"currentValSets"}]},{"id":3046,"kind":"lambda","params":[{"id":3035,"name":"consumer"}],"qualifier":"def","expr":{"id":3045,"kind":"app","opcode":"prepend","args":[{"id":3041,"kind":"app","opcode":"getOrElse","args":[{"id":3038,"kind":"app","opcode":"field","args":[{"id":3036,"kind":"name","name":"currentProviderState"},{"id":3037,"kind":"str","value":"keyAssignedValSetHistory"}]},{"id":3039,"kind":"name","name":"consumer"},{"id":3040,"kind":"app","opcode":"List","args":[]}]},{"id":3044,"kind":"app","opcode":"get","args":[{"id":3042,"kind":"name","name":"currentValSets"},{"id":3043,"kind":"name","name":"consumer"}]}]}}]},"depth":1},"3063":{"id":2991,"name":"currentState","kind":"param"},"3065":{"id":3062,"kind":"def","name":"providerStateAfterTimeAdvancement","qualifier":"val","expr":{"id":3061,"kind":"app","opcode":"with","args":[{"id":3058,"kind":"app","opcode":"with","args":[{"id":3055,"kind":"name","name":"currentProviderState"},{"id":3056,"kind":"str","value":"chainState"},{"id":3057,"kind":"name","name":"newChainState"}]},{"id":3059,"kind":"str","value":"keyAssignedValSetHistory"},{"id":3060,"kind":"name","name":"newKeyAssignedValSetHistory"}]},"depth":1},"3068":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]},"depth":1},"3071":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]},"depth":1},"3076":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]},"depth":1},"3079":{"id":3075,"name":"consumer","kind":"param"},"3088":{"id":3062,"kind":"def","name":"providerStateAfterTimeAdvancement","qualifier":"val","expr":{"id":3061,"kind":"app","opcode":"with","args":[{"id":3058,"kind":"app","opcode":"with","args":[{"id":3055,"kind":"name","name":"currentProviderState"},{"id":3056,"kind":"str","value":"chainState"},{"id":3057,"kind":"name","name":"newChainState"}]},{"id":3059,"kind":"str","value":"keyAssignedValSetHistory"},{"id":3060,"kind":"name","name":"newKeyAssignedValSetHistory"}]},"depth":1},"3089":{"id":4443,"kind":"def","name":"getRunningConsumers","qualifier":"puredef","expr":{"id":4442,"kind":"lambda","params":[{"id":4423,"name":"providerState"}],"qualifier":"puredef","expr":{"id":4440,"kind":"app","opcode":"filter","args":[{"id":4430,"kind":"app","opcode":"keys","args":[{"id":4429,"kind":"app","opcode":"field","args":[{"id":4427,"kind":"name","name":"providerState"},{"id":4428,"kind":"str","value":"consumerStatus"}]}]},{"id":4439,"kind":"lambda","params":[{"id":4431,"name":"chain"}],"qualifier":"def","expr":{"id":4438,"kind":"app","opcode":"eq","args":[{"id":4436,"kind":"app","opcode":"get","args":[{"id":4434,"kind":"app","opcode":"field","args":[{"id":4432,"kind":"name","name":"providerState"},{"id":4433,"kind":"str","value":"consumerStatus"}]},{"id":4435,"kind":"name","name":"chain"}]},{"id":4437,"kind":"name","name":"RUNNING"}]}}]}},"depth":0},"3094":{"id":3062,"kind":"def","name":"providerStateAfterTimeAdvancement","qualifier":"val","expr":{"id":3061,"kind":"app","opcode":"with","args":[{"id":3058,"kind":"app","opcode":"with","args":[{"id":3055,"kind":"name","name":"currentProviderState"},{"id":3056,"kind":"str","value":"chainState"},{"id":3057,"kind":"name","name":"newChainState"}]},{"id":3059,"kind":"str","value":"keyAssignedValSetHistory"},{"id":3060,"kind":"name","name":"newKeyAssignedValSetHistory"}]},"depth":1},"3095":{"id":3005,"kind":"def","name":"currentProviderState","qualifier":"val","expr":{"id":3004,"kind":"app","opcode":"field","args":[{"id":3002,"kind":"name","name":"currentState"},{"id":3003,"kind":"str","value":"providerState"}]},"depth":1},"3100":{"id":4036,"kind":"def","name":"sendVscPackets","qualifier":"puredef","expr":{"id":4035,"kind":"lambda","params":[{"id":3918,"name":"providerState"},{"id":3920,"name":"sendingTimestamp"}],"qualifier":"puredef","expr":{"id":4033,"kind":"let","opdef":{"id":3970,"kind":"def","name":"newSentPacketsPerConsumer","qualifier":"val","expr":{"id":3969,"kind":"app","opcode":"mapBy","args":[{"id":3923,"kind":"name","name":"ConsumerChains"},{"id":3968,"kind":"lambda","params":[{"id":3924,"name":"consumer"}],"qualifier":"def","expr":{"id":3967,"kind":"app","opcode":"ite","args":[{"id":3942,"kind":"app","opcode":"and","args":[{"id":3938,"kind":"app","opcode":"or","args":[{"id":3927,"kind":"app","opcode":"field","args":[{"id":3925,"kind":"name","name":"providerState"},{"id":3926,"kind":"str","value":"providerValidatorSetChangedInThisBlock"}]},{"id":3937,"kind":"app","opcode":"igt","args":[{"id":3935,"kind":"app","opcode":"size","args":[{"id":3934,"kind":"app","opcode":"keys","args":[{"id":3933,"kind":"app","opcode":"getOrElse","args":[{"id":3930,"kind":"app","opcode":"field","args":[{"id":3928,"kind":"name","name":"providerState"},{"id":3929,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3931,"kind":"name","name":"consumer"},{"id":3932,"kind":"app","opcode":"Map","args":[]}]}]}]},{"id":3936,"kind":"int","value":0}]}]},{"id":3941,"kind":"app","opcode":"isRunningConsumer","args":[{"id":3939,"kind":"name","name":"consumer"},{"id":3940,"kind":"name","name":"providerState"}]}]},{"id":3965,"kind":"app","opcode":"List","args":[{"id":3964,"kind":"app","opcode":"Rec","args":[{"id":3946,"kind":"str","value":"id"},{"id":3945,"kind":"app","opcode":"field","args":[{"id":3943,"kind":"name","name":"providerState"},{"id":3944,"kind":"str","value":"runningVscId"}]},{"id":3955,"kind":"str","value":"validatorSet"},{"id":3954,"kind":"app","opcode":"applyKeyAssignmentToValSet","args":[{"id":3947,"kind":"name","name":"providerState"},{"id":3948,"kind":"name","name":"consumer"},{"id":3953,"kind":"app","opcode":"field","args":[{"id":3951,"kind":"app","opcode":"field","args":[{"id":3949,"kind":"name","name":"providerState"},{"id":3950,"kind":"str","value":"chainState"}]},{"id":3952,"kind":"str","value":"currentValidatorSet"}]}]},{"id":3957,"kind":"str","value":"sendingTime"},{"id":3956,"kind":"name","name":"sendingTimestamp"},{"id":3963,"kind":"str","value":"timeoutTime"},{"id":3962,"kind":"app","opcode":"iadd","args":[{"id":3958,"kind":"name","name":"sendingTimestamp"},{"id":3961,"kind":"app","opcode":"get","args":[{"id":3959,"kind":"name","name":"CcvTimeout"},{"id":3960,"kind":"name","name":"PROVIDER_CHAIN"}]}]}]}]},{"id":3966,"kind":"app","opcode":"List","args":[]}]}}]}},"expr":{"id":4032,"kind":"let","opdef":{"id":3984,"kind":"def","name":"newOutstandingPacketsToConsumer","qualifier":"val","expr":{"id":3983,"kind":"app","opcode":"mapBy","args":[{"id":3971,"kind":"name","name":"ConsumerChains"},{"id":3982,"kind":"lambda","params":[{"id":3972,"name":"consumer"}],"qualifier":"def","expr":{"id":3981,"kind":"app","opcode":"concat","args":[{"id":3977,"kind":"app","opcode":"get","args":[{"id":3975,"kind":"app","opcode":"field","args":[{"id":3973,"kind":"name","name":"providerState"},{"id":3974,"kind":"str","value":"outstandingPacketsToConsumer"}]},{"id":3976,"kind":"name","name":"consumer"}]},{"id":3980,"kind":"app","opcode":"get","args":[{"id":3978,"kind":"name","name":"newSentPacketsPerConsumer"},{"id":3979,"kind":"name","name":"consumer"}]}]}}]}},"expr":{"id":4031,"kind":"let","opdef":{"id":3998,"kind":"def","name":"newSentVscPackets","qualifier":"val","expr":{"id":3997,"kind":"app","opcode":"mapBy","args":[{"id":3985,"kind":"name","name":"ConsumerChains"},{"id":3996,"kind":"lambda","params":[{"id":3986,"name":"consumer"}],"qualifier":"def","expr":{"id":3995,"kind":"app","opcode":"concat","args":[{"id":3991,"kind":"app","opcode":"get","args":[{"id":3989,"kind":"app","opcode":"field","args":[{"id":3987,"kind":"name","name":"providerState"},{"id":3988,"kind":"str","value":"sentVscPacketsToConsumer"}]},{"id":3990,"kind":"name","name":"consumer"}]},{"id":3994,"kind":"app","opcode":"get","args":[{"id":3992,"kind":"name","name":"newSentPacketsPerConsumer"},{"id":3993,"kind":"name","name":"consumer"}]}]}}]}},"expr":{"id":4030,"kind":"app","opcode":"with","args":[{"id":4029,"kind":"app","opcode":"with","args":[{"id":4028,"kind":"app","opcode":"with","args":[{"id":4027,"kind":"app","opcode":"with","args":[{"id":4026,"kind":"app","opcode":"with","args":[{"id":4025,"kind":"app","opcode":"with","args":[{"id":3999,"kind":"name","name":"providerState"},{"id":4001,"kind":"str","value":"outstandingPacketsToConsumer"},{"id":4000,"kind":"name","name":"newOutstandingPacketsToConsumer"}]},{"id":4003,"kind":"str","value":"sentVscPacketsToConsumer"},{"id":4002,"kind":"name","name":"newSentVscPackets"}]},{"id":4005,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":4004,"kind":"bool","value":false}]},{"id":4011,"kind":"str","value":"runningVscId"},{"id":4010,"kind":"app","opcode":"iadd","args":[{"id":4008,"kind":"app","opcode":"field","args":[{"id":4006,"kind":"name","name":"providerState"},{"id":4007,"kind":"str","value":"runningVscId"}]},{"id":4009,"kind":"int","value":1}]}]},{"id":4013,"kind":"str","value":"keyAssignmentReplacements"},{"id":4012,"kind":"app","opcode":"Map","args":[]}]},{"id":4024,"kind":"str","value":"keyAssignmentsForVSCPackets"},{"id":4023,"kind":"app","opcode":"put","args":[{"id":4016,"kind":"app","opcode":"field","args":[{"id":4014,"kind":"name","name":"providerState"},{"id":4015,"kind":"str","value":"keyAssignmentsForVSCPackets"}]},{"id":4019,"kind":"app","opcode":"field","args":[{"id":4017,"kind":"name","name":"providerState"},{"id":4018,"kind":"str","value":"runningVscId"}]},{"id":4022,"kind":"app","opcode":"field","args":[{"id":4020,"kind":"name","name":"providerState"},{"id":4021,"kind":"str","value":"validatorConsumerPubKey"}]}]}]}}}}},"depth":0},"3101":{"id":3062,"kind":"def","name":"providerStateAfterTimeAdvancement","qualifier":"val","expr":{"id":3061,"kind":"app","opcode":"with","args":[{"id":3058,"kind":"app","opcode":"with","args":[{"id":3055,"kind":"name","name":"currentProviderState"},{"id":3056,"kind":"str","value":"chainState"},{"id":3057,"kind":"name","name":"newChainState"}]},{"id":3059,"kind":"str","value":"keyAssignedValSetHistory"},{"id":3060,"kind":"name","name":"newKeyAssignedValSetHistory"}]},"depth":1},"3104":{"id":3103,"kind":"def","name":"providerStateAfterSending","qualifier":"val","expr":{"id":3102,"kind":"app","opcode":"ite","args":[{"id":3093,"kind":"app","opcode":"and","args":[{"id":3087,"kind":"app","opcode":"or","args":[{"id":3070,"kind":"app","opcode":"field","args":[{"id":3068,"kind":"name","name":"currentProviderState"},{"id":3069,"kind":"str","value":"providerValidatorSetChangedInThisBlock"}]},{"id":3086,"kind":"app","opcode":"exists","args":[{"id":3074,"kind":"app","opcode":"keys","args":[{"id":3073,"kind":"app","opcode":"field","args":[{"id":3071,"kind":"name","name":"currentProviderState"},{"id":3072,"kind":"str","value":"keyAssignmentReplacements"}]}]},{"id":3085,"kind":"lambda","params":[{"id":3075,"name":"consumer"}],"qualifier":"def","expr":{"id":3084,"kind":"app","opcode":"igt","args":[{"id":3082,"kind":"app","opcode":"size","args":[{"id":3081,"kind":"app","opcode":"keys","args":[{"id":3080,"kind":"app","opcode":"get","args":[{"id":3078,"kind":"app","opcode":"field","args":[{"id":3076,"kind":"name","name":"currentProviderState"},{"id":3077,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3079,"kind":"name","name":"consumer"}]}]}]},{"id":3083,"kind":"int","value":0}]}}]}]},{"id":3092,"kind":"app","opcode":"igt","args":[{"id":3090,"kind":"app","opcode":"size","args":[{"id":3089,"kind":"app","opcode":"getRunningConsumers","args":[{"id":3088,"kind":"name","name":"providerStateAfterTimeAdvancement"}]}]},{"id":3091,"kind":"int","value":0}]}]},{"id":3100,"kind":"app","opcode":"sendVscPackets","args":[{"id":3094,"kind":"name","name":"providerStateAfterTimeAdvancement"},{"id":3099,"kind":"app","opcode":"field","args":[{"id":3097,"kind":"app","opcode":"field","args":[{"id":3095,"kind":"name","name":"currentProviderState"},{"id":3096,"kind":"str","value":"chainState"}]},{"id":3098,"kind":"str","value":"runningTimestamp"}]}]},{"id":3101,"kind":"name","name":"providerStateAfterTimeAdvancement"}]},"depth":1},"3107":{"id":2995,"name":"consumersToStart","kind":"param"},"3108":{"id":2998,"name":"consumersToStop","kind":"param"},"3109":{"id":3019,"kind":"def","name":"timedOutConsumers","qualifier":"val","expr":{"id":3018,"kind":"app","opcode":"filter","args":[{"id":3007,"kind":"app","opcode":"getRunningConsumers","args":[{"id":3006,"kind":"name","name":"currentProviderState"}]},{"id":3017,"kind":"lambda","params":[{"id":3008,"name":"consumer"}],"qualifier":"def","expr":{"id":3016,"kind":"let","opdef":{"id":3012,"kind":"def","name":"res","qualifier":"val","expr":{"id":3011,"kind":"app","opcode":"TimeoutDueToVscTimeout","args":[{"id":3009,"kind":"name","name":"currentState"},{"id":3010,"kind":"name","name":"consumer"}]}},"expr":{"id":3015,"kind":"app","opcode":"item","args":[{"id":3013,"kind":"name","name":"res"},{"id":3014,"kind":"int","value":1}]}}}]},"depth":1},"3110":{"id":3868,"kind":"def","name":"StartStopConsumers","qualifier":"puredef","expr":{"id":3867,"kind":"lambda","params":[{"id":3793,"name":"currentConsumerStatusMap"},{"id":3797,"name":"consumersToStart"},{"id":3800,"name":"consumersToStop"},{"id":3803,"name":"consumersToTimeout"}],"qualifier":"puredef","expr":{"id":3865,"kind":"app","opcode":"ite","args":[{"id":3816,"kind":"app","opcode":"igt","args":[{"id":3814,"kind":"app","opcode":"size","args":[{"id":3813,"kind":"app","opcode":"intersect","args":[{"id":3811,"kind":"name","name":"consumersToStart"},{"id":3812,"kind":"name","name":"consumersToStop"}]}]},{"id":3815,"kind":"int","value":0}]},{"id":3819,"kind":"app","opcode":"Tup","args":[{"id":3817,"kind":"name","name":"currentConsumerStatusMap"},{"id":3818,"kind":"str","value":"Cannot start and stop a consumer at the same time"}]},{"id":3864,"kind":"let","opdef":{"id":3823,"kind":"def","name":"res1","qualifier":"val","expr":{"id":3822,"kind":"app","opcode":"startConsumers","args":[{"id":3820,"kind":"name","name":"currentConsumerStatusMap"},{"id":3821,"kind":"name","name":"consumersToStart"}]}},"expr":{"id":3863,"kind":"let","opdef":{"id":3827,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":3826,"kind":"app","opcode":"item","args":[{"id":3824,"kind":"name","name":"res1"},{"id":3825,"kind":"int","value":1}]}},"expr":{"id":3862,"kind":"let","opdef":{"id":3831,"kind":"def","name":"err1","qualifier":"val","expr":{"id":3830,"kind":"app","opcode":"item","args":[{"id":3828,"kind":"name","name":"res1"},{"id":3829,"kind":"int","value":2}]}},"expr":{"id":3861,"kind":"let","opdef":{"id":3836,"kind":"def","name":"res2","qualifier":"val","expr":{"id":3835,"kind":"app","opcode":"stopConsumers","args":[{"id":3832,"kind":"name","name":"newConsumerStatus"},{"id":3833,"kind":"name","name":"consumersToStop"},{"id":3834,"kind":"name","name":"consumersToTimeout"}]}},"expr":{"id":3860,"kind":"let","opdef":{"id":3840,"kind":"def","name":"err2","qualifier":"val","expr":{"id":3839,"kind":"app","opcode":"item","args":[{"id":3837,"kind":"name","name":"res2"},{"id":3838,"kind":"int","value":2}]}},"expr":{"id":3859,"kind":"app","opcode":"ite","args":[{"id":3843,"kind":"app","opcode":"neq","args":[{"id":3841,"kind":"name","name":"err1"},{"id":3842,"kind":"str","value":""}]},{"id":3846,"kind":"app","opcode":"Tup","args":[{"id":3844,"kind":"name","name":"currentConsumerStatusMap"},{"id":3845,"kind":"name","name":"err1"}]},{"id":3858,"kind":"app","opcode":"ite","args":[{"id":3849,"kind":"app","opcode":"neq","args":[{"id":3847,"kind":"name","name":"err2"},{"id":3848,"kind":"str","value":""}]},{"id":3852,"kind":"app","opcode":"Tup","args":[{"id":3850,"kind":"name","name":"currentConsumerStatusMap"},{"id":3851,"kind":"name","name":"err2"}]},{"id":3857,"kind":"app","opcode":"Tup","args":[{"id":3855,"kind":"app","opcode":"item","args":[{"id":3853,"kind":"name","name":"res2"},{"id":3854,"kind":"int","value":1}]},{"id":3856,"kind":"str","value":""}]}]}]}}}}}}]}},"depth":0},"3112":{"id":3111,"kind":"def","name":"res","qualifier":"val","expr":{"id":3110,"kind":"app","opcode":"StartStopConsumers","args":[{"id":3106,"kind":"app","opcode":"field","args":[{"id":3104,"kind":"name","name":"providerStateAfterSending"},{"id":3105,"kind":"str","value":"consumerStatus"}]},{"id":3107,"kind":"name","name":"consumersToStart"},{"id":3108,"kind":"name","name":"consumersToStop"},{"id":3109,"kind":"name","name":"timedOutConsumers"}]},"depth":1},"3116":{"id":3111,"kind":"def","name":"res","qualifier":"val","expr":{"id":3110,"kind":"app","opcode":"StartStopConsumers","args":[{"id":3106,"kind":"app","opcode":"field","args":[{"id":3104,"kind":"name","name":"providerStateAfterSending"},{"id":3105,"kind":"str","value":"consumerStatus"}]},{"id":3107,"kind":"name","name":"consumersToStart"},{"id":3108,"kind":"name","name":"consumersToStop"},{"id":3109,"kind":"name","name":"timedOutConsumers"}]},"depth":1},"3120":{"id":3103,"kind":"def","name":"providerStateAfterSending","qualifier":"val","expr":{"id":3102,"kind":"app","opcode":"ite","args":[{"id":3093,"kind":"app","opcode":"and","args":[{"id":3087,"kind":"app","opcode":"or","args":[{"id":3070,"kind":"app","opcode":"field","args":[{"id":3068,"kind":"name","name":"currentProviderState"},{"id":3069,"kind":"str","value":"providerValidatorSetChangedInThisBlock"}]},{"id":3086,"kind":"app","opcode":"exists","args":[{"id":3074,"kind":"app","opcode":"keys","args":[{"id":3073,"kind":"app","opcode":"field","args":[{"id":3071,"kind":"name","name":"currentProviderState"},{"id":3072,"kind":"str","value":"keyAssignmentReplacements"}]}]},{"id":3085,"kind":"lambda","params":[{"id":3075,"name":"consumer"}],"qualifier":"def","expr":{"id":3084,"kind":"app","opcode":"igt","args":[{"id":3082,"kind":"app","opcode":"size","args":[{"id":3081,"kind":"app","opcode":"keys","args":[{"id":3080,"kind":"app","opcode":"get","args":[{"id":3078,"kind":"app","opcode":"field","args":[{"id":3076,"kind":"name","name":"currentProviderState"},{"id":3077,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3079,"kind":"name","name":"consumer"}]}]}]},{"id":3083,"kind":"int","value":0}]}}]}]},{"id":3092,"kind":"app","opcode":"igt","args":[{"id":3090,"kind":"app","opcode":"size","args":[{"id":3089,"kind":"app","opcode":"getRunningConsumers","args":[{"id":3088,"kind":"name","name":"providerStateAfterTimeAdvancement"}]}]},{"id":3091,"kind":"int","value":0}]}]},{"id":3100,"kind":"app","opcode":"sendVscPackets","args":[{"id":3094,"kind":"name","name":"providerStateAfterTimeAdvancement"},{"id":3099,"kind":"app","opcode":"field","args":[{"id":3097,"kind":"app","opcode":"field","args":[{"id":3095,"kind":"name","name":"currentProviderState"},{"id":3096,"kind":"str","value":"chainState"}]},{"id":3098,"kind":"str","value":"runningTimestamp"}]}]},{"id":3101,"kind":"name","name":"providerStateAfterTimeAdvancement"}]},"depth":1},"3122":{"id":3115,"kind":"def","name":"newConsumerStatus","qualifier":"val","expr":{"id":3114,"kind":"app","opcode":"item","args":[{"id":3112,"kind":"name","name":"res"},{"id":3113,"kind":"int","value":1}]},"depth":1},"3128":{"id":3119,"kind":"def","name":"err","qualifier":"val","expr":{"id":3118,"kind":"app","opcode":"item","args":[{"id":3116,"kind":"name","name":"res"},{"id":3117,"kind":"int","value":2}]},"depth":1},"3131":{"id":3119,"kind":"def","name":"err","qualifier":"val","expr":{"id":3118,"kind":"app","opcode":"item","args":[{"id":3116,"kind":"name","name":"res"},{"id":3117,"kind":"int","value":2}]},"depth":1},"3132":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3133":{"id":3127,"kind":"def","name":"providerStateAfterConsumerAdvancement","qualifier":"val","expr":{"id":3126,"kind":"app","opcode":"with","args":[{"id":3123,"kind":"app","opcode":"with","args":[{"id":3120,"kind":"name","name":"providerStateAfterSending"},{"id":3121,"kind":"str","value":"consumerStatus"},{"id":3122,"kind":"name","name":"newConsumerStatus"}]},{"id":3124,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":3125,"kind":"bool","value":false}]},"depth":1},"3139":{"id":3067,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":3066,"kind":"app","opcode":"with","args":[{"id":3063,"kind":"name","name":"currentState"},{"id":3064,"kind":"str","value":"providerState"},{"id":3065,"kind":"name","name":"providerStateAfterTimeAdvancement"}]},"depth":1},"3144":{"id":2995,"name":"consumersToStart","kind":"param"},"3145":{"id":3143,"name":"consumer","kind":"param"},"3147":{"id":2360,"kind":"typedef","name":"ConsumerState","type":{"id":2359,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2350,"kind":"const","name":"ChainState"}},{"fieldName":"receivedVscPackets","fieldType":{"id":2352,"kind":"list","elem":{"id":2351,"kind":"const","name":"VscPacket"}}},{"fieldName":"maturationTimes","fieldType":{"id":2356,"kind":"list","elem":{"id":2355,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2353,"kind":"const","name":"VscPacket"}},{"fieldName":"1","fieldType":{"id":2354,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}}},{"fieldName":"outstandingPacketsToProvider","fieldType":{"id":2358,"kind":"list","elem":{"id":2357,"kind":"const","name":"VscMaturedPacket"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3148":{"id":3067,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":3066,"kind":"app","opcode":"with","args":[{"id":3063,"kind":"name","name":"currentState"},{"id":3064,"kind":"str","value":"providerState"},{"id":3065,"kind":"name","name":"providerStateAfterTimeAdvancement"}]},"depth":1},"3151":{"id":3143,"name":"consumer","kind":"param"},"3154":{"id":2360,"kind":"typedef","name":"ConsumerState","type":{"id":2359,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2350,"kind":"const","name":"ChainState"}},{"fieldName":"receivedVscPackets","fieldType":{"id":2352,"kind":"list","elem":{"id":2351,"kind":"const","name":"VscPacket"}}},{"fieldName":"maturationTimes","fieldType":{"id":2356,"kind":"list","elem":{"id":2355,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2353,"kind":"const","name":"VscPacket"}},{"fieldName":"1","fieldType":{"id":2354,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}}},{"fieldName":"outstandingPacketsToProvider","fieldType":{"id":2358,"kind":"list","elem":{"id":2357,"kind":"const","name":"VscMaturedPacket"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3155":{"id":3153,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":3152,"kind":"app","opcode":"get","args":[{"id":3150,"kind":"app","opcode":"field","args":[{"id":3148,"kind":"name","name":"tmpState"},{"id":3149,"kind":"str","value":"consumerStates"}]},{"id":3151,"kind":"name","name":"consumer"}]},"typeAnnotation":{"id":3147,"kind":"const","name":"ConsumerState"},"depth":2},"3157":{"id":3153,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":3152,"kind":"app","opcode":"get","args":[{"id":3150,"kind":"app","opcode":"field","args":[{"id":3148,"kind":"name","name":"tmpState"},{"id":3149,"kind":"str","value":"consumerStates"}]},{"id":3151,"kind":"name","name":"consumer"}]},"typeAnnotation":{"id":3147,"kind":"const","name":"ConsumerState"},"depth":2},"3161":{"id":3138,"kind":"def","name":"valSet","qualifier":"val","expr":{"id":3137,"kind":"app","opcode":"field","args":[{"id":3135,"kind":"app","opcode":"field","args":[{"id":3133,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3134,"kind":"str","value":"chainState"}]},{"id":3136,"kind":"str","value":"currentValidatorSet"}]},"depth":1},"3164":{"id":3138,"kind":"def","name":"valSet","qualifier":"val","expr":{"id":3137,"kind":"app","opcode":"field","args":[{"id":3135,"kind":"app","opcode":"field","args":[{"id":3133,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3134,"kind":"str","value":"chainState"}]},{"id":3136,"kind":"str","value":"currentValidatorSet"}]},"depth":1},"3168":{"id":3127,"kind":"def","name":"providerStateAfterConsumerAdvancement","qualifier":"val","expr":{"id":3126,"kind":"app","opcode":"with","args":[{"id":3123,"kind":"app","opcode":"with","args":[{"id":3120,"kind":"name","name":"providerStateAfterSending"},{"id":3121,"kind":"str","value":"consumerStatus"},{"id":3122,"kind":"name","name":"newConsumerStatus"}]},{"id":3124,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":3125,"kind":"bool","value":false}]},"depth":1},"3175":{"id":3127,"kind":"def","name":"providerStateAfterConsumerAdvancement","qualifier":"val","expr":{"id":3126,"kind":"app","opcode":"with","args":[{"id":3123,"kind":"app","opcode":"with","args":[{"id":3120,"kind":"name","name":"providerStateAfterSending"},{"id":3121,"kind":"str","value":"consumerStatus"},{"id":3122,"kind":"name","name":"newConsumerStatus"}]},{"id":3124,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":3125,"kind":"bool","value":false}]},"depth":1},"3183":{"id":3182,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":3181,"kind":"app","opcode":"with","args":[{"id":3155,"kind":"name","name":"currentConsumerState"},{"id":3156,"kind":"str","value":"chainState"},{"id":3180,"kind":"app","opcode":"with","args":[{"id":3173,"kind":"app","opcode":"with","args":[{"id":3166,"kind":"app","opcode":"with","args":[{"id":3162,"kind":"app","opcode":"with","args":[{"id":3159,"kind":"app","opcode":"field","args":[{"id":3157,"kind":"name","name":"currentConsumerState"},{"id":3158,"kind":"str","value":"chainState"}]},{"id":3160,"kind":"str","value":"currentValidatorSet"},{"id":3161,"kind":"name","name":"valSet"}]},{"id":3163,"kind":"str","value":"votingPowerHistory"},{"id":3165,"kind":"app","opcode":"List","args":[{"id":3164,"kind":"name","name":"valSet"}]}]},{"id":3167,"kind":"str","value":"lastTimestamp"},{"id":3172,"kind":"app","opcode":"field","args":[{"id":3170,"kind":"app","opcode":"field","args":[{"id":3168,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3169,"kind":"str","value":"chainState"}]},{"id":3171,"kind":"str","value":"lastTimestamp"}]}]},{"id":3174,"kind":"str","value":"runningTimestamp"},{"id":3179,"kind":"app","opcode":"field","args":[{"id":3177,"kind":"app","opcode":"field","args":[{"id":3175,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3176,"kind":"str","value":"chainState"}]},{"id":3178,"kind":"str","value":"runningTimestamp"}]}]}]},"typeAnnotation":{"id":3154,"kind":"const","name":"ConsumerState"},"depth":2},"3186":{"id":2991,"name":"currentState","kind":"param"},"3189":{"id":3143,"name":"consumer","kind":"param"},"3195":{"id":3067,"kind":"def","name":"tmpState","qualifier":"val","expr":{"id":3066,"kind":"app","opcode":"with","args":[{"id":3063,"kind":"name","name":"currentState"},{"id":3064,"kind":"str","value":"providerState"},{"id":3065,"kind":"name","name":"providerStateAfterTimeAdvancement"}]},"depth":1},"3197":{"id":3127,"kind":"def","name":"providerStateAfterConsumerAdvancement","qualifier":"val","expr":{"id":3126,"kind":"app","opcode":"with","args":[{"id":3123,"kind":"app","opcode":"with","args":[{"id":3120,"kind":"name","name":"providerStateAfterSending"},{"id":3121,"kind":"str","value":"consumerStatus"},{"id":3122,"kind":"name","name":"newConsumerStatus"}]},{"id":3124,"kind":"str","value":"providerValidatorSetChangedInThisBlock"},{"id":3125,"kind":"bool","value":false}]},"depth":1},"3200":{"id":3194,"kind":"def","name":"newConsumerStateMap","qualifier":"val","expr":{"id":3193,"kind":"app","opcode":"mapBy","args":[{"id":3142,"kind":"app","opcode":"keys","args":[{"id":3141,"kind":"app","opcode":"field","args":[{"id":3139,"kind":"name","name":"tmpState"},{"id":3140,"kind":"str","value":"consumerStates"}]}]},{"id":3192,"kind":"lambda","params":[{"id":3143,"name":"consumer"}],"qualifier":"def","expr":{"id":3191,"kind":"app","opcode":"ite","args":[{"id":3146,"kind":"app","opcode":"contains","args":[{"id":3144,"kind":"name","name":"consumersToStart"},{"id":3145,"kind":"name","name":"consumer"}]},{"id":3185,"kind":"let","opdef":{"id":3153,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":3152,"kind":"app","opcode":"get","args":[{"id":3150,"kind":"app","opcode":"field","args":[{"id":3148,"kind":"name","name":"tmpState"},{"id":3149,"kind":"str","value":"consumerStates"}]},{"id":3151,"kind":"name","name":"consumer"}]},"typeAnnotation":{"id":3147,"kind":"const","name":"ConsumerState"}},"expr":{"id":3184,"kind":"let","opdef":{"id":3182,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":3181,"kind":"app","opcode":"with","args":[{"id":3155,"kind":"name","name":"currentConsumerState"},{"id":3156,"kind":"str","value":"chainState"},{"id":3180,"kind":"app","opcode":"with","args":[{"id":3173,"kind":"app","opcode":"with","args":[{"id":3166,"kind":"app","opcode":"with","args":[{"id":3162,"kind":"app","opcode":"with","args":[{"id":3159,"kind":"app","opcode":"field","args":[{"id":3157,"kind":"name","name":"currentConsumerState"},{"id":3158,"kind":"str","value":"chainState"}]},{"id":3160,"kind":"str","value":"currentValidatorSet"},{"id":3161,"kind":"name","name":"valSet"}]},{"id":3163,"kind":"str","value":"votingPowerHistory"},{"id":3165,"kind":"app","opcode":"List","args":[{"id":3164,"kind":"name","name":"valSet"}]}]},{"id":3167,"kind":"str","value":"lastTimestamp"},{"id":3172,"kind":"app","opcode":"field","args":[{"id":3170,"kind":"app","opcode":"field","args":[{"id":3168,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3169,"kind":"str","value":"chainState"}]},{"id":3171,"kind":"str","value":"lastTimestamp"}]}]},{"id":3174,"kind":"str","value":"runningTimestamp"},{"id":3179,"kind":"app","opcode":"field","args":[{"id":3177,"kind":"app","opcode":"field","args":[{"id":3175,"kind":"name","name":"providerStateAfterConsumerAdvancement"},{"id":3176,"kind":"str","value":"chainState"}]},{"id":3178,"kind":"str","value":"runningTimestamp"}]}]}]},"typeAnnotation":{"id":3154,"kind":"const","name":"ConsumerState"}},"expr":{"id":3183,"kind":"name","name":"newConsumerState"}}},{"id":3190,"kind":"app","opcode":"get","args":[{"id":3188,"kind":"app","opcode":"field","args":[{"id":3186,"kind":"name","name":"currentState"},{"id":3187,"kind":"str","value":"consumerStates"}]},{"id":3189,"kind":"name","name":"consumer"}]}]}}]},"depth":1},"3203":{"id":3202,"kind":"def","name":"newState","qualifier":"val","expr":{"id":3201,"kind":"app","opcode":"with","args":[{"id":3198,"kind":"app","opcode":"with","args":[{"id":3195,"kind":"name","name":"tmpState"},{"id":3196,"kind":"str","value":"providerState"},{"id":3197,"kind":"name","name":"providerStateAfterConsumerAdvancement"}]},{"id":3199,"kind":"str","value":"consumerStates"},{"id":3200,"kind":"name","name":"newConsumerStateMap"}]},"depth":1},"3204":{"id":2401,"kind":"def","name":"Ok","qualifier":"puredef","expr":{"id":2400,"kind":"lambda","params":[{"id":2391,"name":"newState"}],"qualifier":"puredef","expr":{"id":2398,"kind":"app","opcode":"Rec","args":[{"id":2395,"kind":"str","value":"newState"},{"id":2394,"kind":"name","name":"newState"},{"id":2397,"kind":"str","value":"error"},{"id":2396,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3225":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3227":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3229":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2618,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"3230":{"id":2390,"kind":"typedef","name":"Result","type":{"id":2389,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"newState","fieldType":{"id":2387,"kind":"const","name":"ProtocolState"}},{"fieldName":"error","fieldType":{"id":2388,"kind":"const","name":"Error"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3231":{"id":3224,"name":"currentState","kind":"param"},"3235":{"id":3226,"name":"chain","kind":"param"},"3239":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3240":{"id":2360,"kind":"typedef","name":"ConsumerState","type":{"id":2359,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2350,"kind":"const","name":"ChainState"}},{"fieldName":"receivedVscPackets","fieldType":{"id":2352,"kind":"list","elem":{"id":2351,"kind":"const","name":"VscPacket"}}},{"fieldName":"maturationTimes","fieldType":{"id":2356,"kind":"list","elem":{"id":2355,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2353,"kind":"const","name":"VscPacket"}},{"fieldName":"1","fieldType":{"id":2354,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}}},{"fieldName":"outstandingPacketsToProvider","fieldType":{"id":2358,"kind":"list","elem":{"id":2357,"kind":"const","name":"VscMaturedPacket"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3241":{"id":3224,"name":"currentState","kind":"param"},"3244":{"id":3226,"name":"chain","kind":"param"},"3247":{"id":2257,"kind":"typedef","name":"ChainState","type":{"id":2256,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"votingPowerHistory","fieldType":{"id":2252,"kind":"const","name":"VotingPowerHistory"}},{"fieldName":"currentValidatorSet","fieldType":{"id":2253,"kind":"const","name":"ValidatorSet"}},{"fieldName":"lastTimestamp","fieldType":{"id":2254,"kind":"const","name":"Time"}},{"fieldName":"runningTimestamp","fieldType":{"id":2255,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3248":{"id":3246,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":3245,"kind":"app","opcode":"get","args":[{"id":3243,"kind":"app","opcode":"field","args":[{"id":3241,"kind":"name","name":"currentState"},{"id":3242,"kind":"str","value":"consumerStates"}]},{"id":3244,"kind":"name","name":"chain"}]},"typeAnnotation":{"id":3240,"kind":"const","name":"ConsumerState"},"depth":1},"3252":{"id":2257,"kind":"typedef","name":"ChainState","type":{"id":2256,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"votingPowerHistory","fieldType":{"id":2252,"kind":"const","name":"VotingPowerHistory"}},{"fieldName":"currentValidatorSet","fieldType":{"id":2253,"kind":"const","name":"ValidatorSet"}},{"fieldName":"lastTimestamp","fieldType":{"id":2254,"kind":"const","name":"Time"}},{"fieldName":"runningTimestamp","fieldType":{"id":2255,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3253":{"id":3246,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":3245,"kind":"app","opcode":"get","args":[{"id":3243,"kind":"app","opcode":"field","args":[{"id":3241,"kind":"name","name":"currentState"},{"id":3242,"kind":"str","value":"consumerStates"}]},{"id":3244,"kind":"name","name":"chain"}]},"typeAnnotation":{"id":3240,"kind":"const","name":"ConsumerState"},"depth":1},"3256":{"id":3228,"name":"timeAdvancement","kind":"param"},"3257":{"id":3917,"kind":"def","name":"endAndBeginBlockShared","qualifier":"puredef","expr":{"id":3916,"kind":"lambda","params":[{"id":3906,"name":"chainState"},{"id":3908,"name":"timeAdvancement"}],"qualifier":"puredef","expr":{"id":3914,"kind":"app","opcode":"advanceTime","args":[{"id":3912,"kind":"app","opcode":"enterCurValSetIntoBlock","args":[{"id":3911,"kind":"name","name":"chainState"}]},{"id":3913,"kind":"name","name":"timeAdvancement"}]}},"depth":0},"3259":{"id":2360,"kind":"typedef","name":"ConsumerState","type":{"id":2359,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2350,"kind":"const","name":"ChainState"}},{"fieldName":"receivedVscPackets","fieldType":{"id":2352,"kind":"list","elem":{"id":2351,"kind":"const","name":"VscPacket"}}},{"fieldName":"maturationTimes","fieldType":{"id":2356,"kind":"list","elem":{"id":2355,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2353,"kind":"const","name":"VscPacket"}},{"fieldName":"1","fieldType":{"id":2354,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}}},{"fieldName":"outstandingPacketsToProvider","fieldType":{"id":2358,"kind":"list","elem":{"id":2357,"kind":"const","name":"VscMaturedPacket"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3260":{"id":3246,"kind":"def","name":"currentConsumerState","qualifier":"val","expr":{"id":3245,"kind":"app","opcode":"get","args":[{"id":3243,"kind":"app","opcode":"field","args":[{"id":3241,"kind":"name","name":"currentState"},{"id":3242,"kind":"str","value":"consumerStates"}]},{"id":3244,"kind":"name","name":"chain"}]},"typeAnnotation":{"id":3240,"kind":"const","name":"ConsumerState"},"depth":1},"3262":{"id":3258,"kind":"def","name":"newChainState","qualifier":"val","expr":{"id":3257,"kind":"app","opcode":"endAndBeginBlockShared","args":[{"id":3255,"kind":"app","opcode":"field","args":[{"id":3253,"kind":"name","name":"currentConsumerState"},{"id":3254,"kind":"str","value":"chainState"}]},{"id":3256,"kind":"name","name":"timeAdvancement"}]},"typeAnnotation":{"id":3252,"kind":"const","name":"ChainState"},"depth":1},"3265":{"id":3264,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":3263,"kind":"app","opcode":"with","args":[{"id":3260,"kind":"name","name":"currentConsumerState"},{"id":3261,"kind":"str","value":"chainState"},{"id":3262,"kind":"name","name":"newChainState"}]},"typeAnnotation":{"id":3259,"kind":"const","name":"ConsumerState"},"depth":1},"3269":{"id":3268,"name":"pair","kind":"param"},"3273":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2618,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"3274":{"id":3268,"name":"pair","kind":"param"},"3278":{"id":3277,"kind":"def","name":"maturationTime","qualifier":"val","expr":{"id":3276,"kind":"app","opcode":"item","args":[{"id":3274,"kind":"name","name":"pair"},{"id":3275,"kind":"int","value":2}]},"typeAnnotation":{"id":3273,"kind":"const","name":"Time"},"depth":2},"3279":{"id":3258,"kind":"def","name":"newChainState","qualifier":"val","expr":{"id":3257,"kind":"app","opcode":"endAndBeginBlockShared","args":[{"id":3255,"kind":"app","opcode":"field","args":[{"id":3253,"kind":"name","name":"currentConsumerState"},{"id":3254,"kind":"str","value":"chainState"}]},{"id":3256,"kind":"name","name":"timeAdvancement"}]},"typeAnnotation":{"id":3252,"kind":"const","name":"ChainState"},"depth":1},"3288":{"id":3287,"name":"pair","kind":"param"},"3292":{"doc":" Returns a new list l, where l[i] = __f(__list[i])\n\n - @param __list a list\n - @param __f a function that is applied to each element of __list\n\n - @returns a set of the elements in __list","id":5075,"kind":"def","name":"transform","qualifier":"puredef","expr":{"id":5074,"kind":"lambda","params":[{"id":5054,"name":"__list"},{"id":5057,"name":"__f"}],"qualifier":"puredef","expr":{"id":5072,"kind":"app","opcode":"foldl","args":[{"id":5063,"kind":"name","name":"__list"},{"id":5064,"kind":"app","opcode":"List","args":[]},{"id":5071,"kind":"lambda","params":[{"id":5065,"name":"__l"},{"id":5066,"name":"__e"}],"qualifier":"def","expr":{"id":5070,"kind":"app","opcode":"append","args":[{"id":5067,"kind":"name","name":"__l"},{"id":5069,"kind":"app","opcode":"__f","args":[{"id":5068,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3294":{"id":3264,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":3263,"kind":"app","opcode":"with","args":[{"id":3260,"kind":"name","name":"currentConsumerState"},{"id":3261,"kind":"str","value":"chainState"},{"id":3262,"kind":"name","name":"newChainState"}]},"typeAnnotation":{"id":3259,"kind":"const","name":"ConsumerState"},"depth":1},"3298":{"id":3297,"name":"pair","kind":"param"},"3302":{"id":4595,"kind":"typedef","name":"Time","type":{"id":4594,"kind":"int"},"importedFrom":{"id":2618,"kind":"import","defName":"*","protoName":"Time","fromSource":"./libraries/Time"},"hidden":true},"3303":{"id":3297,"name":"pair","kind":"param"},"3307":{"id":3306,"kind":"def","name":"maturationTime","qualifier":"val","expr":{"id":3305,"kind":"app","opcode":"item","args":[{"id":3303,"kind":"name","name":"pair"},{"id":3304,"kind":"int","value":2}]},"typeAnnotation":{"id":3302,"kind":"const","name":"Time"},"depth":2},"3308":{"id":3258,"kind":"def","name":"newChainState","qualifier":"val","expr":{"id":3257,"kind":"app","opcode":"endAndBeginBlockShared","args":[{"id":3255,"kind":"app","opcode":"field","args":[{"id":3253,"kind":"name","name":"currentConsumerState"},{"id":3254,"kind":"str","value":"chainState"}]},{"id":3256,"kind":"name","name":"timeAdvancement"}]},"typeAnnotation":{"id":3252,"kind":"const","name":"ChainState"},"depth":1},"3317":{"id":3264,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":3263,"kind":"app","opcode":"with","args":[{"id":3260,"kind":"name","name":"currentConsumerState"},{"id":3261,"kind":"str","value":"chainState"},{"id":3262,"kind":"name","name":"newChainState"}]},"typeAnnotation":{"id":3259,"kind":"const","name":"ConsumerState"},"depth":1},"3320":{"id":3293,"kind":"def","name":"maturedPackets","qualifier":"val","expr":{"id":3292,"kind":"app","opcode":"transform","args":[{"id":3286,"kind":"app","opcode":"select","args":[{"id":3267,"kind":"app","opcode":"field","args":[{"id":3265,"kind":"name","name":"newConsumerState"},{"id":3266,"kind":"str","value":"maturationTimes"}]},{"id":3285,"kind":"lambda","params":[{"id":3268,"name":"pair"}],"qualifier":"def","expr":{"id":3284,"kind":"let","opdef":{"id":3272,"kind":"def","name":"packet","qualifier":"val","expr":{"id":3271,"kind":"app","opcode":"item","args":[{"id":3269,"kind":"name","name":"pair"},{"id":3270,"kind":"int","value":1}]}},"expr":{"id":3283,"kind":"let","opdef":{"id":3277,"kind":"def","name":"maturationTime","qualifier":"val","expr":{"id":3276,"kind":"app","opcode":"item","args":[{"id":3274,"kind":"name","name":"pair"},{"id":3275,"kind":"int","value":2}]},"typeAnnotation":{"id":3273,"kind":"const","name":"Time"}},"expr":{"id":3282,"kind":"app","opcode":"ilte","args":[{"id":3278,"kind":"name","name":"maturationTime"},{"id":3281,"kind":"app","opcode":"field","args":[{"id":3279,"kind":"name","name":"newChainState"},{"id":3280,"kind":"str","value":"lastTimestamp"}]}]}}}}]},{"id":3291,"kind":"lambda","params":[{"id":3287,"name":"pair"}],"qualifier":"def","expr":{"id":3290,"kind":"app","opcode":"item","args":[{"id":3288,"kind":"name","name":"pair"},{"id":3289,"kind":"int","value":1}]}}]},"depth":1},"3322":{"id":3321,"name":"packet","kind":"param"},"3326":{"id":3251,"kind":"def","name":"oldChainState","qualifier":"val","expr":{"id":3250,"kind":"app","opcode":"field","args":[{"id":3248,"kind":"name","name":"currentConsumerState"},{"id":3249,"kind":"str","value":"chainState"}]},"typeAnnotation":{"id":3247,"kind":"const","name":"ChainState"},"depth":1},"3330":{"id":3251,"kind":"def","name":"oldChainState","qualifier":"val","expr":{"id":3250,"kind":"app","opcode":"field","args":[{"id":3248,"kind":"name","name":"currentConsumerState"},{"id":3249,"kind":"str","value":"chainState"}]},"typeAnnotation":{"id":3247,"kind":"const","name":"ChainState"},"depth":1},"3333":{"kind":"const","name":"CcvTimeout","typeAnnotation":{"id":2632,"kind":"fun","arg":{"id":2630,"kind":"const","name":"Chain"},"res":{"id":2631,"kind":"int"}},"id":2633},"3334":{"id":3226,"name":"chain","kind":"param"},"3340":{"doc":" Returns a new list l, where l[i] = __f(__list[i])\n\n - @param __list a list\n - @param __f a function that is applied to each element of __list\n\n - @returns a set of the elements in __list","id":5075,"kind":"def","name":"transform","qualifier":"puredef","expr":{"id":5074,"kind":"lambda","params":[{"id":5054,"name":"__list"},{"id":5057,"name":"__f"}],"qualifier":"puredef","expr":{"id":5072,"kind":"app","opcode":"foldl","args":[{"id":5063,"kind":"name","name":"__list"},{"id":5064,"kind":"app","opcode":"List","args":[]},{"id":5071,"kind":"lambda","params":[{"id":5065,"name":"__l"},{"id":5066,"name":"__e"}],"qualifier":"def","expr":{"id":5070,"kind":"app","opcode":"append","args":[{"id":5067,"kind":"name","name":"__l"},{"id":5069,"kind":"app","opcode":"__f","args":[{"id":5068,"kind":"name","name":"__e"}]}]}}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3343":{"id":2360,"kind":"typedef","name":"ConsumerState","type":{"id":2359,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"chainState","fieldType":{"id":2350,"kind":"const","name":"ChainState"}},{"fieldName":"receivedVscPackets","fieldType":{"id":2352,"kind":"list","elem":{"id":2351,"kind":"const","name":"VscPacket"}}},{"fieldName":"maturationTimes","fieldType":{"id":2356,"kind":"list","elem":{"id":2355,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":2353,"kind":"const","name":"VscPacket"}},{"fieldName":"1","fieldType":{"id":2354,"kind":"const","name":"Time"}}],"other":{"kind":"empty"}}}}},{"fieldName":"outstandingPacketsToProvider","fieldType":{"id":2358,"kind":"list","elem":{"id":2357,"kind":"const","name":"VscMaturedPacket"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3344":{"id":3264,"kind":"def","name":"newConsumerState","qualifier":"val","expr":{"id":3263,"kind":"app","opcode":"with","args":[{"id":3260,"kind":"name","name":"currentConsumerState"},{"id":3261,"kind":"str","value":"chainState"},{"id":3262,"kind":"name","name":"newChainState"}]},"typeAnnotation":{"id":3259,"kind":"const","name":"ConsumerState"},"depth":1},"3346":{"id":3316,"kind":"def","name":"newMaturationTimes","qualifier":"val","expr":{"id":3315,"kind":"app","opcode":"select","args":[{"id":3296,"kind":"app","opcode":"field","args":[{"id":3294,"kind":"name","name":"newConsumerState"},{"id":3295,"kind":"str","value":"maturationTimes"}]},{"id":3314,"kind":"lambda","params":[{"id":3297,"name":"pair"}],"qualifier":"def","expr":{"id":3313,"kind":"let","opdef":{"id":3301,"kind":"def","name":"packet","qualifier":"val","expr":{"id":3300,"kind":"app","opcode":"item","args":[{"id":3298,"kind":"name","name":"pair"},{"id":3299,"kind":"int","value":1}]}},"expr":{"id":3312,"kind":"let","opdef":{"id":3306,"kind":"def","name":"maturationTime","qualifier":"val","expr":{"id":3305,"kind":"app","opcode":"item","args":[{"id":3303,"kind":"name","name":"pair"},{"id":3304,"kind":"int","value":2}]},"typeAnnotation":{"id":3302,"kind":"const","name":"Time"}},"expr":{"id":3311,"kind":"app","opcode":"igt","args":[{"id":3307,"kind":"name","name":"maturationTime"},{"id":3310,"kind":"app","opcode":"field","args":[{"id":3308,"kind":"name","name":"newChainState"},{"id":3309,"kind":"str","value":"lastTimestamp"}]}]}}}}]},"depth":1},"3349":{"id":3342,"kind":"def","name":"newOutstandingPackets","qualifier":"val","expr":{"id":3341,"kind":"app","opcode":"concat","args":[{"id":3319,"kind":"app","opcode":"field","args":[{"id":3317,"kind":"name","name":"newConsumerState"},{"id":3318,"kind":"str","value":"outstandingPacketsToProvider"}]},{"id":3340,"kind":"app","opcode":"transform","args":[{"id":3320,"kind":"name","name":"maturedPackets"},{"id":3339,"kind":"lambda","params":[{"id":3321,"name":"packet"}],"qualifier":"def","expr":{"id":3338,"kind":"app","opcode":"Rec","args":[{"id":3325,"kind":"str","value":"id"},{"id":3324,"kind":"app","opcode":"field","args":[{"id":3322,"kind":"name","name":"packet"},{"id":3323,"kind":"str","value":"id"}]},{"id":3329,"kind":"str","value":"sendingTime"},{"id":3328,"kind":"app","opcode":"field","args":[{"id":3326,"kind":"name","name":"oldChainState"},{"id":3327,"kind":"str","value":"runningTimestamp"}]},{"id":3337,"kind":"str","value":"timeoutTime"},{"id":3336,"kind":"app","opcode":"iadd","args":[{"id":3332,"kind":"app","opcode":"field","args":[{"id":3330,"kind":"name","name":"oldChainState"},{"id":3331,"kind":"str","value":"runningTimestamp"}]},{"id":3335,"kind":"app","opcode":"get","args":[{"id":3333,"kind":"name","name":"CcvTimeout"},{"id":3334,"kind":"name","name":"chain"}]}]}]}}]}]},"depth":1},"3352":{"id":3224,"name":"currentState","kind":"param"},"3355":{"id":3226,"name":"chain","kind":"param"},"3356":{"id":3351,"kind":"def","name":"newConsumerState2","qualifier":"val","expr":{"id":3350,"kind":"app","opcode":"with","args":[{"id":3347,"kind":"app","opcode":"with","args":[{"id":3344,"kind":"name","name":"newConsumerState"},{"id":3345,"kind":"str","value":"maturationTimes"},{"id":3346,"kind":"name","name":"newMaturationTimes"}]},{"id":3348,"kind":"str","value":"outstandingPacketsToProvider"},{"id":3349,"kind":"name","name":"newOutstandingPackets"}]},"typeAnnotation":{"id":3343,"kind":"const","name":"ConsumerState"},"depth":1},"3359":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3360":{"id":3224,"name":"currentState","kind":"param"},"3362":{"id":3358,"kind":"def","name":"newConsumerStates","qualifier":"val","expr":{"id":3357,"kind":"app","opcode":"set","args":[{"id":3354,"kind":"app","opcode":"field","args":[{"id":3352,"kind":"name","name":"currentState"},{"id":3353,"kind":"str","value":"consumerStates"}]},{"id":3355,"kind":"name","name":"chain"},{"id":3356,"kind":"name","name":"newConsumerState2"}]},"depth":1},"3365":{"id":3364,"kind":"def","name":"newState","qualifier":"val","expr":{"id":3363,"kind":"app","opcode":"with","args":[{"id":3360,"kind":"name","name":"currentState"},{"id":3361,"kind":"str","value":"consumerStates"},{"id":3362,"kind":"name","name":"newConsumerStates"}]},"typeAnnotation":{"id":3359,"kind":"const","name":"ProtocolState"},"depth":1},"3366":{"id":2401,"kind":"def","name":"Ok","qualifier":"puredef","expr":{"id":2400,"kind":"lambda","params":[{"id":2391,"name":"newState"}],"qualifier":"puredef","expr":{"id":2398,"kind":"app","opcode":"Rec","args":[{"id":2395,"kind":"str","value":"newState"},{"id":2394,"kind":"name","name":"newState"},{"id":2397,"kind":"str","value":"error"},{"id":2396,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3382":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3384":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3386":{"id":2223,"kind":"typedef","name":"Node","type":{"id":2222,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3388":{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3389":{"id":2390,"kind":"typedef","name":"Result","type":{"id":2389,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"newState","fieldType":{"id":2387,"kind":"const","name":"ProtocolState"}},{"fieldName":"error","fieldType":{"id":2388,"kind":"const","name":"Error"}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3390":{"id":3381,"name":"currentState","kind":"param"},"3398":{"id":3397,"kind":"def","name":"provCurValSet","qualifier":"pureval","expr":{"id":3396,"kind":"app","opcode":"field","args":[{"id":3394,"kind":"app","opcode":"field","args":[{"id":3392,"kind":"app","opcode":"field","args":[{"id":3390,"kind":"name","name":"currentState"},{"id":3391,"kind":"str","value":"providerState"}]},{"id":3393,"kind":"str","value":"chainState"}]},{"id":3395,"kind":"str","value":"currentValidatorSet"}]},"depth":1},"3401":{"id":3400,"name":"node","kind":"param"},"3402":{"id":3385,"name":"providerNode","kind":"param"},"3404":{"id":3400,"name":"node","kind":"param"},"3405":{"id":3387,"name":"consumerAddr","kind":"param"},"3411":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3412":{"id":3381,"name":"currentState","kind":"param"},"3417":{"id":3383,"name":"consumer","kind":"param"},"3419":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3421":{"id":3420,"kind":"def","name":"valByConsAddr","qualifier":"pureval","expr":{"id":3419,"kind":"app","opcode":"getOrElse","args":[{"id":3416,"kind":"app","opcode":"field","args":[{"id":3414,"kind":"app","opcode":"field","args":[{"id":3412,"kind":"name","name":"currentState"},{"id":3413,"kind":"str","value":"providerState"}]},{"id":3415,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3417,"kind":"name","name":"consumer"},{"id":3418,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"3423":{"id":3387,"name":"consumerAddr","kind":"param"},"3426":{"id":2412,"kind":"def","name":"Err","qualifier":"puredef","expr":{"id":2411,"kind":"lambda","params":[{"id":2402,"name":"msg"}],"qualifier":"puredef","expr":{"id":2409,"kind":"app","opcode":"Rec","args":[{"id":2406,"kind":"str","value":"newState"},{"id":2405,"kind":"name","name":"GetEmptyProtocolState"},{"id":2408,"kind":"str","value":"error"},{"id":2407,"kind":"name","name":"msg"}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3427":{"id":3381,"name":"currentState","kind":"param"},"3432":{"id":3383,"name":"consumer","kind":"param"},"3434":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3436":{"id":3435,"kind":"def","name":"consKeyByVal","qualifier":"pureval","expr":{"id":3434,"kind":"app","opcode":"getOrElse","args":[{"id":3431,"kind":"app","opcode":"field","args":[{"id":3429,"kind":"app","opcode":"field","args":[{"id":3427,"kind":"name","name":"currentState"},{"id":3428,"kind":"str","value":"providerState"}]},{"id":3430,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3432,"kind":"name","name":"consumer"},{"id":3433,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"3438":{"id":3385,"name":"providerNode","kind":"param"},"3440":{"id":3435,"kind":"def","name":"consKeyByVal","qualifier":"pureval","expr":{"id":3434,"kind":"app","opcode":"getOrElse","args":[{"id":3431,"kind":"app","opcode":"field","args":[{"id":3429,"kind":"app","opcode":"field","args":[{"id":3427,"kind":"name","name":"currentState"},{"id":3428,"kind":"str","value":"providerState"}]},{"id":3430,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3432,"kind":"name","name":"consumer"},{"id":3433,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"3441":{"id":3385,"name":"providerNode","kind":"param"},"3445":{"id":3385,"name":"providerNode","kind":"param"},"3450":{"id":3449,"kind":"def","name":"p","qualifier":"pureval","expr":{"id":3448,"kind":"app","opcode":"ite","args":[{"id":3439,"kind":"app","opcode":"contains","args":[{"id":3437,"kind":"app","opcode":"keys","args":[{"id":3436,"kind":"name","name":"consKeyByVal"}]},{"id":3438,"kind":"name","name":"providerNode"}]},{"id":3444,"kind":"app","opcode":"Tup","args":[{"id":3442,"kind":"app","opcode":"get","args":[{"id":3440,"kind":"name","name":"consKeyByVal"},{"id":3441,"kind":"name","name":"providerNode"}]},{"id":3443,"kind":"bool","value":true}]},{"id":3447,"kind":"app","opcode":"Tup","args":[{"id":3445,"kind":"name","name":"providerNode"},{"id":3446,"kind":"bool","value":false}]}]},"depth":1},"3454":{"id":3449,"kind":"def","name":"p","qualifier":"pureval","expr":{"id":3448,"kind":"app","opcode":"ite","args":[{"id":3439,"kind":"app","opcode":"contains","args":[{"id":3437,"kind":"app","opcode":"keys","args":[{"id":3436,"kind":"name","name":"consKeyByVal"}]},{"id":3438,"kind":"name","name":"providerNode"}]},{"id":3444,"kind":"app","opcode":"Tup","args":[{"id":3442,"kind":"app","opcode":"get","args":[{"id":3440,"kind":"name","name":"consKeyByVal"},{"id":3441,"kind":"name","name":"providerNode"}]},{"id":3443,"kind":"bool","value":true}]},{"id":3447,"kind":"app","opcode":"Tup","args":[{"id":3445,"kind":"name","name":"providerNode"},{"id":3446,"kind":"bool","value":false}]}]},"depth":1},"3458":{"id":3457,"kind":"def","name":"prevAssigned","qualifier":"pureval","expr":{"id":3456,"kind":"app","opcode":"item","args":[{"id":3454,"kind":"name","name":"p"},{"id":3455,"kind":"int","value":2}]},"depth":1},"3459":{"id":3381,"name":"currentState","kind":"param"},"3460":{"id":3453,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":3452,"kind":"app","opcode":"item","args":[{"id":3450,"kind":"name","name":"p"},{"id":3451,"kind":"int","value":1}]},"depth":1},"3461":{"id":3383,"name":"consumer","kind":"param"},"3462":{"id":3674,"kind":"def","name":"AppendConsumerAddrToPrune","qualifier":"puredef","expr":{"id":3673,"kind":"lambda","params":[{"id":3615,"name":"currentState"},{"id":3617,"name":"oldConsAddr"},{"id":3619,"name":"consumer"}],"qualifier":"puredef","expr":{"id":3671,"kind":"let","opdef":{"id":3627,"kind":"def","name":"vscId","qualifier":"pureval","expr":{"id":3626,"kind":"app","opcode":"field","args":[{"id":3624,"kind":"app","opcode":"field","args":[{"id":3622,"kind":"name","name":"currentState"},{"id":3623,"kind":"str","value":"providerState"}]},{"id":3625,"kind":"str","value":"runningVscId"}]}},"expr":{"id":3670,"kind":"let","opdef":{"id":3636,"kind":"def","name":"consumerAddrsToPrune","qualifier":"pureval","expr":{"id":3635,"kind":"app","opcode":"getOrElse","args":[{"id":3632,"kind":"app","opcode":"field","args":[{"id":3630,"kind":"app","opcode":"field","args":[{"id":3628,"kind":"name","name":"currentState"},{"id":3629,"kind":"str","value":"providerState"}]},{"id":3631,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":3633,"kind":"name","name":"consumer"},{"id":3634,"kind":"app","opcode":"Map","args":[]}]}},"expr":{"id":3669,"kind":"let","opdef":{"id":3644,"kind":"def","name":"prevConsAddrs","qualifier":"pureval","expr":{"id":3643,"kind":"app","opcode":"getOrElse","args":[{"id":3640,"kind":"app","opcode":"getOrElse","args":[{"id":3637,"kind":"name","name":"consumerAddrsToPrune"},{"id":3638,"kind":"name","name":"oldConsAddr"},{"id":3639,"kind":"app","opcode":"Map","args":[]}]},{"id":3641,"kind":"name","name":"vscId"},{"id":3642,"kind":"app","opcode":"List","args":[]}]}},"expr":{"id":3668,"kind":"let","opdef":{"id":3651,"kind":"def","name":"newConsAddrsToPrune","qualifier":"pureval","expr":{"id":3650,"kind":"app","opcode":"put","args":[{"id":3645,"kind":"name","name":"consumerAddrsToPrune"},{"id":3646,"kind":"name","name":"vscId"},{"id":3649,"kind":"app","opcode":"append","args":[{"id":3647,"kind":"name","name":"prevConsAddrs"},{"id":3648,"kind":"name","name":"oldConsAddr"}]}]}},"expr":{"id":3667,"kind":"app","opcode":"with","args":[{"id":3652,"kind":"name","name":"currentState"},{"id":3653,"kind":"str","value":"providerState"},{"id":3666,"kind":"app","opcode":"with","args":[{"id":3656,"kind":"app","opcode":"field","args":[{"id":3654,"kind":"name","name":"currentState"},{"id":3655,"kind":"str","value":"providerState"}]},{"id":3657,"kind":"str","value":"consumerAddrsToPrune"},{"id":3665,"kind":"app","opcode":"put","args":[{"id":3662,"kind":"app","opcode":"field","args":[{"id":3660,"kind":"app","opcode":"field","args":[{"id":3658,"kind":"name","name":"currentState"},{"id":3659,"kind":"str","value":"providerState"}]},{"id":3661,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":3663,"kind":"name","name":"consumer"},{"id":3664,"kind":"name","name":"newConsAddrsToPrune"}]}]}]}}}}}},"depth":0},"3463":{"id":3381,"name":"currentState","kind":"param"},"3466":{"id":3381,"name":"currentState","kind":"param"},"3474":{"id":3473,"kind":"def","name":"provValSet","qualifier":"pureval","expr":{"id":3472,"kind":"app","opcode":"field","args":[{"id":3470,"kind":"app","opcode":"field","args":[{"id":3468,"kind":"app","opcode":"field","args":[{"id":3466,"kind":"name","name":"currentState"},{"id":3467,"kind":"str","value":"providerState"}]},{"id":3469,"kind":"str","value":"chainState"}]},{"id":3471,"kind":"str","value":"currentValidatorSet"}]},"depth":1},"3476":{"id":3385,"name":"providerNode","kind":"param"},"3478":{"id":3473,"kind":"def","name":"provValSet","qualifier":"pureval","expr":{"id":3472,"kind":"app","opcode":"field","args":[{"id":3470,"kind":"app","opcode":"field","args":[{"id":3468,"kind":"app","opcode":"field","args":[{"id":3466,"kind":"name","name":"currentState"},{"id":3467,"kind":"str","value":"providerState"}]},{"id":3469,"kind":"str","value":"chainState"}]},{"id":3471,"kind":"str","value":"currentValidatorSet"}]},"depth":1},"3479":{"id":3385,"name":"providerNode","kind":"param"},"3484":{"id":3483,"kind":"def","name":"provValPower","qualifier":"pureval","expr":{"id":3482,"kind":"app","opcode":"ite","args":[{"id":3477,"kind":"app","opcode":"contains","args":[{"id":3475,"kind":"app","opcode":"keys","args":[{"id":3474,"kind":"name","name":"provValSet"}]},{"id":3476,"kind":"name","name":"providerNode"}]},{"id":3480,"kind":"app","opcode":"get","args":[{"id":3478,"kind":"name","name":"provValSet"},{"id":3479,"kind":"name","name":"providerNode"}]},{"id":3481,"kind":"int","value":0}]},"depth":1},"3487":{"id":3381,"name":"currentState","kind":"param"},"3492":{"id":3383,"name":"consumer","kind":"param"},"3494":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3496":{"id":3385,"name":"providerNode","kind":"param"},"3500":{"id":3381,"name":"currentState","kind":"param"},"3505":{"id":3383,"name":"consumer","kind":"param"},"3506":{"id":3381,"name":"currentState","kind":"param"},"3511":{"id":3383,"name":"consumer","kind":"param"},"3513":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3514":{"id":3385,"name":"providerNode","kind":"param"},"3515":{"id":3453,"kind":"def","name":"oldConsAddr","qualifier":"pureval","expr":{"id":3452,"kind":"app","opcode":"item","args":[{"id":3450,"kind":"name","name":"p"},{"id":3451,"kind":"int","value":1}]},"depth":1},"3516":{"id":3483,"kind":"def","name":"provValPower","qualifier":"pureval","expr":{"id":3482,"kind":"app","opcode":"ite","args":[{"id":3477,"kind":"app","opcode":"contains","args":[{"id":3475,"kind":"app","opcode":"keys","args":[{"id":3474,"kind":"name","name":"provValSet"}]},{"id":3476,"kind":"name","name":"providerNode"}]},{"id":3480,"kind":"app","opcode":"get","args":[{"id":3478,"kind":"name","name":"provValSet"},{"id":3479,"kind":"name","name":"providerNode"}]},{"id":3481,"kind":"int","value":0}]},"depth":1},"3520":{"id":3381,"name":"currentState","kind":"param"},"3527":{"id":3465,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":3464,"kind":"app","opcode":"ite","args":[{"id":3458,"kind":"name","name":"prevAssigned"},{"id":3462,"kind":"app","opcode":"AppendConsumerAddrToPrune","args":[{"id":3459,"kind":"name","name":"currentState"},{"id":3460,"kind":"name","name":"oldConsAddr"},{"id":3461,"kind":"name","name":"consumer"}]},{"id":3463,"kind":"name","name":"currentState"}]},"depth":1},"3529":{"id":3465,"kind":"def","name":"tmpState","qualifier":"pureval","expr":{"id":3464,"kind":"app","opcode":"ite","args":[{"id":3458,"kind":"name","name":"prevAssigned"},{"id":3462,"kind":"app","opcode":"AppendConsumerAddrToPrune","args":[{"id":3459,"kind":"name","name":"currentState"},{"id":3460,"kind":"name","name":"oldConsAddr"},{"id":3461,"kind":"name","name":"consumer"}]},{"id":3463,"kind":"name","name":"currentState"}]},"depth":1},"3533":{"id":3526,"kind":"def","name":"newKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3525,"kind":"app","opcode":"ite","args":[{"id":3499,"kind":"app","opcode":"and","args":[{"id":3486,"kind":"app","opcode":"igt","args":[{"id":3484,"kind":"name","name":"provValPower"},{"id":3485,"kind":"int","value":0}]},{"id":3498,"kind":"app","opcode":"not","args":[{"id":3497,"kind":"app","opcode":"contains","args":[{"id":3495,"kind":"app","opcode":"keys","args":[{"id":3494,"kind":"app","opcode":"getOrElse","args":[{"id":3491,"kind":"app","opcode":"field","args":[{"id":3489,"kind":"app","opcode":"field","args":[{"id":3487,"kind":"name","name":"currentState"},{"id":3488,"kind":"str","value":"providerState"}]},{"id":3490,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3492,"kind":"name","name":"consumer"},{"id":3493,"kind":"app","opcode":"Map","args":[]}]}]},{"id":3496,"kind":"name","name":"providerNode"}]}]}]},{"id":3519,"kind":"app","opcode":"put","args":[{"id":3504,"kind":"app","opcode":"field","args":[{"id":3502,"kind":"app","opcode":"field","args":[{"id":3500,"kind":"name","name":"currentState"},{"id":3501,"kind":"str","value":"providerState"}]},{"id":3503,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3505,"kind":"name","name":"consumer"},{"id":3518,"kind":"app","opcode":"put","args":[{"id":3513,"kind":"app","opcode":"getOrElse","args":[{"id":3510,"kind":"app","opcode":"field","args":[{"id":3508,"kind":"app","opcode":"field","args":[{"id":3506,"kind":"name","name":"currentState"},{"id":3507,"kind":"str","value":"providerState"}]},{"id":3509,"kind":"str","value":"keyAssignmentReplacements"}]},{"id":3511,"kind":"name","name":"consumer"},{"id":3512,"kind":"app","opcode":"Map","args":[]}]},{"id":3514,"kind":"name","name":"providerNode"},{"id":3517,"kind":"app","opcode":"Tup","args":[{"id":3515,"kind":"name","name":"oldConsAddr"},{"id":3516,"kind":"name","name":"provValPower"}]}]}]},{"id":3524,"kind":"app","opcode":"field","args":[{"id":3522,"kind":"app","opcode":"field","args":[{"id":3520,"kind":"name","name":"currentState"},{"id":3521,"kind":"str","value":"providerState"}]},{"id":3523,"kind":"str","value":"keyAssignmentReplacements"}]}]},"depth":1},"3537":{"id":3381,"name":"currentState","kind":"param"},"3542":{"id":3383,"name":"consumer","kind":"param"},"3544":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3545":{"id":3383,"name":"consumer","kind":"param"},"3546":{"id":3381,"name":"currentState","kind":"param"},"3551":{"id":3383,"name":"consumer","kind":"param"},"3553":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3554":{"id":3385,"name":"providerNode","kind":"param"},"3555":{"id":3387,"name":"consumerAddr","kind":"param"},"3559":{"id":3381,"name":"currentState","kind":"param"},"3564":{"id":3383,"name":"consumer","kind":"param"},"3566":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3567":{"id":3383,"name":"consumer","kind":"param"},"3568":{"id":3381,"name":"currentState","kind":"param"},"3573":{"id":3383,"name":"consumer","kind":"param"},"3575":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3576":{"id":3387,"name":"consumerAddr","kind":"param"},"3577":{"id":3385,"name":"providerNode","kind":"param"},"3581":{"id":3536,"kind":"def","name":"tmpStateAfterKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3535,"kind":"app","opcode":"with","args":[{"id":3527,"kind":"name","name":"tmpState"},{"id":3528,"kind":"str","value":"providerState"},{"id":3534,"kind":"app","opcode":"with","args":[{"id":3531,"kind":"app","opcode":"field","args":[{"id":3529,"kind":"name","name":"tmpState"},{"id":3530,"kind":"str","value":"providerState"}]},{"id":3532,"kind":"str","value":"keyAssignmentReplacements"},{"id":3533,"kind":"name","name":"newKeyAssignmentReplacement"}]}]},"depth":1},"3585":{"id":3558,"kind":"def","name":"newValidatorConsumerPubKey","qualifier":"pureval","expr":{"id":3557,"kind":"app","opcode":"put","args":[{"id":3544,"kind":"app","opcode":"getOrElse","args":[{"id":3541,"kind":"app","opcode":"field","args":[{"id":3539,"kind":"app","opcode":"field","args":[{"id":3537,"kind":"name","name":"currentState"},{"id":3538,"kind":"str","value":"providerState"}]},{"id":3540,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3542,"kind":"name","name":"consumer"},{"id":3543,"kind":"app","opcode":"Map","args":[]}]},{"id":3545,"kind":"name","name":"consumer"},{"id":3556,"kind":"app","opcode":"put","args":[{"id":3553,"kind":"app","opcode":"getOrElse","args":[{"id":3550,"kind":"app","opcode":"field","args":[{"id":3548,"kind":"app","opcode":"field","args":[{"id":3546,"kind":"name","name":"currentState"},{"id":3547,"kind":"str","value":"providerState"}]},{"id":3549,"kind":"str","value":"validatorConsumerPubKey"}]},{"id":3551,"kind":"name","name":"consumer"},{"id":3552,"kind":"app","opcode":"Map","args":[]}]},{"id":3554,"kind":"name","name":"providerNode"},{"id":3555,"kind":"name","name":"consumerAddr"}]}]},"depth":1},"3588":{"id":3580,"kind":"def","name":"newValidatorByConsumerAddr","qualifier":"pureval","expr":{"id":3579,"kind":"app","opcode":"put","args":[{"id":3566,"kind":"app","opcode":"getOrElse","args":[{"id":3563,"kind":"app","opcode":"field","args":[{"id":3561,"kind":"app","opcode":"field","args":[{"id":3559,"kind":"name","name":"currentState"},{"id":3560,"kind":"str","value":"providerState"}]},{"id":3562,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3564,"kind":"name","name":"consumer"},{"id":3565,"kind":"app","opcode":"Map","args":[]}]},{"id":3567,"kind":"name","name":"consumer"},{"id":3578,"kind":"app","opcode":"put","args":[{"id":3575,"kind":"app","opcode":"getOrElse","args":[{"id":3572,"kind":"app","opcode":"field","args":[{"id":3570,"kind":"app","opcode":"field","args":[{"id":3568,"kind":"name","name":"currentState"},{"id":3569,"kind":"str","value":"providerState"}]},{"id":3571,"kind":"str","value":"validatorByConsumerAddr"}]},{"id":3573,"kind":"name","name":"consumer"},{"id":3574,"kind":"app","opcode":"Map","args":[]}]},{"id":3576,"kind":"name","name":"consumerAddr"},{"id":3577,"kind":"name","name":"providerNode"}]}]},"depth":1},"3591":{"id":3536,"kind":"def","name":"tmpStateAfterKeyAssignmentReplacement","qualifier":"pureval","expr":{"id":3535,"kind":"app","opcode":"with","args":[{"id":3527,"kind":"name","name":"tmpState"},{"id":3528,"kind":"str","value":"providerState"},{"id":3534,"kind":"app","opcode":"with","args":[{"id":3531,"kind":"app","opcode":"field","args":[{"id":3529,"kind":"name","name":"tmpState"},{"id":3530,"kind":"str","value":"providerState"}]},{"id":3532,"kind":"str","value":"keyAssignmentReplacements"},{"id":3533,"kind":"name","name":"newKeyAssignmentReplacement"}]}]},"depth":1},"3593":{"id":3590,"kind":"def","name":"newProviderState","qualifier":"pureval","expr":{"id":3589,"kind":"app","opcode":"with","args":[{"id":3586,"kind":"app","opcode":"with","args":[{"id":3583,"kind":"app","opcode":"field","args":[{"id":3581,"kind":"name","name":"tmpStateAfterKeyAssignmentReplacement"},{"id":3582,"kind":"str","value":"providerState"}]},{"id":3584,"kind":"str","value":"validatorConsumerPubKey"},{"id":3585,"kind":"name","name":"newValidatorConsumerPubKey"}]},{"id":3587,"kind":"str","value":"validatorByConsumerAddr"},{"id":3588,"kind":"name","name":"newValidatorByConsumerAddr"}]},"depth":1},"3595":{"id":2401,"kind":"def","name":"Ok","qualifier":"puredef","expr":{"id":2400,"kind":"lambda","params":[{"id":2391,"name":"newState"}],"qualifier":"puredef","expr":{"id":2398,"kind":"app","opcode":"Rec","args":[{"id":2395,"kind":"str","value":"newState"},{"id":2394,"kind":"name","name":"newState"},{"id":2397,"kind":"str","value":"error"},{"id":2396,"kind":"str","value":""}]}},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3616":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3618":{"id":2240,"kind":"typedef","name":"ConsumerAddr","type":{"id":2239,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3620":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3621":{"id":2377,"kind":"typedef","name":"ProtocolState","type":{"id":2376,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"providerState","fieldType":{"id":2372,"kind":"const","name":"ProviderState"}},{"fieldName":"consumerStates","fieldType":{"id":2375,"kind":"fun","arg":{"id":2373,"kind":"const","name":"Chain"},"res":{"id":2374,"kind":"const","name":"ConsumerState"}}}],"other":{"kind":"empty"}}},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3622":{"id":3615,"name":"currentState","kind":"param"},"3628":{"id":3615,"name":"currentState","kind":"param"},"3633":{"id":3619,"name":"consumer","kind":"param"},"3635":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3637":{"id":3636,"kind":"def","name":"consumerAddrsToPrune","qualifier":"pureval","expr":{"id":3635,"kind":"app","opcode":"getOrElse","args":[{"id":3632,"kind":"app","opcode":"field","args":[{"id":3630,"kind":"app","opcode":"field","args":[{"id":3628,"kind":"name","name":"currentState"},{"id":3629,"kind":"str","value":"providerState"}]},{"id":3631,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":3633,"kind":"name","name":"consumer"},{"id":3634,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"3638":{"id":3617,"name":"oldConsAddr","kind":"param"},"3640":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3641":{"id":3627,"kind":"def","name":"vscId","qualifier":"pureval","expr":{"id":3626,"kind":"app","opcode":"field","args":[{"id":3624,"kind":"app","opcode":"field","args":[{"id":3622,"kind":"name","name":"currentState"},{"id":3623,"kind":"str","value":"providerState"}]},{"id":3625,"kind":"str","value":"runningVscId"}]},"depth":1},"3643":{"doc":"Get the map value associated with a key, or the default,\nif the key is not present.\n\n- @param __map the map to query\n- @param __key the key to search for\n- @returns the value associated with the key, if __key is\n present in the map, and __default otherwise","id":5153,"kind":"def","name":"getOrElse","qualifier":"puredef","expr":{"id":5152,"kind":"lambda","params":[{"id":5134,"name":"__map"},{"id":5138,"name":"__key"},{"id":5140,"name":"__default"}],"qualifier":"puredef","expr":{"id":5150,"kind":"app","opcode":"ite","args":[{"id":5145,"kind":"app","opcode":"has","args":[{"id":5143,"kind":"name","name":"__map"},{"id":5144,"kind":"name","name":"__key"}]},{"id":5148,"kind":"app","opcode":"get","args":[{"id":5146,"kind":"name","name":"__map"},{"id":5147,"kind":"name","name":"__key"}]},{"id":5149,"kind":"name","name":"__default"}]}},"depth":0,"importedFrom":{"id":2619,"kind":"import","defName":"*","protoName":"extraSpells","fromSource":"./libraries/extraSpells"},"hidden":true},"3645":{"id":3636,"kind":"def","name":"consumerAddrsToPrune","qualifier":"pureval","expr":{"id":3635,"kind":"app","opcode":"getOrElse","args":[{"id":3632,"kind":"app","opcode":"field","args":[{"id":3630,"kind":"app","opcode":"field","args":[{"id":3628,"kind":"name","name":"currentState"},{"id":3629,"kind":"str","value":"providerState"}]},{"id":3631,"kind":"str","value":"consumerAddrsToPrune"}]},{"id":3633,"kind":"name","name":"consumer"},{"id":3634,"kind":"app","opcode":"Map","args":[]}]},"depth":1},"3646":{"id":3627,"kind":"def","name":"vscId","qualifier":"pureval","expr":{"id":3626,"kind":"app","opcode":"field","args":[{"id":3624,"kind":"app","opcode":"field","args":[{"id":3622,"kind":"name","name":"currentState"},{"id":3623,"kind":"str","value":"providerState"}]},{"id":3625,"kind":"str","value":"runningVscId"}]},"depth":1},"3647":{"id":3644,"kind":"def","name":"prevConsAddrs","qualifier":"pureval","expr":{"id":3643,"kind":"app","opcode":"getOrElse","args":[{"id":3640,"kind":"app","opcode":"getOrElse","args":[{"id":3637,"kind":"name","name":"consumerAddrsToPrune"},{"id":3638,"kind":"name","name":"oldConsAddr"},{"id":3639,"kind":"app","opcode":"Map","args":[]}]},{"id":3641,"kind":"name","name":"vscId"},{"id":3642,"kind":"app","opcode":"List","args":[]}]},"depth":1},"3648":{"id":3617,"name":"oldConsAddr","kind":"param"},"3652":{"id":3615,"name":"currentState","kind":"param"},"3654":{"id":3615,"name":"currentState","kind":"param"},"3658":{"id":3615,"name":"currentState","kind":"param"},"3663":{"id":3619,"name":"consumer","kind":"param"},"3664":{"id":3651,"kind":"def","name":"newConsAddrsToPrune","qualifier":"pureval","expr":{"id":3650,"kind":"app","opcode":"put","args":[{"id":3645,"kind":"name","name":"consumerAddrsToPrune"},{"id":3646,"kind":"name","name":"vscId"},{"id":3649,"kind":"app","opcode":"append","args":[{"id":3647,"kind":"name","name":"prevConsAddrs"},{"id":3648,"kind":"name","name":"oldConsAddr"}]}]},"depth":1},"3676":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3680":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3683":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3685":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3690":{"id":3675,"name":"currentConsumerStatusMap","kind":"param"},"3693":{"id":3675,"name":"currentConsumerStatusMap","kind":"param"},"3694":{"id":3692,"name":"chain","kind":"param"},"3696":{"id":2429,"kind":"def","name":"RUNNING","qualifier":"pureval","expr":{"id":2428,"kind":"str","value":"running"},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3701":{"id":3679,"name":"consumersToStop","kind":"param"},"3702":{"id":3700,"kind":"def","name":"runningConsumers","qualifier":"val","expr":{"id":3699,"kind":"app","opcode":"filter","args":[{"id":3691,"kind":"app","opcode":"keys","args":[{"id":3690,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3698,"kind":"lambda","params":[{"id":3692,"name":"chain"}],"qualifier":"def","expr":{"id":3697,"kind":"app","opcode":"eq","args":[{"id":3695,"kind":"app","opcode":"get","args":[{"id":3693,"kind":"name","name":"currentConsumerStatusMap"},{"id":3694,"kind":"name","name":"chain"}]},{"id":3696,"kind":"name","name":"RUNNING"}]}}]},"depth":1},"3707":{"id":3675,"name":"currentConsumerStatusMap","kind":"param"},"3710":{"id":3675,"name":"currentConsumerStatusMap","kind":"param"},"3713":{"id":3682,"name":"consumersToTimeout","kind":"param"},"3714":{"id":3712,"name":"chain","kind":"param"},"3716":{"id":2427,"kind":"def","name":"TIMEDOUT","qualifier":"pureval","expr":{"id":2426,"kind":"str","value":"timedout"},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3717":{"id":3679,"name":"consumersToStop","kind":"param"},"3718":{"id":3712,"name":"chain","kind":"param"},"3720":{"id":2425,"kind":"def","name":"STOPPED","qualifier":"pureval","expr":{"id":2424,"kind":"str","value":"stopped"},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3721":{"id":3675,"name":"currentConsumerStatusMap","kind":"param"},"3722":{"id":3712,"name":"chain","kind":"param"},"3729":{"id":3728,"kind":"def","name":"newConsumerStatusMap","qualifier":"val","expr":{"id":3727,"kind":"app","opcode":"mapBy","args":[{"id":3711,"kind":"app","opcode":"keys","args":[{"id":3710,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3726,"kind":"lambda","params":[{"id":3712,"name":"chain"}],"qualifier":"def","expr":{"id":3725,"kind":"app","opcode":"ite","args":[{"id":3715,"kind":"app","opcode":"contains","args":[{"id":3713,"kind":"name","name":"consumersToTimeout"},{"id":3714,"kind":"name","name":"chain"}]},{"id":3716,"kind":"name","name":"TIMEDOUT"},{"id":3724,"kind":"app","opcode":"ite","args":[{"id":3719,"kind":"app","opcode":"contains","args":[{"id":3717,"kind":"name","name":"consumersToStop"},{"id":3718,"kind":"name","name":"chain"}]},{"id":3720,"kind":"name","name":"STOPPED"},{"id":3723,"kind":"app","opcode":"get","args":[{"id":3721,"kind":"name","name":"currentConsumerStatusMap"},{"id":3722,"kind":"name","name":"chain"}]}]}]}}]},"depth":1},"3739":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3743":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3745":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3750":{"id":3738,"name":"currentConsumerStatusMap","kind":"param"},"3753":{"id":3738,"name":"currentConsumerStatusMap","kind":"param"},"3754":{"id":3752,"name":"chain","kind":"param"},"3756":{"id":2431,"kind":"def","name":"NOT_CONSUMER","qualifier":"pureval","expr":{"id":2430,"kind":"str","value":"not consumer"},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3761":{"id":3742,"name":"consumersToStart","kind":"param"},"3762":{"id":3760,"kind":"def","name":"nonConsumers","qualifier":"val","expr":{"id":3759,"kind":"app","opcode":"filter","args":[{"id":3751,"kind":"app","opcode":"keys","args":[{"id":3750,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3758,"kind":"lambda","params":[{"id":3752,"name":"chain"}],"qualifier":"def","expr":{"id":3757,"kind":"app","opcode":"eq","args":[{"id":3755,"kind":"app","opcode":"get","args":[{"id":3753,"kind":"name","name":"currentConsumerStatusMap"},{"id":3754,"kind":"name","name":"chain"}]},{"id":3756,"kind":"name","name":"NOT_CONSUMER"}]}}]},"depth":1},"3767":{"id":3738,"name":"currentConsumerStatusMap","kind":"param"},"3770":{"id":3738,"name":"currentConsumerStatusMap","kind":"param"},"3773":{"id":3742,"name":"consumersToStart","kind":"param"},"3774":{"id":3772,"name":"chain","kind":"param"},"3776":{"id":2429,"kind":"def","name":"RUNNING","qualifier":"pureval","expr":{"id":2428,"kind":"str","value":"running"},"depth":0,"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3777":{"id":3738,"name":"currentConsumerStatusMap","kind":"param"},"3778":{"id":3772,"name":"chain","kind":"param"},"3784":{"id":3783,"kind":"def","name":"newConsumerStatusMap","qualifier":"val","expr":{"id":3782,"kind":"app","opcode":"mapBy","args":[{"id":3771,"kind":"app","opcode":"keys","args":[{"id":3770,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3781,"kind":"lambda","params":[{"id":3772,"name":"chain"}],"qualifier":"def","expr":{"id":3780,"kind":"app","opcode":"ite","args":[{"id":3775,"kind":"app","opcode":"contains","args":[{"id":3773,"kind":"name","name":"consumersToStart"},{"id":3774,"kind":"name","name":"chain"}]},{"id":3776,"kind":"name","name":"RUNNING"},{"id":3779,"kind":"app","opcode":"get","args":[{"id":3777,"kind":"name","name":"currentConsumerStatusMap"},{"id":3778,"kind":"name","name":"chain"}]}]}}]},"depth":1},"3794":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3798":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3801":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3804":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3806":{"id":2225,"kind":"typedef","name":"Chain","type":{"id":2224,"kind":"str"},"importedFrom":{"id":2620,"kind":"import","defName":"*","protoName":"ccv_types"},"hidden":true},"3811":{"id":3797,"name":"consumersToStart","kind":"param"},"3812":{"id":3800,"name":"consumersToStop","kind":"param"},"3817":{"id":3793,"name":"currentConsumerStatusMap","kind":"param"},"3820":{"id":3793,"name":"currentConsumerStatusMap","kind":"param"},"3821":{"id":3797,"name":"consumersToStart","kind":"param"},"3822":{"id":3792,"kind":"def","name":"startConsumers","qualifier":"puredef","expr":{"id":3791,"kind":"lambda","params":[{"id":3738,"name":"currentConsumerStatusMap"},{"id":3742,"name":"consumersToStart"}],"qualifier":"puredef","expr":{"id":3789,"kind":"let","opdef":{"id":3760,"kind":"def","name":"nonConsumers","qualifier":"val","expr":{"id":3759,"kind":"app","opcode":"filter","args":[{"id":3751,"kind":"app","opcode":"keys","args":[{"id":3750,"kind":"name","name":"currentConsumerStatusMap"}]},{"id":3758,"kind":"lambda","params":[{"id":3752,"name":"chain"}],"qualifier":"def","expr":{"id":3757,"kind":"app","opcode":"eq","args":[{"id":3755,"ki
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment