diff --git a/hydra-cluster/config/devnet/genesis-shelley.json b/hydra-cluster/config/devnet/genesis-shelley.json index c46ba4727af..fc45dbedefe 100644 --- a/hydra-cluster/config/devnet/genesis-shelley.json +++ b/hydra-cluster/config/devnet/genesis-shelley.json @@ -22,7 +22,7 @@ "keyDeposit": 0, "maxBlockBodySize": 65536, "maxBlockHeaderSize": 1100, - "maxTxSize": 17900, + "maxTxSize": 18000, "minFeeA": 44, "minFeeB": 155381, "minPoolCost": 0, diff --git a/hydra-plutus/scripts/mHead.plutus b/hydra-plutus/scripts/mHead.plutus index 975a851d1b1..0b87ca491a2 100644 --- a/hydra-plutus/scripts/mHead.plutus +++ b/hydra-plutus/scripts/mHead.plutus @@ -1,5 +1,5 @@ { "type": "PlutusScriptV2", "description": "hydra-mHead-0.19.0-275-gc7af746e4", - "cborHex": "5911635911600100003332323233223322323233223232323232323232323232222225335325335323232325335333573400203a0382244002264a66a666ae6800407807444880084c07d24103505431003370e900100199b8748000008d55cf0011aab9d0013754006266014921034d30360053353330082232333573400203803666e3c008004c024004c02cd40048800884cc074894cd40044070884d4008894cd4c8ccd5cd00081081019b88001480004c01800c407c004406054cc8d4cc02d241034d303100323301e225335001101c22153353500a2235004223253353335734002048046264666ae68004094090cdc3802001081199b8f004002101f130040010013301d225335001101a22133501b350022200230040013500122222222222200c15332323232323235330114901034d30320032333573400204204066e1cc94cd4ccc04088c8ccd5cd00081201199b8f00200150073013008213002001148000c8cc88c88c008004c098894cd4004400c884d400888cc020004c01800cc00488008c004880048cc00488cdc0001000a400066e0000520021325335330124901034d3033003302422533500110222213500222325335333573400205004e2602c0042600e00866e3c00801cd54014880044c94cd54cc8d4cc0512401034d30340032333573400204804666e1c010cc0184488c88c008004c0a0894cd4004400c884cc018008c0100040044cc06494cd4ccc04c88c8ccd5cd00081381319b8f002001004001215335001130264901034d303800221350022253350031533532333573400205405266e1c005200210291302a491034d303800221302c491034d30380013025491034d303700001330252253350011022221335023350022200130040010011021153353301825333500115016215335301b00121330164901034d31320032333573400204c04a66e3c0040144c0952401034d31320021501733025225335001102222133502335002220023004001001133013491034d303500533532333573400204604466e3cc01088800c0084d4c01088800888d403c88c94cd4ccd5cd000813813099199ab9a0010280273370e008004204c66e3c010008408440844084cc01803802040814018c00488800554ccd4d54008880085404c854cd4cccccc05c00488c94c8c8c8c8c8cd4ccd5cd0030138130a99a9999aab9f0072502123232302433025002001357440126ae840200a484d4004894cd4c014008854cd4cccd55cf80112812919191814198148010009aba20043574200605a426a00244a66a66a01601800442a66a6666aae7c008940a48c8c8c0b0cc0b4008004d5d10021aba10030312135001225335302900221533533335573e0044a05a4646460600046ae88010d5d080181a90a99a9999998160009119299a999ab9a0010370361533533335573e0044a0624646460686606a0040026ae88010d5d080181c909a80091299a9999998190011119299a999ab9a00103d03c1533533335573e0044a06e4646460740046ae88010d5d080181f90a99a981a80090981c8008a81b8a81b0a81b19b8748000008940d0940d0940d0940d0854cd4cccd55cf8011281a91919181c0011aba20043574200607a42a66a603000242606e660720060022a06a2a0682a0662a0602a06066e1d20000022502e2502e2502e2502e21302f12222333300200f00b0070051300e4984c035261300c4984c02526130084984c01526130044984c00526130014988c94c8cd4ccd5cd0010148140a99a9999aab9f00925023232323026002357440166ae840280ac854cd4cccccc08800488c94cd4ccd5cd0008168160a99a9999aab9f0022502723232302a3302b002001357440086ae8400c0bc84d4004894cd4c09c008854cd4cccd55cf80112815919191817198178010009aba200435742006066426a00244a66a66a02202400442a66a6666aae7c008940bc8c8c8c0c8cc0cc008004d5d10021aba10030372135001225335301300221533533335573e0044a06646464606c6606e0040026ae88010d5d080181d909a80091299a980c00110a99a9999aab9f0022503723232303a002357440086ae8400c0fc854cd4c0d400484c0e448ccccc004040030020010008540dc540d8540d4540c8540c4540b8540b4540a8540a45409854098cdc3a40000044a0484a0484a0484a04842604a24444600200a260049309800a4c260029311929919a999ab9a00202b02a1533533335573e0164a04a4646460500046ae88034d5d080601690a99a9999998120009119299a999ab9a00102f02e1533533335573e0044a0524646460586605a0040026ae88010d5d0801818909a80091299a981480110a99a9999aab9f0022502d23232303033031002001357440086ae8400c0d484d400488c94cd4cc00405400c854cd4cccd55cf8019281911919181a9981b0010009aba200535742008074426a00244a66a602c00442a66a6666aae7c008940d88c8c8c0e4cc0e8008004d5d10021aba100303e2135001225335301b00221533533335573e0044a07446464607a6607c0040026ae88010d5d0801821109a80091299a980f80110a99a9999aab9f0022503e23232304133042002001357440086ae8400c11884d4004894cd4c0f8008854cd4cccd55cf80112821119191822998230010009aba200435742006094426a00244a66a608400442a66a6666aae7c008941188c8c8c124cc128008004d5d10021aba100304e21350012253353301904600221533533335573e0044a09446464609a0046ae88010d5d080182910a99a98168009098260919999999980081080e00c00a0080060040020010a8250a8248a8240a8228a8220a8208a8200a81e8a81e0a81c8a81c0a81a8a81a0a8188a81828098a8160a8158a8140a81419b87480000089409894098940989409884c09c48888c0100144c00926130014984c00526232533533357340020580562604c244440062a04a66e1d200600c3370e900200519b87480080208cccccc07800488c94cd4ccd5cd0008148140a99a9999aab9f00225023232323026002357440086ae8400c0ac854cd4c01800484c0940045408c5408854088cdc3a40000044a0404a0404a0404a040466666603a00244a0404a03e4a03e460400024a03e264464466666603e00244a0444a0420044a0424a0426050446666aae7c004801494cd4c010d5d080110a99a98021aba2003213024335027002001150221325022300335744004052603a0424a66a603400242603c0022a03866e1d2000002250192501925019250192153333500121501515014222213212333001004003002330071122322300200130292253350011003221330060023004001003215015130204901034d3039002150142335500122337000029001240002a66a660020100062603a9201034d313100221533500110022213021491034d3131002233020225335001101d22132533535003222235004223350022502223253353335734002054052260486604a00c00e2a04666e3c00403884cd40800040084004c010004d40048888888888880284c0280084064d4004880084060c8c8c8c94cd4ccd5cd00080e00d89919191991091980080180119191919299a999ab9a001023022132323232323232323232332333233333233323332222222222221233333333333300100d00c00b00a009008007006005004003002330032323232325335333573400206c06a26644246600200600460306ae84008c018d5d09aba200213037490103505431003370e90000011aab9e00235573a0026ea8004d5d08081aba100e330030013574201a464646464a66a666ae680040d40d04c8c8c8cccc888848cccc00401401000c008c8c8c8c94cd4ccd5cd00081e01d89991091980080180118101aba10023300501f357426ae880084c0f5240103505431003370e90000011aab9e00235573a0026ea8d5d080298049aba1003323232325335333573400207807622444006264a66a666ae680040f40f04c84888c004010dd71aba10031325335333573400207c07a264244460040086ae840104c0fd24103505431003370e900200219b874800800ccdc3a40000046aae78008d55ce8009baa3574200466002eb8d5d09aba200222323232325335333573400207a0782a06c264a66a666ae680040f80f44c0e0c01cd5d08018981fa4903505431003370e900000199b8748008008d55cf0011aab9d00137540026ae88004d5d10010981b24903505431003370e90000011aab9e00235573a0026ea8004c004d5d080598009aba100a3002300275a6ae84020d5d08039aba10063300175c6ae840148c88c008dd60009819111999aab9f0012030233502f30043574200460066ae880080ccd5d08019980090009aba10022322300237560026062446666aae7c00480bc8c8cd40bccc0b4dd71aab9d001300535573c00260086ae8800cd5d08010191aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10010981224903505431003370e90000011aab9e00235573a0026ea8d5d080299191919299a999ab9a001023022132122223003005375c6ae840084c94cd4ccd5cd00081201189909111180080298031aba10031325335333573400204a04826424444600400a60106ae840104c94cd4ccd5cd00081301289909111180200299191919299a999ab9a00102a029132122222223005008300d35742004264a66a666ae680040ac0a84c848888888c01c020c038d5d0801899299a999ab9a00102c02b133221222222233006009008300f357420086eb8d5d09aba20041325335333573400205a0582664424444444660040120106eb8d5d08029bae357426ae880144c94cd4ccd5cd0008170168999109111111198008048041bae3574200c6eb4d5d09aba20061325335333573400205e05c224444444008264a66a666ae680040c00bc44888888800c4c0c524103505431003370e900600419b874802801ccdc3a401000c66e1d20060053370e900200219b874800800ccdc3a40000046aae78008d55ce8009baa3574200a2604e920103505431003370e900300299b8748010010cdc3a400400666e1d200000235573c0046aae74004dd51aba13574400a464646464a66a666ae6800408c0884cc07cc8c8c8c94cd4ccd5cd00081381309bae357420042605092103505431003370e90000011aab9e00235573a0026ea8d5d08011bad357426ae880084c09124103505431003370e90000011aab9e00235573a0026ea80048c8c8c8c94cd4ccd5cd000811010899091180100198031aba10021325335333573400204604426466644424466600200a0080066eb4d5d08021bad357420026eb4d5d09aba20013574400626048920103505431003370e900100199b8748000008d55cf0011aab9d0013754002464646464a66a666ae680040840804c8488c00800cdd71aba10021325335333573400204404226424460020066eb8d5d080189811a48103505431003370e900100199b8748000008d55cf0011aab9d00137540022603a920103505431003370e90000011aab9e00235573a0026ea80045261301949103505435003015225335001101322135002223253353335734002032030264666ae68004068064cdc3801240042600e00866e3c00922010b48796472614865616456310022322300200130162253350011500e22135002225335330080020071301300113006003235001223233335002250022001250022500213263357389201024c68000152253350011011133573800402046a0024444444444440102601c921034d3132001300d491034d3039001300c491034d31300023223002001300e225335001100d2215335300500213004001100e2333333002001225005250042500425004230050012222223333333574800c4646600e6aae74004d55cf0009baa00723005375600e460086eb001c8c00cdd6803918011bae007010212230020031122001221233001003002221233001003002122002122122330010040031220021220012326335738002004240024646002002460044660040040029111cb512161ccb0652d7e9a0b540e4a3c808f73d6558a4bcabf374d858800048811c99a52f5556288f303625d437f9e057d1acbf8dd2f2a311820f7bf2220001" + "cborHex": "5911635911600100003332323233223322323233223232323232323232323232222225335325335323232325335333573400203a0382244002264a66a666ae6800407807444880084c07d24103505431003370e900100199b8748000008d55cf0011aab9d0013754006266014921034d30360053353330082232333573400203803666e3c008004c024004c02cd40048800884cc074894cd40044070884d4008894cd4c8ccd5cd00081081019b88001480004c01800c407c004406054cc8d4cc02d241034d303100323301e225335001101c22153353500a2235004223253353335734002048046264666ae68004094090cdc3802001081199b8f004002101f130040010013301d225335001101a22133501b350022200230040013500122222222222200c15332323232323235330114901034d30320032333573400204204066e1cc94cd4ccc04088c8ccd5cd00081201199b8f00200150073013008213002001148000c8cc88c88c008004c098894cd4004400c884d400888cc020004c01800cc00488008c004880048cc00488cdc0001000a400066e0000520021325335330124901034d3033003302422533500110222213500222325335333573400205004e2602c0042600e00866e3c00801cd54014880044c94cd54cc8d4cc0512401034d30340032333573400204804666e1c010cc0184488c88c008004c0a0894cd4004400c884cc018008c0100040044cc06494cd4ccc04c88c8ccd5cd00081381319b8f002001004001215335001130264901034d303800221350022253350031533532333573400205405266e1c005200210291302a491034d303800221302c491034d30380013025491034d303700001330252253350011022221335023350022200130040010011021153353301825333500115016215335301b00121330164901034d31320032333573400204c04a66e3c0040144c0952401034d31320021501733025225335001102222133502335002220023004001001133013491034d303500533532333573400204604466e3cc01088800c0084d4c01088800888d403c88c94cd4ccd5cd000813813099199ab9a0010280273370e008004204c66e3c010008408440844084cc01803802040814018c00488800554ccd4d54008880085404c854cd4cccccc05c00488c94c8c8c8c8c8cd4ccd5cd0030138130a99a9999aab9f0072502123232302433025002001357440126ae840200a484d4004894cd4c014008854cd4cccd55cf80112812919191814198148010009aba20043574200605a426a00244a66a66a01601800442a66a6666aae7c008940a48c8c8c0b0cc0b4008004d5d10021aba10030312135001225335302900221533533335573e0044a05a4646460600046ae88010d5d080181a90a99a9999998160009119299a999ab9a0010370361533533335573e0044a0624646460686606a0040026ae88010d5d080181c909a80091299a9999998190011119299a999ab9a00103d03c1533533335573e0044a06e4646460740046ae88010d5d080181f90a99a981a80090981c8008a81b8a81b0a81b19b8748000008940d0940d0940d0940d0854cd4cccd55cf8011281a91919181c0011aba20043574200607a42a66a603000242606e660720060022a06a2a0682a0662a0602a06066e1d20000022502e2502e2502e2502e21302f12222333300200f00b0070051300e4984c035261300c4984c02526130084984c01526130044984c00526130014988c94c8cd4ccd5cd0010148140a99a9999aab9f00925023232323026002357440166ae840280ac854cd4cccccc08800488c94cd4ccd5cd0008168160a99a9999aab9f0022502723232302a3302b002001357440086ae8400c0bc84d4004894cd4c09c008854cd4cccd55cf80112815919191817198178010009aba200435742006066426a00244a66a66a02202400442a66a6666aae7c008940bc8c8c8c0c8cc0cc008004d5d10021aba10030372135001225335301300221533533335573e0044a06646464606c6606e0040026ae88010d5d080181d909a80091299a980c00110a99a9999aab9f0022503723232303a002357440086ae8400c0fc854cd4c0d400484c0e448ccccc004040030020010008540dc540d8540d4540c8540c4540b8540b4540a8540a45409854098cdc3a40000044a0484a0484a0484a04842604a24444600200a260049309800a4c260029311929919a999ab9a00202b02a1533533335573e0164a04a4646460500046ae88034d5d080601690a99a9999998120009119299a999ab9a00102f02e1533533335573e0044a0524646460586605a0040026ae88010d5d0801818909a80091299a981480110a99a9999aab9f0022502d23232303033031002001357440086ae8400c0d484d400488c94cd4cc00405400c854cd4cccd55cf8019281911919181a9981b0010009aba200535742008074426a00244a66a602c00442a66a6666aae7c008940d88c8c8c0e4cc0e8008004d5d10021aba100303e2135001225335301b00221533533335573e0044a07446464607a6607c0040026ae88010d5d0801821109a80091299a980f80110a99a9999aab9f0022503e23232304133042002001357440086ae8400c11884d4004894cd4c0f8008854cd4cccd55cf80112821119191822998230010009aba200435742006094426a00244a66a608400442a66a6666aae7c008941188c8c8c124cc128008004d5d10021aba100304e21350012253353301904600221533533335573e0044a09446464609a0046ae88010d5d080182910a99a98168009098260919999999980081080e00c00a0080060040020010a8250a8248a8240a8228a8220a8208a8200a81e8a81e0a81c8a81c0a81a8a81a0a8188a81828098a8160a8158a8140a81419b87480000089409894098940989409884c09c48888c0100144c00926130014984c00526232533533357340020580562604c244440062a04a66e1d200600c3370e900200519b87480080208cccccc07800488c94cd4ccd5cd0008148140a99a9999aab9f00225023232323026002357440086ae8400c0ac854cd4c01800484c0940045408c5408854088cdc3a40000044a0404a0404a0404a040466666603a00244a0404a03e4a03e460400024a03e264464466666603e00244a0444a0420044a0424a0426050446666aae7c004801494cd4c010d5d080110a99a98021aba2003213024335027002001150221325022300335744004052603a0424a66a603400242603c0022a03866e1d2000002250192501925019250192153333500121501515014222213212333001004003002330071122322300200130292253350011003221330060023004001003215015130204901034d3039002150142335500122337000029001240002a66a660020100062603a9201034d313100221533500110022213021491034d3131002233020225335001101d22132533535003222235004223350022502223253353335734002054052260486604a00c00e2a04666e3c00403884cd40800040084004c010004d40048888888888880284c0280084064d4004880084060c8c8c8c94cd4ccd5cd00080e00d89919191991091980080180119191919299a999ab9a001023022132323232323232323232332333233333233323332222222222221233333333333300100d00c00b00a009008007006005004003002330032323232325335333573400206c06a26644246600200600460306ae84008c018d5d09aba200213037490103505431003370e90000011aab9e00235573a0026ea8004d5d08081aba100e330030013574201a464646464a66a666ae680040d40d04c8c8c8cccc888848cccc00401401000c008c8c8c8c94cd4ccd5cd00081e01d89991091980080180118101aba10023300501f357426ae880084c0f5240103505431003370e90000011aab9e00235573a0026ea8d5d080298049aba1003323232325335333573400207807622444006264a66a666ae680040f40f04c84888c004010dd71aba10031325335333573400207c07a264244460040086ae840104c0fd24103505431003370e900200219b874800800ccdc3a40000046aae78008d55ce8009baa3574200466002eb8d5d09aba200222323232325335333573400207a0782a06c264a66a666ae680040f80f44c0e0c01cd5d08018981fa4903505431003370e900000199b8748008008d55cf0011aab9d00137540026ae88004d5d10010981b24903505431003370e90000011aab9e00235573a0026ea8004c004d5d080598009aba100a3002300275a6ae84020d5d08039aba10063300175c6ae840148c88c008dd60009819111999aab9f0012030233502f30043574200460066ae880080ccd5d08019980090009aba10022322300237560026062446666aae7c00480bc8c8cd40bccc0b4dd71aab9d001300535573c00260086ae8800cd5d08010191aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10010981224903505431003370e90000011aab9e00235573a0026ea8d5d080299191919299a999ab9a001023022132122223003005375c6ae840084c94cd4ccd5cd00081201189909111180080298031aba10031325335333573400204a04826424444600400a60106ae840104c94cd4ccd5cd00081301289909111180200299191919299a999ab9a00102a029132122222223005008300d35742004264a66a666ae680040ac0a84c848888888c01c020c038d5d0801899299a999ab9a00102c02b133221222222233006009008300f357420086eb8d5d09aba20041325335333573400205a0582664424444444660040120106eb8d5d08029bae357426ae880144c94cd4ccd5cd0008170168999109111111198008048041bae3574200c6eb4d5d09aba20061325335333573400205e05c224444444008264a66a666ae680040c00bc44888888800c4c0c524103505431003370e900600419b874802801ccdc3a401000c66e1d20060053370e900200219b874800800ccdc3a40000046aae78008d55ce8009baa3574200a2604e920103505431003370e900300299b8748010010cdc3a400400666e1d200000235573c0046aae74004dd51aba13574400a464646464a66a666ae6800408c0884cc07cc8c8c8c94cd4ccd5cd00081381309bae357420042605092103505431003370e90000011aab9e00235573a0026ea8d5d08011bad357426ae880084c09124103505431003370e90000011aab9e00235573a0026ea80048c8c8c8c94cd4ccd5cd000811010899091180100198031aba10021325335333573400204604426466644424466600200a0080066eb4d5d08021bad357420026eb4d5d09aba20013574400626048920103505431003370e900100199b8748000008d55cf0011aab9d0013754002464646464a66a666ae680040840804c8488c00800cdd71aba10021325335333573400204404226424460020066eb8d5d080189811a48103505431003370e900100199b8748000008d55cf0011aab9d00137540022603a920103505431003370e90000011aab9e00235573a0026ea80045261301949103505435003015225335001101322135002223253353335734002032030264666ae68004068064cdc3801240042600e00866e3c00922010b48796472614865616456310022322300200130162253350011500e22135002225335330080020071301300113006003235001223233335002250022001250022500213263357389201024c68000152253350011011133573800402046a0024444444444440102601c921034d3132001300d491034d3039001300c491034d31300023223002001300e225335001100d2215335300500213004001100e2333333002001225005250042500425004230050012222223333333574800c4646600e6aae74004d55cf0009baa00723005375600e460086eb001c8c00cdd6803918011bae007010212230020031122001221233001003002221233001003002122002122122330010040031220021220012326335738002004240024646002002460044660040040029111cb512161ccb0652d7e9a0b540e4a3c808f73d6558a4bcabf374d858800048811cf3547e4acb813bd45148f4ca83517ef15e09aa3fce72b394b02af9b10001" } diff --git a/hydra-plutus/scripts/vHead.plutus b/hydra-plutus/scripts/vHead.plutus index c69219612ec..d2afb848606 100644 --- a/hydra-plutus/scripts/vHead.plutus +++ b/hydra-plutus/scripts/vHead.plutus @@ -1,5 +1,5 @@ { "type": "PlutusScriptV2", "description": "hydra-vHead-0.19.0-275-gc7af746e4", - "cborHex": "592dc7592dc401000032323322333222323322323232323233223232332232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323333222232323232323232323232323232323232323232323232323232323232323232323232323232323232322225335323232532333350043232323232215333333350091306e49884c1bd261306e498c8c8c8c8c8c8854cd4c069403454cd54cd4ccd5cd19b8735303c00f2222222220065002092010910110920113357389201034831330009101153355335333573466e25402cd402088888888801424404248044248044cd5ce249034833310009101153353350012533533300f500633333301750045003500c35303d010222222222004302e08d0135303d01022222222200300110930113357389210348333900092012253355335333573466e3cd4c0f804488888888800cc0bc238042500424c044ccc041401ccccccc0614014cdc0a80224004a01a6a607c022444444444008605e11c02002004212602212802266ae71241034834300009301153353302100f500315335533533232230020013095012253350011095012215335333573466e3c01400825c04258044258044c010005403140104248044cd5ce248103483338000910115335353535500d222222222222005220012253335002215335333573466e24005402825404250044254044cd5ce2490348333200094011505a1505a153355335333501d07c500933508b01500c50041092011335738921034833360009101153355335333573466e1cc1b14024c1b54028248042440454cd4ccd5cd19b8735303c00f222222222001500709201091011092011335738920103483334000910115335333573466e1cd4c0f003c888888888004cdc02803a8030490084880884900899ab9c49010348333500091011533533301c3308601500a5005330860135303c00f2222222220075006330860135303c00f2222222220095003153353302f5335304800f213535001220012222003108c0135533535500d22222222222200a13069026221002222200310920113357389201024834000910110910110910110910110910110910110910110910110910110910110910113500622222222200613500522222222200913500422222222200213500322222222200813500222222222200713500122222222200121306f498884d4028894cd4ccc06cd4008888888888888020d4014888888888024d4014888888888020c854cd54cd4ccd5cd19b8f302b3350170055001350062222222220040900108f011090011335738921034834310008f01153355335333573466e3cd401888888888800cc0acc8cd4060014004cd40d401540042400423c044240044cd5ce2481034834320008f011353535003222222222222005220022253335002215335333573466e24004d40248888888880042480424c04424c044cd5ce2490348343300092011506e1506e108f01108f0113500222222222222200a108e0121306f4984d4c0cc0188888888880084d4c0c80148888888880204d4c0c401088888888801454cd4d540048888888888880104c135262215335001100222130514984d4008880084c1a1262223232215323333333500a15001215002135009225332355335333573466e3cd4c0bc03088888004c088d5400488800c23c0423804423c044cd5ce249034831370008e01153355335333573466e1d200035302f00c2222200208f0108e01108f0113357389201034832300008e0115335333019330830135302f00c22222004009330830135302f00c2222200300a330830135302f00c222220050081533553353303553353500322222222222200a108901221306f0013232333077079002305600135004222222222222009355001222001108f011335738921034831390008e01153355335330280085335304500c213535001220012222003108901108f011335738921034831360008e01153355335333573466e1cd54004888008c1b802423c0423804423c044cd5ce249034831380008e01153353301e00c00813017003108e01108e01108e01108e01108e01108e01130063500222222222222200c108d01215002215002221500321500215333333350091350082253353330193500222222222222200800600732153353301d00b0071533533078302150013029335015306b50013500322222222222200a108e011335738921034831350008d01108d01133004087013500222222222222200c108c0121306f4984c1b92621306f49884c1bd26221307049884c1bd26308b012232253350011003221350022253353303900a0011330083006304b001003133008007003308d012253350011003221335088010023004001308a01225335001133304a084014800021004884c8d400c88d400c8c8894cd4cc118d40148888010d4d4c120040880048888010401c54cd4cc0ec0300144ccc14cc00cc134014cdc02400400400226660a60080046660f20f60026a00a444400661240244a66a002200644266a11a02004600800260080026464646464646464464642a6666666a01c260e6931919191910a99a980ea8080a99aa99a999ab9a3371266e04d4d4d5404088888888888801488004894ccd400884004541e4541e4d4d4d5404088888888888801488008894ccd400884004541e0541e1401025404250044254044cd5ce249034832320009401153355335333573466e1cd4c0fc048888888888004c8d404c88d4d4d400888888888888801488004894ccd400884cdc00008030a83d0a83d280204a8084a00884a80899ab9c490103483233000940115335330240125003153355335333573466e1cd4c0fc048888888888019400825404250044254044cd5ce248103483133000940115335533333350012153355335333573466e254041200009501096011333012500633333301a50045003501035304001322222222200430310900130310900100110950110960113357389201034834380009501153355335333573466e1d20005002095010940115335333573466e1d2000500f09501094011333573466e3cd4c0fc048888888888010d40208888800425404250044250044250044254044cd5ce2481034832380009401215335333012500633333301a500450035010353040013222222222004303109001500f001109601133573892010348323900095012215335333013500733333301b5005500450113530410142222222220040013032091010021097011335738920103483239000960122153355335330810150103032091011333013500733333301b500533702a008900128089a982080a111111111002181904880800801084b00884b80899ab9c490103483330000960121533553353308001500f3031090011333012500633333301a500433702a006900128081a98200099111111110022807981884800800884a80884b00899ab9c4901034833300009501153355335533535303f0122222222220021095012210960110950113357389201034832360009401153355335330325335304b012213535001220012222003108f0135533535501022222222222200a1306c0292210022222003109501133573892010248340009401133301f330890135303f0122222222220085005330890135303f0122222222220075004330890135303f0122222222220095003109401109401109401109401109401109401109401109401135006222220021350052222200513500422222003135003222220041307349884c1d126323221533533301d33087013500622222004500a330870135006222220033530330102222200333087015003500932153355335333573466e1cd4c0d004488888008cdc024004a0061280212602212802266ae71240103483231000930115335333010500b333333018500a50033500222200235303401122222001302f08e01302f5001350022220031533553353303a5335304a011213535001220012222003108e0133307a07c355335500c1306b0282210022222003307950011094011335738920102483400093011330230115004109301109301109301133501a350012220015335500b1306a491035054390022100110920113500422222002135003222220052213075498c88c8c84d4044894cd4ccc080cc22804d402488888011402ccc22804d40248888800cd4c0d804c8888800ccc2280540214028c854cd54cd4ccd5cd19b8735303701422222002337009001280384b8084b00884b80899ab9c49010348323100096011533553353303433307d07f533530083087013500322222222222200c210011326335738921034834370007b353550012200122220033553353500322222222222200a1306e02b2210022222003109701133573892102483400096011533533026014500915335333013500c33333301b500b50073500622200235303701422222001302a533532333305705a0565053001305b355001220012135001222001109101303209101350062220031533530043088013500322222222222200c1097011335738920103483435000960110960110960110960110960115335323235004222222222222300d00c3099012253350011508b01221350022253353305400200713090010041300600350042100113263357389201034834360007a10950130950122533500110940122153353304e50050021097011300400113500122200113500322222002309101225335001150830122153353302c500500213086010021300400113500122222005135302c00922222005135302b00822222004135302a00722222005135302900622222004135350052200222222222222200a13530310042222222220031353030003222222222005135002220022232253355335333573466e1cc034010c0380042200421c044c008cd5402c010004421c044220044cd5ce24810348313200087013088012253350011088012215335350022233500722222223335734666e54024cdc51bb3375200e66e28dd99ba8006337146eccdd400299b8a37666ea4010cdc51bb337520066eccdd4801000849808490080089802000884480991919299a999ab9a3370e90000010430084280899910919800801801191919299a999ab9a3370e9000001044808440089919191919191919191919999999999991111111111109199999999999800806806005805004804003803002802001801198358301aba100b3306b06035742014660d60c66ae84024ccc19dd728331aba100833306775ca0cc6ae8401ccc1ac17cd5d08031998338323ad3574200a646464a66a666ae68cdc3a400000412c0212a02266442466002006004646464a66a666ae68cdc3a40000041320213002266442466002006004660c6eb4d5d080098311aba135744002260e00de6aae78008d55ce8009baa35742002646464a66a666ae68cdc3a40000041320213002266442466002006004660c6eb4d5d080098311aba135744002260e00de6aae78008d55ce8009baa357426ae880044c1b41b0d55cf0011aab9d00137546ae84010cc1add71aba100333306705e05b357420046660ceeb816cd5d080098311aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10008983002f9aab9e00235573a0026ea8d5d080098289aba135744002260ba0b86aae78008d55ce8009baa0033232325335333573466e1d2000002085010840111222222200515335333573466e1d200200208501084011321222222230010083232325335333573466e1d20000020880108701132333222123330010040030023306175c6ae84008dd69aba10013057357426ae88004d5d10008982f82f1aab9e00235573a0026ea8d5d08008a99a999ab9a3370e90020010428084200899091111111801804191919299a999ab9a3370e900000104400843808991999110919980080200180119830bae357420046eb4d5d08009bad357426ae88004d5d10008982f82f1aab9e00235573a0026ea8d5d08008a99a999ab9a3370e90030010428084200899091111111803004191919299a999ab9a3370e90000010440084380889111110028a99a999ab9a3370e9001001044008438089909111111803003998303ae357420022a66a666ae68cdc3a40080041100210e022642444444600800e660c0eb8d5d08008a99a999ab9a3370e9003001044008438089991091111119801004003998303ae357420026eb8d5d09aba200115335333573466e1d20080020880108701133221222222330030080073306075c6ae84004dd71aba1357440022a66a666ae68cdc3a40140041100210e022642444444600200e660c0eb8d5d08008982f82f1aab9e00235573a0026ea8d5d08008a99a999ab9a3370e90040010428084200899091111111802004191919299a999ab9a3370e900000104400843808990911801001998303ae357420022a66a666ae68cdc3a40040041100210e022664424466002008006660c0eb8d5d08009bae357426ae880044c17c178d55cf0011aab9d00137546ae8400454cd4ccd5cd19b8748028008214042100444888888801c54cd4ccd5cd19b874803000821404210044cc8848888888cc008024020dd69aba1001375a6ae84d5d10008982e02d9aab9e00235573a0026ea800cc8c8c94cd4ccd5cd19b87480000082100420c044c8c8cccc0ccc16cd5d08019982f02f9aba1002375c6ae84004c150d5d09aba2001357440026ae8800454cd4ccd5cd19b87480080082100420c044c0c0c8c8c94cd4ccd5cd19b874800000821c04218044c8c8c8ccccc0ecdd71aba1004330620633574200660be6ae84008dd69aba1001375c6ae84d5d10009aba2001357440026ae880044c178174d55cf0011aab9d00137546ae8400454cd4ccd5cd19b87480100082100420c044c0ccc8c8c94cd4ccd5cd19b874800000821c04218044c8c8c8c8c8c8c8ccccccccc0f8dd71aba1008330660673574200e60c66ae84018dd69aba1005375a6ae84010dd71aba1003375c6ae84008cc199d71aba1001375a6ae84d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae880044c178174d55cf0011aab9d00137546ae8400454cd4ccd5cd19b87480180082100420c0440c84c16c168d55cf0011aab9d00137540062048260b092103505435003307f2211225335002107b2215335003107d22133507e3307900400233553008120010030011200122222212333333001007006005004003002307d225335001148000884cdc024004600800260f844a66a0022900011099b8048008c010004cc1ec884894cd4ccd5cd19b89002480001f41f041dc54cd400441dc884cd41e0008cd4c01848004cdc0802240040022400246a002444444444444a66a601c010210a02266ae712401035530310008401307922533500110792232135003223003001307d2253350011300600322135002225335333573466e1d200000108101080011300600310800122235003223500422350052253355335333500a0690060051533533033004003133069002001107e107e107f133573892010248320007e33077221222533500215335001107a22107b2215335003107b22153353300700400213335300912001007003001107d12001222323307a2253350011300348000884d4008894cd4ccd5cd19b8f00200907e07d130073370201c60180022600c0060084a66a666ae68cdc380099b8048008c0140081e01dc41e04cd5ce248103483134000773075225335001148000884cdc024004600800260e844a66a00220084426a0044466e00004c01800c88c8d400c894cd4c01cd40088888888888880104c98cd5ce2490248360005a232215335001153353002300b30063500522222222222200c10791335738921024835000782213263357389210248370005f30792253350011078221533533065005002107b130040013075225335001106f221350022232323307d2253350011003221335078002300400100230070043302200735001222200348000c1c4894cd400441ac884cd41b0008c010004c1c0894cd400441a8884cd41ac008c0100048dc9180318019832800a4810350543800306d2253350011300230030672215335001100222130063007005306c225335001106622153350011003221335069330070040023006001306b222533500210012215335003100432221533353306c00500215003133506a0023300800700115003133506700233005001003306a225335001100e221350022233714002600c0064644600400260d444a66a00220d24426a00444a66a666ae68cdc78010038370368980400089803001983411299a80088339109a80111299a999ab9a3371e91010b48796472614865616456310000206c06b1333573466e1d200200106c06b1300600323724600400260cc44a66a002201444266e28dd99a801111119ba548000cd5d01a8021119ba548000cd5d0180780119aba033010233500123374a900019aba03011001376202644466e9520023357406ea000ccd5d01ba80023357406ea0004dd880a8009bb1011335740666016ea5402800ccd5d02999a801099ba548000dd88079099ba548010cd5d00009bb1010213374a900119aba037520026ec4040cd5d0198073a9001376201e600800244666ae68cdc79bb3333004752a0060046eccccc011d4a801800832832099800ba923750002446446e98c008004c19488cd40052f5bded8c0446a0044466ae80cdd8180400118038009803001991299a9806980a00090a9999a80090980224c2600693111109803a4c420022600493119319ab9c490102483300045233500123374a900019aba037520026ec40108cdd2a400466ae80dd48009bb1004225335001213374a900019aba030030013762008266e9520023762006932441003305d221225335333573466e24009200005f05e100115335001105922133530061200133702008900100089000991119999801823918028009998018239199ab9a3370e900000082f02e80880100091191911911198018010009830911299a80109802800910a99a801898040021109a80211191a80291299a998088028010a99a9980680200089980600400308350a99a9808002099806004005099801a99a98080008832899a8320038328031835111299a80088351109a80111299a980a0008998038030018a99a9980a8048010a99a99808804000899808006199838911299a80108009109980280099a836801001803001883709980399a834002003001982f91299a800882f9109a80111299a9804000898030018831182f11299a800882f1109a80111299a9803800898030018830982d91299a800882d9109a80111299a999ab9a3370e900000082f82f09803001882f11199ab9a3370e90011809998018011a800911100182d02c9191299aa99a98010009098270008a826109982e91299a800882b91099299a9a80191299a999ab9a3370e90010008310308982a8010a82a1099a82d00080108009802000800882a182d11299a8008a8261109a80111299a999ab9a3371e00400e0bc0ba260a20022600c006644a66a6006601400242a6666a002420022600693111109803a4c426008930980124c464c66ae7124010248330003b32233333301a00122532335333573466e1d200000305a0591533533335573e0044a09a4609c6609e6ae8400cd5d100181f109a80091299a980400110a99a9999aab9f002250512305233053357420066ae8800c10884d4004894cd4cc074088008854cd4cccd55cf8011282a9182b1982b9aba10033574400608c426a00244a66a604e00442a66a6666aae7c008941648c8c8c170008d5d10021aba100304a215335302400121305b333301500b0070030011300e4984c035261300c4984c02526130084984c01526130044984c0052613001498c894cd4ccd5cd19b874800801016c16854cd4cccd55cf801928271191918288011aba20053574200807e42a66a66666603e00244a66a666ae68cdc3a40000040bc0ba2a66a6666aae7c004941448c148cc14cd5d08011aba20020422135001225335302300221533533335573e0044a0aa460ac660ae6ae8400cd5d1001823109a80091299a9981081300110a99a9999aab9f002250592305a3305b357420066ae8800c12884d4004894cd4c050008854cd4cccd55cf8011282e9182f1982f9aba10033574400609c426a00244a66a605600442a66a6666aae7c008941848c8c8c190008d5d10021aba100305221533530310012130633333302100f00b00700300115061150601505f1505c1505b1505815057150541505315050150502504f2504f2504f2504f2130503009001130034984c0092613002498c894cd4ccd5cd19b874801001016c16854cd4cccd55cf801928271191918288011aba20053574200807e42a66a66666603e00244a66a666ae68cdc3a40000040bc0ba2a66a6666aae7c004941448c148cc14cd5d08011aba20020422135001225335302300221533533335573e0044a0aa460ac660ae6ae8400cd5d1001823109a80091299a9981081300110a99a9999aab9f002250592305a3305b357420066ae8800c12884d4004894cd4c050008854cd4cccd55cf8011282e9182f1982f9aba10033574400609c426a00244a66a605600442a66a6666aae7c008941848c188cc18cd5d08019aba20030522135001225335302f00221533533335573e0044a0ca460cc660ce6ae8400cd5d100182b109a80091299a981b80110a99a9999aab9f002250692306a3306b357420066ae8800c16884d4004894cd4c0ec008854cd4cccd55cf8011283691837198379aba1003357440060bc426a00244a66a6607207e00442a66a6666aae7c008941c48c8c8c1d0008d5d10021aba1003062215335303d00121307333333333303001f01b01701300f00b00700300115071150701506f1506c1506b15068150671506415063150601505f1505c1505b1505815057150541505315050150502504f2504f2504f2504f213050300c001130034984c009261300249894cd4ccd5cd19b874801800c1681644c13402054130941289412894128941288cccccc064004894cd4ccd5cd19b874800000816015c54cd4cccd55cf800928259191918270011aba20033574200407842a66a602e00242609a0022a0962a0942a0944a0924a0924a0924a092424444600800a24444006444424444666600401000e00c00a424444600200a4444444442466666666600201401201000e00c00a00800600444444246666600200c00a008006004644a66a6a6a002440044444444444440142600493110a99a998029a80111110021a9a98038019100091110020980b0010980224c464c66ae7124010348313100033223500222350032232335005233500425335333573466e3c0080041581545400c415481548cd4010815494cd4ccd5cd19b8f002001056055150031055153350032153350022133500223350022335002233500223304300200120582335002205823304300200122205822233500420582225335333573466e1c01800c16c16854cd4ccd5cd19b8700500205b05a13300f004001105a105a10531533500121053105322333573466e1c00800413813494cd4c008004840044c98cd5ce24810248380003023500122350022222222222223333500d20122012201223305c2253350011504e2213500222533533017002007130530041300600300d22350022235003225335333573466e3c01000813c1384ccd5cd19b8700300104f04e104e503a3049225335001148000884cdc02400460080024a66a64666600e012a0060140026016002426a002444004208226002466666601200244a66a666ae68cdc3a400000409008e2a66a6666aae7c004940ec8c0f0cc0f4d5d08011aba200202c2135001225335300800221533533335573e0044a07e4646460840046ae88010d5d080181810a99a980780090982089198008020010a81f8a81f0a81e8a81d0a81d1281c9281c9281c9281c919119999980500091281d9281d0011281d1281d1823911999aab9f0012303b0422533530043574200442a66a60086ae8800c84c0f4cd410c008004540ec4c940ecc00cd5d1001015919999980380091299a999ab9a3370e90000010230228a99a9999aab9f001250392303a3303b357420046ae880080a884d4004894cd4cccccc030008894cd4ccd5cd19b874800000812c12854cd4cccd55cf8009281f1191918208011aba20033574200405e42a66a601c0024260800022a07c2a07a2a07a4a0784a0784a0784a07842a66a6666aae7c008940f48c8c8c100008d5d10021aba100302e215335300900121303f3304d0030011503d1503c1503b1503815038250372503725037250372333333006001225037250362503623037001250362222333333008001225335333573466e1d20000020470461533533335573e0024a07446076660786ae84008d5d1001015909a80091299a980480110a99a9999aab9f0022503e2303f33040357420066ae8800c0bc84d4004894cd4c030008854cd4cccd55cf801128211191918228011aba20043574200606642a66a601a00242608866602200e0060022a0842a0822a0802a07a2a0782a0722a0724a0704a0704a0704a070444246660020080060044a66a60040024260680022a064466666600400244a0664a0644a0644a064460660024444446666666ae900188c8cc01cd55ce8009aab9e001375400e4600a6eac01c8c010dd6003918019bad00723002375c00e04e4a666a6a0024444004264c66ae7124010248390002121001213263357389210348313000022303d22533500110372213350383500222330350023302823370490008008009802000899319ab9c4901034833330001e2326335738921034833370001e200123232325335333573466e1d200000203b03a103a15335333573466e1d200200203b03a103b1301201135573c0046aae74004dd500091191919299a999ab9a3370e900000101d81d089110010a99a999ab9a3370e900100101d81d0990911180180218029aba100115335333573466e1d200400203b03a112220011301201135573c0046aae74004dd50009191919299a999ab9a3370e900000101c81c0990911118018029bae357420022a66a666ae68cdc3a400400407207026424444600200a600e6ae8400454cd4ccd5cd19b87480100080e40e04c848888c008014c028d5d08008a99a999ab9a3370e900300101c81c09909111180200298029aba10011301000f35573c0046aae74004dd50009191919299a999ab9a3370e900000101c01b89909111111180280418049aba100115335333573466e1d20020020380371321222222230070083009357420022a66a666ae68cdc3a400800407006e26644244444446600c01201060126ae84004dd71aba1357440022a66a666ae68cdc3a400c00407006e2664424444444660040120106eb8d5d08009bae357426ae8800454cd4ccd5cd19b87480200080e00dc4cc8848888888cc004024020dd71aba1001375a6ae84d5d10008a99a999ab9a3370e900500101c01b8891111110020a99a999ab9a3370e900600101c01b889111111001898078071aab9e00235573a0026ea80048c8c8c94cd4ccd5cd19b87480000080dc0d84cc8848cc00400c008c014d5d080098039aba1357440022601c01a6aae78008d55ce8009baa00123232325335333573466e1d20000020360351330373005357420026eb4d5d09aba20011300d00c35573c0046aae74004dd50009191919299a999ab9a3370e900000101a81a09bae35742002260180166aae78008d55ce8009baa0013223232325335333573466e1d200000203503413232333322221233330010050040030023232325335333573466e1d200000203a039133221233001003002300c35742002660140166ae84d5d1000898088081aab9e00235573a0026ea8d5d0801999805bae500a35742004646464a66a666ae68cdc3a4000004074072224440062a66a666ae68cdc3a4004004074072264244460020086eb8d5d08008a99a999ab9a3370e900200101d01c899091118010021aba10011301101035573c0046aae74004dd51aba10013300775c6ae84d5d10009aba200135744002260180166aae78008d55ce8009baa001223232325335333573466e1d20020020350341502715335333573466e1d200000203503413028300535742002260180166aae78008d55ce8009baa00123232325335333573466e1d200000203303213212230020033005357420022a66a666ae68cdc3a400400406606426466644424466600200a0080066eb4d5d08011bad357420026eb4d5d09aba200135744002260140126aae78008d55ce8009baa00123232325335333573466e1d20000020320311321223002003375c6ae8400454cd4ccd5cd19b87480080080c80c44c8488c00400cdd71aba10011300900835573c0046aae74004dd5000899800bae75a4464460046eac004c0c088cccd55cf800901591919a8159981318031aab9d001300535573c00260086ae8800cd5d080100a1191919299a999ab9a3370e900000101781709bad357420022600c00a6aae78008d55ce8009baa0014910350543100232633573800201c464460046eb0004c0ac88cccd55cf8009013119a81298021aba100230033574400401e46eb8004c0a0894cd4004520002213370090011802000981391299a8008a400044266e0120023004001132633573892103483434000083025225335001148000884cdc0240046008002604844a66a002203c44266a0044444660200240066008002604644a66a0022900011099b8048008c0100044c98cd5ce24810348323700004132633573892103483235000031326335738921034832340000223263357389210248310000212001301d225335001101722133500222223300900b003300400123222300330073335009008002001301d225335001101722133501835002223301500233008233350012330094800000488cc0280080048cc0240052000001300400123223002001301c2253350011016221335017350022233014002300700130040012233700004002603244a66a002202644266a0286a0044466022004666a0024601400244666a01401200400246016002600800244666ae68cdc780100080c00b89911119191980e91299a800880191099a80c0011802000980100218029980e11299a800880b11099299a9a80191911801005981111299a80088111109a80111299a99808001003881289803001899a80c00180088009802000801180d91299a800880a91099a80b1a80111191980a0019800804181091299a80089aa8078019109a80111299a998078010040891119801005002098030019802000980b91299a800880891099a8091a801111980780118050009802000980b11299a800880811099a8089a801111980700118048009802000980a91299a800880791099a8081a80111198068011aa803800980200090911180180208909111800802180911299a800880611099a8069a801111a80091110019802000980891299a800880591099a8061a8011100118020009091180100188910009109198008018011a8019110009a8011110011a800911001999180080091091919980111801111180180211801111180100211801111180080211a998020020019a801800891111998021299a800899a803003803910a99a800899a804001804910a99199a998068028018a800899980400199a8058028060010a8008999803001119a805802800800911299a800899a80419a804001801180300499110a999a998068030010a801899980400119a8058030028008a801899a80419a804001801180300091129919a80109800a4c442a64666a6601c00e0062a00226008930a80089998038011180319a806003800800919a804980199a80480200518038010910010910911980080200199111a801111a801111a802911a801112999a998058030010a99a999ab9a3370e00a00202001e201c2a66a666ae68cdc48028008080078806080689980580300109980580300111299a999ab9a3371e00400200e00c200a2a66a666ae68cdc88010008038030801880209110018911001091100089100109100091091980080180111918008009180111980100100081" + "cborHex": "592e2a592e2701000032323322333222323322323232323233223232332232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323333222232323232323232323232323232323232323232323232323232323232323232323232323232323232322225335323232532333350043232323232215333333350091306e49884c1bd261306e498c8c8c8c8c8c8854cd4c069403454cd54cd4ccd5cd19b8735303c00f2222222220065002092010910110920113357389201034831330009101153355335333573466e25402cd402088888888801424404248044248044cd5ce2490348333100091011533533350012533533300f500633333301750045003500c35303d010222222222004302e08d0135303d010222222222003001109301133573892010348333900092012533533300f5006333333017500433702a006900128061a981e8081111111110021817046809a981e808111111111001800884980899ab9c4910348343900092012253355335333573466e3cd4c0f804488888888800cc0bc238042500424c044ccc041401ccccccc0614014cdc0a80224004a01a6a607c022444444444008605e11c02002004212602212802266ae71241034834300009301153353302100f500315335533533232230020013095012253350011095012215335333573466e3c01400825c04258044258044c010005403140104248044cd5ce248103483338000910115335353535500d222222222222005220012253335002215335333573466e24005402825404250044254044cd5ce2490348333200094011505a1505a153355335333501d07c500933508b01500c50041092011335738921034833360009101153355335333573466e1cc1b14024c1b54028248042440454cd4ccd5cd19b8735303c00f222222222001500709201091011092011335738920103483334000910115335333573466e1cd4c0f003c888888888004cdc02803a8030490084880884900899ab9c49010348333500091011533533301c3308601500a5005330860135303c00f2222222220075006330860135303c00f2222222220095003153353302f5335304800f213535001220012222003108c0135533535500d22222222222200a13069026221002222200310920113357389201024834000910110910110910110910110910110910110910110910110910110910110910113500622222222200613500522222222200913500422222222200213500322222222200813500222222222200713500122222222200121306f498884d4028894cd4ccc06cd4008888888888888020d4014888888888024d4014888888888020c854cd54cd4ccd5cd19b8f302b3350170055001350062222222220040900108f011090011335738921034834310008f01153355335333573466e3cd401888888888800cc0acc8cd4060014004cd40d401540042400423c044240044cd5ce2481034834320008f011353535003222222222222005220022253335002215335333573466e24004d40248888888880042480424c04424c044cd5ce2490348343300092011506e1506e108f01108f0113500222222222222200a108e0121306f4984d4c0cc0188888888880084d4c0c80148888888880204d4c0c401088888888801454cd4d540048888888888880104c135262215335001100222130514984d4008880084c1a1262223232215323333333500a15001215002135009225332355335333573466e3cd4c0bc03088888004c088d5400488800c23c0423804423c044cd5ce249034831370008e01153355335333573466e1d200035302f00c2222200208f0108e01108f0113357389201034832300008e0115335333019330830135302f00c22222004009330830135302f00c2222200300a330830135302f00c222220050081533553353303553353500322222222222200a108901221306f0013232333077079002305600135004222222222222009355001222001108f011335738921034831390008e01153355335330280085335304500c213535001220012222003108901108f011335738921034831360008e01153355335333573466e1cd54004888008c1b802423c0423804423c044cd5ce249034831380008e01153353301e00c00813017003108e01108e01108e01108e01108e01108e01130063500222222222222200c108d01215002215002221500321500215333333350091350082253353330193500222222222222200800600732153353301d00b0071533533078302150013029335015306b50013500322222222222200a108e011335738921034831350008d01108d01133004087013500222222222222200c108c0121306f4984c1b92621306f49884c1bd26221307049884c1bd26308b012232253350011003221350022253353303900a0011330083006304b001003133008007003308d012253350011003221335088010023004001308a01225335001133304a084014800021004884c8d400c88d400c8c8894cd4cc118d40148888010d4d4c120040880048888010401c54cd4cc0ec0300144ccc14cc00cc134014cdc02400400400226660a60080046660f20f60026a00a444400661240244a66a002200644266a11a02004600800260080026464646464646464464642a6666666a01c260e6931919191910a99a980ea8080a99aa99a999ab9a3371266e04d4d4d5404088888888888801488004894ccd400884004541e4541e4d4d4d5404088888888888801488008894ccd400884004541e0541e1401025404250044254044cd5ce249034832320009401153355335333573466e1cd4c0fc048888888888004c8d404c88d4d4d400888888888888801488004894ccd400884cdc00008030a83d0a83d280204a8084a00884a80899ab9c490103483233000940115335330240125003153355335333573466e1cd4c0fc048888888888019400825404250044254044cd5ce248103483133000940115335533333350012153355335333573466e254041200009501096011333012500633333301a50045003501035304001322222222200430310900130310900100110950110960113357389201034834380009501153355335333573466e1d20005002095010940115335333573466e1d2000500f09501094011333573466e3cd4c0fc048888888888010d40208888800425404250044250044250044254044cd5ce2481034832380009401215335333012500633333301a500450035010353040013222222222004303109001500f001109601133573892010348323900095012215335333013500733333301b5005500450113530410142222222220040013032091010021097011335738920103483239000960122153355335330810150103032091011333013500733333301b500533702a008900128089a982080a111111111002181904880800801084b00884b80899ab9c490103483330000960121533553353308001500f3031090011333012500633333301a500433702a006900128081a98200099111111110022807981884800800884a80884b00899ab9c4901034833300009501153355335533535303f0122222222220021095012210960110950113357389201034832360009401153355335330325335304b012213535001220012222003108f0135533535501022222222222200a1306c0292210022222003109501133573892010248340009401133301f330890135303f0122222222220085005330890135303f0122222222220075004330890135303f0122222222220095003109401109401109401109401109401109401109401109401135006222220021350052222200513500422222003135003222220041307349884c1d126323221533533301d33087013500622222004500a330870135006222220033530330102222200333087015003500932153355335333573466e1cd4c0d004488888008cdc024004a0061280212602212802266ae71240103483231000930115335333010500b333333018500a50033500222200235303401122222001302f08e01302f5001350022220031533553353303a5335304a011213535001220012222003108e0133307a07c355335500c1306b0282210022222003307950011094011335738920102483400093011330230115004109301109301109301133501a350012220015335500b1306a491035054390022100110920113500422222002135003222220052213075498c88c8c84d4044894cd4ccc080cc22804d402488888011402ccc22804d40248888800cd4c0d804c8888800ccc2280540214028c854cd54cd4ccd5cd19b8735303701422222002337009001280384b8084b00884b80899ab9c49010348323100096011533553353303433307d07f533530083087013500322222222222200c210011326335738921034834370007b353550012200122220033553353500322222222222200a1306e02b2210022222003109701133573892102483400096011533533026014500915335333013500c33333301b500b50073500622200235303701422222001302a533532333305705a0565053001305b355001220012135001222001109101303209101350062220031533530043088013500322222222222200c1097011335738920103483435000960110960110960110960110960115335323235004222222222222300d00c3099012253350011508b01221350022253353305400200713090010041300600350042100113263357389201034834360007a10950130950122533500110940122153353304e50050021097011300400113500122200113500322222002309101225335001150830122153353302c500500213086010021300400113500122222005135302c00922222005135302b00822222004135302a00722222005135302900622222004135350052200222222222222200a13530310042222222220031353030003222222222005135002220022232253355335333573466e1cc034010c0380042200421c044c008cd5402c010004421c044220044cd5ce24810348313200087013088012253350011088012215335350022233500722222223335734666e54024cdc51bb3375200e66e28dd99ba8006337146eccdd400299b8a37666ea4010cdc51bb337520066eccdd4801000849808490080089802000884480991919299a999ab9a3370e90000010430084280899910919800801801191919299a999ab9a3370e9000001044808440089919191919191919191919999999999991111111111109199999999999800806806005805004804003803002802001801198358301aba100b3306b06035742014660d60c66ae84024ccc19dd728331aba100833306775ca0cc6ae8401ccc1ac17cd5d08031998338323ad3574200a646464a66a666ae68cdc3a400000412c0212a02266442466002006004646464a66a666ae68cdc3a40000041320213002266442466002006004660c6eb4d5d080098311aba135744002260e00de6aae78008d55ce8009baa35742002646464a66a666ae68cdc3a40000041320213002266442466002006004660c6eb4d5d080098311aba135744002260e00de6aae78008d55ce8009baa357426ae880044c1b41b0d55cf0011aab9d00137546ae84010cc1add71aba100333306705e05b357420046660ceeb816cd5d080098311aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10008983002f9aab9e00235573a0026ea8d5d080098289aba135744002260ba0b86aae78008d55ce8009baa0033232325335333573466e1d2000002085010840111222222200515335333573466e1d200200208501084011321222222230010083232325335333573466e1d20000020880108701132333222123330010040030023306175c6ae84008dd69aba10013057357426ae88004d5d10008982f82f1aab9e00235573a0026ea8d5d08008a99a999ab9a3370e90020010428084200899091111111801804191919299a999ab9a3370e900000104400843808991999110919980080200180119830bae357420046eb4d5d08009bad357426ae88004d5d10008982f82f1aab9e00235573a0026ea8d5d08008a99a999ab9a3370e90030010428084200899091111111803004191919299a999ab9a3370e90000010440084380889111110028a99a999ab9a3370e9001001044008438089909111111803003998303ae357420022a66a666ae68cdc3a40080041100210e022642444444600800e660c0eb8d5d08008a99a999ab9a3370e9003001044008438089991091111119801004003998303ae357420026eb8d5d09aba200115335333573466e1d20080020880108701133221222222330030080073306075c6ae84004dd71aba1357440022a66a666ae68cdc3a40140041100210e022642444444600200e660c0eb8d5d08008982f82f1aab9e00235573a0026ea8d5d08008a99a999ab9a3370e90040010428084200899091111111802004191919299a999ab9a3370e9000001044008438089909111801802198303ae357420022a66a666ae68cdc3a40040041100210e022664424446600200a008660c0eb8d5d08009bae357426ae8800454cd4ccd5cd19b87480100082200421c044c84888c008010cc181d71aba10011305f05e35573c0046aae74004dd51aba100115335333573466e1d200a002085010840111222222200715335333573466e1d200c0020850108401133221222222233002009008375a6ae84004dd69aba135744002260b80b66aae78008d55ce8009baa0033232325335333573466e1d20000020840108301132323333033305b35742006660bc0be6ae84008dd71aba10013054357426ae88004d5d10009aba200115335333573466e1d20020020840108301130303232325335333573466e1d2000002087010860113232323333303b375c6ae84010cc18818cd5d0801982f9aba1002375a6ae84004dd71aba1357440026ae88004d5d10009aba20011305e05d35573c0046aae74004dd51aba100115335333573466e1d20040020840108301130333232325335333573466e1d2000002087010860113232323232323233333333303e375c6ae84020cc19819cd5d080398319aba1006375a6ae84014dd69aba1004375c6ae8400cdd71aba10023306675c6ae84004dd69aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba20011305e05d35573c0046aae74004dd51aba100115335333573466e1d2006002084010830110321305b05a35573c0046aae74004dd500188120982c248103505435003307f2211225335002107b2215335003107d22133507e3307900400233553008120010030011200122222212333333001007006005004003002307d225335001148000884cdc024004600800260f844a66a0022900011099b8048008c010004cc1ec884894cd4ccd5cd19b89002480001f41f041dc54cd400441dc884cd41e0008cd4c01848004cdc0802240040022400246a002444444444444a66a601c010210a02266ae712401035530310008401307922533500110792232135003223003001307d2253350011300600322135002225335333573466e1d200000108101080011300600310800122235003223500422350052253355335333500a0690060051533533033004003133069002001107e107e107f133573892010248320007e33077221222533500215335001107a22107b2215335003107b22153353300700400213335300912001007003001107d12001222323307a2253350011300348000884d4008894cd4ccd5cd19b8f00200907e07d130073370201c60180022600c0060084a66a666ae68cdc380099b8048008c0140081e01dc41e04cd5ce248103483134000773075225335001148000884cdc024004600800260e844a66a00220084426a0044466e00004c01800c88c8d400c894cd4c01cd40088888888888880104c98cd5ce2490248360005a232215335001153353002300b30063500522222222222200c10791335738921024835000782213263357389210248370005f30792253350011078221533533065005002107b130040013075225335001106f221350022232323307d2253350011003221335078002300400100230070043302200735001222200348000c1c4894cd400441ac884cd41b0008c010004c1c0894cd400441a8884cd41ac008c0100048dc9180318019832800a4810350543800306d2253350011300230030672215335001100222130063007005306c225335001106622153350011003221335069330070040023006001306b222533500210012215335003100432221533353306c00500215003133506a0023300800700115003133506700233005001003306a225335001100e221350022233714002600c0064644600400260d444a66a00220d24426a00444a66a666ae68cdc78010038370368980400089803001983411299a80088339109a80111299a999ab9a3371e91010b48796472614865616456310000206c06b1333573466e1d200200106c06b1300600323724600400260cc44a66a002201444266e28dd99a801111119ba548000cd5d01a8021119ba548000cd5d0180780119aba033010233500123374a900019aba03011001376202644466e9520023357406ea000ccd5d01ba80023357406ea0004dd880a8009bb1011335740666016ea5402800ccd5d02999a801099ba548000dd88079099ba548010cd5d00009bb1010213374a900119aba037520026ec4040cd5d0198073a9001376201e600800244666ae68cdc79bb3333004752a0060046eccccc011d4a801800832832099800ba923750002446446e98c008004c19488cd40052f5bded8c0446a0044466ae80cdd8180400118038009803001991299a9806980a00090a9999a80090980224c2600693111109803a4c420022600493119319ab9c490102483300045233500123374a900019aba037520026ec40108cdd2a400466ae80dd48009bb1004225335001213374a900019aba030030013762008266e9520023762006932441003305d221225335333573466e24009200005f05e100115335001105922133530061200133702008900100089000991119999801823918028009998018239199ab9a3370e900000082f02e80880100091191911911198018010009830911299a80109802800910a99a801898040021109a80211191a80291299a998088028010a99a9980680200089980600400308350a99a9808002099806004005099801a99a98080008832899a8320038328031835111299a80088351109a80111299a980a0008998038030018a99a9980a8048010a99a99808804000899808006199838911299a80108009109980280099a836801001803001883709980399a834002003001982f91299a800882f9109a80111299a9804000898030018831182f11299a800882f1109a80111299a9803800898030018830982d91299a800882d9109a80111299a999ab9a3370e900000082f82f09803001882f11199ab9a3370e90011809998018011a800911100182d02c9191299aa99a98010009098270008a826109982e91299a800882b91099299a9a80191299a999ab9a3370e90010008310308982a8010a82a1099a82d00080108009802000800882a182d11299a8008a8261109a80111299a999ab9a3371e00400e0bc0ba260a20022600c006644a66a6006601400242a6666a002420022600693111109803a4c426008930980124c464c66ae7124010248330003b32233333301a00122532335333573466e1d200000305a0591533533335573e0044a09a4609c6609e6ae8400cd5d100181f109a80091299a980400110a99a9999aab9f002250512305233053357420066ae8800c10884d4004894cd4cc074088008854cd4cccd55cf8011282a9182b1982b9aba10033574400608c426a00244a66a604e00442a66a6666aae7c008941648c8c8c170008d5d10021aba100304a215335302400121305b333301500b0070030011300e4984c035261300c4984c02526130084984c01526130044984c0052613001498c894cd4ccd5cd19b874800801016c16854cd4cccd55cf801928271191918288011aba20053574200807e42a66a66666603e00244a66a666ae68cdc3a40000040bc0ba2a66a6666aae7c004941448c148cc14cd5d08011aba20020422135001225335302300221533533335573e0044a0aa460ac660ae6ae8400cd5d1001823109a80091299a9981081300110a99a9999aab9f002250592305a3305b357420066ae8800c12884d4004894cd4c050008854cd4cccd55cf8011282e9182f1982f9aba10033574400609c426a00244a66a605600442a66a6666aae7c008941848c8c8c190008d5d10021aba100305221533530310012130633333302100f00b00700300115061150601505f1505c1505b1505815057150541505315050150502504f2504f2504f2504f2130503009001130034984c0092613002498c894cd4ccd5cd19b874801001016c16854cd4cccd55cf801928271191918288011aba20053574200807e42a66a66666603e00244a66a666ae68cdc3a40000040bc0ba2a66a6666aae7c004941448c148cc14cd5d08011aba20020422135001225335302300221533533335573e0044a0aa460ac660ae6ae8400cd5d1001823109a80091299a9981081300110a99a9999aab9f002250592305a3305b357420066ae8800c12884d4004894cd4c050008854cd4cccd55cf8011282e9182f1982f9aba10033574400609c426a00244a66a605600442a66a6666aae7c008941848c188cc18cd5d08019aba20030522135001225335302f00221533533335573e0044a0ca460cc660ce6ae8400cd5d100182b109a80091299a981b80110a99a9999aab9f002250692306a3306b357420066ae8800c16884d4004894cd4c0ec008854cd4cccd55cf8011283691837198379aba1003357440060bc426a00244a66a6607207e00442a66a6666aae7c008941c48c8c8c1d0008d5d10021aba1003062215335303d00121307333333333303001f01b01701300f00b00700300115071150701506f1506c1506b15068150671506415063150601505f1505c1505b1505815057150541505315050150502504f2504f2504f2504f213050300c001130034984c009261300249894cd4ccd5cd19b874801800c1681644c13402054130941289412894128941288cccccc064004894cd4ccd5cd19b874800000816015c54cd4cccd55cf800928259191918270011aba20033574200407842a66a602e00242609a0022a0962a0942a0944a0924a0924a0924a092424444600800a24444006444424444666600401000e00c00a424444600200a4444444442466666666600201401201000e00c00a00800600444444246666600200c00a008006004644a66a6a6a002440044444444444440142600493110a99a998029a80111110021a9a98038019100091110020980b0010980224c464c66ae7124010348313100033223500222350032232335005233500425335333573466e3c0080041581545400c415481548cd4010815494cd4ccd5cd19b8f002001056055150031055153350032153350022133500223350022335002233500223304300200120582335002205823304300200122205822233500420582225335333573466e1c01800c16c16854cd4ccd5cd19b8700500205b05a13300f004001105a105a10531533500121053105322333573466e1c00800413813494cd4c008004840044c98cd5ce24810248380003023500122350022222222222223333500d20122012201223305c2253350011504e2213500222533533017002007130530041300600300d22350022235003225335333573466e3c01000813c1384ccd5cd19b8700300104f04e104e503a3049225335001148000884cdc02400460080024a66a64666600e012a0060140026016002426a002444004208226002466666601200244a66a666ae68cdc3a400000409008e2a66a6666aae7c004940ec8c0f0cc0f4d5d08011aba200202c2135001225335300800221533533335573e0044a07e4646460840046ae88010d5d080181810a99a980780090982089198008020010a81f8a81f0a81e8a81d0a81d1281c9281c9281c9281c919119999980500091281d9281d0011281d1281d1823911999aab9f0012303b0422533530043574200442a66a60086ae8800c84c0f4cd410c008004540ec4c940ecc00cd5d1001015919999980380091299a999ab9a3370e90000010230228a99a9999aab9f001250392303a3303b357420046ae880080a884d4004894cd4cccccc030008894cd4ccd5cd19b874800000812c12854cd4cccd55cf8009281f1191918208011aba20033574200405e42a66a601c0024260800022a07c2a07a2a07a4a0784a0784a0784a07842a66a6666aae7c008940f48c8c8c100008d5d10021aba100302e215335300900121303f3304d0030011503d1503c1503b1503815038250372503725037250372333333006001225037250362503623037001250362222333333008001225335333573466e1d20000020470461533533335573e0024a07446076660786ae84008d5d1001015909a80091299a980480110a99a9999aab9f0022503e2303f33040357420066ae8800c0bc84d4004894cd4c030008854cd4cccd55cf801128211191918228011aba20043574200606642a66a601a00242608866602200e0060022a0842a0822a0802a07a2a0782a0722a0724a0704a0704a0704a070444246660020080060044a66a60040024260680022a064466666600400244a0664a0644a0644a064460660024444446666666ae900188c8cc01cd55ce8009aab9e001375400e4600a6eac01c8c010dd6003918019bad00723002375c00e04e4a666a6a0024444004264c66ae7124010248390002121001213263357389210348313000022303d22533500110372213350383500222330350023302823370490008008009802000899319ab9c4901034833330001e2326335738921034833370001e200123232325335333573466e1d200000203b03a103a15335333573466e1d200200203b03a103b1301201135573c0046aae74004dd500091191919299a999ab9a3370e900000101d81d089110010a99a999ab9a3370e900100101d81d0990911180180218029aba100115335333573466e1d200400203b03a112220011301201135573c0046aae74004dd50009191919299a999ab9a3370e900000101c81c0990911118018029bae357420022a66a666ae68cdc3a400400407207026424444600200a600e6ae8400454cd4ccd5cd19b87480100080e40e04c848888c008014c028d5d08008a99a999ab9a3370e900300101c81c09909111180200298029aba10011301000f35573c0046aae74004dd50009191919299a999ab9a3370e900000101c01b89909111111180280418049aba100115335333573466e1d20020020380371321222222230070083009357420022a66a666ae68cdc3a400800407006e26644244444446600c01201060126ae84004dd71aba1357440022a66a666ae68cdc3a400c00407006e2664424444444660040120106eb8d5d08009bae357426ae8800454cd4ccd5cd19b87480200080e00dc4cc8848888888cc004024020dd71aba1001375a6ae84d5d10008a99a999ab9a3370e900500101c01b8891111110020a99a999ab9a3370e900600101c01b889111111001898078071aab9e00235573a0026ea80048c8c8c94cd4ccd5cd19b87480000080dc0d84cc8848cc00400c008c014d5d080098039aba1357440022601c01a6aae78008d55ce8009baa00123232325335333573466e1d20000020360351330373005357420026eb4d5d09aba20011300d00c35573c0046aae74004dd50009191919299a999ab9a3370e900000101a81a09bae35742002260180166aae78008d55ce8009baa0013223232325335333573466e1d200000203503413232333322221233330010050040030023232325335333573466e1d200000203a039133221233001003002300c35742002660140166ae84d5d1000898088081aab9e00235573a0026ea8d5d0801999805bae500a35742004646464a66a666ae68cdc3a4000004074072224440062a66a666ae68cdc3a4004004074072264244460020086eb8d5d08008a99a999ab9a3370e900200101d01c899091118010021aba10011301101035573c0046aae74004dd51aba10013300775c6ae84d5d10009aba200135744002260180166aae78008d55ce8009baa001223232325335333573466e1d20020020350341502715335333573466e1d200000203503413028300535742002260180166aae78008d55ce8009baa00123232325335333573466e1d200000203303213212230020033005357420022a66a666ae68cdc3a400400406606426466644424466600200a0080066eb4d5d08011bad357420026eb4d5d09aba200135744002260140126aae78008d55ce8009baa00123232325335333573466e1d20000020320311321223002003375c6ae8400454cd4ccd5cd19b87480080080c80c44c8488c00400cdd71aba10011300900835573c0046aae74004dd5000899800bae75a4464460046eac004c0c088cccd55cf800901591919a8159981318031aab9d001300535573c00260086ae8800cd5d080100a1191919299a999ab9a3370e900000101781709bad357420022600c00a6aae78008d55ce8009baa0014910350543100232633573800201c464460046eb0004c0ac88cccd55cf8009013119a81298021aba100230033574400401e46eb8004c0a0894cd4004520002213370090011802000981391299a8008a400044266e0120023004001132633573892103483434000083025225335001148000884cdc0240046008002604844a66a002203c44266a0044444660200240066008002604644a66a0022900011099b8048008c0100044c98cd5ce24810348323700004132633573892103483235000031326335738921034832340000223263357389210248310000212001301d225335001101722133500222223300900b003300400123222300330073335009008002001301d225335001101722133501835002223301500233008233350012330094800000488cc0280080048cc0240052000001300400123223002001301c2253350011016221335017350022233014002300700130040012233700004002603244a66a002202644266a0286a0044466022004666a0024601400244666a01401200400246016002600800244666ae68cdc780100080c00b89911119191980e91299a800880191099a80c0011802000980100218029980e11299a800880b11099299a9a80191911801005981111299a80088111109a80111299a99808001003881289803001899a80c00180088009802000801180d91299a800880a91099a80b1a80111191980a0019800804181091299a80089aa8078019109a80111299a998078010040891119801005002098030019802000980b91299a800880891099a8091a801111980780118050009802000980b11299a800880811099a8089a801111980700118048009802000980a91299a800880791099a8081a80111198068011aa803800980200090911180180208909111800802180911299a800880611099a8069a801111a80091110019802000980891299a800880591099a8061a8011100118020009091180100188910009109198008018011a8019110009a8011110011a800911001999180080091091919980111801111180180211801111180100211801111180080211a998020020019a801800891111998021299a800899a803003803910a99a800899a804001804910a99199a998068028018a800899980400199a8058028060010a8008999803001119a805802800800911299a800899a80419a804001801180300499110a999a998068030010a801899980400119a8058030028008a801899a80419a804001801180300091129919a80109800a4c442a64666a6601c00e0062a00226008930a80089998038011180319a806003800800919a804980199a80480200518038010910010910911980080200199111a801111a801111a802911a801112999a998058030010a99a999ab9a3370e00a00202001e201c2a66a666ae68cdc48028008080078806080689980580300109980580300111299a999ab9a3371e00400200e00c200a2a66a666ae68cdc88010008038030801880209110018911001091100089100109100091091980080180111918008009180111980100100081" } diff --git a/hydra-plutus/src/Hydra/Contract/Head.hs b/hydra-plutus/src/Hydra/Contract/Head.hs index 7f09f74a006..7b7ea4e4e59 100644 --- a/hydra-plutus/src/Hydra/Contract/Head.hs +++ b/hydra-plutus/src/Hydra/Contract/Head.hs @@ -17,7 +17,20 @@ import Hydra.Contract.Commit (Commit (..)) import Hydra.Contract.Commit qualified as Commit import Hydra.Contract.Deposit qualified as Deposit import Hydra.Contract.HeadError (HeadError (..), errorCode) -import Hydra.Contract.HeadState (CloseRedeemer (..), ClosedDatum (..), ContestRedeemer (..), DecrementRedeemer (..), Hash, IncrementRedeemer (..), Input (..), OpenDatum (..), Signature, SnapshotNumber, SnapshotVersion, State (..)) +import Hydra.Contract.HeadState ( + CloseRedeemer (..), + ClosedDatum (..), + ContestRedeemer (..), + DecrementRedeemer (..), + Hash, + IncrementRedeemer (..), + Input (..), + OpenDatum (..), + Signature, + SnapshotNumber, + SnapshotVersion, + State (..), + ) import Hydra.Contract.Util (hasST, hashPreSerializedCommits, hashTxOuts, mustBurnAllHeadTokens, mustNotMintOrBurn, (===)) import Hydra.Data.ContestationPeriod (ContestationPeriod, addContestationPeriod, milliseconds) import Hydra.Data.Party (Party (vkey)) @@ -522,8 +535,8 @@ checkContest ctx closedDatum redeemer = parties (headId, version, snapshotNumber', utxoHash', emptyHash, deltaUTxOHash') signature - ContestOutdated{signature, alreadyDecommittedUTxOHash} -> - traceIfFalse $(errorCode FailedContestOutdated) $ + ContestUsedDec{signature, alreadyDecommittedUTxOHash} -> + traceIfFalse $(errorCode FailedContestUsedDec) $ deltaUTxOHash' == emptyHash && verifySnapshotSignature parties diff --git a/hydra-plutus/src/Hydra/Contract/HeadError.hs b/hydra-plutus/src/Hydra/Contract/HeadError.hs index 4498319c2c8..37b71bdb4e1 100644 --- a/hydra-plutus/src/Hydra/Contract/HeadError.hs +++ b/hydra-plutus/src/Hydra/Contract/HeadError.hs @@ -46,7 +46,7 @@ data HeadError | WrongNumberOfSigners | SignerAlreadyContested | FailedContestCurrent - | FailedContestOutdated + | FailedContestUsedDec | FanoutUTxOHashMismatch | LowerBoundBeforeContestationDeadline | FanoutNoLowerBoundDefined @@ -54,6 +54,7 @@ data HeadError | DepositNotSpent | DepositInputNotFound | HeadInputNotFound + | FailedContestUnusedDec instance ToErrorCode HeadError where toErrorCode = \case @@ -102,7 +103,7 @@ instance ToErrorCode HeadError where WrongNumberOfSigners -> "H37" SignerAlreadyContested -> "H38" FailedContestCurrent -> "H39" - FailedContestOutdated -> "H40" + FailedContestUsedDec -> "H40" -- Fanout FanoutUTxOHashMismatch -> "H41" FanoutUTxOToDecommitHashMismatch -> "H42" @@ -112,3 +113,4 @@ instance ToErrorCode HeadError where DepositInputNotFound -> "H46" HeadInputNotFound -> "H47" FailedCloseAny -> "H48" + FailedContestUnusedDec -> "H49" diff --git a/hydra-plutus/src/Hydra/Contract/HeadState.hs b/hydra-plutus/src/Hydra/Contract/HeadState.hs index 9dbb61c7a6d..15208781d80 100644 --- a/hydra-plutus/src/Hydra/Contract/HeadState.hs +++ b/hydra-plutus/src/Hydra/Contract/HeadState.hs @@ -120,7 +120,7 @@ data ContestRedeemer -- ^ Multi-signature of a snapshot ξ } | -- | Contesting snapshot refers to the previous state version - ContestOutdated + ContestUsedDec { signature :: [Signature] -- ^ Multi-signature of a snapshot ξ , alreadyDecommittedUTxOHash :: Hash diff --git a/hydra-tx/hydra-tx.cabal b/hydra-tx/hydra-tx.cabal index f0e842c32c1..0edc43b2d4a 100644 --- a/hydra-tx/hydra-tx.cabal +++ b/hydra-tx/hydra-tx.cabal @@ -161,6 +161,8 @@ test-suite tests Hydra.Tx.Contract.CollectCom Hydra.Tx.Contract.Commit Hydra.Tx.Contract.Contest.ContestCurrent + Hydra.Tx.Contract.Contest.ContestUsedDec + Hydra.Tx.Contract.Contest.Healthy Hydra.Tx.Contract.ContractSpec Hydra.Tx.Contract.Decrement Hydra.Tx.Contract.Deposit diff --git a/hydra-tx/src/Hydra/Tx/Contest.hs b/hydra-tx/src/Hydra/Tx/Contest.hs index 0c92eab4066..1cdcf32e08d 100644 --- a/hydra-tx/src/Hydra/Tx/Contest.hs +++ b/hydra-tx/src/Hydra/Tx/Contest.hs @@ -97,7 +97,7 @@ contestTx scriptRegistry vk headId contestationPeriod openVersion Snapshot{numbe } | otherwise = -- NOTE: This will only work for version == openVersion - 1 - Head.ContestOutdated + Head.ContestUsedDec { signature = toPlutusSignatures sig , alreadyDecommittedUTxOHash = toBuiltin $ hashUTxO @Tx $ fromMaybe mempty utxoToDecommit } diff --git a/hydra-tx/test/Hydra/Tx/Contract/Contest/ContestCurrent.hs b/hydra-tx/test/Hydra/Tx/Contract/Contest/ContestCurrent.hs index 27fe4a96802..1dc27b8951b 100644 --- a/hydra-tx/test/Hydra/Tx/Contract/Contest/ContestCurrent.hs +++ b/hydra-tx/test/Hydra/Tx/Contract/Contest/ContestCurrent.hs @@ -23,6 +23,23 @@ import Hydra.Plutus.Orphans () import Hydra.Tx (registryUTxO) import Hydra.Tx.Contest (ClosedThreadOutput (..), contestTx) import Hydra.Tx.ContestationPeriod (ContestationPeriod, fromChain) +import Hydra.Tx.Contract.Contest.Healthy ( + healthyCloseSnapshotVersion, + healthyClosedHeadTxIn, + healthyClosedHeadTxOut, + healthyClosedState, + healthyContestSnapshotNumber, + healthyContestUTxOHash, + healthyContestUTxOToDecommitHash, + healthyContestationDeadline, + healthyContesterVerificationKey, + healthyOnChainContestationPeriod, + healthyOnChainParties, + healthyParticipants, + healthyParties, + healthySignature, + healthyContestTx, + ) import Hydra.Tx.Crypto (HydraKey, MultiSignature, aggregate, sign, toPlutusSignatures) import Hydra.Tx.HeadId (mkHeadId) import Hydra.Tx.Init (mkHeadOutput) @@ -67,160 +84,6 @@ import Test.QuickCheck (arbitrarySizedNatural, elements, listOf, listOf1, oneof, import Test.QuickCheck.Gen (choose) import Test.QuickCheck.Instances () --- --- ContestTx --- - --- | Healthy contest tx where the contester is the first one to contest and --- correctly pushing out the deadline by the contestation period. -healthyContestTx :: (Tx, UTxO) -healthyContestTx = - (tx, lookupUTxO) - where - lookupUTxO = - UTxO.singleton (healthyClosedHeadTxIn, healthyClosedHeadTxOut) - <> registryUTxO scriptRegistry - - tx = - contestTx - scriptRegistry - healthyContesterVerificationKey - (mkHeadId testPolicyId) - healthyContestationPeriod - healthyCloseSnapshotVersion - healthyContestSnapshot - (healthySignature healthyContestSnapshotNumber) - (healthySlotNo, slotNoToUTCTime systemStart slotLength healthySlotNo) - closedThreadOutput - - scriptRegistry = genScriptRegistry `generateWith` 42 - - closedThreadOutput = - ClosedThreadOutput - { closedThreadUTxO = (healthyClosedHeadTxIn, healthyClosedHeadTxOut) - , closedParties = - healthyOnChainParties - , closedContestationDeadline = posixFromUTCTime healthyContestationDeadline - , closedContesters = [] - } - -healthyContestSnapshotNumber :: SnapshotNumber -healthyContestSnapshotNumber = 4 - -healthyCloseSnapshotVersion :: SnapshotVersion -healthyCloseSnapshotVersion = 4 - -healthyClosedUTxO :: UTxO -healthyClosedUTxO = - genOneUTxOFor healthyContesterVerificationKey `generateWith` 42 - -healthyContestUTxO :: UTxO -healthyContestUTxO = - (genOneUTxOFor healthyContesterVerificationKey `suchThat` (/= healthyClosedUTxO)) - `generateWith` 42 - -splittedContestUTxO :: (UTxO, UTxO) -splittedContestUTxO = splitUTxO healthyContestUTxO - -splitUTxOInHead :: UTxO -splitUTxOInHead = fst splittedContestUTxO - -splitUTxOToDecommit :: UTxO -splitUTxOToDecommit = snd splittedContestUTxO - -healthyContestSnapshot :: Snapshot Tx -healthyContestSnapshot = - Snapshot - { headId = mkHeadId testPolicyId - , number = healthyContestSnapshotNumber - , utxo = splitUTxOInHead - , confirmed = [] - , utxoToCommit = Nothing - , utxoToDecommit = Just splitUTxOToDecommit - , version = healthyCloseSnapshotVersion - } - -healthyClosedState :: Head.State -healthyClosedState = - Head.Closed - Head.ClosedDatum - { snapshotNumber = fromIntegral healthyClosedSnapshotNumber - , utxoHash = healthyClosedUTxOHash - , deltaUTxOHash = mempty - , parties = healthyOnChainParties - , contestationDeadline = posixFromUTCTime healthyContestationDeadline - , contestationPeriod = healthyOnChainContestationPeriod - , headId = toPlutusCurrencySymbol testPolicyId - , contesters = [] - , version = toInteger healthyCloseSnapshotVersion - } - -healthyContestUTxOHash :: BuiltinByteString -healthyContestUTxOHash = - toBuiltin $ hashUTxO @Tx splitUTxOInHead - -healthyContestUTxOToDecommitHash :: BuiltinByteString -healthyContestUTxOToDecommitHash = - toBuiltin $ hashUTxO @Tx splitUTxOToDecommit - -healthyClosedUTxOHash :: BuiltinByteString -healthyClosedUTxOHash = - toBuiltin $ hashUTxO @Tx healthyClosedUTxO - -healthyClosedSnapshotNumber :: SnapshotNumber -healthyClosedSnapshotNumber = 3 - -healthySlotNo :: SlotNo -healthySlotNo = arbitrary `generateWith` 42 - -healthyClosedHeadTxIn :: TxIn -healthyClosedHeadTxIn = generateWith arbitrary 42 - -healthyClosedHeadTxOut :: TxOut CtxUTxO -healthyClosedHeadTxOut = - mkHeadOutput testNetworkId testPolicyId headTxOutDatum - & addParticipationTokens healthyParticipants - where - headTxOutDatum = toUTxOContext (mkTxOutDatumInline healthyClosedState) - -healthyOnChainContestationPeriod :: OnChain.ContestationPeriod -healthyOnChainContestationPeriod = OnChain.contestationPeriodFromDiffTime $ fromInteger healthyContestationPeriodSeconds - -healthyContestationPeriod :: ContestationPeriod -healthyContestationPeriod = fromChain healthyOnChainContestationPeriod - -healthyContestationPeriodSeconds :: Integer -healthyContestationPeriodSeconds = 10 - -healthyParticipants :: [VerificationKey PaymentKey] -healthyParticipants = - genForParty genVerificationKey <$> healthyParties - -healthyContesterVerificationKey :: VerificationKey PaymentKey -healthyContesterVerificationKey = - elements healthyParticipants `generateWith` 42 - -healthySigningKeys :: [SigningKey HydraKey] -healthySigningKeys = [aliceSk, bobSk, carolSk] - -healthyParties :: [Party] -healthyParties = deriveParty <$> healthySigningKeys - -healthyOnChainParties :: [OnChain.Party] -healthyOnChainParties = partyToChain <$> healthyParties - -healthySignature :: SnapshotNumber -> MultiSignature (Snapshot Tx) -healthySignature number = - aggregate [sign sk snapshot | sk <- healthySigningKeys] - where - snapshot = healthyContestSnapshot{number} - -healthyContestationDeadline :: UTCTime -healthyContestationDeadline = - addUTCTime - (fromInteger healthyContestationPeriodSeconds) - (slotNoToUTCTime systemStart slotLength healthySlotNo) - -- FIXME: Should try to mutate the 'closedAt' recorded time to something else data ContestMutation = -- | Ensures collectCom does not allow any output address but νHead. diff --git a/hydra-tx/test/Hydra/Tx/Contract/Contest/ContestUsedDec.hs b/hydra-tx/test/Hydra/Tx/Contract/Contest/ContestUsedDec.hs new file mode 100644 index 00000000000..dde38aac812 --- /dev/null +++ b/hydra-tx/test/Hydra/Tx/Contract/Contest/ContestUsedDec.hs @@ -0,0 +1,21 @@ +{-# LANGUAGE DuplicateRecordFields #-} +{-# OPTIONS_GHC -Wno-orphans #-} + +module Hydra.Tx.Contract.Contest.ContestUsedDec where + +import Hydra.Cardano.Api +import Hydra.Prelude hiding (label) + +import Hydra.Tx.Contract.Contest.Healthy () +import Test.Hydra.Tx.Mutation ( + SomeMutation (..), + ) +import Test.QuickCheck (oneof) +import Test.QuickCheck.Instances () + +data ContestUsedDecMutation = ContestUsedDecMutation + deriving stock (Generic, Show, Enum, Bounded) + +genContestUsedDecMutation :: (Tx, UTxO) -> Gen SomeMutation +genContestUsedDecMutation (_tx, _utxo) = + oneof [] diff --git a/hydra-tx/test/Hydra/Tx/Contract/Contest/Healthy.hs b/hydra-tx/test/Hydra/Tx/Contract/Contest/Healthy.hs new file mode 100644 index 00000000000..dc64c3929d1 --- /dev/null +++ b/hydra-tx/test/Hydra/Tx/Contract/Contest/Healthy.hs @@ -0,0 +1,222 @@ +{-# LANGUAGE DuplicateRecordFields #-} +{-# OPTIONS_GHC -Wno-orphans #-} + +module Hydra.Tx.Contract.Contest.Healthy where + +import Hydra.Cardano.Api +import Hydra.Prelude hiding (label) + +import Data.Maybe (fromJust) + +import Cardano.Api.UTxO as UTxO +import Hydra.Contract.Error (toErrorCode) +import Hydra.Contract.HeadError (HeadError (..)) +import Hydra.Contract.HeadState qualified as Head +import Hydra.Contract.HeadTokens (headPolicyId) +import Hydra.Contract.Util (UtilError (MintingOrBurningIsForbidden)) +import Hydra.Data.ContestationPeriod qualified as OnChain +import Hydra.Data.Party (partyFromVerificationKeyBytes) +import Hydra.Data.Party qualified as OnChain +import Hydra.Ledger.Cardano.Time (slotNoToUTCTime) +import Hydra.Plutus.Extras (posixFromUTCTime) +import Hydra.Plutus.Orphans () +import Hydra.Tx (registryUTxO) +import Hydra.Tx.Contest (ClosedThreadOutput (..), contestTx) +import Hydra.Tx.ContestationPeriod (ContestationPeriod, fromChain) +import Hydra.Tx.Crypto (HydraKey, MultiSignature, aggregate, sign, toPlutusSignatures) +import Hydra.Tx.HeadId (mkHeadId) +import Hydra.Tx.Init (mkHeadOutput) +import Hydra.Tx.IsTx (hashUTxO) +import Hydra.Tx.Party (Party, deriveParty, partyToChain) +import Hydra.Tx.Snapshot (Snapshot (..), SnapshotNumber, SnapshotVersion) +import Hydra.Tx.Utils ( + splitUTxO, + ) +import PlutusLedgerApi.V2 (BuiltinByteString, toBuiltin) +import PlutusLedgerApi.V2 qualified as Plutus +import Test.Hydra.Tx.Fixture (aliceSk, bobSk, carolSk, slotLength, systemStart, testNetworkId, testPolicyId) +import Test.Hydra.Tx.Fixture qualified as Fixture +import Test.Hydra.Tx.Gen ( + genAddressInEra, + genForParty, + genHash, + genMintedOrBurnedValue, + genOneUTxOFor, + genScriptRegistry, + genValue, + genVerificationKey, + ) +import Test.Hydra.Tx.Mutation ( + Mutation (..), + SomeMutation (..), + addParticipationTokens, + changeMintedTokens, + modifyInlineDatum, + replaceContestationDeadline, + replaceContestationPeriod, + replaceContesters, + replaceDeltaUTxOHash, + replaceHeadId, + replaceParties, + replacePolicyIdWith, + replaceSnapshotNumber, + replaceSnapshotVersion, + replaceUTxOHash, + ) +import Test.QuickCheck (arbitrarySizedNatural, elements, listOf, listOf1, oneof, resize, suchThat, vectorOf) +import Test.QuickCheck.Gen (choose) +import Test.QuickCheck.Instances () + +-- +-- ContestTx +-- + +-- | Healthy contest tx where the contester is the first one to contest and +-- correctly pushing out the deadline by the contestation period. +healthyContestTx :: (Tx, UTxO) +healthyContestTx = + (tx, lookupUTxO) + where + lookupUTxO = + UTxO.singleton (healthyClosedHeadTxIn, healthyClosedHeadTxOut) + <> registryUTxO scriptRegistry + + tx = + contestTx + scriptRegistry + healthyContesterVerificationKey + (mkHeadId testPolicyId) + healthyContestationPeriod + healthyCloseSnapshotVersion + healthyContestSnapshot + (healthySignature healthyContestSnapshotNumber) + (healthySlotNo, slotNoToUTCTime systemStart slotLength healthySlotNo) + closedThreadOutput + + scriptRegistry = genScriptRegistry `generateWith` 42 + + closedThreadOutput = + ClosedThreadOutput + { closedThreadUTxO = (healthyClosedHeadTxIn, healthyClosedHeadTxOut) + , closedParties = + healthyOnChainParties + , closedContestationDeadline = posixFromUTCTime healthyContestationDeadline + , closedContesters = [] + } + +healthyContestSnapshotNumber :: SnapshotNumber +healthyContestSnapshotNumber = 4 + +healthyCloseSnapshotVersion :: SnapshotVersion +healthyCloseSnapshotVersion = 4 + +healthyClosedUTxO :: UTxO +healthyClosedUTxO = + genOneUTxOFor healthyContesterVerificationKey `generateWith` 42 + +healthyContestUTxO :: UTxO +healthyContestUTxO = + (genOneUTxOFor healthyContesterVerificationKey `suchThat` (/= healthyClosedUTxO)) + `generateWith` 42 + +splittedContestUTxO :: (UTxO, UTxO) +splittedContestUTxO = splitUTxO healthyContestUTxO + +splitUTxOInHead :: UTxO +splitUTxOInHead = fst splittedContestUTxO + +splitUTxOToDecommit :: UTxO +splitUTxOToDecommit = snd splittedContestUTxO + +healthyContestSnapshot :: Snapshot Tx +healthyContestSnapshot = + Snapshot + { headId = mkHeadId testPolicyId + , number = healthyContestSnapshotNumber + , utxo = splitUTxOInHead + , confirmed = [] + , utxoToCommit = Nothing + , utxoToDecommit = Just splitUTxOToDecommit + , version = healthyCloseSnapshotVersion + } + +healthyClosedState :: Head.State +healthyClosedState = + Head.Closed + Head.ClosedDatum + { snapshotNumber = fromIntegral healthyClosedSnapshotNumber + , utxoHash = healthyClosedUTxOHash + , deltaUTxOHash = mempty + , parties = healthyOnChainParties + , contestationDeadline = posixFromUTCTime healthyContestationDeadline + , contestationPeriod = healthyOnChainContestationPeriod + , headId = toPlutusCurrencySymbol testPolicyId + , contesters = [] + , version = toInteger healthyCloseSnapshotVersion + } + +healthyContestUTxOHash :: BuiltinByteString +healthyContestUTxOHash = + toBuiltin $ hashUTxO @Tx splitUTxOInHead + +healthyContestUTxOToDecommitHash :: BuiltinByteString +healthyContestUTxOToDecommitHash = + toBuiltin $ hashUTxO @Tx splitUTxOToDecommit + +healthyClosedUTxOHash :: BuiltinByteString +healthyClosedUTxOHash = + toBuiltin $ hashUTxO @Tx healthyClosedUTxO + +healthyClosedSnapshotNumber :: SnapshotNumber +healthyClosedSnapshotNumber = 3 + +healthySlotNo :: SlotNo +healthySlotNo = arbitrary `generateWith` 42 + +healthyClosedHeadTxIn :: TxIn +healthyClosedHeadTxIn = generateWith arbitrary 42 + +healthyClosedHeadTxOut :: TxOut CtxUTxO +healthyClosedHeadTxOut = + mkHeadOutput testNetworkId testPolicyId headTxOutDatum + & addParticipationTokens healthyParticipants + where + headTxOutDatum = toUTxOContext (mkTxOutDatumInline healthyClosedState) + +healthyOnChainContestationPeriod :: OnChain.ContestationPeriod +healthyOnChainContestationPeriod = OnChain.contestationPeriodFromDiffTime $ fromInteger healthyContestationPeriodSeconds + +healthyContestationPeriod :: ContestationPeriod +healthyContestationPeriod = fromChain healthyOnChainContestationPeriod + +healthyContestationPeriodSeconds :: Integer +healthyContestationPeriodSeconds = 10 + +healthyParticipants :: [VerificationKey PaymentKey] +healthyParticipants = + genForParty genVerificationKey <$> healthyParties + +healthyContesterVerificationKey :: VerificationKey PaymentKey +healthyContesterVerificationKey = + elements healthyParticipants `generateWith` 42 + +healthySigningKeys :: [SigningKey HydraKey] +healthySigningKeys = [aliceSk, bobSk, carolSk] + +healthyParties :: [Party] +healthyParties = deriveParty <$> healthySigningKeys + +healthyOnChainParties :: [OnChain.Party] +healthyOnChainParties = partyToChain <$> healthyParties + +healthySignature :: SnapshotNumber -> MultiSignature (Snapshot Tx) +healthySignature number = + aggregate [sign sk snapshot | sk <- healthySigningKeys] + where + snapshot = healthyContestSnapshot{number} + +healthyContestationDeadline :: UTCTime +healthyContestationDeadline = + addUTCTime + (fromInteger healthyContestationPeriodSeconds) + (slotNoToUTCTime systemStart slotLength healthySlotNo) diff --git a/hydra-tx/test/Hydra/Tx/Contract/ContractSpec.hs b/hydra-tx/test/Hydra/Tx/Contract/ContractSpec.hs index 2c09b4871c1..c0625946b3b 100644 --- a/hydra-tx/test/Hydra/Tx/Contract/ContractSpec.hs +++ b/hydra-tx/test/Hydra/Tx/Contract/ContractSpec.hs @@ -39,7 +39,8 @@ import Hydra.Tx.Contract.Close.CloseUnused (genCloseCurrentMutation, healthyClos import Hydra.Tx.Contract.Close.CloseUsed (genCloseOutdatedMutation, healthyCloseOutdatedTx) import Hydra.Tx.Contract.CollectCom (genCollectComMutation, healthyCollectComTx) import Hydra.Tx.Contract.Commit (genCommitMutation, healthyCommitTx) -import Hydra.Tx.Contract.Contest.ContestCurrent (genContestMutation, healthyContestTx) +import Hydra.Tx.Contract.Contest.ContestCurrent (genContestMutation) +import Hydra.Tx.Contract.Contest.Healthy (healthyContestTx) import Hydra.Tx.Contract.Decrement (genDecrementMutation, healthyDecrementTx) import Hydra.Tx.Contract.Deposit (healthyDepositTx) import Hydra.Tx.Contract.FanOut (genFanoutMutation, healthyFanoutTx)