From be4d9f600b2274bf9dce0ec944c3ba175fa7db8e Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Sun, 7 Jul 2024 15:40:07 +0200 Subject: [PATCH 01/20] cardtestnet-11 --- config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yml b/config.yml index 01e1bc60..bcbe7a00 100644 --- a/config.yml +++ b/config.yml @@ -86,7 +86,7 @@ genesis: staking: params: bond_denom: ubpf - chain_id: cardtestnet-10 + chain_id: cardtestnet-11 validators: - name: alice bonded: 5000000ubpf From 44db4ca793ba4911e2cf747ea028b08fc76bcae4 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Mon, 30 Sep 2024 19:07:11 +0200 Subject: [PATCH 02/20] feat(#237): Added Encounter proto --- go.mod | 22 +- go.sum | 52 +- proto/cardchain/cardchain/encounters.proto | 15 + x/cardchain/types/encounters.pb.go | 675 +++++++++++++++++++++ 4 files changed, 727 insertions(+), 37 deletions(-) create mode 100644 proto/cardchain/cardchain/encounters.proto create mode 100644 x/cardchain/types/encounters.pb.go diff --git a/go.mod b/go.mod index e17720a9..3853c05e 100644 --- a/go.mod +++ b/go.mod @@ -19,8 +19,8 @@ require ( github.com/tendermint/tendermint v0.34.29 github.com/tendermint/tm-db v0.6.7 golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 - google.golang.org/genproto/googleapis/api v0.0.0-20240513163218-0867130af1f8 - google.golang.org/grpc v1.64.0 + google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 + google.golang.org/grpc v1.64.1 gopkg.in/yaml.v2 v2.4.0 ) @@ -151,18 +151,18 @@ require ( go.opentelemetry.io/otel v1.24.0 // indirect go.opentelemetry.io/otel/metric v1.24.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect - golang.org/x/crypto v0.21.0 // indirect - golang.org/x/net v0.23.0 // indirect - golang.org/x/oauth2 v0.20.0 // indirect - golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/term v0.18.0 // indirect - golang.org/x/text v0.15.0 // indirect + golang.org/x/crypto v0.24.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.17.0 // indirect golang.org/x/time v0.5.0 // indirect google.golang.org/api v0.169.0 // indirect google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8 // indirect - google.golang.org/protobuf v1.34.1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect nhooyr.io/websocket v1.8.7 // indirect diff --git a/go.sum b/go.sum index 008b8085..1b9f2efe 100644 --- a/go.sum +++ b/go.sum @@ -2868,8 +2868,8 @@ golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2929,8 +2929,8 @@ golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -3034,8 +3034,8 @@ golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180724155351-3d292e4d0cdc/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -3069,8 +3069,8 @@ golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= +golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -3090,8 +3090,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -3270,8 +3270,8 @@ golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -3285,8 +3285,8 @@ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -3302,8 +3302,8 @@ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -3453,8 +3453,8 @@ golang.org/x/tools v0.1.12-0.20220628192153-7743d1d949f1/go.mod h1:SgwaegtQh8clI golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -3690,10 +3690,10 @@ google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+ google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= -google.golang.org/genproto/googleapis/api v0.0.0-20240513163218-0867130af1f8 h1:W5Xj/70xIA4x60O/IFyXivR5MGqblAb8R3w26pnD6No= -google.golang.org/genproto/googleapis/api v0.0.0-20240513163218-0867130af1f8/go.mod h1:vPrPUTsDCYxXWjP7clS81mZ6/803D8K4iM9Ma27VKas= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8 h1:mxSlqyb8ZAHsYDCfiXN1EDdNTdvjUJSLY+OnAUtYNYA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8/go.mod h1:I7Y+G38R2bu5j1aLzfFmQfTcU/WnFuqDwLZAbvKTKpM= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= @@ -3745,8 +3745,8 @@ google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCD google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= -google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= +google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= +google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -3765,8 +3765,8 @@ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/proto/cardchain/cardchain/encounters.proto b/proto/cardchain/cardchain/encounters.proto new file mode 100644 index 00000000..db6025d8 --- /dev/null +++ b/proto/cardchain/cardchain/encounters.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; +package DecentralCardGame.cardchain.cardchain; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/DecentralCardGame/Cardchain/x/cardchain/types"; + + +message Encounter { + uint64 Id = 1; + repeated uint64 Drawlist = 2; + bool proven = 3; + string owner = 4; + map parameters = 5; +} \ No newline at end of file diff --git a/x/cardchain/types/encounters.pb.go b/x/cardchain/types/encounters.pb.go new file mode 100644 index 00000000..60e8541e --- /dev/null +++ b/x/cardchain/types/encounters.pb.go @@ -0,0 +1,675 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: cardchain/cardchain/encounters.proto + +package types + +import ( + fmt "fmt" + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type Encounter struct { + Id uint64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Drawlist []uint64 `protobuf:"varint,2,rep,packed,name=Drawlist,proto3" json:"Drawlist,omitempty"` + Proven bool `protobuf:"varint,3,opt,name=proven,proto3" json:"proven,omitempty"` + Owner string `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"` + Parameters map[string]string `protobuf:"bytes,5,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *Encounter) Reset() { *m = Encounter{} } +func (m *Encounter) String() string { return proto.CompactTextString(m) } +func (*Encounter) ProtoMessage() {} +func (*Encounter) Descriptor() ([]byte, []int) { + return fileDescriptor_bd29899b36e899bc, []int{0} +} +func (m *Encounter) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Encounter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Encounter.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Encounter) XXX_Merge(src proto.Message) { + xxx_messageInfo_Encounter.Merge(m, src) +} +func (m *Encounter) XXX_Size() int { + return m.Size() +} +func (m *Encounter) XXX_DiscardUnknown() { + xxx_messageInfo_Encounter.DiscardUnknown(m) +} + +var xxx_messageInfo_Encounter proto.InternalMessageInfo + +func (m *Encounter) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *Encounter) GetDrawlist() []uint64 { + if m != nil { + return m.Drawlist + } + return nil +} + +func (m *Encounter) GetProven() bool { + if m != nil { + return m.Proven + } + return false +} + +func (m *Encounter) GetOwner() string { + if m != nil { + return m.Owner + } + return "" +} + +func (m *Encounter) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func init() { + proto.RegisterType((*Encounter)(nil), "DecentralCardGame.cardchain.cardchain.Encounter") + proto.RegisterMapType((map[string]string)(nil), "DecentralCardGame.cardchain.cardchain.Encounter.ParametersEntry") +} + +func init() { + proto.RegisterFile("cardchain/cardchain/encounters.proto", fileDescriptor_bd29899b36e899bc) +} + +var fileDescriptor_bd29899b36e899bc = []byte{ + // 308 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0x41, 0x4b, 0xf3, 0x30, + 0x18, 0xc7, 0x97, 0x74, 0x1b, 0x5b, 0x5e, 0x78, 0x95, 0x30, 0x24, 0xec, 0x10, 0x8a, 0x28, 0xf4, + 0x94, 0x82, 0x5e, 0x86, 0x20, 0x88, 0xdb, 0x90, 0xdd, 0x24, 0x47, 0x4f, 0x66, 0x6d, 0xd8, 0x86, + 0x6b, 0x52, 0xd2, 0x74, 0xb3, 0x5f, 0xc0, 0xb3, 0x1f, 0xcb, 0xe3, 0x8e, 0x1e, 0xa5, 0xfd, 0x22, + 0xd2, 0x56, 0xbb, 0xa1, 0x17, 0x6f, 0xff, 0x1f, 0xc9, 0xf3, 0xe7, 0x97, 0x3c, 0xe8, 0x2c, 0x10, + 0x26, 0x0c, 0x96, 0x62, 0xa5, 0xfc, 0x7d, 0x92, 0x2a, 0xd0, 0xa9, 0xb2, 0xd2, 0x24, 0x2c, 0x36, + 0xda, 0x6a, 0x7c, 0x3e, 0x91, 0x81, 0x54, 0xd6, 0x88, 0xf5, 0x58, 0x98, 0xf0, 0x4e, 0x44, 0x92, + 0x35, 0xb7, 0xf7, 0x69, 0x38, 0x58, 0xe8, 0x85, 0xae, 0x26, 0xfc, 0x32, 0xd5, 0xc3, 0xa7, 0x2f, + 0x10, 0xf5, 0xa7, 0xdf, 0x8d, 0xf8, 0x3f, 0x82, 0xb3, 0x90, 0x00, 0x17, 0x78, 0x6d, 0x0e, 0x67, + 0x21, 0x1e, 0xa2, 0xde, 0xc4, 0x88, 0xed, 0x7a, 0x95, 0x58, 0x02, 0x5d, 0xc7, 0x6b, 0xf3, 0x86, + 0xf1, 0x09, 0xea, 0xc6, 0x46, 0x6f, 0xa4, 0x22, 0x8e, 0x0b, 0xbc, 0x1e, 0xff, 0x22, 0x3c, 0x40, + 0x1d, 0xbd, 0x55, 0xd2, 0x90, 0xb6, 0x0b, 0xbc, 0x3e, 0xaf, 0x01, 0x3f, 0x22, 0x14, 0x0b, 0x23, + 0x22, 0x59, 0x8a, 0x93, 0x8e, 0xeb, 0x78, 0xff, 0x2e, 0x6e, 0xd8, 0x9f, 0xcc, 0x59, 0xe3, 0xc7, + 0xee, 0x9b, 0x8a, 0xa9, 0xb2, 0x26, 0xe3, 0x07, 0x9d, 0xc3, 0x6b, 0x74, 0xf4, 0xe3, 0x18, 0x1f, + 0x23, 0xe7, 0x49, 0x66, 0xd5, 0x7b, 0xfa, 0xbc, 0x8c, 0xa5, 0xdc, 0x46, 0xac, 0x53, 0x49, 0x60, + 0x2d, 0x57, 0xc1, 0x15, 0x1c, 0x81, 0x5b, 0xfe, 0x96, 0x53, 0xb0, 0xcb, 0x29, 0xf8, 0xc8, 0x29, + 0x78, 0x2d, 0x68, 0x6b, 0x57, 0xd0, 0xd6, 0x7b, 0x41, 0x5b, 0x0f, 0xa3, 0xc5, 0xca, 0x2e, 0xd3, + 0x39, 0x0b, 0x74, 0xe4, 0xff, 0x12, 0xf6, 0xc7, 0xcd, 0x62, 0x9e, 0x0f, 0x96, 0x64, 0xb3, 0x58, + 0x26, 0xf3, 0x6e, 0xf5, 0xc7, 0x97, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x79, 0xe1, 0xfc, + 0xc8, 0x01, 0x00, 0x00, +} + +func (m *Encounter) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Encounter) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Encounter) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Parameters) > 0 { + for k := range m.Parameters { + v := m.Parameters[k] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintEncounters(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(k) + copy(dAtA[i:], k) + i = encodeVarintEncounters(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = encodeVarintEncounters(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x2a + } + } + if len(m.Owner) > 0 { + i -= len(m.Owner) + copy(dAtA[i:], m.Owner) + i = encodeVarintEncounters(dAtA, i, uint64(len(m.Owner))) + i-- + dAtA[i] = 0x22 + } + if m.Proven { + i-- + if m.Proven { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if len(m.Drawlist) > 0 { + dAtA2 := make([]byte, len(m.Drawlist)*10) + var j1 int + for _, num := range m.Drawlist { + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ + } + i -= j1 + copy(dAtA[i:], dAtA2[:j1]) + i = encodeVarintEncounters(dAtA, i, uint64(j1)) + i-- + dAtA[i] = 0x12 + } + if m.Id != 0 { + i = encodeVarintEncounters(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintEncounters(dAtA []byte, offset int, v uint64) int { + offset -= sovEncounters(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Encounter) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovEncounters(uint64(m.Id)) + } + if len(m.Drawlist) > 0 { + l = 0 + for _, e := range m.Drawlist { + l += sovEncounters(uint64(e)) + } + n += 1 + sovEncounters(uint64(l)) + l + } + if m.Proven { + n += 2 + } + l = len(m.Owner) + if l > 0 { + n += 1 + l + sovEncounters(uint64(l)) + } + if len(m.Parameters) > 0 { + for k, v := range m.Parameters { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovEncounters(uint64(len(k))) + 1 + len(v) + sovEncounters(uint64(len(v))) + n += mapEntrySize + 1 + sovEncounters(uint64(mapEntrySize)) + } + } + return n +} + +func sovEncounters(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozEncounters(x uint64) (n int) { + return sovEncounters(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Encounter) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Encounter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Encounter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Drawlist = append(m.Drawlist, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthEncounters + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthEncounters + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Drawlist) == 0 { + m.Drawlist = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Drawlist = append(m.Drawlist, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Drawlist", wireType) + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Proven", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Proven = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Owner", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEncounters + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEncounters + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Owner = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEncounters + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEncounters + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Parameters == nil { + m.Parameters = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthEncounters + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthEncounters + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthEncounters + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthEncounters + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipEncounters(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEncounters + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Parameters[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEncounters(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEncounters + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipEncounters(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEncounters + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEncounters + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEncounters + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthEncounters + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupEncounters + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthEncounters + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthEncounters = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowEncounters = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupEncounters = fmt.Errorf("proto: unexpected end of group") +) From 9e34489963eded93d78eb1346f9db1f2562976c6 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Mon, 30 Sep 2024 20:39:08 +0200 Subject: [PATCH 03/20] feat(#237): Added more proto --- docs/static/openapi.yml | 24 ++ proto/cardchain/cardchain/card.proto | 1 + proto/cardchain/cardchain/user.proto | 2 + x/cardchain/types/card.pb.go | 102 ++++--- x/cardchain/types/user.pb.go | 436 ++++++++++++++++++++------- 5 files changed, 410 insertions(+), 155 deletions(-) diff --git a/docs/static/openapi.yml b/docs/static/openapi.yml index 9612365e..ec76af80 100644 --- a/docs/static/openapi.yml +++ b/docs/static/openapi.yml @@ -33042,6 +33042,7 @@ paths: - bannedSoon - bannedVerySoon - none + - adventureItem default: scheme votePool: type: string @@ -33299,6 +33300,7 @@ paths: - bannedSoon - bannedVerySoon - none + - adventureItem collectionFormat: multi - name: cardTypes in: query @@ -34230,6 +34232,16 @@ paths: type: string invitedUser: type: string + OpenEncounters: + type: array + items: + type: string + format: uint64 + WonEncounters: + type: array + items: + type: string + format: uint64 default: description: An unexpected error response. schema: @@ -69227,6 +69239,7 @@ definitions: - bannedSoon - bannedVerySoon - none + - adventureItem default: scheme votePool: type: string @@ -69808,6 +69821,7 @@ definitions: - bannedSoon - bannedVerySoon - none + - adventureItem default: scheme DecentralCardGame.cardchain.cardchain.User: type: object @@ -69903,6 +69917,16 @@ definitions: type: string invitedUser: type: string + OpenEncounters: + type: array + items: + type: string + format: uint64 + WonEncounters: + type: array + items: + type: string + format: uint64 DecentralCardGame.cardchain.cardchain.VoteType: type: string enum: diff --git a/proto/cardchain/cardchain/card.proto b/proto/cardchain/cardchain/card.proto index c2ffb123..080d4528 100644 --- a/proto/cardchain/cardchain/card.proto +++ b/proto/cardchain/cardchain/card.proto @@ -58,6 +58,7 @@ enum Status { bannedSoon = 6; bannedVerySoon = 7; none = 8; + adventureItem = 9; } enum CardRarity { diff --git a/proto/cardchain/cardchain/user.proto b/proto/cardchain/cardchain/user.proto index dbdb468e..97381f70 100644 --- a/proto/cardchain/cardchain/user.proto +++ b/proto/cardchain/cardchain/user.proto @@ -20,6 +20,8 @@ message User { repeated uint64 votableCards = 13; repeated uint64 votedCards = 14; EarlyAccess earlyAccess = 15; + repeated uint64 OpenEncounters = 16; + repeated uint64 WonEncounters = 17; } enum CouncilStatus { diff --git a/x/cardchain/types/card.pb.go b/x/cardchain/types/card.pb.go index 179e322d..b7a6e681 100644 --- a/x/cardchain/types/card.pb.go +++ b/x/cardchain/types/card.pb.go @@ -36,6 +36,7 @@ const ( Status_bannedSoon Status = 6 Status_bannedVerySoon Status = 7 Status_none Status = 8 + Status_adventureItem Status = 9 ) var Status_name = map[int32]string{ @@ -48,6 +49,7 @@ var Status_name = map[int32]string{ 6: "bannedSoon", 7: "bannedVerySoon", 8: "none", + 9: "adventureItem", } var Status_value = map[string]int32{ @@ -60,6 +62,7 @@ var Status_value = map[string]int32{ "bannedSoon": 6, "bannedVerySoon": 7, "none": 8, + "adventureItem": 9, } func (x Status) String() string { @@ -561,56 +564,57 @@ func init() { func init() { proto.RegisterFile("cardchain/cardchain/card.proto", fileDescriptor_a360ffd2377ddc30) } var fileDescriptor_a360ffd2377ddc30 = []byte{ - // 779 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x55, 0x41, 0x8f, 0x1b, 0x35, - 0x14, 0xce, 0x6c, 0x26, 0x93, 0x99, 0x97, 0xdd, 0xac, 0xd7, 0x5a, 0xa1, 0x01, 0xa1, 0x74, 0x54, - 0x81, 0x08, 0x11, 0x4d, 0x04, 0x5c, 0x38, 0x21, 0xb5, 0xa1, 0x42, 0x15, 0x42, 0xa0, 0xd9, 0xaa, - 0x07, 0x2e, 0xc8, 0xf1, 0xbc, 0xcd, 0x58, 0xcc, 0xd8, 0x53, 0xdb, 0xb3, 0x6d, 0xfe, 0x00, 0x67, - 0x7e, 0x07, 0xff, 0x81, 0x7b, 0x8f, 0x3d, 0x22, 0x0e, 0x15, 0xda, 0xfd, 0x23, 0xc8, 0x9e, 0xec, - 0x66, 0xbb, 0x8b, 0x50, 0xa5, 0xde, 0x50, 0x4f, 0x79, 0xdf, 0xf3, 0xfb, 0x9e, 0xfd, 0xfc, 0x7d, - 0x13, 0xc3, 0x84, 0x33, 0x5d, 0xf0, 0x92, 0x09, 0xb9, 0x78, 0x3d, 0x9a, 0x37, 0x5a, 0x59, 0x45, - 0x3f, 0xfe, 0x06, 0x39, 0x4a, 0xab, 0x59, 0xb5, 0x64, 0xba, 0xf8, 0x96, 0xd5, 0x38, 0xbf, 0xaa, - 0xdb, 0x45, 0x1f, 0x1c, 0xaf, 0xd5, 0x5a, 0x79, 0xc6, 0xc2, 0x45, 0x1d, 0xf9, 0xee, 0xef, 0x03, - 0x08, 0x1d, 0x8d, 0x1e, 0xc3, 0x40, 0x3d, 0x93, 0xa8, 0xd3, 0x20, 0x0b, 0xa6, 0x49, 0xde, 0x01, - 0xfa, 0x1e, 0x44, 0x4c, 0x5b, 0x61, 0x6c, 0xba, 0xe7, 0xd3, 0x5b, 0x44, 0x53, 0x18, 0x72, 0x25, - 0x2d, 0x4a, 0x9b, 0xf6, 0xb3, 0x60, 0xba, 0x9f, 0x5f, 0x42, 0xfa, 0x3e, 0xc4, 0xa2, 0x66, 0x6b, - 0xfc, 0x59, 0x14, 0x69, 0x98, 0x05, 0xd3, 0x30, 0x1f, 0x7a, 0xfc, 0xa8, 0x70, 0xa4, 0xd3, 0xb6, - 0xaa, 0xee, 0x6b, 0x9b, 0x0e, 0xb2, 0x60, 0x1a, 0xe7, 0x97, 0xd0, 0x6d, 0x2e, 0x95, 0x45, 0x93, - 0x46, 0xdd, 0xe6, 0x1e, 0xd0, 0x87, 0x10, 0x19, 0xcb, 0x6c, 0x6b, 0xd2, 0x61, 0x16, 0x4c, 0xc7, - 0x5f, 0xdc, 0x9b, 0xbf, 0xd1, 0xa4, 0xf3, 0x13, 0x4f, 0xca, 0xb7, 0x64, 0xfa, 0x1d, 0xc4, 0x67, - 0xca, 0xe2, 0x8f, 0x4a, 0x55, 0x69, 0xec, 0xfa, 0x3f, 0x58, 0xbc, 0x78, 0x75, 0xa7, 0xf7, 0xd7, - 0xab, 0x3b, 0x9f, 0xac, 0x85, 0x2d, 0xdb, 0xd5, 0x9c, 0xab, 0x7a, 0xc1, 0x95, 0xa9, 0x95, 0xd9, - 0xfe, 0xdc, 0x33, 0xc5, 0x2f, 0x0b, 0xbb, 0x69, 0xd0, 0xcc, 0x97, 0x4a, 0xc8, 0xfc, 0xaa, 0x81, - 0xbb, 0x10, 0x17, 0x6b, 0x93, 0x8e, 0xb3, 0xbe, 0xbb, 0x90, 0x0e, 0xd1, 0x29, 0x1c, 0x9e, 0x32, - 0xa1, 0x1f, 0x4a, 0xd5, 0xae, 0xcb, 0x27, 0x7e, 0x96, 0xc4, 0x4f, 0x7f, 0x33, 0x4d, 0x67, 0x40, - 0xd4, 0x19, 0xea, 0x46, 0x3d, 0x43, 0x8d, 0x45, 0x57, 0x0a, 0xbe, 0xf4, 0x56, 0x9e, 0x7e, 0x06, - 0x47, 0xad, 0x2c, 0x6e, 0x14, 0x8f, 0x7c, 0xf1, 0xed, 0x05, 0x3a, 0x07, 0x2a, 0x24, 0x6b, 0x1a, - 0xad, 0x1a, 0x2d, 0x98, 0xc5, 0xae, 0x7c, 0xdf, 0x97, 0xff, 0xcb, 0x0a, 0xfd, 0x10, 0x12, 0x89, - 0xfa, 0xb4, 0xc2, 0x33, 0xac, 0xd2, 0x83, 0x2c, 0x98, 0xf6, 0xf3, 0x5d, 0x82, 0x7e, 0x04, 0x07, - 0x2b, 0x56, 0x31, 0xc9, 0xf1, 0xbe, 0xe4, 0xa5, 0xd2, 0xe9, 0xa1, 0xd7, 0xec, 0xf5, 0x24, 0xcd, - 0x60, 0x64, 0x2c, 0xd3, 0x16, 0xb5, 0x93, 0x24, 0x25, 0xbe, 0xe6, 0x7a, 0x8a, 0x3e, 0x82, 0x48, - 0x33, 0x2d, 0xec, 0x26, 0x3d, 0xf2, 0x2a, 0x7e, 0xfe, 0x86, 0x2a, 0xba, 0xc5, 0xdc, 0x13, 0xf3, - 0x6d, 0x83, 0xbb, 0x7f, 0x0c, 0x20, 0xfe, 0xa1, 0xb5, 0xcd, 0xdb, 0x1b, 0x36, 0xd9, 0x19, 0xf6, + // 792 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x55, 0x4f, 0x8f, 0xdb, 0x44, + 0x14, 0x8f, 0x37, 0x8e, 0x63, 0xbf, 0xfd, 0x37, 0x3b, 0x5a, 0x21, 0x83, 0x50, 0x6a, 0x55, 0x20, + 0x42, 0x44, 0x13, 0x01, 0x17, 0x4e, 0x48, 0x6d, 0xa8, 0xd0, 0x0a, 0x21, 0x90, 0xb7, 0xea, 0x81, + 0x0b, 0x9a, 0x8c, 0xdf, 0xc6, 0x23, 0xec, 0x19, 0x77, 0x66, 0x9c, 0x36, 0xdf, 0x82, 0x2b, 0x5f, + 0x81, 0xef, 0xc0, 0xbd, 0xc7, 0x1e, 0x11, 0x87, 0x0a, 0xed, 0x7e, 0x11, 0x34, 0xe3, 0xec, 0x66, + 0xbb, 0x8b, 0x50, 0xa5, 0xbd, 0xa1, 0x9e, 0xf2, 0x7e, 0x6f, 0xde, 0xfb, 0xbd, 0xbc, 0xf9, 0xfd, + 0x6c, 0xc3, 0x88, 0x33, 0x5d, 0xf0, 0x92, 0x09, 0x39, 0x7b, 0x33, 0x9a, 0x36, 0x5a, 0x59, 0x45, + 0x3f, 0xfe, 0x06, 0x39, 0x4a, 0xab, 0x59, 0x35, 0x67, 0xba, 0xf8, 0x96, 0xd5, 0x38, 0xbd, 0xaa, + 0xdb, 0x46, 0x1f, 0x1c, 0x2f, 0xd5, 0x52, 0xf9, 0x8e, 0x99, 0x8b, 0xba, 0xe6, 0xfb, 0xbf, 0x0f, + 0x20, 0x74, 0x6d, 0xf4, 0x18, 0x06, 0xea, 0xb9, 0x44, 0x9d, 0x06, 0x59, 0x30, 0x4e, 0xf2, 0x0e, + 0xd0, 0xf7, 0x20, 0x62, 0xda, 0x0a, 0x63, 0xd3, 0x1d, 0x9f, 0xde, 0x20, 0x9a, 0xc2, 0x90, 0x2b, + 0x69, 0x51, 0xda, 0xb4, 0x9f, 0x05, 0xe3, 0xbd, 0xfc, 0x12, 0xd2, 0xf7, 0x21, 0x16, 0x35, 0x5b, + 0xe2, 0xcf, 0xa2, 0x48, 0xc3, 0x2c, 0x18, 0x87, 0xf9, 0xd0, 0xe3, 0x93, 0xc2, 0x35, 0x9d, 0xb5, + 0x55, 0xf5, 0x50, 0xdb, 0x74, 0x90, 0x05, 0xe3, 0x38, 0xbf, 0x84, 0x6e, 0xb8, 0x54, 0x16, 0x4d, + 0x1a, 0x75, 0xc3, 0x3d, 0xa0, 0x8f, 0x21, 0x32, 0x96, 0xd9, 0xd6, 0xa4, 0xc3, 0x2c, 0x18, 0x1f, + 0x7c, 0xf1, 0x60, 0xfa, 0x56, 0x9b, 0x4e, 0x4f, 0x7d, 0x53, 0xbe, 0x69, 0xa6, 0xdf, 0x41, 0xbc, + 0x52, 0x16, 0x7f, 0x54, 0xaa, 0x4a, 0x63, 0xc7, 0xff, 0x68, 0xf6, 0xf2, 0xf5, 0xbd, 0xde, 0x5f, + 0xaf, 0xef, 0x7d, 0xb2, 0x14, 0xb6, 0x6c, 0x17, 0x53, 0xae, 0xea, 0x19, 0x57, 0xa6, 0x56, 0x66, + 0xf3, 0xf3, 0xc0, 0x14, 0xbf, 0xcc, 0xec, 0xba, 0x41, 0x33, 0x9d, 0x2b, 0x21, 0xf3, 0x2b, 0x02, + 0x77, 0x21, 0x2e, 0xd6, 0x26, 0x3d, 0xc8, 0xfa, 0xee, 0x42, 0x3a, 0x44, 0xc7, 0x70, 0x78, 0xc6, + 0x84, 0x7e, 0x2c, 0x55, 0xbb, 0x2c, 0x9f, 0xfa, 0x5d, 0x12, 0xbf, 0xfd, 0xcd, 0x34, 0x9d, 0x00, + 0x51, 0x2b, 0xd4, 0x8d, 0x7a, 0x8e, 0x1a, 0x8b, 0xae, 0x14, 0x7c, 0xe9, 0xad, 0x3c, 0xfd, 0x0c, + 0x8e, 0x5a, 0x59, 0xdc, 0x28, 0xde, 0xf5, 0xc5, 0xb7, 0x0f, 0xe8, 0x14, 0xa8, 0x90, 0xac, 0x69, + 0xb4, 0x6a, 0xb4, 0x60, 0x16, 0xbb, 0xf2, 0x3d, 0x5f, 0xfe, 0x2f, 0x27, 0xf4, 0x43, 0x48, 0x24, + 0xea, 0xb3, 0x0a, 0x57, 0x58, 0xa5, 0xfb, 0x59, 0x30, 0xee, 0xe7, 0xdb, 0x04, 0xfd, 0x08, 0xf6, + 0x17, 0xac, 0x62, 0x92, 0xe3, 0x43, 0xc9, 0x4b, 0xa5, 0xd3, 0x43, 0xaf, 0xd9, 0x9b, 0x49, 0x9a, + 0xc1, 0xae, 0xb1, 0x4c, 0x5b, 0xd4, 0x4e, 0x92, 0x94, 0xf8, 0x9a, 0xeb, 0x29, 0x7a, 0x02, 0x91, + 0x66, 0x5a, 0xd8, 0x75, 0x7a, 0xe4, 0x55, 0xfc, 0xfc, 0x2d, 0x55, 0x74, 0x87, 0xb9, 0x6f, 0xcc, + 0x37, 0x04, 0xf7, 0xff, 0x18, 0x40, 0xfc, 0x43, 0x6b, 0x9b, 0xbb, 0x1b, 0x36, 0xd9, 0x1a, 0xf6, 0x18, 0x06, 0xde, 0xa0, 0xde, 0xad, 0x49, 0xde, 0x81, 0x77, 0x5e, 0xfd, 0x1f, 0x7a, 0x95, 0x42, - 0x58, 0x32, 0x53, 0x7a, 0x93, 0x26, 0xb9, 0x8f, 0x6f, 0xfa, 0xf7, 0xe8, 0xbf, 0xfc, 0x4b, 0xdf, - 0xd6, 0xbf, 0x9f, 0x42, 0xf2, 0x58, 0xd4, 0x78, 0x62, 0x59, 0xdd, 0xb8, 0x89, 0xec, 0x25, 0xf0, - 0x1e, 0x0e, 0xf3, 0x5d, 0x62, 0xf6, 0x6b, 0x00, 0x51, 0xe7, 0x0d, 0x0a, 0x10, 0x19, 0x5e, 0x62, - 0x8d, 0xa4, 0x47, 0x0f, 0x20, 0xf1, 0xff, 0xdb, 0x4e, 0x6f, 0x12, 0xd0, 0x04, 0x06, 0x56, 0x0b, - 0x56, 0x91, 0x3d, 0xbf, 0x82, 0xba, 0x66, 0x12, 0xa5, 0x25, 0x7d, 0x07, 0x4d, 0x6b, 0x1a, 0x94, - 0x05, 0x16, 0x24, 0x74, 0x3d, 0x56, 0x4c, 0x4a, 0x2c, 0xc8, 0x80, 0x8e, 0x01, 0xba, 0xf8, 0x44, - 0x29, 0x49, 0x22, 0x4a, 0x61, 0xdc, 0xe1, 0x27, 0xa8, 0x37, 0x3e, 0x37, 0xa4, 0x31, 0x84, 0x52, - 0x49, 0x24, 0xf1, 0xec, 0x7b, 0x80, 0xdd, 0x24, 0xae, 0x0f, 0x57, 0x75, 0xad, 0x24, 0xe9, 0xd1, - 0x7d, 0x88, 0x5b, 0xb9, 0x45, 0x81, 0x63, 0x68, 0xa6, 0x91, 0xec, 0xd1, 0x43, 0x18, 0xe1, 0x73, - 0x8e, 0x8d, 0x15, 0x4a, 0xb2, 0x8a, 0xf4, 0x1d, 0xa9, 0x95, 0xe2, 0x69, 0x8b, 0x24, 0x9c, 0x2d, - 0x21, 0x71, 0xed, 0x96, 0x15, 0x33, 0x7e, 0x32, 0xc9, 0x6c, 0xab, 0xdd, 0x64, 0x23, 0x18, 0xf2, - 0xb6, 0xf2, 0x20, 0x70, 0xa7, 0xaf, 0x37, 0xc6, 0x0a, 0x2e, 0x4c, 0x4d, 0xf6, 0xdc, 0x89, 0x2d, - 0xf2, 0x52, 0xaa, 0x4a, 0xad, 0x37, 0xa4, 0x3f, 0xfb, 0x1a, 0x62, 0xd7, 0xe4, 0xf1, 0xa6, 0x41, - 0x77, 0x05, 0x4d, 0xc5, 0xb8, 0x6b, 0x01, 0x10, 0x31, 0xee, 0x76, 0x25, 0x81, 0x8b, 0x51, 0x5a, - 0x61, 0x37, 0xdd, 0x81, 0x4a, 0x64, 0xc5, 0xd3, 0xd6, 0x8b, 0x4a, 0xfa, 0x0f, 0xf2, 0x17, 0xe7, - 0x93, 0xe0, 0xe5, 0xf9, 0x24, 0xf8, 0xfb, 0x7c, 0x12, 0xfc, 0x76, 0x31, 0xe9, 0xbd, 0xbc, 0x98, - 0xf4, 0xfe, 0xbc, 0x98, 0xf4, 0x7e, 0xfa, 0xea, 0xda, 0x57, 0x76, 0x4b, 0xe6, 0xc5, 0xf2, 0xea, - 0xf9, 0x7d, 0x7e, 0xed, 0x29, 0xf6, 0xdf, 0xde, 0x2a, 0xf2, 0xba, 0x7c, 0xf9, 0x4f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x92, 0x69, 0x4e, 0x10, 0xae, 0x07, 0x00, 0x00, + 0x58, 0x32, 0x53, 0x7a, 0x93, 0x26, 0xb9, 0x8f, 0x6f, 0xfa, 0xf7, 0xe8, 0xbf, 0xfc, 0x4b, 0xef, + 0xea, 0xdf, 0x4f, 0x21, 0x79, 0x22, 0x6a, 0x3c, 0xb5, 0xac, 0x6e, 0xdc, 0x46, 0xf6, 0x12, 0x78, + 0x0f, 0x87, 0xf9, 0x36, 0x31, 0xf9, 0x2d, 0x80, 0xa8, 0xf3, 0x06, 0x05, 0x88, 0x0c, 0x2f, 0xb1, + 0x46, 0xd2, 0xa3, 0xfb, 0x90, 0xf8, 0xf7, 0xb6, 0xd3, 0x9b, 0x04, 0x34, 0x81, 0x81, 0xd5, 0x82, + 0x55, 0x64, 0xc7, 0x9f, 0xa0, 0xae, 0x99, 0x44, 0x69, 0x49, 0xdf, 0x41, 0xd3, 0x9a, 0x06, 0x65, + 0x81, 0x05, 0x09, 0x1d, 0xc7, 0x82, 0x49, 0x89, 0x05, 0x19, 0xd0, 0x03, 0x80, 0x2e, 0x3e, 0x55, + 0x4a, 0x92, 0x88, 0x52, 0x38, 0xe8, 0xf0, 0x53, 0xd4, 0x6b, 0x9f, 0x1b, 0xd2, 0x18, 0x42, 0xa9, + 0x24, 0x92, 0x98, 0x1e, 0xc1, 0x3e, 0x2b, 0x56, 0x28, 0x6d, 0xab, 0xf1, 0xc4, 0x62, 0x4d, 0x92, + 0xc9, 0xf7, 0x00, 0xdb, 0xe5, 0x1c, 0x35, 0x57, 0x75, 0xad, 0x24, 0xe9, 0xd1, 0x3d, 0x88, 0x5b, + 0xb9, 0x41, 0x81, 0x23, 0xd1, 0x4c, 0x23, 0xd9, 0xa1, 0x87, 0xb0, 0x8b, 0x2f, 0x38, 0x36, 0x56, + 0x28, 0xc9, 0x2a, 0xd2, 0x77, 0x4d, 0xad, 0x14, 0xcf, 0x5a, 0x24, 0xe1, 0x64, 0x0e, 0x89, 0xa3, + 0x9b, 0x57, 0xcc, 0xf8, 0x65, 0x25, 0x73, 0xb3, 0x48, 0x8f, 0xee, 0xc2, 0x90, 0xb7, 0x95, 0x07, + 0x81, 0x5b, 0xa8, 0x5e, 0x1b, 0x2b, 0xb8, 0x30, 0x35, 0xd9, 0x71, 0x4b, 0x58, 0xe4, 0xa5, 0x54, + 0x95, 0x5a, 0xae, 0x49, 0x7f, 0xf2, 0x35, 0xc4, 0x8e, 0xe4, 0xc9, 0xba, 0x41, 0x77, 0x2b, 0x4d, + 0xc5, 0xb8, 0xa3, 0x00, 0x88, 0x18, 0x77, 0x53, 0x49, 0xe0, 0x62, 0x94, 0x56, 0xd8, 0x75, 0xf7, + 0x87, 0x4a, 0x64, 0xc5, 0xb3, 0xd6, 0xeb, 0x4c, 0xfa, 0x8f, 0xf2, 0x97, 0xe7, 0xa3, 0xe0, 0xd5, + 0xf9, 0x28, 0xf8, 0xfb, 0x7c, 0x14, 0xfc, 0x7a, 0x31, 0xea, 0xbd, 0xba, 0x18, 0xf5, 0xfe, 0xbc, + 0x18, 0xf5, 0x7e, 0xfa, 0xea, 0xda, 0x83, 0x77, 0x4b, 0xf9, 0xd9, 0xfc, 0xea, 0x8b, 0xfc, 0xe2, + 0xda, 0xd7, 0xd9, 0x3f, 0x8e, 0x8b, 0xc8, 0x4b, 0xf5, 0xe5, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, + 0xc3, 0xca, 0x6a, 0x0a, 0xc1, 0x07, 0x00, 0x00, } func (m *Card) Marshal() (dAtA []byte, err error) { diff --git a/x/cardchain/types/user.pb.go b/x/cardchain/types/user.pb.go index 00de4a2a..8c620ada 100644 --- a/x/cardchain/types/user.pb.go +++ b/x/cardchain/types/user.pb.go @@ -102,6 +102,8 @@ type User struct { VotableCards []uint64 `protobuf:"varint,13,rep,packed,name=votableCards,proto3" json:"votableCards,omitempty"` VotedCards []uint64 `protobuf:"varint,14,rep,packed,name=votedCards,proto3" json:"votedCards,omitempty"` EarlyAccess *EarlyAccess `protobuf:"bytes,15,opt,name=earlyAccess,proto3" json:"earlyAccess,omitempty"` + OpenEncounters []uint64 `protobuf:"varint,16,rep,packed,name=OpenEncounters,proto3" json:"OpenEncounters,omitempty"` + WonEncounters []uint64 `protobuf:"varint,17,rep,packed,name=WonEncounters,proto3" json:"WonEncounters,omitempty"` } func (m *User) Reset() { *m = User{} } @@ -235,6 +237,20 @@ func (m *User) GetEarlyAccess() *EarlyAccess { return nil } +func (m *User) GetOpenEncounters() []uint64 { + if m != nil { + return m.OpenEncounters + } + return nil +} + +func (m *User) GetWonEncounters() []uint64 { + if m != nil { + return m.WonEncounters + } + return nil +} + type EarlyAccess struct { Active bool `protobuf:"varint,1,opt,name=active,proto3" json:"active,omitempty"` InvitedByUser string `protobuf:"bytes,2,opt,name=invitedByUser,proto3" json:"invitedByUser,omitempty"` @@ -453,49 +469,51 @@ func init() { func init() { proto.RegisterFile("cardchain/cardchain/user.proto", fileDescriptor_eb1a13ac65ffc756) } var fileDescriptor_eb1a13ac65ffc756 = []byte{ - // 673 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0x4f, 0x6f, 0xd3, 0x30, - 0x14, 0x6f, 0x9a, 0x6c, 0x4d, 0x5f, 0xd6, 0x2d, 0x58, 0x08, 0x59, 0x08, 0x45, 0x51, 0x05, 0x52, - 0x34, 0xa1, 0x56, 0x2a, 0x1c, 0x38, 0x70, 0xd9, 0x1f, 0x84, 0x10, 0x42, 0x9a, 0xbc, 0xc1, 0x61, - 0x37, 0x37, 0x35, 0xab, 0x45, 0x1a, 0x47, 0xb6, 0xdb, 0xd1, 0x6f, 0xc1, 0x95, 0x33, 0x5f, 0x86, - 0xe3, 0x8e, 0x1c, 0xd1, 0xf6, 0x45, 0x90, 0x9d, 0xb4, 0x49, 0x37, 0x0e, 0xbd, 0xbd, 0xf7, 0xf3, - 0x7b, 0xbf, 0xf7, 0xd7, 0x0f, 0xa2, 0x94, 0xca, 0x49, 0x3a, 0xa5, 0x3c, 0x1f, 0xd6, 0xd2, 0x5c, - 0x31, 0x39, 0x28, 0xa4, 0xd0, 0x02, 0xbd, 0x38, 0x65, 0x29, 0xcb, 0xb5, 0xa4, 0xd9, 0x09, 0x95, - 0x93, 0xf7, 0x74, 0xc6, 0x06, 0x6b, 0xbb, 0x5a, 0x7a, 0x1a, 0xff, 0x8f, 0x66, 0x21, 0x34, 0xcf, - 0xaf, 0x4a, 0xa2, 0xfe, 0xaf, 0x1d, 0xf0, 0x3e, 0x2b, 0x26, 0xd1, 0x63, 0xd8, 0xa1, 0x19, 0xa7, - 0x0a, 0x3b, 0xb1, 0x93, 0x74, 0x49, 0xa9, 0xa0, 0x43, 0x08, 0xc5, 0x75, 0xce, 0x26, 0x26, 0xca, - 0x79, 0x3a, 0x65, 0x33, 0xa6, 0x70, 0x3b, 0x76, 0x13, 0x8f, 0x3c, 0xc0, 0x51, 0x02, 0x07, 0x16, - 0x3b, 0x33, 0xc4, 0x7a, 0x59, 0x30, 0x85, 0x5d, 0x6b, 0x7a, 0x1f, 0x36, 0xb1, 0x4c, 0x3a, 0x0a, - 0x7b, 0xf6, 0xbd, 0x54, 0xd0, 0x25, 0xf4, 0x4e, 0xc4, 0x3c, 0x4f, 0x79, 0x76, 0xae, 0xa9, 0x9e, - 0x2b, 0xbc, 0x1b, 0x3b, 0xc9, 0xfe, 0xe8, 0xf5, 0x60, 0xab, 0x5a, 0x07, 0x1b, 0xbe, 0x64, 0x93, - 0x0a, 0x3d, 0x87, 0x1e, 0x61, 0x85, 0x90, 0xfa, 0x13, 0xd5, 0xe9, 0x94, 0x29, 0xdc, 0x89, 0x9d, - 0xc4, 0x27, 0x9b, 0x20, 0x8a, 0x21, 0x28, 0xa4, 0xf8, 0xca, 0x33, 0x66, 0x22, 0x61, 0x3f, 0x76, - 0x12, 0x8f, 0x34, 0x21, 0xf4, 0x11, 0x7c, 0xca, 0xe5, 0xa9, 0x14, 0x85, 0xc2, 0xdd, 0xd8, 0x49, - 0x82, 0xd1, 0x70, 0xcb, 0xf4, 0x8e, 0x2a, 0x37, 0xb2, 0x26, 0x40, 0x5f, 0x60, 0x6f, 0x2c, 0x84, - 0xd2, 0x4c, 0x9e, 0xd1, 0xf4, 0x9b, 0xc2, 0x10, 0xbb, 0x49, 0x30, 0x1a, 0x6d, 0x49, 0x78, 0x5c, - 0xbb, 0x92, 0x0d, 0x1e, 0x84, 0xa1, 0x73, 0xcd, 0xc6, 0x8a, 0x6b, 0x86, 0x03, 0x3b, 0xcc, 0x95, - 0x8a, 0x9e, 0x41, 0x77, 0xcc, 0xc5, 0x95, 0xa4, 0xc5, 0x74, 0x89, 0xf7, 0xec, 0x5b, 0x0d, 0xa0, - 0x3e, 0xec, 0x2d, 0x84, 0xa6, 0xe3, 0xb2, 0x56, 0x85, 0x7b, 0x76, 0x3a, 0x1b, 0x18, 0x8a, 0x00, - 0x16, 0x42, 0x97, 0x83, 0x57, 0x78, 0xdf, 0x5a, 0x34, 0x10, 0x74, 0x01, 0x01, 0xa3, 0x32, 0x5b, - 0x1e, 0xa5, 0x29, 0x53, 0x0a, 0x1f, 0xd8, 0x1e, 0x6d, 0x5b, 0xd2, 0xbb, 0xda, 0x93, 0x34, 0x69, - 0xfa, 0x33, 0x08, 0x1a, 0x6f, 0xe8, 0x09, 0xec, 0xd2, 0x54, 0xf3, 0x05, 0xb3, 0xcb, 0xea, 0x93, - 0x4a, 0x33, 0x53, 0xe6, 0xf9, 0x82, 0x6b, 0x36, 0x39, 0x5e, 0x9a, 0xa5, 0xc6, 0x6d, 0x5b, 0xe2, - 0x26, 0x68, 0xa6, 0x5c, 0x01, 0xd6, 0xc6, 0xb5, 0x36, 0x4d, 0xa8, 0xff, 0xd3, 0x81, 0xa0, 0xd1, - 0x5e, 0xb3, 0xaf, 0x8a, 0xe9, 0x0f, 0x13, 0x1b, 0xce, 0x23, 0xa5, 0x62, 0x9a, 0xa9, 0xf9, 0x8c, - 0x9d, 0x6b, 0x3a, 0x2b, 0x6c, 0x24, 0x97, 0xd4, 0x80, 0xf9, 0x0d, 0x92, 0x4a, 0xae, 0x39, 0x53, - 0x67, 0x25, 0xcd, 0xea, 0x37, 0xdc, 0x83, 0xd1, 0x4b, 0x78, 0x34, 0x91, 0xa2, 0x20, 0x54, 0x73, - 0xb1, 0xb6, 0x2d, 0x7f, 0xc6, 0xc3, 0x87, 0x7e, 0x01, 0xfe, 0x6a, 0x95, 0x10, 0x02, 0xcf, 0xb4, - 0xbe, 0xea, 0x82, 0x95, 0x4d, 0x6f, 0x52, 0xc9, 0xa8, 0x66, 0x36, 0x25, 0x9f, 0x54, 0x1a, 0x0a, - 0xc1, 0x1d, 0xcf, 0x97, 0xb6, 0x5a, 0x9f, 0x18, 0xd1, 0x78, 0x17, 0x19, 0x5d, 0x62, 0xaf, 0xf4, - 0x36, 0xb2, 0xc1, 0xcc, 0x95, 0xc1, 0x3b, 0x25, 0x66, 0xe4, 0xc3, 0x8b, 0x7b, 0xff, 0x12, 0xf5, - 0xa0, 0x4b, 0x17, 0x94, 0x67, 0x66, 0x2b, 0xc2, 0x16, 0x3a, 0x80, 0x60, 0x9e, 0xd7, 0x80, 0x63, - 0x00, 0x51, 0xb0, 0xbc, 0x72, 0x0a, 0xdb, 0x08, 0xc1, 0xbe, 0xd2, 0x54, 0x9a, 0x25, 0xa9, 0x30, - 0xf7, 0xf0, 0x2d, 0x74, 0xaa, 0x3a, 0x90, 0x5f, 0x26, 0x12, 0xb6, 0x8c, 0x64, 0x8a, 0x08, 0x1d, - 0x04, 0xab, 0x32, 0xc2, 0x36, 0xea, 0xd8, 0xd4, 0x43, 0xd7, 0x3c, 0x9b, 0x8c, 0x42, 0xef, 0x98, - 0xfc, 0xbe, 0x8d, 0x9c, 0x9b, 0xdb, 0xc8, 0xf9, 0x7b, 0x1b, 0x39, 0x3f, 0xee, 0xa2, 0xd6, 0xcd, - 0x5d, 0xd4, 0xfa, 0x73, 0x17, 0xb5, 0x2e, 0xdf, 0x5c, 0x71, 0x3d, 0x9d, 0x8f, 0x07, 0xa9, 0x98, - 0x0d, 0x1f, 0x6c, 0xdd, 0xf0, 0x64, 0x7d, 0x05, 0xbf, 0x37, 0x2e, 0xa2, 0xbd, 0x4a, 0xe3, 0x5d, - 0x7b, 0x11, 0x5f, 0xfd, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x50, 0xcc, 0xa9, 0x83, 0x7c, 0x05, 0x00, + // 705 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xcd, 0x6e, 0x13, 0x3f, + 0x10, 0xc0, 0xb3, 0xd9, 0x6d, 0xb3, 0x99, 0x6d, 0xd2, 0xad, 0xf5, 0xd7, 0x5f, 0x16, 0x42, 0xab, + 0x55, 0x04, 0x68, 0x55, 0xa1, 0x44, 0x0a, 0x1c, 0x38, 0x70, 0xe9, 0x97, 0x10, 0x42, 0x88, 0xca, + 0x2d, 0x20, 0xf5, 0xe6, 0x6c, 0x4c, 0x63, 0x91, 0xac, 0x57, 0xb6, 0x93, 0x92, 0xb7, 0xe0, 0xca, + 0x1b, 0x71, 0xec, 0x91, 0x23, 0x6a, 0x9f, 0x80, 0x37, 0x40, 0xf6, 0x6e, 0x92, 0x4d, 0xca, 0x21, + 0xb7, 0x99, 0x9f, 0xe7, 0xd3, 0x33, 0x36, 0x44, 0x29, 0x95, 0xc3, 0x74, 0x44, 0x79, 0xd6, 0x5b, + 0x49, 0x53, 0xc5, 0x64, 0x37, 0x97, 0x42, 0x0b, 0xf4, 0xf4, 0x94, 0xa5, 0x2c, 0xd3, 0x92, 0x8e, + 0x4f, 0xa8, 0x1c, 0xbe, 0xa1, 0x13, 0xd6, 0x5d, 0xda, 0xad, 0xa4, 0x47, 0xf1, 0xbf, 0xc2, 0xcc, + 0x84, 0xe6, 0xd9, 0x75, 0x11, 0xa8, 0xf3, 0x67, 0x07, 0xbc, 0x8f, 0x8a, 0x49, 0xf4, 0x1f, 0xec, + 0xd0, 0x31, 0xa7, 0x0a, 0x3b, 0xb1, 0x93, 0x34, 0x49, 0xa1, 0xa0, 0x43, 0x08, 0xc5, 0x4d, 0xc6, + 0x86, 0x26, 0xcb, 0x45, 0x3a, 0x62, 0x13, 0xa6, 0x70, 0x3d, 0x76, 0x13, 0x8f, 0x3c, 0xe0, 0x28, + 0x81, 0x7d, 0xcb, 0xce, 0x4d, 0x60, 0x3d, 0xcf, 0x99, 0xc2, 0xae, 0x35, 0xdd, 0xc4, 0x26, 0x97, + 0x29, 0x47, 0x61, 0xcf, 0x9e, 0x17, 0x0a, 0xba, 0x82, 0xd6, 0x89, 0x98, 0x66, 0x29, 0x1f, 0x5f, + 0x68, 0xaa, 0xa7, 0x0a, 0xef, 0xc6, 0x4e, 0xd2, 0xee, 0xbf, 0xec, 0x6e, 0xd5, 0x6b, 0x77, 0xcd, + 0x97, 0xac, 0x87, 0x42, 0x4f, 0xa0, 0x45, 0x58, 0x2e, 0xa4, 0x7e, 0x4f, 0x75, 0x3a, 0x62, 0x0a, + 0x37, 0x62, 0x27, 0xf1, 0xc9, 0x3a, 0x44, 0x31, 0x04, 0xb9, 0x14, 0x5f, 0xf8, 0x98, 0x99, 0x4c, + 0xd8, 0x8f, 0x9d, 0xc4, 0x23, 0x55, 0x84, 0xde, 0x81, 0x4f, 0xb9, 0x3c, 0x95, 0x22, 0x57, 0xb8, + 0x19, 0x3b, 0x49, 0xd0, 0xef, 0x6d, 0x59, 0xde, 0x51, 0xe9, 0x46, 0x96, 0x01, 0xd0, 0x27, 0xd8, + 0x1b, 0x08, 0xa1, 0x34, 0x93, 0xe7, 0x34, 0xfd, 0xaa, 0x30, 0xc4, 0x6e, 0x12, 0xf4, 0xfb, 0x5b, + 0x06, 0x3c, 0x5e, 0xb9, 0x92, 0xb5, 0x38, 0x08, 0x43, 0xe3, 0x86, 0x0d, 0x14, 0xd7, 0x0c, 0x07, + 0x76, 0x98, 0x0b, 0x15, 0x3d, 0x86, 0xe6, 0x80, 0x8b, 0x6b, 0x49, 0xf3, 0xd1, 0x1c, 0xef, 0xd9, + 0xb3, 0x15, 0x40, 0x1d, 0xd8, 0x9b, 0x09, 0x4d, 0x07, 0x45, 0xaf, 0x0a, 0xb7, 0xec, 0x74, 0xd6, + 0x18, 0x8a, 0x00, 0x66, 0x42, 0x17, 0x83, 0x57, 0xb8, 0x6d, 0x2d, 0x2a, 0x04, 0x5d, 0x42, 0xc0, + 0xa8, 0x1c, 0xcf, 0x8f, 0xd2, 0x94, 0x29, 0x85, 0xf7, 0xed, 0x1d, 0x6d, 0xdb, 0xd2, 0xd9, 0xca, + 0x93, 0x54, 0xc3, 0xa0, 0x67, 0xd0, 0xfe, 0x90, 0xb3, 0xec, 0x2c, 0x4b, 0xc5, 0x34, 0xd3, 0x4c, + 0x2a, 0x1c, 0xda, 0xcc, 0x1b, 0xd4, 0x8c, 0xf9, 0xb3, 0xa8, 0x9a, 0x1d, 0x58, 0xb3, 0x75, 0xd8, + 0x99, 0x40, 0x50, 0xc9, 0x84, 0xfe, 0x87, 0x5d, 0x9a, 0x6a, 0x3e, 0x63, 0x76, 0xf5, 0x7d, 0x52, + 0x6a, 0x26, 0x18, 0xcf, 0x66, 0x5c, 0xb3, 0xe1, 0xf1, 0xdc, 0x3c, 0x11, 0x5c, 0xb7, 0x17, 0xb6, + 0x0e, 0xcd, 0xce, 0x94, 0xc0, 0xda, 0xb8, 0xd6, 0xa6, 0x8a, 0x3a, 0x3f, 0x1c, 0x08, 0x2a, 0xc3, + 0x32, 0xdb, 0xaf, 0x98, 0x7e, 0x3b, 0xb4, 0xe9, 0x3c, 0x52, 0x28, 0x66, 0x34, 0x9a, 0x4f, 0xd8, + 0x85, 0xa6, 0x93, 0xdc, 0x66, 0x72, 0xc9, 0x0a, 0x98, 0xb7, 0x25, 0xa9, 0xe4, 0x9a, 0x33, 0x75, + 0x5e, 0x84, 0x59, 0xbc, 0xad, 0x0d, 0x8c, 0x9e, 0xc3, 0xc1, 0x50, 0x8a, 0x9c, 0x50, 0xcd, 0xc5, + 0xd2, 0xb6, 0x78, 0x67, 0x0f, 0x0f, 0x3a, 0x39, 0xf8, 0x8b, 0xc5, 0x44, 0x08, 0x3c, 0x33, 0xc8, + 0xf2, 0x16, 0xac, 0x6c, 0xee, 0x26, 0x95, 0x8c, 0x6a, 0x66, 0x4b, 0xf2, 0x49, 0xa9, 0xa1, 0x10, + 0xdc, 0xc1, 0x74, 0x6e, 0xbb, 0xf5, 0x89, 0x11, 0x8d, 0x77, 0x3e, 0xa6, 0x73, 0xec, 0x15, 0xde, + 0x46, 0x36, 0xcc, 0xfc, 0x59, 0x78, 0xa7, 0x60, 0x46, 0x3e, 0xbc, 0xdc, 0x78, 0xe5, 0xa8, 0x05, + 0x4d, 0x3a, 0xa3, 0x7c, 0x6c, 0x76, 0x2c, 0xac, 0xa1, 0x7d, 0x08, 0xa6, 0xd9, 0x0a, 0x38, 0x06, + 0x88, 0x9c, 0x65, 0xa5, 0x53, 0x58, 0x47, 0x08, 0xda, 0x4a, 0x53, 0x69, 0x56, 0xae, 0x64, 0xee, + 0xe1, 0x6b, 0x68, 0x94, 0x7d, 0x20, 0xbf, 0x28, 0x24, 0xac, 0x19, 0xc9, 0x34, 0x11, 0x3a, 0x08, + 0x16, 0x6d, 0x84, 0x75, 0xd4, 0xb0, 0xa5, 0x87, 0xae, 0x39, 0x36, 0x15, 0x85, 0xde, 0x31, 0xf9, + 0x79, 0x17, 0x39, 0xb7, 0x77, 0x91, 0xf3, 0xfb, 0x2e, 0x72, 0xbe, 0xdf, 0x47, 0xb5, 0xdb, 0xfb, + 0xa8, 0xf6, 0xeb, 0x3e, 0xaa, 0x5d, 0xbd, 0xba, 0xe6, 0x7a, 0x34, 0x1d, 0x74, 0x53, 0x31, 0xe9, + 0x3d, 0xd8, 0xe1, 0xde, 0xc9, 0xf2, 0x4f, 0xfd, 0x56, 0xf9, 0x5f, 0xed, 0x1f, 0x37, 0xd8, 0xb5, + 0xff, 0xeb, 0x8b, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xcd, 0xe0, 0xd1, 0x12, 0xca, 0x05, 0x00, 0x00, } @@ -519,6 +537,46 @@ func (m *User) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.WonEncounters) > 0 { + dAtA2 := make([]byte, len(m.WonEncounters)*10) + var j1 int + for _, num := range m.WonEncounters { + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ + } + i -= j1 + copy(dAtA[i:], dAtA2[:j1]) + i = encodeVarintUser(dAtA, i, uint64(j1)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + if len(m.OpenEncounters) > 0 { + dAtA4 := make([]byte, len(m.OpenEncounters)*10) + var j3 int + for _, num := range m.OpenEncounters { + for num >= 1<<7 { + dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j3++ + } + dAtA4[j3] = uint8(num) + j3++ + } + i -= j3 + copy(dAtA[i:], dAtA4[:j3]) + i = encodeVarintUser(dAtA, i, uint64(j3)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } if m.EarlyAccess != nil { { size, err := m.EarlyAccess.MarshalToSizedBuffer(dAtA[:i]) @@ -532,38 +590,38 @@ func (m *User) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x7a } if len(m.VotedCards) > 0 { - dAtA3 := make([]byte, len(m.VotedCards)*10) - var j2 int + dAtA7 := make([]byte, len(m.VotedCards)*10) + var j6 int for _, num := range m.VotedCards { for num >= 1<<7 { - dAtA3[j2] = uint8(uint64(num)&0x7f | 0x80) + dAtA7[j6] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j2++ + j6++ } - dAtA3[j2] = uint8(num) - j2++ + dAtA7[j6] = uint8(num) + j6++ } - i -= j2 - copy(dAtA[i:], dAtA3[:j2]) - i = encodeVarintUser(dAtA, i, uint64(j2)) + i -= j6 + copy(dAtA[i:], dAtA7[:j6]) + i = encodeVarintUser(dAtA, i, uint64(j6)) i-- dAtA[i] = 0x72 } if len(m.VotableCards) > 0 { - dAtA5 := make([]byte, len(m.VotableCards)*10) - var j4 int + dAtA9 := make([]byte, len(m.VotableCards)*10) + var j8 int for _, num := range m.VotableCards { for num >= 1<<7 { - dAtA5[j4] = uint8(uint64(num)&0x7f | 0x80) + dAtA9[j8] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j4++ + j8++ } - dAtA5[j4] = uint8(num) - j4++ + dAtA9[j8] = uint8(num) + j8++ } - i -= j4 - copy(dAtA[i:], dAtA5[:j4]) - i = encodeVarintUser(dAtA, i, uint64(j4)) + i -= j8 + copy(dAtA[i:], dAtA9[:j8]) + i = encodeVarintUser(dAtA, i, uint64(j8)) i-- dAtA[i] = 0x6a } @@ -628,56 +686,56 @@ func (m *User) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x30 } if len(m.Cards) > 0 { - dAtA8 := make([]byte, len(m.Cards)*10) - var j7 int + dAtA12 := make([]byte, len(m.Cards)*10) + var j11 int for _, num := range m.Cards { for num >= 1<<7 { - dAtA8[j7] = uint8(uint64(num)&0x7f | 0x80) + dAtA12[j11] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j7++ + j11++ } - dAtA8[j7] = uint8(num) - j7++ + dAtA12[j11] = uint8(num) + j11++ } - i -= j7 - copy(dAtA[i:], dAtA8[:j7]) - i = encodeVarintUser(dAtA, i, uint64(j7)) + i -= j11 + copy(dAtA[i:], dAtA12[:j11]) + i = encodeVarintUser(dAtA, i, uint64(j11)) i-- dAtA[i] = 0x22 } if len(m.OwnedPrototypes) > 0 { - dAtA10 := make([]byte, len(m.OwnedPrototypes)*10) - var j9 int + dAtA14 := make([]byte, len(m.OwnedPrototypes)*10) + var j13 int for _, num := range m.OwnedPrototypes { for num >= 1<<7 { - dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) + dAtA14[j13] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j9++ + j13++ } - dAtA10[j9] = uint8(num) - j9++ + dAtA14[j13] = uint8(num) + j13++ } - i -= j9 - copy(dAtA[i:], dAtA10[:j9]) - i = encodeVarintUser(dAtA, i, uint64(j9)) + i -= j13 + copy(dAtA[i:], dAtA14[:j13]) + i = encodeVarintUser(dAtA, i, uint64(j13)) i-- dAtA[i] = 0x1a } if len(m.OwnedCardSchemes) > 0 { - dAtA12 := make([]byte, len(m.OwnedCardSchemes)*10) - var j11 int + dAtA16 := make([]byte, len(m.OwnedCardSchemes)*10) + var j15 int for _, num := range m.OwnedCardSchemes { for num >= 1<<7 { - dAtA12[j11] = uint8(uint64(num)&0x7f | 0x80) + dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j11++ + j15++ } - dAtA12[j11] = uint8(num) - j11++ + dAtA16[j15] = uint8(num) + j15++ } - i -= j11 - copy(dAtA[i:], dAtA12[:j11]) - i = encodeVarintUser(dAtA, i, uint64(j11)) + i -= j15 + copy(dAtA[i:], dAtA16[:j15]) + i = encodeVarintUser(dAtA, i, uint64(j15)) i-- dAtA[i] = 0x12 } @@ -759,38 +817,38 @@ func (m *BoosterPack) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.DropRatiosPerPack) > 0 { - dAtA14 := make([]byte, len(m.DropRatiosPerPack)*10) - var j13 int + dAtA18 := make([]byte, len(m.DropRatiosPerPack)*10) + var j17 int for _, num := range m.DropRatiosPerPack { for num >= 1<<7 { - dAtA14[j13] = uint8(uint64(num)&0x7f | 0x80) + dAtA18[j17] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j13++ + j17++ } - dAtA14[j13] = uint8(num) - j13++ + dAtA18[j17] = uint8(num) + j17++ } - i -= j13 - copy(dAtA[i:], dAtA14[:j13]) - i = encodeVarintUser(dAtA, i, uint64(j13)) + i -= j17 + copy(dAtA[i:], dAtA18[:j17]) + i = encodeVarintUser(dAtA, i, uint64(j17)) i-- dAtA[i] = 0x22 } if len(m.RaritiesPerPack) > 0 { - dAtA16 := make([]byte, len(m.RaritiesPerPack)*10) - var j15 int + dAtA20 := make([]byte, len(m.RaritiesPerPack)*10) + var j19 int for _, num := range m.RaritiesPerPack { for num >= 1<<7 { - dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80) + dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j15++ + j19++ } - dAtA16[j15] = uint8(num) - j15++ + dAtA20[j19] = uint8(num) + j19++ } - i -= j15 - copy(dAtA[i:], dAtA16[:j15]) - i = encodeVarintUser(dAtA, i, uint64(j15)) + i -= j19 + copy(dAtA[i:], dAtA20[:j19]) + i = encodeVarintUser(dAtA, i, uint64(j19)) i-- dAtA[i] = 0x1a } @@ -967,6 +1025,20 @@ func (m *User) Size() (n int) { l = m.EarlyAccess.Size() n += 1 + l + sovUser(uint64(l)) } + if len(m.OpenEncounters) > 0 { + l = 0 + for _, e := range m.OpenEncounters { + l += sovUser(uint64(e)) + } + n += 2 + sovUser(uint64(l)) + l + } + if len(m.WonEncounters) > 0 { + l = 0 + for _, e := range m.WonEncounters { + l += sovUser(uint64(e)) + } + n += 2 + sovUser(uint64(l)) + l + } return n } @@ -1718,6 +1790,158 @@ func (m *User) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 16: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUser + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.OpenEncounters = append(m.OpenEncounters, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUser + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthUser + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthUser + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.OpenEncounters) == 0 { + m.OpenEncounters = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUser + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.OpenEncounters = append(m.OpenEncounters, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field OpenEncounters", wireType) + } + case 17: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUser + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.WonEncounters = append(m.WonEncounters, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUser + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthUser + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthUser + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.WonEncounters) == 0 { + m.WonEncounters = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUser + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.WonEncounters = append(m.WonEncounters, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field WonEncounters", wireType) + } default: iNdEx = preIndex skippy, err := skipUser(dAtA[iNdEx:]) From 292cf191eee66d013859d7772684e64b7c450462 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Mon, 30 Sep 2024 20:51:36 +0200 Subject: [PATCH 04/20] feat(#237): Added EncouterBaseTX --- docs/static/openapi.yml | 6 + proto/cardchain/cardchain/tx.proto | 27 +- x/cardchain/client/cli/tx.go | 3 + x/cardchain/module_simulation.go | 45 + x/cardchain/types/codec.go | 12 + x/cardchain/types/tx.pb.go | 1684 +++++++++++++++++++++++++--- 6 files changed, 1598 insertions(+), 179 deletions(-) diff --git a/docs/static/openapi.yml b/docs/static/openapi.yml index ec76af80..704d8e8c 100644 --- a/docs/static/openapi.yml +++ b/docs/static/openapi.yml @@ -69136,6 +69136,12 @@ definitions: type: object DecentralCardGame.cardchain.cardchain.MsgDonateToCardResponse: type: object + DecentralCardGame.cardchain.cardchain.MsgEncounterCloseResponse: + type: object + DecentralCardGame.cardchain.cardchain.MsgEncounterCreateResponse: + type: object + DecentralCardGame.cardchain.cardchain.MsgEncounterDoResponse: + type: object DecentralCardGame.cardchain.cardchain.MsgFinalizeSetResponse: type: object DecentralCardGame.cardchain.cardchain.MsgInviteEarlyAccessResponse: diff --git a/proto/cardchain/cardchain/tx.proto b/proto/cardchain/cardchain/tx.proto index 57fb870b..378f4a10 100644 --- a/proto/cardchain/cardchain/tx.proto +++ b/proto/cardchain/cardchain/tx.proto @@ -61,6 +61,9 @@ service Msg { rpc InviteEarlyAccess (MsgInviteEarlyAccess ) returns (MsgInviteEarlyAccessResponse ); rpc DisinviteEarlyAccess (MsgDisinviteEarlyAccess) returns (MsgDisinviteEarlyAccessResponse); rpc ConnectZealyAccount (MsgConnectZealyAccount ) returns (MsgConnectZealyAccountResponse ); + rpc EncounterCreate (MsgEncounterCreate ) returns (MsgEncounterCreateResponse ); + rpc EncounterDo (MsgEncounterDo ) returns (MsgEncounterDoResponse ); + rpc EncounterClose (MsgEncounterClose ) returns (MsgEncounterCloseResponse ); } message MsgCreateuser { string creator = 1; @@ -77,7 +80,7 @@ message MsgBuyCardScheme { cosmos.base.v1beta1.Coin bid = 2 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coin"]; /* - string bid = 2; + string bid = 2; */} message MsgBuyCardSchemeResponse { @@ -431,3 +434,25 @@ message MsgConnectZealyAccount { message MsgConnectZealyAccountResponse {} +message MsgEncounterCreate { + string creator = 1; + repeated uint64 Drawlist = 2; + map parameters = 3; +} + +message MsgEncounterCreateResponse {} + +message MsgEncounterDo { + string creator = 1; + uint64 encounterId = 2; +} + +message MsgEncounterDoResponse {} + +message MsgEncounterClose { + string creator = 1; + uint64 encounterId = 2; +} + +message MsgEncounterCloseResponse {} + diff --git a/x/cardchain/client/cli/tx.go b/x/cardchain/client/cli/tx.go index ba60a1a4..298e7b52 100644 --- a/x/cardchain/client/cli/tx.go +++ b/x/cardchain/client/cli/tx.go @@ -73,6 +73,9 @@ func GetTxCmd() *cobra.Command { cmd.AddCommand(CmdInviteEarlyAccess()) cmd.AddCommand(CmdDisinviteEarlyAccess()) cmd.AddCommand(CmdConnectZealyAccount()) + cmd.AddCommand(CmdEncounterCreate()) + cmd.AddCommand(CmdEncounterDo()) + cmd.AddCommand(CmdEncounterClose()) // this line is used by starport scaffolding # 1 return cmd diff --git a/x/cardchain/module_simulation.go b/x/cardchain/module_simulation.go index dae5899c..8023581b 100644 --- a/x/cardchain/module_simulation.go +++ b/x/cardchain/module_simulation.go @@ -212,6 +212,18 @@ const ( // TODO: Determine the simulation weight value defaultWeightMsgConnectZealyAccount int = 100 + opWeightMsgEncounterCreate = "op_weight_msg_encounter_create" + // TODO: Determine the simulation weight value + defaultWeightMsgEncounterCreate int = 100 + + opWeightMsgEncounterDo = "op_weight_msg_encounter_do" + // TODO: Determine the simulation weight value + defaultWeightMsgEncounterDo int = 100 + + opWeightMsgEncounterClose = "op_weight_msg_encounter_close" + // TODO: Determine the simulation weight value + defaultWeightMsgEncounterClose int = 100 + // this line is used by starport scaffolding # simapp/module/const ) @@ -729,6 +741,39 @@ func (am AppModule) WeightedOperations(simState module.SimulationState) []simtyp cardchainsimulation.SimulateMsgConnectZealyAccount(am.accountKeeper, am.bankKeeper, am.keeper), )) + var weightMsgEncounterCreate int + simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgEncounterCreate, &weightMsgEncounterCreate, nil, + func(_ *rand.Rand) { + weightMsgEncounterCreate = defaultWeightMsgEncounterCreate + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgEncounterCreate, + cardchainsimulation.SimulateMsgEncounterCreate(am.accountKeeper, am.bankKeeper, am.keeper), + )) + + var weightMsgEncounterDo int + simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgEncounterDo, &weightMsgEncounterDo, nil, + func(_ *rand.Rand) { + weightMsgEncounterDo = defaultWeightMsgEncounterDo + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgEncounterDo, + cardchainsimulation.SimulateMsgEncounterDo(am.accountKeeper, am.bankKeeper, am.keeper), + )) + + var weightMsgEncounterClose int + simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgEncounterClose, &weightMsgEncounterClose, nil, + func(_ *rand.Rand) { + weightMsgEncounterClose = defaultWeightMsgEncounterClose + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgEncounterClose, + cardchainsimulation.SimulateMsgEncounterClose(am.accountKeeper, am.bankKeeper, am.keeper), + )) + // this line is used by starport scaffolding # simapp/module/operation return operations diff --git a/x/cardchain/types/codec.go b/x/cardchain/types/codec.go index d7ac0ac9..e7a5ac6e 100644 --- a/x/cardchain/types/codec.go +++ b/x/cardchain/types/codec.go @@ -57,6 +57,9 @@ func RegisterCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgInviteEarlyAccess{}, "cardchain/InviteEarlyAccess", nil) cdc.RegisterConcrete(&MsgDisinviteEarlyAccess{}, "cardchain/DisinviteEarlyAccess", nil) cdc.RegisterConcrete(&MsgConnectZealyAccount{}, "cardchain/ConnectZealyAccount", nil) + cdc.RegisterConcrete(&MsgEncounterCreate{}, "cardchain/EncounterCreate", nil) + cdc.RegisterConcrete(&MsgEncounterDo{}, "cardchain/EncounterDo", nil) + cdc.RegisterConcrete(&MsgEncounterClose{}, "cardchain/EncounterClose", nil) // this line is used by starport scaffolding # 2 } @@ -205,6 +208,15 @@ func RegisterInterfaces(registry cdctypes.InterfaceRegistry) { registry.RegisterImplementations((*sdk.Msg)(nil), &MsgConnectZealyAccount{}, ) + registry.RegisterImplementations((*sdk.Msg)(nil), + &MsgEncounterCreate{}, + ) + registry.RegisterImplementations((*sdk.Msg)(nil), + &MsgEncounterDo{}, + ) + registry.RegisterImplementations((*sdk.Msg)(nil), + &MsgEncounterClose{}, + ) // this line is used by starport scaffolding # 3 msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) diff --git a/x/cardchain/types/tx.pb.go b/x/cardchain/types/tx.pb.go index 9bdff0fd..704012d7 100644 --- a/x/cardchain/types/tx.pb.go +++ b/x/cardchain/types/tx.pb.go @@ -4230,6 +4230,278 @@ func (m *MsgConnectZealyAccountResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgConnectZealyAccountResponse proto.InternalMessageInfo +type MsgEncounterCreate struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Drawlist []uint64 `protobuf:"varint,2,rep,packed,name=Drawlist,proto3" json:"Drawlist,omitempty"` + Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *MsgEncounterCreate) Reset() { *m = MsgEncounterCreate{} } +func (m *MsgEncounterCreate) String() string { return proto.CompactTextString(m) } +func (*MsgEncounterCreate) ProtoMessage() {} +func (*MsgEncounterCreate) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{88} +} +func (m *MsgEncounterCreate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgEncounterCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgEncounterCreate.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgEncounterCreate) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgEncounterCreate.Merge(m, src) +} +func (m *MsgEncounterCreate) XXX_Size() int { + return m.Size() +} +func (m *MsgEncounterCreate) XXX_DiscardUnknown() { + xxx_messageInfo_MsgEncounterCreate.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgEncounterCreate proto.InternalMessageInfo + +func (m *MsgEncounterCreate) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgEncounterCreate) GetDrawlist() []uint64 { + if m != nil { + return m.Drawlist + } + return nil +} + +func (m *MsgEncounterCreate) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +type MsgEncounterCreateResponse struct { +} + +func (m *MsgEncounterCreateResponse) Reset() { *m = MsgEncounterCreateResponse{} } +func (m *MsgEncounterCreateResponse) String() string { return proto.CompactTextString(m) } +func (*MsgEncounterCreateResponse) ProtoMessage() {} +func (*MsgEncounterCreateResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{89} +} +func (m *MsgEncounterCreateResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgEncounterCreateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgEncounterCreateResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgEncounterCreateResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgEncounterCreateResponse.Merge(m, src) +} +func (m *MsgEncounterCreateResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgEncounterCreateResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgEncounterCreateResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgEncounterCreateResponse proto.InternalMessageInfo + +type MsgEncounterDo struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + EncounterId uint64 `protobuf:"varint,2,opt,name=encounterId,proto3" json:"encounterId,omitempty"` +} + +func (m *MsgEncounterDo) Reset() { *m = MsgEncounterDo{} } +func (m *MsgEncounterDo) String() string { return proto.CompactTextString(m) } +func (*MsgEncounterDo) ProtoMessage() {} +func (*MsgEncounterDo) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{90} +} +func (m *MsgEncounterDo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgEncounterDo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgEncounterDo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgEncounterDo) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgEncounterDo.Merge(m, src) +} +func (m *MsgEncounterDo) XXX_Size() int { + return m.Size() +} +func (m *MsgEncounterDo) XXX_DiscardUnknown() { + xxx_messageInfo_MsgEncounterDo.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgEncounterDo proto.InternalMessageInfo + +func (m *MsgEncounterDo) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgEncounterDo) GetEncounterId() uint64 { + if m != nil { + return m.EncounterId + } + return 0 +} + +type MsgEncounterDoResponse struct { +} + +func (m *MsgEncounterDoResponse) Reset() { *m = MsgEncounterDoResponse{} } +func (m *MsgEncounterDoResponse) String() string { return proto.CompactTextString(m) } +func (*MsgEncounterDoResponse) ProtoMessage() {} +func (*MsgEncounterDoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{91} +} +func (m *MsgEncounterDoResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgEncounterDoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgEncounterDoResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgEncounterDoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgEncounterDoResponse.Merge(m, src) +} +func (m *MsgEncounterDoResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgEncounterDoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgEncounterDoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgEncounterDoResponse proto.InternalMessageInfo + +type MsgEncounterClose struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + EncounterId uint64 `protobuf:"varint,2,opt,name=encounterId,proto3" json:"encounterId,omitempty"` +} + +func (m *MsgEncounterClose) Reset() { *m = MsgEncounterClose{} } +func (m *MsgEncounterClose) String() string { return proto.CompactTextString(m) } +func (*MsgEncounterClose) ProtoMessage() {} +func (*MsgEncounterClose) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{92} +} +func (m *MsgEncounterClose) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgEncounterClose) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgEncounterClose.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgEncounterClose) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgEncounterClose.Merge(m, src) +} +func (m *MsgEncounterClose) XXX_Size() int { + return m.Size() +} +func (m *MsgEncounterClose) XXX_DiscardUnknown() { + xxx_messageInfo_MsgEncounterClose.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgEncounterClose proto.InternalMessageInfo + +func (m *MsgEncounterClose) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgEncounterClose) GetEncounterId() uint64 { + if m != nil { + return m.EncounterId + } + return 0 +} + +type MsgEncounterCloseResponse struct { +} + +func (m *MsgEncounterCloseResponse) Reset() { *m = MsgEncounterCloseResponse{} } +func (m *MsgEncounterCloseResponse) String() string { return proto.CompactTextString(m) } +func (*MsgEncounterCloseResponse) ProtoMessage() {} +func (*MsgEncounterCloseResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{93} +} +func (m *MsgEncounterCloseResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgEncounterCloseResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgEncounterCloseResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgEncounterCloseResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgEncounterCloseResponse.Merge(m, src) +} +func (m *MsgEncounterCloseResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgEncounterCloseResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgEncounterCloseResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgEncounterCloseResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgCreateuser)(nil), "DecentralCardGame.cardchain.cardchain.MsgCreateuser") proto.RegisterType((*MsgCreateuserResponse)(nil), "DecentralCardGame.cardchain.cardchain.MsgCreateuserResponse") @@ -4319,171 +4591,189 @@ func init() { proto.RegisterType((*MsgDisinviteEarlyAccessResponse)(nil), "DecentralCardGame.cardchain.cardchain.MsgDisinviteEarlyAccessResponse") proto.RegisterType((*MsgConnectZealyAccount)(nil), "DecentralCardGame.cardchain.cardchain.MsgConnectZealyAccount") proto.RegisterType((*MsgConnectZealyAccountResponse)(nil), "DecentralCardGame.cardchain.cardchain.MsgConnectZealyAccountResponse") + proto.RegisterType((*MsgEncounterCreate)(nil), "DecentralCardGame.cardchain.cardchain.MsgEncounterCreate") + proto.RegisterMapType((map[string]string)(nil), "DecentralCardGame.cardchain.cardchain.MsgEncounterCreate.ParametersEntry") + proto.RegisterType((*MsgEncounterCreateResponse)(nil), "DecentralCardGame.cardchain.cardchain.MsgEncounterCreateResponse") + proto.RegisterType((*MsgEncounterDo)(nil), "DecentralCardGame.cardchain.cardchain.MsgEncounterDo") + proto.RegisterType((*MsgEncounterDoResponse)(nil), "DecentralCardGame.cardchain.cardchain.MsgEncounterDoResponse") + proto.RegisterType((*MsgEncounterClose)(nil), "DecentralCardGame.cardchain.cardchain.MsgEncounterClose") + proto.RegisterType((*MsgEncounterCloseResponse)(nil), "DecentralCardGame.cardchain.cardchain.MsgEncounterCloseResponse") } func init() { proto.RegisterFile("cardchain/cardchain/tx.proto", fileDescriptor_3b4a3aba0ac94bc8) } var fileDescriptor_3b4a3aba0ac94bc8 = []byte{ - // 2531 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5b, 0xd1, 0x6f, 0x1c, 0x47, - 0x19, 0xf7, 0xfa, 0x6c, 0xc7, 0x1e, 0x27, 0x6e, 0xbb, 0x75, 0xd3, 0xcb, 0x36, 0x3d, 0xbb, 0x4b, - 0x5b, 0xf2, 0xc2, 0x1d, 0x76, 0xda, 0xc4, 0x4e, 0x30, 0xe9, 0xdd, 0xd9, 0x71, 0x43, 0x70, 0x13, - 0xf6, 0xdc, 0x96, 0x86, 0x0a, 0xb4, 0xde, 0x1b, 0x9f, 0x57, 0xbe, 0xdb, 0x39, 0x66, 0xe7, 0xec, - 0x3a, 0x12, 0x12, 0x12, 0x12, 0xa2, 0x52, 0x04, 0x08, 0x81, 0x84, 0x40, 0x42, 0xe1, 0x81, 0x97, - 0x4a, 0xbc, 0x21, 0xf1, 0x2f, 0xf4, 0xb1, 0xbc, 0x20, 0xc4, 0x43, 0x40, 0xc9, 0x0b, 0x7f, 0x06, - 0xda, 0x99, 0xd9, 0xd9, 0x99, 0xbd, 0xbd, 0xf5, 0xcd, 0x3a, 0x52, 0xa5, 0xde, 0xec, 0xce, 0xef, - 0xfb, 0xbe, 0x99, 0xfd, 0xbe, 0xf9, 0xbe, 0xef, 0x37, 0x31, 0xb8, 0xec, 0xb9, 0xb8, 0xed, 0x1d, - 0xb8, 0x7e, 0x50, 0x4b, 0x7e, 0x91, 0xcf, 0xaa, 0x7d, 0x8c, 0x08, 0x32, 0xdf, 0xda, 0x84, 0x1e, - 0x0c, 0x08, 0x76, 0xbb, 0x4d, 0x17, 0xb7, 0xb7, 0xdd, 0x1e, 0xac, 0x8a, 0x59, 0xc9, 0x2f, 0x6b, - 0xb1, 0x83, 0x3a, 0x88, 0x22, 0x6a, 0xd1, 0x2f, 0x06, 0xb6, 0xde, 0xc8, 0x12, 0xed, 0xa1, 0x41, - 0xe0, 0xf9, 0x5d, 0x3e, 0x65, 0x29, 0x6b, 0x4a, 0xcf, 0x25, 0xde, 0x01, 0x9f, 0xb0, 0x9c, 0x35, - 0xe1, 0x08, 0x11, 0x3f, 0xe8, 0xf0, 0x19, 0x95, 0x4c, 0x2d, 0x2e, 0x6e, 0x8b, 0xf7, 0x28, 0xec, - 0xa1, 0xb0, 0xb6, 0xe7, 0x86, 0xb0, 0x76, 0xb4, 0xb2, 0x07, 0x89, 0xbb, 0x52, 0xf3, 0x90, 0x1f, - 0xb0, 0xf7, 0xf6, 0x27, 0xe0, 0xc2, 0x4e, 0xd8, 0x69, 0x62, 0xe8, 0x12, 0x38, 0x08, 0x21, 0x36, - 0xcb, 0xe0, 0x9c, 0x17, 0x8d, 0x10, 0x2e, 0x1b, 0xcb, 0xc6, 0x95, 0x39, 0x27, 0x1e, 0x46, 0x6f, - 0x02, 0x78, 0xfc, 0x61, 0x08, 0x71, 0x79, 0x92, 0xbd, 0xe1, 0x43, 0x73, 0x11, 0x4c, 0xbb, 0x5d, - 0xdf, 0x0d, 0xcb, 0x25, 0xfa, 0x9c, 0x0d, 0xec, 0x57, 0xc1, 0x2b, 0x8a, 0x68, 0x07, 0x86, 0x7d, - 0x14, 0x84, 0xd0, 0xfe, 0xad, 0x01, 0x5e, 0xdc, 0x09, 0x3b, 0x8d, 0xc1, 0x49, 0xb4, 0xad, 0x2d, - 0xef, 0x00, 0xf6, 0x60, 0x8e, 0xde, 0x4f, 0x41, 0x69, 0xcf, 0x6f, 0x53, 0x9d, 0xf3, 0xab, 0x97, - 0xaa, 0x6c, 0x41, 0xd5, 0x68, 0x41, 0x55, 0xbe, 0xa0, 0x6a, 0x13, 0xf9, 0x41, 0xa3, 0xf6, 0xe5, - 0x93, 0xa5, 0x89, 0x2f, 0xfe, 0xb3, 0xf4, 0xf5, 0x8e, 0x4f, 0x0e, 0x06, 0x7b, 0x55, 0x0f, 0xf5, - 0x6a, 0x7c, 0xf5, 0xec, 0x7f, 0xdf, 0x08, 0xdb, 0x87, 0x35, 0x72, 0xd2, 0x87, 0x21, 0x05, 0x38, - 0x91, 0xd8, 0x1b, 0xb3, 0xbf, 0x78, 0xbc, 0x34, 0xf1, 0xbf, 0xc7, 0x4b, 0x13, 0xf6, 0x2a, 0x28, - 0xa7, 0xad, 0x8a, 0x4d, 0x36, 0x2f, 0x82, 0x99, 0x68, 0x53, 0xef, 0xb4, 0xa9, 0x71, 0x53, 0x0e, - 0x1f, 0xd9, 0x8f, 0x0c, 0x30, 0xbf, 0x13, 0x76, 0x3e, 0x42, 0x04, 0x46, 0xa8, 0x9c, 0x55, 0x24, - 0x12, 0x26, 0x65, 0x09, 0xe6, 0x5d, 0x30, 0x7b, 0x84, 0x08, 0xdc, 0x3d, 0xe9, 0x43, 0xba, 0x7d, - 0x0b, 0xab, 0xb5, 0xea, 0x58, 0x6e, 0x57, 0xfd, 0x88, 0xc3, 0x1c, 0x21, 0xc0, 0xde, 0x00, 0x2f, - 0x4b, 0xd6, 0x08, 0xeb, 0xdf, 0x06, 0x0b, 0xae, 0x8f, 0xdb, 0x18, 0xf5, 0x9b, 0x5d, 0xd7, 0xef, - 0x41, 0xb6, 0x8a, 0x59, 0x27, 0xf5, 0xd4, 0xfe, 0x9b, 0x01, 0xcc, 0x9d, 0xb0, 0xd3, 0x72, 0x8f, - 0x28, 0xbe, 0x89, 0x02, 0x02, 0x03, 0x52, 0x60, 0x51, 0x11, 0x82, 0x81, 0xe9, 0x9a, 0xce, 0x3b, - 0xf1, 0x30, 0x72, 0x95, 0x00, 0x11, 0x18, 0x96, 0xa7, 0x98, 0xab, 0xd0, 0x41, 0x24, 0xc7, 0xc5, - 0xc4, 0x0f, 0x49, 0x79, 0x9a, 0x3e, 0xe6, 0x23, 0xf3, 0x4d, 0x70, 0x61, 0xcf, 0xed, 0xba, 0x81, - 0x07, 0xeb, 0x81, 0x77, 0x80, 0x70, 0x79, 0x86, 0xda, 0xad, 0x3e, 0xb4, 0x37, 0x81, 0x35, 0x6c, - 0xb5, 0xf6, 0xe2, 0x7f, 0x04, 0x5e, 0xd8, 0x09, 0x3b, 0xbb, 0xd8, 0x0d, 0xc2, 0x7d, 0x88, 0x0b, - 0x7e, 0x4d, 0x0b, 0xcc, 0x62, 0xe8, 0x41, 0xff, 0x08, 0x62, 0xbe, 0x42, 0x31, 0xb6, 0x2f, 0x81, - 0x57, 0x53, 0x0a, 0x44, 0x44, 0x3c, 0x32, 0xa8, 0xf2, 0x4d, 0x14, 0xb8, 0x04, 0xee, 0xa2, 0x82, - 0xca, 0xb7, 0xc1, 0x8c, 0xdb, 0x43, 0x03, 0xbe, 0xe9, 0x73, 0x2c, 0x20, 0xfe, 0xfd, 0x64, 0xfc, - 0x80, 0xe0, 0x70, 0x6e, 0xa9, 0x6c, 0x8d, 0xb0, 0xf4, 0xc7, 0xf4, 0xbc, 0xa8, 0xb7, 0xdb, 0x75, - 0x4c, 0x8e, 0x11, 0x3e, 0x2c, 0x60, 0xe6, 0x22, 0x98, 0xf6, 0x7b, 0x6e, 0x07, 0x72, 0xd7, 0x60, - 0x83, 0x48, 0xce, 0xfe, 0xa0, 0xdb, 0xad, 0x63, 0x42, 0x37, 0x6e, 0xd6, 0x89, 0x87, 0xfc, 0x1c, - 0x49, 0x54, 0x0a, 0x5b, 0x7e, 0x40, 0x37, 0xad, 0x79, 0xe0, 0x06, 0x1d, 0x58, 0x67, 0x0e, 0x73, - 0xba, 0x35, 0x9b, 0x8a, 0x35, 0x9b, 0x92, 0xeb, 0x95, 0x64, 0xd7, 0xe3, 0x7b, 0x20, 0x0b, 0x17, - 0x7a, 0x57, 0xa8, 0x41, 0x0e, 0xec, 0xf8, 0x21, 0x81, 0xf8, 0x36, 0xc2, 0x4d, 0x76, 0xaa, 0x8f, - 0xd6, 0x6e, 0x2f, 0x81, 0xd7, 0x33, 0x21, 0x42, 0xe6, 0x3f, 0x0d, 0xb0, 0x40, 0x67, 0xf4, 0x11, - 0x26, 0x3b, 0x51, 0x0a, 0xc8, 0x3f, 0x89, 0x69, 0x96, 0x10, 0x5b, 0x1b, 0x0f, 0x4d, 0x1b, 0x9c, - 0xef, 0x77, 0xdd, 0x13, 0xd8, 0x8e, 0x3e, 0x5a, 0x58, 0x2f, 0x97, 0x96, 0x4b, 0x57, 0xa6, 0x1c, - 0xe5, 0x59, 0x6a, 0x4e, 0xa3, 0x3c, 0x35, 0x34, 0xa7, 0x61, 0xbe, 0x0f, 0xce, 0xa1, 0x01, 0xf1, - 0x50, 0x0f, 0xd2, 0x88, 0x5c, 0x58, 0xad, 0x8e, 0x79, 0x28, 0xdd, 0x63, 0x28, 0x27, 0x86, 0xdb, - 0xab, 0xe0, 0xa2, 0xba, 0x2e, 0x11, 0x98, 0xd2, 0x2a, 0x0c, 0x65, 0x15, 0xf6, 0x07, 0x14, 0x53, - 0xef, 0x23, 0x3f, 0x88, 0x31, 0x11, 0x3c, 0x37, 0x3b, 0xd1, 0xc8, 0x63, 0xb3, 0x78, 0x7a, 0x12, - 0x63, 0x7b, 0x19, 0x54, 0xb2, 0xe5, 0x89, 0xed, 0xff, 0x83, 0x01, 0xce, 0x8b, 0x64, 0xd5, 0x82, - 0x79, 0x8e, 0x64, 0x82, 0xa9, 0xc0, 0xed, 0x41, 0xae, 0x84, 0xfe, 0x1e, 0xe5, 0x44, 0xe6, 0x32, - 0x98, 0x0f, 0x09, 0xc2, 0x27, 0x1f, 0x63, 0x9f, 0x88, 0x13, 0x41, 0x7e, 0x14, 0x7d, 0x8c, 0xe8, - 0x68, 0xc4, 0xfe, 0xde, 0x80, 0x20, 0x1c, 0x96, 0xa7, 0x97, 0x4b, 0x57, 0xe6, 0x1c, 0xe5, 0x99, - 0x7d, 0x11, 0x2c, 0xca, 0xb6, 0x09, 0xa3, 0x3f, 0xa1, 0xfe, 0x5f, 0x6f, 0xd3, 0x8f, 0xb6, 0x8b, - 0xf2, 0xcd, 0x5e, 0x04, 0xd3, 0x21, 0x24, 0xc2, 0x63, 0xd8, 0x40, 0x8a, 0xd1, 0x92, 0x92, 0xd7, - 0x98, 0xf7, 0xcb, 0xa2, 0x85, 0xd6, 0xf7, 0xa8, 0xa3, 0xde, 0xf6, 0x03, 0xb7, 0xeb, 0x3f, 0x84, - 0x05, 0x94, 0xda, 0x65, 0xfa, 0x79, 0x25, 0x09, 0x42, 0x76, 0x13, 0xbc, 0xc4, 0x52, 0x70, 0x03, - 0xa1, 0x28, 0x50, 0xee, 0xbb, 0xde, 0xa1, 0xb6, 0xf8, 0x26, 0xb8, 0x34, 0x24, 0x44, 0x3b, 0x1b, - 0xfc, 0x90, 0xee, 0xb9, 0x03, 0x7b, 0x88, 0x65, 0x95, 0xdb, 0x18, 0xf5, 0x9e, 0xe7, 0x06, 0x57, - 0xc0, 0xe5, 0x2c, 0xf9, 0x62, 0x27, 0x5c, 0xf0, 0x5a, 0xf2, 0x3e, 0x71, 0x86, 0xa2, 0x66, 0x98, - 0x60, 0x2a, 0x2a, 0xc1, 0xb8, 0x7b, 0xd2, 0xdf, 0xf6, 0x5b, 0xe0, 0x6b, 0x39, 0x2a, 0x84, 0x25, - 0x9f, 0xb2, 0x60, 0x6c, 0xb7, 0xa5, 0x39, 0xc5, 0x9c, 0x2d, 0xcb, 0x08, 0x1e, 0x9a, 0xc3, 0xd2, - 0x85, 0xfe, 0xcf, 0x59, 0x51, 0x12, 0xbb, 0x7f, 0xb7, 0x7b, 0x6f, 0x7f, 0x3f, 0xf7, 0x24, 0x30, - 0xc1, 0x54, 0xb4, 0xc9, 0x5c, 0x37, 0xfd, 0x6d, 0x6e, 0x81, 0xe9, 0x3e, 0xf6, 0x3d, 0x58, 0x34, - 0x33, 0x32, 0xb4, 0x7d, 0x99, 0x56, 0x1a, 0x29, 0x53, 0x84, 0xa5, 0xef, 0x03, 0x90, 0x14, 0x90, - 0x39, 0x06, 0x46, 0xa7, 0x42, 0x0c, 0x16, 0x7b, 0x24, 0x3f, 0xb2, 0x17, 0xe9, 0x92, 0xb9, 0x24, - 0x21, 0xff, 0x3e, 0x7d, 0xca, 0x3e, 0xd8, 0x38, 0x1b, 0x71, 0xba, 0x1e, 0xb6, 0x9e, 0x94, 0x44, - 0xa1, 0xef, 0x01, 0xd5, 0x97, 0x24, 0xde, 0x62, 0x5f, 0x3d, 0x33, 0xdd, 0x73, 0xcd, 0x29, 0xd9, - 0x42, 0xf3, 0xf7, 0x69, 0x83, 0x50, 0x6f, 0xb7, 0x5b, 0xd1, 0x51, 0x59, 0x58, 0x2f, 0x3d, 0x68, - 0xe3, 0xa6, 0x84, 0x0e, 0x6c, 0x8b, 0x16, 0xf9, 0x8a, 0x64, 0xa1, 0xf5, 0x2f, 0xac, 0x2f, 0x69, - 0x41, 0x42, 0xb7, 0xdd, 0xc5, 0x3e, 0x39, 0x29, 0x56, 0xdf, 0x30, 0x73, 0x4a, 0xb2, 0x39, 0x77, - 0xc0, 0x0c, 0xa6, 0x12, 0x69, 0x16, 0x58, 0x58, 0x5d, 0x19, 0x33, 0xa1, 0x26, 0xa6, 0x38, 0x5c, - 0x00, 0x5f, 0x83, 0x62, 0xa6, 0x58, 0xc3, 0x26, 0x5d, 0x02, 0xf3, 0xd0, 0x53, 0xcb, 0x92, 0x51, - 0x4b, 0xe0, 0x1a, 0x14, 0x29, 0x42, 0xc3, 0x2f, 0x0d, 0xf6, 0x12, 0xf5, 0x7a, 0x3e, 0x49, 0xbd, - 0x3c, 0x2d, 0x3f, 0xb3, 0x59, 0x49, 0x7e, 0xe6, 0xa8, 0xcb, 0x60, 0x8e, 0x37, 0xc6, 0x62, 0xd7, - 0x92, 0x07, 0x66, 0x05, 0x80, 0x70, 0xd0, 0xe9, 0xc0, 0x90, 0xf8, 0x28, 0xe0, 0x39, 0x54, 0x7a, - 0x62, 0xdb, 0x60, 0x79, 0x94, 0x3d, 0xc2, 0xe8, 0xbf, 0x33, 0xa3, 0x1d, 0x78, 0x04, 0xdd, 0xee, - 0xf8, 0x46, 0xdf, 0x4d, 0x19, 0x3d, 0x7e, 0x73, 0x26, 0x2c, 0x48, 0x56, 0x79, 0x11, 0xcc, 0x84, - 0xd0, 0xc3, 0x50, 0x14, 0x09, 0x6c, 0xa4, 0xae, 0x7e, 0x2a, 0xb5, 0x7a, 0xbe, 0xba, 0x4c, 0xc3, - 0xc5, 0xea, 0xee, 0xd2, 0xb4, 0xe9, 0xc0, 0x90, 0xb8, 0x98, 0x9c, 0xfe, 0xd5, 0x15, 0x85, 0x93, - 0x69, 0x85, 0xaf, 0xd1, 0xf4, 0xa9, 0x0a, 0x13, 0x9a, 0xd6, 0x78, 0xda, 0x3a, 0x46, 0x87, 0x89, - 0x63, 0x44, 0x45, 0x2d, 0x76, 0xa3, 0x6f, 0x91, 0x53, 0x01, 0xbf, 0x0d, 0xde, 0xcc, 0x43, 0x0a, - 0x0d, 0x4f, 0x59, 0x2b, 0xd4, 0x44, 0xc1, 0xbe, 0x8f, 0x7b, 0xc5, 0x2b, 0x61, 0xa9, 0x82, 0x2d, - 0x9d, 0xa9, 0x82, 0x35, 0xbf, 0x07, 0x40, 0xd4, 0x60, 0xb3, 0xd2, 0x98, 0x56, 0xcb, 0xf3, 0x63, - 0x47, 0x6f, 0xcb, 0x0f, 0x3a, 0x5d, 0x18, 0x35, 0xe4, 0x8e, 0x24, 0x24, 0x6e, 0x2e, 0xa4, 0x35, - 0x8a, 0xf5, 0x6f, 0xd1, 0x6f, 0xd9, 0x82, 0xe4, 0x3e, 0x46, 0xfb, 0x7e, 0xb7, 0x20, 0xad, 0xc0, - 0xbf, 0xa2, 0x2a, 0x46, 0xe8, 0xd8, 0xa5, 0x07, 0xfb, 0xbd, 0x3e, 0x0c, 0xc6, 0xab, 0xb3, 0xa2, - 0x36, 0x3c, 0x99, 0x28, 0x74, 0xa9, 0x0f, 0xed, 0x6b, 0xf4, 0x48, 0x4f, 0x49, 0x55, 0x82, 0x8c, - 0x9a, 0x16, 0x96, 0x0d, 0xda, 0x70, 0xc4, 0x43, 0x9b, 0xd0, 0x02, 0x23, 0xee, 0x8b, 0x9f, 0xa3, - 0x45, 0x4a, 0x37, 0x5e, 0x4a, 0x75, 0xe3, 0xac, 0xf0, 0xc8, 0xd0, 0x2a, 0x76, 0xe9, 0x80, 0x96, - 0x80, 0x2d, 0x48, 0xa2, 0xff, 0xa4, 0x92, 0x5d, 0x37, 0x11, 0xa5, 0x9a, 0x80, 0xd2, 0x50, 0x13, - 0xc0, 0x8b, 0xc1, 0x21, 0x4d, 0xa9, 0x42, 0x9f, 0xbd, 0x3f, 0xb5, 0xd1, 0x1d, 0x59, 0x87, 0xe6, - 0xb4, 0xb9, 0xb2, 0x68, 0xa1, 0x75, 0x3b, 0xf6, 0xc4, 0x0f, 0x43, 0x88, 0x3f, 0x86, 0x7b, 0xa1, - 0x4f, 0x60, 0x7e, 0x28, 0x1e, 0xb3, 0x49, 0x31, 0x3d, 0xc8, 0x87, 0x89, 0x2f, 0x4a, 0x82, 0x84, - 0x96, 0x1d, 0x4a, 0x59, 0xf1, 0x97, 0x0d, 0x1f, 0x75, 0xb0, 0xdb, 0x3f, 0x38, 0xc9, 0x3f, 0xbd, - 0xf6, 0xe2, 0x69, 0x5c, 0x53, 0xf2, 0xc0, 0x7e, 0x9d, 0xd6, 0xcd, 0x69, 0x71, 0x42, 0xdb, 0x80, - 0xa6, 0xc7, 0x9d, 0x41, 0x97, 0xf8, 0x63, 0x70, 0x76, 0xdb, 0x60, 0xfa, 0x88, 0x92, 0x55, 0x93, - 0x45, 0x83, 0x9e, 0xe1, 0x79, 0x3e, 0x55, 0xd4, 0x0a, 0x93, 0x1e, 0xb3, 0xd6, 0x33, 0x8a, 0x9b, - 0x31, 0x4e, 0x3b, 0xda, 0xa5, 0xe3, 0x7a, 0xbc, 0xc5, 0x7c, 0x98, 0xbc, 0x69, 0xf0, 0xef, 0x1b, - 0x0f, 0x23, 0xef, 0xe3, 0x93, 0x36, 0xa1, 0x77, 0xc8, 0x9b, 0x7d, 0xf9, 0x51, 0x32, 0xa3, 0x41, - 0x67, 0x4c, 0xcb, 0x33, 0xe8, 0x23, 0xfb, 0x9b, 0x34, 0x12, 0x84, 0x85, 0x63, 0x74, 0xf0, 0x2d, - 0x4a, 0x13, 0x31, 0xb7, 0xfa, 0xc0, 0xcd, 0xa5, 0x77, 0x47, 0xf6, 0x0a, 0xb4, 0xcb, 0x2e, 0x25, - 0x5d, 0x36, 0x27, 0x82, 0x12, 0xa1, 0xa9, 0x96, 0x94, 0x73, 0x35, 0x5d, 0xdf, 0x0d, 0xf3, 0xd5, - 0x31, 0xae, 0x7a, 0x52, 0xe6, 0xaa, 0x59, 0x4b, 0x2a, 0x49, 0x90, 0x0a, 0xaa, 0x68, 0xed, 0x77, - 0x82, 0x23, 0x9f, 0xc0, 0x2d, 0x17, 0x77, 0x4f, 0xea, 0x9e, 0x07, 0xc3, 0x30, 0xbf, 0xff, 0x18, - 0x24, 0x24, 0x39, 0x6b, 0x73, 0x58, 0x84, 0x0f, 0x49, 0x91, 0x62, 0x8d, 0x32, 0x6e, 0x7e, 0xe8, - 0x9f, 0x51, 0xd1, 0x1b, 0x60, 0x69, 0x84, 0x20, 0xa1, 0xeb, 0xbb, 0x6c, 0xad, 0x28, 0x08, 0xa0, - 0x47, 0x1e, 0x40, 0x97, 0x4e, 0x40, 0x83, 0x5c, 0xa2, 0xb7, 0x0c, 0xce, 0x3d, 0x8c, 0x66, 0xf2, - 0xcf, 0x34, 0xe7, 0xc4, 0x43, 0x7e, 0x8e, 0x66, 0x48, 0x8b, 0xf5, 0xad, 0xfe, 0x63, 0x05, 0x94, - 0x76, 0xc2, 0x8e, 0xf9, 0x53, 0x03, 0x00, 0xe9, 0xa2, 0xe1, 0x9d, 0x31, 0xa3, 0x49, 0xb9, 0x43, - 0xb0, 0xbe, 0x55, 0x04, 0x25, 0x1c, 0xf6, 0x73, 0x03, 0x5c, 0x50, 0xaf, 0x1d, 0xae, 0x8f, 0x2f, - 0x4f, 0x01, 0x5a, 0xb7, 0x0a, 0x02, 0x85, 0x2d, 0x0f, 0xc1, 0xac, 0x38, 0x82, 0x56, 0xc7, 0x17, - 0x16, 0x63, 0xac, 0x1b, 0xfa, 0x18, 0xa1, 0xfb, 0x57, 0x06, 0x78, 0x21, 0xcd, 0xf2, 0xaf, 0x8f, - 0x2f, 0x2f, 0x05, 0xb5, 0xea, 0x85, 0xa1, 0xc2, 0xa2, 0x9f, 0x1b, 0xe0, 0xbc, 0xc2, 0xbd, 0x5f, - 0x1b, 0x5f, 0xa6, 0x8c, 0xb3, 0xbe, 0x5d, 0x0c, 0xa7, 0x18, 0xa2, 0xf0, 0xf0, 0x1a, 0x86, 0xc8, - 0x38, 0x1d, 0x43, 0xb2, 0x98, 0x76, 0x1a, 0x2e, 0x12, 0xcf, 0xae, 0x11, 0x2e, 0x09, 0x4a, 0x27, - 0x5c, 0x86, 0x09, 0x76, 0xba, 0x17, 0x0a, 0xbd, 0xae, 0xb1, 0x17, 0x32, 0x4e, 0x67, 0x2f, 0xb2, - 0x18, 0x77, 0xf3, 0xf7, 0x06, 0x30, 0x33, 0xf8, 0x76, 0x8d, 0xd5, 0x0d, 0xa3, 0xad, 0xcd, 0xb3, - 0xa0, 0x85, 0x69, 0x3f, 0x33, 0xc0, 0xbc, 0xcc, 0xda, 0xbf, 0xab, 0x23, 0x55, 0xc0, 0xac, 0x8d, - 0x42, 0x30, 0x61, 0xc5, 0x1f, 0x0d, 0xf0, 0x72, 0x16, 0x5f, 0xae, 0x21, 0x36, 0x03, 0x6e, 0x6d, - 0x9d, 0x09, 0x2e, 0xac, 0xfb, 0x09, 0x98, 0x4b, 0x98, 0xf5, 0xab, 0xba, 0x27, 0x78, 0x0b, 0x12, - 0xeb, 0x66, 0x01, 0x90, 0xe2, 0xc6, 0x0a, 0x4b, 0x7e, 0x4d, 0x2b, 0x2a, 0x04, 0x4e, 0xc7, 0x8d, - 0xb3, 0xa8, 0x73, 0xea, 0x2b, 0x32, 0x71, 0xae, 0xe1, 0x2b, 0x12, 0x4c, 0xc7, 0x57, 0x32, 0x48, - 0x76, 0xf3, 0x91, 0x01, 0x16, 0x52, 0x14, 0xfb, 0x9a, 0x56, 0x32, 0x93, 0x90, 0xd6, 0x7b, 0x45, - 0x91, 0xc2, 0x9c, 0xdf, 0x19, 0xe0, 0xa5, 0x61, 0x9e, 0xfd, 0xa6, 0x4e, 0x3c, 0xa4, 0xc0, 0x56, - 0xf3, 0x0c, 0x60, 0x61, 0xd7, 0x17, 0x06, 0x28, 0x8f, 0xe4, 0xdf, 0x1b, 0xda, 0x1a, 0x86, 0x64, - 0x58, 0xdf, 0x39, 0xbb, 0x0c, 0x35, 0xfe, 0x33, 0x28, 0xfa, 0x0d, 0x3d, 0x8f, 0x4d, 0xc1, 0xb5, - 0xe2, 0x7f, 0x34, 0x85, 0x4f, 0xcb, 0x8d, 0x34, 0x7f, 0xbf, 0xae, 0x1f, 0xd1, 0x1c, 0xaa, 0x53, - 0x6e, 0x8c, 0xa0, 0xea, 0xcd, 0x63, 0x70, 0x2e, 0xe6, 0xe9, 0x57, 0xb4, 0x0b, 0x39, 0x6b, 0x5d, - 0x1b, 0xa2, 0x6c, 0x45, 0x9a, 0xc1, 0x5f, 0xd7, 0x75, 0x84, 0x42, 0x5b, 0x31, 0x82, 0xe5, 0xa7, - 0x16, 0xa5, 0x39, 0xfe, 0xf5, 0x22, 0x65, 0x03, 0x73, 0x99, 0x7a, 0x61, 0xa8, 0x52, 0xa5, 0xab, - 0xdc, 0xff, 0x75, 0x2d, 0xa1, 0x09, 0x50, 0xa7, 0x4a, 0xcf, 0xbc, 0x13, 0xa0, 0xb6, 0xa8, 0x17, - 0x02, 0x1a, 0xb6, 0x28, 0x40, 0x1d, 0x5b, 0x32, 0xb9, 0x7d, 0x6a, 0x8b, 0xca, 0xec, 0x5f, 0xd7, - 0x8d, 0x84, 0xb8, 0xf6, 0xb9, 0x55, 0x10, 0x28, 0x6c, 0xf9, 0xb3, 0x01, 0x5e, 0xc9, 0xbe, 0x02, - 0xd0, 0x11, 0x9d, 0x25, 0xc0, 0xda, 0x3e, 0xa3, 0x00, 0xc5, 0xc6, 0x6c, 0xc6, 0xff, 0x96, 0x4e, - 0xd8, 0x64, 0x08, 0xd0, 0xb1, 0x31, 0x97, 0xba, 0xa7, 0xc9, 0x38, 0x45, 0xdc, 0xaf, 0xe9, 0xc8, - 0x96, 0x91, 0x3a, 0xc9, 0x38, 0x9b, 0xdf, 0x37, 0xff, 0x6a, 0x80, 0x4b, 0xa3, 0xd9, 0x7d, 0xad, - 0xbc, 0x3a, 0x42, 0x88, 0x75, 0xf7, 0x39, 0x08, 0x51, 0x3b, 0x14, 0xf9, 0xaa, 0x40, 0xa7, 0x43, - 0x91, 0x70, 0x5a, 0x1d, 0x4a, 0x06, 0x6d, 0x4f, 0xbf, 0x63, 0x8a, 0xb4, 0x5f, 0xd3, 0x8a, 0x77, - 0x09, 0xa9, 0xf3, 0x1d, 0xb3, 0x19, 0x7e, 0x7a, 0xa8, 0xa7, 0xf9, 0x7d, 0x8d, 0x43, 0x3d, 0x05, - 0xd5, 0x39, 0xd4, 0x47, 0xf1, 0xff, 0x51, 0x85, 0x92, 0xc5, 0xf1, 0x6f, 0xe8, 0xf7, 0xeb, 0xb2, - 0x65, 0x5b, 0x67, 0x82, 0x2b, 0x45, 0xe8, 0x30, 0xd3, 0x7f, 0x53, 0xeb, 0x3b, 0xa8, 0x60, 0x9d, - 0x22, 0x74, 0x24, 0xf3, 0x4f, 0xfd, 0x5b, 0xe1, 0xfd, 0xaf, 0xe9, 0x4a, 0xd5, 0xef, 0xc0, 0xb3, - 0x2e, 0x03, 0x62, 0xff, 0x96, 0xaf, 0x02, 0xf4, 0xfc, 0x5b, 0x42, 0x6a, 0xfa, 0x77, 0xc6, 0xad, - 0x81, 0xf9, 0x1b, 0x03, 0xbc, 0x38, 0x74, 0x67, 0x70, 0x43, 0x5b, 0xac, 0xc0, 0x5a, 0x8d, 0xe2, - 0x58, 0x25, 0x3f, 0xab, 0x57, 0x0b, 0x1a, 0xf9, 0x59, 0x01, 0xea, 0xe4, 0xe7, 0xcc, 0x5b, 0x85, - 0xa8, 0xe5, 0x4e, 0x6e, 0x14, 0xae, 0xea, 0x85, 0x2f, 0x3b, 0x11, 0x6f, 0x16, 0x00, 0x29, 0xe4, - 0x95, 0xc4, 0xfe, 0xbf, 0xa3, 0xeb, 0x7d, 0x11, 0x4a, 0x87, 0xbc, 0x1a, 0xbe, 0x14, 0xa0, 0xcd, - 0xb6, 0x7c, 0x25, 0xf0, 0xae, 0x36, 0x07, 0x15, 0xc1, 0x74, 0x9a, 0xed, 0x8c, 0xeb, 0x03, 0x7a, - 0xb0, 0x0c, 0x5f, 0x1e, 0x68, 0xec, 0xed, 0x10, 0x58, 0xe7, 0x60, 0x19, 0x79, 0xe1, 0x60, 0xfe, - 0xc9, 0x00, 0x8b, 0x99, 0xd7, 0x0d, 0x3a, 0xb4, 0x65, 0x06, 0xde, 0xba, 0x7d, 0x36, 0xbc, 0x92, - 0x2f, 0xb2, 0xee, 0x28, 0x36, 0xb4, 0x12, 0x75, 0x1a, 0xae, 0x93, 0x2f, 0x72, 0xee, 0x34, 0x1a, - 0xce, 0x97, 0x4f, 0x2b, 0xc6, 0x57, 0x4f, 0x2b, 0xc6, 0x7f, 0x9f, 0x56, 0x8c, 0x5f, 0x3f, 0xab, - 0x4c, 0x7c, 0xf5, 0xac, 0x32, 0xf1, 0xaf, 0x67, 0x95, 0x89, 0x07, 0x6b, 0xd2, 0x3f, 0x29, 0x1b, - 0x52, 0x55, 0x6b, 0x8a, 0xbf, 0xd1, 0xf8, 0x4c, 0xfe, 0x83, 0x93, 0x93, 0x3e, 0x0c, 0xf7, 0x66, - 0xe8, 0x5f, 0x64, 0x5c, 0xfd, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb4, 0x5a, 0xa1, 0xc1, 0x94, - 0x32, 0x00, 0x00, + // 2706 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5b, 0xcf, 0x6f, 0x1c, 0xb7, + 0xf5, 0xd7, 0x68, 0x25, 0x59, 0xa2, 0x1c, 0xd9, 0x99, 0x28, 0xce, 0x7a, 0xe2, 0x48, 0xca, 0x7c, + 0x93, 0x7c, 0x7d, 0xe9, 0xaa, 0x96, 0x7f, 0x49, 0x76, 0x55, 0x67, 0x7f, 0xc8, 0x8e, 0xeb, 0x2a, + 0x76, 0x57, 0x4e, 0xd2, 0xb8, 0x41, 0x8b, 0xd1, 0x2c, 0xb5, 0x1a, 0x68, 0x77, 0xb8, 0xe5, 0xcc, + 0x4a, 0x59, 0x03, 0x05, 0x0a, 0x14, 0x28, 0x1a, 0xc0, 0x68, 0x8b, 0xa2, 0x05, 0x8a, 0x16, 0x28, + 0xdc, 0x43, 0x2f, 0x01, 0x7a, 0x2b, 0xd0, 0x7f, 0x21, 0xc7, 0x9c, 0x8a, 0xa2, 0x87, 0xb4, 0xb0, + 0x2f, 0xfd, 0x03, 0x7a, 0xe8, 0xb1, 0x98, 0x47, 0x0e, 0x87, 0x9c, 0x9d, 0x1d, 0x2d, 0x47, 0x06, + 0x02, 0x64, 0xc9, 0xe1, 0xe7, 0xbd, 0x47, 0xf2, 0x91, 0xef, 0x3d, 0x7e, 0x2c, 0x74, 0xc1, 0x75, + 0x68, 0xcb, 0xdd, 0x77, 0x3c, 0x7f, 0x35, 0xf9, 0x15, 0x7e, 0x5a, 0xe9, 0x51, 0x12, 0x12, 0xf3, + 0xed, 0x06, 0x76, 0xb1, 0x1f, 0x52, 0xa7, 0x53, 0x77, 0x68, 0xeb, 0x8e, 0xd3, 0xc5, 0x15, 0x31, + 0x2a, 0xf9, 0x65, 0x2d, 0xb6, 0x49, 0x9b, 0x00, 0x62, 0x35, 0xfa, 0xc5, 0xc0, 0xd6, 0x9b, 0x59, + 0xa2, 0x5d, 0xd2, 0xf7, 0x5d, 0xaf, 0xc3, 0x87, 0x2c, 0x67, 0x0d, 0xe9, 0x3a, 0xa1, 0xbb, 0xcf, + 0x07, 0xac, 0x64, 0x0d, 0x38, 0x24, 0xa1, 0xe7, 0xb7, 0xf9, 0x88, 0xa5, 0x4c, 0x2d, 0x0e, 0x6d, + 0x89, 0xef, 0x24, 0xe8, 0x92, 0x60, 0x75, 0xd7, 0x09, 0xf0, 0xea, 0xe1, 0xa5, 0x5d, 0x1c, 0x3a, + 0x97, 0x56, 0x5d, 0xe2, 0xf9, 0xec, 0xbb, 0xfd, 0x31, 0x7a, 0x69, 0x3b, 0x68, 0xd7, 0x29, 0x76, + 0x42, 0xdc, 0x0f, 0x30, 0x35, 0xcb, 0xe8, 0x94, 0x1b, 0xb5, 0x08, 0x2d, 0x1b, 0x2b, 0xc6, 0xc5, + 0xb9, 0x66, 0xdc, 0x8c, 0xbe, 0xf8, 0xf8, 0xe8, 0x83, 0x00, 0xd3, 0xf2, 0x24, 0xfb, 0xc2, 0x9b, + 0xe6, 0x22, 0x9a, 0x76, 0x3a, 0x9e, 0x13, 0x94, 0x4b, 0xd0, 0xcf, 0x1a, 0xf6, 0x6b, 0xe8, 0x55, + 0x45, 0x74, 0x13, 0x07, 0x3d, 0xe2, 0x07, 0xd8, 0xfe, 0xb5, 0x81, 0xce, 0x6e, 0x07, 0xed, 0x5a, + 0x7f, 0x10, 0x2d, 0xeb, 0x8e, 0xbb, 0x8f, 0xbb, 0x38, 0x47, 0xef, 0x27, 0xa8, 0xb4, 0xeb, 0xb5, + 0x40, 0xe7, 0xfc, 0xda, 0xf9, 0x0a, 0x9b, 0x50, 0x25, 0x9a, 0x50, 0x85, 0x4f, 0xa8, 0x52, 0x27, + 0x9e, 0x5f, 0x5b, 0xfd, 0xe2, 0xab, 0xe5, 0x89, 0xcf, 0xff, 0xb9, 0xfc, 0xff, 0x6d, 0x2f, 0xdc, + 0xef, 0xef, 0x56, 0x5c, 0xd2, 0x5d, 0xe5, 0xb3, 0x67, 0xff, 0xfb, 0x5a, 0xd0, 0x3a, 0x58, 0x0d, + 0x07, 0x3d, 0x1c, 0x00, 0xa0, 0x19, 0x89, 0xbd, 0x31, 0xfb, 0xb3, 0xa7, 0xcb, 0x13, 0xff, 0x7e, + 0xba, 0x3c, 0x61, 0xaf, 0xa1, 0x72, 0xda, 0xaa, 0xd8, 0x64, 0xf3, 0x1c, 0x9a, 0x89, 0x16, 0xf5, + 0x6e, 0x0b, 0x8c, 0x9b, 0x6a, 0xf2, 0x96, 0xfd, 0xc4, 0x40, 0xf3, 0xdb, 0x41, 0xfb, 0x43, 0x12, + 0xe2, 0x08, 0x95, 0x33, 0x8b, 0x44, 0xc2, 0xa4, 0x2c, 0xc1, 0xbc, 0x87, 0x66, 0x0f, 0x49, 0x88, + 0x1f, 0x0e, 0x7a, 0x18, 0x96, 0x6f, 0x61, 0x6d, 0xb5, 0x32, 0x96, 0xdb, 0x55, 0x3e, 0xe4, 0xb0, + 0xa6, 0x10, 0x60, 0x6f, 0xa2, 0x57, 0x24, 0x6b, 0x84, 0xf5, 0xef, 0xa0, 0x05, 0xc7, 0xa3, 0x2d, + 0x4a, 0x7a, 0xf5, 0x8e, 0xe3, 0x75, 0x31, 0x9b, 0xc5, 0x6c, 0x33, 0xd5, 0x6b, 0xff, 0xc5, 0x40, + 0xe6, 0x76, 0xd0, 0xde, 0x71, 0x0e, 0x01, 0x5f, 0x27, 0x7e, 0x88, 0xfd, 0xb0, 0xc0, 0xa4, 0x22, + 0x04, 0x03, 0xc3, 0x9c, 0x4e, 0x37, 0xe3, 0x66, 0xe4, 0x2a, 0x3e, 0x09, 0x71, 0x50, 0x9e, 0x62, + 0xae, 0x02, 0x8d, 0x48, 0x8e, 0x43, 0x43, 0x2f, 0x08, 0xcb, 0xd3, 0xd0, 0xcd, 0x5b, 0xe6, 0x5b, + 0xe8, 0xa5, 0x5d, 0xa7, 0xe3, 0xf8, 0x2e, 0xae, 0xfa, 0xee, 0x3e, 0xa1, 0xe5, 0x19, 0xb0, 0x5b, + 0xed, 0xb4, 0x1b, 0xc8, 0x1a, 0xb6, 0x5a, 0x7b, 0xf2, 0x3f, 0x40, 0x67, 0xb6, 0x83, 0xf6, 0x43, + 0xea, 0xf8, 0xc1, 0x1e, 0xa6, 0x05, 0x77, 0xd3, 0x42, 0xb3, 0x14, 0xbb, 0xd8, 0x3b, 0xc4, 0x94, + 0xcf, 0x50, 0xb4, 0xed, 0xf3, 0xe8, 0xb5, 0x94, 0x02, 0x71, 0x22, 0x9e, 0x18, 0xa0, 0xbc, 0x41, + 0x7c, 0x27, 0xc4, 0x0f, 0x49, 0x41, 0xe5, 0x77, 0xd0, 0x8c, 0xd3, 0x25, 0x7d, 0xbe, 0xe8, 0x73, + 0xec, 0x40, 0xfc, 0xe3, 0xab, 0xf1, 0x0f, 0x04, 0x87, 0x73, 0x4b, 0x65, 0x6b, 0x84, 0xa5, 0x3f, + 0x84, 0xfb, 0xa2, 0xda, 0x6a, 0x55, 0x69, 0x78, 0x44, 0xe8, 0x41, 0x01, 0x33, 0x17, 0xd1, 0xb4, + 0xd7, 0x75, 0xda, 0x98, 0xbb, 0x06, 0x6b, 0x44, 0x72, 0xf6, 0xfa, 0x9d, 0x4e, 0x95, 0x86, 0xb0, + 0x70, 0xb3, 0xcd, 0xb8, 0xc9, 0xef, 0x91, 0x44, 0xa5, 0xb0, 0xe5, 0x7b, 0xb0, 0x68, 0xf5, 0x7d, + 0xc7, 0x6f, 0xe3, 0x2a, 0x73, 0x98, 0xe3, 0xad, 0x69, 0x28, 0xd6, 0x34, 0x24, 0xd7, 0x2b, 0xc9, + 0xae, 0xc7, 0xd7, 0x40, 0x16, 0x2e, 0xf4, 0x5e, 0x02, 0x83, 0x9a, 0xb8, 0xed, 0x05, 0x21, 0xa6, + 0xb7, 0x09, 0xad, 0xb3, 0x5b, 0x7d, 0xb4, 0x76, 0x7b, 0x19, 0xbd, 0x91, 0x09, 0x11, 0x32, 0xff, + 0x66, 0xa0, 0x05, 0x18, 0xd1, 0x23, 0x34, 0xdc, 0x8e, 0x42, 0x40, 0xfe, 0x4d, 0x0c, 0x51, 0x42, + 0x2c, 0x6d, 0xdc, 0x34, 0x6d, 0x74, 0xba, 0xd7, 0x71, 0x06, 0xb8, 0x15, 0x6d, 0x5a, 0x50, 0x2d, + 0x97, 0x56, 0x4a, 0x17, 0xa7, 0x9a, 0x4a, 0x5f, 0x6a, 0x4c, 0xad, 0x3c, 0x35, 0x34, 0xa6, 0x66, + 0xbe, 0x87, 0x4e, 0x91, 0x7e, 0xe8, 0x92, 0x2e, 0x86, 0x13, 0xb9, 0xb0, 0x56, 0x19, 0xf3, 0x52, + 0xba, 0xcf, 0x50, 0xcd, 0x18, 0x6e, 0xaf, 0xa1, 0x73, 0xea, 0xbc, 0xc4, 0xc1, 0x94, 0x66, 0x61, + 0x28, 0xb3, 0xb0, 0xdf, 0x07, 0x4c, 0xb5, 0x47, 0x3c, 0x3f, 0xc6, 0x44, 0xf0, 0xdc, 0xe8, 0x04, + 0x27, 0x8f, 0x8d, 0xe2, 0xe1, 0x49, 0xb4, 0xed, 0x15, 0xb4, 0x94, 0x2d, 0x4f, 0x2c, 0xff, 0xef, + 0x0c, 0x74, 0x5a, 0x04, 0xab, 0x1d, 0x9c, 0xe7, 0x48, 0x26, 0x9a, 0xf2, 0x9d, 0x2e, 0xe6, 0x4a, + 0xe0, 0xf7, 0x28, 0x27, 0x32, 0x57, 0xd0, 0x7c, 0x10, 0x12, 0x3a, 0xf8, 0x88, 0x7a, 0xa1, 0xb8, + 0x11, 0xe4, 0xae, 0x68, 0x33, 0xa2, 0xab, 0x91, 0x7a, 0xbb, 0xfd, 0x90, 0xd0, 0xa0, 0x3c, 0xbd, + 0x52, 0xba, 0x38, 0xd7, 0x54, 0xfa, 0xec, 0x73, 0x68, 0x51, 0xb6, 0x4d, 0x18, 0xfd, 0x31, 0xf8, + 0x7f, 0xb5, 0x05, 0x9b, 0xf6, 0x90, 0xe4, 0x9b, 0xbd, 0x88, 0xa6, 0x03, 0x1c, 0x0a, 0x8f, 0x61, + 0x0d, 0xe9, 0x8c, 0x96, 0x94, 0xb8, 0xc6, 0xbc, 0x5f, 0x16, 0x2d, 0xb4, 0xbe, 0x0b, 0x8e, 0x7a, + 0xdb, 0xf3, 0x9d, 0x8e, 0xf7, 0x18, 0x17, 0x50, 0x6a, 0x97, 0x61, 0x7b, 0x25, 0x09, 0x42, 0x76, + 0x1d, 0xbd, 0xcc, 0x42, 0x70, 0x8d, 0x90, 0xe8, 0xa0, 0x3c, 0x70, 0xdc, 0x03, 0x6d, 0xf1, 0x75, + 0x74, 0x7e, 0x48, 0x88, 0x76, 0x34, 0xf8, 0x3e, 0xac, 0x79, 0x13, 0x77, 0x09, 0x8b, 0x2a, 0xb7, + 0x29, 0xe9, 0xbe, 0xc8, 0x05, 0x5e, 0x42, 0x17, 0xb2, 0xe4, 0x8b, 0x95, 0x70, 0xd0, 0xeb, 0xc9, + 0xf7, 0xc4, 0x19, 0x8a, 0x9a, 0x61, 0xa2, 0xa9, 0x28, 0x05, 0xe3, 0xee, 0x09, 0xbf, 0xed, 0xb7, + 0xd1, 0xff, 0xe5, 0xa8, 0x10, 0x96, 0x7c, 0xc2, 0x0e, 0x63, 0xab, 0x25, 0x8d, 0x29, 0xe6, 0x6c, + 0x59, 0x46, 0xf0, 0xa3, 0x39, 0x2c, 0x5d, 0xe8, 0xff, 0x8c, 0x25, 0x25, 0xb1, 0xfb, 0x77, 0x3a, + 0xf7, 0xf7, 0xf6, 0x72, 0x6f, 0x02, 0x13, 0x4d, 0x45, 0x8b, 0xcc, 0x75, 0xc3, 0x6f, 0x73, 0x0b, + 0x4d, 0xf7, 0xa8, 0xe7, 0xe2, 0xa2, 0x91, 0x91, 0xa1, 0xed, 0x0b, 0x90, 0x69, 0xa4, 0x4c, 0x11, + 0x96, 0xbe, 0x87, 0x50, 0x92, 0x40, 0xe6, 0x18, 0x18, 0xdd, 0x0a, 0x31, 0x58, 0xac, 0x91, 0xdc, + 0x65, 0x2f, 0xc2, 0x94, 0xb9, 0x24, 0x21, 0xff, 0x01, 0xf4, 0xb2, 0x0d, 0x1b, 0x67, 0x21, 0x8e, + 0xd7, 0xc3, 0xe6, 0x93, 0x92, 0x28, 0xf4, 0x3d, 0x02, 0x7d, 0x49, 0xe0, 0x2d, 0xb6, 0xeb, 0x99, + 0xe1, 0x9e, 0x6b, 0x4e, 0xc9, 0x16, 0x9a, 0xbf, 0x0b, 0x05, 0x42, 0xb5, 0xd5, 0xda, 0x89, 0xae, + 0xca, 0xc2, 0x7a, 0xe1, 0xa2, 0x8d, 0x8b, 0x12, 0x68, 0xd8, 0x16, 0x24, 0xf9, 0x8a, 0x64, 0xa1, + 0xf5, 0x4f, 0xac, 0x2e, 0xd9, 0xc1, 0x21, 0x2c, 0xbb, 0x43, 0xbd, 0x70, 0x50, 0x2c, 0xbf, 0x61, + 0xe6, 0x94, 0x64, 0x73, 0xee, 0xa2, 0x19, 0x0a, 0x12, 0x21, 0x0a, 0x2c, 0xac, 0x5d, 0x1a, 0x33, + 0xa0, 0x26, 0xa6, 0x34, 0xb9, 0x00, 0x3e, 0x07, 0xc5, 0x4c, 0x31, 0x87, 0x06, 0x4c, 0x81, 0x79, + 0xe8, 0xb1, 0x69, 0xc9, 0xa8, 0x29, 0x70, 0x0d, 0x8a, 0x14, 0xa1, 0xe1, 0xe7, 0x06, 0xfb, 0x48, + 0xba, 0x5d, 0x2f, 0x4c, 0x7d, 0x3c, 0x2e, 0x3e, 0xb3, 0x51, 0x49, 0x7c, 0xe6, 0xa8, 0x0b, 0x68, + 0x8e, 0x17, 0xc6, 0x62, 0xd5, 0x92, 0x0e, 0x73, 0x09, 0xa1, 0xa0, 0xdf, 0x6e, 0xe3, 0x20, 0xf4, + 0x88, 0xcf, 0x63, 0xa8, 0xd4, 0x63, 0xdb, 0x68, 0x65, 0x94, 0x3d, 0xc2, 0xe8, 0xbf, 0x32, 0xa3, + 0x9b, 0xf8, 0x10, 0x3b, 0x9d, 0xf1, 0x8d, 0xbe, 0x97, 0x32, 0x7a, 0xfc, 0xe2, 0x4c, 0x58, 0x90, + 0xcc, 0xf2, 0x1c, 0x9a, 0x09, 0xb0, 0x4b, 0xb1, 0x48, 0x12, 0x58, 0x4b, 0x9d, 0xfd, 0x54, 0x6a, + 0xf6, 0x7c, 0x76, 0x99, 0x86, 0x8b, 0xd9, 0xdd, 0x83, 0xb0, 0xd9, 0xc4, 0x41, 0xe8, 0xd0, 0xf0, + 0xf8, 0x5d, 0x57, 0x14, 0x4e, 0xa6, 0x15, 0xbe, 0x0e, 0xe1, 0x53, 0x15, 0x26, 0x34, 0xad, 0xf3, + 0xb0, 0x75, 0x44, 0x0e, 0x12, 0xc7, 0x88, 0x92, 0x5a, 0xea, 0x44, 0x7b, 0x91, 0x93, 0x01, 0xbf, + 0x83, 0xde, 0xca, 0x43, 0x0a, 0x0d, 0xcf, 0x58, 0x29, 0x54, 0x27, 0xfe, 0x9e, 0x47, 0xbb, 0xc5, + 0x33, 0x61, 0x29, 0x83, 0x2d, 0x9d, 0x28, 0x83, 0x35, 0xbf, 0x83, 0x50, 0x54, 0x60, 0xb3, 0xd4, + 0x18, 0xb2, 0xe5, 0xf9, 0xb1, 0x4f, 0xef, 0x8e, 0xe7, 0xb7, 0x3b, 0x38, 0x2a, 0xc8, 0x9b, 0x92, + 0x90, 0xb8, 0xb8, 0x90, 0xe6, 0x28, 0xe6, 0xbf, 0x05, 0x7b, 0xb9, 0x83, 0xc3, 0x07, 0x94, 0xec, + 0x79, 0x9d, 0x82, 0xcf, 0x0a, 0x7c, 0x17, 0x55, 0x31, 0x42, 0xc7, 0x43, 0xb8, 0xd8, 0xef, 0xf7, + 0xb0, 0x3f, 0x5e, 0x9e, 0x15, 0x95, 0xe1, 0xc9, 0x40, 0xa1, 0x4b, 0xed, 0xb4, 0xaf, 0xc1, 0x95, + 0x9e, 0x92, 0xaa, 0x1c, 0x32, 0x30, 0x2d, 0x28, 0x1b, 0x50, 0x70, 0xc4, 0x4d, 0x3b, 0x84, 0x04, + 0x23, 0xae, 0x8b, 0x5f, 0xa0, 0x45, 0x4a, 0x35, 0x5e, 0x4a, 0x55, 0xe3, 0x2c, 0xf1, 0xc8, 0xd0, + 0x2a, 0x56, 0x69, 0x1f, 0x52, 0xc0, 0x1d, 0x1c, 0x46, 0xff, 0x49, 0x29, 0xbb, 0x6e, 0x20, 0x4a, + 0x15, 0x01, 0xa5, 0xa1, 0x22, 0x80, 0x27, 0x83, 0x43, 0x9a, 0x52, 0x89, 0x3e, 0xfb, 0x7e, 0x6c, + 0xa1, 0x3b, 0x32, 0x0f, 0xcd, 0x29, 0x73, 0x65, 0xd1, 0x42, 0xeb, 0x9d, 0xd8, 0x13, 0x3f, 0x08, + 0x30, 0xfd, 0x08, 0xef, 0x06, 0x5e, 0x88, 0xf3, 0x8f, 0xe2, 0x11, 0x1b, 0x14, 0x3f, 0x0f, 0xf2, + 0x66, 0xe2, 0x8b, 0x92, 0x20, 0xa1, 0x65, 0x1b, 0x9e, 0xac, 0xf8, 0xc7, 0x9a, 0x47, 0xda, 0xd4, + 0xe9, 0xed, 0x0f, 0xf2, 0x6f, 0xaf, 0xdd, 0x78, 0x18, 0xd7, 0x94, 0x74, 0xd8, 0x6f, 0x40, 0xde, + 0x9c, 0x16, 0x27, 0xb4, 0xf5, 0x21, 0x3c, 0x6e, 0xf7, 0x3b, 0xa1, 0x37, 0xc6, 0x9b, 0xdd, 0x1d, + 0x34, 0x7d, 0x08, 0x8f, 0x55, 0x93, 0x45, 0x0f, 0x3d, 0xc3, 0xf3, 0x78, 0xaa, 0xa8, 0x15, 0x26, + 0x3d, 0x65, 0xa5, 0x67, 0x74, 0x6e, 0xc6, 0xb8, 0xed, 0xa0, 0x4a, 0xa7, 0xd5, 0x78, 0x89, 0x79, + 0x33, 0xf9, 0x52, 0xe3, 0xfb, 0x1b, 0x37, 0x23, 0xef, 0xe3, 0x83, 0x1a, 0xd8, 0x3d, 0xe0, 0xc5, + 0xbe, 0xdc, 0x95, 0x8c, 0xa8, 0xc1, 0x88, 0x69, 0x79, 0x04, 0x74, 0xd9, 0x5f, 0x87, 0x93, 0x20, + 0x2c, 0x1c, 0xa3, 0x82, 0xdf, 0x81, 0x67, 0x22, 0xe6, 0x56, 0xef, 0x3b, 0xb9, 0xcf, 0xbb, 0x23, + 0x6b, 0x05, 0xa8, 0xb2, 0x4b, 0x49, 0x95, 0xcd, 0x1f, 0x82, 0x12, 0xa1, 0xa9, 0x92, 0x94, 0xbf, + 0xd5, 0x74, 0x3c, 0x27, 0xc8, 0x57, 0xc7, 0xde, 0xaa, 0x27, 0xe5, 0xb7, 0x6a, 0x56, 0x92, 0x4a, + 0x12, 0xa4, 0x84, 0x2a, 0x9a, 0xfb, 0x5d, 0xff, 0xd0, 0x0b, 0xf1, 0x96, 0x43, 0x3b, 0x83, 0xaa, + 0xeb, 0xe2, 0x20, 0xc8, 0xaf, 0x3f, 0xfa, 0xc9, 0x23, 0x39, 0x2b, 0x73, 0xd8, 0x09, 0x1f, 0x92, + 0x22, 0x9d, 0x35, 0x78, 0x71, 0xf3, 0x02, 0xef, 0x84, 0x8a, 0xde, 0x44, 0xcb, 0x23, 0x04, 0x09, + 0x5d, 0xdf, 0x66, 0x73, 0x25, 0xbe, 0x8f, 0xdd, 0xf0, 0x11, 0x76, 0x60, 0x00, 0xe9, 0xe7, 0x3e, + 0xf4, 0x96, 0xd1, 0xa9, 0xc7, 0xd1, 0x48, 0xbe, 0x4d, 0x73, 0xcd, 0xb8, 0xc9, 0xef, 0xd1, 0x0c, + 0x69, 0x42, 0xdf, 0x7f, 0x58, 0x01, 0xb7, 0xe5, 0x43, 0x37, 0xa6, 0x2c, 0xad, 0xcc, 0x4f, 0x15, + 0x1b, 0xd4, 0x39, 0xea, 0x44, 0xb7, 0xd5, 0x24, 0x78, 0xa3, 0x68, 0x9b, 0x1e, 0x42, 0x3d, 0x87, + 0x3a, 0x5d, 0x1c, 0x62, 0x1a, 0xc0, 0xf3, 0xd6, 0xfc, 0xda, 0xdd, 0x31, 0xcf, 0xe5, 0xb0, 0x11, + 0x95, 0x07, 0x42, 0xd6, 0x96, 0x1f, 0xd2, 0x41, 0x53, 0x12, 0x6e, 0x6d, 0xa2, 0x33, 0xa9, 0xcf, + 0xe6, 0x59, 0x54, 0x3a, 0xc0, 0x03, 0x6e, 0x6f, 0xf4, 0x33, 0x72, 0xa7, 0x43, 0xa7, 0xd3, 0x8f, + 0xef, 0x3c, 0xd6, 0xb8, 0x31, 0xb9, 0x6e, 0xf0, 0x0a, 0x27, 0xa5, 0x50, 0xda, 0x84, 0x05, 0xf9, + 0x6b, 0x83, 0xe4, 0xd7, 0x71, 0x38, 0x1e, 0x98, 0xd4, 0x71, 0x52, 0x17, 0x77, 0x5f, 0x49, 0x9a, + 0xd0, 0x73, 0x1f, 0x2e, 0xf1, 0xc4, 0x8a, 0x0e, 0xc9, 0x4d, 0x78, 0x8f, 0x57, 0xc5, 0x2e, 0x73, + 0x55, 0x60, 0xac, 0x6d, 0xed, 0xbf, 0x57, 0x50, 0x69, 0x3b, 0x68, 0x9b, 0x3f, 0x36, 0x10, 0x92, + 0x38, 0xa5, 0x2b, 0xe3, 0x6f, 0x50, 0x82, 0xb2, 0xbe, 0x51, 0x04, 0x25, 0xee, 0xa6, 0xcf, 0x0c, + 0xf4, 0x92, 0xca, 0x30, 0x5d, 0x1f, 0x5f, 0x9e, 0x02, 0xb4, 0x6e, 0x15, 0x04, 0x0a, 0x5b, 0x1e, + 0xa3, 0x59, 0x11, 0x6d, 0xd6, 0xc6, 0x17, 0x16, 0x63, 0xac, 0x1b, 0xfa, 0x18, 0xa1, 0xfb, 0x17, + 0x06, 0x3a, 0x93, 0x26, 0x74, 0x36, 0xc6, 0x97, 0x97, 0x82, 0x5a, 0xd5, 0xc2, 0x50, 0x61, 0xd1, + 0x4f, 0x0d, 0x74, 0x5a, 0xa1, 0x59, 0xae, 0x8d, 0x2f, 0x53, 0xc6, 0x59, 0xdf, 0x2c, 0x86, 0x53, + 0x0c, 0x51, 0x28, 0x17, 0x0d, 0x43, 0x64, 0x9c, 0x8e, 0x21, 0x59, 0xa4, 0x0a, 0x1c, 0x17, 0x89, + 0x52, 0xd1, 0x38, 0x2e, 0x09, 0x4a, 0xe7, 0xb8, 0x0c, 0x73, 0x29, 0xb0, 0x16, 0x0a, 0x93, 0xa2, + 0xb1, 0x16, 0x32, 0x4e, 0x67, 0x2d, 0xb2, 0xc8, 0x15, 0xf3, 0xb7, 0x06, 0x32, 0x33, 0xa8, 0x15, + 0x8d, 0xd9, 0x0d, 0xa3, 0xad, 0xc6, 0x49, 0xd0, 0xc2, 0xb4, 0x9f, 0x18, 0x68, 0x5e, 0x26, 0x68, + 0xae, 0xea, 0x48, 0x15, 0x30, 0x6b, 0xb3, 0x10, 0x4c, 0x58, 0xf1, 0x7b, 0x03, 0xbd, 0x92, 0x45, + 0x8d, 0x68, 0x88, 0xcd, 0x80, 0x5b, 0x5b, 0x27, 0x82, 0x0b, 0xeb, 0x7e, 0x84, 0xe6, 0x12, 0x12, + 0xe5, 0xb2, 0xee, 0x0d, 0xbe, 0x83, 0x43, 0xeb, 0x66, 0x01, 0x90, 0xe2, 0xc6, 0x0a, 0x21, 0x72, + 0x4d, 0xeb, 0x54, 0x08, 0x9c, 0x8e, 0x1b, 0x67, 0xb1, 0x24, 0xe0, 0x2b, 0x32, 0x47, 0xa2, 0xe1, + 0x2b, 0x12, 0x4c, 0xc7, 0x57, 0x32, 0xf8, 0x14, 0xf3, 0x89, 0x81, 0x16, 0x52, 0x6c, 0xca, 0xba, + 0x56, 0x30, 0x93, 0x90, 0xd6, 0xbb, 0x45, 0x91, 0xc2, 0x9c, 0xdf, 0x18, 0xe8, 0xe5, 0x61, 0x4a, + 0xe5, 0xa6, 0xce, 0x79, 0x48, 0x81, 0xad, 0xfa, 0x09, 0xc0, 0xc2, 0xae, 0xcf, 0x0d, 0x54, 0x1e, + 0x49, 0xb5, 0xd4, 0xb4, 0x35, 0x0c, 0xc9, 0xb0, 0xbe, 0x75, 0x72, 0x19, 0xea, 0xf9, 0xcf, 0x60, + 0x63, 0x36, 0xf5, 0x3c, 0x36, 0x05, 0xd7, 0x3a, 0xff, 0xa3, 0xd9, 0x1a, 0x48, 0x37, 0xd2, 0x54, + 0xcd, 0x86, 0xfe, 0x89, 0xe6, 0x50, 0x9d, 0x74, 0x63, 0x04, 0x2b, 0x63, 0x1e, 0xa1, 0x53, 0x31, + 0x25, 0x73, 0x49, 0x3b, 0x91, 0xb3, 0x36, 0xb4, 0x21, 0xca, 0x52, 0xa4, 0xc9, 0x9a, 0x0d, 0x5d, + 0x47, 0x28, 0xb4, 0x14, 0x23, 0x08, 0x1d, 0xb0, 0x28, 0x4d, 0xe7, 0x6c, 0x14, 0x49, 0x1b, 0x98, + 0xcb, 0x54, 0x0b, 0x43, 0x95, 0x2c, 0x5d, 0xa5, 0x79, 0xae, 0x6b, 0x09, 0x4d, 0x80, 0x3a, 0x59, + 0x7a, 0x26, 0xfd, 0x03, 0xb6, 0xa8, 0xdc, 0x8f, 0x86, 0x2d, 0x0a, 0x50, 0xc7, 0x96, 0x4c, 0x1a, + 0x07, 0x6c, 0x51, 0x49, 0x9c, 0xeb, 0xba, 0x27, 0x21, 0xce, 0x7d, 0x6e, 0x15, 0x04, 0x0a, 0x5b, + 0xfe, 0x68, 0xa0, 0x57, 0xb3, 0xd9, 0x1e, 0x1d, 0xd1, 0x59, 0x02, 0xac, 0x3b, 0x27, 0x14, 0xa0, + 0xd8, 0x98, 0x4d, 0xee, 0xdc, 0xd2, 0x39, 0x36, 0x19, 0x02, 0x74, 0x6c, 0xcc, 0x65, 0x69, 0x20, + 0x18, 0xa7, 0x38, 0x9a, 0x75, 0x1d, 0xd9, 0x32, 0x52, 0x27, 0x18, 0x67, 0x53, 0x39, 0xe6, 0x9f, + 0x0d, 0x74, 0x7e, 0x34, 0x91, 0xa3, 0x15, 0x57, 0x47, 0x08, 0xb1, 0xee, 0xbd, 0x00, 0x21, 0x6a, + 0x85, 0x22, 0xb3, 0x42, 0x3a, 0x15, 0x8a, 0x84, 0xd3, 0xaa, 0x50, 0x32, 0x18, 0x1a, 0xd8, 0xc7, + 0x14, 0x3f, 0xb3, 0xae, 0x75, 0xde, 0x25, 0xa4, 0xce, 0x3e, 0x66, 0x93, 0x39, 0x70, 0xa9, 0xa7, + 0xa9, 0x1c, 0x8d, 0x4b, 0x3d, 0x05, 0xd5, 0xb9, 0xd4, 0x47, 0x51, 0x3d, 0x51, 0x86, 0x92, 0x45, + 0xe7, 0x6c, 0xea, 0xd7, 0xeb, 0xb2, 0x65, 0x5b, 0x27, 0x82, 0x2b, 0x49, 0xe8, 0x30, 0xa9, 0x73, + 0x53, 0x6b, 0x1f, 0x54, 0xb0, 0x4e, 0x12, 0x3a, 0x92, 0xe4, 0x01, 0xff, 0x56, 0x28, 0x9e, 0x6b, + 0xba, 0x52, 0xf5, 0x2b, 0xf0, 0x2c, 0xde, 0x27, 0xf6, 0x6f, 0x99, 0xf5, 0xd1, 0xf3, 0x6f, 0x09, + 0xa9, 0xe9, 0xdf, 0x19, 0x04, 0x91, 0xf9, 0x2b, 0x03, 0x9d, 0x1d, 0xa2, 0x87, 0x6e, 0x68, 0x8b, + 0x15, 0x58, 0xab, 0x56, 0x1c, 0xab, 0xc4, 0x67, 0x95, 0x45, 0xd2, 0x88, 0xcf, 0x0a, 0x50, 0x27, + 0x3e, 0x67, 0x12, 0x48, 0x51, 0xc9, 0x9d, 0x90, 0x47, 0x97, 0xf5, 0x8e, 0x2f, 0xbb, 0x11, 0x6f, + 0x16, 0x00, 0x29, 0x8f, 0x57, 0x12, 0xd1, 0x73, 0x45, 0xd7, 0xfb, 0x22, 0x94, 0xce, 0xe3, 0xd5, + 0x30, 0xff, 0x03, 0xc5, 0xb6, 0xcc, 0xfe, 0x5c, 0xd5, 0x7e, 0x83, 0x8a, 0x60, 0x3a, 0xc5, 0x76, + 0x06, 0x53, 0x04, 0x17, 0xcb, 0x30, 0x4f, 0xa4, 0xb1, 0xb6, 0x43, 0x60, 0x9d, 0x8b, 0x65, 0x24, + 0xb7, 0x64, 0xfe, 0xc1, 0x40, 0x8b, 0x99, 0xcc, 0x92, 0xce, 0xb3, 0x65, 0x06, 0xde, 0xba, 0x7d, + 0x32, 0xbc, 0x12, 0x2f, 0xb2, 0xe8, 0xa8, 0x4d, 0xad, 0x40, 0x9d, 0x86, 0xeb, 0xc4, 0x8b, 0x1c, + 0xfa, 0x0a, 0xe2, 0x6b, 0x9a, 0xbb, 0xda, 0x28, 0xcc, 0x38, 0xe9, 0xc4, 0xd7, 0x11, 0xdc, 0x11, + 0xb8, 0xbb, 0xcc, 0x1c, 0x5d, 0x2d, 0x20, 0xb2, 0x41, 0x74, 0xdc, 0x3d, 0x83, 0x59, 0x82, 0x30, + 0x91, 0xe2, 0x95, 0xd6, 0x8b, 0xcc, 0x2d, 0x42, 0xea, 0x84, 0x89, 0x6c, 0xea, 0xa9, 0xd6, 0xfc, + 0xe2, 0xd9, 0x92, 0xf1, 0xe5, 0xb3, 0x25, 0xe3, 0x5f, 0xcf, 0x96, 0x8c, 0x5f, 0x3e, 0x5f, 0x9a, + 0xf8, 0xf2, 0xf9, 0xd2, 0xc4, 0xdf, 0x9f, 0x2f, 0x4d, 0x3c, 0x5a, 0x97, 0xfe, 0x91, 0xe7, 0x90, + 0x96, 0xd5, 0xba, 0xf8, 0xab, 0xa9, 0x4f, 0xe5, 0x3f, 0x01, 0x1b, 0xf4, 0x70, 0xb0, 0x3b, 0x03, + 0x7f, 0x23, 0x75, 0xf9, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x79, 0x5f, 0xce, 0x26, 0x36, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4543,6 +4833,9 @@ type MsgClient interface { InviteEarlyAccess(ctx context.Context, in *MsgInviteEarlyAccess, opts ...grpc.CallOption) (*MsgInviteEarlyAccessResponse, error) DisinviteEarlyAccess(ctx context.Context, in *MsgDisinviteEarlyAccess, opts ...grpc.CallOption) (*MsgDisinviteEarlyAccessResponse, error) ConnectZealyAccount(ctx context.Context, in *MsgConnectZealyAccount, opts ...grpc.CallOption) (*MsgConnectZealyAccountResponse, error) + EncounterCreate(ctx context.Context, in *MsgEncounterCreate, opts ...grpc.CallOption) (*MsgEncounterCreateResponse, error) + EncounterDo(ctx context.Context, in *MsgEncounterDo, opts ...grpc.CallOption) (*MsgEncounterDoResponse, error) + EncounterClose(ctx context.Context, in *MsgEncounterClose, opts ...grpc.CallOption) (*MsgEncounterCloseResponse, error) } type msgClient struct { @@ -4949,6 +5242,33 @@ func (c *msgClient) ConnectZealyAccount(ctx context.Context, in *MsgConnectZealy return out, nil } +func (c *msgClient) EncounterCreate(ctx context.Context, in *MsgEncounterCreate, opts ...grpc.CallOption) (*MsgEncounterCreateResponse, error) { + out := new(MsgEncounterCreateResponse) + err := c.cc.Invoke(ctx, "/DecentralCardGame.cardchain.cardchain.Msg/EncounterCreate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) EncounterDo(ctx context.Context, in *MsgEncounterDo, opts ...grpc.CallOption) (*MsgEncounterDoResponse, error) { + out := new(MsgEncounterDoResponse) + err := c.cc.Invoke(ctx, "/DecentralCardGame.cardchain.cardchain.Msg/EncounterDo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) EncounterClose(ctx context.Context, in *MsgEncounterClose, opts ...grpc.CallOption) (*MsgEncounterCloseResponse, error) { + out := new(MsgEncounterCloseResponse) + err := c.cc.Invoke(ctx, "/DecentralCardGame.cardchain.cardchain.Msg/EncounterClose", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { Createuser(context.Context, *MsgCreateuser) (*MsgCreateuserResponse, error) @@ -4996,6 +5316,9 @@ type MsgServer interface { InviteEarlyAccess(context.Context, *MsgInviteEarlyAccess) (*MsgInviteEarlyAccessResponse, error) DisinviteEarlyAccess(context.Context, *MsgDisinviteEarlyAccess) (*MsgDisinviteEarlyAccessResponse, error) ConnectZealyAccount(context.Context, *MsgConnectZealyAccount) (*MsgConnectZealyAccountResponse, error) + EncounterCreate(context.Context, *MsgEncounterCreate) (*MsgEncounterCreateResponse, error) + EncounterDo(context.Context, *MsgEncounterDo) (*MsgEncounterDoResponse, error) + EncounterClose(context.Context, *MsgEncounterClose) (*MsgEncounterCloseResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -5134,6 +5457,15 @@ func (*UnimplementedMsgServer) DisinviteEarlyAccess(ctx context.Context, req *Ms func (*UnimplementedMsgServer) ConnectZealyAccount(ctx context.Context, req *MsgConnectZealyAccount) (*MsgConnectZealyAccountResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ConnectZealyAccount not implemented") } +func (*UnimplementedMsgServer) EncounterCreate(ctx context.Context, req *MsgEncounterCreate) (*MsgEncounterCreateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EncounterCreate not implemented") +} +func (*UnimplementedMsgServer) EncounterDo(ctx context.Context, req *MsgEncounterDo) (*MsgEncounterDoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EncounterDo not implemented") +} +func (*UnimplementedMsgServer) EncounterClose(ctx context.Context, req *MsgEncounterClose) (*MsgEncounterCloseResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EncounterClose not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -5931,6 +6263,60 @@ func _Msg_ConnectZealyAccount_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Msg_EncounterCreate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgEncounterCreate) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).EncounterCreate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/DecentralCardGame.cardchain.cardchain.Msg/EncounterCreate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).EncounterCreate(ctx, req.(*MsgEncounterCreate)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_EncounterDo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgEncounterDo) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).EncounterDo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/DecentralCardGame.cardchain.cardchain.Msg/EncounterDo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).EncounterDo(ctx, req.(*MsgEncounterDo)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_EncounterClose_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgEncounterClose) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).EncounterClose(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/DecentralCardGame.cardchain.cardchain.Msg/EncounterClose", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).EncounterClose(ctx, req.(*MsgEncounterClose)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "DecentralCardGame.cardchain.cardchain.Msg", HandlerType: (*MsgServer)(nil), @@ -6111,6 +6497,18 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "ConnectZealyAccount", Handler: _Msg_ConnectZealyAccount_Handler, }, + { + MethodName: "EncounterCreate", + Handler: _Msg_EncounterCreate_Handler, + }, + { + MethodName: "EncounterDo", + Handler: _Msg_EncounterDo_Handler, + }, + { + MethodName: "EncounterClose", + Handler: _Msg_EncounterClose_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cardchain/cardchain/tx.proto", @@ -9077,26 +9475,232 @@ func (m *MsgConnectZealyAccountResponse) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } -func encodeVarintTx(dAtA []byte, offset int, v uint64) int { - offset -= sovTx(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *MsgEncounterCreate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + return dAtA[:n], nil } -func (m *MsgCreateuser) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Creator) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) + +func (m *MsgEncounterCreate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgEncounterCreate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Parameters) > 0 { + for k := range m.Parameters { + v := m.Parameters[k] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintTx(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(k) + copy(dAtA[i:], k) + i = encodeVarintTx(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = encodeVarintTx(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x1a + } + } + if len(m.Drawlist) > 0 { + dAtA13 := make([]byte, len(m.Drawlist)*10) + var j12 int + for _, num := range m.Drawlist { + for num >= 1<<7 { + dAtA13[j12] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j12++ + } + dAtA13[j12] = uint8(num) + j12++ + } + i -= j12 + copy(dAtA[i:], dAtA13[:j12]) + i = encodeVarintTx(dAtA, i, uint64(j12)) + i-- + dAtA[i] = 0x12 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgEncounterCreateResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgEncounterCreateResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgEncounterCreateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgEncounterDo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgEncounterDo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgEncounterDo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.EncounterId != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.EncounterId)) + i-- + dAtA[i] = 0x10 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgEncounterDoResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgEncounterDoResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgEncounterDoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgEncounterClose) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgEncounterClose) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgEncounterClose) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.EncounterId != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.EncounterId)) + i-- + dAtA[i] = 0x10 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgEncounterCloseResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgEncounterCloseResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgEncounterCloseResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func encodeVarintTx(dAtA []byte, offset int, v uint64) int { + offset -= sovTx(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *MsgCreateuser) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) } l = len(m.NewUser) if l > 0 { @@ -10377,6 +10981,93 @@ func (m *MsgConnectZealyAccountResponse) Size() (n int) { return n } +func (m *MsgEncounterCreate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if len(m.Drawlist) > 0 { + l = 0 + for _, e := range m.Drawlist { + l += sovTx(uint64(e)) + } + n += 1 + sovTx(uint64(l)) + l + } + if len(m.Parameters) > 0 { + for k, v := range m.Parameters { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovTx(uint64(len(k))) + 1 + len(v) + sovTx(uint64(len(v))) + n += mapEntrySize + 1 + sovTx(uint64(mapEntrySize)) + } + } + return n +} + +func (m *MsgEncounterCreateResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgEncounterDo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.EncounterId != 0 { + n += 1 + sovTx(uint64(m.EncounterId)) + } + return n +} + +func (m *MsgEncounterDoResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgEncounterClose) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.EncounterId != 0 { + n += 1 + sovTx(uint64(m.EncounterId)) + } + return n +} + +func (m *MsgEncounterCloseResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func sovTx(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -18649,6 +19340,643 @@ func (m *MsgConnectZealyAccountResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgEncounterCreate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgEncounterCreate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgEncounterCreate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Drawlist = append(m.Drawlist, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Drawlist) == 0 { + m.Drawlist = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Drawlist = append(m.Drawlist, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Drawlist", wireType) + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Parameters == nil { + m.Parameters = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTx + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthTx + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTx + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthTx + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Parameters[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgEncounterCreateResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgEncounterCreateResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgEncounterCreateResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgEncounterDo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgEncounterDo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgEncounterDo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EncounterId", wireType) + } + m.EncounterId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EncounterId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgEncounterDoResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgEncounterDoResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgEncounterDoResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgEncounterClose) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgEncounterClose: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgEncounterClose: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EncounterId", wireType) + } + m.EncounterId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EncounterId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgEncounterCloseResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgEncounterCloseResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgEncounterCloseResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTx(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 From d2f255cbf5685acbc16e2b25936b60ce6ca6c9f8 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Mon, 30 Sep 2024 20:51:42 +0200 Subject: [PATCH 05/20] feat(#237): Added EncouterBaseTX --- x/cardchain/client/cli/tx_encounter_close.go | 46 +++++++++++++++++++ x/cardchain/client/cli/tx_encounter_create.go | 40 ++++++++++++++++ x/cardchain/client/cli/tx_encounter_do.go | 46 +++++++++++++++++++ .../keeper/msg_server_encounter_close.go | 17 +++++++ .../keeper/msg_server_encounter_create.go | 17 +++++++ x/cardchain/keeper/msg_server_encounter_do.go | 17 +++++++ x/cardchain/simulation/encounter_close.go | 29 ++++++++++++ x/cardchain/simulation/encounter_create.go | 29 ++++++++++++ x/cardchain/simulation/encounter_do.go | 29 ++++++++++++ x/cardchain/types/message_encounter_close.go | 46 +++++++++++++++++++ .../types/message_encounter_close_test.go | 40 ++++++++++++++++ x/cardchain/types/message_encounter_create.go | 45 ++++++++++++++++++ .../types/message_encounter_create_test.go | 40 ++++++++++++++++ x/cardchain/types/message_encounter_do.go | 46 +++++++++++++++++++ .../types/message_encounter_do_test.go | 40 ++++++++++++++++ 15 files changed, 527 insertions(+) create mode 100644 x/cardchain/client/cli/tx_encounter_close.go create mode 100644 x/cardchain/client/cli/tx_encounter_create.go create mode 100644 x/cardchain/client/cli/tx_encounter_do.go create mode 100644 x/cardchain/keeper/msg_server_encounter_close.go create mode 100644 x/cardchain/keeper/msg_server_encounter_create.go create mode 100644 x/cardchain/keeper/msg_server_encounter_do.go create mode 100644 x/cardchain/simulation/encounter_close.go create mode 100644 x/cardchain/simulation/encounter_create.go create mode 100644 x/cardchain/simulation/encounter_do.go create mode 100644 x/cardchain/types/message_encounter_close.go create mode 100644 x/cardchain/types/message_encounter_close_test.go create mode 100644 x/cardchain/types/message_encounter_create.go create mode 100644 x/cardchain/types/message_encounter_create_test.go create mode 100644 x/cardchain/types/message_encounter_do.go create mode 100644 x/cardchain/types/message_encounter_do_test.go diff --git a/x/cardchain/client/cli/tx_encounter_close.go b/x/cardchain/client/cli/tx_encounter_close.go new file mode 100644 index 00000000..7b08b6be --- /dev/null +++ b/x/cardchain/client/cli/tx_encounter_close.go @@ -0,0 +1,46 @@ +package cli + +import ( + "strconv" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/spf13/cast" + "github.com/spf13/cobra" +) + +var _ = strconv.Itoa(0) + +func CmdEncounterClose() *cobra.Command { + cmd := &cobra.Command{ + Use: "encounter-close [encounter-id]", + Short: "Broadcast message EncounterClose", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) (err error) { + argEncounterId, err := cast.ToUint64E(args[0]) + if err != nil { + return err + } + + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + msg := types.NewMsgEncounterClose( + clientCtx.GetFromAddress().String(), + argEncounterId, + ) + if err := msg.ValidateBasic(); err != nil { + return err + } + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} diff --git a/x/cardchain/client/cli/tx_encounter_create.go b/x/cardchain/client/cli/tx_encounter_create.go new file mode 100644 index 00000000..4780bdcc --- /dev/null +++ b/x/cardchain/client/cli/tx_encounter_create.go @@ -0,0 +1,40 @@ +package cli + +import ( + "strconv" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/spf13/cobra" +) + +var _ = strconv.Itoa(0) + +func CmdEncounterCreate() *cobra.Command { + cmd := &cobra.Command{ + Use: "encounter-create", + Short: "Broadcast message EncounterCreate", + Args: cobra.ExactArgs(0), + RunE: func(cmd *cobra.Command, args []string) (err error) { + + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + msg := types.NewMsgEncounterCreate( + clientCtx.GetFromAddress().String(), + ) + if err := msg.ValidateBasic(); err != nil { + return err + } + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} diff --git a/x/cardchain/client/cli/tx_encounter_do.go b/x/cardchain/client/cli/tx_encounter_do.go new file mode 100644 index 00000000..db3d67c8 --- /dev/null +++ b/x/cardchain/client/cli/tx_encounter_do.go @@ -0,0 +1,46 @@ +package cli + +import ( + "strconv" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/spf13/cast" + "github.com/spf13/cobra" +) + +var _ = strconv.Itoa(0) + +func CmdEncounterDo() *cobra.Command { + cmd := &cobra.Command{ + Use: "encounter-do [encounter-id]", + Short: "Broadcast message EncounterDo", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) (err error) { + argEncounterId, err := cast.ToUint64E(args[0]) + if err != nil { + return err + } + + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + msg := types.NewMsgEncounterDo( + clientCtx.GetFromAddress().String(), + argEncounterId, + ) + if err := msg.ValidateBasic(); err != nil { + return err + } + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} diff --git a/x/cardchain/keeper/msg_server_encounter_close.go b/x/cardchain/keeper/msg_server_encounter_close.go new file mode 100644 index 00000000..0ed748e6 --- /dev/null +++ b/x/cardchain/keeper/msg_server_encounter_close.go @@ -0,0 +1,17 @@ +package keeper + +import ( + "context" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func (k msgServer) EncounterClose(goCtx context.Context, msg *types.MsgEncounterClose) (*types.MsgEncounterCloseResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // TODO: Handling the message + _ = ctx + + return &types.MsgEncounterCloseResponse{}, nil +} diff --git a/x/cardchain/keeper/msg_server_encounter_create.go b/x/cardchain/keeper/msg_server_encounter_create.go new file mode 100644 index 00000000..64ace972 --- /dev/null +++ b/x/cardchain/keeper/msg_server_encounter_create.go @@ -0,0 +1,17 @@ +package keeper + +import ( + "context" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func (k msgServer) EncounterCreate(goCtx context.Context, msg *types.MsgEncounterCreate) (*types.MsgEncounterCreateResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // TODO: Handling the message + _ = ctx + + return &types.MsgEncounterCreateResponse{}, nil +} diff --git a/x/cardchain/keeper/msg_server_encounter_do.go b/x/cardchain/keeper/msg_server_encounter_do.go new file mode 100644 index 00000000..dd4bc61e --- /dev/null +++ b/x/cardchain/keeper/msg_server_encounter_do.go @@ -0,0 +1,17 @@ +package keeper + +import ( + "context" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func (k msgServer) EncounterDo(goCtx context.Context, msg *types.MsgEncounterDo) (*types.MsgEncounterDoResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // TODO: Handling the message + _ = ctx + + return &types.MsgEncounterDoResponse{}, nil +} diff --git a/x/cardchain/simulation/encounter_close.go b/x/cardchain/simulation/encounter_close.go new file mode 100644 index 00000000..630fe108 --- /dev/null +++ b/x/cardchain/simulation/encounter_close.go @@ -0,0 +1,29 @@ +package simulation + +import ( + "math/rand" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/keeper" + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" + simtypes "github.com/cosmos/cosmos-sdk/types/simulation" +) + +func SimulateMsgEncounterClose( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + simAccount, _ := simtypes.RandomAcc(r, accs) + msg := &types.MsgEncounterClose{ + Creator: simAccount.Address.String(), + } + + // TODO: Handling the EncounterClose simulation + + return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "EncounterClose simulation not implemented"), nil, nil + } +} diff --git a/x/cardchain/simulation/encounter_create.go b/x/cardchain/simulation/encounter_create.go new file mode 100644 index 00000000..c779a80e --- /dev/null +++ b/x/cardchain/simulation/encounter_create.go @@ -0,0 +1,29 @@ +package simulation + +import ( + "math/rand" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/keeper" + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" + simtypes "github.com/cosmos/cosmos-sdk/types/simulation" +) + +func SimulateMsgEncounterCreate( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + simAccount, _ := simtypes.RandomAcc(r, accs) + msg := &types.MsgEncounterCreate{ + Creator: simAccount.Address.String(), + } + + // TODO: Handling the EncounterCreate simulation + + return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "EncounterCreate simulation not implemented"), nil, nil + } +} diff --git a/x/cardchain/simulation/encounter_do.go b/x/cardchain/simulation/encounter_do.go new file mode 100644 index 00000000..3cac5812 --- /dev/null +++ b/x/cardchain/simulation/encounter_do.go @@ -0,0 +1,29 @@ +package simulation + +import ( + "math/rand" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/keeper" + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" + simtypes "github.com/cosmos/cosmos-sdk/types/simulation" +) + +func SimulateMsgEncounterDo( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + simAccount, _ := simtypes.RandomAcc(r, accs) + msg := &types.MsgEncounterDo{ + Creator: simAccount.Address.String(), + } + + // TODO: Handling the EncounterDo simulation + + return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "EncounterDo simulation not implemented"), nil, nil + } +} diff --git a/x/cardchain/types/message_encounter_close.go b/x/cardchain/types/message_encounter_close.go new file mode 100644 index 00000000..840faa47 --- /dev/null +++ b/x/cardchain/types/message_encounter_close.go @@ -0,0 +1,46 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +const TypeMsgEncounterClose = "encounter_close" + +var _ sdk.Msg = &MsgEncounterClose{} + +func NewMsgEncounterClose(creator string, encounterId uint64) *MsgEncounterClose { + return &MsgEncounterClose{ + Creator: creator, + EncounterId: encounterId, + } +} + +func (msg *MsgEncounterClose) Route() string { + return RouterKey +} + +func (msg *MsgEncounterClose) Type() string { + return TypeMsgEncounterClose +} + +func (msg *MsgEncounterClose) GetSigners() []sdk.AccAddress { + creator, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + panic(err) + } + return []sdk.AccAddress{creator} +} + +func (msg *MsgEncounterClose) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} + +func (msg *MsgEncounterClose) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} diff --git a/x/cardchain/types/message_encounter_close_test.go b/x/cardchain/types/message_encounter_close_test.go new file mode 100644 index 00000000..8b51e895 --- /dev/null +++ b/x/cardchain/types/message_encounter_close_test.go @@ -0,0 +1,40 @@ +package types + +import ( + "testing" + + "github.com/DecentralCardGame/Cardchain/testutil/sample" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/stretchr/testify/require" +) + +func TestMsgEncounterClose_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgEncounterClose + err error + }{ + { + name: "invalid address", + msg: MsgEncounterClose{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgEncounterClose{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} diff --git a/x/cardchain/types/message_encounter_create.go b/x/cardchain/types/message_encounter_create.go new file mode 100644 index 00000000..4824f63b --- /dev/null +++ b/x/cardchain/types/message_encounter_create.go @@ -0,0 +1,45 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +const TypeMsgEncounterCreate = "encounter_create" + +var _ sdk.Msg = &MsgEncounterCreate{} + +func NewMsgEncounterCreate(creator string) *MsgEncounterCreate { + return &MsgEncounterCreate{ + Creator: creator, + } +} + +func (msg *MsgEncounterCreate) Route() string { + return RouterKey +} + +func (msg *MsgEncounterCreate) Type() string { + return TypeMsgEncounterCreate +} + +func (msg *MsgEncounterCreate) GetSigners() []sdk.AccAddress { + creator, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + panic(err) + } + return []sdk.AccAddress{creator} +} + +func (msg *MsgEncounterCreate) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} + +func (msg *MsgEncounterCreate) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} diff --git a/x/cardchain/types/message_encounter_create_test.go b/x/cardchain/types/message_encounter_create_test.go new file mode 100644 index 00000000..e76ac6bd --- /dev/null +++ b/x/cardchain/types/message_encounter_create_test.go @@ -0,0 +1,40 @@ +package types + +import ( + "testing" + + "github.com/DecentralCardGame/Cardchain/testutil/sample" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/stretchr/testify/require" +) + +func TestMsgEncounterCreate_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgEncounterCreate + err error + }{ + { + name: "invalid address", + msg: MsgEncounterCreate{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgEncounterCreate{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} diff --git a/x/cardchain/types/message_encounter_do.go b/x/cardchain/types/message_encounter_do.go new file mode 100644 index 00000000..d05d7ef6 --- /dev/null +++ b/x/cardchain/types/message_encounter_do.go @@ -0,0 +1,46 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +const TypeMsgEncounterDo = "encounter_do" + +var _ sdk.Msg = &MsgEncounterDo{} + +func NewMsgEncounterDo(creator string, encounterId uint64) *MsgEncounterDo { + return &MsgEncounterDo{ + Creator: creator, + EncounterId: encounterId, + } +} + +func (msg *MsgEncounterDo) Route() string { + return RouterKey +} + +func (msg *MsgEncounterDo) Type() string { + return TypeMsgEncounterDo +} + +func (msg *MsgEncounterDo) GetSigners() []sdk.AccAddress { + creator, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + panic(err) + } + return []sdk.AccAddress{creator} +} + +func (msg *MsgEncounterDo) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} + +func (msg *MsgEncounterDo) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} diff --git a/x/cardchain/types/message_encounter_do_test.go b/x/cardchain/types/message_encounter_do_test.go new file mode 100644 index 00000000..fedad6a7 --- /dev/null +++ b/x/cardchain/types/message_encounter_do_test.go @@ -0,0 +1,40 @@ +package types + +import ( + "testing" + + "github.com/DecentralCardGame/Cardchain/testutil/sample" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/stretchr/testify/require" +) + +func TestMsgEncounterDo_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgEncounterDo + err error + }{ + { + name: "invalid address", + msg: MsgEncounterDo{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgEncounterDo{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} From a32dae7abec5207770c7bc8b9a9a2e52638b671d Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Tue, 10 Dec 2024 20:44:33 +0100 Subject: [PATCH 06/20] feat(#237): Added keeper for encounters --- x/cardchain/keeper/keeper.go | 3 +++ x/cardchain/types/keys.go | 1 + 2 files changed, 4 insertions(+) diff --git a/x/cardchain/keeper/keeper.go b/x/cardchain/keeper/keeper.go index 95606c56..f7e61909 100644 --- a/x/cardchain/keeper/keeper.go +++ b/x/cardchain/keeper/keeper.go @@ -36,6 +36,7 @@ type Keeper struct { RunningAverages gtk.KeywordedGenericTypeKeeper[*types.RunningAverage] Pools gtk.KeywordedGenericTypeKeeper[*sdk.Coin] Images gtk.GenericTypeKeeper[*types.Image] + Encounters gtk.GenericTypeKeeper[*types.Encounter] FeatureFlagModuleInstance ffKeeper.ModuleInstance BankKeeper types.BankKeeper @@ -55,6 +56,7 @@ func NewKeeper( imagesStorekey storetypes.StoreKey, serversStoreKey storetypes.StoreKey, zealyStoreKey storetypes.StoreKey, + encountersStoreKey storetypes.StoreKey, internalStoreKey storetypes.StoreKey, ps paramtypes.Subspace, @@ -82,6 +84,7 @@ func NewKeeper( Pools: gtk.NewKGTK[*sdk.Coin](poolsStoreKey, internalStoreKey, cdc, gtk.GetEmpty[sdk.Coin], []string{PublicPoolKey, WinnersPoolKey, BalancersPoolKey}), Images: gtk.NewGTK[*types.Image](imagesStorekey, internalStoreKey, cdc, gtk.GetEmpty[types.Image]), Servers: gtk.NewGTK[*types.Server](serversStoreKey, internalStoreKey, cdc, gtk.GetEmpty[types.Server]), + Encounters: gtk.NewGTK[*types.Encounter](encountersStoreKey, internalStoreKey, cdc, gtk.GetEmpty[types.Encounter]), FeatureFlagModuleInstance: featureFlagKeeper.GetModuleInstance(types.ModuleName, []string{string(types.FeatureFlagName_Council), string(types.FeatureFlagName_Matches)}), BankKeeper: bankKeeper, diff --git a/x/cardchain/types/keys.go b/x/cardchain/types/keys.go index 7ccbd5aa..ccc35b76 100644 --- a/x/cardchain/types/keys.go +++ b/x/cardchain/types/keys.go @@ -15,6 +15,7 @@ const ( CouncilsStoreKey = "Councils" ServersStoreKey = "Servers" ZealyStoreKey = "Zealy" + EncountersStoreKey = "Encounters" InternalStoreKey = "Internal" RunningAveragesStoreKey = "RunningAverages" ImagesStoreKey = "Images" From df8588de214e45e77afed75b3a3f358976c3d80b Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Tue, 10 Dec 2024 20:57:26 +0100 Subject: [PATCH 07/20] feat(#237): Added warning to ignite --- app/app.go | 2 ++ go.mod | 30 +++++++++---------- go.sum | 56 ++++++++++++++++++------------------ ignite | 1 + testutil/keeper/cardchain.go | 1 + 5 files changed, 47 insertions(+), 43 deletions(-) diff --git a/app/app.go b/app/app.go index 1674f4d4..cf1f266d 100644 --- a/app/app.go +++ b/app/app.go @@ -311,6 +311,7 @@ func New( cardchainmoduletypes.RunningAveragesStoreKey, cardchainmoduletypes.CouncilsStoreKey, cardchainmoduletypes.ImagesStoreKey, cardchainmoduletypes.InternalStoreKey, cardchainmoduletypes.ServersStoreKey, cardchainmoduletypes.ZealyStoreKey, + cardchainmoduletypes.EncountersStoreKey, featureflagmoduletypes.StoreKey, // this line is used by starport scaffolding # stargate/app/storeKey ) @@ -529,6 +530,7 @@ func New( keys[cardchainmoduletypes.ImagesStoreKey], keys[cardchainmoduletypes.ServersStoreKey], keys[cardchainmoduletypes.ZealyStoreKey], + keys[cardchainmoduletypes.EncountersStoreKey], keys[cardchainmoduletypes.InternalStoreKey], app.GetSubspace(cardchainmoduletypes.ModuleName), app.FeatureflagKeeper, diff --git a/go.mod b/go.mod index 3853c05e..8e966f53 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/DecentralCardGame/Cardchain -go 1.21 +go 1.23 require ( cosmossdk.io/errors v1.0.0-beta.7 @@ -19,14 +19,14 @@ require ( github.com/tendermint/tendermint v0.34.29 github.com/tendermint/tm-db v0.6.7 golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0 - google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 - google.golang.org/grpc v1.64.1 + google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 + google.golang.org/grpc v1.68.0 gopkg.in/yaml.v2 v2.4.0 ) require ( cloud.google.com/go v0.112.1 // indirect - cloud.google.com/go/compute/metadata v0.3.0 // indirect + cloud.google.com/go/compute/metadata v0.5.0 // indirect cloud.google.com/go/iam v1.1.6 // indirect cloud.google.com/go/storage v1.38.0 // indirect cosmossdk.io/math v1.0.0-rc.0 // indirect @@ -43,7 +43,7 @@ require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect github.com/coinbase/rosetta-sdk-go v0.7.9 // indirect @@ -76,7 +76,7 @@ require ( github.com/go-playground/validator/v10 v10.4.1 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/gateway v1.1.0 // indirect - github.com/golang/glog v1.2.0 // indirect + github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect @@ -151,18 +151,18 @@ require ( go.opentelemetry.io/otel v1.24.0 // indirect go.opentelemetry.io/otel/metric v1.24.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect - golang.org/x/crypto v0.24.0 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.22.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect - golang.org/x/text v0.17.0 // indirect + golang.org/x/crypto v0.27.0 // indirect + golang.org/x/net v0.29.0 // indirect + golang.org/x/oauth2 v0.24.0 // indirect + golang.org/x/sync v0.9.0 // indirect + golang.org/x/sys v0.25.0 // indirect + golang.org/x/term v0.24.0 // indirect + golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.5.0 // indirect google.golang.org/api v0.169.0 // indirect google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect - google.golang.org/protobuf v1.34.2 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect nhooyr.io/websocket v1.8.7 // indirect diff --git a/go.sum b/go.sum index 1b9f2efe..dd0cb740 100644 --- a/go.sum +++ b/go.sum @@ -129,8 +129,8 @@ cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= -cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= -cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= +cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= @@ -759,8 +759,8 @@ github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.8/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= github.com/chavacava/garif v0.0.0-20210405164556-e8a0a408d6af/go.mod h1:Qjyv4H3//PWVzTeCezG2b9IRn6myJxJSr4TD/xo6ojU= @@ -1331,8 +1331,8 @@ github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188/go.mod h1:vXjM/+ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= -github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= +github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -2868,8 +2868,8 @@ golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -3034,8 +3034,8 @@ golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= golang.org/x/oauth2 v0.0.0-20180724155351-3d292e4d0cdc/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -3069,8 +3069,8 @@ golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= -golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -3090,8 +3090,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -3270,8 +3270,8 @@ golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -3285,8 +3285,8 @@ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= +golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -3302,8 +3302,8 @@ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -3690,10 +3690,10 @@ google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+ google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 h1:pgr/4QbFyktUv9CtQ/Fq4gzEE6/Xs7iCXbktaGzLHbQ= +google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697/go.mod h1:+D9ySVjN8nY8YCVjc5O7PZDIdZporIDY3KaGfJunh88= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 h1:LWZqQOEjDyONlF1H6afSWpAL/znlREo2tHfLoe+8LMA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= @@ -3745,8 +3745,8 @@ google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCD google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= -google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= +google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= +google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -3765,8 +3765,8 @@ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/ignite b/ignite index c5d363c5..dabe8b09 100755 --- a/ignite +++ b/ignite @@ -32,5 +32,6 @@ if [[ $version != $IGNITE_VERSION ]]; then fi echo "[Wrapper] Using $path $IGNITE_VERSION" +echo "[Wrapper] Warning proto now has to be generated manually and '--skip-proto' should be used with chain interactions" $path $args diff --git a/testutil/keeper/cardchain.go b/testutil/keeper/cardchain.go index bac7069c..5534430d 100644 --- a/testutil/keeper/cardchain.go +++ b/testutil/keeper/cardchain.go @@ -29,6 +29,7 @@ func CardchainKeeper(t testing.TB) (*keeper.Keeper, sdk.Context) { poolsStoreKey := sdk.NewKVStoreKey(types.PoolsStoreKey) serversStoreKey := sdk.NewKVStoreKey(types.ServersStoreKey) zealyStoreKey := sdk.NewKVStoreKey(types.ZealyStoreKey) + encountersStoreKey := sdk.NewKVStoreKey(types.EncountersStoreKey) runningAveragesStoreKey := sdk.NewKVStoreKey(types.RunningAveragesStoreKey) councilsStoreKey := sdk.NewKVStoreKey(types.CouncilsStoreKey) From ddc853dfb52a8365d639d34063b4853a18bebdd2 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Wed, 11 Dec 2024 05:54:59 +0100 Subject: [PATCH 08/20] feat(#237): Added updated ignite version --- ignite | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ignite b/ignite index dabe8b09..678688eb 100755 --- a/ignite +++ b/ignite @@ -4,7 +4,7 @@ # Takes optional `--path ` option to specify an ingite installation at a different location then the default one # All other arguments are passed on to ignite -IGNITE_VERSION="v0.26.1" +IGNITE_VERSION="v0.26.2" if [[ $1 == "--path" ]]; then @@ -32,6 +32,5 @@ if [[ $version != $IGNITE_VERSION ]]; then fi echo "[Wrapper] Using $path $IGNITE_VERSION" -echo "[Wrapper] Warning proto now has to be generated manually and '--skip-proto' should be used with chain interactions" $path $args From 95d84b876ce04b1f0f58b899007824e2ada89f06 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Thu, 12 Dec 2024 03:36:07 +0100 Subject: [PATCH 09/20] feat(#237): Added encounter create content --- .../keeper/msg_server_encounter_create.go | 53 ++++++++++++++++++- x/cardchain/keeper/user.go | 11 ++++ x/cardchain/types/errors.go | 1 + x/cardchain/types/message_encounter_create.go | 10 +++- 4 files changed, 71 insertions(+), 4 deletions(-) diff --git a/x/cardchain/keeper/msg_server_encounter_create.go b/x/cardchain/keeper/msg_server_encounter_create.go index 64ace972..306108c9 100644 --- a/x/cardchain/keeper/msg_server_encounter_create.go +++ b/x/cardchain/keeper/msg_server_encounter_create.go @@ -3,15 +3,64 @@ package keeper import ( "context" + sdkerrors "cosmossdk.io/errors" "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/DecentralCardGame/cardobject/cardobject" + "github.com/DecentralCardGame/cardobject/keywords" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/group/errors" ) func (k msgServer) EncounterCreate(goCtx context.Context, msg *types.MsgEncounterCreate) (*types.MsgEncounterCreateResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) - // TODO: Handling the message - _ = ctx + err := k.validateDrawlist(ctx, msg) + if err != nil { + return nil, err + } + + id := k.Encounters.GetNum(ctx) + + encounter := types.Encounter{ + Id: id, + Drawlist: msg.Drawlist, + Proven: false, + Owner: msg.Creator, + Parameters: msg.Parameters, + } + + k.Encounters.Set(ctx, id, &encounter) return &types.MsgEncounterCreateResponse{}, nil } + +func (k Keeper) validateDrawlist(ctx sdk.Context, msg *types.MsgEncounterCreate) error { + for idx, cardId := range msg.Drawlist { + card := k.Cards.Get(ctx, cardId) + + if card.Owner != msg.Creator { + return sdkerrors.Wrapf( + errors.ErrUnauthorized, + "creator has to own all cards, doesnt own '%d'", cardId, + ) + } + + cardObj, err := keywords.Unmarshal(card.Content) + if err != nil { + return err + } + + if idx == 0 && cardObj.GetType() != cardobject.HEADQUARTERTYPE { + return sdkerrors.Wrapf( + types.ErrInvalidData, + "first card has to be Headquarter but is: %s", cardObj.GetType(), + ) + } else if cardObj.GetType() == cardobject.HEADQUARTERTYPE { + return sdkerrors.Wrapf( + types.ErrInvalidData, + "only first card can be headquartter but card-%d is ", idx, + ) + } + } + return nil +} diff --git a/x/cardchain/keeper/user.go b/x/cardchain/keeper/user.go index e0fe6e4b..5650e1d6 100644 --- a/x/cardchain/keeper/user.go +++ b/x/cardchain/keeper/user.go @@ -6,6 +6,10 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) +type MsgWithCreator interface { + GetSigners() []sdk.AccAddress +} + const MAX_ALIAS_LEN = 25 // User Combines types.User and it's account address for better usability @@ -73,6 +77,13 @@ func (k Keeper) GetUser(ctx sdk.Context, address sdk.AccAddress) (types.User, er return gottenUser, nil } +func (k Keeper) GetMsgCreator(ctx sdk.Context, msg MsgWithCreator) (user User, err error) { + user.Addr = msg.GetSigners()[0] + + user.User, err = k.GetUser(ctx, user.Addr) + return +} + // GetUserFromString Gets a user from store, but instead of taking an accountaddress it takes a string and returns a User struct (defined above) func (k Keeper) GetUserFromString(ctx sdk.Context, addr string) (user User, err error) { user.Addr, err = sdk.AccAddressFromBech32(addr) diff --git a/x/cardchain/types/errors.go b/x/cardchain/types/errors.go index b2ed8664..a3260e71 100644 --- a/x/cardchain/types/errors.go +++ b/x/cardchain/types/errors.go @@ -34,4 +34,5 @@ var ( ErrUninitializedType = sdkerrors.Register(ModuleName, 24, "Type not yet initialized") ErrFinalizeSet = sdkerrors.Register(ModuleName, 25, "Set can't be finalized") InvalidAlias = sdkerrors.Register(ModuleName, 26, "Invalid alias") + ErrInvalidData = sdkerrors.Register(ModuleName, 27, "Invalid data in transaction") ) diff --git a/x/cardchain/types/message_encounter_create.go b/x/cardchain/types/message_encounter_create.go index 4824f63b..617afb10 100644 --- a/x/cardchain/types/message_encounter_create.go +++ b/x/cardchain/types/message_encounter_create.go @@ -1,8 +1,9 @@ package types import ( + sdkerrors "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/cosmos/cosmos-sdk/types/errors" ) const TypeMsgEncounterCreate = "encounter_create" @@ -39,7 +40,12 @@ func (msg *MsgEncounterCreate) GetSignBytes() []byte { func (msg *MsgEncounterCreate) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Creator) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + return sdkerrors.Wrapf(errors.ErrInvalidAddress, "invalid creator address (%s)", err) } + + if len(msg.Drawlist) != 40 { + return sdkerrors.Wrapf(ErrInvalidData, "drawlist too long, must be 40 is '%d'", len(msg.Drawlist)) + } + return nil } From 69f6592364a66f4102d2439d1ee337bd28c7e717 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Thu, 12 Dec 2024 03:46:01 +0100 Subject: [PATCH 10/20] feat(#237): Added image --- proto/cardchain/cardchain/encounters.proto | 3 +- proto/cardchain/cardchain/tx.proto | 6 +- x/cardchain/keeper/msg_server_add_artwork.go | 5 - .../keeper/msg_server_add_artwork_to_set.go | 5 - .../keeper/msg_server_encounter_create.go | 3 + x/cardchain/types/encounters.pb.go | 76 +++- x/cardchain/types/message_add_artwork.go | 9 + .../types/message_add_artwork_to_set.go | 6 + x/cardchain/types/message_encounter_create.go | 6 + x/cardchain/types/tx.pb.go | 385 ++++++++++-------- 10 files changed, 304 insertions(+), 200 deletions(-) diff --git a/proto/cardchain/cardchain/encounters.proto b/proto/cardchain/cardchain/encounters.proto index db6025d8..795f6524 100644 --- a/proto/cardchain/cardchain/encounters.proto +++ b/proto/cardchain/cardchain/encounters.proto @@ -12,4 +12,5 @@ message Encounter { bool proven = 3; string owner = 4; map parameters = 5; -} \ No newline at end of file + uint64 imageId = 6; +} diff --git a/proto/cardchain/cardchain/tx.proto b/proto/cardchain/cardchain/tx.proto index 378f4a10..42b43861 100644 --- a/proto/cardchain/cardchain/tx.proto +++ b/proto/cardchain/cardchain/tx.proto @@ -52,7 +52,7 @@ service Msg { rpc SetSetArtist (MsgSetSetArtist ) returns (MsgSetSetArtistResponse ); rpc SetUserWebsite (MsgSetUserWebsite ) returns (MsgSetUserWebsiteResponse ); rpc SetUserBiography (MsgSetUserBiography ) returns (MsgSetUserBiographyResponse ); - + // this line is used by starport scaffolding # proto/tx/rpc rpc MultiVoteCard (MsgMultiVoteCard ) returns (MsgMultiVoteCardResponse ); rpc OpenMatch (MsgOpenMatch ) returns (MsgOpenMatchResponse ); @@ -101,7 +101,7 @@ message MsgSaveCardContent { string creator = 1; uint64 cardId = 2; bytes content = 3; - + // bytes image = 4; // string fullArt = 5; string notes = 4; @@ -438,6 +438,7 @@ message MsgEncounterCreate { string creator = 1; repeated uint64 Drawlist = 2; map parameters = 3; + bytes image = 4; } message MsgEncounterCreateResponse {} @@ -455,4 +456,3 @@ message MsgEncounterClose { } message MsgEncounterCloseResponse {} - diff --git a/x/cardchain/keeper/msg_server_add_artwork.go b/x/cardchain/keeper/msg_server_add_artwork.go index 961492cc..6435cdb4 100644 --- a/x/cardchain/keeper/msg_server_add_artwork.go +++ b/x/cardchain/keeper/msg_server_add_artwork.go @@ -2,7 +2,6 @@ package keeper import ( "context" - "fmt" "github.com/cosmos/cosmos-sdk/types/errors" @@ -26,10 +25,6 @@ func (k msgServer) AddArtwork(goCtx context.Context, msg *types.MsgAddArtwork) ( return nil, sdkerrors.Wrap(errors.ErrUnauthorized, "Incorrect Artist") } - if len(msg.Image) > 500000 { - return nil, sdkerrors.Wrap(types.ErrImageSizeExceeded, fmt.Sprint(len(msg.Image))) - } - card.FullArt = msg.FullArt image.Image = msg.Image diff --git a/x/cardchain/keeper/msg_server_add_artwork_to_set.go b/x/cardchain/keeper/msg_server_add_artwork_to_set.go index fc01c91e..e67c99c2 100644 --- a/x/cardchain/keeper/msg_server_add_artwork_to_set.go +++ b/x/cardchain/keeper/msg_server_add_artwork_to_set.go @@ -2,7 +2,6 @@ package keeper import ( "context" - "fmt" sdkerrors "cosmossdk.io/errors" "github.com/DecentralCardGame/Cardchain/x/cardchain/types" @@ -23,10 +22,6 @@ func (k msgServer) AddArtworkToSet(goCtx context.Context, msg *types.MsgAddArtwo return nil, types.ErrSetNotInDesign } - if len(msg.Image) > 500000 { - return nil, sdkerrors.Wrap(types.ErrImageSizeExceeded, fmt.Sprint(len(msg.Image))) - } - err := k.CollectSetConributionFee(ctx, msg.Creator) if err != nil { return nil, sdkerrors.Wrap(errors.ErrInsufficientFunds, err.Error()) diff --git a/x/cardchain/keeper/msg_server_encounter_create.go b/x/cardchain/keeper/msg_server_encounter_create.go index 306108c9..39f497b6 100644 --- a/x/cardchain/keeper/msg_server_encounter_create.go +++ b/x/cardchain/keeper/msg_server_encounter_create.go @@ -20,6 +20,7 @@ func (k msgServer) EncounterCreate(goCtx context.Context, msg *types.MsgEncounte } id := k.Encounters.GetNum(ctx) + imageId := k.Images.GetNum(ctx) encounter := types.Encounter{ Id: id, @@ -27,8 +28,10 @@ func (k msgServer) EncounterCreate(goCtx context.Context, msg *types.MsgEncounte Proven: false, Owner: msg.Creator, Parameters: msg.Parameters, + ImageId: imageId, } + k.Images.Set(ctx, imageId, &types.Image{Image: msg.Image}) k.Encounters.Set(ctx, id, &encounter) return &types.MsgEncounterCreateResponse{}, nil diff --git a/x/cardchain/types/encounters.pb.go b/x/cardchain/types/encounters.pb.go index 60e8541e..ebea1b88 100644 --- a/x/cardchain/types/encounters.pb.go +++ b/x/cardchain/types/encounters.pb.go @@ -29,6 +29,7 @@ type Encounter struct { Proven bool `protobuf:"varint,3,opt,name=proven,proto3" json:"proven,omitempty"` Owner string `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"` Parameters map[string]string `protobuf:"bytes,5,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ImageId uint64 `protobuf:"varint,6,opt,name=imageId,proto3" json:"imageId,omitempty"` } func (m *Encounter) Reset() { *m = Encounter{} } @@ -99,6 +100,13 @@ func (m *Encounter) GetParameters() map[string]string { return nil } +func (m *Encounter) GetImageId() uint64 { + if m != nil { + return m.ImageId + } + return 0 +} + func init() { proto.RegisterType((*Encounter)(nil), "DecentralCardGame.cardchain.cardchain.Encounter") proto.RegisterMapType((map[string]string)(nil), "DecentralCardGame.cardchain.cardchain.Encounter.ParametersEntry") @@ -109,27 +117,28 @@ func init() { } var fileDescriptor_bd29899b36e899bc = []byte{ - // 308 bytes of a gzipped FileDescriptorProto + // 322 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0x41, 0x4b, 0xf3, 0x30, - 0x18, 0xc7, 0x97, 0x74, 0x1b, 0x5b, 0x5e, 0x78, 0x95, 0x30, 0x24, 0xec, 0x10, 0x8a, 0x28, 0xf4, - 0x94, 0x82, 0x5e, 0x86, 0x20, 0x88, 0xdb, 0x90, 0xdd, 0x24, 0x47, 0x4f, 0x66, 0x6d, 0xd8, 0x86, - 0x6b, 0x52, 0xd2, 0x74, 0xb3, 0x5f, 0xc0, 0xb3, 0x1f, 0xcb, 0xe3, 0x8e, 0x1e, 0xa5, 0xfd, 0x22, - 0xd2, 0x56, 0xbb, 0xa1, 0x17, 0x6f, 0xff, 0x1f, 0xc9, 0xf3, 0xe7, 0x97, 0x3c, 0xe8, 0x2c, 0x10, - 0x26, 0x0c, 0x96, 0x62, 0xa5, 0xfc, 0x7d, 0x92, 0x2a, 0xd0, 0xa9, 0xb2, 0xd2, 0x24, 0x2c, 0x36, - 0xda, 0x6a, 0x7c, 0x3e, 0x91, 0x81, 0x54, 0xd6, 0x88, 0xf5, 0x58, 0x98, 0xf0, 0x4e, 0x44, 0x92, - 0x35, 0xb7, 0xf7, 0x69, 0x38, 0x58, 0xe8, 0x85, 0xae, 0x26, 0xfc, 0x32, 0xd5, 0xc3, 0xa7, 0x2f, - 0x10, 0xf5, 0xa7, 0xdf, 0x8d, 0xf8, 0x3f, 0x82, 0xb3, 0x90, 0x00, 0x17, 0x78, 0x6d, 0x0e, 0x67, - 0x21, 0x1e, 0xa2, 0xde, 0xc4, 0x88, 0xed, 0x7a, 0x95, 0x58, 0x02, 0x5d, 0xc7, 0x6b, 0xf3, 0x86, - 0xf1, 0x09, 0xea, 0xc6, 0x46, 0x6f, 0xa4, 0x22, 0x8e, 0x0b, 0xbc, 0x1e, 0xff, 0x22, 0x3c, 0x40, - 0x1d, 0xbd, 0x55, 0xd2, 0x90, 0xb6, 0x0b, 0xbc, 0x3e, 0xaf, 0x01, 0x3f, 0x22, 0x14, 0x0b, 0x23, - 0x22, 0x59, 0x8a, 0x93, 0x8e, 0xeb, 0x78, 0xff, 0x2e, 0x6e, 0xd8, 0x9f, 0xcc, 0x59, 0xe3, 0xc7, - 0xee, 0x9b, 0x8a, 0xa9, 0xb2, 0x26, 0xe3, 0x07, 0x9d, 0xc3, 0x6b, 0x74, 0xf4, 0xe3, 0x18, 0x1f, - 0x23, 0xe7, 0x49, 0x66, 0xd5, 0x7b, 0xfa, 0xbc, 0x8c, 0xa5, 0xdc, 0x46, 0xac, 0x53, 0x49, 0x60, - 0x2d, 0x57, 0xc1, 0x15, 0x1c, 0x81, 0x5b, 0xfe, 0x96, 0x53, 0xb0, 0xcb, 0x29, 0xf8, 0xc8, 0x29, - 0x78, 0x2d, 0x68, 0x6b, 0x57, 0xd0, 0xd6, 0x7b, 0x41, 0x5b, 0x0f, 0xa3, 0xc5, 0xca, 0x2e, 0xd3, - 0x39, 0x0b, 0x74, 0xe4, 0xff, 0x12, 0xf6, 0xc7, 0xcd, 0x62, 0x9e, 0x0f, 0x96, 0x64, 0xb3, 0x58, - 0x26, 0xf3, 0x6e, 0xf5, 0xc7, 0x97, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x79, 0xe1, 0xfc, - 0xc8, 0x01, 0x00, 0x00, + 0x1c, 0xc6, 0x97, 0x76, 0xdb, 0xbb, 0xe5, 0x05, 0x95, 0x30, 0x24, 0xec, 0x10, 0x8a, 0x28, 0xf4, + 0x94, 0x82, 0x5e, 0x86, 0x20, 0x88, 0xdb, 0x90, 0xdd, 0x24, 0x47, 0x4f, 0x66, 0xed, 0x9f, 0xae, + 0xb8, 0x26, 0x25, 0xcb, 0x36, 0xf7, 0x2d, 0xfc, 0x08, 0x7e, 0x1c, 0x8f, 0x3b, 0x7a, 0x94, 0xed, + 0x8b, 0x48, 0x5b, 0xd7, 0x0d, 0xbd, 0x78, 0x7b, 0x1e, 0xc8, 0xf3, 0xf0, 0x7b, 0xf2, 0xc7, 0xe7, + 0xa1, 0x34, 0x51, 0x38, 0x91, 0x89, 0x0a, 0xf6, 0x0a, 0x54, 0xa8, 0xe7, 0xca, 0x82, 0x99, 0xf1, + 0xcc, 0x68, 0xab, 0xc9, 0xc5, 0x00, 0x42, 0x50, 0xd6, 0xc8, 0x69, 0x5f, 0x9a, 0xe8, 0x5e, 0xa6, + 0xc0, 0xab, 0xd7, 0x7b, 0xd5, 0xed, 0xc4, 0x3a, 0xd6, 0x45, 0x22, 0xc8, 0x55, 0x19, 0x3e, 0x7b, + 0x73, 0x70, 0x7b, 0xb8, 0x6b, 0x24, 0x47, 0xd8, 0x19, 0x45, 0x14, 0x79, 0xc8, 0xaf, 0x0b, 0x67, + 0x14, 0x91, 0x2e, 0x6e, 0x0d, 0x8c, 0x5c, 0x4e, 0x93, 0x99, 0xa5, 0x8e, 0xe7, 0xfa, 0x75, 0x51, + 0x79, 0x72, 0x8a, 0x9b, 0x99, 0xd1, 0x0b, 0x50, 0xd4, 0xf5, 0x90, 0xdf, 0x12, 0xdf, 0x8e, 0x74, + 0x70, 0x43, 0x2f, 0x15, 0x18, 0x5a, 0xf7, 0x90, 0xdf, 0x16, 0xa5, 0x21, 0x4f, 0x18, 0x67, 0xd2, + 0xc8, 0x14, 0x72, 0x70, 0xda, 0xf0, 0x5c, 0xff, 0xff, 0xe5, 0x2d, 0xff, 0x13, 0x39, 0xaf, 0xf8, + 0xf8, 0x43, 0x55, 0x31, 0x54, 0xd6, 0xac, 0xc4, 0x41, 0x27, 0xa1, 0xf8, 0x5f, 0x92, 0xca, 0x18, + 0x46, 0x11, 0x6d, 0x16, 0x03, 0x76, 0xb6, 0x7b, 0x83, 0x8f, 0x7f, 0x04, 0xc9, 0x09, 0x76, 0x9f, + 0x61, 0x55, 0x2c, 0x6d, 0x8b, 0x5c, 0xe6, 0xd8, 0x0b, 0x39, 0x9d, 0x03, 0x75, 0x4a, 0xec, 0xc2, + 0x5c, 0x3b, 0x3d, 0x74, 0x27, 0xde, 0x37, 0x0c, 0xad, 0x37, 0x0c, 0x7d, 0x6e, 0x18, 0x7a, 0xdd, + 0xb2, 0xda, 0x7a, 0xcb, 0x6a, 0x1f, 0x5b, 0x56, 0x7b, 0xec, 0xc5, 0x89, 0x9d, 0xcc, 0xc7, 0x3c, + 0xd4, 0x69, 0xf0, 0x6b, 0x4a, 0xd0, 0xaf, 0x4e, 0xf6, 0x72, 0x70, 0x3e, 0xbb, 0xca, 0x60, 0x36, + 0x6e, 0x16, 0xbf, 0x7f, 0xf5, 0x15, 0x00, 0x00, 0xff, 0xff, 0x04, 0x13, 0x89, 0xc3, 0xe2, 0x01, + 0x00, 0x00, } func (m *Encounter) Marshal() (dAtA []byte, err error) { @@ -152,6 +161,11 @@ func (m *Encounter) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.ImageId != 0 { + i = encodeVarintEncounters(dAtA, i, uint64(m.ImageId)) + i-- + dAtA[i] = 0x30 + } if len(m.Parameters) > 0 { for k := range m.Parameters { v := m.Parameters[k] @@ -256,6 +270,9 @@ func (m *Encounter) Size() (n int) { n += mapEntrySize + 1 + sovEncounters(uint64(mapEntrySize)) } } + if m.ImageId != 0 { + n += 1 + sovEncounters(uint64(m.ImageId)) + } return n } @@ -568,6 +585,25 @@ func (m *Encounter) Unmarshal(dAtA []byte) error { } m.Parameters[mapkey] = mapvalue iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageId", wireType) + } + m.ImageId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ImageId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipEncounters(dAtA[iNdEx:]) diff --git a/x/cardchain/types/message_add_artwork.go b/x/cardchain/types/message_add_artwork.go index bcbbfc0b..a70e6186 100644 --- a/x/cardchain/types/message_add_artwork.go +++ b/x/cardchain/types/message_add_artwork.go @@ -1,11 +1,15 @@ package types import ( + fmt "fmt" + sdkerrors "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/errors" ) +const ArtworkMaxSize = 500000 + const TypeMsgAddArtwork = "add_artwork" var _ sdk.Msg = &MsgAddArtwork{} @@ -45,5 +49,10 @@ func (msg *MsgAddArtwork) ValidateBasic() error { if err != nil { return sdkerrors.Wrapf(errors.ErrInvalidAddress, "invalid creator address (%s)", err) } + + if len(msg.Image) > ArtworkMaxSize { + return sdkerrors.Wrap(ErrImageSizeExceeded, fmt.Sprint(len(msg.Image))) + } + return nil } diff --git a/x/cardchain/types/message_add_artwork_to_set.go b/x/cardchain/types/message_add_artwork_to_set.go index b74d3bea..99afb955 100644 --- a/x/cardchain/types/message_add_artwork_to_set.go +++ b/x/cardchain/types/message_add_artwork_to_set.go @@ -1,6 +1,8 @@ package types import ( + fmt "fmt" + sdkerrors "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/errors" @@ -44,5 +46,9 @@ func (msg *MsgAddArtworkToSet) ValidateBasic() error { if err != nil { return sdkerrors.Wrapf(errors.ErrInvalidAddress, "invalid creator address (%s)", err) } + + if len(msg.Image) > ArtworkMaxSize { + return sdkerrors.Wrap(ErrImageSizeExceeded, fmt.Sprint(len(msg.Image))) + } return nil } diff --git a/x/cardchain/types/message_encounter_create.go b/x/cardchain/types/message_encounter_create.go index 617afb10..8b76f7ac 100644 --- a/x/cardchain/types/message_encounter_create.go +++ b/x/cardchain/types/message_encounter_create.go @@ -1,6 +1,8 @@ package types import ( + fmt "fmt" + sdkerrors "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/errors" @@ -47,5 +49,9 @@ func (msg *MsgEncounterCreate) ValidateBasic() error { return sdkerrors.Wrapf(ErrInvalidData, "drawlist too long, must be 40 is '%d'", len(msg.Drawlist)) } + if len(msg.Image) > ArtworkMaxSize { + return sdkerrors.Wrap(ErrImageSizeExceeded, fmt.Sprint(len(msg.Image))) + } + return nil } diff --git a/x/cardchain/types/tx.pb.go b/x/cardchain/types/tx.pb.go index 704012d7..e4ce10ee 100644 --- a/x/cardchain/types/tx.pb.go +++ b/x/cardchain/types/tx.pb.go @@ -4234,6 +4234,7 @@ type MsgEncounterCreate struct { Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` Drawlist []uint64 `protobuf:"varint,2,rep,packed,name=Drawlist,proto3" json:"Drawlist,omitempty"` Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Image []byte `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"` } func (m *MsgEncounterCreate) Reset() { *m = MsgEncounterCreate{} } @@ -4290,6 +4291,13 @@ func (m *MsgEncounterCreate) GetParameters() map[string]string { return nil } +func (m *MsgEncounterCreate) GetImage() []byte { + if m != nil { + return m.Image + } + return nil +} + type MsgEncounterCreateResponse struct { } @@ -4603,177 +4611,177 @@ func init() { func init() { proto.RegisterFile("cardchain/cardchain/tx.proto", fileDescriptor_3b4a3aba0ac94bc8) } var fileDescriptor_3b4a3aba0ac94bc8 = []byte{ - // 2706 bytes of a gzipped FileDescriptorProto + // 2711 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5b, 0xcf, 0x6f, 0x1c, 0xb7, 0xf5, 0xd7, 0x68, 0x25, 0x59, 0xa2, 0x1c, 0xd9, 0x99, 0x28, 0xce, 0x7a, 0xe2, 0x48, 0xca, 0x7c, 0x93, 0x7c, 0x7d, 0xe9, 0xaa, 0x96, 0x7f, 0x49, 0x76, 0x55, 0x67, 0x7f, 0xc8, 0x8e, 0xeb, 0x2a, 0x76, 0x57, 0x4e, 0xd2, 0xb8, 0x41, 0x8b, 0xd1, 0x2c, 0xb5, 0x1a, 0x68, 0x77, 0xb8, 0xe5, 0xcc, - 0x4a, 0x59, 0x03, 0x05, 0x0a, 0x14, 0x28, 0x1a, 0xc0, 0x68, 0x8b, 0xa2, 0x05, 0x8a, 0x16, 0x28, + 0x4a, 0x59, 0x03, 0x05, 0x0a, 0x14, 0x28, 0x9a, 0xc2, 0x68, 0x8b, 0xa2, 0x05, 0x8a, 0x16, 0x28, 0xdc, 0x43, 0x2f, 0x01, 0x7a, 0x2b, 0xd0, 0x7f, 0x21, 0xc7, 0x9c, 0x8a, 0xa2, 0x87, 0xb4, 0xb0, - 0x2f, 0xfd, 0x03, 0x7a, 0xe8, 0xb1, 0x98, 0x47, 0x0e, 0x87, 0x9c, 0x9d, 0x1d, 0x2d, 0x47, 0x06, - 0x02, 0x64, 0xc9, 0xe1, 0xe7, 0xbd, 0x47, 0xf2, 0x91, 0xef, 0x3d, 0x7e, 0x2c, 0x74, 0xc1, 0x75, - 0x68, 0xcb, 0xdd, 0x77, 0x3c, 0x7f, 0x35, 0xf9, 0x15, 0x7e, 0x5a, 0xe9, 0x51, 0x12, 0x12, 0xf3, - 0xed, 0x06, 0x76, 0xb1, 0x1f, 0x52, 0xa7, 0x53, 0x77, 0x68, 0xeb, 0x8e, 0xd3, 0xc5, 0x15, 0x31, - 0x2a, 0xf9, 0x65, 0x2d, 0xb6, 0x49, 0x9b, 0x00, 0x62, 0x35, 0xfa, 0xc5, 0xc0, 0xd6, 0x9b, 0x59, - 0xa2, 0x5d, 0xd2, 0xf7, 0x5d, 0xaf, 0xc3, 0x87, 0x2c, 0x67, 0x0d, 0xe9, 0x3a, 0xa1, 0xbb, 0xcf, - 0x07, 0xac, 0x64, 0x0d, 0x38, 0x24, 0xa1, 0xe7, 0xb7, 0xf9, 0x88, 0xa5, 0x4c, 0x2d, 0x0e, 0x6d, - 0x89, 0xef, 0x24, 0xe8, 0x92, 0x60, 0x75, 0xd7, 0x09, 0xf0, 0xea, 0xe1, 0xa5, 0x5d, 0x1c, 0x3a, - 0x97, 0x56, 0x5d, 0xe2, 0xf9, 0xec, 0xbb, 0xfd, 0x31, 0x7a, 0x69, 0x3b, 0x68, 0xd7, 0x29, 0x76, - 0x42, 0xdc, 0x0f, 0x30, 0x35, 0xcb, 0xe8, 0x94, 0x1b, 0xb5, 0x08, 0x2d, 0x1b, 0x2b, 0xc6, 0xc5, - 0xb9, 0x66, 0xdc, 0x8c, 0xbe, 0xf8, 0xf8, 0xe8, 0x83, 0x00, 0xd3, 0xf2, 0x24, 0xfb, 0xc2, 0x9b, - 0xe6, 0x22, 0x9a, 0x76, 0x3a, 0x9e, 0x13, 0x94, 0x4b, 0xd0, 0xcf, 0x1a, 0xf6, 0x6b, 0xe8, 0x55, - 0x45, 0x74, 0x13, 0x07, 0x3d, 0xe2, 0x07, 0xd8, 0xfe, 0xb5, 0x81, 0xce, 0x6e, 0x07, 0xed, 0x5a, - 0x7f, 0x10, 0x2d, 0xeb, 0x8e, 0xbb, 0x8f, 0xbb, 0x38, 0x47, 0xef, 0x27, 0xa8, 0xb4, 0xeb, 0xb5, - 0x40, 0xe7, 0xfc, 0xda, 0xf9, 0x0a, 0x9b, 0x50, 0x25, 0x9a, 0x50, 0x85, 0x4f, 0xa8, 0x52, 0x27, - 0x9e, 0x5f, 0x5b, 0xfd, 0xe2, 0xab, 0xe5, 0x89, 0xcf, 0xff, 0xb9, 0xfc, 0xff, 0x6d, 0x2f, 0xdc, - 0xef, 0xef, 0x56, 0x5c, 0xd2, 0x5d, 0xe5, 0xb3, 0x67, 0xff, 0xfb, 0x5a, 0xd0, 0x3a, 0x58, 0x0d, - 0x07, 0x3d, 0x1c, 0x00, 0xa0, 0x19, 0x89, 0xbd, 0x31, 0xfb, 0xb3, 0xa7, 0xcb, 0x13, 0xff, 0x7e, - 0xba, 0x3c, 0x61, 0xaf, 0xa1, 0x72, 0xda, 0xaa, 0xd8, 0x64, 0xf3, 0x1c, 0x9a, 0x89, 0x16, 0xf5, - 0x6e, 0x0b, 0x8c, 0x9b, 0x6a, 0xf2, 0x96, 0xfd, 0xc4, 0x40, 0xf3, 0xdb, 0x41, 0xfb, 0x43, 0x12, - 0xe2, 0x08, 0x95, 0x33, 0x8b, 0x44, 0xc2, 0xa4, 0x2c, 0xc1, 0xbc, 0x87, 0x66, 0x0f, 0x49, 0x88, - 0x1f, 0x0e, 0x7a, 0x18, 0x96, 0x6f, 0x61, 0x6d, 0xb5, 0x32, 0x96, 0xdb, 0x55, 0x3e, 0xe4, 0xb0, - 0xa6, 0x10, 0x60, 0x6f, 0xa2, 0x57, 0x24, 0x6b, 0x84, 0xf5, 0xef, 0xa0, 0x05, 0xc7, 0xa3, 0x2d, - 0x4a, 0x7a, 0xf5, 0x8e, 0xe3, 0x75, 0x31, 0x9b, 0xc5, 0x6c, 0x33, 0xd5, 0x6b, 0xff, 0xc5, 0x40, - 0xe6, 0x76, 0xd0, 0xde, 0x71, 0x0e, 0x01, 0x5f, 0x27, 0x7e, 0x88, 0xfd, 0xb0, 0xc0, 0xa4, 0x22, - 0x04, 0x03, 0xc3, 0x9c, 0x4e, 0x37, 0xe3, 0x66, 0xe4, 0x2a, 0x3e, 0x09, 0x71, 0x50, 0x9e, 0x62, - 0xae, 0x02, 0x8d, 0x48, 0x8e, 0x43, 0x43, 0x2f, 0x08, 0xcb, 0xd3, 0xd0, 0xcd, 0x5b, 0xe6, 0x5b, - 0xe8, 0xa5, 0x5d, 0xa7, 0xe3, 0xf8, 0x2e, 0xae, 0xfa, 0xee, 0x3e, 0xa1, 0xe5, 0x19, 0xb0, 0x5b, - 0xed, 0xb4, 0x1b, 0xc8, 0x1a, 0xb6, 0x5a, 0x7b, 0xf2, 0x3f, 0x40, 0x67, 0xb6, 0x83, 0xf6, 0x43, - 0xea, 0xf8, 0xc1, 0x1e, 0xa6, 0x05, 0x77, 0xd3, 0x42, 0xb3, 0x14, 0xbb, 0xd8, 0x3b, 0xc4, 0x94, - 0xcf, 0x50, 0xb4, 0xed, 0xf3, 0xe8, 0xb5, 0x94, 0x02, 0x71, 0x22, 0x9e, 0x18, 0xa0, 0xbc, 0x41, - 0x7c, 0x27, 0xc4, 0x0f, 0x49, 0x41, 0xe5, 0x77, 0xd0, 0x8c, 0xd3, 0x25, 0x7d, 0xbe, 0xe8, 0x73, - 0xec, 0x40, 0xfc, 0xe3, 0xab, 0xf1, 0x0f, 0x04, 0x87, 0x73, 0x4b, 0x65, 0x6b, 0x84, 0xa5, 0x3f, - 0x84, 0xfb, 0xa2, 0xda, 0x6a, 0x55, 0x69, 0x78, 0x44, 0xe8, 0x41, 0x01, 0x33, 0x17, 0xd1, 0xb4, - 0xd7, 0x75, 0xda, 0x98, 0xbb, 0x06, 0x6b, 0x44, 0x72, 0xf6, 0xfa, 0x9d, 0x4e, 0x95, 0x86, 0xb0, - 0x70, 0xb3, 0xcd, 0xb8, 0xc9, 0xef, 0x91, 0x44, 0xa5, 0xb0, 0xe5, 0x7b, 0xb0, 0x68, 0xf5, 0x7d, - 0xc7, 0x6f, 0xe3, 0x2a, 0x73, 0x98, 0xe3, 0xad, 0x69, 0x28, 0xd6, 0x34, 0x24, 0xd7, 0x2b, 0xc9, - 0xae, 0xc7, 0xd7, 0x40, 0x16, 0x2e, 0xf4, 0x5e, 0x02, 0x83, 0x9a, 0xb8, 0xed, 0x05, 0x21, 0xa6, - 0xb7, 0x09, 0xad, 0xb3, 0x5b, 0x7d, 0xb4, 0x76, 0x7b, 0x19, 0xbd, 0x91, 0x09, 0x11, 0x32, 0xff, - 0x66, 0xa0, 0x05, 0x18, 0xd1, 0x23, 0x34, 0xdc, 0x8e, 0x42, 0x40, 0xfe, 0x4d, 0x0c, 0x51, 0x42, - 0x2c, 0x6d, 0xdc, 0x34, 0x6d, 0x74, 0xba, 0xd7, 0x71, 0x06, 0xb8, 0x15, 0x6d, 0x5a, 0x50, 0x2d, - 0x97, 0x56, 0x4a, 0x17, 0xa7, 0x9a, 0x4a, 0x5f, 0x6a, 0x4c, 0xad, 0x3c, 0x35, 0x34, 0xa6, 0x66, - 0xbe, 0x87, 0x4e, 0x91, 0x7e, 0xe8, 0x92, 0x2e, 0x86, 0x13, 0xb9, 0xb0, 0x56, 0x19, 0xf3, 0x52, - 0xba, 0xcf, 0x50, 0xcd, 0x18, 0x6e, 0xaf, 0xa1, 0x73, 0xea, 0xbc, 0xc4, 0xc1, 0x94, 0x66, 0x61, - 0x28, 0xb3, 0xb0, 0xdf, 0x07, 0x4c, 0xb5, 0x47, 0x3c, 0x3f, 0xc6, 0x44, 0xf0, 0xdc, 0xe8, 0x04, - 0x27, 0x8f, 0x8d, 0xe2, 0xe1, 0x49, 0xb4, 0xed, 0x15, 0xb4, 0x94, 0x2d, 0x4f, 0x2c, 0xff, 0xef, - 0x0c, 0x74, 0x5a, 0x04, 0xab, 0x1d, 0x9c, 0xe7, 0x48, 0x26, 0x9a, 0xf2, 0x9d, 0x2e, 0xe6, 0x4a, - 0xe0, 0xf7, 0x28, 0x27, 0x32, 0x57, 0xd0, 0x7c, 0x10, 0x12, 0x3a, 0xf8, 0x88, 0x7a, 0xa1, 0xb8, - 0x11, 0xe4, 0xae, 0x68, 0x33, 0xa2, 0xab, 0x91, 0x7a, 0xbb, 0xfd, 0x90, 0xd0, 0xa0, 0x3c, 0xbd, - 0x52, 0xba, 0x38, 0xd7, 0x54, 0xfa, 0xec, 0x73, 0x68, 0x51, 0xb6, 0x4d, 0x18, 0xfd, 0x31, 0xf8, - 0x7f, 0xb5, 0x05, 0x9b, 0xf6, 0x90, 0xe4, 0x9b, 0xbd, 0x88, 0xa6, 0x03, 0x1c, 0x0a, 0x8f, 0x61, - 0x0d, 0xe9, 0x8c, 0x96, 0x94, 0xb8, 0xc6, 0xbc, 0x5f, 0x16, 0x2d, 0xb4, 0xbe, 0x0b, 0x8e, 0x7a, - 0xdb, 0xf3, 0x9d, 0x8e, 0xf7, 0x18, 0x17, 0x50, 0x6a, 0x97, 0x61, 0x7b, 0x25, 0x09, 0x42, 0x76, - 0x1d, 0xbd, 0xcc, 0x42, 0x70, 0x8d, 0x90, 0xe8, 0xa0, 0x3c, 0x70, 0xdc, 0x03, 0x6d, 0xf1, 0x75, - 0x74, 0x7e, 0x48, 0x88, 0x76, 0x34, 0xf8, 0x3e, 0xac, 0x79, 0x13, 0x77, 0x09, 0x8b, 0x2a, 0xb7, - 0x29, 0xe9, 0xbe, 0xc8, 0x05, 0x5e, 0x42, 0x17, 0xb2, 0xe4, 0x8b, 0x95, 0x70, 0xd0, 0xeb, 0xc9, - 0xf7, 0xc4, 0x19, 0x8a, 0x9a, 0x61, 0xa2, 0xa9, 0x28, 0x05, 0xe3, 0xee, 0x09, 0xbf, 0xed, 0xb7, - 0xd1, 0xff, 0xe5, 0xa8, 0x10, 0x96, 0x7c, 0xc2, 0x0e, 0x63, 0xab, 0x25, 0x8d, 0x29, 0xe6, 0x6c, - 0x59, 0x46, 0xf0, 0xa3, 0x39, 0x2c, 0x5d, 0xe8, 0xff, 0x8c, 0x25, 0x25, 0xb1, 0xfb, 0x77, 0x3a, - 0xf7, 0xf7, 0xf6, 0x72, 0x6f, 0x02, 0x13, 0x4d, 0x45, 0x8b, 0xcc, 0x75, 0xc3, 0x6f, 0x73, 0x0b, - 0x4d, 0xf7, 0xa8, 0xe7, 0xe2, 0xa2, 0x91, 0x91, 0xa1, 0xed, 0x0b, 0x90, 0x69, 0xa4, 0x4c, 0x11, - 0x96, 0xbe, 0x87, 0x50, 0x92, 0x40, 0xe6, 0x18, 0x18, 0xdd, 0x0a, 0x31, 0x58, 0xac, 0x91, 0xdc, - 0x65, 0x2f, 0xc2, 0x94, 0xb9, 0x24, 0x21, 0xff, 0x01, 0xf4, 0xb2, 0x0d, 0x1b, 0x67, 0x21, 0x8e, - 0xd7, 0xc3, 0xe6, 0x93, 0x92, 0x28, 0xf4, 0x3d, 0x02, 0x7d, 0x49, 0xe0, 0x2d, 0xb6, 0xeb, 0x99, - 0xe1, 0x9e, 0x6b, 0x4e, 0xc9, 0x16, 0x9a, 0xbf, 0x0b, 0x05, 0x42, 0xb5, 0xd5, 0xda, 0x89, 0xae, - 0xca, 0xc2, 0x7a, 0xe1, 0xa2, 0x8d, 0x8b, 0x12, 0x68, 0xd8, 0x16, 0x24, 0xf9, 0x8a, 0x64, 0xa1, - 0xf5, 0x4f, 0xac, 0x2e, 0xd9, 0xc1, 0x21, 0x2c, 0xbb, 0x43, 0xbd, 0x70, 0x50, 0x2c, 0xbf, 0x61, - 0xe6, 0x94, 0x64, 0x73, 0xee, 0xa2, 0x19, 0x0a, 0x12, 0x21, 0x0a, 0x2c, 0xac, 0x5d, 0x1a, 0x33, - 0xa0, 0x26, 0xa6, 0x34, 0xb9, 0x00, 0x3e, 0x07, 0xc5, 0x4c, 0x31, 0x87, 0x06, 0x4c, 0x81, 0x79, - 0xe8, 0xb1, 0x69, 0xc9, 0xa8, 0x29, 0x70, 0x0d, 0x8a, 0x14, 0xa1, 0xe1, 0xe7, 0x06, 0xfb, 0x48, - 0xba, 0x5d, 0x2f, 0x4c, 0x7d, 0x3c, 0x2e, 0x3e, 0xb3, 0x51, 0x49, 0x7c, 0xe6, 0xa8, 0x0b, 0x68, - 0x8e, 0x17, 0xc6, 0x62, 0xd5, 0x92, 0x0e, 0x73, 0x09, 0xa1, 0xa0, 0xdf, 0x6e, 0xe3, 0x20, 0xf4, - 0x88, 0xcf, 0x63, 0xa8, 0xd4, 0x63, 0xdb, 0x68, 0x65, 0x94, 0x3d, 0xc2, 0xe8, 0xbf, 0x32, 0xa3, - 0x9b, 0xf8, 0x10, 0x3b, 0x9d, 0xf1, 0x8d, 0xbe, 0x97, 0x32, 0x7a, 0xfc, 0xe2, 0x4c, 0x58, 0x90, - 0xcc, 0xf2, 0x1c, 0x9a, 0x09, 0xb0, 0x4b, 0xb1, 0x48, 0x12, 0x58, 0x4b, 0x9d, 0xfd, 0x54, 0x6a, - 0xf6, 0x7c, 0x76, 0x99, 0x86, 0x8b, 0xd9, 0xdd, 0x83, 0xb0, 0xd9, 0xc4, 0x41, 0xe8, 0xd0, 0xf0, - 0xf8, 0x5d, 0x57, 0x14, 0x4e, 0xa6, 0x15, 0xbe, 0x0e, 0xe1, 0x53, 0x15, 0x26, 0x34, 0xad, 0xf3, - 0xb0, 0x75, 0x44, 0x0e, 0x12, 0xc7, 0x88, 0x92, 0x5a, 0xea, 0x44, 0x7b, 0x91, 0x93, 0x01, 0xbf, - 0x83, 0xde, 0xca, 0x43, 0x0a, 0x0d, 0xcf, 0x58, 0x29, 0x54, 0x27, 0xfe, 0x9e, 0x47, 0xbb, 0xc5, - 0x33, 0x61, 0x29, 0x83, 0x2d, 0x9d, 0x28, 0x83, 0x35, 0xbf, 0x83, 0x50, 0x54, 0x60, 0xb3, 0xd4, - 0x18, 0xb2, 0xe5, 0xf9, 0xb1, 0x4f, 0xef, 0x8e, 0xe7, 0xb7, 0x3b, 0x38, 0x2a, 0xc8, 0x9b, 0x92, - 0x90, 0xb8, 0xb8, 0x90, 0xe6, 0x28, 0xe6, 0xbf, 0x05, 0x7b, 0xb9, 0x83, 0xc3, 0x07, 0x94, 0xec, - 0x79, 0x9d, 0x82, 0xcf, 0x0a, 0x7c, 0x17, 0x55, 0x31, 0x42, 0xc7, 0x43, 0xb8, 0xd8, 0xef, 0xf7, - 0xb0, 0x3f, 0x5e, 0x9e, 0x15, 0x95, 0xe1, 0xc9, 0x40, 0xa1, 0x4b, 0xed, 0xb4, 0xaf, 0xc1, 0x95, - 0x9e, 0x92, 0xaa, 0x1c, 0x32, 0x30, 0x2d, 0x28, 0x1b, 0x50, 0x70, 0xc4, 0x4d, 0x3b, 0x84, 0x04, - 0x23, 0xae, 0x8b, 0x5f, 0xa0, 0x45, 0x4a, 0x35, 0x5e, 0x4a, 0x55, 0xe3, 0x2c, 0xf1, 0xc8, 0xd0, - 0x2a, 0x56, 0x69, 0x1f, 0x52, 0xc0, 0x1d, 0x1c, 0x46, 0xff, 0x49, 0x29, 0xbb, 0x6e, 0x20, 0x4a, - 0x15, 0x01, 0xa5, 0xa1, 0x22, 0x80, 0x27, 0x83, 0x43, 0x9a, 0x52, 0x89, 0x3e, 0xfb, 0x7e, 0x6c, - 0xa1, 0x3b, 0x32, 0x0f, 0xcd, 0x29, 0x73, 0x65, 0xd1, 0x42, 0xeb, 0x9d, 0xd8, 0x13, 0x3f, 0x08, - 0x30, 0xfd, 0x08, 0xef, 0x06, 0x5e, 0x88, 0xf3, 0x8f, 0xe2, 0x11, 0x1b, 0x14, 0x3f, 0x0f, 0xf2, - 0x66, 0xe2, 0x8b, 0x92, 0x20, 0xa1, 0x65, 0x1b, 0x9e, 0xac, 0xf8, 0xc7, 0x9a, 0x47, 0xda, 0xd4, - 0xe9, 0xed, 0x0f, 0xf2, 0x6f, 0xaf, 0xdd, 0x78, 0x18, 0xd7, 0x94, 0x74, 0xd8, 0x6f, 0x40, 0xde, - 0x9c, 0x16, 0x27, 0xb4, 0xf5, 0x21, 0x3c, 0x6e, 0xf7, 0x3b, 0xa1, 0x37, 0xc6, 0x9b, 0xdd, 0x1d, - 0x34, 0x7d, 0x08, 0x8f, 0x55, 0x93, 0x45, 0x0f, 0x3d, 0xc3, 0xf3, 0x78, 0xaa, 0xa8, 0x15, 0x26, - 0x3d, 0x65, 0xa5, 0x67, 0x74, 0x6e, 0xc6, 0xb8, 0xed, 0xa0, 0x4a, 0xa7, 0xd5, 0x78, 0x89, 0x79, - 0x33, 0xf9, 0x52, 0xe3, 0xfb, 0x1b, 0x37, 0x23, 0xef, 0xe3, 0x83, 0x1a, 0xd8, 0x3d, 0xe0, 0xc5, - 0xbe, 0xdc, 0x95, 0x8c, 0xa8, 0xc1, 0x88, 0x69, 0x79, 0x04, 0x74, 0xd9, 0x5f, 0x87, 0x93, 0x20, - 0x2c, 0x1c, 0xa3, 0x82, 0xdf, 0x81, 0x67, 0x22, 0xe6, 0x56, 0xef, 0x3b, 0xb9, 0xcf, 0xbb, 0x23, - 0x6b, 0x05, 0xa8, 0xb2, 0x4b, 0x49, 0x95, 0xcd, 0x1f, 0x82, 0x12, 0xa1, 0xa9, 0x92, 0x94, 0xbf, - 0xd5, 0x74, 0x3c, 0x27, 0xc8, 0x57, 0xc7, 0xde, 0xaa, 0x27, 0xe5, 0xb7, 0x6a, 0x56, 0x92, 0x4a, - 0x12, 0xa4, 0x84, 0x2a, 0x9a, 0xfb, 0x5d, 0xff, 0xd0, 0x0b, 0xf1, 0x96, 0x43, 0x3b, 0x83, 0xaa, - 0xeb, 0xe2, 0x20, 0xc8, 0xaf, 0x3f, 0xfa, 0xc9, 0x23, 0x39, 0x2b, 0x73, 0xd8, 0x09, 0x1f, 0x92, - 0x22, 0x9d, 0x35, 0x78, 0x71, 0xf3, 0x02, 0xef, 0x84, 0x8a, 0xde, 0x44, 0xcb, 0x23, 0x04, 0x09, - 0x5d, 0xdf, 0x66, 0x73, 0x25, 0xbe, 0x8f, 0xdd, 0xf0, 0x11, 0x76, 0x60, 0x00, 0xe9, 0xe7, 0x3e, - 0xf4, 0x96, 0xd1, 0xa9, 0xc7, 0xd1, 0x48, 0xbe, 0x4d, 0x73, 0xcd, 0xb8, 0xc9, 0xef, 0xd1, 0x0c, - 0x69, 0x42, 0xdf, 0x7f, 0x58, 0x01, 0xb7, 0xe5, 0x43, 0x37, 0xa6, 0x2c, 0xad, 0xcc, 0x4f, 0x15, - 0x1b, 0xd4, 0x39, 0xea, 0x44, 0xb7, 0xd5, 0x24, 0x78, 0xa3, 0x68, 0x9b, 0x1e, 0x42, 0x3d, 0x87, - 0x3a, 0x5d, 0x1c, 0x62, 0x1a, 0xc0, 0xf3, 0xd6, 0xfc, 0xda, 0xdd, 0x31, 0xcf, 0xe5, 0xb0, 0x11, - 0x95, 0x07, 0x42, 0xd6, 0x96, 0x1f, 0xd2, 0x41, 0x53, 0x12, 0x6e, 0x6d, 0xa2, 0x33, 0xa9, 0xcf, - 0xe6, 0x59, 0x54, 0x3a, 0xc0, 0x03, 0x6e, 0x6f, 0xf4, 0x33, 0x72, 0xa7, 0x43, 0xa7, 0xd3, 0x8f, - 0xef, 0x3c, 0xd6, 0xb8, 0x31, 0xb9, 0x6e, 0xf0, 0x0a, 0x27, 0xa5, 0x50, 0xda, 0x84, 0x05, 0xf9, - 0x6b, 0x83, 0xe4, 0xd7, 0x71, 0x38, 0x1e, 0x98, 0xd4, 0x71, 0x52, 0x17, 0x77, 0x5f, 0x49, 0x9a, - 0xd0, 0x73, 0x1f, 0x2e, 0xf1, 0xc4, 0x8a, 0x0e, 0xc9, 0x4d, 0x78, 0x8f, 0x57, 0xc5, 0x2e, 0x73, - 0x55, 0x60, 0xac, 0x6d, 0xed, 0xbf, 0x57, 0x50, 0x69, 0x3b, 0x68, 0x9b, 0x3f, 0x36, 0x10, 0x92, - 0x38, 0xa5, 0x2b, 0xe3, 0x6f, 0x50, 0x82, 0xb2, 0xbe, 0x51, 0x04, 0x25, 0xee, 0xa6, 0xcf, 0x0c, - 0xf4, 0x92, 0xca, 0x30, 0x5d, 0x1f, 0x5f, 0x9e, 0x02, 0xb4, 0x6e, 0x15, 0x04, 0x0a, 0x5b, 0x1e, - 0xa3, 0x59, 0x11, 0x6d, 0xd6, 0xc6, 0x17, 0x16, 0x63, 0xac, 0x1b, 0xfa, 0x18, 0xa1, 0xfb, 0x17, - 0x06, 0x3a, 0x93, 0x26, 0x74, 0x36, 0xc6, 0x97, 0x97, 0x82, 0x5a, 0xd5, 0xc2, 0x50, 0x61, 0xd1, - 0x4f, 0x0d, 0x74, 0x5a, 0xa1, 0x59, 0xae, 0x8d, 0x2f, 0x53, 0xc6, 0x59, 0xdf, 0x2c, 0x86, 0x53, - 0x0c, 0x51, 0x28, 0x17, 0x0d, 0x43, 0x64, 0x9c, 0x8e, 0x21, 0x59, 0xa4, 0x0a, 0x1c, 0x17, 0x89, - 0x52, 0xd1, 0x38, 0x2e, 0x09, 0x4a, 0xe7, 0xb8, 0x0c, 0x73, 0x29, 0xb0, 0x16, 0x0a, 0x93, 0xa2, - 0xb1, 0x16, 0x32, 0x4e, 0x67, 0x2d, 0xb2, 0xc8, 0x15, 0xf3, 0xb7, 0x06, 0x32, 0x33, 0xa8, 0x15, - 0x8d, 0xd9, 0x0d, 0xa3, 0xad, 0xc6, 0x49, 0xd0, 0xc2, 0xb4, 0x9f, 0x18, 0x68, 0x5e, 0x26, 0x68, - 0xae, 0xea, 0x48, 0x15, 0x30, 0x6b, 0xb3, 0x10, 0x4c, 0x58, 0xf1, 0x7b, 0x03, 0xbd, 0x92, 0x45, - 0x8d, 0x68, 0x88, 0xcd, 0x80, 0x5b, 0x5b, 0x27, 0x82, 0x0b, 0xeb, 0x7e, 0x84, 0xe6, 0x12, 0x12, - 0xe5, 0xb2, 0xee, 0x0d, 0xbe, 0x83, 0x43, 0xeb, 0x66, 0x01, 0x90, 0xe2, 0xc6, 0x0a, 0x21, 0x72, - 0x4d, 0xeb, 0x54, 0x08, 0x9c, 0x8e, 0x1b, 0x67, 0xb1, 0x24, 0xe0, 0x2b, 0x32, 0x47, 0xa2, 0xe1, - 0x2b, 0x12, 0x4c, 0xc7, 0x57, 0x32, 0xf8, 0x14, 0xf3, 0x89, 0x81, 0x16, 0x52, 0x6c, 0xca, 0xba, - 0x56, 0x30, 0x93, 0x90, 0xd6, 0xbb, 0x45, 0x91, 0xc2, 0x9c, 0xdf, 0x18, 0xe8, 0xe5, 0x61, 0x4a, - 0xe5, 0xa6, 0xce, 0x79, 0x48, 0x81, 0xad, 0xfa, 0x09, 0xc0, 0xc2, 0xae, 0xcf, 0x0d, 0x54, 0x1e, - 0x49, 0xb5, 0xd4, 0xb4, 0x35, 0x0c, 0xc9, 0xb0, 0xbe, 0x75, 0x72, 0x19, 0xea, 0xf9, 0xcf, 0x60, - 0x63, 0x36, 0xf5, 0x3c, 0x36, 0x05, 0xd7, 0x3a, 0xff, 0xa3, 0xd9, 0x1a, 0x48, 0x37, 0xd2, 0x54, - 0xcd, 0x86, 0xfe, 0x89, 0xe6, 0x50, 0x9d, 0x74, 0x63, 0x04, 0x2b, 0x63, 0x1e, 0xa1, 0x53, 0x31, - 0x25, 0x73, 0x49, 0x3b, 0x91, 0xb3, 0x36, 0xb4, 0x21, 0xca, 0x52, 0xa4, 0xc9, 0x9a, 0x0d, 0x5d, - 0x47, 0x28, 0xb4, 0x14, 0x23, 0x08, 0x1d, 0xb0, 0x28, 0x4d, 0xe7, 0x6c, 0x14, 0x49, 0x1b, 0x98, - 0xcb, 0x54, 0x0b, 0x43, 0x95, 0x2c, 0x5d, 0xa5, 0x79, 0xae, 0x6b, 0x09, 0x4d, 0x80, 0x3a, 0x59, - 0x7a, 0x26, 0xfd, 0x03, 0xb6, 0xa8, 0xdc, 0x8f, 0x86, 0x2d, 0x0a, 0x50, 0xc7, 0x96, 0x4c, 0x1a, - 0x07, 0x6c, 0x51, 0x49, 0x9c, 0xeb, 0xba, 0x27, 0x21, 0xce, 0x7d, 0x6e, 0x15, 0x04, 0x0a, 0x5b, - 0xfe, 0x68, 0xa0, 0x57, 0xb3, 0xd9, 0x1e, 0x1d, 0xd1, 0x59, 0x02, 0xac, 0x3b, 0x27, 0x14, 0xa0, - 0xd8, 0x98, 0x4d, 0xee, 0xdc, 0xd2, 0x39, 0x36, 0x19, 0x02, 0x74, 0x6c, 0xcc, 0x65, 0x69, 0x20, - 0x18, 0xa7, 0x38, 0x9a, 0x75, 0x1d, 0xd9, 0x32, 0x52, 0x27, 0x18, 0x67, 0x53, 0x39, 0xe6, 0x9f, - 0x0d, 0x74, 0x7e, 0x34, 0x91, 0xa3, 0x15, 0x57, 0x47, 0x08, 0xb1, 0xee, 0xbd, 0x00, 0x21, 0x6a, - 0x85, 0x22, 0xb3, 0x42, 0x3a, 0x15, 0x8a, 0x84, 0xd3, 0xaa, 0x50, 0x32, 0x18, 0x1a, 0xd8, 0xc7, - 0x14, 0x3f, 0xb3, 0xae, 0x75, 0xde, 0x25, 0xa4, 0xce, 0x3e, 0x66, 0x93, 0x39, 0x70, 0xa9, 0xa7, - 0xa9, 0x1c, 0x8d, 0x4b, 0x3d, 0x05, 0xd5, 0xb9, 0xd4, 0x47, 0x51, 0x3d, 0x51, 0x86, 0x92, 0x45, - 0xe7, 0x6c, 0xea, 0xd7, 0xeb, 0xb2, 0x65, 0x5b, 0x27, 0x82, 0x2b, 0x49, 0xe8, 0x30, 0xa9, 0x73, - 0x53, 0x6b, 0x1f, 0x54, 0xb0, 0x4e, 0x12, 0x3a, 0x92, 0xe4, 0x01, 0xff, 0x56, 0x28, 0x9e, 0x6b, - 0xba, 0x52, 0xf5, 0x2b, 0xf0, 0x2c, 0xde, 0x27, 0xf6, 0x6f, 0x99, 0xf5, 0xd1, 0xf3, 0x6f, 0x09, - 0xa9, 0xe9, 0xdf, 0x19, 0x04, 0x91, 0xf9, 0x2b, 0x03, 0x9d, 0x1d, 0xa2, 0x87, 0x6e, 0x68, 0x8b, - 0x15, 0x58, 0xab, 0x56, 0x1c, 0xab, 0xc4, 0x67, 0x95, 0x45, 0xd2, 0x88, 0xcf, 0x0a, 0x50, 0x27, - 0x3e, 0x67, 0x12, 0x48, 0x51, 0xc9, 0x9d, 0x90, 0x47, 0x97, 0xf5, 0x8e, 0x2f, 0xbb, 0x11, 0x6f, - 0x16, 0x00, 0x29, 0x8f, 0x57, 0x12, 0xd1, 0x73, 0x45, 0xd7, 0xfb, 0x22, 0x94, 0xce, 0xe3, 0xd5, - 0x30, 0xff, 0x03, 0xc5, 0xb6, 0xcc, 0xfe, 0x5c, 0xd5, 0x7e, 0x83, 0x8a, 0x60, 0x3a, 0xc5, 0x76, - 0x06, 0x53, 0x04, 0x17, 0xcb, 0x30, 0x4f, 0xa4, 0xb1, 0xb6, 0x43, 0x60, 0x9d, 0x8b, 0x65, 0x24, - 0xb7, 0x64, 0xfe, 0xc1, 0x40, 0x8b, 0x99, 0xcc, 0x92, 0xce, 0xb3, 0x65, 0x06, 0xde, 0xba, 0x7d, - 0x32, 0xbc, 0x12, 0x2f, 0xb2, 0xe8, 0xa8, 0x4d, 0xad, 0x40, 0x9d, 0x86, 0xeb, 0xc4, 0x8b, 0x1c, - 0xfa, 0x0a, 0xe2, 0x6b, 0x9a, 0xbb, 0xda, 0x28, 0xcc, 0x38, 0xe9, 0xc4, 0xd7, 0x11, 0xdc, 0x11, - 0xb8, 0xbb, 0xcc, 0x1c, 0x5d, 0x2d, 0x20, 0xb2, 0x41, 0x74, 0xdc, 0x3d, 0x83, 0x59, 0x82, 0x30, - 0x91, 0xe2, 0x95, 0xd6, 0x8b, 0xcc, 0x2d, 0x42, 0xea, 0x84, 0x89, 0x6c, 0xea, 0xa9, 0xd6, 0xfc, - 0xe2, 0xd9, 0x92, 0xf1, 0xe5, 0xb3, 0x25, 0xe3, 0x5f, 0xcf, 0x96, 0x8c, 0x5f, 0x3e, 0x5f, 0x9a, - 0xf8, 0xf2, 0xf9, 0xd2, 0xc4, 0xdf, 0x9f, 0x2f, 0x4d, 0x3c, 0x5a, 0x97, 0xfe, 0x91, 0xe7, 0x90, - 0x96, 0xd5, 0xba, 0xf8, 0xab, 0xa9, 0x4f, 0xe5, 0x3f, 0x01, 0x1b, 0xf4, 0x70, 0xb0, 0x3b, 0x03, - 0x7f, 0x23, 0x75, 0xf9, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x79, 0x5f, 0xce, 0x26, 0x36, - 0x00, 0x00, + 0x2f, 0xfd, 0x13, 0x7a, 0x2c, 0xe6, 0x91, 0xc3, 0x21, 0x67, 0x67, 0x47, 0xcb, 0x91, 0x81, 0x00, + 0x59, 0x72, 0xf8, 0x79, 0xef, 0x91, 0x7c, 0xe4, 0x7b, 0x8f, 0x1f, 0x0b, 0x5d, 0x70, 0x1d, 0xda, + 0x72, 0xf7, 0x1d, 0xcf, 0x5f, 0x4d, 0x7e, 0x85, 0x9f, 0x56, 0x7a, 0x94, 0x84, 0xc4, 0x7c, 0xbb, + 0x81, 0x5d, 0xec, 0x87, 0xd4, 0xe9, 0xd4, 0x1d, 0xda, 0xba, 0xe3, 0x74, 0x71, 0x45, 0x8c, 0x4a, + 0x7e, 0x59, 0x8b, 0x6d, 0xd2, 0x26, 0x80, 0x58, 0x8d, 0x7e, 0x31, 0xb0, 0xf5, 0x66, 0x96, 0x68, + 0x97, 0xf4, 0x7d, 0xd7, 0xeb, 0xf0, 0x21, 0xcb, 0x59, 0x43, 0xba, 0x4e, 0xe8, 0xee, 0xf3, 0x01, + 0x2b, 0x59, 0x03, 0x0e, 0x49, 0xe8, 0xf9, 0x6d, 0x3e, 0x62, 0x29, 0x53, 0x8b, 0x43, 0x5b, 0xe2, + 0x3b, 0x09, 0xba, 0x24, 0x58, 0xdd, 0x75, 0x02, 0xbc, 0x7a, 0x78, 0x69, 0x17, 0x87, 0xce, 0xa5, + 0x55, 0x97, 0x78, 0x3e, 0xfb, 0x6e, 0x7f, 0x8c, 0x5e, 0xda, 0x0e, 0xda, 0x75, 0x8a, 0x9d, 0x10, + 0xf7, 0x03, 0x4c, 0xcd, 0x32, 0x3a, 0xe5, 0x46, 0x2d, 0x42, 0xcb, 0xc6, 0x8a, 0x71, 0x71, 0xae, + 0x19, 0x37, 0xa3, 0x2f, 0x3e, 0x3e, 0xfa, 0x20, 0xc0, 0xb4, 0x3c, 0xc9, 0xbe, 0xf0, 0xa6, 0xb9, + 0x88, 0xa6, 0x9d, 0x8e, 0xe7, 0x04, 0xe5, 0x12, 0xf4, 0xb3, 0x86, 0xfd, 0x1a, 0x7a, 0x55, 0x11, + 0xdd, 0xc4, 0x41, 0x8f, 0xf8, 0x01, 0xb6, 0x7f, 0x63, 0xa0, 0xb3, 0xdb, 0x41, 0xbb, 0xd6, 0x1f, + 0x44, 0xcb, 0xba, 0xe3, 0xee, 0xe3, 0x2e, 0xce, 0xd1, 0xfb, 0x09, 0x2a, 0xed, 0x7a, 0x2d, 0xd0, + 0x39, 0xbf, 0x76, 0xbe, 0xc2, 0x26, 0x54, 0x89, 0x26, 0x54, 0xe1, 0x13, 0xaa, 0xd4, 0x89, 0xe7, + 0xd7, 0x56, 0xbf, 0xf8, 0x6a, 0x79, 0xe2, 0xf3, 0x7f, 0x2d, 0xff, 0x7f, 0xdb, 0x0b, 0xf7, 0xfb, + 0xbb, 0x15, 0x97, 0x74, 0x57, 0xf9, 0xec, 0xd9, 0xff, 0xbe, 0x16, 0xb4, 0x0e, 0x56, 0xc3, 0x41, + 0x0f, 0x07, 0x00, 0x68, 0x46, 0x62, 0x6f, 0xcc, 0xfe, 0xec, 0xe9, 0xf2, 0xc4, 0x7f, 0x9e, 0x2e, + 0x4f, 0xd8, 0x6b, 0xa8, 0x9c, 0xb6, 0x2a, 0x36, 0xd9, 0x3c, 0x87, 0x66, 0xa2, 0x45, 0xbd, 0xdb, + 0x02, 0xe3, 0xa6, 0x9a, 0xbc, 0x65, 0x3f, 0x31, 0xd0, 0xfc, 0x76, 0xd0, 0xfe, 0x90, 0x84, 0x38, + 0x42, 0xe5, 0xcc, 0x22, 0x91, 0x30, 0x29, 0x4b, 0x30, 0xef, 0xa1, 0xd9, 0x43, 0x12, 0xe2, 0x87, + 0x83, 0x1e, 0x86, 0xe5, 0x5b, 0x58, 0x5b, 0xad, 0x8c, 0xe5, 0x76, 0x95, 0x0f, 0x39, 0xac, 0x29, + 0x04, 0xd8, 0x9b, 0xe8, 0x15, 0xc9, 0x1a, 0x61, 0xfd, 0x3b, 0x68, 0xc1, 0xf1, 0x68, 0x8b, 0x92, + 0x5e, 0xbd, 0xe3, 0x78, 0x5d, 0xcc, 0x66, 0x31, 0xdb, 0x4c, 0xf5, 0xda, 0x7f, 0x35, 0x90, 0xb9, + 0x1d, 0xb4, 0x77, 0x9c, 0x43, 0xc0, 0xd7, 0x89, 0x1f, 0x62, 0x3f, 0x2c, 0x30, 0xa9, 0x08, 0xc1, + 0xc0, 0x30, 0xa7, 0xd3, 0xcd, 0xb8, 0x19, 0xb9, 0x8a, 0x4f, 0x42, 0x1c, 0x94, 0xa7, 0x98, 0xab, + 0x40, 0x23, 0x92, 0xe3, 0xd0, 0xd0, 0x0b, 0xc2, 0xf2, 0x34, 0x74, 0xf3, 0x96, 0xf9, 0x16, 0x7a, + 0x69, 0xd7, 0xe9, 0x38, 0xbe, 0x8b, 0xab, 0xbe, 0xbb, 0x4f, 0x68, 0x79, 0x06, 0xec, 0x56, 0x3b, + 0xed, 0x06, 0xb2, 0x86, 0xad, 0xd6, 0x9e, 0xfc, 0x0f, 0xd0, 0x99, 0xed, 0xa0, 0xfd, 0x90, 0x3a, + 0x7e, 0xb0, 0x87, 0x69, 0xc1, 0xdd, 0xb4, 0xd0, 0x2c, 0xc5, 0x2e, 0xf6, 0x0e, 0x31, 0xe5, 0x33, + 0x14, 0x6d, 0xfb, 0x3c, 0x7a, 0x2d, 0xa5, 0x40, 0x9c, 0x88, 0x27, 0x06, 0x28, 0x6f, 0x10, 0xdf, + 0x09, 0xf1, 0x43, 0x52, 0x50, 0xf9, 0x1d, 0x34, 0xe3, 0x74, 0x49, 0x9f, 0x2f, 0xfa, 0x1c, 0x3b, + 0x10, 0xff, 0xfc, 0x6a, 0xfc, 0x03, 0xc1, 0xe1, 0xdc, 0x52, 0xd9, 0x1a, 0x61, 0xe9, 0x0f, 0xe1, + 0xbe, 0xa8, 0xb6, 0x5a, 0x55, 0x1a, 0x1e, 0x11, 0x7a, 0x50, 0xc0, 0xcc, 0x45, 0x34, 0xed, 0x75, + 0x9d, 0x36, 0xe6, 0xae, 0xc1, 0x1a, 0x91, 0x9c, 0xbd, 0x7e, 0xa7, 0x53, 0xa5, 0x21, 0x2c, 0xdc, + 0x6c, 0x33, 0x6e, 0xf2, 0x7b, 0x24, 0x51, 0x29, 0x6c, 0xf9, 0x1e, 0x2c, 0x5a, 0x7d, 0xdf, 0xf1, + 0xdb, 0xb8, 0xca, 0x1c, 0xe6, 0x78, 0x6b, 0x1a, 0x8a, 0x35, 0x0d, 0xc9, 0xf5, 0x4a, 0xb2, 0xeb, + 0xf1, 0x35, 0x90, 0x85, 0x0b, 0xbd, 0x97, 0xc0, 0xa0, 0x26, 0x6e, 0x7b, 0x41, 0x88, 0xe9, 0x6d, + 0x42, 0xeb, 0xec, 0x56, 0x1f, 0xad, 0xdd, 0x5e, 0x46, 0x6f, 0x64, 0x42, 0x84, 0xcc, 0xbf, 0x1b, + 0x68, 0x01, 0x46, 0xf4, 0x08, 0x0d, 0xb7, 0xa3, 0x10, 0x90, 0x7f, 0x13, 0x43, 0x94, 0x10, 0x4b, + 0x1b, 0x37, 0x4d, 0x1b, 0x9d, 0xee, 0x75, 0x9c, 0x01, 0x6e, 0x45, 0x9b, 0x16, 0x54, 0xcb, 0xa5, + 0x95, 0xd2, 0xc5, 0xa9, 0xa6, 0xd2, 0x97, 0x1a, 0x53, 0x2b, 0x4f, 0x0d, 0x8d, 0xa9, 0x99, 0xef, + 0xa1, 0x53, 0xa4, 0x1f, 0xba, 0xa4, 0x8b, 0xe1, 0x44, 0x2e, 0xac, 0x55, 0xc6, 0xbc, 0x94, 0xee, + 0x33, 0x54, 0x33, 0x86, 0xdb, 0x6b, 0xe8, 0x9c, 0x3a, 0x2f, 0x71, 0x30, 0xa5, 0x59, 0x18, 0xca, + 0x2c, 0xec, 0xf7, 0x01, 0x53, 0xed, 0x11, 0xcf, 0x8f, 0x31, 0x11, 0x3c, 0x37, 0x3a, 0xc1, 0xc9, + 0x63, 0xa3, 0x78, 0x78, 0x12, 0x6d, 0x7b, 0x05, 0x2d, 0x65, 0xcb, 0x13, 0xcb, 0xff, 0x7b, 0x03, + 0x9d, 0x16, 0xc1, 0x6a, 0x07, 0xe7, 0x39, 0x92, 0x89, 0xa6, 0x7c, 0xa7, 0x8b, 0xb9, 0x12, 0xf8, + 0x3d, 0xca, 0x89, 0xcc, 0x15, 0x34, 0x1f, 0x84, 0x84, 0x0e, 0x3e, 0xa2, 0x5e, 0x28, 0x6e, 0x04, + 0xb9, 0x2b, 0xda, 0x8c, 0xe8, 0x6a, 0xa4, 0xde, 0x6e, 0x3f, 0x24, 0x34, 0x28, 0x4f, 0xaf, 0x94, + 0x2e, 0xce, 0x35, 0x95, 0x3e, 0xfb, 0x1c, 0x5a, 0x94, 0x6d, 0x13, 0x46, 0x7f, 0x0c, 0xfe, 0x5f, + 0x6d, 0xc1, 0xa6, 0x3d, 0x24, 0xf9, 0x66, 0x2f, 0xa2, 0xe9, 0x00, 0x87, 0xc2, 0x63, 0x58, 0x43, + 0x3a, 0xa3, 0x25, 0x25, 0xae, 0x31, 0xef, 0x97, 0x45, 0x0b, 0xad, 0xef, 0x82, 0xa3, 0xde, 0xf6, + 0x7c, 0xa7, 0xe3, 0x3d, 0xc6, 0x05, 0x94, 0xda, 0x65, 0xd8, 0x5e, 0x49, 0x82, 0x90, 0x5d, 0x47, + 0x2f, 0xb3, 0x10, 0x5c, 0x23, 0x24, 0x3a, 0x28, 0x0f, 0x1c, 0xf7, 0x40, 0x5b, 0x7c, 0x1d, 0x9d, + 0x1f, 0x12, 0xa2, 0x1d, 0x0d, 0xbe, 0x0f, 0x6b, 0xde, 0xc4, 0x5d, 0xc2, 0xa2, 0xca, 0x6d, 0x4a, + 0xba, 0x2f, 0x72, 0x81, 0x97, 0xd0, 0x85, 0x2c, 0xf9, 0x62, 0x25, 0x1c, 0xf4, 0x7a, 0xf2, 0x3d, + 0x71, 0x86, 0xa2, 0x66, 0x98, 0x68, 0x2a, 0x4a, 0xc1, 0xb8, 0x7b, 0xc2, 0x6f, 0xfb, 0x6d, 0xf4, + 0x7f, 0x39, 0x2a, 0x84, 0x25, 0x9f, 0xb0, 0xc3, 0xd8, 0x6a, 0x49, 0x63, 0x8a, 0x39, 0x5b, 0x96, + 0x11, 0xfc, 0x68, 0x0e, 0x4b, 0x17, 0xfa, 0x3f, 0x63, 0x49, 0x49, 0xec, 0xfe, 0x9d, 0xce, 0xfd, + 0xbd, 0xbd, 0xdc, 0x9b, 0xc0, 0x44, 0x53, 0xd1, 0x22, 0x73, 0xdd, 0xf0, 0xdb, 0xdc, 0x42, 0xd3, + 0x3d, 0xea, 0xb9, 0xb8, 0x68, 0x64, 0x64, 0x68, 0xfb, 0x02, 0x64, 0x1a, 0x29, 0x53, 0x84, 0xa5, + 0xef, 0x21, 0x94, 0x24, 0x90, 0x39, 0x06, 0x46, 0xb7, 0x42, 0x0c, 0x16, 0x6b, 0x24, 0x77, 0xd9, + 0x8b, 0x30, 0x65, 0x2e, 0x49, 0xc8, 0x7f, 0x00, 0xbd, 0x6c, 0xc3, 0xc6, 0x59, 0x88, 0xe3, 0xf5, + 0xb0, 0xf9, 0xa4, 0x24, 0x0a, 0x7d, 0x8f, 0x40, 0x5f, 0x12, 0x78, 0x8b, 0xed, 0x7a, 0x66, 0xb8, + 0xe7, 0x9a, 0x53, 0xb2, 0x85, 0xe6, 0xef, 0x42, 0x81, 0x50, 0x6d, 0xb5, 0x76, 0xa2, 0xab, 0xb2, + 0xb0, 0x5e, 0xb8, 0x68, 0xe3, 0xa2, 0x04, 0x1a, 0xb6, 0x05, 0x49, 0xbe, 0x22, 0x59, 0x68, 0xfd, + 0x33, 0xab, 0x4b, 0x76, 0x70, 0x08, 0xcb, 0xee, 0x50, 0x2f, 0x1c, 0x14, 0xcb, 0x6f, 0x98, 0x39, + 0x25, 0xd9, 0x9c, 0xbb, 0x68, 0x86, 0x82, 0x44, 0x88, 0x02, 0x0b, 0x6b, 0x97, 0xc6, 0x0c, 0xa8, + 0x89, 0x29, 0x4d, 0x2e, 0x80, 0xcf, 0x41, 0x31, 0x53, 0xcc, 0xa1, 0x01, 0x53, 0x60, 0x1e, 0x7a, + 0x6c, 0x5a, 0x32, 0x6a, 0x0a, 0x5c, 0x83, 0x22, 0x45, 0x68, 0xf8, 0x85, 0xc1, 0x3e, 0x92, 0x6e, + 0xd7, 0x0b, 0x53, 0x1f, 0x8f, 0x8b, 0xcf, 0x6c, 0x54, 0x12, 0x9f, 0x39, 0xea, 0x02, 0x9a, 0xe3, + 0x85, 0xb1, 0x58, 0xb5, 0xa4, 0xc3, 0x5c, 0x42, 0x28, 0xe8, 0xb7, 0xdb, 0x38, 0x08, 0x3d, 0xe2, + 0xf3, 0x18, 0x2a, 0xf5, 0xd8, 0x36, 0x5a, 0x19, 0x65, 0x8f, 0x30, 0xfa, 0x6f, 0xcc, 0xe8, 0x26, + 0x3e, 0xc4, 0x4e, 0x67, 0x7c, 0xa3, 0xef, 0xa5, 0x8c, 0x1e, 0xbf, 0x38, 0x13, 0x16, 0x24, 0xb3, + 0x3c, 0x87, 0x66, 0x02, 0xec, 0x52, 0x2c, 0x92, 0x04, 0xd6, 0x52, 0x67, 0x3f, 0x95, 0x9a, 0x3d, + 0x9f, 0x5d, 0xa6, 0xe1, 0x62, 0x76, 0xf7, 0x20, 0x6c, 0x36, 0x71, 0x10, 0x3a, 0x34, 0x3c, 0x7e, + 0xd7, 0x15, 0x85, 0x93, 0x69, 0x85, 0xaf, 0x43, 0xf8, 0x54, 0x85, 0x09, 0x4d, 0xeb, 0x3c, 0x6c, + 0x1d, 0x91, 0x83, 0xc4, 0x31, 0xa2, 0xa4, 0x96, 0x3a, 0xd1, 0x5e, 0xe4, 0x64, 0xc0, 0xef, 0xa0, + 0xb7, 0xf2, 0x90, 0x42, 0xc3, 0x33, 0x56, 0x0a, 0xd5, 0x89, 0xbf, 0xe7, 0xd1, 0x6e, 0xf1, 0x4c, + 0x58, 0xca, 0x60, 0x4b, 0x27, 0xca, 0x60, 0xcd, 0xef, 0x20, 0x14, 0x15, 0xd8, 0x2c, 0x35, 0x86, + 0x6c, 0x79, 0x7e, 0xec, 0xd3, 0xbb, 0xe3, 0xf9, 0xed, 0x0e, 0x8e, 0x0a, 0xf2, 0xa6, 0x24, 0x24, + 0x2e, 0x2e, 0xa4, 0x39, 0x8a, 0xf9, 0x6f, 0xc1, 0x5e, 0xee, 0xe0, 0xf0, 0x01, 0x25, 0x7b, 0x5e, + 0xa7, 0xe0, 0xb3, 0x02, 0xdf, 0x45, 0x55, 0x8c, 0xd0, 0xf1, 0x10, 0x2e, 0xf6, 0xfb, 0x3d, 0xec, + 0x8f, 0x97, 0x67, 0x45, 0x65, 0x78, 0x32, 0x50, 0xe8, 0x52, 0x3b, 0xed, 0x6b, 0x70, 0xa5, 0xa7, + 0xa4, 0x2a, 0x87, 0x0c, 0x4c, 0x0b, 0xca, 0x06, 0x14, 0x1c, 0x71, 0xd3, 0x0e, 0x21, 0xc1, 0x88, + 0xeb, 0xe2, 0x17, 0x68, 0x91, 0x52, 0x8d, 0x97, 0x52, 0xd5, 0x38, 0x4b, 0x3c, 0x32, 0xb4, 0x8a, + 0x55, 0xda, 0x87, 0x14, 0x70, 0x07, 0x87, 0xd1, 0x7f, 0x52, 0xca, 0xae, 0x1b, 0x88, 0x52, 0x45, + 0x40, 0x69, 0xa8, 0x08, 0xe0, 0xc9, 0xe0, 0x90, 0xa6, 0x54, 0xa2, 0xcf, 0xbe, 0x1f, 0x5b, 0xe8, + 0x8e, 0xcc, 0x43, 0x73, 0xca, 0x5c, 0x59, 0xb4, 0xd0, 0x7a, 0x27, 0xf6, 0xc4, 0x0f, 0x02, 0x4c, + 0x3f, 0xc2, 0xbb, 0x81, 0x17, 0xe2, 0xfc, 0xa3, 0x78, 0xc4, 0x06, 0xc5, 0xcf, 0x83, 0xbc, 0x99, + 0xf8, 0xa2, 0x24, 0x48, 0x68, 0xd9, 0x86, 0x27, 0x2b, 0xfe, 0xb1, 0xe6, 0x91, 0x36, 0x75, 0x7a, + 0xfb, 0x83, 0xfc, 0xdb, 0x6b, 0x37, 0x1e, 0xc6, 0x35, 0x25, 0x1d, 0xf6, 0x1b, 0x90, 0x37, 0xa7, + 0xc5, 0x09, 0x6d, 0x7d, 0x08, 0x8f, 0xdb, 0xfd, 0x4e, 0xe8, 0x8d, 0xf1, 0x66, 0x77, 0x07, 0x4d, + 0x1f, 0xc2, 0x63, 0xd5, 0x64, 0xd1, 0x43, 0xcf, 0xf0, 0x3c, 0x9e, 0x2a, 0x6a, 0x85, 0x49, 0x4f, + 0x59, 0xe9, 0x19, 0x9d, 0x9b, 0x31, 0x6e, 0x3b, 0xa8, 0xd2, 0x69, 0x35, 0x5e, 0x62, 0xde, 0x4c, + 0xbe, 0xd4, 0xf8, 0xfe, 0xc6, 0xcd, 0xc8, 0xfb, 0xf8, 0xa0, 0x06, 0x76, 0x0f, 0x78, 0xb1, 0x2f, + 0x77, 0x25, 0x23, 0x6a, 0x30, 0x62, 0x5a, 0x1e, 0x01, 0x5d, 0xf6, 0xd7, 0xe1, 0x24, 0x08, 0x0b, + 0xc7, 0xa8, 0xe0, 0x77, 0xe0, 0x99, 0x88, 0xb9, 0xd5, 0xfb, 0x4e, 0xee, 0xf3, 0xee, 0xc8, 0x5a, + 0x01, 0xaa, 0xec, 0x52, 0x52, 0x65, 0xf3, 0x87, 0xa0, 0x44, 0x68, 0xaa, 0x24, 0xe5, 0x6f, 0x35, + 0x1d, 0xcf, 0x09, 0xf2, 0xd5, 0xb1, 0xb7, 0xea, 0x49, 0xf9, 0xad, 0x9a, 0x95, 0xa4, 0x92, 0x04, + 0x29, 0xa1, 0x8a, 0xe6, 0x7e, 0xd7, 0x3f, 0xf4, 0x42, 0xbc, 0xe5, 0xd0, 0xce, 0xa0, 0xea, 0xba, + 0x38, 0x08, 0xf2, 0xeb, 0x8f, 0x7e, 0xf2, 0x48, 0xce, 0xca, 0x1c, 0x76, 0xc2, 0x87, 0xa4, 0x48, + 0x67, 0x0d, 0x5e, 0xdc, 0xbc, 0xc0, 0x3b, 0xa1, 0xa2, 0x37, 0xd1, 0xf2, 0x08, 0x41, 0x42, 0xd7, + 0xb7, 0xd9, 0x5c, 0x89, 0xef, 0x63, 0x37, 0x7c, 0x84, 0x1d, 0x18, 0x40, 0xfa, 0xb9, 0x0f, 0xbd, + 0x65, 0x74, 0xea, 0x71, 0x34, 0x92, 0x6f, 0xd3, 0x5c, 0x33, 0x6e, 0xf2, 0x7b, 0x34, 0x43, 0x9a, + 0xd0, 0xf7, 0xf3, 0x49, 0x08, 0x37, 0x5b, 0x3e, 0x74, 0x63, 0xca, 0xd2, 0xca, 0xfc, 0x54, 0xb1, + 0x41, 0x9d, 0xa3, 0x4e, 0x74, 0x5b, 0x4d, 0x82, 0x37, 0x8a, 0xb6, 0xe9, 0x21, 0xd4, 0x73, 0xa8, + 0xd3, 0xc5, 0x21, 0xa6, 0x01, 0x3c, 0x6f, 0xcd, 0xaf, 0xdd, 0x1d, 0xf3, 0x5c, 0x0e, 0x1b, 0x51, + 0x79, 0x20, 0x64, 0x6d, 0xf9, 0x21, 0x1d, 0x34, 0x25, 0xe1, 0x49, 0xe1, 0x32, 0x25, 0x15, 0x2e, + 0xd6, 0x26, 0x3a, 0x93, 0x02, 0x99, 0x67, 0x51, 0xe9, 0x00, 0x0f, 0xf8, 0x2c, 0xa2, 0x9f, 0x11, + 0xf4, 0xd0, 0xe9, 0xf4, 0xe3, 0x9b, 0x90, 0x35, 0x6e, 0x4c, 0xae, 0x1b, 0xbc, 0xee, 0x49, 0x99, + 0x21, 0x6d, 0xcd, 0x82, 0xfc, 0xb5, 0x41, 0xf2, 0xab, 0x3b, 0x1c, 0x0f, 0x4c, 0xaa, 0x3b, 0xa9, + 0x8b, 0x3b, 0xb5, 0x24, 0x4d, 0xe8, 0xb9, 0x0f, 0x57, 0x7b, 0x62, 0x45, 0x87, 0xe4, 0xa6, 0xc1, + 0xc7, 0xab, 0x62, 0x57, 0xbc, 0x2a, 0x30, 0xd6, 0xb6, 0xf6, 0xdf, 0x2b, 0xa8, 0xb4, 0x1d, 0xb4, + 0xcd, 0x1f, 0x1b, 0x08, 0x49, 0x4c, 0xd3, 0x95, 0xf1, 0xb7, 0x2d, 0x41, 0x59, 0xdf, 0x28, 0x82, + 0x12, 0x37, 0xd6, 0x67, 0x06, 0x7a, 0x49, 0xe5, 0x9d, 0xae, 0x8f, 0x2f, 0x4f, 0x01, 0x5a, 0xb7, + 0x0a, 0x02, 0x85, 0x2d, 0x8f, 0xd1, 0xac, 0x88, 0x41, 0x6b, 0xe3, 0x0b, 0x8b, 0x31, 0xd6, 0x0d, + 0x7d, 0x8c, 0xd0, 0xfd, 0x4b, 0x03, 0x9d, 0x49, 0xd3, 0x3c, 0x1b, 0xe3, 0xcb, 0x4b, 0x41, 0xad, + 0x6a, 0x61, 0xa8, 0xb0, 0xe8, 0xa7, 0x06, 0x3a, 0xad, 0x90, 0x2f, 0xd7, 0xc6, 0x97, 0x29, 0xe3, + 0xac, 0x6f, 0x16, 0xc3, 0x29, 0x86, 0x28, 0x44, 0x8c, 0x86, 0x21, 0x32, 0x4e, 0xc7, 0x90, 0x2c, + 0xaa, 0x05, 0x8e, 0x8b, 0x44, 0xb4, 0x68, 0x1c, 0x97, 0x04, 0xa5, 0x73, 0x5c, 0x86, 0x19, 0x16, + 0x58, 0x0b, 0x85, 0x5f, 0xd1, 0x58, 0x0b, 0x19, 0xa7, 0xb3, 0x16, 0x59, 0x94, 0x8b, 0xf9, 0x3b, + 0x03, 0x99, 0x19, 0x84, 0x8b, 0xc6, 0xec, 0x86, 0xd1, 0x56, 0xe3, 0x24, 0x68, 0x61, 0xda, 0x4f, + 0x0c, 0x34, 0x2f, 0xd3, 0x36, 0x57, 0x75, 0xa4, 0x0a, 0x98, 0xb5, 0x59, 0x08, 0x26, 0xac, 0xf8, + 0x83, 0x81, 0x5e, 0xc9, 0x22, 0x4c, 0x34, 0xc4, 0x66, 0xc0, 0xad, 0xad, 0x13, 0xc1, 0x85, 0x75, + 0x3f, 0x42, 0x73, 0x09, 0xb5, 0x72, 0x59, 0xf7, 0x06, 0xdf, 0xc1, 0xa1, 0x75, 0xb3, 0x00, 0x48, + 0x71, 0x63, 0x85, 0x26, 0xb9, 0xa6, 0x75, 0x2a, 0x04, 0x4e, 0xc7, 0x8d, 0xb3, 0xb8, 0x13, 0xf0, + 0x15, 0x99, 0x39, 0xd1, 0xf0, 0x15, 0x09, 0xa6, 0xe3, 0x2b, 0x19, 0x2c, 0x8b, 0xf9, 0xc4, 0x40, + 0x0b, 0x29, 0x8e, 0x65, 0x5d, 0x2b, 0x98, 0x49, 0x48, 0xeb, 0xdd, 0xa2, 0x48, 0x61, 0xce, 0x6f, + 0x0d, 0xf4, 0xf2, 0x30, 0xd1, 0x72, 0x53, 0xe7, 0x3c, 0xa4, 0xc0, 0x56, 0xfd, 0x04, 0x60, 0x61, + 0xd7, 0xe7, 0x06, 0x2a, 0x8f, 0x24, 0x60, 0x6a, 0xda, 0x1a, 0x86, 0x64, 0x58, 0xdf, 0x3a, 0xb9, + 0x0c, 0xf5, 0xfc, 0x67, 0x70, 0x34, 0x9b, 0x7a, 0x1e, 0x9b, 0x82, 0x6b, 0x9d, 0xff, 0xd1, 0x1c, + 0x0e, 0xa4, 0x1b, 0x69, 0x02, 0x67, 0x43, 0xff, 0x44, 0x73, 0xa8, 0x4e, 0xba, 0x31, 0x82, 0xab, + 0x31, 0x8f, 0xd0, 0xa9, 0x98, 0xa8, 0xb9, 0xa4, 0x9d, 0xc8, 0x59, 0x1b, 0xda, 0x10, 0x65, 0x29, + 0xd2, 0x14, 0xce, 0x86, 0xae, 0x23, 0x14, 0x5a, 0x8a, 0x11, 0x34, 0x0f, 0x58, 0x94, 0x26, 0x79, + 0x36, 0x8a, 0xa4, 0x0d, 0xcc, 0x65, 0xaa, 0x85, 0xa1, 0x4a, 0x96, 0xae, 0x92, 0x3f, 0xd7, 0xb5, + 0x84, 0x26, 0x40, 0x9d, 0x2c, 0x3d, 0x93, 0x14, 0x02, 0x5b, 0x54, 0x46, 0x48, 0xc3, 0x16, 0x05, + 0xa8, 0x63, 0x4b, 0x26, 0xb9, 0x03, 0xb6, 0xa8, 0xd4, 0xce, 0x75, 0xdd, 0x93, 0x10, 0xe7, 0x3e, + 0xb7, 0x0a, 0x02, 0x85, 0x2d, 0x7f, 0x32, 0xd0, 0xab, 0xd9, 0x1c, 0x90, 0x8e, 0xe8, 0x2c, 0x01, + 0xd6, 0x9d, 0x13, 0x0a, 0x50, 0x6c, 0xcc, 0xa6, 0x7c, 0x6e, 0xe9, 0x1c, 0x9b, 0x0c, 0x01, 0x3a, + 0x36, 0xe6, 0x72, 0x37, 0x10, 0x8c, 0x53, 0xcc, 0xcd, 0xba, 0x8e, 0x6c, 0x19, 0xa9, 0x13, 0x8c, + 0xb3, 0x09, 0x1e, 0xf3, 0x2f, 0x06, 0x3a, 0x3f, 0x9a, 0xde, 0xd1, 0x8a, 0xab, 0x23, 0x84, 0x58, + 0xf7, 0x5e, 0x80, 0x10, 0xb5, 0x42, 0x91, 0xb9, 0x22, 0x9d, 0x0a, 0x45, 0xc2, 0x69, 0x55, 0x28, + 0x19, 0xbc, 0x0d, 0xec, 0x63, 0x8a, 0xb5, 0x59, 0xd7, 0x3a, 0xef, 0x12, 0x52, 0x67, 0x1f, 0xb3, + 0x29, 0x1e, 0xb8, 0xd4, 0xd3, 0x04, 0x8f, 0xc6, 0xa5, 0x9e, 0x82, 0xea, 0x5c, 0xea, 0xa3, 0x08, + 0xa0, 0x28, 0x43, 0xc9, 0x22, 0x79, 0x36, 0xf5, 0xeb, 0x75, 0xd9, 0xb2, 0xad, 0x13, 0xc1, 0x95, + 0x24, 0x74, 0x98, 0xea, 0xb9, 0xa9, 0xb5, 0x0f, 0x2a, 0x58, 0x27, 0x09, 0x1d, 0x49, 0xfd, 0x80, + 0x7f, 0x2b, 0xc4, 0xcf, 0x35, 0x5d, 0xa9, 0xfa, 0x15, 0x78, 0x16, 0x1b, 0x14, 0xfb, 0xb7, 0xcc, + 0x05, 0xe9, 0xf9, 0xb7, 0x84, 0xd4, 0xf4, 0xef, 0x0c, 0xda, 0xc8, 0xfc, 0xb5, 0x81, 0xce, 0x0e, + 0x91, 0x46, 0x37, 0xb4, 0xc5, 0x0a, 0xac, 0x55, 0x2b, 0x8e, 0x55, 0xe2, 0xb3, 0xca, 0x2d, 0x69, + 0xc4, 0x67, 0x05, 0xa8, 0x13, 0x9f, 0x33, 0x69, 0xa5, 0xa8, 0xe4, 0x4e, 0x28, 0xa5, 0xcb, 0x7a, + 0xc7, 0x97, 0xdd, 0x88, 0x37, 0x0b, 0x80, 0x94, 0xc7, 0x2b, 0x89, 0xfe, 0xb9, 0xa2, 0xeb, 0x7d, + 0x11, 0x4a, 0xe7, 0xf1, 0x6a, 0x98, 0x15, 0x82, 0x62, 0x5b, 0xe6, 0x84, 0xae, 0x6a, 0xbf, 0x41, + 0x45, 0x30, 0x9d, 0x62, 0x3b, 0x83, 0x3f, 0x82, 0x8b, 0x65, 0x98, 0x3d, 0xd2, 0x58, 0xdb, 0x21, + 0xb0, 0xce, 0xc5, 0x32, 0x92, 0x71, 0x32, 0xff, 0x68, 0xa0, 0xc5, 0x4c, 0xbe, 0x49, 0xe7, 0xd9, + 0x32, 0x03, 0x6f, 0xdd, 0x3e, 0x19, 0x5e, 0x89, 0x17, 0x59, 0x24, 0xd5, 0xa6, 0x56, 0xa0, 0x4e, + 0xc3, 0x75, 0xe2, 0x45, 0x0e, 0xa9, 0x05, 0xf1, 0x35, 0xcd, 0x68, 0x6d, 0x14, 0xe6, 0xa1, 0x74, + 0xe2, 0xeb, 0x08, 0xee, 0x08, 0xdc, 0x5d, 0x66, 0x8e, 0xae, 0x16, 0x10, 0xd9, 0x20, 0x3a, 0xee, + 0x9e, 0xc1, 0x2c, 0x41, 0x98, 0x48, 0xf1, 0x4a, 0xeb, 0x45, 0xe6, 0x16, 0x21, 0x75, 0xc2, 0x44, + 0x36, 0xf5, 0x54, 0x6b, 0x7e, 0xf1, 0x6c, 0xc9, 0xf8, 0xf2, 0xd9, 0x92, 0xf1, 0xef, 0x67, 0x4b, + 0xc6, 0xaf, 0x9e, 0x2f, 0x4d, 0x7c, 0xf9, 0x7c, 0x69, 0xe2, 0x1f, 0xcf, 0x97, 0x26, 0x1e, 0xad, + 0x4b, 0xff, 0xf4, 0x73, 0x48, 0xcb, 0x6a, 0x5d, 0xfc, 0x2d, 0xd5, 0xa7, 0xf2, 0x1f, 0x86, 0x0d, + 0x7a, 0x38, 0xd8, 0x9d, 0x81, 0xbf, 0x9c, 0xba, 0xfc, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe5, + 0x94, 0x94, 0xf3, 0x3c, 0x36, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -9495,6 +9503,13 @@ func (m *MsgEncounterCreate) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Image) > 0 { + i -= len(m.Image) + copy(dAtA[i:], m.Image) + i = encodeVarintTx(dAtA, i, uint64(len(m.Image))) + i-- + dAtA[i] = 0x22 + } if len(m.Parameters) > 0 { for k := range m.Parameters { v := m.Parameters[k] @@ -11006,6 +11021,10 @@ func (m *MsgEncounterCreate) Size() (n int) { n += mapEntrySize + 1 + sovTx(uint64(mapEntrySize)) } } + l = len(m.Image) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -19604,6 +19623,40 @@ func (m *MsgEncounterCreate) Unmarshal(dAtA []byte) error { } m.Parameters[mapkey] = mapvalue iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Image = append(m.Image[:0], dAtA[iNdEx:postIndex]...) + if m.Image == nil { + m.Image = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) From 76d8120ef8ebb48c5a7545aa9df7a004b8c00bf3 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Thu, 12 Dec 2024 04:06:36 +0100 Subject: [PATCH 11/20] feat(#237): Added incounter do content --- proto/cardchain/cardchain/tx.proto | 2 + .../keeper/msg_server_encounter_create.go | 2 + x/cardchain/keeper/msg_server_encounter_do.go | 28 +- x/cardchain/types/tx.pb.go | 444 +++++++++++------- 4 files changed, 303 insertions(+), 173 deletions(-) diff --git a/proto/cardchain/cardchain/tx.proto b/proto/cardchain/cardchain/tx.proto index 42b43861..9a0b0922 100644 --- a/proto/cardchain/cardchain/tx.proto +++ b/proto/cardchain/cardchain/tx.proto @@ -446,6 +446,7 @@ message MsgEncounterCreateResponse {} message MsgEncounterDo { string creator = 1; uint64 encounterId = 2; + string user = 3; } message MsgEncounterDoResponse {} @@ -453,6 +454,7 @@ message MsgEncounterDoResponse {} message MsgEncounterClose { string creator = 1; uint64 encounterId = 2; + string user = 3; } message MsgEncounterCloseResponse {} diff --git a/x/cardchain/keeper/msg_server_encounter_create.go b/x/cardchain/keeper/msg_server_encounter_create.go index 39f497b6..7f153aff 100644 --- a/x/cardchain/keeper/msg_server_encounter_create.go +++ b/x/cardchain/keeper/msg_server_encounter_create.go @@ -34,6 +34,8 @@ func (k msgServer) EncounterCreate(goCtx context.Context, msg *types.MsgEncounte k.Images.Set(ctx, imageId, &types.Image{Image: msg.Image}) k.Encounters.Set(ctx, id, &encounter) + // TODO: remove bought cards used for encounter from owned cards from that user (not drafts or permanents) + return &types.MsgEncounterCreateResponse{}, nil } diff --git a/x/cardchain/keeper/msg_server_encounter_do.go b/x/cardchain/keeper/msg_server_encounter_do.go index dd4bc61e..90c94b99 100644 --- a/x/cardchain/keeper/msg_server_encounter_do.go +++ b/x/cardchain/keeper/msg_server_encounter_do.go @@ -3,15 +3,39 @@ package keeper import ( "context" + sdkerrors "cosmossdk.io/errors" "github.com/DecentralCardGame/Cardchain/x/cardchain/types" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/group/errors" ) func (k msgServer) EncounterDo(goCtx context.Context, msg *types.MsgEncounterDo) (*types.MsgEncounterDoResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) - // TODO: Handling the message - _ = ctx + reporter, err := k.GetMsgCreator(ctx, msg) + if err != nil { + return nil, err + } + + if !reporter.ReportMatches { + return nil, sdkerrors.Wrap(errors.ErrUnauthorized, "unauthorized reporter") + } + + maxId := k.Encounters.GetNum(ctx) + if msg.EncounterId >= maxId { + return nil, sdkerrors.Wrap(types.ErrInvalidData, "encounter doesnt exist") + } + + // TODO: Treasury fee here + + user, err := k.GetUserFromString(ctx, msg.User) + if err != nil { + return nil, err + } + + user.OpenEncounters = append(user.OpenEncounters, msg.EncounterId) + + k.SetUserFromUser(ctx, user) return &types.MsgEncounterDoResponse{}, nil } diff --git a/x/cardchain/types/tx.pb.go b/x/cardchain/types/tx.pb.go index e4ce10ee..d135268e 100644 --- a/x/cardchain/types/tx.pb.go +++ b/x/cardchain/types/tx.pb.go @@ -4337,6 +4337,7 @@ var xxx_messageInfo_MsgEncounterCreateResponse proto.InternalMessageInfo type MsgEncounterDo struct { Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` EncounterId uint64 `protobuf:"varint,2,opt,name=encounterId,proto3" json:"encounterId,omitempty"` + User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` } func (m *MsgEncounterDo) Reset() { *m = MsgEncounterDo{} } @@ -4386,6 +4387,13 @@ func (m *MsgEncounterDo) GetEncounterId() uint64 { return 0 } +func (m *MsgEncounterDo) GetUser() string { + if m != nil { + return m.User + } + return "" +} + type MsgEncounterDoResponse struct { } @@ -4425,6 +4433,7 @@ var xxx_messageInfo_MsgEncounterDoResponse proto.InternalMessageInfo type MsgEncounterClose struct { Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` EncounterId uint64 `protobuf:"varint,2,opt,name=encounterId,proto3" json:"encounterId,omitempty"` + User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` } func (m *MsgEncounterClose) Reset() { *m = MsgEncounterClose{} } @@ -4474,6 +4483,13 @@ func (m *MsgEncounterClose) GetEncounterId() uint64 { return 0 } +func (m *MsgEncounterClose) GetUser() string { + if m != nil { + return m.User + } + return "" +} + type MsgEncounterCloseResponse struct { } @@ -4611,177 +4627,177 @@ func init() { func init() { proto.RegisterFile("cardchain/cardchain/tx.proto", fileDescriptor_3b4a3aba0ac94bc8) } var fileDescriptor_3b4a3aba0ac94bc8 = []byte{ - // 2711 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5b, 0xcf, 0x6f, 0x1c, 0xb7, - 0xf5, 0xd7, 0x68, 0x25, 0x59, 0xa2, 0x1c, 0xd9, 0x99, 0x28, 0xce, 0x7a, 0xe2, 0x48, 0xca, 0x7c, - 0x93, 0x7c, 0x7d, 0xe9, 0xaa, 0x96, 0x7f, 0x49, 0x76, 0x55, 0x67, 0x7f, 0xc8, 0x8e, 0xeb, 0x2a, - 0x76, 0x57, 0x4e, 0xd2, 0xb8, 0x41, 0x8b, 0xd1, 0x2c, 0xb5, 0x1a, 0x68, 0x77, 0xb8, 0xe5, 0xcc, - 0x4a, 0x59, 0x03, 0x05, 0x0a, 0x14, 0x28, 0x9a, 0xc2, 0x68, 0x8b, 0xa2, 0x05, 0x8a, 0x16, 0x28, - 0xdc, 0x43, 0x2f, 0x01, 0x7a, 0x2b, 0xd0, 0x7f, 0x21, 0xc7, 0x9c, 0x8a, 0xa2, 0x87, 0xb4, 0xb0, - 0x2f, 0xfd, 0x13, 0x7a, 0x2c, 0xe6, 0x91, 0xc3, 0x21, 0x67, 0x67, 0x47, 0xcb, 0x91, 0x81, 0x00, - 0x59, 0x72, 0xf8, 0x79, 0xef, 0x91, 0x7c, 0xe4, 0x7b, 0x8f, 0x1f, 0x0b, 0x5d, 0x70, 0x1d, 0xda, - 0x72, 0xf7, 0x1d, 0xcf, 0x5f, 0x4d, 0x7e, 0x85, 0x9f, 0x56, 0x7a, 0x94, 0x84, 0xc4, 0x7c, 0xbb, - 0x81, 0x5d, 0xec, 0x87, 0xd4, 0xe9, 0xd4, 0x1d, 0xda, 0xba, 0xe3, 0x74, 0x71, 0x45, 0x8c, 0x4a, - 0x7e, 0x59, 0x8b, 0x6d, 0xd2, 0x26, 0x80, 0x58, 0x8d, 0x7e, 0x31, 0xb0, 0xf5, 0x66, 0x96, 0x68, - 0x97, 0xf4, 0x7d, 0xd7, 0xeb, 0xf0, 0x21, 0xcb, 0x59, 0x43, 0xba, 0x4e, 0xe8, 0xee, 0xf3, 0x01, - 0x2b, 0x59, 0x03, 0x0e, 0x49, 0xe8, 0xf9, 0x6d, 0x3e, 0x62, 0x29, 0x53, 0x8b, 0x43, 0x5b, 0xe2, - 0x3b, 0x09, 0xba, 0x24, 0x58, 0xdd, 0x75, 0x02, 0xbc, 0x7a, 0x78, 0x69, 0x17, 0x87, 0xce, 0xa5, - 0x55, 0x97, 0x78, 0x3e, 0xfb, 0x6e, 0x7f, 0x8c, 0x5e, 0xda, 0x0e, 0xda, 0x75, 0x8a, 0x9d, 0x10, - 0xf7, 0x03, 0x4c, 0xcd, 0x32, 0x3a, 0xe5, 0x46, 0x2d, 0x42, 0xcb, 0xc6, 0x8a, 0x71, 0x71, 0xae, - 0x19, 0x37, 0xa3, 0x2f, 0x3e, 0x3e, 0xfa, 0x20, 0xc0, 0xb4, 0x3c, 0xc9, 0xbe, 0xf0, 0xa6, 0xb9, - 0x88, 0xa6, 0x9d, 0x8e, 0xe7, 0x04, 0xe5, 0x12, 0xf4, 0xb3, 0x86, 0xfd, 0x1a, 0x7a, 0x55, 0x11, - 0xdd, 0xc4, 0x41, 0x8f, 0xf8, 0x01, 0xb6, 0x7f, 0x63, 0xa0, 0xb3, 0xdb, 0x41, 0xbb, 0xd6, 0x1f, - 0x44, 0xcb, 0xba, 0xe3, 0xee, 0xe3, 0x2e, 0xce, 0xd1, 0xfb, 0x09, 0x2a, 0xed, 0x7a, 0x2d, 0xd0, - 0x39, 0xbf, 0x76, 0xbe, 0xc2, 0x26, 0x54, 0x89, 0x26, 0x54, 0xe1, 0x13, 0xaa, 0xd4, 0x89, 0xe7, - 0xd7, 0x56, 0xbf, 0xf8, 0x6a, 0x79, 0xe2, 0xf3, 0x7f, 0x2d, 0xff, 0x7f, 0xdb, 0x0b, 0xf7, 0xfb, - 0xbb, 0x15, 0x97, 0x74, 0x57, 0xf9, 0xec, 0xd9, 0xff, 0xbe, 0x16, 0xb4, 0x0e, 0x56, 0xc3, 0x41, - 0x0f, 0x07, 0x00, 0x68, 0x46, 0x62, 0x6f, 0xcc, 0xfe, 0xec, 0xe9, 0xf2, 0xc4, 0x7f, 0x9e, 0x2e, - 0x4f, 0xd8, 0x6b, 0xa8, 0x9c, 0xb6, 0x2a, 0x36, 0xd9, 0x3c, 0x87, 0x66, 0xa2, 0x45, 0xbd, 0xdb, - 0x02, 0xe3, 0xa6, 0x9a, 0xbc, 0x65, 0x3f, 0x31, 0xd0, 0xfc, 0x76, 0xd0, 0xfe, 0x90, 0x84, 0x38, - 0x42, 0xe5, 0xcc, 0x22, 0x91, 0x30, 0x29, 0x4b, 0x30, 0xef, 0xa1, 0xd9, 0x43, 0x12, 0xe2, 0x87, - 0x83, 0x1e, 0x86, 0xe5, 0x5b, 0x58, 0x5b, 0xad, 0x8c, 0xe5, 0x76, 0x95, 0x0f, 0x39, 0xac, 0x29, - 0x04, 0xd8, 0x9b, 0xe8, 0x15, 0xc9, 0x1a, 0x61, 0xfd, 0x3b, 0x68, 0xc1, 0xf1, 0x68, 0x8b, 0x92, - 0x5e, 0xbd, 0xe3, 0x78, 0x5d, 0xcc, 0x66, 0x31, 0xdb, 0x4c, 0xf5, 0xda, 0x7f, 0x35, 0x90, 0xb9, - 0x1d, 0xb4, 0x77, 0x9c, 0x43, 0xc0, 0xd7, 0x89, 0x1f, 0x62, 0x3f, 0x2c, 0x30, 0xa9, 0x08, 0xc1, - 0xc0, 0x30, 0xa7, 0xd3, 0xcd, 0xb8, 0x19, 0xb9, 0x8a, 0x4f, 0x42, 0x1c, 0x94, 0xa7, 0x98, 0xab, - 0x40, 0x23, 0x92, 0xe3, 0xd0, 0xd0, 0x0b, 0xc2, 0xf2, 0x34, 0x74, 0xf3, 0x96, 0xf9, 0x16, 0x7a, - 0x69, 0xd7, 0xe9, 0x38, 0xbe, 0x8b, 0xab, 0xbe, 0xbb, 0x4f, 0x68, 0x79, 0x06, 0xec, 0x56, 0x3b, - 0xed, 0x06, 0xb2, 0x86, 0xad, 0xd6, 0x9e, 0xfc, 0x0f, 0xd0, 0x99, 0xed, 0xa0, 0xfd, 0x90, 0x3a, - 0x7e, 0xb0, 0x87, 0x69, 0xc1, 0xdd, 0xb4, 0xd0, 0x2c, 0xc5, 0x2e, 0xf6, 0x0e, 0x31, 0xe5, 0x33, - 0x14, 0x6d, 0xfb, 0x3c, 0x7a, 0x2d, 0xa5, 0x40, 0x9c, 0x88, 0x27, 0x06, 0x28, 0x6f, 0x10, 0xdf, - 0x09, 0xf1, 0x43, 0x52, 0x50, 0xf9, 0x1d, 0x34, 0xe3, 0x74, 0x49, 0x9f, 0x2f, 0xfa, 0x1c, 0x3b, - 0x10, 0xff, 0xfc, 0x6a, 0xfc, 0x03, 0xc1, 0xe1, 0xdc, 0x52, 0xd9, 0x1a, 0x61, 0xe9, 0x0f, 0xe1, - 0xbe, 0xa8, 0xb6, 0x5a, 0x55, 0x1a, 0x1e, 0x11, 0x7a, 0x50, 0xc0, 0xcc, 0x45, 0x34, 0xed, 0x75, - 0x9d, 0x36, 0xe6, 0xae, 0xc1, 0x1a, 0x91, 0x9c, 0xbd, 0x7e, 0xa7, 0x53, 0xa5, 0x21, 0x2c, 0xdc, - 0x6c, 0x33, 0x6e, 0xf2, 0x7b, 0x24, 0x51, 0x29, 0x6c, 0xf9, 0x1e, 0x2c, 0x5a, 0x7d, 0xdf, 0xf1, - 0xdb, 0xb8, 0xca, 0x1c, 0xe6, 0x78, 0x6b, 0x1a, 0x8a, 0x35, 0x0d, 0xc9, 0xf5, 0x4a, 0xb2, 0xeb, - 0xf1, 0x35, 0x90, 0x85, 0x0b, 0xbd, 0x97, 0xc0, 0xa0, 0x26, 0x6e, 0x7b, 0x41, 0x88, 0xe9, 0x6d, - 0x42, 0xeb, 0xec, 0x56, 0x1f, 0xad, 0xdd, 0x5e, 0x46, 0x6f, 0x64, 0x42, 0x84, 0xcc, 0xbf, 0x1b, - 0x68, 0x01, 0x46, 0xf4, 0x08, 0x0d, 0xb7, 0xa3, 0x10, 0x90, 0x7f, 0x13, 0x43, 0x94, 0x10, 0x4b, - 0x1b, 0x37, 0x4d, 0x1b, 0x9d, 0xee, 0x75, 0x9c, 0x01, 0x6e, 0x45, 0x9b, 0x16, 0x54, 0xcb, 0xa5, - 0x95, 0xd2, 0xc5, 0xa9, 0xa6, 0xd2, 0x97, 0x1a, 0x53, 0x2b, 0x4f, 0x0d, 0x8d, 0xa9, 0x99, 0xef, - 0xa1, 0x53, 0xa4, 0x1f, 0xba, 0xa4, 0x8b, 0xe1, 0x44, 0x2e, 0xac, 0x55, 0xc6, 0xbc, 0x94, 0xee, - 0x33, 0x54, 0x33, 0x86, 0xdb, 0x6b, 0xe8, 0x9c, 0x3a, 0x2f, 0x71, 0x30, 0xa5, 0x59, 0x18, 0xca, - 0x2c, 0xec, 0xf7, 0x01, 0x53, 0xed, 0x11, 0xcf, 0x8f, 0x31, 0x11, 0x3c, 0x37, 0x3a, 0xc1, 0xc9, - 0x63, 0xa3, 0x78, 0x78, 0x12, 0x6d, 0x7b, 0x05, 0x2d, 0x65, 0xcb, 0x13, 0xcb, 0xff, 0x7b, 0x03, - 0x9d, 0x16, 0xc1, 0x6a, 0x07, 0xe7, 0x39, 0x92, 0x89, 0xa6, 0x7c, 0xa7, 0x8b, 0xb9, 0x12, 0xf8, - 0x3d, 0xca, 0x89, 0xcc, 0x15, 0x34, 0x1f, 0x84, 0x84, 0x0e, 0x3e, 0xa2, 0x5e, 0x28, 0x6e, 0x04, - 0xb9, 0x2b, 0xda, 0x8c, 0xe8, 0x6a, 0xa4, 0xde, 0x6e, 0x3f, 0x24, 0x34, 0x28, 0x4f, 0xaf, 0x94, - 0x2e, 0xce, 0x35, 0x95, 0x3e, 0xfb, 0x1c, 0x5a, 0x94, 0x6d, 0x13, 0x46, 0x7f, 0x0c, 0xfe, 0x5f, - 0x6d, 0xc1, 0xa6, 0x3d, 0x24, 0xf9, 0x66, 0x2f, 0xa2, 0xe9, 0x00, 0x87, 0xc2, 0x63, 0x58, 0x43, - 0x3a, 0xa3, 0x25, 0x25, 0xae, 0x31, 0xef, 0x97, 0x45, 0x0b, 0xad, 0xef, 0x82, 0xa3, 0xde, 0xf6, - 0x7c, 0xa7, 0xe3, 0x3d, 0xc6, 0x05, 0x94, 0xda, 0x65, 0xd8, 0x5e, 0x49, 0x82, 0x90, 0x5d, 0x47, - 0x2f, 0xb3, 0x10, 0x5c, 0x23, 0x24, 0x3a, 0x28, 0x0f, 0x1c, 0xf7, 0x40, 0x5b, 0x7c, 0x1d, 0x9d, - 0x1f, 0x12, 0xa2, 0x1d, 0x0d, 0xbe, 0x0f, 0x6b, 0xde, 0xc4, 0x5d, 0xc2, 0xa2, 0xca, 0x6d, 0x4a, - 0xba, 0x2f, 0x72, 0x81, 0x97, 0xd0, 0x85, 0x2c, 0xf9, 0x62, 0x25, 0x1c, 0xf4, 0x7a, 0xf2, 0x3d, - 0x71, 0x86, 0xa2, 0x66, 0x98, 0x68, 0x2a, 0x4a, 0xc1, 0xb8, 0x7b, 0xc2, 0x6f, 0xfb, 0x6d, 0xf4, - 0x7f, 0x39, 0x2a, 0x84, 0x25, 0x9f, 0xb0, 0xc3, 0xd8, 0x6a, 0x49, 0x63, 0x8a, 0x39, 0x5b, 0x96, - 0x11, 0xfc, 0x68, 0x0e, 0x4b, 0x17, 0xfa, 0x3f, 0x63, 0x49, 0x49, 0xec, 0xfe, 0x9d, 0xce, 0xfd, - 0xbd, 0xbd, 0xdc, 0x9b, 0xc0, 0x44, 0x53, 0xd1, 0x22, 0x73, 0xdd, 0xf0, 0xdb, 0xdc, 0x42, 0xd3, - 0x3d, 0xea, 0xb9, 0xb8, 0x68, 0x64, 0x64, 0x68, 0xfb, 0x02, 0x64, 0x1a, 0x29, 0x53, 0x84, 0xa5, - 0xef, 0x21, 0x94, 0x24, 0x90, 0x39, 0x06, 0x46, 0xb7, 0x42, 0x0c, 0x16, 0x6b, 0x24, 0x77, 0xd9, - 0x8b, 0x30, 0x65, 0x2e, 0x49, 0xc8, 0x7f, 0x00, 0xbd, 0x6c, 0xc3, 0xc6, 0x59, 0x88, 0xe3, 0xf5, - 0xb0, 0xf9, 0xa4, 0x24, 0x0a, 0x7d, 0x8f, 0x40, 0x5f, 0x12, 0x78, 0x8b, 0xed, 0x7a, 0x66, 0xb8, - 0xe7, 0x9a, 0x53, 0xb2, 0x85, 0xe6, 0xef, 0x42, 0x81, 0x50, 0x6d, 0xb5, 0x76, 0xa2, 0xab, 0xb2, - 0xb0, 0x5e, 0xb8, 0x68, 0xe3, 0xa2, 0x04, 0x1a, 0xb6, 0x05, 0x49, 0xbe, 0x22, 0x59, 0x68, 0xfd, - 0x33, 0xab, 0x4b, 0x76, 0x70, 0x08, 0xcb, 0xee, 0x50, 0x2f, 0x1c, 0x14, 0xcb, 0x6f, 0x98, 0x39, - 0x25, 0xd9, 0x9c, 0xbb, 0x68, 0x86, 0x82, 0x44, 0x88, 0x02, 0x0b, 0x6b, 0x97, 0xc6, 0x0c, 0xa8, - 0x89, 0x29, 0x4d, 0x2e, 0x80, 0xcf, 0x41, 0x31, 0x53, 0xcc, 0xa1, 0x01, 0x53, 0x60, 0x1e, 0x7a, - 0x6c, 0x5a, 0x32, 0x6a, 0x0a, 0x5c, 0x83, 0x22, 0x45, 0x68, 0xf8, 0x85, 0xc1, 0x3e, 0x92, 0x6e, - 0xd7, 0x0b, 0x53, 0x1f, 0x8f, 0x8b, 0xcf, 0x6c, 0x54, 0x12, 0x9f, 0x39, 0xea, 0x02, 0x9a, 0xe3, - 0x85, 0xb1, 0x58, 0xb5, 0xa4, 0xc3, 0x5c, 0x42, 0x28, 0xe8, 0xb7, 0xdb, 0x38, 0x08, 0x3d, 0xe2, - 0xf3, 0x18, 0x2a, 0xf5, 0xd8, 0x36, 0x5a, 0x19, 0x65, 0x8f, 0x30, 0xfa, 0x6f, 0xcc, 0xe8, 0x26, - 0x3e, 0xc4, 0x4e, 0x67, 0x7c, 0xa3, 0xef, 0xa5, 0x8c, 0x1e, 0xbf, 0x38, 0x13, 0x16, 0x24, 0xb3, - 0x3c, 0x87, 0x66, 0x02, 0xec, 0x52, 0x2c, 0x92, 0x04, 0xd6, 0x52, 0x67, 0x3f, 0x95, 0x9a, 0x3d, - 0x9f, 0x5d, 0xa6, 0xe1, 0x62, 0x76, 0xf7, 0x20, 0x6c, 0x36, 0x71, 0x10, 0x3a, 0x34, 0x3c, 0x7e, - 0xd7, 0x15, 0x85, 0x93, 0x69, 0x85, 0xaf, 0x43, 0xf8, 0x54, 0x85, 0x09, 0x4d, 0xeb, 0x3c, 0x6c, - 0x1d, 0x91, 0x83, 0xc4, 0x31, 0xa2, 0xa4, 0x96, 0x3a, 0xd1, 0x5e, 0xe4, 0x64, 0xc0, 0xef, 0xa0, - 0xb7, 0xf2, 0x90, 0x42, 0xc3, 0x33, 0x56, 0x0a, 0xd5, 0x89, 0xbf, 0xe7, 0xd1, 0x6e, 0xf1, 0x4c, - 0x58, 0xca, 0x60, 0x4b, 0x27, 0xca, 0x60, 0xcd, 0xef, 0x20, 0x14, 0x15, 0xd8, 0x2c, 0x35, 0x86, - 0x6c, 0x79, 0x7e, 0xec, 0xd3, 0xbb, 0xe3, 0xf9, 0xed, 0x0e, 0x8e, 0x0a, 0xf2, 0xa6, 0x24, 0x24, - 0x2e, 0x2e, 0xa4, 0x39, 0x8a, 0xf9, 0x6f, 0xc1, 0x5e, 0xee, 0xe0, 0xf0, 0x01, 0x25, 0x7b, 0x5e, - 0xa7, 0xe0, 0xb3, 0x02, 0xdf, 0x45, 0x55, 0x8c, 0xd0, 0xf1, 0x10, 0x2e, 0xf6, 0xfb, 0x3d, 0xec, - 0x8f, 0x97, 0x67, 0x45, 0x65, 0x78, 0x32, 0x50, 0xe8, 0x52, 0x3b, 0xed, 0x6b, 0x70, 0xa5, 0xa7, - 0xa4, 0x2a, 0x87, 0x0c, 0x4c, 0x0b, 0xca, 0x06, 0x14, 0x1c, 0x71, 0xd3, 0x0e, 0x21, 0xc1, 0x88, - 0xeb, 0xe2, 0x17, 0x68, 0x91, 0x52, 0x8d, 0x97, 0x52, 0xd5, 0x38, 0x4b, 0x3c, 0x32, 0xb4, 0x8a, - 0x55, 0xda, 0x87, 0x14, 0x70, 0x07, 0x87, 0xd1, 0x7f, 0x52, 0xca, 0xae, 0x1b, 0x88, 0x52, 0x45, - 0x40, 0x69, 0xa8, 0x08, 0xe0, 0xc9, 0xe0, 0x90, 0xa6, 0x54, 0xa2, 0xcf, 0xbe, 0x1f, 0x5b, 0xe8, - 0x8e, 0xcc, 0x43, 0x73, 0xca, 0x5c, 0x59, 0xb4, 0xd0, 0x7a, 0x27, 0xf6, 0xc4, 0x0f, 0x02, 0x4c, - 0x3f, 0xc2, 0xbb, 0x81, 0x17, 0xe2, 0xfc, 0xa3, 0x78, 0xc4, 0x06, 0xc5, 0xcf, 0x83, 0xbc, 0x99, - 0xf8, 0xa2, 0x24, 0x48, 0x68, 0xd9, 0x86, 0x27, 0x2b, 0xfe, 0xb1, 0xe6, 0x91, 0x36, 0x75, 0x7a, - 0xfb, 0x83, 0xfc, 0xdb, 0x6b, 0x37, 0x1e, 0xc6, 0x35, 0x25, 0x1d, 0xf6, 0x1b, 0x90, 0x37, 0xa7, - 0xc5, 0x09, 0x6d, 0x7d, 0x08, 0x8f, 0xdb, 0xfd, 0x4e, 0xe8, 0x8d, 0xf1, 0x66, 0x77, 0x07, 0x4d, - 0x1f, 0xc2, 0x63, 0xd5, 0x64, 0xd1, 0x43, 0xcf, 0xf0, 0x3c, 0x9e, 0x2a, 0x6a, 0x85, 0x49, 0x4f, - 0x59, 0xe9, 0x19, 0x9d, 0x9b, 0x31, 0x6e, 0x3b, 0xa8, 0xd2, 0x69, 0x35, 0x5e, 0x62, 0xde, 0x4c, - 0xbe, 0xd4, 0xf8, 0xfe, 0xc6, 0xcd, 0xc8, 0xfb, 0xf8, 0xa0, 0x06, 0x76, 0x0f, 0x78, 0xb1, 0x2f, - 0x77, 0x25, 0x23, 0x6a, 0x30, 0x62, 0x5a, 0x1e, 0x01, 0x5d, 0xf6, 0xd7, 0xe1, 0x24, 0x08, 0x0b, - 0xc7, 0xa8, 0xe0, 0x77, 0xe0, 0x99, 0x88, 0xb9, 0xd5, 0xfb, 0x4e, 0xee, 0xf3, 0xee, 0xc8, 0x5a, - 0x01, 0xaa, 0xec, 0x52, 0x52, 0x65, 0xf3, 0x87, 0xa0, 0x44, 0x68, 0xaa, 0x24, 0xe5, 0x6f, 0x35, - 0x1d, 0xcf, 0x09, 0xf2, 0xd5, 0xb1, 0xb7, 0xea, 0x49, 0xf9, 0xad, 0x9a, 0x95, 0xa4, 0x92, 0x04, - 0x29, 0xa1, 0x8a, 0xe6, 0x7e, 0xd7, 0x3f, 0xf4, 0x42, 0xbc, 0xe5, 0xd0, 0xce, 0xa0, 0xea, 0xba, - 0x38, 0x08, 0xf2, 0xeb, 0x8f, 0x7e, 0xf2, 0x48, 0xce, 0xca, 0x1c, 0x76, 0xc2, 0x87, 0xa4, 0x48, - 0x67, 0x0d, 0x5e, 0xdc, 0xbc, 0xc0, 0x3b, 0xa1, 0xa2, 0x37, 0xd1, 0xf2, 0x08, 0x41, 0x42, 0xd7, - 0xb7, 0xd9, 0x5c, 0x89, 0xef, 0x63, 0x37, 0x7c, 0x84, 0x1d, 0x18, 0x40, 0xfa, 0xb9, 0x0f, 0xbd, - 0x65, 0x74, 0xea, 0x71, 0x34, 0x92, 0x6f, 0xd3, 0x5c, 0x33, 0x6e, 0xf2, 0x7b, 0x34, 0x43, 0x9a, - 0xd0, 0xf7, 0xf3, 0x49, 0x08, 0x37, 0x5b, 0x3e, 0x74, 0x63, 0xca, 0xd2, 0xca, 0xfc, 0x54, 0xb1, - 0x41, 0x9d, 0xa3, 0x4e, 0x74, 0x5b, 0x4d, 0x82, 0x37, 0x8a, 0xb6, 0xe9, 0x21, 0xd4, 0x73, 0xa8, - 0xd3, 0xc5, 0x21, 0xa6, 0x01, 0x3c, 0x6f, 0xcd, 0xaf, 0xdd, 0x1d, 0xf3, 0x5c, 0x0e, 0x1b, 0x51, - 0x79, 0x20, 0x64, 0x6d, 0xf9, 0x21, 0x1d, 0x34, 0x25, 0xe1, 0x49, 0xe1, 0x32, 0x25, 0x15, 0x2e, - 0xd6, 0x26, 0x3a, 0x93, 0x02, 0x99, 0x67, 0x51, 0xe9, 0x00, 0x0f, 0xf8, 0x2c, 0xa2, 0x9f, 0x11, - 0xf4, 0xd0, 0xe9, 0xf4, 0xe3, 0x9b, 0x90, 0x35, 0x6e, 0x4c, 0xae, 0x1b, 0xbc, 0xee, 0x49, 0x99, - 0x21, 0x6d, 0xcd, 0x82, 0xfc, 0xb5, 0x41, 0xf2, 0xab, 0x3b, 0x1c, 0x0f, 0x4c, 0xaa, 0x3b, 0xa9, - 0x8b, 0x3b, 0xb5, 0x24, 0x4d, 0xe8, 0xb9, 0x0f, 0x57, 0x7b, 0x62, 0x45, 0x87, 0xe4, 0xa6, 0xc1, - 0xc7, 0xab, 0x62, 0x57, 0xbc, 0x2a, 0x30, 0xd6, 0xb6, 0xf6, 0xdf, 0x2b, 0xa8, 0xb4, 0x1d, 0xb4, - 0xcd, 0x1f, 0x1b, 0x08, 0x49, 0x4c, 0xd3, 0x95, 0xf1, 0xb7, 0x2d, 0x41, 0x59, 0xdf, 0x28, 0x82, - 0x12, 0x37, 0xd6, 0x67, 0x06, 0x7a, 0x49, 0xe5, 0x9d, 0xae, 0x8f, 0x2f, 0x4f, 0x01, 0x5a, 0xb7, - 0x0a, 0x02, 0x85, 0x2d, 0x8f, 0xd1, 0xac, 0x88, 0x41, 0x6b, 0xe3, 0x0b, 0x8b, 0x31, 0xd6, 0x0d, - 0x7d, 0x8c, 0xd0, 0xfd, 0x4b, 0x03, 0x9d, 0x49, 0xd3, 0x3c, 0x1b, 0xe3, 0xcb, 0x4b, 0x41, 0xad, - 0x6a, 0x61, 0xa8, 0xb0, 0xe8, 0xa7, 0x06, 0x3a, 0xad, 0x90, 0x2f, 0xd7, 0xc6, 0x97, 0x29, 0xe3, - 0xac, 0x6f, 0x16, 0xc3, 0x29, 0x86, 0x28, 0x44, 0x8c, 0x86, 0x21, 0x32, 0x4e, 0xc7, 0x90, 0x2c, - 0xaa, 0x05, 0x8e, 0x8b, 0x44, 0xb4, 0x68, 0x1c, 0x97, 0x04, 0xa5, 0x73, 0x5c, 0x86, 0x19, 0x16, - 0x58, 0x0b, 0x85, 0x5f, 0xd1, 0x58, 0x0b, 0x19, 0xa7, 0xb3, 0x16, 0x59, 0x94, 0x8b, 0xf9, 0x3b, - 0x03, 0x99, 0x19, 0x84, 0x8b, 0xc6, 0xec, 0x86, 0xd1, 0x56, 0xe3, 0x24, 0x68, 0x61, 0xda, 0x4f, - 0x0c, 0x34, 0x2f, 0xd3, 0x36, 0x57, 0x75, 0xa4, 0x0a, 0x98, 0xb5, 0x59, 0x08, 0x26, 0xac, 0xf8, - 0x83, 0x81, 0x5e, 0xc9, 0x22, 0x4c, 0x34, 0xc4, 0x66, 0xc0, 0xad, 0xad, 0x13, 0xc1, 0x85, 0x75, - 0x3f, 0x42, 0x73, 0x09, 0xb5, 0x72, 0x59, 0xf7, 0x06, 0xdf, 0xc1, 0xa1, 0x75, 0xb3, 0x00, 0x48, - 0x71, 0x63, 0x85, 0x26, 0xb9, 0xa6, 0x75, 0x2a, 0x04, 0x4e, 0xc7, 0x8d, 0xb3, 0xb8, 0x13, 0xf0, - 0x15, 0x99, 0x39, 0xd1, 0xf0, 0x15, 0x09, 0xa6, 0xe3, 0x2b, 0x19, 0x2c, 0x8b, 0xf9, 0xc4, 0x40, - 0x0b, 0x29, 0x8e, 0x65, 0x5d, 0x2b, 0x98, 0x49, 0x48, 0xeb, 0xdd, 0xa2, 0x48, 0x61, 0xce, 0x6f, - 0x0d, 0xf4, 0xf2, 0x30, 0xd1, 0x72, 0x53, 0xe7, 0x3c, 0xa4, 0xc0, 0x56, 0xfd, 0x04, 0x60, 0x61, - 0xd7, 0xe7, 0x06, 0x2a, 0x8f, 0x24, 0x60, 0x6a, 0xda, 0x1a, 0x86, 0x64, 0x58, 0xdf, 0x3a, 0xb9, - 0x0c, 0xf5, 0xfc, 0x67, 0x70, 0x34, 0x9b, 0x7a, 0x1e, 0x9b, 0x82, 0x6b, 0x9d, 0xff, 0xd1, 0x1c, - 0x0e, 0xa4, 0x1b, 0x69, 0x02, 0x67, 0x43, 0xff, 0x44, 0x73, 0xa8, 0x4e, 0xba, 0x31, 0x82, 0xab, - 0x31, 0x8f, 0xd0, 0xa9, 0x98, 0xa8, 0xb9, 0xa4, 0x9d, 0xc8, 0x59, 0x1b, 0xda, 0x10, 0x65, 0x29, - 0xd2, 0x14, 0xce, 0x86, 0xae, 0x23, 0x14, 0x5a, 0x8a, 0x11, 0x34, 0x0f, 0x58, 0x94, 0x26, 0x79, - 0x36, 0x8a, 0xa4, 0x0d, 0xcc, 0x65, 0xaa, 0x85, 0xa1, 0x4a, 0x96, 0xae, 0x92, 0x3f, 0xd7, 0xb5, - 0x84, 0x26, 0x40, 0x9d, 0x2c, 0x3d, 0x93, 0x14, 0x02, 0x5b, 0x54, 0x46, 0x48, 0xc3, 0x16, 0x05, - 0xa8, 0x63, 0x4b, 0x26, 0xb9, 0x03, 0xb6, 0xa8, 0xd4, 0xce, 0x75, 0xdd, 0x93, 0x10, 0xe7, 0x3e, - 0xb7, 0x0a, 0x02, 0x85, 0x2d, 0x7f, 0x32, 0xd0, 0xab, 0xd9, 0x1c, 0x90, 0x8e, 0xe8, 0x2c, 0x01, - 0xd6, 0x9d, 0x13, 0x0a, 0x50, 0x6c, 0xcc, 0xa6, 0x7c, 0x6e, 0xe9, 0x1c, 0x9b, 0x0c, 0x01, 0x3a, - 0x36, 0xe6, 0x72, 0x37, 0x10, 0x8c, 0x53, 0xcc, 0xcd, 0xba, 0x8e, 0x6c, 0x19, 0xa9, 0x13, 0x8c, - 0xb3, 0x09, 0x1e, 0xf3, 0x2f, 0x06, 0x3a, 0x3f, 0x9a, 0xde, 0xd1, 0x8a, 0xab, 0x23, 0x84, 0x58, - 0xf7, 0x5e, 0x80, 0x10, 0xb5, 0x42, 0x91, 0xb9, 0x22, 0x9d, 0x0a, 0x45, 0xc2, 0x69, 0x55, 0x28, - 0x19, 0xbc, 0x0d, 0xec, 0x63, 0x8a, 0xb5, 0x59, 0xd7, 0x3a, 0xef, 0x12, 0x52, 0x67, 0x1f, 0xb3, - 0x29, 0x1e, 0xb8, 0xd4, 0xd3, 0x04, 0x8f, 0xc6, 0xa5, 0x9e, 0x82, 0xea, 0x5c, 0xea, 0xa3, 0x08, - 0xa0, 0x28, 0x43, 0xc9, 0x22, 0x79, 0x36, 0xf5, 0xeb, 0x75, 0xd9, 0xb2, 0xad, 0x13, 0xc1, 0x95, - 0x24, 0x74, 0x98, 0xea, 0xb9, 0xa9, 0xb5, 0x0f, 0x2a, 0x58, 0x27, 0x09, 0x1d, 0x49, 0xfd, 0x80, - 0x7f, 0x2b, 0xc4, 0xcf, 0x35, 0x5d, 0xa9, 0xfa, 0x15, 0x78, 0x16, 0x1b, 0x14, 0xfb, 0xb7, 0xcc, - 0x05, 0xe9, 0xf9, 0xb7, 0x84, 0xd4, 0xf4, 0xef, 0x0c, 0xda, 0xc8, 0xfc, 0xb5, 0x81, 0xce, 0x0e, - 0x91, 0x46, 0x37, 0xb4, 0xc5, 0x0a, 0xac, 0x55, 0x2b, 0x8e, 0x55, 0xe2, 0xb3, 0xca, 0x2d, 0x69, - 0xc4, 0x67, 0x05, 0xa8, 0x13, 0x9f, 0x33, 0x69, 0xa5, 0xa8, 0xe4, 0x4e, 0x28, 0xa5, 0xcb, 0x7a, - 0xc7, 0x97, 0xdd, 0x88, 0x37, 0x0b, 0x80, 0x94, 0xc7, 0x2b, 0x89, 0xfe, 0xb9, 0xa2, 0xeb, 0x7d, - 0x11, 0x4a, 0xe7, 0xf1, 0x6a, 0x98, 0x15, 0x82, 0x62, 0x5b, 0xe6, 0x84, 0xae, 0x6a, 0xbf, 0x41, - 0x45, 0x30, 0x9d, 0x62, 0x3b, 0x83, 0x3f, 0x82, 0x8b, 0x65, 0x98, 0x3d, 0xd2, 0x58, 0xdb, 0x21, - 0xb0, 0xce, 0xc5, 0x32, 0x92, 0x71, 0x32, 0xff, 0x68, 0xa0, 0xc5, 0x4c, 0xbe, 0x49, 0xe7, 0xd9, - 0x32, 0x03, 0x6f, 0xdd, 0x3e, 0x19, 0x5e, 0x89, 0x17, 0x59, 0x24, 0xd5, 0xa6, 0x56, 0xa0, 0x4e, - 0xc3, 0x75, 0xe2, 0x45, 0x0e, 0xa9, 0x05, 0xf1, 0x35, 0xcd, 0x68, 0x6d, 0x14, 0xe6, 0xa1, 0x74, - 0xe2, 0xeb, 0x08, 0xee, 0x08, 0xdc, 0x5d, 0x66, 0x8e, 0xae, 0x16, 0x10, 0xd9, 0x20, 0x3a, 0xee, - 0x9e, 0xc1, 0x2c, 0x41, 0x98, 0x48, 0xf1, 0x4a, 0xeb, 0x45, 0xe6, 0x16, 0x21, 0x75, 0xc2, 0x44, - 0x36, 0xf5, 0x54, 0x6b, 0x7e, 0xf1, 0x6c, 0xc9, 0xf8, 0xf2, 0xd9, 0x92, 0xf1, 0xef, 0x67, 0x4b, - 0xc6, 0xaf, 0x9e, 0x2f, 0x4d, 0x7c, 0xf9, 0x7c, 0x69, 0xe2, 0x1f, 0xcf, 0x97, 0x26, 0x1e, 0xad, - 0x4b, 0xff, 0xf4, 0x73, 0x48, 0xcb, 0x6a, 0x5d, 0xfc, 0x2d, 0xd5, 0xa7, 0xf2, 0x1f, 0x86, 0x0d, - 0x7a, 0x38, 0xd8, 0x9d, 0x81, 0xbf, 0x9c, 0xba, 0xfc, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe5, - 0x94, 0x94, 0xf3, 0x3c, 0x36, 0x00, 0x00, + // 2714 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5b, 0x5f, 0x6f, 0x1d, 0x47, + 0x15, 0xf7, 0xfa, 0xda, 0x8e, 0x3d, 0x4e, 0xdd, 0x74, 0xeb, 0xa6, 0x37, 0xdb, 0xd4, 0x76, 0x97, + 0xb6, 0xe4, 0x85, 0x6b, 0xe2, 0xfc, 0xb3, 0x13, 0x4c, 0x7a, 0xff, 0x38, 0x69, 0x08, 0x6e, 0xc2, + 0x75, 0xda, 0xd2, 0x50, 0x01, 0xeb, 0xbd, 0xe3, 0xeb, 0x95, 0xef, 0xdd, 0xb9, 0xcc, 0xee, 0xb5, + 0x7b, 0x23, 0x21, 0x21, 0x21, 0x21, 0x8a, 0x22, 0x40, 0x08, 0x24, 0x04, 0x12, 0x0a, 0x0f, 0xbc, + 0x54, 0xe2, 0x0d, 0x89, 0xaf, 0xd0, 0xc7, 0x3e, 0x21, 0xc4, 0x43, 0x41, 0xc9, 0x0b, 0x1f, 0x81, + 0x47, 0xb4, 0x67, 0x66, 0x67, 0x67, 0xf6, 0xee, 0x5d, 0xdf, 0x59, 0x47, 0xaa, 0xd4, 0x3b, 0xb3, + 0xf3, 0x3b, 0xe7, 0xcc, 0xcc, 0x99, 0x39, 0xe7, 0xcc, 0x2f, 0x46, 0xe7, 0x5d, 0x87, 0xb6, 0xdc, + 0x7d, 0xc7, 0xf3, 0x57, 0x93, 0x5f, 0xe1, 0x27, 0x95, 0x1e, 0x25, 0x21, 0x31, 0xdf, 0x6a, 0x60, + 0x17, 0xfb, 0x21, 0x75, 0x3a, 0x75, 0x87, 0xb6, 0x6e, 0x3b, 0x5d, 0x5c, 0x11, 0xa3, 0x92, 0x5f, + 0xd6, 0x62, 0x9b, 0xb4, 0x09, 0x20, 0x56, 0xa3, 0x5f, 0x0c, 0x6c, 0xbd, 0x91, 0x25, 0xda, 0x25, + 0x7d, 0xdf, 0xf5, 0x3a, 0x7c, 0xc8, 0x72, 0xd6, 0x90, 0xae, 0x13, 0xba, 0xfb, 0x7c, 0xc0, 0x4a, + 0xd6, 0x80, 0x43, 0x12, 0x7a, 0x7e, 0x9b, 0x8f, 0x58, 0xca, 0xd4, 0xe2, 0xd0, 0x96, 0xf8, 0x4e, + 0x82, 0x2e, 0x09, 0x56, 0x77, 0x9d, 0x00, 0xaf, 0x1e, 0x5e, 0xdc, 0xc5, 0xa1, 0x73, 0x71, 0xd5, + 0x25, 0x9e, 0xcf, 0xbe, 0xdb, 0x1f, 0xa1, 0x17, 0xb6, 0x83, 0x76, 0x9d, 0x62, 0x27, 0xc4, 0xfd, + 0x00, 0x53, 0xb3, 0x8c, 0x4e, 0xb9, 0x51, 0x8b, 0xd0, 0xb2, 0xb1, 0x62, 0x5c, 0x98, 0x6b, 0xc6, + 0xcd, 0xe8, 0x8b, 0x8f, 0x8f, 0xde, 0x0f, 0x30, 0x2d, 0x4f, 0xb2, 0x2f, 0xbc, 0x69, 0x2e, 0xa2, + 0x69, 0xa7, 0xe3, 0x39, 0x41, 0xb9, 0x04, 0xfd, 0xac, 0x61, 0xbf, 0x8a, 0x5e, 0x51, 0x44, 0x37, + 0x71, 0xd0, 0x23, 0x7e, 0x80, 0xed, 0xdf, 0x1a, 0xe8, 0xcc, 0x76, 0xd0, 0xae, 0xf5, 0x07, 0xd1, + 0xb2, 0xee, 0xb8, 0xfb, 0xb8, 0x8b, 0x73, 0xf4, 0x7e, 0x8c, 0x4a, 0xbb, 0x5e, 0x0b, 0x74, 0xce, + 0xaf, 0x9d, 0xab, 0xb0, 0x09, 0x55, 0xa2, 0x09, 0x55, 0xf8, 0x84, 0x2a, 0x75, 0xe2, 0xf9, 0xb5, + 0xd5, 0xcf, 0xbf, 0x5c, 0x9e, 0xf8, 0xec, 0xdf, 0xcb, 0x5f, 0x6d, 0x7b, 0xe1, 0x7e, 0x7f, 0xb7, + 0xe2, 0x92, 0xee, 0x2a, 0x9f, 0x3d, 0xfb, 0xdf, 0xd7, 0x82, 0xd6, 0xc1, 0x6a, 0x38, 0xe8, 0xe1, + 0x00, 0x00, 0xcd, 0x48, 0xec, 0xf5, 0xd9, 0x9f, 0x3f, 0x59, 0x9e, 0xf8, 0xef, 0x93, 0xe5, 0x09, + 0x7b, 0x0d, 0x95, 0xd3, 0x56, 0xc5, 0x26, 0x9b, 0x67, 0xd1, 0x4c, 0xb4, 0xa8, 0x77, 0x5a, 0x60, + 0xdc, 0x54, 0x93, 0xb7, 0xec, 0xc7, 0x06, 0x9a, 0xdf, 0x0e, 0xda, 0x1f, 0x90, 0x10, 0x47, 0xa8, + 0x9c, 0x59, 0x24, 0x12, 0x26, 0x65, 0x09, 0xe6, 0x5d, 0x34, 0x7b, 0x48, 0x42, 0xfc, 0x60, 0xd0, + 0xc3, 0xb0, 0x7c, 0x0b, 0x6b, 0xab, 0x95, 0xb1, 0xdc, 0xae, 0xf2, 0x01, 0x87, 0x35, 0x85, 0x00, + 0x7b, 0x13, 0xbd, 0x2c, 0x59, 0x23, 0xac, 0x7f, 0x1b, 0x2d, 0x38, 0x1e, 0x6d, 0x51, 0xd2, 0xab, + 0x77, 0x1c, 0xaf, 0x8b, 0xd9, 0x2c, 0x66, 0x9b, 0xa9, 0x5e, 0xfb, 0x6f, 0x06, 0x32, 0xb7, 0x83, + 0xf6, 0x8e, 0x73, 0x08, 0xf8, 0x3a, 0xf1, 0x43, 0xec, 0x87, 0x05, 0x26, 0x15, 0x21, 0x18, 0x18, + 0xe6, 0x74, 0xba, 0x19, 0x37, 0x23, 0x57, 0xf1, 0x49, 0x88, 0x83, 0xf2, 0x14, 0x73, 0x15, 0x68, + 0x44, 0x72, 0x1c, 0x1a, 0x7a, 0x41, 0x58, 0x9e, 0x86, 0x6e, 0xde, 0x32, 0xdf, 0x44, 0x2f, 0xec, + 0x3a, 0x1d, 0xc7, 0x77, 0x71, 0xd5, 0x77, 0xf7, 0x09, 0x2d, 0xcf, 0x80, 0xdd, 0x6a, 0xa7, 0xdd, + 0x40, 0xd6, 0xb0, 0xd5, 0xda, 0x93, 0xff, 0x01, 0x7a, 0x71, 0x3b, 0x68, 0x3f, 0xa0, 0x8e, 0x1f, + 0xec, 0x61, 0x5a, 0x70, 0x37, 0x2d, 0x34, 0x4b, 0xb1, 0x8b, 0xbd, 0x43, 0x4c, 0xf9, 0x0c, 0x45, + 0xdb, 0x3e, 0x87, 0x5e, 0x4d, 0x29, 0x10, 0x27, 0xe2, 0xb1, 0x01, 0xca, 0x1b, 0xc4, 0x77, 0x42, + 0xfc, 0x80, 0x14, 0x54, 0x7e, 0x1b, 0xcd, 0x38, 0x5d, 0xd2, 0xe7, 0x8b, 0x3e, 0xc7, 0x0e, 0xc4, + 0xbf, 0xbe, 0x1c, 0xff, 0x40, 0x70, 0x38, 0xb7, 0x54, 0xb6, 0x46, 0x58, 0xfa, 0x23, 0xb8, 0x2f, + 0xaa, 0xad, 0x56, 0x95, 0x86, 0x47, 0x84, 0x1e, 0x14, 0x30, 0x73, 0x11, 0x4d, 0x7b, 0x5d, 0xa7, + 0x8d, 0xb9, 0x6b, 0xb0, 0x46, 0x24, 0x67, 0xaf, 0xdf, 0xe9, 0x54, 0x69, 0x08, 0x0b, 0x37, 0xdb, + 0x8c, 0x9b, 0xfc, 0x1e, 0x49, 0x54, 0x0a, 0x5b, 0xbe, 0x07, 0x8b, 0x56, 0xdf, 0x77, 0xfc, 0x36, + 0xae, 0x32, 0x87, 0x39, 0xde, 0x9a, 0x86, 0x62, 0x4d, 0x43, 0x72, 0xbd, 0x92, 0xec, 0x7a, 0x7c, + 0x0d, 0x64, 0xe1, 0x42, 0xef, 0x45, 0x30, 0xa8, 0x89, 0xdb, 0x5e, 0x10, 0x62, 0x7a, 0x8b, 0xd0, + 0x3a, 0xbb, 0xd5, 0x47, 0x6b, 0xb7, 0x97, 0xd1, 0xeb, 0x99, 0x10, 0x21, 0xf3, 0x1f, 0x06, 0x5a, + 0x80, 0x11, 0x3d, 0x42, 0xc3, 0xed, 0x28, 0x04, 0xe4, 0xdf, 0xc4, 0x10, 0x25, 0xc4, 0xd2, 0xc6, + 0x4d, 0xd3, 0x46, 0xa7, 0x7b, 0x1d, 0x67, 0x80, 0x5b, 0xd1, 0xa6, 0x05, 0xd5, 0x72, 0x69, 0xa5, + 0x74, 0x61, 0xaa, 0xa9, 0xf4, 0xa5, 0xc6, 0xd4, 0xca, 0x53, 0x43, 0x63, 0x6a, 0xe6, 0xbb, 0xe8, + 0x14, 0xe9, 0x87, 0x2e, 0xe9, 0x62, 0x38, 0x91, 0x0b, 0x6b, 0x95, 0x31, 0x2f, 0xa5, 0x7b, 0x0c, + 0xd5, 0x8c, 0xe1, 0xf6, 0x1a, 0x3a, 0xab, 0xce, 0x4b, 0x1c, 0x4c, 0x69, 0x16, 0x86, 0x32, 0x0b, + 0xfb, 0x3d, 0xc0, 0x54, 0x7b, 0xc4, 0xf3, 0x63, 0x4c, 0x04, 0xcf, 0x8d, 0x4e, 0x70, 0xf2, 0xd8, + 0x28, 0x1e, 0x9e, 0x44, 0xdb, 0x5e, 0x41, 0x4b, 0xd9, 0xf2, 0xc4, 0xf2, 0xff, 0xc1, 0x40, 0xa7, + 0x45, 0xb0, 0xda, 0xc1, 0x79, 0x8e, 0x64, 0xa2, 0x29, 0xdf, 0xe9, 0x62, 0xae, 0x04, 0x7e, 0x8f, + 0x72, 0x22, 0x73, 0x05, 0xcd, 0x07, 0x21, 0xa1, 0x83, 0x0f, 0xa9, 0x17, 0x8a, 0x1b, 0x41, 0xee, + 0x8a, 0x36, 0x23, 0xba, 0x1a, 0xa9, 0xb7, 0xdb, 0x0f, 0x09, 0x0d, 0xca, 0xd3, 0x2b, 0xa5, 0x0b, + 0x73, 0x4d, 0xa5, 0xcf, 0x3e, 0x8b, 0x16, 0x65, 0xdb, 0x84, 0xd1, 0x1f, 0x81, 0xff, 0x57, 0x5b, + 0xb0, 0x69, 0x0f, 0x48, 0xbe, 0xd9, 0x8b, 0x68, 0x3a, 0xc0, 0xa1, 0xf0, 0x18, 0xd6, 0x90, 0xce, + 0x68, 0x49, 0x89, 0x6b, 0xcc, 0xfb, 0x65, 0xd1, 0x42, 0xeb, 0x3b, 0xe0, 0xa8, 0xb7, 0x3c, 0xdf, + 0xe9, 0x78, 0x8f, 0x70, 0x01, 0xa5, 0x76, 0x19, 0xb6, 0x57, 0x92, 0x20, 0x64, 0xd7, 0xd1, 0x4b, + 0x2c, 0x04, 0xd7, 0x08, 0x89, 0x0e, 0xca, 0x7d, 0xc7, 0x3d, 0xd0, 0x16, 0x5f, 0x47, 0xe7, 0x86, + 0x84, 0x68, 0x47, 0x83, 0xef, 0xc3, 0x9a, 0x37, 0x71, 0x97, 0xb0, 0xa8, 0x72, 0x8b, 0x92, 0xee, + 0xf3, 0x5c, 0xe0, 0x25, 0x74, 0x3e, 0x4b, 0xbe, 0x58, 0x09, 0x07, 0xbd, 0x96, 0x7c, 0x4f, 0x9c, + 0xa1, 0xa8, 0x19, 0x26, 0x9a, 0x8a, 0x52, 0x30, 0xee, 0x9e, 0xf0, 0xdb, 0x7e, 0x0b, 0x7d, 0x25, + 0x47, 0x85, 0xb0, 0xe4, 0x63, 0x76, 0x18, 0x5b, 0x2d, 0x69, 0x4c, 0x31, 0x67, 0xcb, 0x32, 0x82, + 0x1f, 0xcd, 0x61, 0xe9, 0x42, 0xff, 0xa7, 0x2c, 0x29, 0x89, 0xdd, 0xbf, 0xd3, 0xb9, 0xb7, 0xb7, + 0x97, 0x7b, 0x13, 0x98, 0x68, 0x2a, 0x5a, 0x64, 0xae, 0x1b, 0x7e, 0x9b, 0x5b, 0x68, 0xba, 0x47, + 0x3d, 0x17, 0x17, 0x8d, 0x8c, 0x0c, 0x6d, 0x9f, 0x87, 0x4c, 0x23, 0x65, 0x8a, 0xb0, 0xf4, 0x5d, + 0x84, 0x92, 0x04, 0x32, 0xc7, 0xc0, 0xe8, 0x56, 0x88, 0xc1, 0x62, 0x8d, 0xe4, 0x2e, 0x7b, 0x11, + 0xa6, 0xcc, 0x25, 0x09, 0xf9, 0xf7, 0xa1, 0x97, 0x6d, 0xd8, 0x38, 0x0b, 0x71, 0xbc, 0x1e, 0x36, + 0x9f, 0x94, 0x44, 0xa1, 0xef, 0x21, 0xe8, 0x4b, 0x02, 0x6f, 0xb1, 0x5d, 0xcf, 0x0c, 0xf7, 0x5c, + 0x73, 0x4a, 0xb6, 0xd0, 0xfc, 0x5d, 0x28, 0x10, 0xaa, 0xad, 0xd6, 0x4e, 0x74, 0x55, 0x16, 0xd6, + 0x0b, 0x17, 0x6d, 0x5c, 0x94, 0x40, 0xc3, 0xb6, 0x20, 0xc9, 0x57, 0x24, 0x0b, 0xad, 0x7f, 0x61, + 0x75, 0xc9, 0x0e, 0x0e, 0x61, 0xd9, 0x1d, 0xea, 0x85, 0x83, 0x62, 0xf9, 0x0d, 0x33, 0xa7, 0x24, + 0x9b, 0x73, 0x07, 0xcd, 0x50, 0x90, 0x08, 0x51, 0x60, 0x61, 0xed, 0xe2, 0x98, 0x01, 0x35, 0x31, + 0xa5, 0xc9, 0x05, 0xf0, 0x39, 0x28, 0x66, 0x8a, 0x39, 0x34, 0x60, 0x0a, 0xcc, 0x43, 0x8f, 0x4d, + 0x4b, 0x46, 0x4d, 0x81, 0x6b, 0x50, 0xa4, 0x08, 0x0d, 0xbf, 0x34, 0xd8, 0x47, 0xd2, 0xed, 0x7a, + 0x61, 0xea, 0xe3, 0x71, 0xf1, 0x99, 0x8d, 0x4a, 0xe2, 0x33, 0x47, 0x9d, 0x47, 0x73, 0xbc, 0x30, + 0x16, 0xab, 0x96, 0x74, 0x98, 0x4b, 0x08, 0x05, 0xfd, 0x76, 0x1b, 0x07, 0xa1, 0x47, 0x7c, 0x1e, + 0x43, 0xa5, 0x1e, 0xdb, 0x46, 0x2b, 0xa3, 0xec, 0x11, 0x46, 0xff, 0x9d, 0x19, 0xdd, 0xc4, 0x87, + 0xd8, 0xe9, 0x8c, 0x6f, 0xf4, 0xdd, 0x94, 0xd1, 0xe3, 0x17, 0x67, 0xc2, 0x82, 0x64, 0x96, 0x67, + 0xd1, 0x4c, 0x80, 0x5d, 0x8a, 0x45, 0x92, 0xc0, 0x5a, 0xea, 0xec, 0xa7, 0x52, 0xb3, 0xe7, 0xb3, + 0xcb, 0x34, 0x5c, 0xcc, 0xee, 0x2e, 0x84, 0xcd, 0x26, 0x0e, 0x42, 0x87, 0x86, 0xc7, 0xef, 0xba, + 0xa2, 0x70, 0x32, 0xad, 0xf0, 0x35, 0x08, 0x9f, 0xaa, 0x30, 0xa1, 0x69, 0x9d, 0x87, 0xad, 0x23, + 0x72, 0x90, 0x38, 0x46, 0x94, 0xd4, 0x52, 0x27, 0xda, 0x8b, 0x9c, 0x0c, 0xf8, 0x6d, 0xf4, 0x66, + 0x1e, 0x52, 0x68, 0x78, 0xca, 0x4a, 0xa1, 0x3a, 0xf1, 0xf7, 0x3c, 0xda, 0x2d, 0x9e, 0x09, 0x4b, + 0x19, 0x6c, 0xe9, 0x44, 0x19, 0xac, 0xf9, 0x1d, 0x84, 0xa2, 0x02, 0x9b, 0xa5, 0xc6, 0x90, 0x2d, + 0xcf, 0x8f, 0x7d, 0x7a, 0x77, 0x3c, 0xbf, 0xdd, 0xc1, 0x51, 0x41, 0xde, 0x94, 0x84, 0xc4, 0xc5, + 0x85, 0x34, 0x47, 0x31, 0xff, 0x2d, 0xd8, 0xcb, 0x1d, 0x1c, 0xde, 0xa7, 0x64, 0xcf, 0xeb, 0x14, + 0x7c, 0x56, 0xe0, 0xbb, 0xa8, 0x8a, 0x11, 0x3a, 0x1e, 0xc0, 0xc5, 0x7e, 0xaf, 0x87, 0xfd, 0xf1, + 0xf2, 0xac, 0xa8, 0x0c, 0x4f, 0x06, 0x0a, 0x5d, 0x6a, 0xa7, 0x7d, 0x15, 0xae, 0xf4, 0x94, 0x54, + 0xe5, 0x90, 0x81, 0x69, 0x41, 0xd9, 0x80, 0x82, 0x23, 0x6e, 0xda, 0x21, 0x24, 0x18, 0x71, 0x5d, + 0xfc, 0x1c, 0x2d, 0x52, 0xaa, 0xf1, 0x52, 0xaa, 0x1a, 0x67, 0x89, 0x47, 0x86, 0x56, 0xb1, 0x4a, + 0xfb, 0x90, 0x02, 0xee, 0xe0, 0x30, 0xfa, 0x4f, 0x4a, 0xd9, 0x75, 0x03, 0x51, 0xaa, 0x08, 0x28, + 0x0d, 0x15, 0x01, 0x3c, 0x19, 0x1c, 0xd2, 0x94, 0x4a, 0xf4, 0xd9, 0xf7, 0x63, 0x0b, 0xdd, 0x91, + 0x79, 0x68, 0x4e, 0x99, 0x2b, 0x8b, 0x16, 0x5a, 0x6f, 0xc7, 0x9e, 0xf8, 0x7e, 0x80, 0xe9, 0x87, + 0x78, 0x37, 0xf0, 0x42, 0x9c, 0x7f, 0x14, 0x8f, 0xd8, 0xa0, 0xf8, 0x79, 0x90, 0x37, 0x13, 0x5f, + 0x94, 0x04, 0x09, 0x2d, 0xdb, 0xf0, 0x64, 0xc5, 0x3f, 0xd6, 0x3c, 0xd2, 0xa6, 0x4e, 0x6f, 0x7f, + 0x90, 0x7f, 0x7b, 0xed, 0xc6, 0xc3, 0xb8, 0xa6, 0xa4, 0xc3, 0x7e, 0x1d, 0xf2, 0xe6, 0xb4, 0x38, + 0xa1, 0xad, 0x0f, 0xe1, 0x71, 0xbb, 0xdf, 0x09, 0xbd, 0x31, 0xde, 0xec, 0x6e, 0xa3, 0xe9, 0x43, + 0x78, 0xac, 0x9a, 0x2c, 0x7a, 0xe8, 0x19, 0x9e, 0xc7, 0x53, 0x45, 0xad, 0x30, 0xe9, 0x09, 0x2b, + 0x3d, 0xa3, 0x73, 0x33, 0xc6, 0x6d, 0x07, 0x55, 0x3a, 0xad, 0xc6, 0x4b, 0xcc, 0x9b, 0xc9, 0x97, + 0x1a, 0xdf, 0xdf, 0xb8, 0x19, 0x79, 0x1f, 0x1f, 0xd4, 0xc0, 0xee, 0x01, 0x2f, 0xf6, 0xe5, 0xae, + 0x64, 0x44, 0x0d, 0x46, 0x4c, 0xcb, 0x23, 0xa0, 0xcb, 0xfe, 0x3a, 0x9c, 0x04, 0x61, 0xe1, 0x18, + 0x15, 0xfc, 0x0e, 0x3c, 0x13, 0x31, 0xb7, 0x7a, 0xcf, 0xc9, 0x7d, 0xde, 0x1d, 0x59, 0x2b, 0x40, + 0x95, 0x5d, 0x4a, 0xaa, 0x6c, 0xfe, 0x10, 0x94, 0x08, 0x4d, 0x95, 0xa4, 0xfc, 0xad, 0xa6, 0xe3, + 0x39, 0x41, 0xbe, 0x3a, 0xf6, 0x56, 0x3d, 0x29, 0xbf, 0x55, 0xb3, 0x92, 0x54, 0x92, 0x20, 0x25, + 0x54, 0xd1, 0xdc, 0xef, 0xf8, 0x87, 0x5e, 0x88, 0xb7, 0x1c, 0xda, 0x19, 0x54, 0x5d, 0x17, 0x07, + 0x41, 0x7e, 0xfd, 0xd1, 0x4f, 0x1e, 0xc9, 0x59, 0x99, 0xc3, 0x4e, 0xf8, 0x90, 0x14, 0xe9, 0xac, + 0xc1, 0x8b, 0x9b, 0x17, 0x78, 0x27, 0x54, 0xf4, 0x06, 0x5a, 0x1e, 0x21, 0x48, 0xe8, 0xfa, 0x36, + 0x9b, 0x2b, 0xf1, 0x7d, 0xec, 0x86, 0x0f, 0xb1, 0x03, 0x03, 0x48, 0x3f, 0xf7, 0xa1, 0xb7, 0x8c, + 0x4e, 0x3d, 0x8a, 0x46, 0xf2, 0x6d, 0x9a, 0x6b, 0xc6, 0x4d, 0x7e, 0x8f, 0x66, 0x48, 0x13, 0xfa, + 0x7e, 0x31, 0x09, 0xe1, 0x66, 0xcb, 0x87, 0x6e, 0x4c, 0x59, 0x5a, 0x99, 0x9f, 0x2a, 0x36, 0xa8, + 0x73, 0xd4, 0x89, 0x6e, 0xab, 0x49, 0xf0, 0x46, 0xd1, 0x36, 0x3d, 0x84, 0x7a, 0x0e, 0x75, 0xba, + 0x38, 0xc4, 0x34, 0x80, 0xe7, 0xad, 0xf9, 0xb5, 0x3b, 0x63, 0x9e, 0xcb, 0x61, 0x23, 0x2a, 0xf7, + 0x85, 0xac, 0x2d, 0x3f, 0xa4, 0x83, 0xa6, 0x24, 0x3c, 0x29, 0x5c, 0xa6, 0xa4, 0xc2, 0xc5, 0xda, + 0x44, 0x2f, 0xa6, 0x40, 0xe6, 0x19, 0x54, 0x3a, 0xc0, 0x03, 0x3e, 0x8b, 0xe8, 0x67, 0x04, 0x3d, + 0x74, 0x3a, 0xfd, 0xf8, 0x26, 0x64, 0x8d, 0xeb, 0x93, 0xeb, 0x06, 0xaf, 0x7b, 0x52, 0x66, 0x88, + 0xa5, 0xfa, 0x21, 0x38, 0xb2, 0xf8, 0xda, 0x20, 0xf9, 0xd5, 0x1d, 0x8e, 0x07, 0x26, 0xd5, 0x9d, + 0xd4, 0x95, 0x59, 0x6f, 0x33, 0x47, 0x97, 0x34, 0x08, 0xdd, 0x2e, 0x5c, 0xf7, 0x89, 0x65, 0x1d, + 0x92, 0x9b, 0x1a, 0x17, 0x53, 0xcf, 0x42, 0x81, 0xaa, 0x24, 0xb6, 0x60, 0xed, 0x7f, 0x97, 0x51, + 0x69, 0x3b, 0x68, 0x9b, 0x3f, 0x31, 0x10, 0x92, 0x18, 0xa9, 0xcb, 0xe3, 0x6f, 0x6f, 0x82, 0xb2, + 0xbe, 0x51, 0x04, 0x25, 0x6e, 0xb6, 0x4f, 0x0d, 0xf4, 0x82, 0xca, 0x4f, 0x5d, 0x1b, 0x5f, 0x9e, + 0x02, 0xb4, 0x6e, 0x16, 0x04, 0x0a, 0x5b, 0x1e, 0xa1, 0x59, 0x11, 0xab, 0xd6, 0xc6, 0x17, 0x16, + 0x63, 0xac, 0xeb, 0xfa, 0x18, 0xa1, 0xfb, 0x57, 0x06, 0x7a, 0x31, 0x4d, 0x07, 0x6d, 0x8c, 0x2f, + 0x2f, 0x05, 0xb5, 0xaa, 0x85, 0xa1, 0xc2, 0xa2, 0x9f, 0x19, 0xe8, 0xb4, 0x42, 0xd2, 0x5c, 0x1d, + 0x5f, 0xa6, 0x8c, 0xb3, 0xbe, 0x59, 0x0c, 0xa7, 0x18, 0xa2, 0x10, 0x36, 0x1a, 0x86, 0xc8, 0x38, + 0x1d, 0x43, 0xb2, 0x28, 0x19, 0x38, 0x2e, 0x12, 0x21, 0xa3, 0x71, 0x5c, 0x12, 0x94, 0xce, 0x71, + 0x19, 0x66, 0x62, 0x60, 0x2d, 0x14, 0x1e, 0x46, 0x63, 0x2d, 0x64, 0x9c, 0xce, 0x5a, 0x64, 0x51, + 0x33, 0xe6, 0xef, 0x0d, 0x64, 0x66, 0x10, 0x33, 0x1a, 0xb3, 0x1b, 0x46, 0x5b, 0x8d, 0x93, 0xa0, + 0x85, 0x69, 0x3f, 0x35, 0xd0, 0xbc, 0x4c, 0xef, 0x5c, 0xd1, 0x91, 0x2a, 0x60, 0xd6, 0x66, 0x21, + 0x98, 0xb0, 0xe2, 0x8f, 0x06, 0x7a, 0x39, 0x8b, 0x58, 0xd1, 0x10, 0x9b, 0x01, 0xb7, 0xb6, 0x4e, + 0x04, 0x17, 0xd6, 0xfd, 0x18, 0xcd, 0x25, 0x14, 0xcc, 0x25, 0xdd, 0x1b, 0x7c, 0x07, 0x87, 0xd6, + 0x8d, 0x02, 0x20, 0xc5, 0x8d, 0x15, 0x3a, 0xe5, 0xaa, 0xd6, 0xa9, 0x10, 0x38, 0x1d, 0x37, 0xce, + 0xe2, 0x58, 0xc0, 0x57, 0x64, 0x86, 0x45, 0xc3, 0x57, 0x24, 0x98, 0x8e, 0xaf, 0x64, 0xb0, 0x31, + 0xe6, 0x63, 0x03, 0x2d, 0xa4, 0xb8, 0x98, 0x75, 0xad, 0x60, 0x26, 0x21, 0xad, 0x77, 0x8a, 0x22, + 0x85, 0x39, 0xbf, 0x33, 0xd0, 0x4b, 0xc3, 0x84, 0xcc, 0x0d, 0x9d, 0xf3, 0x90, 0x02, 0x5b, 0xf5, + 0x13, 0x80, 0x85, 0x5d, 0x9f, 0x19, 0xa8, 0x3c, 0x92, 0xa8, 0xa9, 0x69, 0x6b, 0x18, 0x92, 0x61, + 0x7d, 0xeb, 0xe4, 0x32, 0xd4, 0xf3, 0x9f, 0xc1, 0xe5, 0x6c, 0xea, 0x79, 0x6c, 0x0a, 0xae, 0x75, + 0xfe, 0x47, 0x73, 0x3d, 0x90, 0x6e, 0xa4, 0x89, 0x9e, 0x0d, 0xfd, 0x13, 0xcd, 0xa1, 0x3a, 0xe9, + 0xc6, 0x08, 0x4e, 0xc7, 0x3c, 0x42, 0xa7, 0x62, 0x42, 0xe7, 0xa2, 0x76, 0x22, 0x67, 0x6d, 0x68, + 0x43, 0x94, 0xa5, 0x48, 0x53, 0x3d, 0x1b, 0xba, 0x8e, 0x50, 0x68, 0x29, 0x46, 0xd0, 0x41, 0x60, + 0x51, 0x9a, 0x0c, 0xda, 0x28, 0x92, 0x36, 0x30, 0x97, 0xa9, 0x16, 0x86, 0x2a, 0x59, 0xba, 0x4a, + 0x12, 0x5d, 0xd3, 0x12, 0x9a, 0x00, 0x75, 0xb2, 0xf4, 0x4c, 0xf2, 0x08, 0x6c, 0x51, 0x99, 0x23, + 0x0d, 0x5b, 0x14, 0xa0, 0x8e, 0x2d, 0x99, 0x24, 0x10, 0xd8, 0xa2, 0x52, 0x40, 0xd7, 0x74, 0x4f, + 0x42, 0x9c, 0xfb, 0xdc, 0x2c, 0x08, 0x14, 0xb6, 0xfc, 0xd9, 0x40, 0xaf, 0x64, 0x73, 0x45, 0x3a, + 0xa2, 0xb3, 0x04, 0x58, 0xb7, 0x4f, 0x28, 0x40, 0xb1, 0x31, 0x9b, 0x1a, 0xba, 0xa9, 0x73, 0x6c, + 0x32, 0x04, 0xe8, 0xd8, 0x98, 0xcb, 0xf1, 0x40, 0x30, 0x4e, 0x31, 0x3c, 0xeb, 0x3a, 0xb2, 0x65, + 0xa4, 0x4e, 0x30, 0xce, 0x26, 0x82, 0xcc, 0xbf, 0x1a, 0xe8, 0xdc, 0x68, 0x1a, 0x48, 0x2b, 0xae, + 0x8e, 0x10, 0x62, 0xdd, 0x7d, 0x0e, 0x42, 0xd4, 0x0a, 0x45, 0xe6, 0x94, 0x74, 0x2a, 0x14, 0x09, + 0xa7, 0x55, 0xa1, 0x64, 0xf0, 0x3b, 0xb0, 0x8f, 0x29, 0x76, 0x67, 0x5d, 0xeb, 0xbc, 0x4b, 0x48, + 0x9d, 0x7d, 0xcc, 0xa6, 0x82, 0xe0, 0x52, 0x4f, 0x13, 0x41, 0x1a, 0x97, 0x7a, 0x0a, 0xaa, 0x73, + 0xa9, 0x8f, 0x22, 0x8a, 0xa2, 0x0c, 0x25, 0x8b, 0x0c, 0xda, 0xd4, 0xaf, 0xd7, 0x65, 0xcb, 0xb6, + 0x4e, 0x04, 0x57, 0x92, 0xd0, 0x61, 0x4a, 0xe8, 0x86, 0xd6, 0x3e, 0xa8, 0x60, 0x9d, 0x24, 0x74, + 0x24, 0x45, 0x04, 0xfe, 0xad, 0x10, 0x44, 0x57, 0x75, 0xa5, 0xea, 0x57, 0xe0, 0x59, 0xac, 0x51, + 0xec, 0xdf, 0x32, 0x67, 0xa4, 0xe7, 0xdf, 0x12, 0x52, 0xd3, 0xbf, 0x33, 0xe8, 0x25, 0xf3, 0x37, + 0x06, 0x3a, 0x33, 0x44, 0x2e, 0x5d, 0xd7, 0x16, 0x2b, 0xb0, 0x56, 0xad, 0x38, 0x56, 0x89, 0xcf, + 0x2a, 0x07, 0xa5, 0x11, 0x9f, 0x15, 0xa0, 0x4e, 0x7c, 0xce, 0xa4, 0x9f, 0xa2, 0x92, 0x3b, 0xa1, + 0x9e, 0x2e, 0xe9, 0x1d, 0x5f, 0x76, 0x23, 0xde, 0x28, 0x00, 0x52, 0x1e, 0xaf, 0x24, 0x9a, 0xe8, + 0xb2, 0xae, 0xf7, 0x45, 0x28, 0x9d, 0xc7, 0xab, 0x61, 0xf6, 0x08, 0x8a, 0x6d, 0x99, 0x3b, 0xba, + 0xa2, 0xfd, 0x06, 0x15, 0xc1, 0x74, 0x8a, 0xed, 0x0c, 0x9e, 0x09, 0x2e, 0x96, 0x61, 0x96, 0x49, + 0x63, 0x6d, 0x87, 0xc0, 0x3a, 0x17, 0xcb, 0x48, 0x66, 0xca, 0xfc, 0x93, 0x81, 0x16, 0x33, 0x79, + 0x29, 0x9d, 0x67, 0xcb, 0x0c, 0xbc, 0x75, 0xeb, 0x64, 0x78, 0x25, 0x5e, 0x64, 0x91, 0x59, 0x9b, + 0x5a, 0x81, 0x3a, 0x0d, 0xd7, 0x89, 0x17, 0x39, 0xe4, 0x17, 0xc4, 0xd7, 0x34, 0xf3, 0xb5, 0x51, + 0x98, 0xaf, 0xd2, 0x89, 0xaf, 0x23, 0x38, 0x26, 0x70, 0x77, 0x99, 0x61, 0xba, 0x52, 0x40, 0x64, + 0x83, 0xe8, 0xb8, 0x7b, 0x06, 0xdb, 0x04, 0x61, 0x22, 0xc5, 0x35, 0xad, 0x17, 0x99, 0x5b, 0x84, + 0xd4, 0x09, 0x13, 0xd9, 0xd4, 0x53, 0xad, 0xf9, 0xf9, 0xd3, 0x25, 0xe3, 0x8b, 0xa7, 0x4b, 0xc6, + 0x7f, 0x9e, 0x2e, 0x19, 0xbf, 0x7e, 0xb6, 0x34, 0xf1, 0xc5, 0xb3, 0xa5, 0x89, 0x7f, 0x3e, 0x5b, + 0x9a, 0x78, 0xb8, 0x2e, 0xfd, 0x13, 0xd1, 0x21, 0x2d, 0xab, 0x75, 0xf1, 0x37, 0x57, 0x9f, 0xc8, + 0x7f, 0x40, 0x36, 0xe8, 0xe1, 0x60, 0x77, 0x06, 0xfe, 0xc2, 0xea, 0xd2, 0xff, 0x03, 0x00, 0x00, + 0xff, 0xff, 0x4c, 0x20, 0xb1, 0x3b, 0x64, 0x36, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -9600,6 +9616,13 @@ func (m *MsgEncounterDo) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.User) > 0 { + i -= len(m.User) + copy(dAtA[i:], m.User) + i = encodeVarintTx(dAtA, i, uint64(len(m.User))) + i-- + dAtA[i] = 0x1a + } if m.EncounterId != 0 { i = encodeVarintTx(dAtA, i, uint64(m.EncounterId)) i-- @@ -9658,6 +9681,13 @@ func (m *MsgEncounterClose) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.User) > 0 { + i -= len(m.User) + copy(dAtA[i:], m.User) + i = encodeVarintTx(dAtA, i, uint64(len(m.User))) + i-- + dAtA[i] = 0x1a + } if m.EncounterId != 0 { i = encodeVarintTx(dAtA, i, uint64(m.EncounterId)) i-- @@ -11050,6 +11080,10 @@ func (m *MsgEncounterDo) Size() (n int) { if m.EncounterId != 0 { n += 1 + sovTx(uint64(m.EncounterId)) } + l = len(m.User) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -11075,6 +11109,10 @@ func (m *MsgEncounterClose) Size() (n int) { if m.EncounterId != 0 { n += 1 + sovTx(uint64(m.EncounterId)) } + l = len(m.User) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -19808,6 +19846,38 @@ func (m *MsgEncounterDo) Unmarshal(dAtA []byte) error { break } } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.User = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -19959,6 +20029,38 @@ func (m *MsgEncounterClose) Unmarshal(dAtA []byte) error { break } } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.User = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) From dcbbff998dd368a0583e08a24b1498f15fb88452 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Thu, 12 Dec 2024 04:19:50 +0100 Subject: [PATCH 12/20] feat(#237): Added encounter close content --- proto/cardchain/cardchain/tx.proto | 1 + .../keeper/msg_server_encounter_close.go | 31 ++- x/cardchain/types/tx.pb.go | 238 ++++++++++-------- 3 files changed, 170 insertions(+), 100 deletions(-) diff --git a/proto/cardchain/cardchain/tx.proto b/proto/cardchain/cardchain/tx.proto index 9a0b0922..b6d59f3e 100644 --- a/proto/cardchain/cardchain/tx.proto +++ b/proto/cardchain/cardchain/tx.proto @@ -455,6 +455,7 @@ message MsgEncounterClose { string creator = 1; uint64 encounterId = 2; string user = 3; + bool won = 4; } message MsgEncounterCloseResponse {} diff --git a/x/cardchain/keeper/msg_server_encounter_close.go b/x/cardchain/keeper/msg_server_encounter_close.go index 0ed748e6..319cbe76 100644 --- a/x/cardchain/keeper/msg_server_encounter_close.go +++ b/x/cardchain/keeper/msg_server_encounter_close.go @@ -2,16 +2,43 @@ package keeper import ( "context" + "slices" + sdkerrors "cosmossdk.io/errors" "github.com/DecentralCardGame/Cardchain/x/cardchain/types" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/errors" ) func (k msgServer) EncounterClose(goCtx context.Context, msg *types.MsgEncounterClose) (*types.MsgEncounterCloseResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) - // TODO: Handling the message - _ = ctx + reporter, err := k.GetMsgCreator(ctx, msg) + if err != nil { + return nil, err + } + + if !reporter.ReportMatches { + return nil, sdkerrors.Wrap(errors.ErrUnauthorized, "unauthorized reporter") + } + + user, err := k.GetUserFromString(ctx, msg.User) + if err != nil { + return nil, err + } + + index := slices.Index(user.OpenEncounters, msg.EncounterId) + + if index == -1 { + return nil, sdkerrors.Wrapf(errors.ErrUnauthorized, "encounter %d isnt open for user", msg.EncounterId) + } + + user.OpenEncounters = append(user.OpenEncounters[:index], user.OpenEncounters[index+1:]...) + + if msg.Won { + user.WonEncounters = append(user.WonEncounters, msg.EncounterId) + // TODO: Treasury reward here + } return &types.MsgEncounterCloseResponse{}, nil } diff --git a/x/cardchain/types/tx.pb.go b/x/cardchain/types/tx.pb.go index d135268e..4ad65537 100644 --- a/x/cardchain/types/tx.pb.go +++ b/x/cardchain/types/tx.pb.go @@ -4434,6 +4434,7 @@ type MsgEncounterClose struct { Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` EncounterId uint64 `protobuf:"varint,2,opt,name=encounterId,proto3" json:"encounterId,omitempty"` User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` + Won bool `protobuf:"varint,4,opt,name=won,proto3" json:"won,omitempty"` } func (m *MsgEncounterClose) Reset() { *m = MsgEncounterClose{} } @@ -4490,6 +4491,13 @@ func (m *MsgEncounterClose) GetUser() string { return "" } +func (m *MsgEncounterClose) GetWon() bool { + if m != nil { + return m.Won + } + return false +} + type MsgEncounterCloseResponse struct { } @@ -4627,9 +4635,9 @@ func init() { func init() { proto.RegisterFile("cardchain/cardchain/tx.proto", fileDescriptor_3b4a3aba0ac94bc8) } var fileDescriptor_3b4a3aba0ac94bc8 = []byte{ - // 2714 bytes of a gzipped FileDescriptorProto + // 2722 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5b, 0x5f, 0x6f, 0x1d, 0x47, - 0x15, 0xf7, 0xfa, 0xda, 0x8e, 0x3d, 0x4e, 0xdd, 0x74, 0xeb, 0xa6, 0x37, 0xdb, 0xd4, 0x76, 0x97, + 0x15, 0xf7, 0xfa, 0xda, 0x8e, 0x3d, 0x4e, 0xdd, 0x66, 0xeb, 0xa6, 0x37, 0xdb, 0xd4, 0x76, 0x97, 0xb6, 0xe4, 0x85, 0x6b, 0xe2, 0xfc, 0xb3, 0x13, 0x4c, 0x7a, 0xff, 0x38, 0x69, 0x08, 0x6e, 0xc2, 0x75, 0xda, 0xd2, 0x50, 0x01, 0xeb, 0xbd, 0xe3, 0xeb, 0x95, 0xef, 0xdd, 0xb9, 0xcc, 0xee, 0xb5, 0x7b, 0x23, 0x21, 0x21, 0x21, 0x21, 0x8a, 0x22, 0x40, 0x08, 0x24, 0x04, 0x12, 0x0a, 0x0f, 0xbc, @@ -4646,47 +4654,47 @@ var fileDescriptor_3b4a3aba0ac94bc8 = []byte{ 0x00, 0x53, 0xb3, 0x8c, 0x4e, 0xb9, 0x51, 0x8b, 0xd0, 0xb2, 0xb1, 0x62, 0x5c, 0x98, 0x6b, 0xc6, 0xcd, 0xe8, 0x8b, 0x8f, 0x8f, 0xde, 0x0f, 0x30, 0x2d, 0x4f, 0xb2, 0x2f, 0xbc, 0x69, 0x2e, 0xa2, 0x69, 0xa7, 0xe3, 0x39, 0x41, 0xb9, 0x04, 0xfd, 0xac, 0x61, 0xbf, 0x8a, 0x5e, 0x51, 0x44, 0x37, - 0x71, 0xd0, 0x23, 0x7e, 0x80, 0xed, 0xdf, 0x1a, 0xe8, 0xcc, 0x76, 0xd0, 0xae, 0xf5, 0x07, 0xd1, - 0xb2, 0xee, 0xb8, 0xfb, 0xb8, 0x8b, 0x73, 0xf4, 0x7e, 0x8c, 0x4a, 0xbb, 0x5e, 0x0b, 0x74, 0xce, - 0xaf, 0x9d, 0xab, 0xb0, 0x09, 0x55, 0xa2, 0x09, 0x55, 0xf8, 0x84, 0x2a, 0x75, 0xe2, 0xf9, 0xb5, - 0xd5, 0xcf, 0xbf, 0x5c, 0x9e, 0xf8, 0xec, 0xdf, 0xcb, 0x5f, 0x6d, 0x7b, 0xe1, 0x7e, 0x7f, 0xb7, - 0xe2, 0x92, 0xee, 0x2a, 0x9f, 0x3d, 0xfb, 0xdf, 0xd7, 0x82, 0xd6, 0xc1, 0x6a, 0x38, 0xe8, 0xe1, - 0x00, 0x00, 0xcd, 0x48, 0xec, 0xf5, 0xd9, 0x9f, 0x3f, 0x59, 0x9e, 0xf8, 0xef, 0x93, 0xe5, 0x09, - 0x7b, 0x0d, 0x95, 0xd3, 0x56, 0xc5, 0x26, 0x9b, 0x67, 0xd1, 0x4c, 0xb4, 0xa8, 0x77, 0x5a, 0x60, - 0xdc, 0x54, 0x93, 0xb7, 0xec, 0xc7, 0x06, 0x9a, 0xdf, 0x0e, 0xda, 0x1f, 0x90, 0x10, 0x47, 0xa8, - 0x9c, 0x59, 0x24, 0x12, 0x26, 0x65, 0x09, 0xe6, 0x5d, 0x34, 0x7b, 0x48, 0x42, 0xfc, 0x60, 0xd0, - 0xc3, 0xb0, 0x7c, 0x0b, 0x6b, 0xab, 0x95, 0xb1, 0xdc, 0xae, 0xf2, 0x01, 0x87, 0x35, 0x85, 0x00, - 0x7b, 0x13, 0xbd, 0x2c, 0x59, 0x23, 0xac, 0x7f, 0x1b, 0x2d, 0x38, 0x1e, 0x6d, 0x51, 0xd2, 0xab, - 0x77, 0x1c, 0xaf, 0x8b, 0xd9, 0x2c, 0x66, 0x9b, 0xa9, 0x5e, 0xfb, 0x6f, 0x06, 0x32, 0xb7, 0x83, - 0xf6, 0x8e, 0x73, 0x08, 0xf8, 0x3a, 0xf1, 0x43, 0xec, 0x87, 0x05, 0x26, 0x15, 0x21, 0x18, 0x18, - 0xe6, 0x74, 0xba, 0x19, 0x37, 0x23, 0x57, 0xf1, 0x49, 0x88, 0x83, 0xf2, 0x14, 0x73, 0x15, 0x68, - 0x44, 0x72, 0x1c, 0x1a, 0x7a, 0x41, 0x58, 0x9e, 0x86, 0x6e, 0xde, 0x32, 0xdf, 0x44, 0x2f, 0xec, - 0x3a, 0x1d, 0xc7, 0x77, 0x71, 0xd5, 0x77, 0xf7, 0x09, 0x2d, 0xcf, 0x80, 0xdd, 0x6a, 0xa7, 0xdd, - 0x40, 0xd6, 0xb0, 0xd5, 0xda, 0x93, 0xff, 0x01, 0x7a, 0x71, 0x3b, 0x68, 0x3f, 0xa0, 0x8e, 0x1f, - 0xec, 0x61, 0x5a, 0x70, 0x37, 0x2d, 0x34, 0x4b, 0xb1, 0x8b, 0xbd, 0x43, 0x4c, 0xf9, 0x0c, 0x45, - 0xdb, 0x3e, 0x87, 0x5e, 0x4d, 0x29, 0x10, 0x27, 0xe2, 0xb1, 0x01, 0xca, 0x1b, 0xc4, 0x77, 0x42, - 0xfc, 0x80, 0x14, 0x54, 0x7e, 0x1b, 0xcd, 0x38, 0x5d, 0xd2, 0xe7, 0x8b, 0x3e, 0xc7, 0x0e, 0xc4, - 0xbf, 0xbe, 0x1c, 0xff, 0x40, 0x70, 0x38, 0xb7, 0x54, 0xb6, 0x46, 0x58, 0xfa, 0x23, 0xb8, 0x2f, - 0xaa, 0xad, 0x56, 0x95, 0x86, 0x47, 0x84, 0x1e, 0x14, 0x30, 0x73, 0x11, 0x4d, 0x7b, 0x5d, 0xa7, - 0x8d, 0xb9, 0x6b, 0xb0, 0x46, 0x24, 0x67, 0xaf, 0xdf, 0xe9, 0x54, 0x69, 0x08, 0x0b, 0x37, 0xdb, - 0x8c, 0x9b, 0xfc, 0x1e, 0x49, 0x54, 0x0a, 0x5b, 0xbe, 0x07, 0x8b, 0x56, 0xdf, 0x77, 0xfc, 0x36, - 0xae, 0x32, 0x87, 0x39, 0xde, 0x9a, 0x86, 0x62, 0x4d, 0x43, 0x72, 0xbd, 0x92, 0xec, 0x7a, 0x7c, - 0x0d, 0x64, 0xe1, 0x42, 0xef, 0x45, 0x30, 0xa8, 0x89, 0xdb, 0x5e, 0x10, 0x62, 0x7a, 0x8b, 0xd0, - 0x3a, 0xbb, 0xd5, 0x47, 0x6b, 0xb7, 0x97, 0xd1, 0xeb, 0x99, 0x10, 0x21, 0xf3, 0x1f, 0x06, 0x5a, - 0x80, 0x11, 0x3d, 0x42, 0xc3, 0xed, 0x28, 0x04, 0xe4, 0xdf, 0xc4, 0x10, 0x25, 0xc4, 0xd2, 0xc6, - 0x4d, 0xd3, 0x46, 0xa7, 0x7b, 0x1d, 0x67, 0x80, 0x5b, 0xd1, 0xa6, 0x05, 0xd5, 0x72, 0x69, 0xa5, - 0x74, 0x61, 0xaa, 0xa9, 0xf4, 0xa5, 0xc6, 0xd4, 0xca, 0x53, 0x43, 0x63, 0x6a, 0xe6, 0xbb, 0xe8, - 0x14, 0xe9, 0x87, 0x2e, 0xe9, 0x62, 0x38, 0x91, 0x0b, 0x6b, 0x95, 0x31, 0x2f, 0xa5, 0x7b, 0x0c, - 0xd5, 0x8c, 0xe1, 0xf6, 0x1a, 0x3a, 0xab, 0xce, 0x4b, 0x1c, 0x4c, 0x69, 0x16, 0x86, 0x32, 0x0b, - 0xfb, 0x3d, 0xc0, 0x54, 0x7b, 0xc4, 0xf3, 0x63, 0x4c, 0x04, 0xcf, 0x8d, 0x4e, 0x70, 0xf2, 0xd8, - 0x28, 0x1e, 0x9e, 0x44, 0xdb, 0x5e, 0x41, 0x4b, 0xd9, 0xf2, 0xc4, 0xf2, 0xff, 0xc1, 0x40, 0xa7, - 0x45, 0xb0, 0xda, 0xc1, 0x79, 0x8e, 0x64, 0xa2, 0x29, 0xdf, 0xe9, 0x62, 0xae, 0x04, 0x7e, 0x8f, - 0x72, 0x22, 0x73, 0x05, 0xcd, 0x07, 0x21, 0xa1, 0x83, 0x0f, 0xa9, 0x17, 0x8a, 0x1b, 0x41, 0xee, - 0x8a, 0x36, 0x23, 0xba, 0x1a, 0xa9, 0xb7, 0xdb, 0x0f, 0x09, 0x0d, 0xca, 0xd3, 0x2b, 0xa5, 0x0b, - 0x73, 0x4d, 0xa5, 0xcf, 0x3e, 0x8b, 0x16, 0x65, 0xdb, 0x84, 0xd1, 0x1f, 0x81, 0xff, 0x57, 0x5b, - 0xb0, 0x69, 0x0f, 0x48, 0xbe, 0xd9, 0x8b, 0x68, 0x3a, 0xc0, 0xa1, 0xf0, 0x18, 0xd6, 0x90, 0xce, - 0x68, 0x49, 0x89, 0x6b, 0xcc, 0xfb, 0x65, 0xd1, 0x42, 0xeb, 0x3b, 0xe0, 0xa8, 0xb7, 0x3c, 0xdf, - 0xe9, 0x78, 0x8f, 0x70, 0x01, 0xa5, 0x76, 0x19, 0xb6, 0x57, 0x92, 0x20, 0x64, 0xd7, 0xd1, 0x4b, + 0x71, 0xd0, 0x23, 0x7e, 0x80, 0xed, 0xdf, 0x1a, 0xe8, 0xa5, 0xed, 0xa0, 0x5d, 0xeb, 0x0f, 0xa2, + 0x65, 0xdd, 0x71, 0xf7, 0x71, 0x17, 0xe7, 0xe8, 0xfd, 0x18, 0x95, 0x76, 0xbd, 0x16, 0xe8, 0x9c, + 0x5f, 0x3b, 0x57, 0x61, 0x13, 0xaa, 0x44, 0x13, 0xaa, 0xf0, 0x09, 0x55, 0xea, 0xc4, 0xf3, 0x6b, + 0xab, 0x9f, 0x7f, 0xb9, 0x3c, 0xf1, 0xd9, 0xbf, 0x97, 0xbf, 0xda, 0xf6, 0xc2, 0xfd, 0xfe, 0x6e, + 0xc5, 0x25, 0xdd, 0x55, 0x3e, 0x7b, 0xf6, 0xbf, 0xaf, 0x05, 0xad, 0x83, 0xd5, 0x70, 0xd0, 0xc3, + 0x01, 0x00, 0x9a, 0x91, 0xd8, 0xeb, 0xb3, 0x3f, 0x7f, 0xb2, 0x3c, 0xf1, 0xdf, 0x27, 0xcb, 0x13, + 0xf6, 0x1a, 0x2a, 0xa7, 0xad, 0x8a, 0x4d, 0x36, 0xcf, 0xa2, 0x99, 0x68, 0x51, 0xef, 0xb4, 0xc0, + 0xb8, 0xa9, 0x26, 0x6f, 0xd9, 0x8f, 0x0d, 0x34, 0xbf, 0x1d, 0xb4, 0x3f, 0x20, 0x21, 0x8e, 0x50, + 0x39, 0xb3, 0x48, 0x24, 0x4c, 0xca, 0x12, 0xcc, 0xbb, 0x68, 0xf6, 0x90, 0x84, 0xf8, 0xc1, 0xa0, + 0x87, 0x61, 0xf9, 0x16, 0xd6, 0x56, 0x2b, 0x63, 0xb9, 0x5d, 0xe5, 0x03, 0x0e, 0x6b, 0x0a, 0x01, + 0xf6, 0x26, 0x7a, 0x59, 0xb2, 0x46, 0x58, 0xff, 0x36, 0x5a, 0x70, 0x3c, 0xda, 0xa2, 0xa4, 0x57, + 0xef, 0x38, 0x5e, 0x17, 0xb3, 0x59, 0xcc, 0x36, 0x53, 0xbd, 0xf6, 0xdf, 0x0c, 0x64, 0x6e, 0x07, + 0xed, 0x1d, 0xe7, 0x10, 0xf0, 0x75, 0xe2, 0x87, 0xd8, 0x0f, 0x0b, 0x4c, 0x2a, 0x42, 0x30, 0x30, + 0xcc, 0xe9, 0x74, 0x33, 0x6e, 0x46, 0xae, 0xe2, 0x93, 0x10, 0x07, 0xe5, 0x29, 0xe6, 0x2a, 0xd0, + 0x88, 0xe4, 0x38, 0x34, 0xf4, 0x82, 0xb0, 0x3c, 0x0d, 0xdd, 0xbc, 0x65, 0xbe, 0x89, 0x5e, 0xd8, + 0x75, 0x3a, 0x8e, 0xef, 0xe2, 0xaa, 0xef, 0xee, 0x13, 0x5a, 0x9e, 0x01, 0xbb, 0xd5, 0x4e, 0xbb, + 0x81, 0xac, 0x61, 0xab, 0xb5, 0x27, 0xff, 0x03, 0xf4, 0xe2, 0x76, 0xd0, 0x7e, 0x40, 0x1d, 0x3f, + 0xd8, 0xc3, 0xb4, 0xe0, 0x6e, 0x5a, 0x68, 0x96, 0x62, 0x17, 0x7b, 0x87, 0x98, 0xf2, 0x19, 0x8a, + 0xb6, 0x7d, 0x0e, 0xbd, 0x9a, 0x52, 0x20, 0x4e, 0xc4, 0x63, 0x03, 0x94, 0x37, 0x88, 0xef, 0x84, + 0xf8, 0x01, 0x29, 0xa8, 0xfc, 0x36, 0x9a, 0x71, 0xba, 0xa4, 0xcf, 0x17, 0x7d, 0x8e, 0x1d, 0x88, + 0x7f, 0x7d, 0x39, 0xfe, 0x81, 0xe0, 0x70, 0x6e, 0xa9, 0x6c, 0x8d, 0xb0, 0xf4, 0x47, 0x70, 0x5f, + 0x54, 0x5b, 0xad, 0x2a, 0x0d, 0x8f, 0x08, 0x3d, 0x28, 0x60, 0xe6, 0x22, 0x9a, 0xf6, 0xba, 0x4e, + 0x1b, 0x73, 0xd7, 0x60, 0x8d, 0x48, 0xce, 0x5e, 0xbf, 0xd3, 0xa9, 0xd2, 0x10, 0x16, 0x6e, 0xb6, + 0x19, 0x37, 0xf9, 0x3d, 0x92, 0xa8, 0x14, 0xb6, 0x7c, 0x0f, 0x16, 0xad, 0xbe, 0xef, 0xf8, 0x6d, + 0x5c, 0x65, 0x0e, 0x73, 0xbc, 0x35, 0x0d, 0xc5, 0x9a, 0x86, 0xe4, 0x7a, 0x25, 0xd9, 0xf5, 0xf8, + 0x1a, 0xc8, 0xc2, 0x85, 0xde, 0x8b, 0x60, 0x50, 0x13, 0xb7, 0xbd, 0x20, 0xc4, 0xf4, 0x16, 0xa1, + 0x75, 0x76, 0xab, 0x8f, 0xd6, 0x6e, 0x2f, 0xa3, 0xd7, 0x33, 0x21, 0x42, 0xe6, 0x3f, 0x0c, 0xb4, + 0x00, 0x23, 0x7a, 0x84, 0x86, 0xdb, 0x51, 0x08, 0xc8, 0xbf, 0x89, 0x21, 0x4a, 0x88, 0xa5, 0x8d, + 0x9b, 0xa6, 0x8d, 0x4e, 0xf7, 0x3a, 0xce, 0x00, 0xb7, 0xa2, 0x4d, 0x0b, 0xaa, 0xe5, 0xd2, 0x4a, + 0xe9, 0xc2, 0x54, 0x53, 0xe9, 0x4b, 0x8d, 0xa9, 0x95, 0xa7, 0x86, 0xc6, 0xd4, 0xcc, 0x77, 0xd1, + 0x29, 0xd2, 0x0f, 0x5d, 0xd2, 0xc5, 0x70, 0x22, 0x17, 0xd6, 0x2a, 0x63, 0x5e, 0x4a, 0xf7, 0x18, + 0xaa, 0x19, 0xc3, 0xed, 0x35, 0x74, 0x56, 0x9d, 0x97, 0x38, 0x98, 0xd2, 0x2c, 0x0c, 0x65, 0x16, + 0xf6, 0x7b, 0x80, 0xa9, 0xf6, 0x88, 0xe7, 0xc7, 0x98, 0x08, 0x9e, 0x1b, 0x9d, 0xe0, 0xe4, 0xb1, + 0x51, 0x3c, 0x3c, 0x89, 0xb6, 0xbd, 0x82, 0x96, 0xb2, 0xe5, 0x89, 0xe5, 0xff, 0x83, 0x81, 0x4e, + 0x8b, 0x60, 0xb5, 0x83, 0xf3, 0x1c, 0xc9, 0x44, 0x53, 0xbe, 0xd3, 0xc5, 0x5c, 0x09, 0xfc, 0x1e, + 0xe5, 0x44, 0xe6, 0x0a, 0x9a, 0x0f, 0x42, 0x42, 0x07, 0x1f, 0x52, 0x2f, 0x14, 0x37, 0x82, 0xdc, + 0x15, 0x6d, 0x46, 0x74, 0x35, 0x52, 0x6f, 0xb7, 0x1f, 0x12, 0x1a, 0x94, 0xa7, 0x57, 0x4a, 0x17, + 0xe6, 0x9a, 0x4a, 0x9f, 0x7d, 0x16, 0x2d, 0xca, 0xb6, 0x09, 0xa3, 0x3f, 0x02, 0xff, 0xaf, 0xb6, + 0x60, 0xd3, 0x1e, 0x90, 0x7c, 0xb3, 0x17, 0xd1, 0x74, 0x80, 0x43, 0xe1, 0x31, 0xac, 0x21, 0x9d, + 0xd1, 0x92, 0x12, 0xd7, 0x98, 0xf7, 0xcb, 0xa2, 0x85, 0xd6, 0x77, 0xc0, 0x51, 0x6f, 0x79, 0xbe, + 0xd3, 0xf1, 0x1e, 0xe1, 0x02, 0x4a, 0xed, 0x32, 0x6c, 0xaf, 0x24, 0x41, 0xc8, 0xae, 0xa3, 0x33, 0x2c, 0x04, 0xd7, 0x08, 0x89, 0x0e, 0xca, 0x7d, 0xc7, 0x3d, 0xd0, 0x16, 0x5f, 0x47, 0xe7, 0x86, 0x84, 0x68, 0x47, 0x83, 0xef, 0xc3, 0x9a, 0x37, 0x71, 0x97, 0xb0, 0xa8, 0x72, 0x8b, 0x92, 0xee, 0xf3, 0x5c, 0xe0, 0x25, 0x74, 0x3e, 0x4b, 0xbe, 0x58, 0x09, 0x07, 0xbd, 0x96, 0x7c, 0x4f, 0x9c, @@ -4743,61 +4751,62 @@ var fileDescriptor_3b4a3aba0ac94bc8 = []byte{ 0x73, 0xd4, 0x89, 0x6e, 0xab, 0x49, 0xf0, 0x46, 0xd1, 0x36, 0x3d, 0x84, 0x7a, 0x0e, 0x75, 0xba, 0x38, 0xc4, 0x34, 0x80, 0xe7, 0xad, 0xf9, 0xb5, 0x3b, 0x63, 0x9e, 0xcb, 0x61, 0x23, 0x2a, 0xf7, 0x85, 0xac, 0x2d, 0x3f, 0xa4, 0x83, 0xa6, 0x24, 0x3c, 0x29, 0x5c, 0xa6, 0xa4, 0xc2, 0xc5, 0xda, - 0x44, 0x2f, 0xa6, 0x40, 0xe6, 0x19, 0x54, 0x3a, 0xc0, 0x03, 0x3e, 0x8b, 0xe8, 0x67, 0x04, 0x3d, - 0x74, 0x3a, 0xfd, 0xf8, 0x26, 0x64, 0x8d, 0xeb, 0x93, 0xeb, 0x06, 0xaf, 0x7b, 0x52, 0x66, 0x88, - 0xa5, 0xfa, 0x21, 0x38, 0xb2, 0xf8, 0xda, 0x20, 0xf9, 0xd5, 0x1d, 0x8e, 0x07, 0x26, 0xd5, 0x9d, - 0xd4, 0x95, 0x59, 0x6f, 0x33, 0x47, 0x97, 0x34, 0x08, 0xdd, 0x2e, 0x5c, 0xf7, 0x89, 0x65, 0x1d, - 0x92, 0x9b, 0x1a, 0x17, 0x53, 0xcf, 0x42, 0x81, 0xaa, 0x24, 0xb6, 0x60, 0xed, 0x7f, 0x97, 0x51, - 0x69, 0x3b, 0x68, 0x9b, 0x3f, 0x31, 0x10, 0x92, 0x18, 0xa9, 0xcb, 0xe3, 0x6f, 0x6f, 0x82, 0xb2, - 0xbe, 0x51, 0x04, 0x25, 0x6e, 0xb6, 0x4f, 0x0d, 0xf4, 0x82, 0xca, 0x4f, 0x5d, 0x1b, 0x5f, 0x9e, - 0x02, 0xb4, 0x6e, 0x16, 0x04, 0x0a, 0x5b, 0x1e, 0xa1, 0x59, 0x11, 0xab, 0xd6, 0xc6, 0x17, 0x16, - 0x63, 0xac, 0xeb, 0xfa, 0x18, 0xa1, 0xfb, 0x57, 0x06, 0x7a, 0x31, 0x4d, 0x07, 0x6d, 0x8c, 0x2f, - 0x2f, 0x05, 0xb5, 0xaa, 0x85, 0xa1, 0xc2, 0xa2, 0x9f, 0x19, 0xe8, 0xb4, 0x42, 0xd2, 0x5c, 0x1d, - 0x5f, 0xa6, 0x8c, 0xb3, 0xbe, 0x59, 0x0c, 0xa7, 0x18, 0xa2, 0x10, 0x36, 0x1a, 0x86, 0xc8, 0x38, - 0x1d, 0x43, 0xb2, 0x28, 0x19, 0x38, 0x2e, 0x12, 0x21, 0xa3, 0x71, 0x5c, 0x12, 0x94, 0xce, 0x71, - 0x19, 0x66, 0x62, 0x60, 0x2d, 0x14, 0x1e, 0x46, 0x63, 0x2d, 0x64, 0x9c, 0xce, 0x5a, 0x64, 0x51, - 0x33, 0xe6, 0xef, 0x0d, 0x64, 0x66, 0x10, 0x33, 0x1a, 0xb3, 0x1b, 0x46, 0x5b, 0x8d, 0x93, 0xa0, - 0x85, 0x69, 0x3f, 0x35, 0xd0, 0xbc, 0x4c, 0xef, 0x5c, 0xd1, 0x91, 0x2a, 0x60, 0xd6, 0x66, 0x21, - 0x98, 0xb0, 0xe2, 0x8f, 0x06, 0x7a, 0x39, 0x8b, 0x58, 0xd1, 0x10, 0x9b, 0x01, 0xb7, 0xb6, 0x4e, - 0x04, 0x17, 0xd6, 0xfd, 0x18, 0xcd, 0x25, 0x14, 0xcc, 0x25, 0xdd, 0x1b, 0x7c, 0x07, 0x87, 0xd6, - 0x8d, 0x02, 0x20, 0xc5, 0x8d, 0x15, 0x3a, 0xe5, 0xaa, 0xd6, 0xa9, 0x10, 0x38, 0x1d, 0x37, 0xce, - 0xe2, 0x58, 0xc0, 0x57, 0x64, 0x86, 0x45, 0xc3, 0x57, 0x24, 0x98, 0x8e, 0xaf, 0x64, 0xb0, 0x31, - 0xe6, 0x63, 0x03, 0x2d, 0xa4, 0xb8, 0x98, 0x75, 0xad, 0x60, 0x26, 0x21, 0xad, 0x77, 0x8a, 0x22, - 0x85, 0x39, 0xbf, 0x33, 0xd0, 0x4b, 0xc3, 0x84, 0xcc, 0x0d, 0x9d, 0xf3, 0x90, 0x02, 0x5b, 0xf5, - 0x13, 0x80, 0x85, 0x5d, 0x9f, 0x19, 0xa8, 0x3c, 0x92, 0xa8, 0xa9, 0x69, 0x6b, 0x18, 0x92, 0x61, - 0x7d, 0xeb, 0xe4, 0x32, 0xd4, 0xf3, 0x9f, 0xc1, 0xe5, 0x6c, 0xea, 0x79, 0x6c, 0x0a, 0xae, 0x75, - 0xfe, 0x47, 0x73, 0x3d, 0x90, 0x6e, 0xa4, 0x89, 0x9e, 0x0d, 0xfd, 0x13, 0xcd, 0xa1, 0x3a, 0xe9, - 0xc6, 0x08, 0x4e, 0xc7, 0x3c, 0x42, 0xa7, 0x62, 0x42, 0xe7, 0xa2, 0x76, 0x22, 0x67, 0x6d, 0x68, - 0x43, 0x94, 0xa5, 0x48, 0x53, 0x3d, 0x1b, 0xba, 0x8e, 0x50, 0x68, 0x29, 0x46, 0xd0, 0x41, 0x60, - 0x51, 0x9a, 0x0c, 0xda, 0x28, 0x92, 0x36, 0x30, 0x97, 0xa9, 0x16, 0x86, 0x2a, 0x59, 0xba, 0x4a, - 0x12, 0x5d, 0xd3, 0x12, 0x9a, 0x00, 0x75, 0xb2, 0xf4, 0x4c, 0xf2, 0x08, 0x6c, 0x51, 0x99, 0x23, - 0x0d, 0x5b, 0x14, 0xa0, 0x8e, 0x2d, 0x99, 0x24, 0x10, 0xd8, 0xa2, 0x52, 0x40, 0xd7, 0x74, 0x4f, - 0x42, 0x9c, 0xfb, 0xdc, 0x2c, 0x08, 0x14, 0xb6, 0xfc, 0xd9, 0x40, 0xaf, 0x64, 0x73, 0x45, 0x3a, - 0xa2, 0xb3, 0x04, 0x58, 0xb7, 0x4f, 0x28, 0x40, 0xb1, 0x31, 0x9b, 0x1a, 0xba, 0xa9, 0x73, 0x6c, - 0x32, 0x04, 0xe8, 0xd8, 0x98, 0xcb, 0xf1, 0x40, 0x30, 0x4e, 0x31, 0x3c, 0xeb, 0x3a, 0xb2, 0x65, - 0xa4, 0x4e, 0x30, 0xce, 0x26, 0x82, 0xcc, 0xbf, 0x1a, 0xe8, 0xdc, 0x68, 0x1a, 0x48, 0x2b, 0xae, - 0x8e, 0x10, 0x62, 0xdd, 0x7d, 0x0e, 0x42, 0xd4, 0x0a, 0x45, 0xe6, 0x94, 0x74, 0x2a, 0x14, 0x09, - 0xa7, 0x55, 0xa1, 0x64, 0xf0, 0x3b, 0xb0, 0x8f, 0x29, 0x76, 0x67, 0x5d, 0xeb, 0xbc, 0x4b, 0x48, - 0x9d, 0x7d, 0xcc, 0xa6, 0x82, 0xe0, 0x52, 0x4f, 0x13, 0x41, 0x1a, 0x97, 0x7a, 0x0a, 0xaa, 0x73, - 0xa9, 0x8f, 0x22, 0x8a, 0xa2, 0x0c, 0x25, 0x8b, 0x0c, 0xda, 0xd4, 0xaf, 0xd7, 0x65, 0xcb, 0xb6, - 0x4e, 0x04, 0x57, 0x92, 0xd0, 0x61, 0x4a, 0xe8, 0x86, 0xd6, 0x3e, 0xa8, 0x60, 0x9d, 0x24, 0x74, - 0x24, 0x45, 0x04, 0xfe, 0xad, 0x10, 0x44, 0x57, 0x75, 0xa5, 0xea, 0x57, 0xe0, 0x59, 0xac, 0x51, - 0xec, 0xdf, 0x32, 0x67, 0xa4, 0xe7, 0xdf, 0x12, 0x52, 0xd3, 0xbf, 0x33, 0xe8, 0x25, 0xf3, 0x37, - 0x06, 0x3a, 0x33, 0x44, 0x2e, 0x5d, 0xd7, 0x16, 0x2b, 0xb0, 0x56, 0xad, 0x38, 0x56, 0x89, 0xcf, - 0x2a, 0x07, 0xa5, 0x11, 0x9f, 0x15, 0xa0, 0x4e, 0x7c, 0xce, 0xa4, 0x9f, 0xa2, 0x92, 0x3b, 0xa1, - 0x9e, 0x2e, 0xe9, 0x1d, 0x5f, 0x76, 0x23, 0xde, 0x28, 0x00, 0x52, 0x1e, 0xaf, 0x24, 0x9a, 0xe8, - 0xb2, 0xae, 0xf7, 0x45, 0x28, 0x9d, 0xc7, 0xab, 0x61, 0xf6, 0x08, 0x8a, 0x6d, 0x99, 0x3b, 0xba, - 0xa2, 0xfd, 0x06, 0x15, 0xc1, 0x74, 0x8a, 0xed, 0x0c, 0x9e, 0x09, 0x2e, 0x96, 0x61, 0x96, 0x49, - 0x63, 0x6d, 0x87, 0xc0, 0x3a, 0x17, 0xcb, 0x48, 0x66, 0xca, 0xfc, 0x93, 0x81, 0x16, 0x33, 0x79, - 0x29, 0x9d, 0x67, 0xcb, 0x0c, 0xbc, 0x75, 0xeb, 0x64, 0x78, 0x25, 0x5e, 0x64, 0x91, 0x59, 0x9b, - 0x5a, 0x81, 0x3a, 0x0d, 0xd7, 0x89, 0x17, 0x39, 0xe4, 0x17, 0xc4, 0xd7, 0x34, 0xf3, 0xb5, 0x51, - 0x98, 0xaf, 0xd2, 0x89, 0xaf, 0x23, 0x38, 0x26, 0x70, 0x77, 0x99, 0x61, 0xba, 0x52, 0x40, 0x64, - 0x83, 0xe8, 0xb8, 0x7b, 0x06, 0xdb, 0x04, 0x61, 0x22, 0xc5, 0x35, 0xad, 0x17, 0x99, 0x5b, 0x84, - 0xd4, 0x09, 0x13, 0xd9, 0xd4, 0x53, 0xad, 0xf9, 0xf9, 0xd3, 0x25, 0xe3, 0x8b, 0xa7, 0x4b, 0xc6, - 0x7f, 0x9e, 0x2e, 0x19, 0xbf, 0x7e, 0xb6, 0x34, 0xf1, 0xc5, 0xb3, 0xa5, 0x89, 0x7f, 0x3e, 0x5b, - 0x9a, 0x78, 0xb8, 0x2e, 0xfd, 0x13, 0xd1, 0x21, 0x2d, 0xab, 0x75, 0xf1, 0x37, 0x57, 0x9f, 0xc8, - 0x7f, 0x40, 0x36, 0xe8, 0xe1, 0x60, 0x77, 0x06, 0xfe, 0xc2, 0xea, 0xd2, 0xff, 0x03, 0x00, 0x00, - 0xff, 0xff, 0x4c, 0x20, 0xb1, 0x3b, 0x64, 0x36, 0x00, 0x00, + 0x44, 0x2f, 0xa6, 0x40, 0xe6, 0x4b, 0xa8, 0x74, 0x80, 0x07, 0x7c, 0x16, 0xd1, 0xcf, 0x08, 0x7a, + 0xe8, 0x74, 0xfa, 0xf1, 0x4d, 0xc8, 0x1a, 0xd7, 0x27, 0xd7, 0x0d, 0x5e, 0xf7, 0xa4, 0xcc, 0x10, + 0x4b, 0xf5, 0x43, 0x70, 0x64, 0xf1, 0xb5, 0x41, 0xf2, 0xab, 0x3b, 0x1c, 0x0f, 0x4c, 0xaa, 0x3b, + 0xa9, 0x2b, 0xb3, 0xde, 0x66, 0x8e, 0x2e, 0x69, 0x90, 0xae, 0xc6, 0x33, 0x8a, 0x65, 0x1d, 0x92, + 0x9b, 0x1a, 0x17, 0x52, 0x1f, 0x2d, 0xd5, 0x11, 0x4f, 0xe2, 0x67, 0x9b, 0xd1, 0x4f, 0x1e, 0x1c, + 0x54, 0xb5, 0xb1, 0x4d, 0x6b, 0xff, 0xbb, 0x8c, 0x4a, 0xdb, 0x41, 0xdb, 0xfc, 0x89, 0x81, 0x90, + 0xc4, 0x51, 0x5d, 0x1e, 0x7f, 0xc3, 0x13, 0x94, 0xf5, 0x8d, 0x22, 0x28, 0x71, 0xd7, 0x7d, 0x6a, + 0xa0, 0x17, 0x54, 0xc6, 0xea, 0xda, 0xf8, 0xf2, 0x14, 0xa0, 0x75, 0xb3, 0x20, 0x50, 0xd8, 0xf2, + 0x08, 0xcd, 0x8a, 0xe8, 0xb5, 0x36, 0xbe, 0xb0, 0x18, 0x63, 0x5d, 0xd7, 0xc7, 0x08, 0xdd, 0xbf, + 0x32, 0xd0, 0x8b, 0x69, 0x82, 0x68, 0x63, 0x7c, 0x79, 0x29, 0xa8, 0x55, 0x2d, 0x0c, 0x15, 0x16, + 0xfd, 0xcc, 0x40, 0xa7, 0x15, 0xda, 0xe6, 0xea, 0xf8, 0x32, 0x65, 0x9c, 0xf5, 0xcd, 0x62, 0x38, + 0xc5, 0x10, 0x85, 0xc2, 0xd1, 0x30, 0x44, 0xc6, 0xe9, 0x18, 0x92, 0x45, 0xd2, 0xc0, 0x71, 0x91, + 0x28, 0x1a, 0x8d, 0xe3, 0x92, 0xa0, 0x74, 0x8e, 0xcb, 0x30, 0x37, 0x03, 0x6b, 0xa1, 0x30, 0x33, + 0x1a, 0x6b, 0x21, 0xe3, 0x74, 0xd6, 0x22, 0x8b, 0xac, 0x31, 0x7f, 0x6f, 0x20, 0x33, 0x83, 0xaa, + 0xd1, 0x98, 0xdd, 0x30, 0xda, 0x6a, 0x9c, 0x04, 0x2d, 0x4c, 0xfb, 0xa9, 0x81, 0xe6, 0x65, 0xc2, + 0xe7, 0x8a, 0x8e, 0x54, 0x01, 0xb3, 0x36, 0x0b, 0xc1, 0x84, 0x15, 0x7f, 0x34, 0xd0, 0xcb, 0x59, + 0x54, 0x8b, 0x86, 0xd8, 0x0c, 0xb8, 0xb5, 0x75, 0x22, 0xb8, 0xb0, 0xee, 0xc7, 0x68, 0x2e, 0x21, + 0x65, 0x2e, 0xe9, 0xde, 0xe0, 0x3b, 0x38, 0xb4, 0x6e, 0x14, 0x00, 0x29, 0x6e, 0xac, 0x10, 0x2c, + 0x57, 0xb5, 0x4e, 0x85, 0xc0, 0xe9, 0xb8, 0x71, 0x16, 0xeb, 0x02, 0xbe, 0x22, 0x73, 0x2e, 0x1a, + 0xbe, 0x22, 0xc1, 0x74, 0x7c, 0x25, 0x83, 0x9f, 0x31, 0x1f, 0x1b, 0x68, 0x21, 0xc5, 0xce, 0xac, + 0x6b, 0x05, 0x33, 0x09, 0x69, 0xbd, 0x53, 0x14, 0x29, 0xcc, 0xf9, 0x9d, 0x81, 0xce, 0x0c, 0x53, + 0x34, 0x37, 0x74, 0xce, 0x43, 0x0a, 0x6c, 0xd5, 0x4f, 0x00, 0x16, 0x76, 0x7d, 0x66, 0xa0, 0xf2, + 0x48, 0xea, 0xa6, 0xa6, 0xad, 0x61, 0x48, 0x86, 0xf5, 0xad, 0x93, 0xcb, 0x50, 0xcf, 0x7f, 0x06, + 0xbb, 0xb3, 0xa9, 0xe7, 0xb1, 0x29, 0xb8, 0xd6, 0xf9, 0x1f, 0xcd, 0xfe, 0x40, 0xba, 0x91, 0xa6, + 0x7e, 0x36, 0xf4, 0x4f, 0x34, 0x87, 0xea, 0xa4, 0x1b, 0x23, 0x58, 0x1e, 0xf3, 0x08, 0x9d, 0x8a, + 0x29, 0x9e, 0x8b, 0xda, 0x89, 0x9c, 0xb5, 0xa1, 0x0d, 0x51, 0x96, 0x22, 0x4d, 0xfe, 0x6c, 0xe8, + 0x3a, 0x42, 0xa1, 0xa5, 0x18, 0x41, 0x10, 0x81, 0x45, 0x69, 0x7a, 0x68, 0xa3, 0x48, 0xda, 0xc0, + 0x5c, 0xa6, 0x5a, 0x18, 0xaa, 0x64, 0xe9, 0x2a, 0x6d, 0x74, 0x4d, 0x4b, 0x68, 0x02, 0xd4, 0xc9, + 0xd2, 0x33, 0xe9, 0x24, 0xb0, 0x45, 0xe5, 0x92, 0x34, 0x6c, 0x51, 0x80, 0x3a, 0xb6, 0x64, 0xd2, + 0x42, 0x60, 0x8b, 0x4a, 0x0a, 0x5d, 0xd3, 0x3d, 0x09, 0x71, 0xee, 0x73, 0xb3, 0x20, 0x50, 0xd8, + 0xf2, 0x67, 0x03, 0xbd, 0x92, 0xcd, 0x1e, 0xe9, 0x88, 0xce, 0x12, 0x60, 0xdd, 0x3e, 0xa1, 0x00, + 0xc5, 0xc6, 0x6c, 0xb2, 0xe8, 0xa6, 0xce, 0xb1, 0xc9, 0x10, 0xa0, 0x63, 0x63, 0x2e, 0xeb, 0x03, + 0xc1, 0x38, 0xc5, 0xf9, 0xac, 0xeb, 0xc8, 0x96, 0x91, 0x3a, 0xc1, 0x38, 0x9b, 0x1a, 0x32, 0xff, + 0x6a, 0xa0, 0x73, 0xa3, 0x89, 0x21, 0xad, 0xb8, 0x3a, 0x42, 0x88, 0x75, 0xf7, 0x39, 0x08, 0x51, + 0x2b, 0x14, 0x99, 0x65, 0xd2, 0xa9, 0x50, 0x24, 0x9c, 0x56, 0x85, 0x92, 0xc1, 0xf8, 0xc0, 0x3e, + 0xa6, 0xf8, 0x9e, 0x75, 0xad, 0xf3, 0x2e, 0x21, 0x75, 0xf6, 0x31, 0x9b, 0x1c, 0x82, 0x4b, 0x3d, + 0x4d, 0x0d, 0x69, 0x5c, 0xea, 0x29, 0xa8, 0xce, 0xa5, 0x3e, 0x8a, 0x3a, 0x8a, 0x32, 0x94, 0x2c, + 0x7a, 0x68, 0x53, 0xbf, 0x5e, 0x97, 0x2d, 0xdb, 0x3a, 0x11, 0x5c, 0x49, 0x42, 0x87, 0x49, 0xa2, + 0x1b, 0x5a, 0xfb, 0xa0, 0x82, 0x75, 0x92, 0xd0, 0x91, 0xa4, 0x11, 0xf8, 0xb7, 0x42, 0x19, 0x5d, + 0xd5, 0x95, 0xaa, 0x5f, 0x81, 0x67, 0xf1, 0x48, 0xb1, 0x7f, 0xcb, 0x2c, 0x92, 0x9e, 0x7f, 0x4b, + 0x48, 0x4d, 0xff, 0xce, 0x20, 0x9c, 0xcc, 0xdf, 0x18, 0xe8, 0xa5, 0x21, 0xba, 0xe9, 0xba, 0xb6, + 0x58, 0x81, 0xb5, 0x6a, 0xc5, 0xb1, 0x4a, 0x7c, 0x56, 0x59, 0x29, 0x8d, 0xf8, 0xac, 0x00, 0x75, + 0xe2, 0x73, 0x26, 0x21, 0x15, 0x95, 0xdc, 0x09, 0x19, 0x75, 0x49, 0xef, 0xf8, 0xb2, 0x1b, 0xf1, + 0x46, 0x01, 0x90, 0xf2, 0x78, 0x25, 0x11, 0x47, 0x97, 0x75, 0xbd, 0x2f, 0x42, 0xe9, 0x3c, 0x5e, + 0x0d, 0xf3, 0x49, 0x50, 0x6c, 0xcb, 0x6c, 0xd2, 0x15, 0xed, 0x37, 0xa8, 0x08, 0xa6, 0x53, 0x6c, + 0x67, 0x30, 0x4f, 0x70, 0xb1, 0x0c, 0xf3, 0x4e, 0x1a, 0x6b, 0x3b, 0x04, 0xd6, 0xb9, 0x58, 0x46, + 0x72, 0x55, 0xe6, 0x9f, 0x0c, 0xb4, 0x98, 0xc9, 0x54, 0xe9, 0x3c, 0x5b, 0x66, 0xe0, 0xad, 0x5b, + 0x27, 0xc3, 0x2b, 0xf1, 0x22, 0x8b, 0xde, 0xda, 0xd4, 0x0a, 0xd4, 0x69, 0xb8, 0x4e, 0xbc, 0xc8, + 0xa1, 0xc3, 0x20, 0xbe, 0xa6, 0xb9, 0xb0, 0x8d, 0xc2, 0x0c, 0x96, 0x4e, 0x7c, 0x1d, 0xc1, 0x3a, + 0x81, 0xbb, 0xcb, 0x9c, 0xd3, 0x95, 0x02, 0x22, 0x1b, 0x44, 0xc7, 0xdd, 0x33, 0xf8, 0x27, 0x08, + 0x13, 0x29, 0xf6, 0x69, 0xbd, 0xc8, 0xdc, 0x22, 0xa4, 0x4e, 0x98, 0xc8, 0xa6, 0x9e, 0x6a, 0xcd, + 0xcf, 0x9f, 0x2e, 0x19, 0x5f, 0x3c, 0x5d, 0x32, 0xfe, 0xf3, 0x74, 0xc9, 0xf8, 0xf5, 0xb3, 0xa5, + 0x89, 0x2f, 0x9e, 0x2d, 0x4d, 0xfc, 0xf3, 0xd9, 0xd2, 0xc4, 0xc3, 0x75, 0xe9, 0x1f, 0x8d, 0x0e, + 0x69, 0x59, 0xad, 0x8b, 0xbf, 0xc2, 0xfa, 0x44, 0xfe, 0x93, 0xb2, 0x41, 0x0f, 0x07, 0xbb, 0x33, + 0xf0, 0x37, 0x57, 0x97, 0xfe, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x48, 0xf2, 0xc1, 0x76, 0x36, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -9681,6 +9690,16 @@ func (m *MsgEncounterClose) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Won { + i-- + if m.Won { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } if len(m.User) > 0 { i -= len(m.User) copy(dAtA[i:], m.User) @@ -11113,6 +11132,9 @@ func (m *MsgEncounterClose) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } + if m.Won { + n += 2 + } return n } @@ -20061,6 +20083,26 @@ func (m *MsgEncounterClose) Unmarshal(dAtA []byte) error { } m.User = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Won", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Won = bool(v != 0) default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) From 1530ecf2e5c88d3299bea0fbabac318e4443b357 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Fri, 13 Dec 2024 03:55:07 +0100 Subject: [PATCH 13/20] feat(#237): Generated queries --- docs/static/openapi.yml | 136 ++ go.mod | 2 + go.sum | 3 + proto/cardchain/cardchain/encounters.proto | 18 +- proto/cardchain/cardchain/query.proto | 313 +-- proto/cardchain/cardchain/tx.proto | 695 +++---- x/cardchain/client/cli/query.go | 8 + x/cardchain/client/cli/query_q_encounter.go | 50 + .../cli/query_q_encounter_with_image.go | 50 + x/cardchain/client/cli/query_q_encounters.go | 42 + .../cli/query_q_encounters_with_image.go | 42 + x/cardchain/client/cli/query_q_encouter.go | 50 + .../client/cli/query_q_encouter_with_image.go | 50 + x/cardchain/client/cli/query_q_encouters.go | 42 + x/cardchain/keeper/query_q_encounter.go | 23 + .../keeper/query_q_encounter_with_image.go | 23 + x/cardchain/keeper/query_q_encounters.go | 23 + .../keeper/query_q_encounters_with_image.go | 23 + x/cardchain/keeper/query_q_encouter.go | 23 + .../keeper/query_q_encouter_with_image.go | 23 + x/cardchain/keeper/query_q_encouters.go | 23 + x/cardchain/types/encounters.pb.go | 278 ++- x/cardchain/types/query.pb.go | 1681 ++++++++++++++--- x/cardchain/types/query.pb.gw.go | 332 ++++ 24 files changed, 3184 insertions(+), 769 deletions(-) create mode 100644 x/cardchain/client/cli/query_q_encounter.go create mode 100644 x/cardchain/client/cli/query_q_encounter_with_image.go create mode 100644 x/cardchain/client/cli/query_q_encounters.go create mode 100644 x/cardchain/client/cli/query_q_encounters_with_image.go create mode 100644 x/cardchain/client/cli/query_q_encouter.go create mode 100644 x/cardchain/client/cli/query_q_encouter_with_image.go create mode 100644 x/cardchain/client/cli/query_q_encouters.go create mode 100644 x/cardchain/keeper/query_q_encounter.go create mode 100644 x/cardchain/keeper/query_q_encounter_with_image.go create mode 100644 x/cardchain/keeper/query_q_encounters.go create mode 100644 x/cardchain/keeper/query_q_encounters_with_image.go create mode 100644 x/cardchain/keeper/query_q_encouter.go create mode 100644 x/cardchain/keeper/query_q_encouter_with_image.go create mode 100644 x/cardchain/keeper/query_q_encouters.go diff --git a/docs/static/openapi.yml b/docs/static/openapi.yml index 704d8e8c..b2c7cfde 100644 --- a/docs/static/openapi.yml +++ b/docs/static/openapi.yml @@ -33452,6 +33452,134 @@ paths: format: uint64 tags: - Query + /DecentralCardGame/Cardchain/cardchain/q_encounter/{id}: + get: + summary: Queries a list of QEncounter items. + operationId: DecentralCardGameCardchainCardchainQEncounter + responses: + '200': + description: A successful response. + schema: + type: object + default: + description: An unexpected error response. + schema: + type: object + properties: + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + '@type': + type: string + additionalProperties: {} + parameters: + - name: id + in: path + required: true + type: string + format: uint64 + tags: + - Query + /DecentralCardGame/Cardchain/cardchain/q_encounter_with_image/{id}: + get: + summary: Queries a list of QEncounterWithImage items. + operationId: DecentralCardGameCardchainCardchainQEncounterWithImage + responses: + '200': + description: A successful response. + schema: + type: object + default: + description: An unexpected error response. + schema: + type: object + properties: + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + '@type': + type: string + additionalProperties: {} + parameters: + - name: id + in: path + required: true + type: string + format: uint64 + tags: + - Query + /DecentralCardGame/Cardchain/cardchain/q_encounters: + get: + summary: Queries a list of QEncounters items. + operationId: DecentralCardGameCardchainCardchainQEncounters + responses: + '200': + description: A successful response. + schema: + type: object + default: + description: An unexpected error response. + schema: + type: object + properties: + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + '@type': + type: string + additionalProperties: {} + tags: + - Query + /DecentralCardGame/Cardchain/cardchain/q_encounters_with_image: + get: + summary: Queries a list of QEncountersWithImage items. + operationId: DecentralCardGameCardchainCardchainQEncountersWithImage + responses: + '200': + description: A successful response. + schema: + type: object + default: + description: An unexpected error response. + schema: + type: object + properties: + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + '@type': + type: string + additionalProperties: {} + tags: + - Query /DecentralCardGame/Cardchain/cardchain/q_match/{matchId}: get: summary: Queries a list of QMatch items. @@ -69550,6 +69678,14 @@ definitions: items: type: string format: uint64 + DecentralCardGame.cardchain.cardchain.QueryQEncounterResponse: + type: object + DecentralCardGame.cardchain.cardchain.QueryQEncounterWithImageResponse: + type: object + DecentralCardGame.cardchain.cardchain.QueryQEncountersResponse: + type: object + DecentralCardGame.cardchain.cardchain.QueryQEncountersWithImageResponse: + type: object DecentralCardGame.cardchain.cardchain.QueryQMatchesResponse: type: object properties: diff --git a/go.mod b/go.mod index 8e966f53..75ed04d2 100644 --- a/go.mod +++ b/go.mod @@ -68,6 +68,7 @@ require ( github.com/fatih/camelcase v1.0.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/ghodss/yaml v1.0.0 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect @@ -88,6 +89,7 @@ require ( github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect diff --git a/go.sum b/go.sum index dd0cb740..5bb04eb9 100644 --- a/go.sum +++ b/go.sum @@ -1191,6 +1191,7 @@ github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= @@ -1579,6 +1580,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= diff --git a/proto/cardchain/cardchain/encounters.proto b/proto/cardchain/cardchain/encounters.proto index 795f6524..ea320498 100644 --- a/proto/cardchain/cardchain/encounters.proto +++ b/proto/cardchain/cardchain/encounters.proto @@ -5,12 +5,16 @@ import "gogoproto/gogo.proto"; option go_package = "github.com/DecentralCardGame/Cardchain/x/cardchain/types"; - message Encounter { - uint64 Id = 1; - repeated uint64 Drawlist = 2; - bool proven = 3; - string owner = 4; - map parameters = 5; - uint64 imageId = 6; + uint64 Id = 1; + repeated uint64 Drawlist = 2; + bool proven = 3; + string owner = 4; + map parameters = 5; + uint64 imageId = 6; +} + +message EncounterWithImage { + Encounter encounter = 1; + bytes image = 2; } diff --git a/proto/cardchain/cardchain/query.proto b/proto/cardchain/cardchain/query.proto index 8a77650d..20c29db4 100644 --- a/proto/cardchain/cardchain/query.proto +++ b/proto/cardchain/cardchain/query.proto @@ -24,113 +24,145 @@ option go_package = "github.com/DecentralCardGame/Cardchain/x/cardchain/types"; service Query { // Parameters queries the parameters of the module. - rpc Params (QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/params"; - + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/params"; } // Queries a list of QCard items. - rpc QCard (QueryQCardRequest) returns (OutpCard) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_card/{cardId}"; - + rpc QCard(QueryQCardRequest) returns (OutpCard) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_card/{cardId}"; } // Queries a list of QCardContent items. - rpc QCardContent (QueryQCardContentRequest) returns (QueryQCardContentResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_card_content/{cardId}"; - + rpc QCardContent(QueryQCardContentRequest) + returns (QueryQCardContentResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_card_content/{cardId}"; } // Queries a list of QUser items. - rpc QUser (QueryQUserRequest) returns (User) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_user/{address}"; - + rpc QUser(QueryQUserRequest) returns (User) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_user/{address}"; } // Queries a list of QCardchainInfo items. - rpc QCardchainInfo (QueryQCardchainInfoRequest) returns (QueryQCardchainInfoResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_cardchain_info"; - + rpc QCardchainInfo(QueryQCardchainInfoRequest) + returns (QueryQCardchainInfoResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_cardchain_info"; } // Queries a list of QVotingResults items. - rpc QVotingResults (QueryQVotingResultsRequest) returns (QueryQVotingResultsResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_voting_results"; - + rpc QVotingResults(QueryQVotingResultsRequest) + returns (QueryQVotingResultsResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_voting_results"; } // Queries a list of QCards items. - rpc QCards (QueryQCardsRequest) returns (QueryQCardsResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_cards"; - + rpc QCards(QueryQCardsRequest) returns (QueryQCardsResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_cards"; } // Queries a list of QMatch items. - rpc QMatch (QueryQMatchRequest) returns (Match) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_match/{matchId}"; - + rpc QMatch(QueryQMatchRequest) returns (Match) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_match/{matchId}"; } // Queries a list of QSet items. - rpc QSet (QueryQSetRequest) returns (OutpSet) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_set/{setId}"; - + rpc QSet(QueryQSetRequest) returns (OutpSet) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_set/{setId}"; } // Queries a list of QSellOffer items. - rpc QSellOffer (QueryQSellOfferRequest) returns (SellOffer) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_sell_offer/{sellOfferId}"; - + rpc QSellOffer(QueryQSellOfferRequest) returns (SellOffer) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_sell_offer/{sellOfferId}"; } // Queries a list of QCouncil items. - rpc QCouncil (QueryQCouncilRequest) returns (Council) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_council/{councilId}"; - + rpc QCouncil(QueryQCouncilRequest) returns (Council) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_council/{councilId}"; } // Queries a list of QMatches items. - rpc QMatches (QueryQMatchesRequest) returns (QueryQMatchesResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_matches"; - + rpc QMatches(QueryQMatchesRequest) returns (QueryQMatchesResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_matches"; } // Queries a list of QSellOffers items. - rpc QSellOffers (QueryQSellOffersRequest) returns (QueryQSellOffersResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_sell_offers/{status}"; - + rpc QSellOffers(QueryQSellOffersRequest) returns (QueryQSellOffersResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_sell_offers/{status}"; } // Queries a list of QServer items. - rpc QServer (QueryQServerRequest) returns (Server) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_server/{id}"; - + rpc QServer(QueryQServerRequest) returns (Server) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_server/{id}"; } // Queries a list of QSets items. - rpc QSets (QueryQSetsRequest) returns (QueryQSetsResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_sets/{status}/{ignoreStatus}"; - + rpc QSets(QueryQSetsRequest) returns (QueryQSetsResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_sets/{status}/{ignoreStatus}"; } // Queries a list of RarityDistribution items. - rpc RarityDistribution (QueryRarityDistributionRequest) returns (QueryRarityDistributionResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/rarity_distribution/{setId}"; - + rpc RarityDistribution(QueryRarityDistributionRequest) + returns (QueryRarityDistributionResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/rarity_distribution/{setId}"; } // this line is used by starport scaffolding # 2 // Queries a list of QCardContents items. - rpc QCardContents (QueryQCardContentsRequest) returns (QueryQCardContentsResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_card_contents/{cardIds}"; - + rpc QCardContents(QueryQCardContentsRequest) + returns (QueryQCardContentsResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_card_contents/{cardIds}"; } // Queries a list of QAccountFromZealy items. - rpc QAccountFromZealy (QueryQAccountFromZealyRequest) returns (QueryQAccountFromZealyResponse) { - option (google.api.http).get = "/DecentralCardGame/Cardchain/cardchain/q_account_from_zealy/{zealyId}"; + rpc QAccountFromZealy(QueryQAccountFromZealyRequest) + returns (QueryQAccountFromZealyResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_account_from_zealy/{zealyId}"; + } + + // Queries a list of QEncounters items. + rpc QEncounters(QueryQEncountersRequest) returns (QueryQEncountersResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_encounters"; + } + + // Queries a list of QEncounter items. + rpc QEncounter(QueryQEncounterRequest) returns (QueryQEncounterResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_encounter/{id}"; + } + + // Queries a list of QEncountersWithImage items. + rpc QEncountersWithImage(QueryQEncountersWithImageRequest) + returns (QueryQEncountersWithImageResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_encounters_with_image"; + } + // Queries a list of QEncounterWithImage items. + rpc QEncounterWithImage(QueryQEncounterWithImageRequest) + returns (QueryQEncounterWithImageResponse) { + option (google.api.http).get = + "/DecentralCardGame/Cardchain/cardchain/q_encounter_with_image/{id}"; } } // QueryParamsRequest is request type for the Query/Params RPC method. @@ -140,96 +172,79 @@ message QueryParamsRequest {} message QueryParamsResponse { // params holds all the parameters of this module. - Params params = 1 [(gogoproto.nullable) = false]; + Params params = 1 [ (gogoproto.nullable) = false ]; } -message QueryQCardRequest { - string cardId = 1; -} +message QueryQCardRequest { string cardId = 1; } -message QueryQCardContentRequest { - uint64 cardId = 1; -} +message QueryQCardContentRequest { uint64 cardId = 1; } message QueryQCardContentResponse { string content = 1; - string hash = 2; + string hash = 2; } -message QueryQUserRequest { - string address = 1; -} +message QueryQUserRequest { string address = 1; } message QueryQCardchainInfoRequest {} message QueryQCardchainInfoResponse { - string cardAuctionPrice = 1 [(gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin"]; - repeated uint64 activeSets = 2; - uint64 cardsNumber = 3; - uint64 matchesNumber = 4; - uint64 sellOffersNumber = 5; - uint64 councilsNumber = 6; - uint64 lastCardModified = 7; + string cardAuctionPrice = 1 [ + (gogoproto.nullable) = false, + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin" + ]; + repeated uint64 activeSets = 2; + uint64 cardsNumber = 3; + uint64 matchesNumber = 4; + uint64 sellOffersNumber = 5; + uint64 councilsNumber = 6; + uint64 lastCardModified = 7; } message QueryQVotingResultsRequest {} -message QueryQVotingResultsResponse { - VotingResults lastVotingResults = 1; -} +message QueryQVotingResultsResponse { VotingResults lastVotingResults = 1; } message QueryQCardsRequest { - string owner = 1; - repeated Status statuses = 2; - repeated CardType cardTypes = 3; - repeated CardClass classes = 4; - string sortBy = 5; - string nameContains = 6; - string keywordsContains = 7; - string notesContains = 8; - bool onlyStarterCard = 9; - bool onlyBalanceAnchors = 10; - repeated CardRarity rarities = 11; - bool multiClassOnly = 12; + string owner = 1; + repeated Status statuses = 2; + repeated CardType cardTypes = 3; + repeated CardClass classes = 4; + string sortBy = 5; + string nameContains = 6; + string keywordsContains = 7; + string notesContains = 8; + bool onlyStarterCard = 9; + bool onlyBalanceAnchors = 10; + repeated CardRarity rarities = 11; + bool multiClassOnly = 12; } -message QueryQCardsResponse { - repeated uint64 cardsList = 1; -} +message QueryQCardsResponse { repeated uint64 cardsList = 1; } -message QueryQMatchRequest { - uint64 matchId = 1; -} +message QueryQMatchRequest { uint64 matchId = 1; } -message QueryQSetRequest { - uint64 setId = 1; -} +message QueryQSetRequest { uint64 setId = 1; } -message QueryQSellOfferRequest { - uint64 sellOfferId = 1; -} +message QueryQSellOfferRequest { uint64 sellOfferId = 1; } -message QueryQCouncilRequest { - uint64 councilId = 1; -} +message QueryQCouncilRequest { uint64 councilId = 1; } message QueryQMatchesRequest { - uint64 timestampDown = 1; - uint64 timestampUp = 2; - repeated string containsUsers = 3; - string reporter = 4; - Outcome outcome = 5; - repeated uint64 cardsPlayed = 6; - IgnoreMatches ignore = 7; + uint64 timestampDown = 1; + uint64 timestampUp = 2; + repeated string containsUsers = 3; + string reporter = 4; + Outcome outcome = 5; + repeated uint64 cardsPlayed = 6; + IgnoreMatches ignore = 7; } -message IgnoreMatches { - bool outcome = 1; -} +message IgnoreMatches { bool outcome = 1; } message QueryQMatchesResponse { repeated uint64 matchesList = 1; - repeated Match matches = 2; + repeated Match matches = 2; } /* @@ -244,67 +259,71 @@ message QueryQMatchesResponse { } Query query = 1; } - */message QueryQSellOffersRequest { - string priceDown = 1; - string priceUp = 2; - string seller = 3; - string buyer = 4; - uint64 card = 5; - SellOfferStatus status = 6; - IgnoreSellOffers ignore = 7; + */ +message QueryQSellOffersRequest { + string priceDown = 1; + string priceUp = 2; + string seller = 3; + string buyer = 4; + uint64 card = 5; + SellOfferStatus status = 6; + IgnoreSellOffers ignore = 7; } message IgnoreSellOffers { bool status = 1; - bool card = 2; + bool card = 2; } message QueryQSellOffersResponse { - repeated uint64 sellOffersIds = 1; - repeated SellOffer sellOffers = 2; + repeated uint64 sellOffersIds = 1; + repeated SellOffer sellOffers = 2; } -message QueryQServerRequest { - uint64 id = 1; -} +message QueryQServerRequest { uint64 id = 1; } message QueryQServerResponse {} message QueryQSetsRequest { - CStatus status = 1; - bool ignoreStatus = 2; - repeated string contributors = 3; - repeated uint64 containsCards = 4; - string owner = 5; + CStatus status = 1; + bool ignoreStatus = 2; + repeated string contributors = 3; + repeated uint64 containsCards = 4; + string owner = 5; } -message QueryQSetsResponse { - repeated uint64 setIds = 1; -} +message QueryQSetsResponse { repeated uint64 setIds = 1; } -message QueryRarityDistributionRequest { - uint64 setId = 1; -} +message QueryRarityDistributionRequest { uint64 setId = 1; } message QueryRarityDistributionResponse { repeated uint32 current = 1; - repeated uint32 wanted = 2; + repeated uint32 wanted = 2; } // this line is used by starport scaffolding # 3 -message QueryQCardContentsRequest { - repeated uint64 cardIds = 1; -} +message QueryQCardContentsRequest { repeated uint64 cardIds = 1; } message QueryQCardContentsResponse { repeated QueryQCardContentResponse cards = 1; } -message QueryQAccountFromZealyRequest { - string zealyId = 1; -} +message QueryQAccountFromZealyRequest { string zealyId = 1; } -message QueryQAccountFromZealyResponse { - string address = 1; -} +message QueryQAccountFromZealyResponse { string address = 1; } + +message QueryQEncountersRequest {} + +message QueryQEncountersResponse {} + +message QueryQEncounterRequest { uint64 id = 1; } + +message QueryQEncounterResponse {} + +message QueryQEncountersWithImageRequest {} + +message QueryQEncountersWithImageResponse {} + +message QueryQEncounterWithImageRequest { uint64 id = 1; } +message QueryQEncounterWithImageResponse {} diff --git a/proto/cardchain/cardchain/tx.proto b/proto/cardchain/cardchain/tx.proto index b6d59f3e..ac74866a 100644 --- a/proto/cardchain/cardchain/tx.proto +++ b/proto/cardchain/cardchain/tx.proto @@ -15,447 +15,452 @@ option go_package = "github.com/DecentralCardGame/Cardchain/x/cardchain/types"; // Msg defines the Msg service. service Msg { - rpc Createuser (MsgCreateuser ) returns (MsgCreateuserResponse ); - rpc BuyCardScheme (MsgBuyCardScheme ) returns (MsgBuyCardSchemeResponse ); - rpc VoteCard (MsgVoteCard ) returns (MsgVoteCardResponse ); - rpc SaveCardContent (MsgSaveCardContent ) returns (MsgSaveCardContentResponse ); - rpc TransferCard (MsgTransferCard ) returns (MsgTransferCardResponse ); - rpc DonateToCard (MsgDonateToCard ) returns (MsgDonateToCardResponse ); - rpc AddArtwork (MsgAddArtwork ) returns (MsgAddArtworkResponse ); - rpc ChangeArtist (MsgChangeArtist ) returns (MsgChangeArtistResponse ); - rpc RegisterForCouncil (MsgRegisterForCouncil ) returns (MsgRegisterForCouncilResponse ); - rpc ReportMatch (MsgReportMatch ) returns (MsgReportMatchResponse ); - rpc ApointMatchReporter (MsgApointMatchReporter ) returns (MsgApointMatchReporterResponse ); - rpc CreateSet (MsgCreateSet ) returns (MsgCreateSetResponse ); - rpc AddCardToSet (MsgAddCardToSet ) returns (MsgAddCardToSetResponse ); - rpc FinalizeSet (MsgFinalizeSet ) returns (MsgFinalizeSetResponse ); - rpc BuyBoosterPack (MsgBuyBoosterPack ) returns (MsgBuyBoosterPackResponse ); - rpc RemoveCardFromSet (MsgRemoveCardFromSet ) returns (MsgRemoveCardFromSetResponse ); - rpc RemoveContributorFromSet (MsgRemoveContributorFromSet ) returns (MsgRemoveContributorFromSetResponse ); - rpc AddContributorToSet (MsgAddContributorToSet ) returns (MsgAddContributorToSetResponse ); - rpc CreateSellOffer (MsgCreateSellOffer ) returns (MsgCreateSellOfferResponse ); - rpc BuyCard (MsgBuyCard ) returns (MsgBuyCardResponse ); - rpc RemoveSellOffer (MsgRemoveSellOffer ) returns (MsgRemoveSellOfferResponse ); - rpc AddArtworkToSet (MsgAddArtworkToSet ) returns (MsgAddArtworkToSetResponse ); - rpc AddStoryToSet (MsgAddStoryToSet ) returns (MsgAddStoryToSetResponse ); - rpc SetCardRarity (MsgSetCardRarity ) returns (MsgSetCardRarityResponse ); - rpc CreateCouncil (MsgCreateCouncil ) returns (MsgCreateCouncilResponse ); - rpc CommitCouncilResponse (MsgCommitCouncilResponse ) returns (MsgCommitCouncilResponseResponse ); - rpc RevealCouncilResponse (MsgRevealCouncilResponse ) returns (MsgRevealCouncilResponseResponse ); - rpc RestartCouncil (MsgRestartCouncil ) returns (MsgRestartCouncilResponse ); - rpc RewokeCouncilRegistration (MsgRewokeCouncilRegistration) returns (MsgRewokeCouncilRegistrationResponse); - rpc ConfirmMatch (MsgConfirmMatch ) returns (MsgConfirmMatchResponse ); - rpc SetProfileCard (MsgSetProfileCard ) returns (MsgSetProfileCardResponse ); - rpc OpenBoosterPack (MsgOpenBoosterPack ) returns (MsgOpenBoosterPackResponse ); - rpc TransferBoosterPack (MsgTransferBoosterPack ) returns (MsgTransferBoosterPackResponse ); - rpc SetSetStoryWriter (MsgSetSetStoryWriter ) returns (MsgSetSetStoryWriterResponse ); - rpc SetSetArtist (MsgSetSetArtist ) returns (MsgSetSetArtistResponse ); - rpc SetUserWebsite (MsgSetUserWebsite ) returns (MsgSetUserWebsiteResponse ); - rpc SetUserBiography (MsgSetUserBiography ) returns (MsgSetUserBiographyResponse ); + rpc Createuser(MsgCreateuser) returns (MsgCreateuserResponse); + rpc BuyCardScheme(MsgBuyCardScheme) returns (MsgBuyCardSchemeResponse); + rpc VoteCard(MsgVoteCard) returns (MsgVoteCardResponse); + rpc SaveCardContent(MsgSaveCardContent) returns (MsgSaveCardContentResponse); + rpc TransferCard(MsgTransferCard) returns (MsgTransferCardResponse); + rpc DonateToCard(MsgDonateToCard) returns (MsgDonateToCardResponse); + rpc AddArtwork(MsgAddArtwork) returns (MsgAddArtworkResponse); + rpc ChangeArtist(MsgChangeArtist) returns (MsgChangeArtistResponse); + rpc RegisterForCouncil(MsgRegisterForCouncil) + returns (MsgRegisterForCouncilResponse); + rpc ReportMatch(MsgReportMatch) returns (MsgReportMatchResponse); + rpc ApointMatchReporter(MsgApointMatchReporter) + returns (MsgApointMatchReporterResponse); + rpc CreateSet(MsgCreateSet) returns (MsgCreateSetResponse); + rpc AddCardToSet(MsgAddCardToSet) returns (MsgAddCardToSetResponse); + rpc FinalizeSet(MsgFinalizeSet) returns (MsgFinalizeSetResponse); + rpc BuyBoosterPack(MsgBuyBoosterPack) returns (MsgBuyBoosterPackResponse); + rpc RemoveCardFromSet(MsgRemoveCardFromSet) + returns (MsgRemoveCardFromSetResponse); + rpc RemoveContributorFromSet(MsgRemoveContributorFromSet) + returns (MsgRemoveContributorFromSetResponse); + rpc AddContributorToSet(MsgAddContributorToSet) + returns (MsgAddContributorToSetResponse); + rpc CreateSellOffer(MsgCreateSellOffer) returns (MsgCreateSellOfferResponse); + rpc BuyCard(MsgBuyCard) returns (MsgBuyCardResponse); + rpc RemoveSellOffer(MsgRemoveSellOffer) returns (MsgRemoveSellOfferResponse); + rpc AddArtworkToSet(MsgAddArtworkToSet) returns (MsgAddArtworkToSetResponse); + rpc AddStoryToSet(MsgAddStoryToSet) returns (MsgAddStoryToSetResponse); + rpc SetCardRarity(MsgSetCardRarity) returns (MsgSetCardRarityResponse); + rpc CreateCouncil(MsgCreateCouncil) returns (MsgCreateCouncilResponse); + rpc CommitCouncilResponse(MsgCommitCouncilResponse) + returns (MsgCommitCouncilResponseResponse); + rpc RevealCouncilResponse(MsgRevealCouncilResponse) + returns (MsgRevealCouncilResponseResponse); + rpc RestartCouncil(MsgRestartCouncil) returns (MsgRestartCouncilResponse); + rpc RewokeCouncilRegistration(MsgRewokeCouncilRegistration) + returns (MsgRewokeCouncilRegistrationResponse); + rpc ConfirmMatch(MsgConfirmMatch) returns (MsgConfirmMatchResponse); + rpc SetProfileCard(MsgSetProfileCard) returns (MsgSetProfileCardResponse); + rpc OpenBoosterPack(MsgOpenBoosterPack) returns (MsgOpenBoosterPackResponse); + rpc TransferBoosterPack(MsgTransferBoosterPack) + returns (MsgTransferBoosterPackResponse); + rpc SetSetStoryWriter(MsgSetSetStoryWriter) + returns (MsgSetSetStoryWriterResponse); + rpc SetSetArtist(MsgSetSetArtist) returns (MsgSetSetArtistResponse); + rpc SetUserWebsite(MsgSetUserWebsite) returns (MsgSetUserWebsiteResponse); + rpc SetUserBiography(MsgSetUserBiography) + returns (MsgSetUserBiographyResponse); // this line is used by starport scaffolding # proto/tx/rpc - rpc MultiVoteCard (MsgMultiVoteCard ) returns (MsgMultiVoteCardResponse ); - rpc OpenMatch (MsgOpenMatch ) returns (MsgOpenMatchResponse ); - rpc SetSetName (MsgSetSetName ) returns (MsgSetSetNameResponse ); - rpc ChangeAlias (MsgChangeAlias ) returns (MsgChangeAliasResponse ); - rpc InviteEarlyAccess (MsgInviteEarlyAccess ) returns (MsgInviteEarlyAccessResponse ); - rpc DisinviteEarlyAccess (MsgDisinviteEarlyAccess) returns (MsgDisinviteEarlyAccessResponse); - rpc ConnectZealyAccount (MsgConnectZealyAccount ) returns (MsgConnectZealyAccountResponse ); - rpc EncounterCreate (MsgEncounterCreate ) returns (MsgEncounterCreateResponse ); - rpc EncounterDo (MsgEncounterDo ) returns (MsgEncounterDoResponse ); - rpc EncounterClose (MsgEncounterClose ) returns (MsgEncounterCloseResponse ); + rpc MultiVoteCard(MsgMultiVoteCard) returns (MsgMultiVoteCardResponse); + rpc OpenMatch(MsgOpenMatch) returns (MsgOpenMatchResponse); + rpc SetSetName(MsgSetSetName) returns (MsgSetSetNameResponse); + rpc ChangeAlias(MsgChangeAlias) returns (MsgChangeAliasResponse); + rpc InviteEarlyAccess(MsgInviteEarlyAccess) + returns (MsgInviteEarlyAccessResponse); + rpc DisinviteEarlyAccess(MsgDisinviteEarlyAccess) + returns (MsgDisinviteEarlyAccessResponse); + rpc ConnectZealyAccount(MsgConnectZealyAccount) + returns (MsgConnectZealyAccountResponse); + rpc EncounterCreate(MsgEncounterCreate) returns (MsgEncounterCreateResponse); + rpc EncounterDo(MsgEncounterDo) returns (MsgEncounterDoResponse); + rpc EncounterClose(MsgEncounterClose) returns (MsgEncounterCloseResponse); } message MsgCreateuser { string creator = 1; string newUser = 2; - string alias = 3; + string alias = 3; } message MsgCreateuserResponse {} message MsgBuyCardScheme { - option (gogoproto.equal) = false; + option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; - string creator = 1; - cosmos.base.v1beta1.Coin bid = 2 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coin"]; + string creator = 1; + cosmos.base.v1beta1.Coin bid = 2 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coin" + ]; /* string bid = 2; */} -message MsgBuyCardSchemeResponse { - uint64 cardId = 1; -} + message MsgBuyCardSchemeResponse { uint64 cardId = 1; } -message MsgVoteCard { - string creator = 1; - uint64 cardId = 2; - VoteType voteType = 3; -} + message MsgVoteCard { + string creator = 1; + uint64 cardId = 2; + VoteType voteType = 3; + } -message MsgVoteCardResponse { - bool airdropClaimed = 1; -} + message MsgVoteCardResponse { bool airdropClaimed = 1; } -message MsgSaveCardContent { - string creator = 1; - uint64 cardId = 2; - bytes content = 3; - - // bytes image = 4; - // string fullArt = 5; - string notes = 4; - string artist = 5; - bool balanceAnchor = 6; -} + message MsgSaveCardContent { + string creator = 1; + uint64 cardId = 2; + bytes content = 3; -message MsgSaveCardContentResponse { - bool airdropClaimed = 1; -} + // bytes image = 4; + // string fullArt = 5; + string notes = 4; + string artist = 5; + bool balanceAnchor = 6; + } -message MsgTransferCard { - string creator = 1; - uint64 cardId = 2; - string receiver = 4; -} + message MsgSaveCardContentResponse { bool airdropClaimed = 1; } -message MsgTransferCardResponse {} + message MsgTransferCard { + string creator = 1; + uint64 cardId = 2; + string receiver = 4; + } -message MsgDonateToCard { - string creator = 1; - uint64 cardId = 2; - string amount = 3 [(gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin"]; -} + message MsgTransferCardResponse {} -message MsgDonateToCardResponse {} + message MsgDonateToCard { + string creator = 1; + uint64 cardId = 2; + string amount = 3 [ + (gogoproto.nullable) = false, + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin" + ]; + } -message MsgAddArtwork { - string creator = 1; - uint64 cardId = 2; - bytes image = 3; - bool fullArt = 4; -} + message MsgDonateToCardResponse {} + + message MsgAddArtwork { + string creator = 1; + uint64 cardId = 2; + bytes image = 3; + bool fullArt = 4; + } -message MsgAddArtworkResponse {} + message MsgAddArtworkResponse {} + + message MsgChangeArtist { + string creator = 1; + uint64 cardID = 2; + string artist = 3; + } -message MsgChangeArtist { - string creator = 1; - uint64 cardID = 2; - string artist = 3; -} + message MsgChangeArtistResponse {} -message MsgChangeArtistResponse {} + message MsgRegisterForCouncil { string creator = 1; } -message MsgRegisterForCouncil { - string creator = 1; -} + message MsgRegisterForCouncilResponse {} -message MsgRegisterForCouncilResponse {} + message MsgReportMatch { + string creator = 1; + uint64 matchId = 2; + repeated uint64 playedCardsA = 3; + repeated uint64 playedCardsB = 4; + Outcome outcome = 5; + } -message MsgReportMatch { - string creator = 1; - uint64 matchId = 2; - repeated uint64 playedCardsA = 3; - repeated uint64 playedCardsB = 4; - Outcome outcome = 5; -} + message MsgReportMatchResponse { uint64 matchId = 1; } -message MsgReportMatchResponse { - uint64 matchId = 1; -} + message MsgApointMatchReporter { + string creator = 1; + string reporter = 2; + } -message MsgApointMatchReporter { - string creator = 1; - string reporter = 2; -} + message MsgApointMatchReporterResponse {} -message MsgApointMatchReporterResponse {} + message MsgCreateSet { + string creator = 1; + string name = 2; + string artist = 3; + string storyWriter = 4; + repeated string contributors = 5; + } -message MsgCreateSet { - string creator = 1; - string name = 2; - string artist = 3; - string storyWriter = 4; - repeated string contributors = 5; -} + message MsgCreateSetResponse {} + + message MsgAddCardToSet { + string creator = 1; + uint64 setId = 2; + uint64 cardId = 3; + } -message MsgCreateSetResponse {} + message MsgAddCardToSetResponse {} + + message MsgFinalizeSet { + string creator = 1; + uint64 setId = 2; + } + + message MsgFinalizeSetResponse {} + + message MsgBuyBoosterPack { + string creator = 1; + uint64 setId = 2; + } + + message MsgBuyBoosterPackResponse { bool airdropClaimed = 1; } + + message MsgRemoveCardFromSet { + string creator = 1; + uint64 setId = 2; + uint64 cardId = 3; + } + + message MsgRemoveCardFromSetResponse {} -message MsgAddCardToSet { - string creator = 1; - uint64 setId = 2; - uint64 cardId = 3; -} + message MsgRemoveContributorFromSet { + string creator = 1; + uint64 setId = 2; + string user = 3; + } -message MsgAddCardToSetResponse {} + message MsgRemoveContributorFromSetResponse {} -message MsgFinalizeSet { - string creator = 1; - uint64 setId = 2; -} + message MsgAddContributorToSet { + string creator = 1; + uint64 setId = 2; + string user = 3; + } -message MsgFinalizeSetResponse {} + message MsgAddContributorToSetResponse {} -message MsgBuyBoosterPack { - string creator = 1; - uint64 setId = 2; -} + message MsgCreateSellOffer { + string creator = 1; + uint64 card = 2; + string price = 3 [ + (gogoproto.nullable) = false, + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin" + ]; + } -message MsgBuyBoosterPackResponse { - bool airdropClaimed = 1; -} + message MsgCreateSellOfferResponse {} -message MsgRemoveCardFromSet { - string creator = 1; - uint64 setId = 2; - uint64 cardId = 3; -} + message MsgBuyCard { + string creator = 1; + uint64 sellOfferId = 2; + } -message MsgRemoveCardFromSetResponse {} + message MsgBuyCardResponse {} -message MsgRemoveContributorFromSet { - string creator = 1; - uint64 setId = 2; - string user = 3; -} + message MsgRemoveSellOffer { + string creator = 1; + uint64 sellOfferId = 2; + } -message MsgRemoveContributorFromSetResponse {} + message MsgRemoveSellOfferResponse {} -message MsgAddContributorToSet { - string creator = 1; - uint64 setId = 2; - string user = 3; -} + message MsgAddArtworkToSet { + string creator = 1; + uint64 setId = 2; + bytes image = 3; + } -message MsgAddContributorToSetResponse {} + message MsgAddArtworkToSetResponse {} -message MsgCreateSellOffer { - string creator = 1; - uint64 card = 2; - string price = 3 [(gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin"]; -} + message MsgAddStoryToSet { + string creator = 1; + uint64 setId = 2; + string story = 3; + } -message MsgCreateSellOfferResponse {} + message MsgAddStoryToSetResponse {} -message MsgBuyCard { - string creator = 1; - uint64 sellOfferId = 2; -} + message MsgSetCardRarity { + string creator = 1; + uint64 cardId = 2; + uint64 setId = 3; + CardRarity rarity = 4; + } -message MsgBuyCardResponse {} + message MsgSetCardRarityResponse {} -message MsgRemoveSellOffer { - string creator = 1; - uint64 sellOfferId = 2; -} + message MsgCreateCouncil { + string creator = 1; + uint64 cardId = 2; + } -message MsgRemoveSellOfferResponse {} + message MsgCreateCouncilResponse {} -message MsgAddArtworkToSet { - string creator = 1; - uint64 setId = 2; - bytes image = 3; -} + // Add revision + message MsgCommitCouncilResponse { + string creator = 1; + string response = 2; + uint64 councilId = 3; + string suggestion = 4; + } -message MsgAddArtworkToSetResponse {} + message MsgCommitCouncilResponseResponse {} -message MsgAddStoryToSet { - string creator = 1; - uint64 setId = 2; - string story = 3; -} + message MsgRevealCouncilResponse { + string creator = 1; + Response response = 2; + string secret = 3; + uint64 councilId = 4; + } -message MsgAddStoryToSetResponse {} + message MsgRevealCouncilResponseResponse {} -message MsgSetCardRarity { - string creator = 1; - uint64 cardId = 2; - uint64 setId = 3; - CardRarity rarity = 4; -} + message MsgRestartCouncil { + string creator = 1; + uint64 councilId = 2; + } -message MsgSetCardRarityResponse {} + message MsgRestartCouncilResponse {} -message MsgCreateCouncil { - string creator = 1; - uint64 cardId = 2; -} + message MsgRewokeCouncilRegistration { string creator = 1; } -message MsgCreateCouncilResponse {} + message MsgRewokeCouncilRegistrationResponse {} -// Add revision -message MsgCommitCouncilResponse { - string creator = 1; - string response = 2; - uint64 councilId = 3; - string suggestion = 4; -} + message MsgConfirmMatch { + string creator = 1; + uint64 matchId = 2; + Outcome outcome = 3; + repeated SingleVote votedCards = 4; + } -message MsgCommitCouncilResponseResponse {} + message MsgConfirmMatchResponse {} -message MsgRevealCouncilResponse { - string creator = 1; - Response response = 2; - string secret = 3; - uint64 councilId = 4; -} + message MsgSetProfileCard { + string creator = 1; + uint64 cardId = 2; + } -message MsgRevealCouncilResponseResponse {} + message MsgSetProfileCardResponse {} -message MsgRestartCouncil { - string creator = 1; - uint64 councilId = 2; -} + message MsgOpenBoosterPack { + string creator = 1; + uint64 boosterPackId = 2; + } -message MsgRestartCouncilResponse {} + message MsgOpenBoosterPackResponse { repeated uint64 cardIds = 1; } -message MsgRewokeCouncilRegistration { - string creator = 1; -} + message MsgTransferBoosterPack { + string creator = 1; + uint64 boosterPackId = 2; + string receiver = 3; + } -message MsgRewokeCouncilRegistrationResponse {} + message MsgTransferBoosterPackResponse {} -message MsgConfirmMatch { - string creator = 1; - uint64 matchId = 2; - Outcome outcome = 3; - repeated SingleVote votedCards = 4; -} - -message MsgConfirmMatchResponse {} - -message MsgSetProfileCard { - string creator = 1; - uint64 cardId = 2; -} - -message MsgSetProfileCardResponse {} - -message MsgOpenBoosterPack { - string creator = 1; - uint64 boosterPackId = 2; -} - -message MsgOpenBoosterPackResponse { - repeated uint64 cardIds = 1; -} - -message MsgTransferBoosterPack { - string creator = 1; - uint64 boosterPackId = 2; - string receiver = 3; -} - -message MsgTransferBoosterPackResponse {} - -message MsgSetSetStoryWriter { - string creator = 1; - uint64 setId = 2; - string storyWriter = 3; -} + message MsgSetSetStoryWriter { + string creator = 1; + uint64 setId = 2; + string storyWriter = 3; + } -message MsgSetSetStoryWriterResponse {} + message MsgSetSetStoryWriterResponse {} -message MsgSetSetArtist { - string creator = 1; - uint64 setId = 2; - string artist = 3; -} + message MsgSetSetArtist { + string creator = 1; + uint64 setId = 2; + string artist = 3; + } -message MsgSetSetArtistResponse {} + message MsgSetSetArtistResponse {} -message MsgSetUserWebsite { - string creator = 1; - string website = 2; -} + message MsgSetUserWebsite { + string creator = 1; + string website = 2; + } -message MsgSetUserWebsiteResponse {} + message MsgSetUserWebsiteResponse {} -message MsgSetUserBiography { - string creator = 1; - string biography = 2; -} + message MsgSetUserBiography { + string creator = 1; + string biography = 2; + } -message MsgSetUserBiographyResponse {} + message MsgSetUserBiographyResponse {} -// this line is used by starport scaffolding # proto/tx/message -message MsgMultiVoteCard { - string creator = 1; - repeated SingleVote votes = 2; -} + // this line is used by starport scaffolding # proto/tx/message + message MsgMultiVoteCard { + string creator = 1; + repeated SingleVote votes = 2; + } -message MsgMultiVoteCardResponse {} + message MsgMultiVoteCardResponse {} -message MsgOpenMatch { - string creator = 1; - string playerA = 2; - string playerB = 3; - repeated uint64 playerADeck = 4; - repeated uint64 playerBDeck = 5; -} + message MsgOpenMatch { + string creator = 1; + string playerA = 2; + string playerB = 3; + repeated uint64 playerADeck = 4; + repeated uint64 playerBDeck = 5; + } -message MsgOpenMatchResponse { - uint64 matchId = 1; -} + message MsgOpenMatchResponse { uint64 matchId = 1; } -message MsgSetSetName { - string creator = 1; - uint64 setId = 2; - string name = 3; -} + message MsgSetSetName { + string creator = 1; + uint64 setId = 2; + string name = 3; + } -message MsgSetSetNameResponse {} + message MsgSetSetNameResponse {} -message MsgChangeAlias { - string creator = 1; - string alias = 2; -} + message MsgChangeAlias { + string creator = 1; + string alias = 2; + } -message MsgChangeAliasResponse {} + message MsgChangeAliasResponse {} -message MsgInviteEarlyAccess { - string creator = 1; - string user = 2; -} + message MsgInviteEarlyAccess { + string creator = 1; + string user = 2; + } -message MsgInviteEarlyAccessResponse {} + message MsgInviteEarlyAccessResponse {} -message MsgDisinviteEarlyAccess { - string creator = 1; - string user = 2; -} + message MsgDisinviteEarlyAccess { + string creator = 1; + string user = 2; + } -message MsgDisinviteEarlyAccessResponse {} + message MsgDisinviteEarlyAccessResponse {} -message MsgConnectZealyAccount { - string creator = 1; - string zealyId = 2; -} + message MsgConnectZealyAccount { + string creator = 1; + string zealyId = 2; + } -message MsgConnectZealyAccountResponse {} + message MsgConnectZealyAccountResponse {} -message MsgEncounterCreate { - string creator = 1; - repeated uint64 Drawlist = 2; - map parameters = 3; - bytes image = 4; -} + message MsgEncounterCreate { + string creator = 1; + repeated uint64 Drawlist = 2; + map parameters = 3; + bytes image = 4; + } -message MsgEncounterCreateResponse {} + message MsgEncounterCreateResponse {} -message MsgEncounterDo { - string creator = 1; - uint64 encounterId = 2; - string user = 3; -} + message MsgEncounterDo { + string creator = 1; + uint64 encounterId = 2; + string user = 3; + } -message MsgEncounterDoResponse {} + message MsgEncounterDoResponse {} -message MsgEncounterClose { - string creator = 1; - uint64 encounterId = 2; - string user = 3; - bool won = 4; -} + message MsgEncounterClose { + string creator = 1; + uint64 encounterId = 2; + string user = 3; + bool won = 4; + } -message MsgEncounterCloseResponse {} + message MsgEncounterCloseResponse {} diff --git a/x/cardchain/client/cli/query.go b/x/cardchain/client/cli/query.go index 13885fb3..6f73ae86 100644 --- a/x/cardchain/client/cli/query.go +++ b/x/cardchain/client/cli/query.go @@ -59,6 +59,14 @@ func GetQueryCmd(queryRoute string) *cobra.Command { cmd.AddCommand(CmdQAccountFromZealy()) + cmd.AddCommand(CmdQEncounters()) + + cmd.AddCommand(CmdQEncounter()) + + cmd.AddCommand(CmdQEncountersWithImage()) + + cmd.AddCommand(CmdQEncounterWithImage()) + // this line is used by starport scaffolding # 1 return cmd diff --git a/x/cardchain/client/cli/query_q_encounter.go b/x/cardchain/client/cli/query_q_encounter.go new file mode 100644 index 00000000..47a8c917 --- /dev/null +++ b/x/cardchain/client/cli/query_q_encounter.go @@ -0,0 +1,50 @@ +package cli + +import ( + "strconv" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/spf13/cast" + "github.com/spf13/cobra" +) + +var _ = strconv.Itoa(0) + +func CmdQEncounter() *cobra.Command { + cmd := &cobra.Command{ + Use: "q-encounter [id]", + Short: "Query q_encounter", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) (err error) { + reqId, err := cast.ToUint64E(args[0]) + if err != nil { + return err + } + + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + params := &types.QueryQEncounterRequest{ + + Id: reqId, + } + + res, err := queryClient.QEncounter(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} diff --git a/x/cardchain/client/cli/query_q_encounter_with_image.go b/x/cardchain/client/cli/query_q_encounter_with_image.go new file mode 100644 index 00000000..b2d49eb2 --- /dev/null +++ b/x/cardchain/client/cli/query_q_encounter_with_image.go @@ -0,0 +1,50 @@ +package cli + +import ( + "strconv" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/spf13/cast" + "github.com/spf13/cobra" +) + +var _ = strconv.Itoa(0) + +func CmdQEncounterWithImage() *cobra.Command { + cmd := &cobra.Command{ + Use: "q-encounter-with-image [id]", + Short: "Query q_encounter_with_image", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) (err error) { + reqId, err := cast.ToUint64E(args[0]) + if err != nil { + return err + } + + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + params := &types.QueryQEncounterWithImageRequest{ + + Id: reqId, + } + + res, err := queryClient.QEncounterWithImage(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} diff --git a/x/cardchain/client/cli/query_q_encounters.go b/x/cardchain/client/cli/query_q_encounters.go new file mode 100644 index 00000000..af5c00d3 --- /dev/null +++ b/x/cardchain/client/cli/query_q_encounters.go @@ -0,0 +1,42 @@ +package cli + +import ( + "strconv" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/spf13/cobra" +) + +var _ = strconv.Itoa(0) + +func CmdQEncounters() *cobra.Command { + cmd := &cobra.Command{ + Use: "q-encounters", + Short: "Query q_encounters", + Args: cobra.ExactArgs(0), + RunE: func(cmd *cobra.Command, args []string) (err error) { + + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + params := &types.QueryQEncountersRequest{} + + res, err := queryClient.QEncounters(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} diff --git a/x/cardchain/client/cli/query_q_encounters_with_image.go b/x/cardchain/client/cli/query_q_encounters_with_image.go new file mode 100644 index 00000000..9d643b16 --- /dev/null +++ b/x/cardchain/client/cli/query_q_encounters_with_image.go @@ -0,0 +1,42 @@ +package cli + +import ( + "strconv" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/spf13/cobra" +) + +var _ = strconv.Itoa(0) + +func CmdQEncountersWithImage() *cobra.Command { + cmd := &cobra.Command{ + Use: "q-encounters-with-image", + Short: "Query q_encounters_with_image", + Args: cobra.ExactArgs(0), + RunE: func(cmd *cobra.Command, args []string) (err error) { + + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + params := &types.QueryQEncountersWithImageRequest{} + + res, err := queryClient.QEncountersWithImage(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} diff --git a/x/cardchain/client/cli/query_q_encouter.go b/x/cardchain/client/cli/query_q_encouter.go new file mode 100644 index 00000000..b1a1e06e --- /dev/null +++ b/x/cardchain/client/cli/query_q_encouter.go @@ -0,0 +1,50 @@ +package cli + +import ( + "strconv" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/spf13/cast" + "github.com/spf13/cobra" +) + +var _ = strconv.Itoa(0) + +func CmdQEncouter() *cobra.Command { + cmd := &cobra.Command{ + Use: "q-encouter [id]", + Short: "Query q_encouter", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) (err error) { + reqId, err := cast.ToUint64E(args[0]) + if err != nil { + return err + } + + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + params := &types.QueryQEncouterRequest{ + + Id: reqId, + } + + res, err := queryClient.QEncouter(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} diff --git a/x/cardchain/client/cli/query_q_encouter_with_image.go b/x/cardchain/client/cli/query_q_encouter_with_image.go new file mode 100644 index 00000000..2e7f54e6 --- /dev/null +++ b/x/cardchain/client/cli/query_q_encouter_with_image.go @@ -0,0 +1,50 @@ +package cli + +import ( + "strconv" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/spf13/cast" + "github.com/spf13/cobra" +) + +var _ = strconv.Itoa(0) + +func CmdQEncouterWithImage() *cobra.Command { + cmd := &cobra.Command{ + Use: "q-encouter-with-image [id]", + Short: "Query q_encouter_with_image", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) (err error) { + reqId, err := cast.ToUint64E(args[0]) + if err != nil { + return err + } + + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + params := &types.QueryQEncouterWithImageRequest{ + + Id: reqId, + } + + res, err := queryClient.QEncouterWithImage(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} diff --git a/x/cardchain/client/cli/query_q_encouters.go b/x/cardchain/client/cli/query_q_encouters.go new file mode 100644 index 00000000..b90c8038 --- /dev/null +++ b/x/cardchain/client/cli/query_q_encouters.go @@ -0,0 +1,42 @@ +package cli + +import ( + "strconv" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/spf13/cobra" +) + +var _ = strconv.Itoa(0) + +func CmdQEncouters() *cobra.Command { + cmd := &cobra.Command{ + Use: "q-encouters", + Short: "Query q_encouters", + Args: cobra.ExactArgs(0), + RunE: func(cmd *cobra.Command, args []string) (err error) { + + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + params := &types.QueryQEncoutersRequest{} + + res, err := queryClient.QEncouters(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} diff --git a/x/cardchain/keeper/query_q_encounter.go b/x/cardchain/keeper/query_q_encounter.go new file mode 100644 index 00000000..0761ec2c --- /dev/null +++ b/x/cardchain/keeper/query_q_encounter.go @@ -0,0 +1,23 @@ +package keeper + +import ( + "context" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (k Keeper) QEncounter(goCtx context.Context, req *types.QueryQEncounterRequest) (*types.QueryQEncounterResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + ctx := sdk.UnwrapSDKContext(goCtx) + + // TODO: Process the query + _ = ctx + + return &types.QueryQEncounterResponse{}, nil +} diff --git a/x/cardchain/keeper/query_q_encounter_with_image.go b/x/cardchain/keeper/query_q_encounter_with_image.go new file mode 100644 index 00000000..1863e5a9 --- /dev/null +++ b/x/cardchain/keeper/query_q_encounter_with_image.go @@ -0,0 +1,23 @@ +package keeper + +import ( + "context" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (k Keeper) QEncounterWithImage(goCtx context.Context, req *types.QueryQEncounterWithImageRequest) (*types.QueryQEncounterWithImageResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + ctx := sdk.UnwrapSDKContext(goCtx) + + // TODO: Process the query + _ = ctx + + return &types.QueryQEncounterWithImageResponse{}, nil +} diff --git a/x/cardchain/keeper/query_q_encounters.go b/x/cardchain/keeper/query_q_encounters.go new file mode 100644 index 00000000..a0485cae --- /dev/null +++ b/x/cardchain/keeper/query_q_encounters.go @@ -0,0 +1,23 @@ +package keeper + +import ( + "context" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (k Keeper) QEncounters(goCtx context.Context, req *types.QueryQEncountersRequest) (*types.QueryQEncountersResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + ctx := sdk.UnwrapSDKContext(goCtx) + + // TODO: Process the query + _ = ctx + + return &types.QueryQEncountersResponse{}, nil +} diff --git a/x/cardchain/keeper/query_q_encounters_with_image.go b/x/cardchain/keeper/query_q_encounters_with_image.go new file mode 100644 index 00000000..60406613 --- /dev/null +++ b/x/cardchain/keeper/query_q_encounters_with_image.go @@ -0,0 +1,23 @@ +package keeper + +import ( + "context" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (k Keeper) QEncountersWithImage(goCtx context.Context, req *types.QueryQEncountersWithImageRequest) (*types.QueryQEncountersWithImageResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + ctx := sdk.UnwrapSDKContext(goCtx) + + // TODO: Process the query + _ = ctx + + return &types.QueryQEncountersWithImageResponse{}, nil +} diff --git a/x/cardchain/keeper/query_q_encouter.go b/x/cardchain/keeper/query_q_encouter.go new file mode 100644 index 00000000..8f45582f --- /dev/null +++ b/x/cardchain/keeper/query_q_encouter.go @@ -0,0 +1,23 @@ +package keeper + +import ( + "context" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (k Keeper) QEncouter(goCtx context.Context, req *types.QueryQEncouterRequest) (*types.QueryQEncouterResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + ctx := sdk.UnwrapSDKContext(goCtx) + + // TODO: Process the query + _ = ctx + + return &types.QueryQEncouterResponse{}, nil +} diff --git a/x/cardchain/keeper/query_q_encouter_with_image.go b/x/cardchain/keeper/query_q_encouter_with_image.go new file mode 100644 index 00000000..8faedeb2 --- /dev/null +++ b/x/cardchain/keeper/query_q_encouter_with_image.go @@ -0,0 +1,23 @@ +package keeper + +import ( + "context" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (k Keeper) QEncouterWithImage(goCtx context.Context, req *types.QueryQEncouterWithImageRequest) (*types.QueryQEncouterWithImageResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + ctx := sdk.UnwrapSDKContext(goCtx) + + // TODO: Process the query + _ = ctx + + return &types.QueryQEncouterWithImageResponse{}, nil +} diff --git a/x/cardchain/keeper/query_q_encouters.go b/x/cardchain/keeper/query_q_encouters.go new file mode 100644 index 00000000..e053699c --- /dev/null +++ b/x/cardchain/keeper/query_q_encouters.go @@ -0,0 +1,23 @@ +package keeper + +import ( + "context" + + "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (k Keeper) QEncouters(goCtx context.Context, req *types.QueryQEncoutersRequest) (*types.QueryQEncoutersResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + ctx := sdk.UnwrapSDKContext(goCtx) + + // TODO: Process the query + _ = ctx + + return &types.QueryQEncoutersResponse{}, nil +} diff --git a/x/cardchain/types/encounters.pb.go b/x/cardchain/types/encounters.pb.go index ebea1b88..a0af9794 100644 --- a/x/cardchain/types/encounters.pb.go +++ b/x/cardchain/types/encounters.pb.go @@ -107,9 +107,62 @@ func (m *Encounter) GetImageId() uint64 { return 0 } +type EncounterWithImage struct { + Encounter *Encounter `protobuf:"bytes,1,opt,name=encounter,proto3" json:"encounter,omitempty"` + Image []byte `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` +} + +func (m *EncounterWithImage) Reset() { *m = EncounterWithImage{} } +func (m *EncounterWithImage) String() string { return proto.CompactTextString(m) } +func (*EncounterWithImage) ProtoMessage() {} +func (*EncounterWithImage) Descriptor() ([]byte, []int) { + return fileDescriptor_bd29899b36e899bc, []int{1} +} +func (m *EncounterWithImage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EncounterWithImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EncounterWithImage.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EncounterWithImage) XXX_Merge(src proto.Message) { + xxx_messageInfo_EncounterWithImage.Merge(m, src) +} +func (m *EncounterWithImage) XXX_Size() int { + return m.Size() +} +func (m *EncounterWithImage) XXX_DiscardUnknown() { + xxx_messageInfo_EncounterWithImage.DiscardUnknown(m) +} + +var xxx_messageInfo_EncounterWithImage proto.InternalMessageInfo + +func (m *EncounterWithImage) GetEncounter() *Encounter { + if m != nil { + return m.Encounter + } + return nil +} + +func (m *EncounterWithImage) GetImage() []byte { + if m != nil { + return m.Image + } + return nil +} + func init() { proto.RegisterType((*Encounter)(nil), "DecentralCardGame.cardchain.cardchain.Encounter") proto.RegisterMapType((map[string]string)(nil), "DecentralCardGame.cardchain.cardchain.Encounter.ParametersEntry") + proto.RegisterType((*EncounterWithImage)(nil), "DecentralCardGame.cardchain.cardchain.EncounterWithImage") } func init() { @@ -117,28 +170,30 @@ func init() { } var fileDescriptor_bd29899b36e899bc = []byte{ - // 322 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0x41, 0x4b, 0xf3, 0x30, - 0x1c, 0xc6, 0x97, 0x76, 0xdb, 0xbb, 0xe5, 0x05, 0x95, 0x30, 0x24, 0xec, 0x10, 0x8a, 0x28, 0xf4, - 0x94, 0x82, 0x5e, 0x86, 0x20, 0x88, 0xdb, 0x90, 0xdd, 0x24, 0x47, 0x4f, 0x66, 0xed, 0x9f, 0xae, - 0xb8, 0x26, 0x25, 0xcb, 0x36, 0xf7, 0x2d, 0xfc, 0x08, 0x7e, 0x1c, 0x8f, 0x3b, 0x7a, 0x94, 0xed, - 0x8b, 0x48, 0x5b, 0xd7, 0x0d, 0xbd, 0x78, 0x7b, 0x1e, 0xc8, 0xf3, 0xf0, 0x7b, 0xf2, 0xc7, 0xe7, - 0xa1, 0x34, 0x51, 0x38, 0x91, 0x89, 0x0a, 0xf6, 0x0a, 0x54, 0xa8, 0xe7, 0xca, 0x82, 0x99, 0xf1, - 0xcc, 0x68, 0xab, 0xc9, 0xc5, 0x00, 0x42, 0x50, 0xd6, 0xc8, 0x69, 0x5f, 0x9a, 0xe8, 0x5e, 0xa6, - 0xc0, 0xab, 0xd7, 0x7b, 0xd5, 0xed, 0xc4, 0x3a, 0xd6, 0x45, 0x22, 0xc8, 0x55, 0x19, 0x3e, 0x7b, - 0x73, 0x70, 0x7b, 0xb8, 0x6b, 0x24, 0x47, 0xd8, 0x19, 0x45, 0x14, 0x79, 0xc8, 0xaf, 0x0b, 0x67, - 0x14, 0x91, 0x2e, 0x6e, 0x0d, 0x8c, 0x5c, 0x4e, 0x93, 0x99, 0xa5, 0x8e, 0xe7, 0xfa, 0x75, 0x51, - 0x79, 0x72, 0x8a, 0x9b, 0x99, 0xd1, 0x0b, 0x50, 0xd4, 0xf5, 0x90, 0xdf, 0x12, 0xdf, 0x8e, 0x74, - 0x70, 0x43, 0x2f, 0x15, 0x18, 0x5a, 0xf7, 0x90, 0xdf, 0x16, 0xa5, 0x21, 0x4f, 0x18, 0x67, 0xd2, - 0xc8, 0x14, 0x72, 0x70, 0xda, 0xf0, 0x5c, 0xff, 0xff, 0xe5, 0x2d, 0xff, 0x13, 0x39, 0xaf, 0xf8, - 0xf8, 0x43, 0x55, 0x31, 0x54, 0xd6, 0xac, 0xc4, 0x41, 0x27, 0xa1, 0xf8, 0x5f, 0x92, 0xca, 0x18, - 0x46, 0x11, 0x6d, 0x16, 0x03, 0x76, 0xb6, 0x7b, 0x83, 0x8f, 0x7f, 0x04, 0xc9, 0x09, 0x76, 0x9f, - 0x61, 0x55, 0x2c, 0x6d, 0x8b, 0x5c, 0xe6, 0xd8, 0x0b, 0x39, 0x9d, 0x03, 0x75, 0x4a, 0xec, 0xc2, - 0x5c, 0x3b, 0x3d, 0x74, 0x27, 0xde, 0x37, 0x0c, 0xad, 0x37, 0x0c, 0x7d, 0x6e, 0x18, 0x7a, 0xdd, - 0xb2, 0xda, 0x7a, 0xcb, 0x6a, 0x1f, 0x5b, 0x56, 0x7b, 0xec, 0xc5, 0x89, 0x9d, 0xcc, 0xc7, 0x3c, - 0xd4, 0x69, 0xf0, 0x6b, 0x4a, 0xd0, 0xaf, 0x4e, 0xf6, 0x72, 0x70, 0x3e, 0xbb, 0xca, 0x60, 0x36, - 0x6e, 0x16, 0xbf, 0x7f, 0xf5, 0x15, 0x00, 0x00, 0xff, 0xff, 0x04, 0x13, 0x89, 0xc3, 0xe2, 0x01, - 0x00, 0x00, + // 361 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xc1, 0x4a, 0xeb, 0x40, + 0x18, 0x85, 0x3b, 0x49, 0xdb, 0xdb, 0x4c, 0x2f, 0xf7, 0xca, 0x50, 0x64, 0xe8, 0x22, 0x84, 0xa2, + 0x90, 0x55, 0x22, 0x75, 0x53, 0x04, 0x41, 0x6c, 0x8b, 0x64, 0x23, 0x32, 0x1b, 0xc1, 0x95, 0xd3, + 0x64, 0x48, 0x83, 0x4d, 0x26, 0x4c, 0xa7, 0xad, 0xf5, 0x29, 0x7c, 0x04, 0x1f, 0xc7, 0x65, 0x97, + 0x2e, 0xa5, 0x7d, 0x11, 0xc9, 0xc4, 0x4e, 0x8b, 0x6e, 0x74, 0x77, 0x0e, 0xcc, 0x7f, 0xfe, 0xef, + 0x30, 0x3f, 0x3c, 0x0a, 0xa9, 0x88, 0xc2, 0x31, 0x4d, 0x32, 0x7f, 0xa7, 0x58, 0x16, 0xf2, 0x59, + 0x26, 0x99, 0x98, 0x7a, 0xb9, 0xe0, 0x92, 0xa3, 0xe3, 0x01, 0x0b, 0x59, 0x26, 0x05, 0x9d, 0xf4, + 0xa9, 0x88, 0xae, 0x68, 0xca, 0x3c, 0xfd, 0x7a, 0xa7, 0xda, 0xad, 0x98, 0xc7, 0x5c, 0x4d, 0xf8, + 0x85, 0x2a, 0x87, 0x3b, 0x2f, 0x06, 0xb4, 0x86, 0xdb, 0x44, 0xf4, 0x0f, 0x1a, 0x41, 0x84, 0x81, + 0x03, 0xdc, 0x2a, 0x31, 0x82, 0x08, 0xb5, 0x61, 0x63, 0x20, 0xe8, 0x62, 0x92, 0x4c, 0x25, 0x36, + 0x1c, 0xd3, 0xad, 0x12, 0xed, 0xd1, 0x21, 0xac, 0xe7, 0x82, 0xcf, 0x59, 0x86, 0x4d, 0x07, 0xb8, + 0x0d, 0xf2, 0xe9, 0x50, 0x0b, 0xd6, 0xf8, 0x22, 0x63, 0x02, 0x57, 0x1d, 0xe0, 0x5a, 0xa4, 0x34, + 0xe8, 0x1e, 0xc2, 0x9c, 0x0a, 0x9a, 0xb2, 0x02, 0x1c, 0xd7, 0x1c, 0xd3, 0x6d, 0x76, 0x2f, 0xbc, + 0x1f, 0x91, 0x7b, 0x9a, 0xcf, 0xbb, 0xd1, 0x11, 0xc3, 0x4c, 0x8a, 0x25, 0xd9, 0xcb, 0x44, 0x18, + 0xfe, 0x49, 0x52, 0x1a, 0xb3, 0x20, 0xc2, 0x75, 0x55, 0x60, 0x6b, 0xdb, 0xe7, 0xf0, 0xff, 0x97, + 0x41, 0x74, 0x00, 0xcd, 0x07, 0xb6, 0x54, 0x4d, 0x2d, 0x52, 0xc8, 0x02, 0x7b, 0x4e, 0x27, 0x33, + 0x86, 0x8d, 0x12, 0x5b, 0x99, 0x33, 0xa3, 0x07, 0x3a, 0x4f, 0x10, 0x69, 0x82, 0xdb, 0x44, 0x8e, + 0x83, 0x22, 0x16, 0x5d, 0x43, 0x4b, 0xff, 0x84, 0xca, 0x69, 0x76, 0x4f, 0x7e, 0xdb, 0x87, 0xec, + 0x22, 0x8a, 0xfd, 0x8a, 0x57, 0xed, 0xff, 0x4b, 0x4a, 0x73, 0x49, 0x5e, 0xd7, 0x36, 0x58, 0xad, + 0x6d, 0xf0, 0xbe, 0xb6, 0xc1, 0xf3, 0xc6, 0xae, 0xac, 0x36, 0x76, 0xe5, 0x6d, 0x63, 0x57, 0xee, + 0x7a, 0x71, 0x22, 0xc7, 0xb3, 0x91, 0x17, 0xf2, 0xd4, 0xff, 0xb6, 0xd6, 0xef, 0xeb, 0x73, 0x79, + 0xdc, 0x3b, 0x1d, 0xb9, 0xcc, 0xd9, 0x74, 0x54, 0x57, 0x3f, 0x7f, 0xfa, 0x11, 0x00, 0x00, 0xff, + 0xff, 0x7d, 0x1a, 0x79, 0x21, 0x5e, 0x02, 0x00, 0x00, } func (m *Encounter) Marshal() (dAtA []byte, err error) { @@ -228,6 +283,48 @@ func (m *Encounter) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EncounterWithImage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EncounterWithImage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EncounterWithImage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Image) > 0 { + i -= len(m.Image) + copy(dAtA[i:], m.Image) + i = encodeVarintEncounters(dAtA, i, uint64(len(m.Image))) + i-- + dAtA[i] = 0x12 + } + if m.Encounter != nil { + { + size, err := m.Encounter.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEncounters(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintEncounters(dAtA []byte, offset int, v uint64) int { offset -= sovEncounters(v) base := offset @@ -276,6 +373,23 @@ func (m *Encounter) Size() (n int) { return n } +func (m *EncounterWithImage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Encounter != nil { + l = m.Encounter.Size() + n += 1 + l + sovEncounters(uint64(l)) + } + l = len(m.Image) + if l > 0 { + n += 1 + l + sovEncounters(uint64(l)) + } + return n +} + func sovEncounters(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -625,6 +739,126 @@ func (m *Encounter) Unmarshal(dAtA []byte) error { } return nil } +func (m *EncounterWithImage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EncounterWithImage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EncounterWithImage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Encounter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEncounters + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEncounters + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Encounter == nil { + m.Encounter = &Encounter{} + } + if err := m.Encounter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthEncounters + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthEncounters + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Image = append(m.Image[:0], dAtA[iNdEx:postIndex]...) + if m.Image == nil { + m.Image = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEncounters(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEncounters + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipEncounters(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/cardchain/types/query.pb.go b/x/cardchain/types/query.pb.go index 76859832..2d758b8f 100644 --- a/x/cardchain/types/query.pb.go +++ b/x/cardchain/types/query.pb.go @@ -1719,6 +1719,310 @@ func (m *QueryQAccountFromZealyResponse) GetAddress() string { return "" } +type QueryQEncountersRequest struct { +} + +func (m *QueryQEncountersRequest) Reset() { *m = QueryQEncountersRequest{} } +func (m *QueryQEncountersRequest) String() string { return proto.CompactTextString(m) } +func (*QueryQEncountersRequest) ProtoMessage() {} +func (*QueryQEncountersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{32} +} +func (m *QueryQEncountersRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryQEncountersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryQEncountersRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryQEncountersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryQEncountersRequest.Merge(m, src) +} +func (m *QueryQEncountersRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryQEncountersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryQEncountersRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryQEncountersRequest proto.InternalMessageInfo + +type QueryQEncountersResponse struct { +} + +func (m *QueryQEncountersResponse) Reset() { *m = QueryQEncountersResponse{} } +func (m *QueryQEncountersResponse) String() string { return proto.CompactTextString(m) } +func (*QueryQEncountersResponse) ProtoMessage() {} +func (*QueryQEncountersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{33} +} +func (m *QueryQEncountersResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryQEncountersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryQEncountersResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryQEncountersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryQEncountersResponse.Merge(m, src) +} +func (m *QueryQEncountersResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryQEncountersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryQEncountersResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryQEncountersResponse proto.InternalMessageInfo + +type QueryQEncounterRequest struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *QueryQEncounterRequest) Reset() { *m = QueryQEncounterRequest{} } +func (m *QueryQEncounterRequest) String() string { return proto.CompactTextString(m) } +func (*QueryQEncounterRequest) ProtoMessage() {} +func (*QueryQEncounterRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{34} +} +func (m *QueryQEncounterRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryQEncounterRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryQEncounterRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryQEncounterRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryQEncounterRequest.Merge(m, src) +} +func (m *QueryQEncounterRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryQEncounterRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryQEncounterRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryQEncounterRequest proto.InternalMessageInfo + +func (m *QueryQEncounterRequest) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type QueryQEncounterResponse struct { +} + +func (m *QueryQEncounterResponse) Reset() { *m = QueryQEncounterResponse{} } +func (m *QueryQEncounterResponse) String() string { return proto.CompactTextString(m) } +func (*QueryQEncounterResponse) ProtoMessage() {} +func (*QueryQEncounterResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{35} +} +func (m *QueryQEncounterResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryQEncounterResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryQEncounterResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryQEncounterResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryQEncounterResponse.Merge(m, src) +} +func (m *QueryQEncounterResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryQEncounterResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryQEncounterResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryQEncounterResponse proto.InternalMessageInfo + +type QueryQEncountersWithImageRequest struct { +} + +func (m *QueryQEncountersWithImageRequest) Reset() { *m = QueryQEncountersWithImageRequest{} } +func (m *QueryQEncountersWithImageRequest) String() string { return proto.CompactTextString(m) } +func (*QueryQEncountersWithImageRequest) ProtoMessage() {} +func (*QueryQEncountersWithImageRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{36} +} +func (m *QueryQEncountersWithImageRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryQEncountersWithImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryQEncountersWithImageRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryQEncountersWithImageRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryQEncountersWithImageRequest.Merge(m, src) +} +func (m *QueryQEncountersWithImageRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryQEncountersWithImageRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryQEncountersWithImageRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryQEncountersWithImageRequest proto.InternalMessageInfo + +type QueryQEncountersWithImageResponse struct { +} + +func (m *QueryQEncountersWithImageResponse) Reset() { *m = QueryQEncountersWithImageResponse{} } +func (m *QueryQEncountersWithImageResponse) String() string { return proto.CompactTextString(m) } +func (*QueryQEncountersWithImageResponse) ProtoMessage() {} +func (*QueryQEncountersWithImageResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{37} +} +func (m *QueryQEncountersWithImageResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryQEncountersWithImageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryQEncountersWithImageResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryQEncountersWithImageResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryQEncountersWithImageResponse.Merge(m, src) +} +func (m *QueryQEncountersWithImageResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryQEncountersWithImageResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryQEncountersWithImageResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryQEncountersWithImageResponse proto.InternalMessageInfo + +type QueryQEncounterWithImageRequest struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *QueryQEncounterWithImageRequest) Reset() { *m = QueryQEncounterWithImageRequest{} } +func (m *QueryQEncounterWithImageRequest) String() string { return proto.CompactTextString(m) } +func (*QueryQEncounterWithImageRequest) ProtoMessage() {} +func (*QueryQEncounterWithImageRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{38} +} +func (m *QueryQEncounterWithImageRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryQEncounterWithImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryQEncounterWithImageRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryQEncounterWithImageRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryQEncounterWithImageRequest.Merge(m, src) +} +func (m *QueryQEncounterWithImageRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryQEncounterWithImageRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryQEncounterWithImageRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryQEncounterWithImageRequest proto.InternalMessageInfo + +func (m *QueryQEncounterWithImageRequest) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type QueryQEncounterWithImageResponse struct { +} + +func (m *QueryQEncounterWithImageResponse) Reset() { *m = QueryQEncounterWithImageResponse{} } +func (m *QueryQEncounterWithImageResponse) String() string { return proto.CompactTextString(m) } +func (*QueryQEncounterWithImageResponse) ProtoMessage() {} +func (*QueryQEncounterWithImageResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{39} +} +func (m *QueryQEncounterWithImageResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryQEncounterWithImageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryQEncounterWithImageResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryQEncounterWithImageResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryQEncounterWithImageResponse.Merge(m, src) +} +func (m *QueryQEncounterWithImageResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryQEncounterWithImageResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryQEncounterWithImageResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryQEncounterWithImageResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*QueryParamsRequest)(nil), "DecentralCardGame.cardchain.cardchain.QueryParamsRequest") proto.RegisterType((*QueryParamsResponse)(nil), "DecentralCardGame.cardchain.cardchain.QueryParamsResponse") @@ -1752,142 +2056,161 @@ func init() { proto.RegisterType((*QueryQCardContentsResponse)(nil), "DecentralCardGame.cardchain.cardchain.QueryQCardContentsResponse") proto.RegisterType((*QueryQAccountFromZealyRequest)(nil), "DecentralCardGame.cardchain.cardchain.QueryQAccountFromZealyRequest") proto.RegisterType((*QueryQAccountFromZealyResponse)(nil), "DecentralCardGame.cardchain.cardchain.QueryQAccountFromZealyResponse") + proto.RegisterType((*QueryQEncountersRequest)(nil), "DecentralCardGame.cardchain.cardchain.QueryQEncountersRequest") + proto.RegisterType((*QueryQEncountersResponse)(nil), "DecentralCardGame.cardchain.cardchain.QueryQEncountersResponse") + proto.RegisterType((*QueryQEncounterRequest)(nil), "DecentralCardGame.cardchain.cardchain.QueryQEncounterRequest") + proto.RegisterType((*QueryQEncounterResponse)(nil), "DecentralCardGame.cardchain.cardchain.QueryQEncounterResponse") + proto.RegisterType((*QueryQEncountersWithImageRequest)(nil), "DecentralCardGame.cardchain.cardchain.QueryQEncountersWithImageRequest") + proto.RegisterType((*QueryQEncountersWithImageResponse)(nil), "DecentralCardGame.cardchain.cardchain.QueryQEncountersWithImageResponse") + proto.RegisterType((*QueryQEncounterWithImageRequest)(nil), "DecentralCardGame.cardchain.cardchain.QueryQEncounterWithImageRequest") + proto.RegisterType((*QueryQEncounterWithImageResponse)(nil), "DecentralCardGame.cardchain.cardchain.QueryQEncounterWithImageResponse") } func init() { proto.RegisterFile("cardchain/cardchain/query.proto", fileDescriptor_e1bdbfeb9d7f6cfd) } var fileDescriptor_e1bdbfeb9d7f6cfd = []byte{ - // 2071 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x59, 0x4f, 0x6f, 0x1b, 0xc7, - 0x15, 0xf7, 0xd2, 0x14, 0x25, 0x8e, 0x2c, 0xd5, 0x9e, 0xba, 0x2e, 0xcb, 0x2a, 0xb4, 0x3a, 0x70, - 0x5a, 0x35, 0x89, 0xb9, 0xb6, 0xe2, 0xc8, 0xb2, 0xe2, 0xc8, 0xd6, 0x1f, 0x2b, 0x51, 0x1a, 0xc5, - 0xce, 0xaa, 0xc9, 0x21, 0x3d, 0x08, 0xcb, 0xe5, 0x88, 0x5a, 0x84, 0xdc, 0xa1, 0x77, 0x86, 0x76, - 0x58, 0x82, 0x87, 0xf6, 0x13, 0x14, 0xed, 0xe7, 0x28, 0x0a, 0xb4, 0x45, 0x7b, 0x2a, 0x7a, 0x2b, - 0x0c, 0xf4, 0x12, 0xa0, 0x28, 0x90, 0xe6, 0xe0, 0x16, 0x76, 0xef, 0xfe, 0x0a, 0xc1, 0xbc, 0x99, - 0xd9, 0x3f, 0x14, 0x25, 0xec, 0x52, 0x27, 0xed, 0xbc, 0x79, 0xef, 0xcd, 0xfb, 0xf3, 0x9b, 0x37, - 0xef, 0x51, 0xe8, 0xaa, 0xe7, 0x86, 0x4d, 0xef, 0xc8, 0xf5, 0x03, 0x3b, 0xfe, 0x7a, 0xdc, 0xa3, - 0x61, 0xbf, 0xde, 0x0d, 0x99, 0x60, 0xf8, 0xf5, 0x6d, 0xea, 0xd1, 0x40, 0x84, 0x6e, 0x7b, 0xcb, - 0x0d, 0x9b, 0xef, 0xbb, 0x1d, 0x5a, 0x8f, 0x18, 0xe3, 0xaf, 0xea, 0xe5, 0x16, 0x6b, 0x31, 0x90, - 0xb0, 0xe5, 0x97, 0x12, 0xae, 0x2e, 0xb4, 0x18, 0x6b, 0xb5, 0xa9, 0xed, 0x76, 0x7d, 0xdb, 0x0d, - 0x02, 0x26, 0x5c, 0xe1, 0xb3, 0x80, 0xeb, 0xdd, 0x37, 0x3c, 0xc6, 0x3b, 0x8c, 0xdb, 0x0d, 0x97, - 0x53, 0x75, 0xa6, 0xfd, 0xe4, 0x66, 0x83, 0x0a, 0xf7, 0xa6, 0xdd, 0x75, 0x5b, 0x7e, 0x00, 0xcc, - 0x9a, 0x77, 0x71, 0x9c, 0x9d, 0x5d, 0x37, 0x74, 0x3b, 0xfc, 0x34, 0x8e, 0x27, 0x4c, 0xf8, 0x41, - 0x4b, 0x73, 0xd4, 0xc6, 0x71, 0xc8, 0xaf, 0xd3, 0xf6, 0x7b, 0x9c, 0x86, 0x7a, 0x7f, 0x6c, 0xac, - 0x3a, 0xae, 0xf0, 0x8e, 0x34, 0xc3, 0x6b, 0xe3, 0x18, 0x38, 0x15, 0x7a, 0xfb, 0xda, 0xf8, 0xed, - 0x76, 0xfb, 0x80, 0x1d, 0x1e, 0x46, 0xa7, 0xfc, 0x68, 0xac, 0x95, 0xac, 0x17, 0x78, 0x7e, 0xfb, - 0x34, 0x57, 0x39, 0x0d, 0x9f, 0x44, 0x4a, 0x16, 0xc6, 0x71, 0x88, 0x2f, 0xd5, 0x2e, 0xb9, 0x8c, - 0xf0, 0x27, 0x32, 0xdc, 0x8f, 0x20, 0x7e, 0x0e, 0x7d, 0xdc, 0xa3, 0x5c, 0x90, 0x06, 0xfa, 0x6e, - 0x8a, 0xca, 0xbb, 0x2c, 0xe0, 0x14, 0xff, 0x0c, 0x95, 0x54, 0x9c, 0x2b, 0xd6, 0xa2, 0xb5, 0x34, - 0xbb, 0x7c, 0xbd, 0x9e, 0x09, 0x11, 0x75, 0xa5, 0x66, 0xb3, 0xf8, 0xec, 0xf9, 0xd5, 0x73, 0x8e, - 0x56, 0x41, 0xde, 0x44, 0x97, 0xe0, 0x8c, 0x4f, 0xa4, 0xa8, 0x3e, 0x18, 0x5f, 0x41, 0x25, 0x29, - 0xb6, 0xdb, 0x84, 0x13, 0xca, 0x8e, 0x5e, 0x91, 0x65, 0x54, 0x89, 0x99, 0xb7, 0x58, 0x20, 0x68, - 0x20, 0xc6, 0xcb, 0x14, 0x23, 0x99, 0x5d, 0xf4, 0x83, 0x31, 0x32, 0xda, 0x95, 0x0a, 0x9a, 0xf6, - 0x14, 0x49, 0x9f, 0x64, 0x96, 0x18, 0xa3, 0xe2, 0x91, 0xcb, 0x8f, 0x2a, 0x05, 0x20, 0xc3, 0x37, - 0xb9, 0x6e, 0x6c, 0xfd, 0x94, 0xd3, 0xd0, 0x9c, 0x5b, 0x41, 0xd3, 0x6e, 0xb3, 0x19, 0x52, 0xce, - 0x8d, 0x0a, 0xbd, 0x24, 0x0b, 0xa8, 0x1a, 0x9f, 0x0c, 0x21, 0xd8, 0x0d, 0x0e, 0x99, 0x09, 0xee, - 0x8b, 0x02, 0xfa, 0xe1, 0xd8, 0x6d, 0x6d, 0xda, 0x2f, 0xd0, 0x45, 0xe9, 0xc1, 0x46, 0xcf, 0x93, - 0xa0, 0x7f, 0x14, 0xfa, 0x1e, 0x55, 0x07, 0x6c, 0xda, 0x32, 0x80, 0xdf, 0x3c, 0xbf, 0xfa, 0x93, - 0x96, 0x2f, 0x8e, 0x7a, 0x8d, 0xba, 0xc7, 0x3a, 0xb6, 0xbe, 0x38, 0xea, 0xcf, 0x75, 0xde, 0xfc, - 0xc2, 0x16, 0xfd, 0x2e, 0xe5, 0xf5, 0x2d, 0xe6, 0x07, 0xce, 0x31, 0x45, 0xb8, 0x86, 0x90, 0xeb, - 0x09, 0xff, 0x09, 0xdd, 0xa7, 0x82, 0x57, 0x0a, 0x8b, 0xe7, 0x97, 0x8a, 0x4e, 0x82, 0x82, 0x17, - 0xd1, 0xac, 0x94, 0xe1, 0x1f, 0xf7, 0x3a, 0x0d, 0x1a, 0x56, 0xce, 0x43, 0x44, 0x93, 0x24, 0x7c, - 0x0d, 0xcd, 0x01, 0xd0, 0xa9, 0xe1, 0x29, 0x02, 0x4f, 0x9a, 0x88, 0xdf, 0x40, 0x17, 0x25, 0x9c, - 0x1f, 0x4a, 0x34, 0x1b, 0xc6, 0x29, 0x60, 0x3c, 0x46, 0xc7, 0x3f, 0x46, 0xf3, 0x1a, 0xd4, 0x86, - 0xb3, 0x04, 0x9c, 0x23, 0x54, 0xa9, 0xb3, 0xed, 0x72, 0x21, 0xa3, 0xb6, 0xc7, 0x9a, 0xfe, 0xa1, - 0x4f, 0x9b, 0x95, 0x69, 0xa5, 0x73, 0x94, 0x1e, 0xa7, 0xe0, 0x33, 0xb8, 0xf6, 0x0e, 0xe5, 0xbd, - 0xb6, 0x88, 0xf0, 0xfd, 0x2b, 0xcb, 0xa4, 0x60, 0x64, 0x5b, 0xa7, 0xa0, 0x81, 0x2e, 0x49, 0x8d, - 0xa9, 0x4d, 0x8d, 0xf9, 0x5b, 0x19, 0x31, 0x9f, 0x56, 0x7c, 0x5c, 0x1d, 0x79, 0x55, 0xd4, 0x57, - 0x0f, 0x60, 0x60, 0x4c, 0xc3, 0x97, 0xd1, 0x14, 0x7b, 0x1a, 0xd0, 0x50, 0x63, 0x4a, 0x2d, 0xf0, - 0x2e, 0x9a, 0xe1, 0xc2, 0x15, 0x3d, 0x4e, 0x55, 0xd2, 0xe6, 0x33, 0xdf, 0xbd, 0x7d, 0x10, 0x73, - 0x22, 0x71, 0xbc, 0x87, 0xca, 0x72, 0xf7, 0xe7, 0x12, 0x25, 0x95, 0xf3, 0xa0, 0xcb, 0xce, 0xa8, - 0x6b, 0x4b, 0xcb, 0x39, 0xb1, 0x06, 0xfc, 0x21, 0x9a, 0xf6, 0xda, 0x2e, 0x97, 0x86, 0x15, 0x41, - 0xd9, 0x8d, 0x1c, 0xca, 0xb6, 0xa4, 0xa4, 0x63, 0x14, 0xc8, 0x9b, 0xcc, 0x59, 0x28, 0x36, 0xfb, - 0x00, 0x95, 0xb2, 0xa3, 0x57, 0x98, 0xa0, 0x0b, 0x81, 0xdb, 0xa1, 0xf2, 0x0e, 0xbb, 0x7e, 0xc0, - 0x01, 0x1e, 0x65, 0x27, 0x45, 0x93, 0xe0, 0xf8, 0x82, 0xf6, 0x9f, 0xb2, 0xb0, 0xc9, 0x23, 0xbe, - 0x69, 0xe0, 0x3b, 0x46, 0x97, 0x10, 0x0e, 0x98, 0xa0, 0x31, 0xe3, 0x0c, 0x30, 0xa6, 0x89, 0x78, - 0x09, 0x7d, 0x87, 0x05, 0xed, 0xfe, 0xbe, 0x70, 0x43, 0x41, 0x43, 0x69, 0x6e, 0xa5, 0xbc, 0x68, - 0x2d, 0xcd, 0x38, 0xa3, 0x64, 0x5c, 0x47, 0x58, 0x92, 0x36, 0xdd, 0xb6, 0x1b, 0x78, 0x74, 0x23, - 0xf0, 0x8e, 0x58, 0xc8, 0x2b, 0x08, 0x98, 0xc7, 0xec, 0xe0, 0x3d, 0x34, 0x13, 0xba, 0xa1, 0x2f, - 0x7c, 0xca, 0x2b, 0xb3, 0x10, 0xb4, 0x9b, 0x39, 0x82, 0xe6, 0x48, 0xd1, 0xbe, 0x13, 0xa9, 0x90, - 0xf7, 0xa7, 0xd3, 0x6b, 0x0b, 0x1f, 0xa2, 0xf9, 0x30, 0x68, 0xf7, 0x2b, 0x17, 0xe0, 0xe8, 0x11, - 0x2a, 0x79, 0x5b, 0x57, 0x75, 0x03, 0x38, 0x0d, 0xf6, 0x05, 0x05, 0x08, 0xfe, 0x91, 0xcf, 0x65, - 0x31, 0x94, 0x15, 0x21, 0x26, 0x90, 0xba, 0x41, 0xe9, 0x9e, 0xbc, 0xdf, 0x89, 0xda, 0x07, 0xf7, - 0x3d, 0x2a, 0xba, 0x66, 0x49, 0x96, 0xd0, 0x45, 0xc5, 0xbf, 0x4f, 0x45, 0x02, 0xd3, 0x9c, 0x8a, - 0x88, 0x57, 0x2d, 0xc8, 0x1a, 0xba, 0x62, 0x38, 0x75, 0x41, 0x30, 0xfc, 0x8b, 0x68, 0x36, 0x2a, - 0x12, 0x91, 0x54, 0x92, 0x44, 0x6e, 0xa1, 0xcb, 0xda, 0x15, 0x55, 0x22, 0x8c, 0xa4, 0xf4, 0x45, - 0x51, 0x22, 0xb9, 0x98, 0x40, 0xbe, 0x29, 0x18, 0xb1, 0x3d, 0x55, 0xac, 0x8c, 0xd8, 0x35, 0x34, - 0x27, 0xfc, 0x0e, 0xe5, 0xc2, 0xed, 0x74, 0xb7, 0xd9, 0xd3, 0x40, 0x8b, 0xa6, 0x89, 0xd2, 0xac, - 0x88, 0xf0, 0x69, 0x17, 0x1e, 0x88, 0xa2, 0x93, 0x24, 0x49, 0x3d, 0x9e, 0x86, 0x8f, 0x7c, 0x29, - 0xd4, 0xfd, 0x2a, 0x3b, 0x69, 0x22, 0xae, 0xa2, 0x99, 0x90, 0x76, 0x99, 0x84, 0x0f, 0x14, 0xcf, - 0xb2, 0x13, 0xad, 0xf1, 0x07, 0x68, 0x9a, 0xf5, 0x84, 0xc7, 0x3a, 0x14, 0xee, 0xc0, 0xfc, 0x72, - 0x3d, 0x23, 0x32, 0x1e, 0x2a, 0x29, 0xc7, 0x88, 0x47, 0x95, 0xfc, 0x51, 0xdb, 0xed, 0xd3, 0x66, - 0xa5, 0x04, 0x89, 0x4d, 0x92, 0xf0, 0x47, 0xa8, 0xe4, 0xb7, 0x02, 0x16, 0x52, 0xb8, 0x28, 0xd9, - 0x4b, 0xdb, 0x2e, 0x08, 0x99, 0x10, 0x6a, 0x1d, 0xe4, 0xa7, 0x68, 0x2e, 0xb5, 0x21, 0x31, 0x62, - 0x5c, 0xb1, 0x00, 0x8f, 0x66, 0x29, 0xcb, 0xef, 0xf7, 0x46, 0xf2, 0xa0, 0xb1, 0xb8, 0x88, 0x66, - 0xf5, 0x3b, 0x92, 0x40, 0x63, 0x92, 0x84, 0x77, 0x34, 0xf2, 0x74, 0x21, 0x9c, 0x5d, 0x7e, 0x2b, - 0xa3, 0xd5, 0x0a, 0xbf, 0x46, 0x98, 0xfc, 0xb9, 0x80, 0xbe, 0x3f, 0x02, 0x3f, 0x9e, 0x40, 0x51, - 0x57, 0xbe, 0x96, 0x11, 0x14, 0xca, 0x4e, 0x4c, 0x90, 0x7e, 0xc1, 0x42, 0x43, 0xa0, 0xec, 0x98, - 0x25, 0xd4, 0x2f, 0xda, 0x6e, 0xeb, 0x77, 0x53, 0xd6, 0x2f, 0x58, 0x49, 0xfc, 0x37, 0x7a, 0xfd, - 0x28, 0xdb, 0x6a, 0x21, 0x1b, 0x0d, 0x69, 0x9d, 0x7e, 0x16, 0xe1, 0x1b, 0x7f, 0x8c, 0x4a, 0xaa, - 0x50, 0x43, 0x8d, 0x9b, 0x5f, 0x5e, 0xc9, 0x5a, 0xe5, 0x8d, 0x0f, 0xba, 0xdc, 0x6b, 0x2d, 0xf8, - 0xe1, 0x48, 0x8a, 0x6f, 0xe7, 0x4a, 0x71, 0x22, 0x32, 0x26, 0xcb, 0xeb, 0xe8, 0xe2, 0xe8, 0x1e, - 0xb8, 0xad, 0x8c, 0x56, 0x79, 0x36, 0x87, 0x1b, 0x07, 0x0b, 0x40, 0x85, 0x6f, 0xf2, 0x5b, 0xcb, - 0x74, 0x72, 0xc9, 0xb0, 0xeb, 0xec, 0x5f, 0x43, 0x73, 0x71, 0x73, 0xb0, 0xdb, 0xe4, 0x3a, 0xff, - 0x69, 0x22, 0x7e, 0x84, 0x50, 0x4c, 0xd0, 0x20, 0xb8, 0x91, 0x37, 0x4e, 0x4e, 0x42, 0x07, 0x79, - 0xdd, 0x14, 0xc6, 0x7d, 0x68, 0x9c, 0x0d, 0x0c, 0xe6, 0x51, 0xc1, 0x37, 0x55, 0xa4, 0xe0, 0x37, - 0xc9, 0x15, 0x53, 0x3d, 0x0c, 0x9b, 0x32, 0x9b, 0xfc, 0xd7, 0x32, 0xed, 0xa1, 0x6c, 0xa1, 0x8c, - 0xf4, 0x4e, 0x2a, 0x2a, 0xd9, 0x2f, 0xf2, 0xd6, 0x48, 0x0a, 0x09, 0xba, 0xa0, 0x62, 0xaf, 0xe8, - 0x3a, 0x9a, 0x29, 0x9a, 0xe4, 0x91, 0x25, 0x26, 0xf4, 0x1b, 0x3d, 0xc1, 0xa2, 0xb2, 0x93, 0xa2, - 0x25, 0x6b, 0x13, 0xd4, 0x7f, 0x78, 0xae, 0x8b, 0x4e, 0x9a, 0x18, 0xb7, 0x1f, 0x53, 0x89, 0xf6, - 0x83, 0xbc, 0x65, 0x1e, 0x01, 0xe5, 0xa0, 0x4e, 0x17, 0xc0, 0x5d, 0xc4, 0x79, 0xd2, 0x2b, 0xb2, - 0x82, 0x6a, 0xc0, 0xad, 0x1e, 0xaa, 0x6d, 0x9f, 0x2b, 0x23, 0x7c, 0x16, 0x9c, 0xfe, 0x20, 0xec, - 0xa3, 0xab, 0x27, 0xca, 0x25, 0xda, 0xf6, 0x5e, 0x18, 0xaa, 0xb6, 0xfd, 0xfc, 0xd2, 0x9c, 0x63, - 0x96, 0xd2, 0x98, 0xa7, 0x6e, 0x20, 0x68, 0x13, 0x10, 0x31, 0xe7, 0xe8, 0x15, 0x79, 0x67, 0xcc, - 0x14, 0xc0, 0x13, 0xcf, 0x98, 0x1a, 0x16, 0x8c, 0x0b, 0x66, 0x49, 0x44, 0xb2, 0x85, 0x8f, 0xc5, - 0xb4, 0x19, 0x9f, 0xa1, 0x29, 0x28, 0xa4, 0x20, 0x35, 0xbb, 0x7c, 0x3f, 0x63, 0x6a, 0x4f, 0x1c, - 0x47, 0x1c, 0xa5, 0x8e, 0xdc, 0x41, 0xaf, 0x29, 0x9e, 0x0d, 0x4f, 0xbe, 0x5a, 0x62, 0x27, 0x64, - 0x9d, 0xcf, 0xa9, 0xdb, 0xee, 0x27, 0x0c, 0xfe, 0xa5, 0x5c, 0x47, 0x03, 0x92, 0x59, 0x92, 0x35, - 0x1d, 0xf4, 0x31, 0xa2, 0x71, 0xec, 0xc6, 0xcf, 0x2b, 0xcb, 0xff, 0x58, 0x40, 0x53, 0x20, 0x8c, - 0xff, 0x62, 0xa1, 0x92, 0x9a, 0xd6, 0xf0, 0x9d, 0x3c, 0x4e, 0xa5, 0xc6, 0xc7, 0xea, 0xda, 0x24, - 0xa2, 0xfa, 0x32, 0xbd, 0xf3, 0xeb, 0x7f, 0xfd, 0xff, 0x77, 0x05, 0x1b, 0x5f, 0xb7, 0x8f, 0xe9, - 0xb0, 0xb7, 0x4e, 0x1c, 0xfc, 0xf1, 0x1f, 0x2d, 0x34, 0x05, 0x91, 0xc5, 0xab, 0xb9, 0x93, 0x61, - 0xcc, 0xb6, 0xb3, 0x3f, 0xb5, 0x5d, 0xc9, 0x40, 0xd6, 0xc1, 0xd6, 0x55, 0xbc, 0x92, 0xd1, 0xd6, - 0xc7, 0x07, 0xf2, 0xdb, 0x1e, 0x28, 0x90, 0x0d, 0xf1, 0x7f, 0x2c, 0x74, 0x21, 0x09, 0x07, 0x7c, - 0x6f, 0x72, 0x20, 0x29, 0x17, 0xce, 0x8c, 0x44, 0xb2, 0x03, 0x3e, 0xdd, 0xc7, 0xeb, 0xb9, 0x7c, - 0x3a, 0xd0, 0xd3, 0x73, 0xec, 0xdb, 0x1f, 0x64, 0x42, 0x64, 0xbf, 0x93, 0x33, 0x21, 0x89, 0x09, - 0xbb, 0xfa, 0x66, 0x46, 0x49, 0x29, 0x43, 0xee, 0x81, 0xe1, 0x77, 0xf0, 0xed, 0xcc, 0x86, 0xf7, - 0x38, 0x0d, 0xed, 0x81, 0xbe, 0x04, 0x43, 0xfc, 0xb5, 0x85, 0xe6, 0xd3, 0x23, 0x39, 0xde, 0xc8, - 0x1d, 0xce, 0xd1, 0x69, 0xbf, 0xba, 0x79, 0x16, 0x15, 0x3a, 0x27, 0xf9, 0x5d, 0x8b, 0xbe, 0x0f, - 0x7c, 0xe9, 0x07, 0xb8, 0x96, 0x1a, 0x3f, 0x73, 0xba, 0x36, 0x6e, 0x8a, 0xce, 0xe9, 0xda, 0xd8, - 0x49, 0x7b, 0x02, 0xd7, 0xd4, 0xef, 0x78, 0x07, 0xa1, 0xf6, 0xe3, 0xaf, 0x16, 0x2a, 0xa9, 0x81, - 0x26, 0x5f, 0xc5, 0x4a, 0x4d, 0xdd, 0xf9, 0x2a, 0x56, 0x7a, 0x7e, 0x22, 0x2b, 0xe0, 0xc2, 0x0d, - 0x5c, 0xcf, 0x95, 0x1d, 0x8e, 0xff, 0x24, 0x2d, 0x87, 0xae, 0x34, 0xa7, 0xe5, 0xc9, 0x49, 0xac, - 0x9a, 0xab, 0xfd, 0x25, 0xf7, 0xc1, 0xd6, 0x35, 0xbc, 0x9a, 0xd9, 0x56, 0xe8, 0x97, 0xed, 0x81, - 0x1e, 0xef, 0x86, 0xf8, 0xf7, 0x16, 0x2a, 0xca, 0x36, 0x00, 0xdf, 0xce, 0x65, 0x73, 0x3c, 0x0d, - 0x56, 0x73, 0x4c, 0x34, 0xdd, 0x7d, 0x2a, 0xc8, 0x5d, 0xb0, 0x79, 0x05, 0xdf, 0xca, 0x6c, 0x33, - 0xa7, 0xc2, 0x1e, 0x40, 0x4f, 0x31, 0xc4, 0xcf, 0x2c, 0x84, 0xe2, 0x5e, 0x13, 0xbf, 0x97, 0xd3, - 0xea, 0xf4, 0x64, 0x5a, 0xcd, 0xdd, 0x67, 0x92, 0x5d, 0xb0, 0x7e, 0x0b, 0x6f, 0xe4, 0xb0, 0xde, - 0xfc, 0x0c, 0x2c, 0x9d, 0x88, 0x66, 0xde, 0x21, 0xfe, 0x9b, 0x85, 0x66, 0xcc, 0xc0, 0x8b, 0xdf, - 0xcd, 0x87, 0xd8, 0xd4, 0x98, 0x9c, 0x39, 0x05, 0x5a, 0x8c, 0x6c, 0x83, 0x13, 0xeb, 0xf8, 0x6e, - 0x76, 0x88, 0x2b, 0x49, 0x7b, 0x10, 0x4d, 0xdf, 0x43, 0xfc, 0x77, 0x69, 0xbf, 0x99, 0x0e, 0xdf, - 0xcd, 0x0f, 0xf9, 0x68, 0x5e, 0xaf, 0xde, 0x9d, 0x4c, 0x58, 0x5f, 0xd8, 0x55, 0xf0, 0x66, 0x19, - 0xdf, 0xc8, 0x77, 0x09, 0x28, 0xc7, 0xff, 0xb6, 0xd0, 0x6c, 0x62, 0x70, 0xc1, 0xeb, 0x93, 0xa1, - 0x29, 0xf2, 0xe3, 0xde, 0xc4, 0xf2, 0xda, 0x95, 0x07, 0xe0, 0xca, 0x3d, 0xfc, 0xde, 0x04, 0xe8, - 0xe2, 0xf6, 0x40, 0x8d, 0x18, 0x43, 0xd9, 0x3d, 0x4d, 0xeb, 0xa9, 0x06, 0xaf, 0xe5, 0xb4, 0x29, - 0x31, 0x31, 0x55, 0x33, 0xff, 0x28, 0x09, 0x52, 0x13, 0xdd, 0x6c, 0x29, 0x68, 0x0f, 0xfc, 0xe6, - 0x10, 0xff, 0x53, 0x76, 0x18, 0xf0, 0xa3, 0xf5, 0x6a, 0xde, 0x52, 0x14, 0x25, 0xe0, 0xce, 0x04, - 0x92, 0x3a, 0xf4, 0x7b, 0x60, 0xfc, 0xfb, 0xf8, 0x41, 0x9e, 0xb2, 0x14, 0xc7, 0xdc, 0x1e, 0x24, - 0x27, 0xb8, 0x21, 0x7e, 0x65, 0x21, 0x7c, 0x7c, 0xf0, 0xc1, 0x0f, 0xf2, 0x18, 0x78, 0xe2, 0xc0, - 0x55, 0xdd, 0x39, 0xab, 0x1a, 0xed, 0xf4, 0x87, 0xe0, 0xf4, 0x36, 0xde, 0xcc, 0xe8, 0x34, 0xfc, - 0x46, 0xd9, 0x3f, 0x68, 0x26, 0x74, 0x45, 0x95, 0xf9, 0xb9, 0x85, 0xe6, 0x52, 0xe3, 0x15, 0x9e, - 0xb8, 0x7b, 0x8d, 0xf2, 0xb9, 0x71, 0x06, 0x0d, 0xda, 0xc5, 0x0f, 0xc0, 0xc5, 0x4d, 0x7c, 0x7f, - 0xa2, 0x06, 0x98, 0x9b, 0x0e, 0x58, 0xa5, 0xf4, 0xd2, 0xb1, 0x71, 0x0c, 0x6f, 0xe7, 0x32, 0xf1, - 0x84, 0x41, 0xb0, 0xfa, 0xe0, 0x8c, 0x5a, 0x26, 0x06, 0xb1, 0xab, 0x54, 0x1d, 0x1c, 0x86, 0xac, - 0x73, 0x00, 0xc3, 0xa7, 0x3d, 0xd0, 0x33, 0xe8, 0x70, 0xd3, 0x79, 0xf6, 0xa2, 0x66, 0x7d, 0xf5, - 0xa2, 0x66, 0xfd, 0xef, 0x45, 0xcd, 0xfa, 0xcd, 0xcb, 0xda, 0xb9, 0xaf, 0x5e, 0xd6, 0xce, 0x7d, - 0xfd, 0xb2, 0x76, 0xee, 0xf3, 0xd5, 0xc4, 0xbf, 0xac, 0x4e, 0x3b, 0xea, 0xcb, 0xe4, 0x3f, 0x29, - 0xfb, 0x5d, 0xca, 0x1b, 0x25, 0xf8, 0x47, 0xe5, 0xdb, 0xdf, 0x06, 0x00, 0x00, 0xff, 0xff, 0x21, - 0x83, 0x28, 0x4e, 0x9f, 0x1e, 0x00, 0x00, + // 2250 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x5a, 0x5f, 0x6f, 0x1b, 0xc7, + 0x11, 0xf7, 0xc9, 0xd4, 0xbf, 0x95, 0xa5, 0xda, 0x1b, 0xd5, 0x65, 0x58, 0x87, 0x56, 0x36, 0x4e, + 0xab, 0x26, 0x31, 0xcf, 0x96, 0x6d, 0x59, 0x96, 0x1d, 0xd9, 0xfa, 0x6b, 0x2b, 0x8d, 0x62, 0xe7, + 0xd4, 0xa4, 0x40, 0xfa, 0x40, 0x1c, 0xc9, 0x15, 0x75, 0x08, 0x79, 0x47, 0xdf, 0x2e, 0xad, 0xb0, + 0x04, 0x1f, 0xda, 0x4f, 0x50, 0xb4, 0x9f, 0xa3, 0x28, 0xd0, 0x16, 0xed, 0x53, 0xd1, 0x57, 0x03, + 0xcd, 0x43, 0x80, 0xa2, 0x40, 0x9a, 0x07, 0xb7, 0xb0, 0xfb, 0x1e, 0xb4, 0x9f, 0xa0, 0xd8, 0xd9, + 0xdd, 0xfb, 0x43, 0x9e, 0x84, 0xbb, 0xd3, 0x93, 0x6e, 0x67, 0x67, 0x66, 0x67, 0x76, 0x7e, 0x3b, + 0x3b, 0xb3, 0x22, 0xba, 0x5c, 0xb7, 0xfd, 0x46, 0xfd, 0xd0, 0x76, 0x5c, 0x33, 0xfc, 0x7a, 0xda, + 0xa5, 0x7e, 0xaf, 0xd2, 0xf1, 0x3d, 0xee, 0xe1, 0xb7, 0xb7, 0x68, 0x9d, 0xba, 0xdc, 0xb7, 0x5b, + 0x9b, 0xb6, 0xdf, 0x78, 0x68, 0xb7, 0x69, 0x25, 0x60, 0x0c, 0xbf, 0x4a, 0xf3, 0x4d, 0xaf, 0xe9, + 0x81, 0x84, 0x29, 0xbe, 0xa4, 0x70, 0xe9, 0x52, 0xd3, 0xf3, 0x9a, 0x2d, 0x6a, 0xda, 0x1d, 0xc7, + 0xb4, 0x5d, 0xd7, 0xe3, 0x36, 0x77, 0x3c, 0x97, 0xa9, 0xd9, 0x77, 0xea, 0x1e, 0x6b, 0x7b, 0xcc, + 0xac, 0xd9, 0x8c, 0xca, 0x35, 0xcd, 0x67, 0xd7, 0x6b, 0x94, 0xdb, 0xd7, 0xcd, 0x8e, 0xdd, 0x74, + 0x5c, 0x60, 0x56, 0xbc, 0x0b, 0x49, 0x76, 0x76, 0x6c, 0xdf, 0x6e, 0xb3, 0x93, 0x38, 0x9e, 0x79, + 0xdc, 0x71, 0x9b, 0x8a, 0xa3, 0x9c, 0xc4, 0x21, 0xbe, 0x4e, 0x9a, 0xef, 0x32, 0xea, 0xab, 0xf9, + 0xc4, 0xbd, 0x6a, 0xdb, 0xbc, 0x7e, 0xa8, 0x18, 0xde, 0x48, 0x62, 0x60, 0x94, 0xab, 0xe9, 0x2b, + 0xc9, 0xd3, 0xad, 0x56, 0xd5, 0x3b, 0x38, 0x08, 0x56, 0x79, 0x33, 0xd1, 0x4a, 0xaf, 0xeb, 0xd6, + 0x9d, 0xd6, 0x49, 0xae, 0x32, 0xea, 0x3f, 0x0b, 0x94, 0x5c, 0x4a, 0xe2, 0xe0, 0x5f, 0xc8, 0x59, + 0x32, 0x8f, 0xf0, 0xc7, 0x62, 0xbb, 0x9f, 0xc0, 0xfe, 0x59, 0xf4, 0x69, 0x97, 0x32, 0x4e, 0x6a, + 0xe8, 0xb5, 0x18, 0x95, 0x75, 0x3c, 0x97, 0x51, 0xfc, 0x63, 0x34, 0x21, 0xf7, 0xb9, 0x68, 0x2c, + 0x18, 0x8b, 0x33, 0x4b, 0x57, 0x2b, 0xa9, 0x10, 0x51, 0x91, 0x6a, 0x36, 0x0a, 0xcf, 0x5f, 0x5c, + 0x3e, 0x63, 0x29, 0x15, 0xe4, 0x5d, 0x74, 0x01, 0xd6, 0xf8, 0x58, 0x88, 0xaa, 0x85, 0xf1, 0x45, + 0x34, 0x21, 0xc4, 0x76, 0x1b, 0xb0, 0xc2, 0xb4, 0xa5, 0x46, 0x64, 0x09, 0x15, 0x43, 0xe6, 0x4d, + 0xcf, 0xe5, 0xd4, 0xe5, 0xc9, 0x32, 0x85, 0x40, 0x66, 0x17, 0xbd, 0x9e, 0x20, 0xa3, 0x5c, 0x29, + 0xa2, 0xc9, 0xba, 0x24, 0xa9, 0x95, 0xf4, 0x10, 0x63, 0x54, 0x38, 0xb4, 0xd9, 0x61, 0x71, 0x0c, + 0xc8, 0xf0, 0x4d, 0xae, 0x6a, 0x5b, 0x3f, 0x61, 0xd4, 0xd7, 0xeb, 0x16, 0xd1, 0xa4, 0xdd, 0x68, + 0xf8, 0x94, 0x31, 0xad, 0x42, 0x0d, 0xc9, 0x25, 0x54, 0x0a, 0x57, 0x86, 0x2d, 0xd8, 0x75, 0x0f, + 0x3c, 0xbd, 0xb9, 0x2f, 0xc7, 0xd0, 0xf7, 0x13, 0xa7, 0x95, 0x69, 0x3f, 0x43, 0xe7, 0x85, 0x07, + 0xeb, 0xdd, 0xba, 0x00, 0xfd, 0x13, 0xdf, 0xa9, 0x53, 0xb9, 0xc0, 0x86, 0x29, 0x36, 0xf0, 0x9b, + 0x17, 0x97, 0x7f, 0xd8, 0x74, 0xf8, 0x61, 0xb7, 0x56, 0xa9, 0x7b, 0x6d, 0x53, 0x1d, 0x1c, 0xf9, + 0xe7, 0x2a, 0x6b, 0x7c, 0x6e, 0xf2, 0x5e, 0x87, 0xb2, 0xca, 0xa6, 0xe7, 0xb8, 0xd6, 0x88, 0x22, + 0x5c, 0x46, 0xc8, 0xae, 0x73, 0xe7, 0x19, 0xdd, 0xa7, 0x9c, 0x15, 0xc7, 0x16, 0xce, 0x2e, 0x16, + 0xac, 0x08, 0x05, 0x2f, 0xa0, 0x19, 0x21, 0xc3, 0x3e, 0xea, 0xb6, 0x6b, 0xd4, 0x2f, 0x9e, 0x85, + 0x1d, 0x8d, 0x92, 0xf0, 0x15, 0x34, 0x0b, 0x40, 0xa7, 0x9a, 0xa7, 0x00, 0x3c, 0x71, 0x22, 0x7e, + 0x07, 0x9d, 0x17, 0x70, 0x7e, 0x2c, 0xd0, 0xac, 0x19, 0xc7, 0x81, 0x71, 0x84, 0x8e, 0x7f, 0x80, + 0xe6, 0x14, 0xa8, 0x35, 0xe7, 0x04, 0x70, 0x0e, 0x51, 0x85, 0xce, 0x96, 0xcd, 0xb8, 0xd8, 0xb5, + 0x3d, 0xaf, 0xe1, 0x1c, 0x38, 0xb4, 0x51, 0x9c, 0x94, 0x3a, 0x87, 0xe9, 0x61, 0x08, 0x3e, 0x85, + 0x63, 0x6f, 0x51, 0xd6, 0x6d, 0xf1, 0x00, 0xdf, 0xbf, 0x30, 0x74, 0x08, 0x86, 0xa6, 0x55, 0x08, + 0x6a, 0xe8, 0x82, 0xd0, 0x18, 0x9b, 0x54, 0x98, 0xbf, 0x99, 0x12, 0xf3, 0x71, 0xc5, 0xa3, 0xea, + 0xc8, 0xb7, 0x05, 0x75, 0xf4, 0x00, 0x06, 0xda, 0x34, 0x3c, 0x8f, 0xc6, 0xbd, 0x23, 0x97, 0xfa, + 0x0a, 0x53, 0x72, 0x80, 0x77, 0xd1, 0x14, 0xe3, 0x36, 0xef, 0x32, 0x2a, 0x83, 0x36, 0x97, 0xfa, + 0xec, 0xed, 0x83, 0x98, 0x15, 0x88, 0xe3, 0x3d, 0x34, 0x2d, 0x66, 0x7f, 0x22, 0x50, 0x52, 0x3c, + 0x0b, 0xba, 0xcc, 0x94, 0xba, 0x36, 0x95, 0x9c, 0x15, 0x6a, 0xc0, 0x1f, 0xa0, 0xc9, 0x7a, 0xcb, + 0x66, 0xc2, 0xb0, 0x02, 0x28, 0xbb, 0x96, 0x41, 0xd9, 0xa6, 0x90, 0xb4, 0xb4, 0x02, 0x71, 0x92, + 0x99, 0xe7, 0xf3, 0x8d, 0x1e, 0x40, 0x65, 0xda, 0x52, 0x23, 0x4c, 0xd0, 0x39, 0xd7, 0x6e, 0x53, + 0x71, 0x86, 0x6d, 0xc7, 0x65, 0x00, 0x8f, 0x69, 0x2b, 0x46, 0x13, 0xe0, 0xf8, 0x9c, 0xf6, 0x8e, + 0x3c, 0xbf, 0xc1, 0x02, 0xbe, 0x49, 0xe0, 0x1b, 0xa1, 0x0b, 0x08, 0xbb, 0x1e, 0xa7, 0x21, 0xe3, + 0x14, 0x30, 0xc6, 0x89, 0x78, 0x11, 0x7d, 0xc7, 0x73, 0x5b, 0xbd, 0x7d, 0x6e, 0xfb, 0x9c, 0xfa, + 0xc2, 0xdc, 0xe2, 0xf4, 0x82, 0xb1, 0x38, 0x65, 0x0d, 0x93, 0x71, 0x05, 0x61, 0x41, 0xda, 0xb0, + 0x5b, 0xb6, 0x5b, 0xa7, 0xeb, 0x6e, 0xfd, 0xd0, 0xf3, 0x59, 0x11, 0x01, 0x73, 0xc2, 0x0c, 0xde, + 0x43, 0x53, 0xbe, 0xed, 0x3b, 0xdc, 0xa1, 0xac, 0x38, 0x03, 0x9b, 0x76, 0x3d, 0xc3, 0xa6, 0x59, + 0x42, 0xb4, 0x67, 0x05, 0x2a, 0xc4, 0xf9, 0x69, 0x77, 0x5b, 0xdc, 0x81, 0xdd, 0x7c, 0xec, 0xb6, + 0x7a, 0xc5, 0x73, 0xb0, 0xf4, 0x10, 0x95, 0xdc, 0x50, 0x59, 0x5d, 0x03, 0x4e, 0x81, 0xfd, 0x92, + 0x04, 0x04, 0xfb, 0xd0, 0x61, 0x22, 0x19, 0x8a, 0x8c, 0x10, 0x12, 0x48, 0x45, 0xa3, 0x74, 0x4f, + 0x9c, 0xef, 0x48, 0xee, 0x83, 0xf3, 0x1e, 0x24, 0x5d, 0x3d, 0x24, 0x8b, 0xe8, 0xbc, 0xe4, 0xdf, + 0xa7, 0x3c, 0x82, 0x69, 0x46, 0x79, 0xc0, 0x2b, 0x07, 0x64, 0x15, 0x5d, 0xd4, 0x9c, 0x2a, 0x21, + 0x68, 0xfe, 0x05, 0x34, 0x13, 0x24, 0x89, 0x40, 0x2a, 0x4a, 0x22, 0x37, 0xd1, 0xbc, 0x72, 0x45, + 0xa6, 0x08, 0x2d, 0x29, 0x7c, 0x91, 0x94, 0x40, 0x2e, 0x24, 0x90, 0x6f, 0xc6, 0xb4, 0xd8, 0x9e, + 0x4c, 0x56, 0x5a, 0xec, 0x0a, 0x9a, 0xe5, 0x4e, 0x9b, 0x32, 0x6e, 0xb7, 0x3b, 0x5b, 0xde, 0x91, + 0xab, 0x44, 0xe3, 0x44, 0x61, 0x56, 0x40, 0xf8, 0xa4, 0x03, 0x17, 0x44, 0xc1, 0x8a, 0x92, 0x84, + 0x9e, 0xba, 0x82, 0x8f, 0xb8, 0x29, 0xe4, 0xf9, 0x9a, 0xb6, 0xe2, 0x44, 0x5c, 0x42, 0x53, 0x3e, + 0xed, 0x78, 0x02, 0x3e, 0x90, 0x3c, 0xa7, 0xad, 0x60, 0x8c, 0x1f, 0xa1, 0x49, 0xaf, 0xcb, 0xeb, + 0x5e, 0x9b, 0xc2, 0x19, 0x98, 0x5b, 0xaa, 0xa4, 0x44, 0xc6, 0x63, 0x29, 0x65, 0x69, 0xf1, 0x20, + 0x93, 0x3f, 0x69, 0xd9, 0x3d, 0xda, 0x28, 0x4e, 0x40, 0x60, 0xa3, 0x24, 0xfc, 0x21, 0x9a, 0x70, + 0x9a, 0xae, 0xe7, 0x53, 0x38, 0x28, 0xe9, 0x53, 0xdb, 0x2e, 0x08, 0xe9, 0x2d, 0x54, 0x3a, 0xc8, + 0x8f, 0xd0, 0x6c, 0x6c, 0x42, 0x60, 0x44, 0xbb, 0x62, 0x00, 0x1e, 0xf5, 0x50, 0xa4, 0xdf, 0xef, + 0x0e, 0xc5, 0x41, 0x61, 0x71, 0x01, 0xcd, 0xa8, 0x7b, 0x24, 0x82, 0xc6, 0x28, 0x09, 0xef, 0x28, + 0xe4, 0xa9, 0x44, 0x38, 0xb3, 0xf4, 0x5e, 0x4a, 0xab, 0x25, 0x7e, 0xb5, 0x30, 0xf9, 0xe3, 0x18, + 0xfa, 0xde, 0x10, 0xfc, 0x58, 0x04, 0x45, 0x1d, 0x71, 0x5b, 0x06, 0x50, 0x98, 0xb6, 0x42, 0x82, + 0xf0, 0x0b, 0x06, 0x0a, 0x02, 0xd3, 0x96, 0x1e, 0x42, 0xfe, 0xa2, 0xad, 0x96, 0xba, 0x37, 0x45, + 0xfe, 0x82, 0x91, 0xc0, 0x7f, 0xad, 0xdb, 0x0b, 0xa2, 0x2d, 0x07, 0xa2, 0xd0, 0x10, 0xd6, 0xa9, + 0x6b, 0x11, 0xbe, 0xf1, 0x47, 0x68, 0x42, 0x26, 0x6a, 0xc8, 0x71, 0x73, 0x4b, 0xcb, 0x69, 0xb3, + 0xbc, 0xf6, 0x41, 0xa5, 0x7b, 0xa5, 0x05, 0x3f, 0x1e, 0x0a, 0xf1, 0xed, 0x4c, 0x21, 0x8e, 0xec, + 0x8c, 0x8e, 0xf2, 0x1a, 0x3a, 0x3f, 0x3c, 0x07, 0x6e, 0x4b, 0xa3, 0x65, 0x9c, 0xf5, 0xe2, 0xda, + 0xc1, 0x31, 0xa0, 0xc2, 0x37, 0xf9, 0xb5, 0xa1, 0x2b, 0xb9, 0xe8, 0xb6, 0xab, 0xe8, 0x5f, 0x41, + 0xb3, 0x61, 0x71, 0xb0, 0xdb, 0x60, 0x2a, 0xfe, 0x71, 0x22, 0x7e, 0x82, 0x50, 0x48, 0x50, 0x20, + 0xb8, 0x96, 0x75, 0x9f, 0xac, 0x88, 0x0e, 0xf2, 0xb6, 0x4e, 0x8c, 0xfb, 0x50, 0x38, 0x6b, 0x18, + 0xcc, 0xa1, 0x31, 0x47, 0x67, 0x91, 0x31, 0xa7, 0x41, 0x2e, 0xea, 0xec, 0xa1, 0xd9, 0xa4, 0xd9, + 0xe4, 0x5f, 0x86, 0x2e, 0x0f, 0x45, 0x09, 0xa5, 0xa5, 0x77, 0x62, 0xbb, 0x92, 0xfe, 0x20, 0x6f, + 0x0e, 0x85, 0x90, 0xa0, 0x73, 0x72, 0xef, 0x25, 0x5d, 0xed, 0x66, 0x8c, 0x26, 0x78, 0x44, 0x8a, + 0xf1, 0x9d, 0x5a, 0x97, 0x7b, 0x41, 0xda, 0x89, 0xd1, 0xa2, 0xb9, 0x09, 0xf2, 0x3f, 0x5c, 0xd7, + 0x05, 0x2b, 0x4e, 0x0c, 0xcb, 0x8f, 0xf1, 0x48, 0xf9, 0x41, 0xde, 0xd3, 0x97, 0x80, 0x74, 0x50, + 0x85, 0x0b, 0xe0, 0xce, 0xc3, 0x38, 0xa9, 0x11, 0x59, 0x46, 0x65, 0xe0, 0x96, 0x17, 0xd5, 0x96, + 0xc3, 0xa4, 0x11, 0x8e, 0xe7, 0x9e, 0x7c, 0x21, 0xec, 0xa3, 0xcb, 0xc7, 0xca, 0x45, 0xca, 0xf6, + 0xae, 0xef, 0xcb, 0xb2, 0xfd, 0xec, 0xe2, 0xac, 0xa5, 0x87, 0xc2, 0x98, 0x23, 0xdb, 0xe5, 0xb4, + 0x01, 0x88, 0x98, 0xb5, 0xd4, 0x88, 0xdc, 0x4a, 0xe8, 0x02, 0x58, 0xe4, 0x1a, 0x93, 0xcd, 0x82, + 0x76, 0x41, 0x0f, 0x09, 0x8f, 0x96, 0xf0, 0xa1, 0x98, 0x32, 0xe3, 0x53, 0x34, 0x0e, 0x89, 0x14, + 0xa4, 0x66, 0x96, 0x1e, 0xa4, 0x0c, 0xed, 0xb1, 0xed, 0x88, 0x25, 0xd5, 0x91, 0x3b, 0xe8, 0x0d, + 0xc9, 0xb3, 0x5e, 0x17, 0xb7, 0x16, 0xdf, 0xf1, 0xbd, 0xf6, 0x67, 0xd4, 0x6e, 0xf5, 0x22, 0x06, + 0xff, 0x5c, 0x8c, 0x83, 0x06, 0x49, 0x0f, 0xc9, 0xaa, 0xda, 0xf4, 0x04, 0xd1, 0x70, 0xef, 0x8e, + 0xe9, 0x57, 0x5e, 0xd7, 0xa9, 0x70, 0xdb, 0x05, 0xd9, 0x30, 0x15, 0x92, 0x92, 0x3e, 0xae, 0xd1, + 0x29, 0x85, 0xfb, 0x45, 0x7d, 0x81, 0x07, 0x73, 0xc7, 0x9d, 0x9c, 0xd1, 0x05, 0x02, 0x25, 0x04, + 0x2d, 0x0c, 0x2f, 0xf0, 0x53, 0x87, 0x1f, 0xee, 0xb6, 0xed, 0x26, 0xd5, 0x46, 0xbc, 0x85, 0xde, + 0x3c, 0x81, 0x47, 0x29, 0xba, 0xae, 0xd0, 0x13, 0x32, 0x0d, 0xeb, 0x19, 0x31, 0x6b, 0x74, 0xed, + 0x11, 0xb5, 0x4b, 0x5f, 0xbe, 0x85, 0xc6, 0x81, 0x09, 0xff, 0xc9, 0x40, 0x13, 0xb2, 0x93, 0xc5, + 0x77, 0xb2, 0x04, 0x3c, 0xd6, 0x5a, 0x97, 0x56, 0xf3, 0x88, 0x2a, 0x17, 0x6f, 0xfd, 0xf2, 0xef, + 0xff, 0xf9, 0xcd, 0x98, 0x89, 0xaf, 0x9a, 0x23, 0x3a, 0xcc, 0xcd, 0x63, 0x1f, 0x45, 0xf0, 0xef, + 0x0d, 0x34, 0x0e, 0xa8, 0xc3, 0x2b, 0x99, 0x81, 0xaa, 0xcd, 0x36, 0xd3, 0x97, 0x21, 0x1d, 0xc1, + 0x40, 0xd6, 0xc0, 0xd6, 0x15, 0xbc, 0x9c, 0xd2, 0xd6, 0xa7, 0x55, 0xf1, 0x6d, 0xf6, 0xe5, 0x01, + 0x1c, 0xe0, 0x7f, 0x1a, 0xe8, 0x5c, 0xf4, 0xa8, 0xe0, 0xfb, 0xf9, 0x0f, 0x99, 0x74, 0xe1, 0xd4, + 0xa7, 0x94, 0xec, 0x80, 0x4f, 0x0f, 0xf0, 0x5a, 0x26, 0x9f, 0xaa, 0xea, 0x65, 0x21, 0xf4, 0xed, + 0x77, 0x22, 0x20, 0xa2, 0x16, 0xcc, 0x18, 0x90, 0xc8, 0xeb, 0x43, 0xe9, 0xdd, 0x94, 0x92, 0x42, + 0x86, 0xdc, 0x07, 0xc3, 0xef, 0xe0, 0xdb, 0xa9, 0x0d, 0xef, 0x32, 0xea, 0x9b, 0x7d, 0x95, 0x20, + 0x06, 0xf8, 0x6b, 0x03, 0xcd, 0xc5, 0x9f, 0x2b, 0xf0, 0x7a, 0xe6, 0xed, 0x1c, 0x7e, 0x09, 0x29, + 0x6d, 0x9c, 0x46, 0x85, 0x8a, 0x49, 0x76, 0xd7, 0x82, 0xef, 0xaa, 0x23, 0xfc, 0x00, 0xd7, 0x62, + 0xad, 0x79, 0x46, 0xd7, 0x92, 0x5e, 0x18, 0x32, 0xba, 0x96, 0xf8, 0x0a, 0x91, 0xc3, 0x35, 0xf9, + 0xc6, 0x59, 0xf5, 0x95, 0x1f, 0x7f, 0x36, 0xd0, 0x84, 0x6c, 0xf6, 0xb2, 0x65, 0xac, 0xd8, 0x8b, + 0x44, 0xb6, 0x8c, 0x15, 0xef, 0x2d, 0xc9, 0x32, 0xb8, 0x70, 0x0d, 0x57, 0x32, 0x45, 0x87, 0xe1, + 0x3f, 0x08, 0xcb, 0xa1, 0x62, 0xcf, 0x68, 0x79, 0xb4, 0x4b, 0x2d, 0x65, 0x6a, 0x0d, 0xc8, 0x03, + 0xb0, 0x75, 0x15, 0xaf, 0xa4, 0xb6, 0x15, 0x7a, 0x09, 0xb3, 0xaf, 0x5a, 0xdf, 0x01, 0xfe, 0xad, + 0x81, 0x0a, 0xa2, 0x44, 0xc2, 0xb7, 0x33, 0xd9, 0x1c, 0x76, 0xca, 0xa5, 0x0c, 0xdd, 0x5e, 0x67, + 0x9f, 0x72, 0x72, 0x0f, 0x6c, 0x5e, 0xc6, 0x37, 0x53, 0xdb, 0xcc, 0x28, 0x37, 0xfb, 0x50, 0x6f, + 0x0d, 0xf0, 0x73, 0x03, 0xa1, 0xb0, 0x0e, 0xc7, 0xef, 0x67, 0xb4, 0x3a, 0xde, 0xb5, 0x97, 0x32, + 0xd7, 0xe0, 0x64, 0x17, 0xac, 0xdf, 0xc4, 0xeb, 0x19, 0xac, 0xd7, 0x4f, 0xe4, 0xc2, 0x89, 0xe0, + 0x3d, 0x60, 0x80, 0xff, 0x62, 0xa0, 0x29, 0xfd, 0x18, 0x80, 0xef, 0x66, 0x43, 0x6c, 0xec, 0x09, + 0x21, 0x75, 0x08, 0x94, 0x18, 0xd9, 0x02, 0x27, 0xd6, 0xf0, 0xbd, 0xf4, 0x10, 0x97, 0x92, 0x66, + 0x3f, 0x78, 0x99, 0x18, 0xe0, 0xbf, 0x0a, 0xfb, 0x75, 0xe7, 0x7c, 0x37, 0x3b, 0xe4, 0x83, 0xb7, + 0x8c, 0xd2, 0xbd, 0x7c, 0xc2, 0xea, 0xc0, 0xae, 0x80, 0x37, 0x4b, 0xf8, 0x5a, 0xb6, 0x43, 0x40, + 0x19, 0xfe, 0x87, 0x81, 0x66, 0x22, 0x4d, 0x1d, 0x5e, 0xcb, 0x87, 0xa6, 0xc0, 0x8f, 0xfb, 0xb9, + 0xe5, 0x95, 0x2b, 0xdb, 0xe0, 0xca, 0x7d, 0xfc, 0x7e, 0x0e, 0x74, 0x31, 0xb3, 0x2f, 0xdb, 0xaf, + 0x81, 0xa8, 0x9e, 0x26, 0x55, 0xc7, 0x87, 0x57, 0x33, 0xda, 0x14, 0xe9, 0x26, 0x4b, 0xa9, 0x1f, + 0x6c, 0x41, 0x2a, 0xd7, 0xc9, 0x16, 0x82, 0x66, 0xdf, 0x69, 0x0c, 0xf0, 0xdf, 0x44, 0x85, 0x01, + 0x0f, 0xfa, 0x2b, 0x59, 0x53, 0x51, 0x10, 0x80, 0x3b, 0x39, 0x24, 0xd5, 0xd6, 0xef, 0x81, 0xf1, + 0x0f, 0xf1, 0x76, 0x96, 0xb4, 0x14, 0xee, 0xb9, 0xd9, 0x8f, 0x76, 0xb7, 0x03, 0xfc, 0xad, 0x81, + 0xf0, 0x68, 0x53, 0x88, 0xb7, 0xb3, 0x18, 0x78, 0x6c, 0x33, 0x5a, 0xda, 0x39, 0xad, 0x1a, 0xe5, + 0xf4, 0x07, 0xe0, 0xf4, 0x16, 0xde, 0x48, 0xe9, 0x34, 0xbc, 0xdf, 0xf6, 0xaa, 0x8d, 0x88, 0xae, + 0x20, 0x33, 0xbf, 0x30, 0xd0, 0x6c, 0xac, 0xf5, 0xc4, 0xb9, 0xab, 0xd7, 0x20, 0x9e, 0xeb, 0xa7, + 0xd0, 0xa0, 0x5c, 0x7c, 0x04, 0x2e, 0x6e, 0xe0, 0x07, 0xb9, 0x0a, 0x60, 0xa6, 0x2b, 0x60, 0x19, + 0xd2, 0x0b, 0x23, 0xad, 0x2a, 0xde, 0xca, 0x64, 0xe2, 0x31, 0x4d, 0x72, 0x69, 0xfb, 0x94, 0x5a, + 0x72, 0x83, 0xd8, 0x96, 0xaa, 0xaa, 0x07, 0xbe, 0xd7, 0xae, 0x42, 0x63, 0x6e, 0xf6, 0x55, 0x7f, + 0x0e, 0x47, 0x72, 0x26, 0xd2, 0xc0, 0x66, 0xcc, 0x8f, 0x23, 0x9d, 0x79, 0xc6, 0xfc, 0x98, 0xd0, + 0xbe, 0xdf, 0x05, 0xff, 0x6e, 0xe1, 0x1b, 0xa9, 0xfd, 0xa3, 0xa1, 0xf5, 0x5f, 0x8a, 0xd2, 0x21, + 0x50, 0x9a, 0xb1, 0x74, 0x18, 0x7e, 0x2f, 0x28, 0xad, 0xe5, 0x15, 0xcf, 0x5d, 0x29, 0x07, 0xae, + 0xc8, 0x7c, 0xf9, 0x5f, 0x03, 0xcd, 0x27, 0xbd, 0x2e, 0xe0, 0x87, 0x39, 0x77, 0x79, 0xf8, 0xed, + 0xa1, 0xf4, 0xe8, 0xf4, 0x8a, 0x72, 0x77, 0xa1, 0x61, 0xdc, 0xaa, 0x47, 0x0e, 0x3f, 0xac, 0x3a, + 0xe0, 0xda, 0xff, 0x0c, 0xf4, 0x5a, 0xc2, 0xcb, 0x07, 0xde, 0xc9, 0x67, 0xe9, 0x88, 0xc7, 0x0f, + 0x4f, 0xad, 0x27, 0x67, 0x62, 0x8d, 0x38, 0x1c, 0xf1, 0x17, 0x02, 0xbd, 0x61, 0x3d, 0x7f, 0x59, + 0x36, 0xbe, 0x7a, 0x59, 0x36, 0xfe, 0xfd, 0xb2, 0x6c, 0xfc, 0xea, 0x55, 0xf9, 0xcc, 0x57, 0xaf, + 0xca, 0x67, 0xbe, 0x7e, 0x55, 0x3e, 0xf3, 0xd9, 0x4a, 0xe4, 0x9f, 0xea, 0x27, 0xad, 0xf3, 0x45, + 0xf4, 0x67, 0x14, 0xbd, 0x0e, 0x65, 0xb5, 0x09, 0xf8, 0x29, 0xc5, 0x8d, 0xff, 0x07, 0x00, 0x00, + 0xff, 0xff, 0x42, 0x05, 0x66, 0xa6, 0x41, 0x23, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1938,6 +2261,14 @@ type QueryClient interface { QCardContents(ctx context.Context, in *QueryQCardContentsRequest, opts ...grpc.CallOption) (*QueryQCardContentsResponse, error) // Queries a list of QAccountFromZealy items. QAccountFromZealy(ctx context.Context, in *QueryQAccountFromZealyRequest, opts ...grpc.CallOption) (*QueryQAccountFromZealyResponse, error) + // Queries a list of QEncounters items. + QEncounters(ctx context.Context, in *QueryQEncountersRequest, opts ...grpc.CallOption) (*QueryQEncountersResponse, error) + // Queries a list of QEncounter items. + QEncounter(ctx context.Context, in *QueryQEncounterRequest, opts ...grpc.CallOption) (*QueryQEncounterResponse, error) + // Queries a list of QEncountersWithImage items. + QEncountersWithImage(ctx context.Context, in *QueryQEncountersWithImageRequest, opts ...grpc.CallOption) (*QueryQEncountersWithImageResponse, error) + // Queries a list of QEncounterWithImage items. + QEncounterWithImage(ctx context.Context, in *QueryQEncounterWithImageRequest, opts ...grpc.CallOption) (*QueryQEncounterWithImageResponse, error) } type queryClient struct { @@ -2110,6 +2441,42 @@ func (c *queryClient) QAccountFromZealy(ctx context.Context, in *QueryQAccountFr return out, nil } +func (c *queryClient) QEncounters(ctx context.Context, in *QueryQEncountersRequest, opts ...grpc.CallOption) (*QueryQEncountersResponse, error) { + out := new(QueryQEncountersResponse) + err := c.cc.Invoke(ctx, "/DecentralCardGame.cardchain.cardchain.Query/QEncounters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) QEncounter(ctx context.Context, in *QueryQEncounterRequest, opts ...grpc.CallOption) (*QueryQEncounterResponse, error) { + out := new(QueryQEncounterResponse) + err := c.cc.Invoke(ctx, "/DecentralCardGame.cardchain.cardchain.Query/QEncounter", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) QEncountersWithImage(ctx context.Context, in *QueryQEncountersWithImageRequest, opts ...grpc.CallOption) (*QueryQEncountersWithImageResponse, error) { + out := new(QueryQEncountersWithImageResponse) + err := c.cc.Invoke(ctx, "/DecentralCardGame.cardchain.cardchain.Query/QEncountersWithImage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) QEncounterWithImage(ctx context.Context, in *QueryQEncounterWithImageRequest, opts ...grpc.CallOption) (*QueryQEncounterWithImageResponse, error) { + out := new(QueryQEncounterWithImageResponse) + err := c.cc.Invoke(ctx, "/DecentralCardGame.cardchain.cardchain.Query/QEncounterWithImage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { // Parameters queries the parameters of the module. @@ -2148,6 +2515,14 @@ type QueryServer interface { QCardContents(context.Context, *QueryQCardContentsRequest) (*QueryQCardContentsResponse, error) // Queries a list of QAccountFromZealy items. QAccountFromZealy(context.Context, *QueryQAccountFromZealyRequest) (*QueryQAccountFromZealyResponse, error) + // Queries a list of QEncounters items. + QEncounters(context.Context, *QueryQEncountersRequest) (*QueryQEncountersResponse, error) + // Queries a list of QEncounter items. + QEncounter(context.Context, *QueryQEncounterRequest) (*QueryQEncounterResponse, error) + // Queries a list of QEncountersWithImage items. + QEncountersWithImage(context.Context, *QueryQEncountersWithImageRequest) (*QueryQEncountersWithImageResponse, error) + // Queries a list of QEncounterWithImage items. + QEncounterWithImage(context.Context, *QueryQEncounterWithImageRequest) (*QueryQEncounterWithImageResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -2208,6 +2583,18 @@ func (*UnimplementedQueryServer) QCardContents(ctx context.Context, req *QueryQC func (*UnimplementedQueryServer) QAccountFromZealy(ctx context.Context, req *QueryQAccountFromZealyRequest) (*QueryQAccountFromZealyResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method QAccountFromZealy not implemented") } +func (*UnimplementedQueryServer) QEncounters(ctx context.Context, req *QueryQEncountersRequest) (*QueryQEncountersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method QEncounters not implemented") +} +func (*UnimplementedQueryServer) QEncounter(ctx context.Context, req *QueryQEncounterRequest) (*QueryQEncounterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method QEncounter not implemented") +} +func (*UnimplementedQueryServer) QEncountersWithImage(ctx context.Context, req *QueryQEncountersWithImageRequest) (*QueryQEncountersWithImageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method QEncountersWithImage not implemented") +} +func (*UnimplementedQueryServer) QEncounterWithImage(ctx context.Context, req *QueryQEncounterWithImageRequest) (*QueryQEncounterWithImageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method QEncounterWithImage not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -2537,52 +2924,124 @@ func _Query_QAccountFromZealy_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } -var _Query_serviceDesc = grpc.ServiceDesc{ - ServiceName: "DecentralCardGame.cardchain.cardchain.Query", - HandlerType: (*QueryServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Params", - Handler: _Query_Params_Handler, - }, - { - MethodName: "QCard", - Handler: _Query_QCard_Handler, - }, - { - MethodName: "QCardContent", - Handler: _Query_QCardContent_Handler, - }, - { - MethodName: "QUser", - Handler: _Query_QUser_Handler, - }, - { - MethodName: "QCardchainInfo", - Handler: _Query_QCardchainInfo_Handler, - }, - { - MethodName: "QVotingResults", - Handler: _Query_QVotingResults_Handler, - }, - { - MethodName: "QCards", - Handler: _Query_QCards_Handler, - }, - { - MethodName: "QMatch", - Handler: _Query_QMatch_Handler, - }, - { - MethodName: "QSet", - Handler: _Query_QSet_Handler, - }, - { - MethodName: "QSellOffer", - Handler: _Query_QSellOffer_Handler, - }, - { - MethodName: "QCouncil", +func _Query_QEncounters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryQEncountersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).QEncounters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/DecentralCardGame.cardchain.cardchain.Query/QEncounters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).QEncounters(ctx, req.(*QueryQEncountersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_QEncounter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryQEncounterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).QEncounter(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/DecentralCardGame.cardchain.cardchain.Query/QEncounter", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).QEncounter(ctx, req.(*QueryQEncounterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_QEncountersWithImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryQEncountersWithImageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).QEncountersWithImage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/DecentralCardGame.cardchain.cardchain.Query/QEncountersWithImage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).QEncountersWithImage(ctx, req.(*QueryQEncountersWithImageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_QEncounterWithImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryQEncounterWithImageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).QEncounterWithImage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/DecentralCardGame.cardchain.cardchain.Query/QEncounterWithImage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).QEncounterWithImage(ctx, req.(*QueryQEncounterWithImageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Query_serviceDesc = grpc.ServiceDesc{ + ServiceName: "DecentralCardGame.cardchain.cardchain.Query", + HandlerType: (*QueryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Params", + Handler: _Query_Params_Handler, + }, + { + MethodName: "QCard", + Handler: _Query_QCard_Handler, + }, + { + MethodName: "QCardContent", + Handler: _Query_QCardContent_Handler, + }, + { + MethodName: "QUser", + Handler: _Query_QUser_Handler, + }, + { + MethodName: "QCardchainInfo", + Handler: _Query_QCardchainInfo_Handler, + }, + { + MethodName: "QVotingResults", + Handler: _Query_QVotingResults_Handler, + }, + { + MethodName: "QCards", + Handler: _Query_QCards_Handler, + }, + { + MethodName: "QMatch", + Handler: _Query_QMatch_Handler, + }, + { + MethodName: "QSet", + Handler: _Query_QSet_Handler, + }, + { + MethodName: "QSellOffer", + Handler: _Query_QSellOffer_Handler, + }, + { + MethodName: "QCouncil", Handler: _Query_QCouncil_Handler, }, { @@ -2613,6 +3072,22 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "QAccountFromZealy", Handler: _Query_QAccountFromZealy_Handler, }, + { + MethodName: "QEncounters", + Handler: _Query_QEncounters_Handler, + }, + { + MethodName: "QEncounter", + Handler: _Query_QEncounter_Handler, + }, + { + MethodName: "QEncountersWithImage", + Handler: _Query_QEncountersWithImage_Handler, + }, + { + MethodName: "QEncounterWithImage", + Handler: _Query_QEncounterWithImage_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cardchain/cardchain/query.proto", @@ -4001,109 +4476,303 @@ func (m *QueryQAccountFromZealyResponse) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } -func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { - offset -= sovQuery(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *QueryQEncountersRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + return dAtA[:n], nil } -func (m *QueryParamsRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n + +func (m *QueryQEncountersRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryParamsResponse) Size() (n int) { - if m == nil { - return 0 - } +func (m *QueryQEncountersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = m.Params.Size() - n += 1 + l + sovQuery(uint64(l)) - return n + return len(dAtA) - i, nil } -func (m *QueryQCardRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.CardId) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) +func (m *QueryQEncountersResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *QueryQCardContentRequest) Size() (n int) { - if m == nil { - return 0 - } +func (m *QueryQEncountersResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryQEncountersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.CardId != 0 { - n += 1 + sovQuery(uint64(m.CardId)) - } - return n + return len(dAtA) - i, nil } -func (m *QueryQCardContentResponse) Size() (n int) { - if m == nil { - return 0 +func (m *QueryQEncounterRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *QueryQEncounterRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryQEncounterRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Content) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - l = len(m.Hash) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + if m.Id != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 } - return n + return len(dAtA) - i, nil } -func (m *QueryQUserRequest) Size() (n int) { - if m == nil { - return 0 +func (m *QueryQEncounterResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *QueryQEncounterResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryQEncounterResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Address) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - return n + return len(dAtA) - i, nil } -func (m *QueryQCardchainInfoRequest) Size() (n int) { - if m == nil { - return 0 +func (m *QueryQEncountersWithImageRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *QueryQEncountersWithImageRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryQEncountersWithImageRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - return n + return len(dAtA) - i, nil } -func (m *QueryQCardchainInfoResponse) Size() (n int) { - if m == nil { - return 0 +func (m *QueryQEncountersWithImageResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - var l int - _ = l - l = m.CardAuctionPrice.Size() - n += 1 + l + sovQuery(uint64(l)) + return dAtA[:n], nil +} + +func (m *QueryQEncountersWithImageResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryQEncountersWithImageResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryQEncounterWithImageRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryQEncounterWithImageRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryQEncounterWithImageRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *QueryQEncounterWithImageResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryQEncounterWithImageResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryQEncounterWithImageResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { + offset -= sovQuery(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *QueryParamsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryParamsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Params.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryQCardRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.CardId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryQCardContentRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CardId != 0 { + n += 1 + sovQuery(uint64(m.CardId)) + } + return n +} + +func (m *QueryQCardContentResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Content) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryQUserRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryQCardchainInfoRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryQCardchainInfoResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.CardAuctionPrice.Size() + n += 1 + l + sovQuery(uint64(l)) if len(m.ActiveSets) > 0 { l = 0 for _, e := range m.ActiveSets { @@ -4587,6 +5256,84 @@ func (m *QueryQAccountFromZealyResponse) Size() (n int) { return n } +func (m *QueryQEncountersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryQEncountersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryQEncounterRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovQuery(uint64(m.Id)) + } + return n +} + +func (m *QueryQEncounterResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryQEncountersWithImageRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryQEncountersWithImageResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryQEncounterWithImageRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovQuery(uint64(m.Id)) + } + return n +} + +func (m *QueryQEncounterWithImageResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -8596,6 +9343,444 @@ func (m *QueryQAccountFromZealyResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryQEncountersRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryQEncountersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryQEncountersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryQEncountersResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryQEncountersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryQEncountersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryQEncounterRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryQEncounterRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryQEncounterRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryQEncounterResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryQEncounterResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryQEncounterResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryQEncountersWithImageRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryQEncountersWithImageRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryQEncountersWithImageRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryQEncountersWithImageResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryQEncountersWithImageResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryQEncountersWithImageResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryQEncounterWithImageRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryQEncounterWithImageRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryQEncounterWithImageRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryQEncounterWithImageResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryQEncounterWithImageResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryQEncounterWithImageResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipQuery(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/cardchain/types/query.pb.gw.go b/x/cardchain/types/query.pb.gw.go index a79bd419..153b6f92 100644 --- a/x/cardchain/types/query.pb.gw.go +++ b/x/cardchain/types/query.pb.gw.go @@ -931,6 +931,150 @@ func local_request_Query_QAccountFromZealy_0(ctx context.Context, marshaler runt } +func request_Query_QEncounters_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryQEncountersRequest + var metadata runtime.ServerMetadata + + msg, err := client.QEncounters(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_QEncounters_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryQEncountersRequest + var metadata runtime.ServerMetadata + + msg, err := server.QEncounters(ctx, &protoReq) + return msg, metadata, err + +} + +func request_Query_QEncounter_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryQEncounterRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.QEncounter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_QEncounter_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryQEncounterRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := server.QEncounter(ctx, &protoReq) + return msg, metadata, err + +} + +func request_Query_QEncountersWithImage_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryQEncountersWithImageRequest + var metadata runtime.ServerMetadata + + msg, err := client.QEncountersWithImage(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_QEncountersWithImage_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryQEncountersWithImageRequest + var metadata runtime.ServerMetadata + + msg, err := server.QEncountersWithImage(ctx, &protoReq) + return msg, metadata, err + +} + +func request_Query_QEncounterWithImage_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryQEncounterWithImageRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.QEncounterWithImage(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_QEncounterWithImage_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryQEncounterWithImageRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := server.QEncounterWithImage(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -1351,6 +1495,98 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_QEncounters_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_QEncounters_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_QEncounters_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_QEncounter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_QEncounter_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_QEncounter_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_QEncountersWithImage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_QEncountersWithImage_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_QEncountersWithImage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_QEncounterWithImage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_QEncounterWithImage_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_QEncounterWithImage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1752,6 +1988,86 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_QEncounters_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_QEncounters_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_QEncounters_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_QEncounter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_QEncounter_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_QEncounter_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_QEncountersWithImage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_QEncountersWithImage_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_QEncountersWithImage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_QEncounterWithImage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_QEncounterWithImage_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_QEncounterWithImage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1791,6 +2107,14 @@ var ( pattern_Query_QCardContents_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"DecentralCardGame", "Cardchain", "cardchain", "q_card_contents", "cardIds"}, "", runtime.AssumeColonVerbOpt(true))) pattern_Query_QAccountFromZealy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"DecentralCardGame", "Cardchain", "cardchain", "q_account_from_zealy", "zealyId"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_QEncounters_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"DecentralCardGame", "Cardchain", "cardchain", "q_encounters"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_QEncounter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"DecentralCardGame", "Cardchain", "cardchain", "q_encounter", "id"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_QEncountersWithImage_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"DecentralCardGame", "Cardchain", "cardchain", "q_encounters_with_image"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_QEncounterWithImage_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"DecentralCardGame", "Cardchain", "cardchain", "q_encounter_with_image", "id"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( @@ -1829,4 +2153,12 @@ var ( forward_Query_QCardContents_0 = runtime.ForwardResponseMessage forward_Query_QAccountFromZealy_0 = runtime.ForwardResponseMessage + + forward_Query_QEncounters_0 = runtime.ForwardResponseMessage + + forward_Query_QEncounter_0 = runtime.ForwardResponseMessage + + forward_Query_QEncountersWithImage_0 = runtime.ForwardResponseMessage + + forward_Query_QEncounterWithImage_0 = runtime.ForwardResponseMessage ) From 89361240294b2f6184ca2028ef460d63b4eee441 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Fri, 13 Dec 2024 04:12:07 +0100 Subject: [PATCH 14/20] feat(#237): Added queries --- docs/static/openapi.yml | 266 +++++++++ go.mod | 2 - go.sum | 3 - proto/cardchain/cardchain/query.proto | 11 +- x/cardchain/client/cli/query_q_encouter.go | 50 -- .../client/cli/query_q_encouter_with_image.go | 50 -- x/cardchain/client/cli/query_q_encouters.go | 42 -- x/cardchain/keeper/query_q_encounter.go | 5 +- .../keeper/query_q_encounter_with_image.go | 8 +- x/cardchain/keeper/query_q_encounters.go | 5 +- .../keeper/query_q_encounters_with_image.go | 14 +- x/cardchain/keeper/query_q_encouter.go | 23 - .../keeper/query_q_encouter_with_image.go | 23 - x/cardchain/keeper/query_q_encouters.go | 23 - x/cardchain/types/query.pb.go | 532 +++++++++++++----- 15 files changed, 683 insertions(+), 374 deletions(-) delete mode 100644 x/cardchain/client/cli/query_q_encouter.go delete mode 100644 x/cardchain/client/cli/query_q_encouter_with_image.go delete mode 100644 x/cardchain/client/cli/query_q_encouters.go delete mode 100644 x/cardchain/keeper/query_q_encouter.go delete mode 100644 x/cardchain/keeper/query_q_encouter_with_image.go delete mode 100644 x/cardchain/keeper/query_q_encouters.go diff --git a/docs/static/openapi.yml b/docs/static/openapi.yml index b2c7cfde..17e82647 100644 --- a/docs/static/openapi.yml +++ b/docs/static/openapi.yml @@ -33461,6 +33461,29 @@ paths: description: A successful response. schema: type: object + properties: + encounter: + type: object + properties: + Id: + type: string + format: uint64 + Drawlist: + type: array + items: + type: string + format: uint64 + proven: + type: boolean + owner: + type: string + parameters: + type: object + additionalProperties: + type: string + imageId: + type: string + format: uint64 default: description: An unexpected error response. schema: @@ -33496,6 +33519,35 @@ paths: description: A successful response. schema: type: object + properties: + encounter: + type: object + properties: + encounter: + type: object + properties: + Id: + type: string + format: uint64 + Drawlist: + type: array + items: + type: string + format: uint64 + proven: + type: boolean + owner: + type: string + parameters: + type: object + additionalProperties: + type: string + imageId: + type: string + format: uint64 + image: + type: string + format: byte default: description: An unexpected error response. schema: @@ -33531,6 +33583,31 @@ paths: description: A successful response. schema: type: object + properties: + encounters: + type: array + items: + type: object + properties: + Id: + type: string + format: uint64 + Drawlist: + type: array + items: + type: string + format: uint64 + proven: + type: boolean + owner: + type: string + parameters: + type: object + additionalProperties: + type: string + imageId: + type: string + format: uint64 default: description: An unexpected error response. schema: @@ -33560,6 +33637,37 @@ paths: description: A successful response. schema: type: object + properties: + encounters: + type: array + items: + type: object + properties: + encounter: + type: object + properties: + Id: + type: string + format: uint64 + Drawlist: + type: array + items: + type: string + format: uint64 + proven: + type: boolean + owner: + type: string + parameters: + type: object + additionalProperties: + type: string + imageId: + type: string + format: uint64 + image: + type: string + format: byte default: description: An unexpected error response. schema: @@ -69054,6 +69162,56 @@ definitions: type: string invitedUser: type: string + DecentralCardGame.cardchain.cardchain.Encounter: + type: object + properties: + Id: + type: string + format: uint64 + Drawlist: + type: array + items: + type: string + format: uint64 + proven: + type: boolean + owner: + type: string + parameters: + type: object + additionalProperties: + type: string + imageId: + type: string + format: uint64 + DecentralCardGame.cardchain.cardchain.EncounterWithImage: + type: object + properties: + encounter: + type: object + properties: + Id: + type: string + format: uint64 + Drawlist: + type: array + items: + type: string + format: uint64 + proven: + type: boolean + owner: + type: string + parameters: + type: object + additionalProperties: + type: string + imageId: + type: string + format: uint64 + image: + type: string + format: byte DecentralCardGame.cardchain.cardchain.IgnoreMatches: type: object properties: @@ -69680,12 +69838,120 @@ definitions: format: uint64 DecentralCardGame.cardchain.cardchain.QueryQEncounterResponse: type: object + properties: + encounter: + type: object + properties: + Id: + type: string + format: uint64 + Drawlist: + type: array + items: + type: string + format: uint64 + proven: + type: boolean + owner: + type: string + parameters: + type: object + additionalProperties: + type: string + imageId: + type: string + format: uint64 DecentralCardGame.cardchain.cardchain.QueryQEncounterWithImageResponse: type: object + properties: + encounter: + type: object + properties: + encounter: + type: object + properties: + Id: + type: string + format: uint64 + Drawlist: + type: array + items: + type: string + format: uint64 + proven: + type: boolean + owner: + type: string + parameters: + type: object + additionalProperties: + type: string + imageId: + type: string + format: uint64 + image: + type: string + format: byte DecentralCardGame.cardchain.cardchain.QueryQEncountersResponse: type: object + properties: + encounters: + type: array + items: + type: object + properties: + Id: + type: string + format: uint64 + Drawlist: + type: array + items: + type: string + format: uint64 + proven: + type: boolean + owner: + type: string + parameters: + type: object + additionalProperties: + type: string + imageId: + type: string + format: uint64 DecentralCardGame.cardchain.cardchain.QueryQEncountersWithImageResponse: type: object + properties: + encounters: + type: array + items: + type: object + properties: + encounter: + type: object + properties: + Id: + type: string + format: uint64 + Drawlist: + type: array + items: + type: string + format: uint64 + proven: + type: boolean + owner: + type: string + parameters: + type: object + additionalProperties: + type: string + imageId: + type: string + format: uint64 + image: + type: string + format: byte DecentralCardGame.cardchain.cardchain.QueryQMatchesResponse: type: object properties: diff --git a/go.mod b/go.mod index 75ed04d2..8e966f53 100644 --- a/go.mod +++ b/go.mod @@ -68,7 +68,6 @@ require ( github.com/fatih/camelcase v1.0.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/ghodss/yaml v1.0.0 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect @@ -89,7 +88,6 @@ require ( github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect diff --git a/go.sum b/go.sum index 5bb04eb9..dd0cb740 100644 --- a/go.sum +++ b/go.sum @@ -1191,7 +1191,6 @@ github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= @@ -1580,8 +1579,6 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= diff --git a/proto/cardchain/cardchain/query.proto b/proto/cardchain/cardchain/query.proto index 20c29db4..37757866 100644 --- a/proto/cardchain/cardchain/query.proto +++ b/proto/cardchain/cardchain/query.proto @@ -13,6 +13,7 @@ import "cardchain/cardchain/match.proto"; import "cardchain/cardchain/set.proto"; import "cardchain/cardchain/sell_offer.proto"; import "cardchain/cardchain/council.proto"; +import "cardchain/cardchain/encounters.proto"; import "cardchain/cardchain/server.proto"; import "cardchain/cardchain/tx.proto"; @@ -314,16 +315,18 @@ message QueryQAccountFromZealyResponse { string address = 1; } message QueryQEncountersRequest {} -message QueryQEncountersResponse {} +message QueryQEncountersResponse { repeated Encounter encounters = 1; } message QueryQEncounterRequest { uint64 id = 1; } -message QueryQEncounterResponse {} +message QueryQEncounterResponse { Encounter encounter = 1; } message QueryQEncountersWithImageRequest {} -message QueryQEncountersWithImageResponse {} +message QueryQEncountersWithImageResponse { + repeated EncounterWithImage encounters = 1; +} message QueryQEncounterWithImageRequest { uint64 id = 1; } -message QueryQEncounterWithImageResponse {} +message QueryQEncounterWithImageResponse { EncounterWithImage encounter = 1; } diff --git a/x/cardchain/client/cli/query_q_encouter.go b/x/cardchain/client/cli/query_q_encouter.go deleted file mode 100644 index b1a1e06e..00000000 --- a/x/cardchain/client/cli/query_q_encouter.go +++ /dev/null @@ -1,50 +0,0 @@ -package cli - -import ( - "strconv" - - "github.com/DecentralCardGame/Cardchain/x/cardchain/types" - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/spf13/cast" - "github.com/spf13/cobra" -) - -var _ = strconv.Itoa(0) - -func CmdQEncouter() *cobra.Command { - cmd := &cobra.Command{ - Use: "q-encouter [id]", - Short: "Query q_encouter", - Args: cobra.ExactArgs(1), - RunE: func(cmd *cobra.Command, args []string) (err error) { - reqId, err := cast.ToUint64E(args[0]) - if err != nil { - return err - } - - clientCtx, err := client.GetClientQueryContext(cmd) - if err != nil { - return err - } - - queryClient := types.NewQueryClient(clientCtx) - - params := &types.QueryQEncouterRequest{ - - Id: reqId, - } - - res, err := queryClient.QEncouter(cmd.Context(), params) - if err != nil { - return err - } - - return clientCtx.PrintProto(res) - }, - } - - flags.AddQueryFlagsToCmd(cmd) - - return cmd -} diff --git a/x/cardchain/client/cli/query_q_encouter_with_image.go b/x/cardchain/client/cli/query_q_encouter_with_image.go deleted file mode 100644 index 2e7f54e6..00000000 --- a/x/cardchain/client/cli/query_q_encouter_with_image.go +++ /dev/null @@ -1,50 +0,0 @@ -package cli - -import ( - "strconv" - - "github.com/DecentralCardGame/Cardchain/x/cardchain/types" - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/spf13/cast" - "github.com/spf13/cobra" -) - -var _ = strconv.Itoa(0) - -func CmdQEncouterWithImage() *cobra.Command { - cmd := &cobra.Command{ - Use: "q-encouter-with-image [id]", - Short: "Query q_encouter_with_image", - Args: cobra.ExactArgs(1), - RunE: func(cmd *cobra.Command, args []string) (err error) { - reqId, err := cast.ToUint64E(args[0]) - if err != nil { - return err - } - - clientCtx, err := client.GetClientQueryContext(cmd) - if err != nil { - return err - } - - queryClient := types.NewQueryClient(clientCtx) - - params := &types.QueryQEncouterWithImageRequest{ - - Id: reqId, - } - - res, err := queryClient.QEncouterWithImage(cmd.Context(), params) - if err != nil { - return err - } - - return clientCtx.PrintProto(res) - }, - } - - flags.AddQueryFlagsToCmd(cmd) - - return cmd -} diff --git a/x/cardchain/client/cli/query_q_encouters.go b/x/cardchain/client/cli/query_q_encouters.go deleted file mode 100644 index b90c8038..00000000 --- a/x/cardchain/client/cli/query_q_encouters.go +++ /dev/null @@ -1,42 +0,0 @@ -package cli - -import ( - "strconv" - - "github.com/DecentralCardGame/Cardchain/x/cardchain/types" - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/spf13/cobra" -) - -var _ = strconv.Itoa(0) - -func CmdQEncouters() *cobra.Command { - cmd := &cobra.Command{ - Use: "q-encouters", - Short: "Query q_encouters", - Args: cobra.ExactArgs(0), - RunE: func(cmd *cobra.Command, args []string) (err error) { - - clientCtx, err := client.GetClientQueryContext(cmd) - if err != nil { - return err - } - - queryClient := types.NewQueryClient(clientCtx) - - params := &types.QueryQEncoutersRequest{} - - res, err := queryClient.QEncouters(cmd.Context(), params) - if err != nil { - return err - } - - return clientCtx.PrintProto(res) - }, - } - - flags.AddQueryFlagsToCmd(cmd) - - return cmd -} diff --git a/x/cardchain/keeper/query_q_encounter.go b/x/cardchain/keeper/query_q_encounter.go index 0761ec2c..a3c5b089 100644 --- a/x/cardchain/keeper/query_q_encounter.go +++ b/x/cardchain/keeper/query_q_encounter.go @@ -16,8 +16,7 @@ func (k Keeper) QEncounter(goCtx context.Context, req *types.QueryQEncounterRequ ctx := sdk.UnwrapSDKContext(goCtx) - // TODO: Process the query - _ = ctx + encounter := k.Encounters.Get(ctx, req.Id) - return &types.QueryQEncounterResponse{}, nil + return &types.QueryQEncounterResponse{Encounter: encounter}, nil } diff --git a/x/cardchain/keeper/query_q_encounter_with_image.go b/x/cardchain/keeper/query_q_encounter_with_image.go index 1863e5a9..a5bc704f 100644 --- a/x/cardchain/keeper/query_q_encounter_with_image.go +++ b/x/cardchain/keeper/query_q_encounter_with_image.go @@ -16,8 +16,10 @@ func (k Keeper) QEncounterWithImage(goCtx context.Context, req *types.QueryQEnco ctx := sdk.UnwrapSDKContext(goCtx) - // TODO: Process the query - _ = ctx + encounter := k.Encounters.Get(ctx, req.Id) - return &types.QueryQEncounterWithImageResponse{}, nil + return &types.QueryQEncounterWithImageResponse{Encounter: &types.EncounterWithImage{ + Encounter: encounter, + Image: k.Images.Get(ctx, encounter.ImageId).Image, + }}, nil } diff --git a/x/cardchain/keeper/query_q_encounters.go b/x/cardchain/keeper/query_q_encounters.go index a0485cae..d68f9813 100644 --- a/x/cardchain/keeper/query_q_encounters.go +++ b/x/cardchain/keeper/query_q_encounters.go @@ -16,8 +16,7 @@ func (k Keeper) QEncounters(goCtx context.Context, req *types.QueryQEncountersRe ctx := sdk.UnwrapSDKContext(goCtx) - // TODO: Process the query - _ = ctx + encounters := k.Encounters.GetAll(ctx) - return &types.QueryQEncountersResponse{}, nil + return &types.QueryQEncountersResponse{Encounters: encounters}, nil } diff --git a/x/cardchain/keeper/query_q_encounters_with_image.go b/x/cardchain/keeper/query_q_encounters_with_image.go index 60406613..a9ed204c 100644 --- a/x/cardchain/keeper/query_q_encounters_with_image.go +++ b/x/cardchain/keeper/query_q_encounters_with_image.go @@ -16,8 +16,16 @@ func (k Keeper) QEncountersWithImage(goCtx context.Context, req *types.QueryQEnc ctx := sdk.UnwrapSDKContext(goCtx) - // TODO: Process the query - _ = ctx + var encountersWithImage []*types.EncounterWithImage - return &types.QueryQEncountersWithImageResponse{}, nil + encounters := k.Encounters.GetAll(ctx) + + for _, encounter := range encounters { + encountersWithImage = append(encountersWithImage, &types.EncounterWithImage{ + Encounter: encounter, + Image: k.Images.Get(ctx, encounter.ImageId).Image, + }) + } + + return &types.QueryQEncountersWithImageResponse{Encounters: encountersWithImage}, nil } diff --git a/x/cardchain/keeper/query_q_encouter.go b/x/cardchain/keeper/query_q_encouter.go deleted file mode 100644 index 8f45582f..00000000 --- a/x/cardchain/keeper/query_q_encouter.go +++ /dev/null @@ -1,23 +0,0 @@ -package keeper - -import ( - "context" - - "github.com/DecentralCardGame/Cardchain/x/cardchain/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" -) - -func (k Keeper) QEncouter(goCtx context.Context, req *types.QueryQEncouterRequest) (*types.QueryQEncouterResponse, error) { - if req == nil { - return nil, status.Error(codes.InvalidArgument, "invalid request") - } - - ctx := sdk.UnwrapSDKContext(goCtx) - - // TODO: Process the query - _ = ctx - - return &types.QueryQEncouterResponse{}, nil -} diff --git a/x/cardchain/keeper/query_q_encouter_with_image.go b/x/cardchain/keeper/query_q_encouter_with_image.go deleted file mode 100644 index 8faedeb2..00000000 --- a/x/cardchain/keeper/query_q_encouter_with_image.go +++ /dev/null @@ -1,23 +0,0 @@ -package keeper - -import ( - "context" - - "github.com/DecentralCardGame/Cardchain/x/cardchain/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" -) - -func (k Keeper) QEncouterWithImage(goCtx context.Context, req *types.QueryQEncouterWithImageRequest) (*types.QueryQEncouterWithImageResponse, error) { - if req == nil { - return nil, status.Error(codes.InvalidArgument, "invalid request") - } - - ctx := sdk.UnwrapSDKContext(goCtx) - - // TODO: Process the query - _ = ctx - - return &types.QueryQEncouterWithImageResponse{}, nil -} diff --git a/x/cardchain/keeper/query_q_encouters.go b/x/cardchain/keeper/query_q_encouters.go deleted file mode 100644 index e053699c..00000000 --- a/x/cardchain/keeper/query_q_encouters.go +++ /dev/null @@ -1,23 +0,0 @@ -package keeper - -import ( - "context" - - "github.com/DecentralCardGame/Cardchain/x/cardchain/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" -) - -func (k Keeper) QEncouters(goCtx context.Context, req *types.QueryQEncoutersRequest) (*types.QueryQEncoutersResponse, error) { - if req == nil { - return nil, status.Error(codes.InvalidArgument, "invalid request") - } - - ctx := sdk.UnwrapSDKContext(goCtx) - - // TODO: Process the query - _ = ctx - - return &types.QueryQEncoutersResponse{}, nil -} diff --git a/x/cardchain/types/query.pb.go b/x/cardchain/types/query.pb.go index 2d758b8f..59a536d2 100644 --- a/x/cardchain/types/query.pb.go +++ b/x/cardchain/types/query.pb.go @@ -1756,6 +1756,7 @@ func (m *QueryQEncountersRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryQEncountersRequest proto.InternalMessageInfo type QueryQEncountersResponse struct { + Encounters []*Encounter `protobuf:"bytes,1,rep,name=encounters,proto3" json:"encounters,omitempty"` } func (m *QueryQEncountersResponse) Reset() { *m = QueryQEncountersResponse{} } @@ -1791,6 +1792,13 @@ func (m *QueryQEncountersResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryQEncountersResponse proto.InternalMessageInfo +func (m *QueryQEncountersResponse) GetEncounters() []*Encounter { + if m != nil { + return m.Encounters + } + return nil +} + type QueryQEncounterRequest struct { Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -1836,6 +1844,7 @@ func (m *QueryQEncounterRequest) GetId() uint64 { } type QueryQEncounterResponse struct { + Encounter *Encounter `protobuf:"bytes,1,opt,name=encounter,proto3" json:"encounter,omitempty"` } func (m *QueryQEncounterResponse) Reset() { *m = QueryQEncounterResponse{} } @@ -1871,6 +1880,13 @@ func (m *QueryQEncounterResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryQEncounterResponse proto.InternalMessageInfo +func (m *QueryQEncounterResponse) GetEncounter() *Encounter { + if m != nil { + return m.Encounter + } + return nil +} + type QueryQEncountersWithImageRequest struct { } @@ -1908,6 +1924,7 @@ func (m *QueryQEncountersWithImageRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryQEncountersWithImageRequest proto.InternalMessageInfo type QueryQEncountersWithImageResponse struct { + Encounters []*EncounterWithImage `protobuf:"bytes,1,rep,name=encounters,proto3" json:"encounters,omitempty"` } func (m *QueryQEncountersWithImageResponse) Reset() { *m = QueryQEncountersWithImageResponse{} } @@ -1943,6 +1960,13 @@ func (m *QueryQEncountersWithImageResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryQEncountersWithImageResponse proto.InternalMessageInfo +func (m *QueryQEncountersWithImageResponse) GetEncounters() []*EncounterWithImage { + if m != nil { + return m.Encounters + } + return nil +} + type QueryQEncounterWithImageRequest struct { Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -1988,6 +2012,7 @@ func (m *QueryQEncounterWithImageRequest) GetId() uint64 { } type QueryQEncounterWithImageResponse struct { + Encounter *EncounterWithImage `protobuf:"bytes,1,opt,name=encounter,proto3" json:"encounter,omitempty"` } func (m *QueryQEncounterWithImageResponse) Reset() { *m = QueryQEncounterWithImageResponse{} } @@ -2023,6 +2048,13 @@ func (m *QueryQEncounterWithImageResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryQEncounterWithImageResponse proto.InternalMessageInfo +func (m *QueryQEncounterWithImageResponse) GetEncounter() *EncounterWithImage { + if m != nil { + return m.Encounter + } + return nil +} + func init() { proto.RegisterType((*QueryParamsRequest)(nil), "DecentralCardGame.cardchain.cardchain.QueryParamsRequest") proto.RegisterType((*QueryParamsResponse)(nil), "DecentralCardGame.cardchain.cardchain.QueryParamsResponse") @@ -2069,148 +2101,152 @@ func init() { func init() { proto.RegisterFile("cardchain/cardchain/query.proto", fileDescriptor_e1bdbfeb9d7f6cfd) } var fileDescriptor_e1bdbfeb9d7f6cfd = []byte{ - // 2250 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x5a, 0x5f, 0x6f, 0x1b, 0xc7, - 0x11, 0xf7, 0xc9, 0xd4, 0xbf, 0x95, 0xa5, 0xda, 0x1b, 0xd5, 0x65, 0x58, 0x87, 0x56, 0x36, 0x4e, - 0xab, 0x26, 0x31, 0xcf, 0x96, 0x6d, 0x59, 0x96, 0x1d, 0xd9, 0xfa, 0x6b, 0x2b, 0x8d, 0x62, 0xe7, - 0xd4, 0xa4, 0x40, 0xfa, 0x40, 0x1c, 0xc9, 0x15, 0x75, 0x08, 0x79, 0x47, 0xdf, 0x2e, 0xad, 0xb0, - 0x04, 0x1f, 0xda, 0x4f, 0x50, 0xb4, 0x9f, 0xa3, 0x28, 0xd0, 0x16, 0xed, 0x53, 0xd1, 0x57, 0x03, - 0xcd, 0x43, 0x80, 0xa2, 0x40, 0x9a, 0x07, 0xb7, 0xb0, 0xfb, 0x1e, 0xb4, 0x9f, 0xa0, 0xd8, 0xd9, - 0xdd, 0xfb, 0x43, 0x9e, 0x84, 0xbb, 0xd3, 0x93, 0x6e, 0x67, 0x67, 0x66, 0x67, 0x76, 0x7e, 0x3b, - 0x3b, 0xb3, 0x22, 0xba, 0x5c, 0xb7, 0xfd, 0x46, 0xfd, 0xd0, 0x76, 0x5c, 0x33, 0xfc, 0x7a, 0xda, - 0xa5, 0x7e, 0xaf, 0xd2, 0xf1, 0x3d, 0xee, 0xe1, 0xb7, 0xb7, 0x68, 0x9d, 0xba, 0xdc, 0xb7, 0x5b, - 0x9b, 0xb6, 0xdf, 0x78, 0x68, 0xb7, 0x69, 0x25, 0x60, 0x0c, 0xbf, 0x4a, 0xf3, 0x4d, 0xaf, 0xe9, - 0x81, 0x84, 0x29, 0xbe, 0xa4, 0x70, 0xe9, 0x52, 0xd3, 0xf3, 0x9a, 0x2d, 0x6a, 0xda, 0x1d, 0xc7, - 0xb4, 0x5d, 0xd7, 0xe3, 0x36, 0x77, 0x3c, 0x97, 0xa9, 0xd9, 0x77, 0xea, 0x1e, 0x6b, 0x7b, 0xcc, - 0xac, 0xd9, 0x8c, 0xca, 0x35, 0xcd, 0x67, 0xd7, 0x6b, 0x94, 0xdb, 0xd7, 0xcd, 0x8e, 0xdd, 0x74, - 0x5c, 0x60, 0x56, 0xbc, 0x0b, 0x49, 0x76, 0x76, 0x6c, 0xdf, 0x6e, 0xb3, 0x93, 0x38, 0x9e, 0x79, - 0xdc, 0x71, 0x9b, 0x8a, 0xa3, 0x9c, 0xc4, 0x21, 0xbe, 0x4e, 0x9a, 0xef, 0x32, 0xea, 0xab, 0xf9, - 0xc4, 0xbd, 0x6a, 0xdb, 0xbc, 0x7e, 0xa8, 0x18, 0xde, 0x48, 0x62, 0x60, 0x94, 0xab, 0xe9, 0x2b, - 0xc9, 0xd3, 0xad, 0x56, 0xd5, 0x3b, 0x38, 0x08, 0x56, 0x79, 0x33, 0xd1, 0x4a, 0xaf, 0xeb, 0xd6, - 0x9d, 0xd6, 0x49, 0xae, 0x32, 0xea, 0x3f, 0x0b, 0x94, 0x5c, 0x4a, 0xe2, 0xe0, 0x5f, 0xc8, 0x59, - 0x32, 0x8f, 0xf0, 0xc7, 0x62, 0xbb, 0x9f, 0xc0, 0xfe, 0x59, 0xf4, 0x69, 0x97, 0x32, 0x4e, 0x6a, - 0xe8, 0xb5, 0x18, 0x95, 0x75, 0x3c, 0x97, 0x51, 0xfc, 0x63, 0x34, 0x21, 0xf7, 0xb9, 0x68, 0x2c, - 0x18, 0x8b, 0x33, 0x4b, 0x57, 0x2b, 0xa9, 0x10, 0x51, 0x91, 0x6a, 0x36, 0x0a, 0xcf, 0x5f, 0x5c, - 0x3e, 0x63, 0x29, 0x15, 0xe4, 0x5d, 0x74, 0x01, 0xd6, 0xf8, 0x58, 0x88, 0xaa, 0x85, 0xf1, 0x45, - 0x34, 0x21, 0xc4, 0x76, 0x1b, 0xb0, 0xc2, 0xb4, 0xa5, 0x46, 0x64, 0x09, 0x15, 0x43, 0xe6, 0x4d, - 0xcf, 0xe5, 0xd4, 0xe5, 0xc9, 0x32, 0x85, 0x40, 0x66, 0x17, 0xbd, 0x9e, 0x20, 0xa3, 0x5c, 0x29, - 0xa2, 0xc9, 0xba, 0x24, 0xa9, 0x95, 0xf4, 0x10, 0x63, 0x54, 0x38, 0xb4, 0xd9, 0x61, 0x71, 0x0c, - 0xc8, 0xf0, 0x4d, 0xae, 0x6a, 0x5b, 0x3f, 0x61, 0xd4, 0xd7, 0xeb, 0x16, 0xd1, 0xa4, 0xdd, 0x68, - 0xf8, 0x94, 0x31, 0xad, 0x42, 0x0d, 0xc9, 0x25, 0x54, 0x0a, 0x57, 0x86, 0x2d, 0xd8, 0x75, 0x0f, - 0x3c, 0xbd, 0xb9, 0x2f, 0xc7, 0xd0, 0xf7, 0x13, 0xa7, 0x95, 0x69, 0x3f, 0x43, 0xe7, 0x85, 0x07, - 0xeb, 0xdd, 0xba, 0x00, 0xfd, 0x13, 0xdf, 0xa9, 0x53, 0xb9, 0xc0, 0x86, 0x29, 0x36, 0xf0, 0x9b, - 0x17, 0x97, 0x7f, 0xd8, 0x74, 0xf8, 0x61, 0xb7, 0x56, 0xa9, 0x7b, 0x6d, 0x53, 0x1d, 0x1c, 0xf9, - 0xe7, 0x2a, 0x6b, 0x7c, 0x6e, 0xf2, 0x5e, 0x87, 0xb2, 0xca, 0xa6, 0xe7, 0xb8, 0xd6, 0x88, 0x22, - 0x5c, 0x46, 0xc8, 0xae, 0x73, 0xe7, 0x19, 0xdd, 0xa7, 0x9c, 0x15, 0xc7, 0x16, 0xce, 0x2e, 0x16, - 0xac, 0x08, 0x05, 0x2f, 0xa0, 0x19, 0x21, 0xc3, 0x3e, 0xea, 0xb6, 0x6b, 0xd4, 0x2f, 0x9e, 0x85, - 0x1d, 0x8d, 0x92, 0xf0, 0x15, 0x34, 0x0b, 0x40, 0xa7, 0x9a, 0xa7, 0x00, 0x3c, 0x71, 0x22, 0x7e, - 0x07, 0x9d, 0x17, 0x70, 0x7e, 0x2c, 0xd0, 0xac, 0x19, 0xc7, 0x81, 0x71, 0x84, 0x8e, 0x7f, 0x80, - 0xe6, 0x14, 0xa8, 0x35, 0xe7, 0x04, 0x70, 0x0e, 0x51, 0x85, 0xce, 0x96, 0xcd, 0xb8, 0xd8, 0xb5, - 0x3d, 0xaf, 0xe1, 0x1c, 0x38, 0xb4, 0x51, 0x9c, 0x94, 0x3a, 0x87, 0xe9, 0x61, 0x08, 0x3e, 0x85, - 0x63, 0x6f, 0x51, 0xd6, 0x6d, 0xf1, 0x00, 0xdf, 0xbf, 0x30, 0x74, 0x08, 0x86, 0xa6, 0x55, 0x08, - 0x6a, 0xe8, 0x82, 0xd0, 0x18, 0x9b, 0x54, 0x98, 0xbf, 0x99, 0x12, 0xf3, 0x71, 0xc5, 0xa3, 0xea, - 0xc8, 0xb7, 0x05, 0x75, 0xf4, 0x00, 0x06, 0xda, 0x34, 0x3c, 0x8f, 0xc6, 0xbd, 0x23, 0x97, 0xfa, - 0x0a, 0x53, 0x72, 0x80, 0x77, 0xd1, 0x14, 0xe3, 0x36, 0xef, 0x32, 0x2a, 0x83, 0x36, 0x97, 0xfa, - 0xec, 0xed, 0x83, 0x98, 0x15, 0x88, 0xe3, 0x3d, 0x34, 0x2d, 0x66, 0x7f, 0x22, 0x50, 0x52, 0x3c, - 0x0b, 0xba, 0xcc, 0x94, 0xba, 0x36, 0x95, 0x9c, 0x15, 0x6a, 0xc0, 0x1f, 0xa0, 0xc9, 0x7a, 0xcb, - 0x66, 0xc2, 0xb0, 0x02, 0x28, 0xbb, 0x96, 0x41, 0xd9, 0xa6, 0x90, 0xb4, 0xb4, 0x02, 0x71, 0x92, - 0x99, 0xe7, 0xf3, 0x8d, 0x1e, 0x40, 0x65, 0xda, 0x52, 0x23, 0x4c, 0xd0, 0x39, 0xd7, 0x6e, 0x53, - 0x71, 0x86, 0x6d, 0xc7, 0x65, 0x00, 0x8f, 0x69, 0x2b, 0x46, 0x13, 0xe0, 0xf8, 0x9c, 0xf6, 0x8e, - 0x3c, 0xbf, 0xc1, 0x02, 0xbe, 0x49, 0xe0, 0x1b, 0xa1, 0x0b, 0x08, 0xbb, 0x1e, 0xa7, 0x21, 0xe3, - 0x14, 0x30, 0xc6, 0x89, 0x78, 0x11, 0x7d, 0xc7, 0x73, 0x5b, 0xbd, 0x7d, 0x6e, 0xfb, 0x9c, 0xfa, - 0xc2, 0xdc, 0xe2, 0xf4, 0x82, 0xb1, 0x38, 0x65, 0x0d, 0x93, 0x71, 0x05, 0x61, 0x41, 0xda, 0xb0, - 0x5b, 0xb6, 0x5b, 0xa7, 0xeb, 0x6e, 0xfd, 0xd0, 0xf3, 0x59, 0x11, 0x01, 0x73, 0xc2, 0x0c, 0xde, - 0x43, 0x53, 0xbe, 0xed, 0x3b, 0xdc, 0xa1, 0xac, 0x38, 0x03, 0x9b, 0x76, 0x3d, 0xc3, 0xa6, 0x59, - 0x42, 0xb4, 0x67, 0x05, 0x2a, 0xc4, 0xf9, 0x69, 0x77, 0x5b, 0xdc, 0x81, 0xdd, 0x7c, 0xec, 0xb6, - 0x7a, 0xc5, 0x73, 0xb0, 0xf4, 0x10, 0x95, 0xdc, 0x50, 0x59, 0x5d, 0x03, 0x4e, 0x81, 0xfd, 0x92, - 0x04, 0x04, 0xfb, 0xd0, 0x61, 0x22, 0x19, 0x8a, 0x8c, 0x10, 0x12, 0x48, 0x45, 0xa3, 0x74, 0x4f, - 0x9c, 0xef, 0x48, 0xee, 0x83, 0xf3, 0x1e, 0x24, 0x5d, 0x3d, 0x24, 0x8b, 0xe8, 0xbc, 0xe4, 0xdf, - 0xa7, 0x3c, 0x82, 0x69, 0x46, 0x79, 0xc0, 0x2b, 0x07, 0x64, 0x15, 0x5d, 0xd4, 0x9c, 0x2a, 0x21, - 0x68, 0xfe, 0x05, 0x34, 0x13, 0x24, 0x89, 0x40, 0x2a, 0x4a, 0x22, 0x37, 0xd1, 0xbc, 0x72, 0x45, - 0xa6, 0x08, 0x2d, 0x29, 0x7c, 0x91, 0x94, 0x40, 0x2e, 0x24, 0x90, 0x6f, 0xc6, 0xb4, 0xd8, 0x9e, - 0x4c, 0x56, 0x5a, 0xec, 0x0a, 0x9a, 0xe5, 0x4e, 0x9b, 0x32, 0x6e, 0xb7, 0x3b, 0x5b, 0xde, 0x91, - 0xab, 0x44, 0xe3, 0x44, 0x61, 0x56, 0x40, 0xf8, 0xa4, 0x03, 0x17, 0x44, 0xc1, 0x8a, 0x92, 0x84, - 0x9e, 0xba, 0x82, 0x8f, 0xb8, 0x29, 0xe4, 0xf9, 0x9a, 0xb6, 0xe2, 0x44, 0x5c, 0x42, 0x53, 0x3e, - 0xed, 0x78, 0x02, 0x3e, 0x90, 0x3c, 0xa7, 0xad, 0x60, 0x8c, 0x1f, 0xa1, 0x49, 0xaf, 0xcb, 0xeb, - 0x5e, 0x9b, 0xc2, 0x19, 0x98, 0x5b, 0xaa, 0xa4, 0x44, 0xc6, 0x63, 0x29, 0x65, 0x69, 0xf1, 0x20, - 0x93, 0x3f, 0x69, 0xd9, 0x3d, 0xda, 0x28, 0x4e, 0x40, 0x60, 0xa3, 0x24, 0xfc, 0x21, 0x9a, 0x70, - 0x9a, 0xae, 0xe7, 0x53, 0x38, 0x28, 0xe9, 0x53, 0xdb, 0x2e, 0x08, 0xe9, 0x2d, 0x54, 0x3a, 0xc8, - 0x8f, 0xd0, 0x6c, 0x6c, 0x42, 0x60, 0x44, 0xbb, 0x62, 0x00, 0x1e, 0xf5, 0x50, 0xa4, 0xdf, 0xef, - 0x0e, 0xc5, 0x41, 0x61, 0x71, 0x01, 0xcd, 0xa8, 0x7b, 0x24, 0x82, 0xc6, 0x28, 0x09, 0xef, 0x28, - 0xe4, 0xa9, 0x44, 0x38, 0xb3, 0xf4, 0x5e, 0x4a, 0xab, 0x25, 0x7e, 0xb5, 0x30, 0xf9, 0xe3, 0x18, - 0xfa, 0xde, 0x10, 0xfc, 0x58, 0x04, 0x45, 0x1d, 0x71, 0x5b, 0x06, 0x50, 0x98, 0xb6, 0x42, 0x82, - 0xf0, 0x0b, 0x06, 0x0a, 0x02, 0xd3, 0x96, 0x1e, 0x42, 0xfe, 0xa2, 0xad, 0x96, 0xba, 0x37, 0x45, - 0xfe, 0x82, 0x91, 0xc0, 0x7f, 0xad, 0xdb, 0x0b, 0xa2, 0x2d, 0x07, 0xa2, 0xd0, 0x10, 0xd6, 0xa9, - 0x6b, 0x11, 0xbe, 0xf1, 0x47, 0x68, 0x42, 0x26, 0x6a, 0xc8, 0x71, 0x73, 0x4b, 0xcb, 0x69, 0xb3, - 0xbc, 0xf6, 0x41, 0xa5, 0x7b, 0xa5, 0x05, 0x3f, 0x1e, 0x0a, 0xf1, 0xed, 0x4c, 0x21, 0x8e, 0xec, - 0x8c, 0x8e, 0xf2, 0x1a, 0x3a, 0x3f, 0x3c, 0x07, 0x6e, 0x4b, 0xa3, 0x65, 0x9c, 0xf5, 0xe2, 0xda, - 0xc1, 0x31, 0xa0, 0xc2, 0x37, 0xf9, 0xb5, 0xa1, 0x2b, 0xb9, 0xe8, 0xb6, 0xab, 0xe8, 0x5f, 0x41, - 0xb3, 0x61, 0x71, 0xb0, 0xdb, 0x60, 0x2a, 0xfe, 0x71, 0x22, 0x7e, 0x82, 0x50, 0x48, 0x50, 0x20, - 0xb8, 0x96, 0x75, 0x9f, 0xac, 0x88, 0x0e, 0xf2, 0xb6, 0x4e, 0x8c, 0xfb, 0x50, 0x38, 0x6b, 0x18, - 0xcc, 0xa1, 0x31, 0x47, 0x67, 0x91, 0x31, 0xa7, 0x41, 0x2e, 0xea, 0xec, 0xa1, 0xd9, 0xa4, 0xd9, - 0xe4, 0x5f, 0x86, 0x2e, 0x0f, 0x45, 0x09, 0xa5, 0xa5, 0x77, 0x62, 0xbb, 0x92, 0xfe, 0x20, 0x6f, - 0x0e, 0x85, 0x90, 0xa0, 0x73, 0x72, 0xef, 0x25, 0x5d, 0xed, 0x66, 0x8c, 0x26, 0x78, 0x44, 0x8a, - 0xf1, 0x9d, 0x5a, 0x97, 0x7b, 0x41, 0xda, 0x89, 0xd1, 0xa2, 0xb9, 0x09, 0xf2, 0x3f, 0x5c, 0xd7, - 0x05, 0x2b, 0x4e, 0x0c, 0xcb, 0x8f, 0xf1, 0x48, 0xf9, 0x41, 0xde, 0xd3, 0x97, 0x80, 0x74, 0x50, - 0x85, 0x0b, 0xe0, 0xce, 0xc3, 0x38, 0xa9, 0x11, 0x59, 0x46, 0x65, 0xe0, 0x96, 0x17, 0xd5, 0x96, - 0xc3, 0xa4, 0x11, 0x8e, 0xe7, 0x9e, 0x7c, 0x21, 0xec, 0xa3, 0xcb, 0xc7, 0xca, 0x45, 0xca, 0xf6, - 0xae, 0xef, 0xcb, 0xb2, 0xfd, 0xec, 0xe2, 0xac, 0xa5, 0x87, 0xc2, 0x98, 0x23, 0xdb, 0xe5, 0xb4, - 0x01, 0x88, 0x98, 0xb5, 0xd4, 0x88, 0xdc, 0x4a, 0xe8, 0x02, 0x58, 0xe4, 0x1a, 0x93, 0xcd, 0x82, - 0x76, 0x41, 0x0f, 0x09, 0x8f, 0x96, 0xf0, 0xa1, 0x98, 0x32, 0xe3, 0x53, 0x34, 0x0e, 0x89, 0x14, - 0xa4, 0x66, 0x96, 0x1e, 0xa4, 0x0c, 0xed, 0xb1, 0xed, 0x88, 0x25, 0xd5, 0x91, 0x3b, 0xe8, 0x0d, - 0xc9, 0xb3, 0x5e, 0x17, 0xb7, 0x16, 0xdf, 0xf1, 0xbd, 0xf6, 0x67, 0xd4, 0x6e, 0xf5, 0x22, 0x06, - 0xff, 0x5c, 0x8c, 0x83, 0x06, 0x49, 0x0f, 0xc9, 0xaa, 0xda, 0xf4, 0x04, 0xd1, 0x70, 0xef, 0x8e, - 0xe9, 0x57, 0x5e, 0xd7, 0xa9, 0x70, 0xdb, 0x05, 0xd9, 0x30, 0x15, 0x92, 0x92, 0x3e, 0xae, 0xd1, - 0x29, 0x85, 0xfb, 0x45, 0x7d, 0x81, 0x07, 0x73, 0xc7, 0x9d, 0x9c, 0xd1, 0x05, 0x02, 0x25, 0x04, - 0x2d, 0x0c, 0x2f, 0xf0, 0x53, 0x87, 0x1f, 0xee, 0xb6, 0xed, 0x26, 0xd5, 0x46, 0xbc, 0x85, 0xde, - 0x3c, 0x81, 0x47, 0x29, 0xba, 0xae, 0xd0, 0x13, 0x32, 0x0d, 0xeb, 0x19, 0x31, 0x6b, 0x74, 0xed, - 0x11, 0xb5, 0x4b, 0x5f, 0xbe, 0x85, 0xc6, 0x81, 0x09, 0xff, 0xc9, 0x40, 0x13, 0xb2, 0x93, 0xc5, - 0x77, 0xb2, 0x04, 0x3c, 0xd6, 0x5a, 0x97, 0x56, 0xf3, 0x88, 0x2a, 0x17, 0x6f, 0xfd, 0xf2, 0xef, - 0xff, 0xf9, 0xcd, 0x98, 0x89, 0xaf, 0x9a, 0x23, 0x3a, 0xcc, 0xcd, 0x63, 0x1f, 0x45, 0xf0, 0xef, - 0x0d, 0x34, 0x0e, 0xa8, 0xc3, 0x2b, 0x99, 0x81, 0xaa, 0xcd, 0x36, 0xd3, 0x97, 0x21, 0x1d, 0xc1, - 0x40, 0xd6, 0xc0, 0xd6, 0x15, 0xbc, 0x9c, 0xd2, 0xd6, 0xa7, 0x55, 0xf1, 0x6d, 0xf6, 0xe5, 0x01, - 0x1c, 0xe0, 0x7f, 0x1a, 0xe8, 0x5c, 0xf4, 0xa8, 0xe0, 0xfb, 0xf9, 0x0f, 0x99, 0x74, 0xe1, 0xd4, - 0xa7, 0x94, 0xec, 0x80, 0x4f, 0x0f, 0xf0, 0x5a, 0x26, 0x9f, 0xaa, 0xea, 0x65, 0x21, 0xf4, 0xed, - 0x77, 0x22, 0x20, 0xa2, 0x16, 0xcc, 0x18, 0x90, 0xc8, 0xeb, 0x43, 0xe9, 0xdd, 0x94, 0x92, 0x42, - 0x86, 0xdc, 0x07, 0xc3, 0xef, 0xe0, 0xdb, 0xa9, 0x0d, 0xef, 0x32, 0xea, 0x9b, 0x7d, 0x95, 0x20, - 0x06, 0xf8, 0x6b, 0x03, 0xcd, 0xc5, 0x9f, 0x2b, 0xf0, 0x7a, 0xe6, 0xed, 0x1c, 0x7e, 0x09, 0x29, - 0x6d, 0x9c, 0x46, 0x85, 0x8a, 0x49, 0x76, 0xd7, 0x82, 0xef, 0xaa, 0x23, 0xfc, 0x00, 0xd7, 0x62, - 0xad, 0x79, 0x46, 0xd7, 0x92, 0x5e, 0x18, 0x32, 0xba, 0x96, 0xf8, 0x0a, 0x91, 0xc3, 0x35, 0xf9, - 0xc6, 0x59, 0xf5, 0x95, 0x1f, 0x7f, 0x36, 0xd0, 0x84, 0x6c, 0xf6, 0xb2, 0x65, 0xac, 0xd8, 0x8b, - 0x44, 0xb6, 0x8c, 0x15, 0xef, 0x2d, 0xc9, 0x32, 0xb8, 0x70, 0x0d, 0x57, 0x32, 0x45, 0x87, 0xe1, - 0x3f, 0x08, 0xcb, 0xa1, 0x62, 0xcf, 0x68, 0x79, 0xb4, 0x4b, 0x2d, 0x65, 0x6a, 0x0d, 0xc8, 0x03, - 0xb0, 0x75, 0x15, 0xaf, 0xa4, 0xb6, 0x15, 0x7a, 0x09, 0xb3, 0xaf, 0x5a, 0xdf, 0x01, 0xfe, 0xad, - 0x81, 0x0a, 0xa2, 0x44, 0xc2, 0xb7, 0x33, 0xd9, 0x1c, 0x76, 0xca, 0xa5, 0x0c, 0xdd, 0x5e, 0x67, - 0x9f, 0x72, 0x72, 0x0f, 0x6c, 0x5e, 0xc6, 0x37, 0x53, 0xdb, 0xcc, 0x28, 0x37, 0xfb, 0x50, 0x6f, - 0x0d, 0xf0, 0x73, 0x03, 0xa1, 0xb0, 0x0e, 0xc7, 0xef, 0x67, 0xb4, 0x3a, 0xde, 0xb5, 0x97, 0x32, - 0xd7, 0xe0, 0x64, 0x17, 0xac, 0xdf, 0xc4, 0xeb, 0x19, 0xac, 0xd7, 0x4f, 0xe4, 0xc2, 0x89, 0xe0, - 0x3d, 0x60, 0x80, 0xff, 0x62, 0xa0, 0x29, 0xfd, 0x18, 0x80, 0xef, 0x66, 0x43, 0x6c, 0xec, 0x09, - 0x21, 0x75, 0x08, 0x94, 0x18, 0xd9, 0x02, 0x27, 0xd6, 0xf0, 0xbd, 0xf4, 0x10, 0x97, 0x92, 0x66, - 0x3f, 0x78, 0x99, 0x18, 0xe0, 0xbf, 0x0a, 0xfb, 0x75, 0xe7, 0x7c, 0x37, 0x3b, 0xe4, 0x83, 0xb7, - 0x8c, 0xd2, 0xbd, 0x7c, 0xc2, 0xea, 0xc0, 0xae, 0x80, 0x37, 0x4b, 0xf8, 0x5a, 0xb6, 0x43, 0x40, - 0x19, 0xfe, 0x87, 0x81, 0x66, 0x22, 0x4d, 0x1d, 0x5e, 0xcb, 0x87, 0xa6, 0xc0, 0x8f, 0xfb, 0xb9, - 0xe5, 0x95, 0x2b, 0xdb, 0xe0, 0xca, 0x7d, 0xfc, 0x7e, 0x0e, 0x74, 0x31, 0xb3, 0x2f, 0xdb, 0xaf, - 0x81, 0xa8, 0x9e, 0x26, 0x55, 0xc7, 0x87, 0x57, 0x33, 0xda, 0x14, 0xe9, 0x26, 0x4b, 0xa9, 0x1f, - 0x6c, 0x41, 0x2a, 0xd7, 0xc9, 0x16, 0x82, 0x66, 0xdf, 0x69, 0x0c, 0xf0, 0xdf, 0x44, 0x85, 0x01, - 0x0f, 0xfa, 0x2b, 0x59, 0x53, 0x51, 0x10, 0x80, 0x3b, 0x39, 0x24, 0xd5, 0xd6, 0xef, 0x81, 0xf1, - 0x0f, 0xf1, 0x76, 0x96, 0xb4, 0x14, 0xee, 0xb9, 0xd9, 0x8f, 0x76, 0xb7, 0x03, 0xfc, 0xad, 0x81, - 0xf0, 0x68, 0x53, 0x88, 0xb7, 0xb3, 0x18, 0x78, 0x6c, 0x33, 0x5a, 0xda, 0x39, 0xad, 0x1a, 0xe5, - 0xf4, 0x07, 0xe0, 0xf4, 0x16, 0xde, 0x48, 0xe9, 0x34, 0xbc, 0xdf, 0xf6, 0xaa, 0x8d, 0x88, 0xae, - 0x20, 0x33, 0xbf, 0x30, 0xd0, 0x6c, 0xac, 0xf5, 0xc4, 0xb9, 0xab, 0xd7, 0x20, 0x9e, 0xeb, 0xa7, - 0xd0, 0xa0, 0x5c, 0x7c, 0x04, 0x2e, 0x6e, 0xe0, 0x07, 0xb9, 0x0a, 0x60, 0xa6, 0x2b, 0x60, 0x19, - 0xd2, 0x0b, 0x23, 0xad, 0x2a, 0xde, 0xca, 0x64, 0xe2, 0x31, 0x4d, 0x72, 0x69, 0xfb, 0x94, 0x5a, - 0x72, 0x83, 0xd8, 0x96, 0xaa, 0xaa, 0x07, 0xbe, 0xd7, 0xae, 0x42, 0x63, 0x6e, 0xf6, 0x55, 0x7f, - 0x0e, 0x47, 0x72, 0x26, 0xd2, 0xc0, 0x66, 0xcc, 0x8f, 0x23, 0x9d, 0x79, 0xc6, 0xfc, 0x98, 0xd0, - 0xbe, 0xdf, 0x05, 0xff, 0x6e, 0xe1, 0x1b, 0xa9, 0xfd, 0xa3, 0xa1, 0xf5, 0x5f, 0x8a, 0xd2, 0x21, - 0x50, 0x9a, 0xb1, 0x74, 0x18, 0x7e, 0x2f, 0x28, 0xad, 0xe5, 0x15, 0xcf, 0x5d, 0x29, 0x07, 0xae, - 0xc8, 0x7c, 0xf9, 0x5f, 0x03, 0xcd, 0x27, 0xbd, 0x2e, 0xe0, 0x87, 0x39, 0x77, 0x79, 0xf8, 0xed, - 0xa1, 0xf4, 0xe8, 0xf4, 0x8a, 0x72, 0x77, 0xa1, 0x61, 0xdc, 0xaa, 0x47, 0x0e, 0x3f, 0xac, 0x3a, - 0xe0, 0xda, 0xff, 0x0c, 0xf4, 0x5a, 0xc2, 0xcb, 0x07, 0xde, 0xc9, 0x67, 0xe9, 0x88, 0xc7, 0x0f, - 0x4f, 0xad, 0x27, 0x67, 0x62, 0x8d, 0x38, 0x1c, 0xf1, 0x17, 0x02, 0xbd, 0x61, 0x3d, 0x7f, 0x59, - 0x36, 0xbe, 0x7a, 0x59, 0x36, 0xfe, 0xfd, 0xb2, 0x6c, 0xfc, 0xea, 0x55, 0xf9, 0xcc, 0x57, 0xaf, - 0xca, 0x67, 0xbe, 0x7e, 0x55, 0x3e, 0xf3, 0xd9, 0x4a, 0xe4, 0x9f, 0xea, 0x27, 0xad, 0xf3, 0x45, - 0xf4, 0x67, 0x14, 0xbd, 0x0e, 0x65, 0xb5, 0x09, 0xf8, 0x29, 0xc5, 0x8d, 0xff, 0x07, 0x00, 0x00, - 0xff, 0xff, 0x42, 0x05, 0x66, 0xa6, 0x41, 0x23, 0x00, 0x00, + // 2307 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x1a, 0x5d, 0x6f, 0x1b, 0xc7, + 0xd1, 0x27, 0x53, 0x1f, 0x5c, 0x59, 0xaa, 0xbd, 0x51, 0x5d, 0x86, 0x75, 0x64, 0x65, 0xeb, 0xb4, + 0x6a, 0x12, 0xf3, 0x6c, 0xd9, 0x96, 0x25, 0xd9, 0x91, 0xad, 0x4f, 0x5b, 0x69, 0x64, 0xcb, 0xa7, + 0x26, 0x41, 0xd3, 0x07, 0xe2, 0x44, 0xae, 0xa4, 0x43, 0xc8, 0x3b, 0xfa, 0x76, 0x69, 0x85, 0x25, + 0x58, 0xa0, 0xfd, 0x05, 0x45, 0xfb, 0x3b, 0x8a, 0x02, 0x6d, 0xd1, 0x3e, 0x15, 0x7d, 0x35, 0xd0, + 0x3c, 0x04, 0x28, 0x0a, 0xa4, 0x79, 0x70, 0x0b, 0xbb, 0xef, 0x46, 0xfb, 0x0b, 0x8a, 0x9d, 0xdd, + 0xbd, 0x0f, 0xf2, 0x24, 0xdc, 0x9d, 0x9e, 0x74, 0x3b, 0x3b, 0x33, 0x37, 0xdf, 0x37, 0x33, 0x22, + 0xba, 0x5c, 0xb3, 0xfd, 0x7a, 0xed, 0xd0, 0x76, 0x5c, 0x33, 0x7c, 0x7a, 0xda, 0xa6, 0x7e, 0xa7, + 0xd2, 0xf2, 0x3d, 0xee, 0xe1, 0x77, 0xd6, 0x69, 0x8d, 0xba, 0xdc, 0xb7, 0x1b, 0x6b, 0xb6, 0x5f, + 0x7f, 0x60, 0x37, 0x69, 0x25, 0x40, 0x0c, 0x9f, 0xca, 0x53, 0x07, 0xde, 0x81, 0x07, 0x14, 0xa6, + 0x78, 0x92, 0xc4, 0xe5, 0x4b, 0x07, 0x9e, 0x77, 0xd0, 0xa0, 0xa6, 0xdd, 0x72, 0x4c, 0xdb, 0x75, + 0x3d, 0x6e, 0x73, 0xc7, 0x73, 0x99, 0xba, 0x7d, 0xb7, 0xe6, 0xb1, 0xa6, 0xc7, 0xcc, 0x3d, 0x9b, + 0x51, 0xf9, 0x4e, 0xf3, 0xd9, 0xf5, 0x3d, 0xca, 0xed, 0xeb, 0x66, 0xcb, 0x3e, 0x70, 0x5c, 0x40, + 0x56, 0xb8, 0x33, 0x49, 0x72, 0xb6, 0x6c, 0xdf, 0x6e, 0xb2, 0x93, 0x30, 0x9e, 0x79, 0xdc, 0x71, + 0x0f, 0x14, 0xc6, 0x74, 0x12, 0x86, 0x78, 0x3a, 0xe9, 0xbe, 0xcd, 0xa8, 0xaf, 0xee, 0x13, 0x6d, + 0xd5, 0xb4, 0x79, 0xed, 0x50, 0x21, 0xbc, 0x95, 0x84, 0xc0, 0x28, 0x57, 0xd7, 0x57, 0x92, 0xaf, + 0x1b, 0x8d, 0xaa, 0xb7, 0xbf, 0x1f, 0xbc, 0xe5, 0xed, 0x44, 0x29, 0xbd, 0xb6, 0x5b, 0x73, 0x1a, + 0x27, 0x31, 0xa2, 0xae, 0x40, 0xe2, 0xd4, 0x3f, 0xd1, 0x20, 0x8c, 0xfa, 0xcf, 0x82, 0x57, 0x5d, + 0x4a, 0xc2, 0xe0, 0x5f, 0xc8, 0x5b, 0x32, 0x85, 0xf0, 0x13, 0xe1, 0x94, 0x1d, 0xb0, 0xb2, 0x45, + 0x9f, 0xb6, 0x29, 0xe3, 0x64, 0x0f, 0xbd, 0x11, 0x83, 0xb2, 0x96, 0xe7, 0x32, 0x8a, 0x7f, 0x84, + 0x46, 0xa4, 0x37, 0x4a, 0xc6, 0x8c, 0x31, 0x3b, 0x3e, 0x77, 0xb5, 0x92, 0x2a, 0x6e, 0x2a, 0x92, + 0xcd, 0x6a, 0xe1, 0xf9, 0x8b, 0xcb, 0x67, 0x2c, 0xc5, 0x82, 0xbc, 0x87, 0x2e, 0xc0, 0x3b, 0x9e, + 0x08, 0x52, 0xf5, 0x62, 0x7c, 0x11, 0x8d, 0x08, 0xb2, 0xad, 0x3a, 0xbc, 0xa1, 0x68, 0xa9, 0x13, + 0x99, 0x43, 0xa5, 0x10, 0x79, 0xcd, 0x73, 0x39, 0x75, 0x79, 0x32, 0x4d, 0x21, 0xa0, 0xd9, 0x42, + 0x6f, 0x26, 0xd0, 0x28, 0x55, 0x4a, 0x68, 0xb4, 0x26, 0x41, 0xea, 0x4d, 0xfa, 0x88, 0x31, 0x2a, + 0x1c, 0xda, 0xec, 0xb0, 0x34, 0x04, 0x60, 0x78, 0x26, 0x57, 0xb5, 0xac, 0x1f, 0x33, 0xea, 0xeb, + 0xf7, 0x96, 0xd0, 0xa8, 0x5d, 0xaf, 0xfb, 0x94, 0x31, 0xcd, 0x42, 0x1d, 0xc9, 0x25, 0x54, 0x0e, + 0xdf, 0x0c, 0x26, 0xd8, 0x72, 0xf7, 0x3d, 0x6d, 0xdc, 0x97, 0x43, 0xe8, 0xbb, 0x89, 0xd7, 0x4a, + 0xb4, 0x9f, 0xa2, 0xf3, 0x42, 0x83, 0x95, 0x76, 0x4d, 0xa4, 0xc6, 0x8e, 0xef, 0xd4, 0xa8, 0x7c, + 0xc1, 0xaa, 0x29, 0x0c, 0xf8, 0xcd, 0x8b, 0xcb, 0x3f, 0x38, 0x70, 0xf8, 0x61, 0x7b, 0xaf, 0x52, + 0xf3, 0x9a, 0xa6, 0x4a, 0x2f, 0xf9, 0xe7, 0x2a, 0xab, 0x7f, 0x6e, 0xf2, 0x4e, 0x8b, 0xb2, 0xca, + 0x9a, 0xe7, 0xb8, 0xd6, 0x00, 0x23, 0x3c, 0x8d, 0x90, 0x5d, 0xe3, 0xce, 0x33, 0xba, 0x4b, 0x39, + 0x2b, 0x0d, 0xcd, 0x9c, 0x9d, 0x2d, 0x58, 0x11, 0x08, 0x9e, 0x41, 0xe3, 0x82, 0x86, 0x3d, 0x6a, + 0x37, 0xf7, 0xa8, 0x5f, 0x3a, 0x0b, 0x16, 0x8d, 0x82, 0xf0, 0x15, 0x34, 0x01, 0xe9, 0x40, 0x35, + 0x4e, 0x01, 0x70, 0xe2, 0x40, 0xfc, 0x2e, 0x3a, 0x2f, 0x82, 0xfe, 0xb1, 0x88, 0x79, 0x8d, 0x38, + 0x0c, 0x88, 0x03, 0x70, 0xfc, 0x7d, 0x34, 0xa9, 0x42, 0x5f, 0x63, 0x8e, 0x00, 0x66, 0x1f, 0x54, + 0xf0, 0x6c, 0xd8, 0x8c, 0x0b, 0xab, 0x6d, 0x7b, 0x75, 0x67, 0xdf, 0xa1, 0xf5, 0xd2, 0xa8, 0xe4, + 0xd9, 0x0f, 0x0f, 0x5d, 0xf0, 0x09, 0x14, 0x07, 0x8b, 0xb2, 0x76, 0x83, 0x07, 0xf1, 0xfd, 0x0b, + 0x43, 0xbb, 0xa0, 0xef, 0x5a, 0xb9, 0x60, 0x0f, 0x5d, 0x10, 0x1c, 0x63, 0x97, 0x2a, 0xe6, 0x6f, + 0xa6, 0x8c, 0xf9, 0x38, 0xe3, 0x41, 0x76, 0xe4, 0x75, 0x41, 0xa5, 0x1e, 0x84, 0x81, 0x16, 0x0d, + 0x4f, 0xa1, 0x61, 0xef, 0xc8, 0xa5, 0xbe, 0x8a, 0x29, 0x79, 0xc0, 0x5b, 0x68, 0x8c, 0x71, 0x9b, + 0xb7, 0x19, 0x95, 0x4e, 0x9b, 0x4c, 0x9d, 0x7b, 0xbb, 0x40, 0x66, 0x05, 0xe4, 0x78, 0x1b, 0x15, + 0xc5, 0xed, 0x8f, 0x45, 0x94, 0x94, 0xce, 0x02, 0x2f, 0x33, 0x25, 0xaf, 0x35, 0x45, 0x67, 0x85, + 0x1c, 0xf0, 0x87, 0x68, 0xb4, 0xd6, 0xb0, 0x99, 0x10, 0xac, 0x00, 0xcc, 0xae, 0x65, 0x60, 0xb6, + 0x26, 0x28, 0x2d, 0xcd, 0x40, 0x64, 0x32, 0xf3, 0x7c, 0xbe, 0xda, 0x81, 0x50, 0x29, 0x5a, 0xea, + 0x84, 0x09, 0x3a, 0xe7, 0xda, 0x4d, 0x2a, 0x72, 0xd8, 0x76, 0x5c, 0x06, 0xe1, 0x51, 0xb4, 0x62, + 0x30, 0x11, 0x1c, 0x9f, 0xd3, 0xce, 0x91, 0xe7, 0xd7, 0x59, 0x80, 0x37, 0x0a, 0x78, 0x03, 0x70, + 0x11, 0xc2, 0xae, 0xc7, 0x69, 0x88, 0x38, 0x06, 0x88, 0x71, 0x20, 0x9e, 0x45, 0xdf, 0xf2, 0xdc, + 0x46, 0x67, 0x97, 0xdb, 0x3e, 0xa7, 0xbe, 0x10, 0xb7, 0x54, 0x9c, 0x31, 0x66, 0xc7, 0xac, 0x7e, + 0x30, 0xae, 0x20, 0x2c, 0x40, 0xab, 0x76, 0xc3, 0x76, 0x6b, 0x74, 0xc5, 0xad, 0x1d, 0x7a, 0x3e, + 0x2b, 0x21, 0x40, 0x4e, 0xb8, 0xc1, 0xdb, 0x68, 0xcc, 0xb7, 0x7d, 0x87, 0x3b, 0x94, 0x95, 0xc6, + 0xc1, 0x68, 0xd7, 0x33, 0x18, 0xcd, 0x12, 0xa4, 0x1d, 0x2b, 0x60, 0x21, 0xf2, 0xa7, 0xd9, 0x6e, + 0x70, 0x07, 0xac, 0xf9, 0xd8, 0x6d, 0x74, 0x4a, 0xe7, 0xe0, 0xd5, 0x7d, 0x50, 0x72, 0x43, 0x55, + 0x75, 0x1d, 0x70, 0x2a, 0xd8, 0x2f, 0xc9, 0x80, 0x60, 0x1f, 0x39, 0x4c, 0x14, 0x43, 0x51, 0x11, + 0x42, 0x00, 0xa9, 0xe8, 0x28, 0xdd, 0x16, 0xf9, 0x1d, 0xa9, 0x7d, 0x90, 0xef, 0x41, 0xd1, 0xd5, + 0x47, 0x32, 0x8b, 0xce, 0x4b, 0xfc, 0x5d, 0xca, 0x23, 0x31, 0xcd, 0x28, 0x0f, 0x70, 0xe5, 0x81, + 0x2c, 0xa1, 0x8b, 0x1a, 0x53, 0x15, 0x04, 0x8d, 0x3f, 0x83, 0xc6, 0x83, 0x22, 0x11, 0x50, 0x45, + 0x41, 0xe4, 0x26, 0x9a, 0x52, 0xaa, 0xc8, 0x12, 0xa1, 0x29, 0x85, 0x2e, 0x12, 0x12, 0xd0, 0x85, + 0x00, 0xf2, 0xcd, 0x90, 0x26, 0xdb, 0x96, 0xc5, 0x4a, 0x93, 0x5d, 0x41, 0x13, 0xdc, 0x69, 0x52, + 0xc6, 0xed, 0x66, 0x6b, 0xdd, 0x3b, 0x72, 0x15, 0x69, 0x1c, 0x28, 0xc4, 0x0a, 0x00, 0x1f, 0xb7, + 0xe0, 0x03, 0x51, 0xb0, 0xa2, 0x20, 0xc1, 0xa7, 0xa6, 0xc2, 0x47, 0x7c, 0x29, 0x64, 0x7e, 0x15, + 0xad, 0x38, 0x10, 0x97, 0xd1, 0x98, 0x4f, 0x5b, 0x9e, 0x08, 0x1f, 0x28, 0x9e, 0x45, 0x2b, 0x38, + 0xe3, 0x87, 0x68, 0xd4, 0x6b, 0xf3, 0x9a, 0xd7, 0xa4, 0x90, 0x03, 0x93, 0x73, 0x95, 0x94, 0x91, + 0xf1, 0x58, 0x52, 0x59, 0x9a, 0x3c, 0xa8, 0xe4, 0x3b, 0x0d, 0xbb, 0x43, 0xeb, 0xa5, 0x11, 0x70, + 0x6c, 0x14, 0x84, 0x3f, 0x42, 0x23, 0xce, 0x81, 0xeb, 0xf9, 0x14, 0x12, 0x25, 0x7d, 0x69, 0xdb, + 0x02, 0x22, 0x6d, 0x42, 0xc5, 0x83, 0xfc, 0x10, 0x4d, 0xc4, 0x2e, 0x44, 0x8c, 0x68, 0x55, 0x0c, + 0x88, 0x47, 0x7d, 0x14, 0xe5, 0xf7, 0xdb, 0x7d, 0x7e, 0x50, 0xb1, 0x38, 0x83, 0xc6, 0xd5, 0x77, + 0x24, 0x12, 0x8d, 0x51, 0x10, 0xde, 0x54, 0x91, 0xa7, 0x0a, 0xe1, 0xf8, 0xdc, 0xfb, 0x29, 0xa5, + 0x96, 0xf1, 0xab, 0x89, 0xc9, 0x1f, 0x87, 0xd0, 0x77, 0xfa, 0xc2, 0x8f, 0x45, 0xa2, 0xa8, 0x25, + 0xbe, 0x96, 0x41, 0x28, 0x14, 0xad, 0x10, 0x20, 0xf4, 0x82, 0x83, 0x0a, 0x81, 0xa2, 0xa5, 0x8f, + 0x50, 0xbf, 0x68, 0xa3, 0xa1, 0xbe, 0x9b, 0xa2, 0x7e, 0xc1, 0x49, 0xc4, 0xff, 0x5e, 0xbb, 0x13, + 0x78, 0x5b, 0x1e, 0x44, 0xa3, 0x21, 0xa4, 0x53, 0x9f, 0x45, 0x78, 0xc6, 0x8f, 0xd0, 0x88, 0x2c, + 0xd4, 0x50, 0xe3, 0x26, 0xe7, 0xe6, 0xd3, 0x56, 0x79, 0xad, 0x83, 0x2a, 0xf7, 0x8a, 0x0b, 0x7e, + 0xdc, 0xe7, 0xe2, 0xdb, 0x99, 0x5c, 0x1c, 0xb1, 0x8c, 0xf6, 0xf2, 0x32, 0x3a, 0xdf, 0x7f, 0x07, + 0x6a, 0x4b, 0xa1, 0xa5, 0x9f, 0xf5, 0xcb, 0xb5, 0x82, 0x43, 0x00, 0x85, 0x67, 0xf2, 0x6b, 0x43, + 0x77, 0x72, 0x51, 0xb3, 0x2b, 0xef, 0x5f, 0x41, 0x13, 0x61, 0x73, 0xb0, 0x55, 0x67, 0xca, 0xff, + 0x71, 0x20, 0xde, 0x41, 0x28, 0x04, 0xa8, 0x20, 0xb8, 0x96, 0xd5, 0x4e, 0x56, 0x84, 0x07, 0x79, + 0x47, 0x17, 0xc6, 0x5d, 0x68, 0x9c, 0x75, 0x18, 0x4c, 0xa2, 0x21, 0x47, 0x57, 0x91, 0x21, 0xa7, + 0x4e, 0x2e, 0xea, 0xea, 0xa1, 0xd1, 0xa4, 0xd8, 0xe4, 0x5f, 0x86, 0x6e, 0x0f, 0x45, 0x0b, 0xa5, + 0xa9, 0x37, 0x63, 0x56, 0x49, 0x9f, 0xc8, 0x6b, 0x7d, 0x2e, 0x24, 0xe8, 0x9c, 0xb4, 0xbd, 0x84, + 0x2b, 0x6b, 0xc6, 0x60, 0x02, 0x47, 0x94, 0x18, 0xdf, 0xd9, 0x6b, 0x73, 0x2f, 0x28, 0x3b, 0x31, + 0x58, 0xb4, 0x36, 0x41, 0xfd, 0x87, 0xcf, 0x75, 0xc1, 0x8a, 0x03, 0xc3, 0xf6, 0x63, 0x38, 0xd2, + 0x7e, 0x90, 0xf7, 0xf5, 0x47, 0x40, 0x2a, 0xa8, 0xdc, 0x05, 0xe1, 0xce, 0x43, 0x3f, 0xa9, 0x13, + 0x99, 0x47, 0xd3, 0x80, 0x2d, 0x3f, 0x54, 0xeb, 0x0e, 0x93, 0x42, 0x38, 0x9e, 0x7b, 0xf2, 0x07, + 0x61, 0x17, 0x5d, 0x3e, 0x96, 0x2e, 0xd2, 0xb6, 0xb7, 0x7d, 0x5f, 0xb6, 0xed, 0x67, 0x67, 0x27, + 0x2c, 0x7d, 0x14, 0xc2, 0x1c, 0xd9, 0x2e, 0xa7, 0x75, 0x88, 0x88, 0x09, 0x4b, 0x9d, 0xc8, 0xad, + 0x84, 0x29, 0x80, 0x45, 0x3e, 0x63, 0x72, 0x58, 0xd0, 0x2a, 0xe8, 0x23, 0xe1, 0xd1, 0x16, 0x3e, + 0x24, 0x53, 0x62, 0x7c, 0x82, 0x86, 0xa1, 0x90, 0x02, 0xd5, 0xf8, 0xdc, 0xfd, 0x94, 0xae, 0x3d, + 0x76, 0x1c, 0xb1, 0x24, 0x3b, 0xb2, 0x88, 0xde, 0x92, 0x38, 0x2b, 0x35, 0x98, 0xf3, 0x36, 0x7d, + 0xaf, 0xf9, 0x19, 0xb5, 0x1b, 0x9d, 0x88, 0xc0, 0x3f, 0x13, 0xe7, 0x60, 0x40, 0xd2, 0x47, 0xb2, + 0xa4, 0x8c, 0x9e, 0x40, 0x1a, 0xda, 0xee, 0x98, 0x79, 0xe5, 0x4d, 0x5d, 0x0a, 0x37, 0x82, 0xf1, + 0x52, 0x77, 0xca, 0x0d, 0x9d, 0xae, 0xd1, 0x2b, 0xc5, 0x70, 0x07, 0xa1, 0x70, 0x1e, 0x55, 0xa6, + 0x48, 0x9b, 0x88, 0x01, 0x3b, 0x2b, 0xc2, 0x83, 0xcc, 0xea, 0x96, 0x20, 0xbc, 0x3e, 0x26, 0x17, + 0x9d, 0x01, 0x91, 0x03, 0xb1, 0x1e, 0xa1, 0x62, 0xc0, 0x52, 0x35, 0xed, 0xd9, 0xa5, 0x0a, 0x59, + 0x10, 0x82, 0x66, 0xfa, 0x4d, 0xf0, 0xa9, 0xc3, 0x0f, 0xb7, 0x9a, 0xf6, 0x01, 0xd5, 0x66, 0xfa, + 0x39, 0x7a, 0xfb, 0x04, 0x1c, 0x25, 0xd8, 0x4f, 0x12, 0xec, 0xb5, 0x98, 0x55, 0xb2, 0x90, 0x6d, + 0xd4, 0x70, 0xd7, 0x55, 0xea, 0x3c, 0x49, 0xc0, 0x3b, 0xc6, 0x82, 0xdd, 0x01, 0xb5, 0x06, 0x25, + 0xfe, 0x74, 0xd0, 0x94, 0xa7, 0x10, 0x38, 0xe4, 0x35, 0xf7, 0xe5, 0xf7, 0xd0, 0x30, 0xbc, 0x1d, + 0xff, 0xc9, 0x40, 0x23, 0x72, 0x3f, 0x80, 0x17, 0xb3, 0xa4, 0x51, 0x6c, 0x61, 0x51, 0x5e, 0xca, + 0x43, 0xaa, 0xca, 0xf7, 0xad, 0x5f, 0xfe, 0xfd, 0x3f, 0xbf, 0x19, 0x32, 0xf1, 0x55, 0x73, 0x80, + 0x87, 0xb9, 0x76, 0xec, 0x42, 0x0a, 0xff, 0xde, 0x40, 0xc3, 0x90, 0xcb, 0x78, 0x21, 0x73, 0xfa, + 0x6b, 0xb1, 0xcd, 0xf4, 0xcd, 0x5d, 0x4b, 0x20, 0x90, 0x65, 0x90, 0x75, 0x01, 0xcf, 0xa7, 0x94, + 0xf5, 0x69, 0x55, 0x3c, 0x9b, 0x5d, 0x59, 0xd6, 0x7a, 0xf8, 0x9f, 0x06, 0x3a, 0x17, 0x2d, 0x40, + 0xf8, 0x5e, 0xfe, 0xd2, 0x25, 0x55, 0x38, 0x75, 0xed, 0x23, 0x9b, 0xa0, 0xd3, 0x7d, 0xbc, 0x9c, + 0x49, 0xa7, 0xaa, 0xda, 0xd7, 0x84, 0xba, 0xfd, 0x4e, 0x38, 0x44, 0x74, 0xd8, 0x19, 0x1d, 0x12, + 0xd9, 0xe9, 0x94, 0xdf, 0x4b, 0x49, 0x29, 0x68, 0xc8, 0x3d, 0x10, 0x7c, 0x11, 0xdf, 0x4e, 0x2d, + 0x78, 0x9b, 0x51, 0xdf, 0xec, 0xaa, 0xb2, 0xdb, 0xc3, 0x5f, 0x1b, 0x68, 0x32, 0xbe, 0x04, 0xc2, + 0x2b, 0x99, 0xcd, 0xd9, 0xbf, 0x5f, 0x2a, 0xaf, 0x9e, 0x86, 0x85, 0xf2, 0x49, 0x76, 0xd5, 0x82, + 0xe7, 0xaa, 0x23, 0xf4, 0x00, 0xd5, 0x62, 0x0b, 0x8f, 0x8c, 0xaa, 0x25, 0xed, 0x6d, 0x32, 0xaa, + 0x96, 0xb8, 0xdb, 0xc9, 0xa1, 0x9a, 0xdc, 0x2f, 0x57, 0x7d, 0xa5, 0xc7, 0x9f, 0x0d, 0x34, 0x22, + 0x47, 0xe8, 0x6c, 0x15, 0x2b, 0xb6, 0xe7, 0xc9, 0x56, 0xb1, 0xe2, 0x13, 0x3b, 0x99, 0x07, 0x15, + 0xae, 0xe1, 0x4a, 0x26, 0xef, 0x30, 0xfc, 0x07, 0x21, 0x39, 0xcc, 0x41, 0x19, 0x25, 0x8f, 0xce, + 0xfe, 0xe5, 0x4c, 0x03, 0x17, 0xb9, 0x0f, 0xb2, 0x2e, 0xe1, 0x85, 0xd4, 0xb2, 0xc2, 0x84, 0x66, + 0x76, 0xd5, 0x42, 0xa1, 0x87, 0x7f, 0x6b, 0xa0, 0x82, 0x68, 0x3c, 0xf1, 0xed, 0x4c, 0x32, 0x87, + 0xfb, 0x87, 0x72, 0x86, 0x19, 0xba, 0xb5, 0x4b, 0x39, 0xb9, 0x0b, 0x32, 0xcf, 0xe3, 0x9b, 0xa9, + 0x65, 0x66, 0x94, 0x9b, 0x5d, 0xe8, 0x62, 0x7b, 0xf8, 0xb9, 0x81, 0x50, 0x38, 0xdd, 0xe0, 0x0f, + 0x32, 0x4a, 0x1d, 0xdf, 0x85, 0x94, 0x33, 0x4f, 0x36, 0x64, 0x0b, 0xa4, 0x5f, 0xc3, 0x2b, 0x19, + 0xa4, 0xd7, 0xff, 0x9e, 0x10, 0x4a, 0x04, 0x5b, 0x96, 0x1e, 0xfe, 0x8b, 0x81, 0xc6, 0xf4, 0x8a, + 0x05, 0xdf, 0xc9, 0x16, 0xb1, 0xb1, 0xc5, 0x4c, 0x6a, 0x17, 0x28, 0x32, 0xb2, 0x0e, 0x4a, 0x2c, + 0xe3, 0xbb, 0xe9, 0x43, 0x5c, 0x52, 0x9a, 0xdd, 0x60, 0xdf, 0xd3, 0xc3, 0x7f, 0x15, 0xf2, 0xeb, + 0x7d, 0xc4, 0x9d, 0xec, 0x21, 0x1f, 0x6c, 0x88, 0xca, 0x77, 0xf3, 0x11, 0xab, 0x84, 0x5d, 0x00, + 0x6d, 0xe6, 0xf0, 0xb5, 0x6c, 0x49, 0x40, 0x19, 0xfe, 0x87, 0x81, 0xc6, 0x23, 0xa3, 0x32, 0x5e, + 0xce, 0x17, 0x4d, 0x81, 0x1e, 0xf7, 0x72, 0xd3, 0x2b, 0x55, 0x36, 0x40, 0x95, 0x7b, 0xf8, 0x83, + 0x1c, 0xd1, 0xc5, 0xcc, 0xae, 0x1c, 0x6a, 0x7b, 0xa2, 0x7b, 0x1a, 0x55, 0x73, 0x34, 0x5e, 0xca, + 0x28, 0x53, 0x64, 0x46, 0x2f, 0xa7, 0x5e, 0x83, 0x03, 0x55, 0xae, 0xcc, 0x16, 0x84, 0x66, 0xd7, + 0xa9, 0xf7, 0xf0, 0xdf, 0x44, 0x87, 0x01, 0xff, 0x26, 0x59, 0xc8, 0x5a, 0x8a, 0x02, 0x07, 0x2c, + 0xe6, 0xa0, 0x54, 0xa6, 0xdf, 0x06, 0xe1, 0x1f, 0xe0, 0x8d, 0x2c, 0x65, 0x29, 0xb4, 0xb9, 0xd9, + 0x8d, 0xee, 0x0c, 0x7a, 0xf8, 0xb5, 0x81, 0xf0, 0xe0, 0xa8, 0x8d, 0x37, 0xb2, 0x08, 0x78, 0xec, + 0x88, 0x5f, 0xde, 0x3c, 0x2d, 0x1b, 0xa5, 0xf4, 0x87, 0xa0, 0xf4, 0x3a, 0x5e, 0x4d, 0xa9, 0x34, + 0x6c, 0xc5, 0x3b, 0xd5, 0x7a, 0x84, 0x57, 0x50, 0x99, 0x5f, 0x18, 0x68, 0x22, 0x36, 0xd0, 0xe3, + 0xdc, 0xdd, 0x6b, 0xe0, 0xcf, 0x95, 0x53, 0x70, 0x50, 0x2a, 0x3e, 0x04, 0x15, 0x57, 0xf1, 0xfd, + 0x5c, 0x0d, 0x30, 0xd3, 0x1d, 0xb0, 0x74, 0xe9, 0x85, 0x81, 0x05, 0x00, 0x5e, 0xcf, 0x24, 0xe2, + 0x31, 0xab, 0x87, 0xf2, 0xc6, 0x29, 0xb9, 0xe4, 0x0e, 0x62, 0x5b, 0xb2, 0xaa, 0xee, 0xfb, 0x5e, + 0xb3, 0x0a, 0xeb, 0x0e, 0xb3, 0xab, 0xb6, 0x1e, 0x90, 0x92, 0xe3, 0x91, 0xa1, 0x3b, 0x63, 0x7d, + 0x1c, 0xd8, 0x77, 0x64, 0xac, 0x8f, 0x83, 0x4b, 0x11, 0x72, 0x07, 0xf4, 0xbb, 0x85, 0x6f, 0xa4, + 0xd6, 0x2f, 0x1c, 0xe3, 0xf1, 0x97, 0xa2, 0x75, 0x08, 0x98, 0x66, 0x6c, 0x1d, 0xfa, 0x77, 0x26, + 0xe5, 0xe5, 0xbc, 0xe4, 0xb9, 0x3b, 0xe5, 0x40, 0x15, 0x59, 0x2f, 0xff, 0x6b, 0xa0, 0xa9, 0xa4, + 0x8d, 0x08, 0x7e, 0x90, 0xd3, 0xca, 0xfd, 0x4b, 0x8d, 0xf2, 0xc3, 0xd3, 0x33, 0xca, 0x3d, 0x85, + 0x86, 0x7e, 0xab, 0x1e, 0x39, 0xfc, 0xb0, 0xea, 0x80, 0x6a, 0xff, 0x33, 0xd0, 0x1b, 0x09, 0x2b, + 0x15, 0xbc, 0x99, 0x4f, 0xd2, 0x01, 0x8d, 0x1f, 0x9c, 0x9a, 0x4f, 0xce, 0xc2, 0x1a, 0x51, 0x38, + 0xa2, 0x2f, 0x38, 0x7a, 0xd5, 0x7a, 0xfe, 0x72, 0xda, 0xf8, 0xea, 0xe5, 0xb4, 0xf1, 0xef, 0x97, + 0xd3, 0xc6, 0xaf, 0x5e, 0x4d, 0x9f, 0xf9, 0xea, 0xd5, 0xf4, 0x99, 0xaf, 0x5f, 0x4d, 0x9f, 0xf9, + 0x6c, 0x21, 0xf2, 0x53, 0x85, 0x93, 0xde, 0xf3, 0x45, 0xf4, 0xc7, 0x29, 0x9d, 0x16, 0x65, 0x7b, + 0x23, 0xf0, 0x03, 0x95, 0x1b, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x11, 0x60, 0xe9, 0x8d, 0xbd, + 0x24, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4519,6 +4555,20 @@ func (m *QueryQEncountersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error _ = i var l int _ = l + if len(m.Encounters) > 0 { + for iNdEx := len(m.Encounters) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Encounters[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } return len(dAtA) - i, nil } @@ -4570,6 +4620,18 @@ func (m *QueryQEncounterResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if m.Encounter != nil { + { + size, err := m.Encounter.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } @@ -4616,6 +4678,20 @@ func (m *QueryQEncountersWithImageResponse) MarshalToSizedBuffer(dAtA []byte) (i _ = i var l int _ = l + if len(m.Encounters) > 0 { + for iNdEx := len(m.Encounters) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Encounters[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } return len(dAtA) - i, nil } @@ -4667,6 +4743,18 @@ func (m *QueryQEncounterWithImageResponse) MarshalToSizedBuffer(dAtA []byte) (in _ = i var l int _ = l + if m.Encounter != nil { + { + size, err := m.Encounter.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } @@ -5271,6 +5359,12 @@ func (m *QueryQEncountersResponse) Size() (n int) { } var l int _ = l + if len(m.Encounters) > 0 { + for _, e := range m.Encounters { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } return n } @@ -5292,6 +5386,10 @@ func (m *QueryQEncounterResponse) Size() (n int) { } var l int _ = l + if m.Encounter != nil { + l = m.Encounter.Size() + n += 1 + l + sovQuery(uint64(l)) + } return n } @@ -5310,6 +5408,12 @@ func (m *QueryQEncountersWithImageResponse) Size() (n int) { } var l int _ = l + if len(m.Encounters) > 0 { + for _, e := range m.Encounters { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } return n } @@ -5331,6 +5435,10 @@ func (m *QueryQEncounterWithImageResponse) Size() (n int) { } var l int _ = l + if m.Encounter != nil { + l = m.Encounter.Size() + n += 1 + l + sovQuery(uint64(l)) + } return n } @@ -9422,6 +9530,40 @@ func (m *QueryQEncountersResponse) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: QueryQEncountersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Encounters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Encounters = append(m.Encounters, &Encounter{}) + if err := m.Encounters[len(m.Encounters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -9541,6 +9683,42 @@ func (m *QueryQEncounterResponse) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: QueryQEncounterResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Encounter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Encounter == nil { + m.Encounter = &Encounter{} + } + if err := m.Encounter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -9641,6 +9819,40 @@ func (m *QueryQEncountersWithImageResponse) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: QueryQEncountersWithImageResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Encounters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Encounters = append(m.Encounters, &EncounterWithImage{}) + if err := m.Encounters[len(m.Encounters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -9760,6 +9972,42 @@ func (m *QueryQEncounterWithImageResponse) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: QueryQEncounterWithImageResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Encounter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Encounter == nil { + m.Encounter = &EncounterWithImage{} + } + if err := m.Encounter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) From c4fab21712c44b5f5f01d1367286416a16026a02 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Fri, 13 Dec 2024 04:20:49 +0100 Subject: [PATCH 15/20] feat(#237): added card deposit --- .../keeper/msg_server_encounter_create.go | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/x/cardchain/keeper/msg_server_encounter_create.go b/x/cardchain/keeper/msg_server_encounter_create.go index 7f153aff..dad62fdf 100644 --- a/x/cardchain/keeper/msg_server_encounter_create.go +++ b/x/cardchain/keeper/msg_server_encounter_create.go @@ -2,6 +2,7 @@ package keeper import ( "context" + "slices" sdkerrors "cosmossdk.io/errors" "github.com/DecentralCardGame/Cardchain/x/cardchain/types" @@ -14,7 +15,12 @@ import ( func (k msgServer) EncounterCreate(goCtx context.Context, msg *types.MsgEncounterCreate) (*types.MsgEncounterCreateResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) - err := k.validateDrawlist(ctx, msg) + creator, err := k.GetMsgCreator(ctx, msg) + if err != nil { + return nil, err + } + + err = k.validateDrawlist(ctx, msg, &creator) if err != nil { return nil, err } @@ -33,21 +39,27 @@ func (k msgServer) EncounterCreate(goCtx context.Context, msg *types.MsgEncounte k.Images.Set(ctx, imageId, &types.Image{Image: msg.Image}) k.Encounters.Set(ctx, id, &encounter) + k.SetUserFromUser(ctx, creator) // TODO: remove bought cards used for encounter from owned cards from that user (not drafts or permanents) return &types.MsgEncounterCreateResponse{}, nil } -func (k Keeper) validateDrawlist(ctx sdk.Context, msg *types.MsgEncounterCreate) error { +func (k Keeper) validateDrawlist(ctx sdk.Context, msg *types.MsgEncounterCreate, creator *User) error { for idx, cardId := range msg.Drawlist { card := k.Cards.Get(ctx, cardId) if card.Owner != msg.Creator { - return sdkerrors.Wrapf( - errors.ErrUnauthorized, - "creator has to own all cards, doesnt own '%d'", cardId, - ) + index := slices.Index(creator.Cards, cardId) + if index != -1 { + creator.Cards = append(creator.Cards[:index], creator.Cards[index+1:]...) + } else { + return sdkerrors.Wrapf( + errors.ErrUnauthorized, + "creator has to own all cards, doesnt own '%d'", cardId, + ) + } } cardObj, err := keywords.Unmarshal(card.Content) From 380ce8ae5a7a4b47acd5c8af157a8a1b67a77265 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Fri, 13 Dec 2024 04:29:10 +0100 Subject: [PATCH 16/20] fix(#237): removed comment --- x/cardchain/keeper/msg_server_encounter_create.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/x/cardchain/keeper/msg_server_encounter_create.go b/x/cardchain/keeper/msg_server_encounter_create.go index dad62fdf..57909595 100644 --- a/x/cardchain/keeper/msg_server_encounter_create.go +++ b/x/cardchain/keeper/msg_server_encounter_create.go @@ -41,8 +41,6 @@ func (k msgServer) EncounterCreate(goCtx context.Context, msg *types.MsgEncounte k.Encounters.Set(ctx, id, &encounter) k.SetUserFromUser(ctx, creator) - // TODO: remove bought cards used for encounter from owned cards from that user (not drafts or permanents) - return &types.MsgEncounterCreateResponse{}, nil } From 29d5ceb61d506fa15773ceeaba30ae33e6dd78ad Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Fri, 13 Dec 2024 04:54:13 +0100 Subject: [PATCH 17/20] fix(#237): Updated commands --- x/cardchain/client/cli/tx_encounter_close.go | 11 +++++++++-- x/cardchain/client/cli/tx_encounter_create.go | 19 +++++++++++++++++-- x/cardchain/client/cli/tx_encounter_do.go | 5 +++-- x/cardchain/types/message_encounter_close.go | 4 +++- x/cardchain/types/message_encounter_create.go | 7 +++++-- x/cardchain/types/message_encounter_do.go | 3 ++- 6 files changed, 39 insertions(+), 10 deletions(-) diff --git a/x/cardchain/client/cli/tx_encounter_close.go b/x/cardchain/client/cli/tx_encounter_close.go index 7b08b6be..42373b95 100644 --- a/x/cardchain/client/cli/tx_encounter_close.go +++ b/x/cardchain/client/cli/tx_encounter_close.go @@ -15,15 +15,20 @@ var _ = strconv.Itoa(0) func CmdEncounterClose() *cobra.Command { cmd := &cobra.Command{ - Use: "encounter-close [encounter-id]", + Use: "encounter-close [encounter-id] [user] [won]", Short: "Broadcast message EncounterClose", - Args: cobra.ExactArgs(1), + Args: cobra.ExactArgs(3), RunE: func(cmd *cobra.Command, args []string) (err error) { argEncounterId, err := cast.ToUint64E(args[0]) if err != nil { return err } + argWon, err := cast.ToBoolE(args[2]) + if err != nil { + return err + } + clientCtx, err := client.GetClientTxContext(cmd) if err != nil { return err @@ -32,6 +37,8 @@ func CmdEncounterClose() *cobra.Command { msg := types.NewMsgEncounterClose( clientCtx.GetFromAddress().String(), argEncounterId, + args[1], + argWon, ) if err := msg.ValidateBasic(); err != nil { return err diff --git a/x/cardchain/client/cli/tx_encounter_create.go b/x/cardchain/client/cli/tx_encounter_create.go index 4780bdcc..1b24b3a3 100644 --- a/x/cardchain/client/cli/tx_encounter_create.go +++ b/x/cardchain/client/cli/tx_encounter_create.go @@ -1,6 +1,7 @@ package cli import ( + "encoding/json" "strconv" "github.com/DecentralCardGame/Cardchain/x/cardchain/types" @@ -14,10 +15,21 @@ var _ = strconv.Itoa(0) func CmdEncounterCreate() *cobra.Command { cmd := &cobra.Command{ - Use: "encounter-create", + Use: "encounter-create [drawlist] [parameters] [image]", Short: "Broadcast message EncounterCreate", - Args: cobra.ExactArgs(0), + Args: cobra.ExactArgs(3), RunE: func(cmd *cobra.Command, args []string) (err error) { + var reqDrawlist []uint64 + err = json.Unmarshal([]byte(args[0]), &reqDrawlist) + if err != nil { + return err + } + + var reqParameters map[string]string + err = json.Unmarshal([]byte(args[1]), &reqParameters) + if err != nil { + return err + } clientCtx, err := client.GetClientTxContext(cmd) if err != nil { @@ -26,6 +38,9 @@ func CmdEncounterCreate() *cobra.Command { msg := types.NewMsgEncounterCreate( clientCtx.GetFromAddress().String(), + reqDrawlist, + reqParameters, + []byte(args[1]), ) if err := msg.ValidateBasic(); err != nil { return err diff --git a/x/cardchain/client/cli/tx_encounter_do.go b/x/cardchain/client/cli/tx_encounter_do.go index db3d67c8..b2afac86 100644 --- a/x/cardchain/client/cli/tx_encounter_do.go +++ b/x/cardchain/client/cli/tx_encounter_do.go @@ -15,9 +15,9 @@ var _ = strconv.Itoa(0) func CmdEncounterDo() *cobra.Command { cmd := &cobra.Command{ - Use: "encounter-do [encounter-id]", + Use: "encounter-do [encounter-id] [user]", Short: "Broadcast message EncounterDo", - Args: cobra.ExactArgs(1), + Args: cobra.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) (err error) { argEncounterId, err := cast.ToUint64E(args[0]) if err != nil { @@ -32,6 +32,7 @@ func CmdEncounterDo() *cobra.Command { msg := types.NewMsgEncounterDo( clientCtx.GetFromAddress().String(), argEncounterId, + args[1], ) if err := msg.ValidateBasic(); err != nil { return err diff --git a/x/cardchain/types/message_encounter_close.go b/x/cardchain/types/message_encounter_close.go index 840faa47..b379aae7 100644 --- a/x/cardchain/types/message_encounter_close.go +++ b/x/cardchain/types/message_encounter_close.go @@ -9,10 +9,12 @@ const TypeMsgEncounterClose = "encounter_close" var _ sdk.Msg = &MsgEncounterClose{} -func NewMsgEncounterClose(creator string, encounterId uint64) *MsgEncounterClose { +func NewMsgEncounterClose(creator string, encounterId uint64, user string, won bool) *MsgEncounterClose { return &MsgEncounterClose{ Creator: creator, EncounterId: encounterId, + User: user, + Won: won, } } diff --git a/x/cardchain/types/message_encounter_create.go b/x/cardchain/types/message_encounter_create.go index 8b76f7ac..43691e0b 100644 --- a/x/cardchain/types/message_encounter_create.go +++ b/x/cardchain/types/message_encounter_create.go @@ -12,9 +12,12 @@ const TypeMsgEncounterCreate = "encounter_create" var _ sdk.Msg = &MsgEncounterCreate{} -func NewMsgEncounterCreate(creator string) *MsgEncounterCreate { +func NewMsgEncounterCreate(creator string, drawlist []uint64, parameters map[string]string, image []byte) *MsgEncounterCreate { return &MsgEncounterCreate{ - Creator: creator, + Creator: creator, + Drawlist: drawlist, + Parameters: parameters, + Image: image, } } diff --git a/x/cardchain/types/message_encounter_do.go b/x/cardchain/types/message_encounter_do.go index d05d7ef6..5cac8356 100644 --- a/x/cardchain/types/message_encounter_do.go +++ b/x/cardchain/types/message_encounter_do.go @@ -9,10 +9,11 @@ const TypeMsgEncounterDo = "encounter_do" var _ sdk.Msg = &MsgEncounterDo{} -func NewMsgEncounterDo(creator string, encounterId uint64) *MsgEncounterDo { +func NewMsgEncounterDo(creator string, encounterId uint64, user string) *MsgEncounterDo { return &MsgEncounterDo{ Creator: creator, EncounterId: encounterId, + User: user, } } From 52f606038fe705a2623508bd95bb9ac29e1305f6 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Sun, 15 Dec 2024 15:35:49 +0100 Subject: [PATCH 18/20] fix(#237): Added names to encounters --- proto/cardchain/cardchain/encounters.proto | 1 + proto/cardchain/cardchain/tx.proto | 7 +- x/cardchain/client/cli/tx_encounter_create.go | 11 +- x/cardchain/types/encounters.pb.go | 100 +++-- x/cardchain/types/message_encounter_create.go | 9 +- x/cardchain/types/tx.pb.go | 408 ++++++++++-------- 6 files changed, 323 insertions(+), 213 deletions(-) diff --git a/proto/cardchain/cardchain/encounters.proto b/proto/cardchain/cardchain/encounters.proto index ea320498..49d426d0 100644 --- a/proto/cardchain/cardchain/encounters.proto +++ b/proto/cardchain/cardchain/encounters.proto @@ -12,6 +12,7 @@ message Encounter { string owner = 4; map parameters = 5; uint64 imageId = 6; + string name = 7; } message EncounterWithImage { diff --git a/proto/cardchain/cardchain/tx.proto b/proto/cardchain/cardchain/tx.proto index ac74866a..717a42b0 100644 --- a/proto/cardchain/cardchain/tx.proto +++ b/proto/cardchain/cardchain/tx.proto @@ -441,9 +441,10 @@ message MsgBuyCardScheme { message MsgEncounterCreate { string creator = 1; - repeated uint64 Drawlist = 2; - map parameters = 3; - bytes image = 4; + string name = 2; + repeated uint64 Drawlist = 3; + map parameters = 4; + bytes image = 5; } message MsgEncounterCreateResponse {} diff --git a/x/cardchain/client/cli/tx_encounter_create.go b/x/cardchain/client/cli/tx_encounter_create.go index 1b24b3a3..69d6135a 100644 --- a/x/cardchain/client/cli/tx_encounter_create.go +++ b/x/cardchain/client/cli/tx_encounter_create.go @@ -15,18 +15,18 @@ var _ = strconv.Itoa(0) func CmdEncounterCreate() *cobra.Command { cmd := &cobra.Command{ - Use: "encounter-create [drawlist] [parameters] [image]", + Use: "encounter-create [name] [drawlist] [parameters] [image]", Short: "Broadcast message EncounterCreate", - Args: cobra.ExactArgs(3), + Args: cobra.ExactArgs(4), RunE: func(cmd *cobra.Command, args []string) (err error) { var reqDrawlist []uint64 - err = json.Unmarshal([]byte(args[0]), &reqDrawlist) + err = json.Unmarshal([]byte(args[1]), &reqDrawlist) if err != nil { return err } var reqParameters map[string]string - err = json.Unmarshal([]byte(args[1]), &reqParameters) + err = json.Unmarshal([]byte(args[2]), &reqParameters) if err != nil { return err } @@ -38,9 +38,10 @@ func CmdEncounterCreate() *cobra.Command { msg := types.NewMsgEncounterCreate( clientCtx.GetFromAddress().String(), + args[0], reqDrawlist, reqParameters, - []byte(args[1]), + []byte(args[3]), ) if err := msg.ValidateBasic(); err != nil { return err diff --git a/x/cardchain/types/encounters.pb.go b/x/cardchain/types/encounters.pb.go index a0af9794..54f4a0fe 100644 --- a/x/cardchain/types/encounters.pb.go +++ b/x/cardchain/types/encounters.pb.go @@ -30,6 +30,7 @@ type Encounter struct { Owner string `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"` Parameters map[string]string `protobuf:"bytes,5,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` ImageId uint64 `protobuf:"varint,6,opt,name=imageId,proto3" json:"imageId,omitempty"` + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` } func (m *Encounter) Reset() { *m = Encounter{} } @@ -107,6 +108,13 @@ func (m *Encounter) GetImageId() uint64 { return 0 } +func (m *Encounter) GetName() string { + if m != nil { + return m.Name + } + return "" +} + type EncounterWithImage struct { Encounter *Encounter `protobuf:"bytes,1,opt,name=encounter,proto3" json:"encounter,omitempty"` Image []byte `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` @@ -170,30 +178,31 @@ func init() { } var fileDescriptor_bd29899b36e899bc = []byte{ - // 361 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xc1, 0x4a, 0xeb, 0x40, - 0x18, 0x85, 0x3b, 0x49, 0xdb, 0xdb, 0x4c, 0x2f, 0xf7, 0xca, 0x50, 0x64, 0xe8, 0x22, 0x84, 0xa2, - 0x90, 0x55, 0x22, 0x75, 0x53, 0x04, 0x41, 0x6c, 0x8b, 0x64, 0x23, 0x32, 0x1b, 0xc1, 0x95, 0xd3, - 0x64, 0x48, 0x83, 0x4d, 0x26, 0x4c, 0xa7, 0xad, 0xf5, 0x29, 0x7c, 0x04, 0x1f, 0xc7, 0x65, 0x97, - 0x2e, 0xa5, 0x7d, 0x11, 0xc9, 0xc4, 0x4e, 0x8b, 0x6e, 0x74, 0x77, 0x0e, 0xcc, 0x7f, 0xfe, 0xef, - 0x30, 0x3f, 0x3c, 0x0a, 0xa9, 0x88, 0xc2, 0x31, 0x4d, 0x32, 0x7f, 0xa7, 0x58, 0x16, 0xf2, 0x59, - 0x26, 0x99, 0x98, 0x7a, 0xb9, 0xe0, 0x92, 0xa3, 0xe3, 0x01, 0x0b, 0x59, 0x26, 0x05, 0x9d, 0xf4, - 0xa9, 0x88, 0xae, 0x68, 0xca, 0x3c, 0xfd, 0x7a, 0xa7, 0xda, 0xad, 0x98, 0xc7, 0x5c, 0x4d, 0xf8, - 0x85, 0x2a, 0x87, 0x3b, 0x2f, 0x06, 0xb4, 0x86, 0xdb, 0x44, 0xf4, 0x0f, 0x1a, 0x41, 0x84, 0x81, - 0x03, 0xdc, 0x2a, 0x31, 0x82, 0x08, 0xb5, 0x61, 0x63, 0x20, 0xe8, 0x62, 0x92, 0x4c, 0x25, 0x36, - 0x1c, 0xd3, 0xad, 0x12, 0xed, 0xd1, 0x21, 0xac, 0xe7, 0x82, 0xcf, 0x59, 0x86, 0x4d, 0x07, 0xb8, - 0x0d, 0xf2, 0xe9, 0x50, 0x0b, 0xd6, 0xf8, 0x22, 0x63, 0x02, 0x57, 0x1d, 0xe0, 0x5a, 0xa4, 0x34, - 0xe8, 0x1e, 0xc2, 0x9c, 0x0a, 0x9a, 0xb2, 0x02, 0x1c, 0xd7, 0x1c, 0xd3, 0x6d, 0x76, 0x2f, 0xbc, - 0x1f, 0x91, 0x7b, 0x9a, 0xcf, 0xbb, 0xd1, 0x11, 0xc3, 0x4c, 0x8a, 0x25, 0xd9, 0xcb, 0x44, 0x18, - 0xfe, 0x49, 0x52, 0x1a, 0xb3, 0x20, 0xc2, 0x75, 0x55, 0x60, 0x6b, 0xdb, 0xe7, 0xf0, 0xff, 0x97, - 0x41, 0x74, 0x00, 0xcd, 0x07, 0xb6, 0x54, 0x4d, 0x2d, 0x52, 0xc8, 0x02, 0x7b, 0x4e, 0x27, 0x33, - 0x86, 0x8d, 0x12, 0x5b, 0x99, 0x33, 0xa3, 0x07, 0x3a, 0x4f, 0x10, 0x69, 0x82, 0xdb, 0x44, 0x8e, - 0x83, 0x22, 0x16, 0x5d, 0x43, 0x4b, 0xff, 0x84, 0xca, 0x69, 0x76, 0x4f, 0x7e, 0xdb, 0x87, 0xec, - 0x22, 0x8a, 0xfd, 0x8a, 0x57, 0xed, 0xff, 0x4b, 0x4a, 0x73, 0x49, 0x5e, 0xd7, 0x36, 0x58, 0xad, - 0x6d, 0xf0, 0xbe, 0xb6, 0xc1, 0xf3, 0xc6, 0xae, 0xac, 0x36, 0x76, 0xe5, 0x6d, 0x63, 0x57, 0xee, - 0x7a, 0x71, 0x22, 0xc7, 0xb3, 0x91, 0x17, 0xf2, 0xd4, 0xff, 0xb6, 0xd6, 0xef, 0xeb, 0x73, 0x79, - 0xdc, 0x3b, 0x1d, 0xb9, 0xcc, 0xd9, 0x74, 0x54, 0x57, 0x3f, 0x7f, 0xfa, 0x11, 0x00, 0x00, 0xff, - 0xff, 0x7d, 0x1a, 0x79, 0x21, 0x5e, 0x02, 0x00, 0x00, + // 371 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x52, 0xcf, 0x6a, 0xe2, 0x40, + 0x1c, 0x76, 0x92, 0xf8, 0x27, 0xe3, 0xb2, 0xbb, 0x0c, 0xb2, 0x0c, 0x1e, 0x42, 0x90, 0x5d, 0xc8, + 0x29, 0x59, 0xdc, 0x8b, 0x2c, 0x14, 0x4a, 0x55, 0x4a, 0x2e, 0xa5, 0xcc, 0xa5, 0xd0, 0x53, 0xc7, + 0x64, 0x88, 0xa1, 0x66, 0x26, 0x8c, 0xa3, 0xd6, 0x3e, 0x45, 0x1f, 0xa6, 0x0f, 0xd1, 0xa3, 0xc7, + 0x1e, 0x8b, 0xbe, 0x48, 0xc9, 0xa4, 0x46, 0x69, 0x2f, 0xed, 0xed, 0xfb, 0x60, 0x7e, 0xdf, 0x1f, + 0xe6, 0x83, 0xbf, 0x23, 0x2a, 0xe3, 0x68, 0x4a, 0x53, 0x1e, 0x1c, 0x10, 0xe3, 0x91, 0x58, 0x70, + 0xc5, 0xe4, 0xdc, 0xcf, 0xa5, 0x50, 0x02, 0xfd, 0x19, 0xb1, 0x88, 0x71, 0x25, 0xe9, 0x6c, 0x48, + 0x65, 0x7c, 0x4e, 0x33, 0xe6, 0x57, 0xaf, 0x0f, 0xa8, 0xdb, 0x49, 0x44, 0x22, 0xf4, 0x45, 0x50, + 0xa0, 0xf2, 0xb8, 0xf7, 0x68, 0x40, 0x7b, 0xbc, 0x57, 0x44, 0xdf, 0xa1, 0x11, 0xc6, 0x18, 0xb8, + 0xc0, 0xb3, 0x88, 0x11, 0xc6, 0xa8, 0x0b, 0x5b, 0x23, 0x49, 0x57, 0xb3, 0x74, 0xae, 0xb0, 0xe1, + 0x9a, 0x9e, 0x45, 0x2a, 0x8e, 0x7e, 0xc1, 0x46, 0x2e, 0xc5, 0x92, 0x71, 0x6c, 0xba, 0xc0, 0x6b, + 0x91, 0x37, 0x86, 0x3a, 0xb0, 0x2e, 0x56, 0x9c, 0x49, 0x6c, 0xb9, 0xc0, 0xb3, 0x49, 0x49, 0xd0, + 0x0d, 0x84, 0x39, 0x95, 0x34, 0x63, 0x45, 0x70, 0x5c, 0x77, 0x4d, 0xaf, 0xdd, 0x3f, 0xf5, 0x3f, + 0x95, 0xdc, 0xaf, 0xf2, 0xf9, 0x97, 0x95, 0xc4, 0x98, 0x2b, 0xb9, 0x26, 0x47, 0x9a, 0x08, 0xc3, + 0x66, 0x9a, 0xd1, 0x84, 0x85, 0x31, 0x6e, 0xe8, 0x02, 0x7b, 0x8a, 0x10, 0xb4, 0x38, 0xcd, 0x18, + 0x6e, 0xea, 0x40, 0x1a, 0x77, 0x4f, 0xe0, 0x8f, 0x77, 0x62, 0xe8, 0x27, 0x34, 0x6f, 0xd9, 0x5a, + 0xb7, 0xb7, 0x49, 0x01, 0x8b, 0x2a, 0x4b, 0x3a, 0x5b, 0x30, 0x6c, 0x94, 0x55, 0x34, 0xf9, 0x6f, + 0x0c, 0x40, 0xef, 0x1e, 0xa2, 0x2a, 0xd5, 0x55, 0xaa, 0xa6, 0x61, 0x61, 0x85, 0x2e, 0xa0, 0x5d, + 0xfd, 0x8e, 0xd6, 0x69, 0xf7, 0xff, 0x7e, 0xb5, 0x23, 0x39, 0x48, 0x14, 0xfe, 0xba, 0x83, 0xf6, + 0xff, 0x46, 0x4a, 0x72, 0x46, 0x9e, 0xb6, 0x0e, 0xd8, 0x6c, 0x1d, 0xf0, 0xb2, 0x75, 0xc0, 0xc3, + 0xce, 0xa9, 0x6d, 0x76, 0x4e, 0xed, 0x79, 0xe7, 0xd4, 0xae, 0x07, 0x49, 0xaa, 0xa6, 0x8b, 0x89, + 0x1f, 0x89, 0x2c, 0xf8, 0x60, 0x1b, 0x0c, 0xab, 0x09, 0xdd, 0x1d, 0xcd, 0x49, 0xad, 0x73, 0x36, + 0x9f, 0x34, 0xf4, 0x1a, 0xfe, 0xbd, 0x06, 0x00, 0x00, 0xff, 0xff, 0x4a, 0xed, 0xc1, 0xe3, 0x72, + 0x02, 0x00, 0x00, } func (m *Encounter) Marshal() (dAtA []byte, err error) { @@ -216,6 +225,13 @@ func (m *Encounter) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintEncounters(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x3a + } if m.ImageId != 0 { i = encodeVarintEncounters(dAtA, i, uint64(m.ImageId)) i-- @@ -370,6 +386,10 @@ func (m *Encounter) Size() (n int) { if m.ImageId != 0 { n += 1 + sovEncounters(uint64(m.ImageId)) } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovEncounters(uint64(l)) + } return n } @@ -718,6 +738,38 @@ func (m *Encounter) Unmarshal(dAtA []byte) error { break } } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounters + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEncounters + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEncounters + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEncounters(dAtA[iNdEx:]) diff --git a/x/cardchain/types/message_encounter_create.go b/x/cardchain/types/message_encounter_create.go index 43691e0b..fa21cc8e 100644 --- a/x/cardchain/types/message_encounter_create.go +++ b/x/cardchain/types/message_encounter_create.go @@ -12,9 +12,10 @@ const TypeMsgEncounterCreate = "encounter_create" var _ sdk.Msg = &MsgEncounterCreate{} -func NewMsgEncounterCreate(creator string, drawlist []uint64, parameters map[string]string, image []byte) *MsgEncounterCreate { +func NewMsgEncounterCreate(creator string, name string, drawlist []uint64, parameters map[string]string, image []byte) *MsgEncounterCreate { return &MsgEncounterCreate{ Creator: creator, + Name: name, Drawlist: drawlist, Parameters: parameters, Image: image, @@ -49,7 +50,11 @@ func (msg *MsgEncounterCreate) ValidateBasic() error { } if len(msg.Drawlist) != 40 { - return sdkerrors.Wrapf(ErrInvalidData, "drawlist too long, must be 40 is '%d'", len(msg.Drawlist)) + return sdkerrors.Wrapf(ErrInvalidData, "invalid drawlist length, must be 40 is '%d'", len(msg.Drawlist)) + } + + if msg.Name == "" { + return sdkerrors.Wrap(ErrInvalidData, "encounter needs a name") } if len(msg.Image) > ArtworkMaxSize { diff --git a/x/cardchain/types/tx.pb.go b/x/cardchain/types/tx.pb.go index 4ad65537..cdeb4a7e 100644 --- a/x/cardchain/types/tx.pb.go +++ b/x/cardchain/types/tx.pb.go @@ -4232,9 +4232,10 @@ var xxx_messageInfo_MsgConnectZealyAccountResponse proto.InternalMessageInfo type MsgEncounterCreate struct { Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` - Drawlist []uint64 `protobuf:"varint,2,rep,packed,name=Drawlist,proto3" json:"Drawlist,omitempty"` - Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Image []byte `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Drawlist []uint64 `protobuf:"varint,3,rep,packed,name=Drawlist,proto3" json:"Drawlist,omitempty"` + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Image []byte `protobuf:"bytes,5,opt,name=image,proto3" json:"image,omitempty"` } func (m *MsgEncounterCreate) Reset() { *m = MsgEncounterCreate{} } @@ -4277,6 +4278,13 @@ func (m *MsgEncounterCreate) GetCreator() string { return "" } +func (m *MsgEncounterCreate) GetName() string { + if m != nil { + return m.Name + } + return "" +} + func (m *MsgEncounterCreate) GetDrawlist() []uint64 { if m != nil { return m.Drawlist @@ -4635,178 +4643,177 @@ func init() { func init() { proto.RegisterFile("cardchain/cardchain/tx.proto", fileDescriptor_3b4a3aba0ac94bc8) } var fileDescriptor_3b4a3aba0ac94bc8 = []byte{ - // 2722 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5b, 0x5f, 0x6f, 0x1d, 0x47, - 0x15, 0xf7, 0xfa, 0xda, 0x8e, 0x3d, 0x4e, 0xdd, 0x66, 0xeb, 0xa6, 0x37, 0xdb, 0xd4, 0x76, 0x97, - 0xb6, 0xe4, 0x85, 0x6b, 0xe2, 0xfc, 0xb3, 0x13, 0x4c, 0x7a, 0xff, 0x38, 0x69, 0x08, 0x6e, 0xc2, - 0x75, 0xda, 0xd2, 0x50, 0x01, 0xeb, 0xbd, 0xe3, 0xeb, 0x95, 0xef, 0xdd, 0xb9, 0xcc, 0xee, 0xb5, - 0x7b, 0x23, 0x21, 0x21, 0x21, 0x21, 0x8a, 0x22, 0x40, 0x08, 0x24, 0x04, 0x12, 0x0a, 0x0f, 0xbc, - 0x54, 0xe2, 0x0d, 0x89, 0xaf, 0xd0, 0xc7, 0x3e, 0x21, 0xc4, 0x43, 0x41, 0xc9, 0x0b, 0x1f, 0x81, - 0x47, 0xb4, 0x67, 0x66, 0x67, 0x67, 0xf6, 0xee, 0x5d, 0xdf, 0x59, 0x47, 0xaa, 0xd4, 0x3b, 0xb3, - 0xf3, 0x3b, 0xe7, 0xcc, 0xcc, 0x99, 0x39, 0xe7, 0xcc, 0x2f, 0x46, 0xe7, 0x5d, 0x87, 0xb6, 0xdc, - 0x7d, 0xc7, 0xf3, 0x57, 0x93, 0x5f, 0xe1, 0x27, 0x95, 0x1e, 0x25, 0x21, 0x31, 0xdf, 0x6a, 0x60, - 0x17, 0xfb, 0x21, 0x75, 0x3a, 0x75, 0x87, 0xb6, 0x6e, 0x3b, 0x5d, 0x5c, 0x11, 0xa3, 0x92, 0x5f, - 0xd6, 0x62, 0x9b, 0xb4, 0x09, 0x20, 0x56, 0xa3, 0x5f, 0x0c, 0x6c, 0xbd, 0x91, 0x25, 0xda, 0x25, - 0x7d, 0xdf, 0xf5, 0x3a, 0x7c, 0xc8, 0x72, 0xd6, 0x90, 0xae, 0x13, 0xba, 0xfb, 0x7c, 0xc0, 0x4a, - 0xd6, 0x80, 0x43, 0x12, 0x7a, 0x7e, 0x9b, 0x8f, 0x58, 0xca, 0xd4, 0xe2, 0xd0, 0x96, 0xf8, 0x4e, - 0x82, 0x2e, 0x09, 0x56, 0x77, 0x9d, 0x00, 0xaf, 0x1e, 0x5e, 0xdc, 0xc5, 0xa1, 0x73, 0x71, 0xd5, - 0x25, 0x9e, 0xcf, 0xbe, 0xdb, 0x1f, 0xa1, 0x17, 0xb6, 0x83, 0x76, 0x9d, 0x62, 0x27, 0xc4, 0xfd, - 0x00, 0x53, 0xb3, 0x8c, 0x4e, 0xb9, 0x51, 0x8b, 0xd0, 0xb2, 0xb1, 0x62, 0x5c, 0x98, 0x6b, 0xc6, - 0xcd, 0xe8, 0x8b, 0x8f, 0x8f, 0xde, 0x0f, 0x30, 0x2d, 0x4f, 0xb2, 0x2f, 0xbc, 0x69, 0x2e, 0xa2, - 0x69, 0xa7, 0xe3, 0x39, 0x41, 0xb9, 0x04, 0xfd, 0xac, 0x61, 0xbf, 0x8a, 0x5e, 0x51, 0x44, 0x37, - 0x71, 0xd0, 0x23, 0x7e, 0x80, 0xed, 0xdf, 0x1a, 0xe8, 0xa5, 0xed, 0xa0, 0x5d, 0xeb, 0x0f, 0xa2, - 0x65, 0xdd, 0x71, 0xf7, 0x71, 0x17, 0xe7, 0xe8, 0xfd, 0x18, 0x95, 0x76, 0xbd, 0x16, 0xe8, 0x9c, - 0x5f, 0x3b, 0x57, 0x61, 0x13, 0xaa, 0x44, 0x13, 0xaa, 0xf0, 0x09, 0x55, 0xea, 0xc4, 0xf3, 0x6b, - 0xab, 0x9f, 0x7f, 0xb9, 0x3c, 0xf1, 0xd9, 0xbf, 0x97, 0xbf, 0xda, 0xf6, 0xc2, 0xfd, 0xfe, 0x6e, - 0xc5, 0x25, 0xdd, 0x55, 0x3e, 0x7b, 0xf6, 0xbf, 0xaf, 0x05, 0xad, 0x83, 0xd5, 0x70, 0xd0, 0xc3, - 0x01, 0x00, 0x9a, 0x91, 0xd8, 0xeb, 0xb3, 0x3f, 0x7f, 0xb2, 0x3c, 0xf1, 0xdf, 0x27, 0xcb, 0x13, - 0xf6, 0x1a, 0x2a, 0xa7, 0xad, 0x8a, 0x4d, 0x36, 0xcf, 0xa2, 0x99, 0x68, 0x51, 0xef, 0xb4, 0xc0, - 0xb8, 0xa9, 0x26, 0x6f, 0xd9, 0x8f, 0x0d, 0x34, 0xbf, 0x1d, 0xb4, 0x3f, 0x20, 0x21, 0x8e, 0x50, - 0x39, 0xb3, 0x48, 0x24, 0x4c, 0xca, 0x12, 0xcc, 0xbb, 0x68, 0xf6, 0x90, 0x84, 0xf8, 0xc1, 0xa0, - 0x87, 0x61, 0xf9, 0x16, 0xd6, 0x56, 0x2b, 0x63, 0xb9, 0x5d, 0xe5, 0x03, 0x0e, 0x6b, 0x0a, 0x01, - 0xf6, 0x26, 0x7a, 0x59, 0xb2, 0x46, 0x58, 0xff, 0x36, 0x5a, 0x70, 0x3c, 0xda, 0xa2, 0xa4, 0x57, - 0xef, 0x38, 0x5e, 0x17, 0xb3, 0x59, 0xcc, 0x36, 0x53, 0xbd, 0xf6, 0xdf, 0x0c, 0x64, 0x6e, 0x07, - 0xed, 0x1d, 0xe7, 0x10, 0xf0, 0x75, 0xe2, 0x87, 0xd8, 0x0f, 0x0b, 0x4c, 0x2a, 0x42, 0x30, 0x30, - 0xcc, 0xe9, 0x74, 0x33, 0x6e, 0x46, 0xae, 0xe2, 0x93, 0x10, 0x07, 0xe5, 0x29, 0xe6, 0x2a, 0xd0, - 0x88, 0xe4, 0x38, 0x34, 0xf4, 0x82, 0xb0, 0x3c, 0x0d, 0xdd, 0xbc, 0x65, 0xbe, 0x89, 0x5e, 0xd8, - 0x75, 0x3a, 0x8e, 0xef, 0xe2, 0xaa, 0xef, 0xee, 0x13, 0x5a, 0x9e, 0x01, 0xbb, 0xd5, 0x4e, 0xbb, - 0x81, 0xac, 0x61, 0xab, 0xb5, 0x27, 0xff, 0x03, 0xf4, 0xe2, 0x76, 0xd0, 0x7e, 0x40, 0x1d, 0x3f, - 0xd8, 0xc3, 0xb4, 0xe0, 0x6e, 0x5a, 0x68, 0x96, 0x62, 0x17, 0x7b, 0x87, 0x98, 0xf2, 0x19, 0x8a, - 0xb6, 0x7d, 0x0e, 0xbd, 0x9a, 0x52, 0x20, 0x4e, 0xc4, 0x63, 0x03, 0x94, 0x37, 0x88, 0xef, 0x84, - 0xf8, 0x01, 0x29, 0xa8, 0xfc, 0x36, 0x9a, 0x71, 0xba, 0xa4, 0xcf, 0x17, 0x7d, 0x8e, 0x1d, 0x88, - 0x7f, 0x7d, 0x39, 0xfe, 0x81, 0xe0, 0x70, 0x6e, 0xa9, 0x6c, 0x8d, 0xb0, 0xf4, 0x47, 0x70, 0x5f, - 0x54, 0x5b, 0xad, 0x2a, 0x0d, 0x8f, 0x08, 0x3d, 0x28, 0x60, 0xe6, 0x22, 0x9a, 0xf6, 0xba, 0x4e, - 0x1b, 0x73, 0xd7, 0x60, 0x8d, 0x48, 0xce, 0x5e, 0xbf, 0xd3, 0xa9, 0xd2, 0x10, 0x16, 0x6e, 0xb6, - 0x19, 0x37, 0xf9, 0x3d, 0x92, 0xa8, 0x14, 0xb6, 0x7c, 0x0f, 0x16, 0xad, 0xbe, 0xef, 0xf8, 0x6d, - 0x5c, 0x65, 0x0e, 0x73, 0xbc, 0x35, 0x0d, 0xc5, 0x9a, 0x86, 0xe4, 0x7a, 0x25, 0xd9, 0xf5, 0xf8, - 0x1a, 0xc8, 0xc2, 0x85, 0xde, 0x8b, 0x60, 0x50, 0x13, 0xb7, 0xbd, 0x20, 0xc4, 0xf4, 0x16, 0xa1, - 0x75, 0x76, 0xab, 0x8f, 0xd6, 0x6e, 0x2f, 0xa3, 0xd7, 0x33, 0x21, 0x42, 0xe6, 0x3f, 0x0c, 0xb4, - 0x00, 0x23, 0x7a, 0x84, 0x86, 0xdb, 0x51, 0x08, 0xc8, 0xbf, 0x89, 0x21, 0x4a, 0x88, 0xa5, 0x8d, - 0x9b, 0xa6, 0x8d, 0x4e, 0xf7, 0x3a, 0xce, 0x00, 0xb7, 0xa2, 0x4d, 0x0b, 0xaa, 0xe5, 0xd2, 0x4a, - 0xe9, 0xc2, 0x54, 0x53, 0xe9, 0x4b, 0x8d, 0xa9, 0x95, 0xa7, 0x86, 0xc6, 0xd4, 0xcc, 0x77, 0xd1, - 0x29, 0xd2, 0x0f, 0x5d, 0xd2, 0xc5, 0x70, 0x22, 0x17, 0xd6, 0x2a, 0x63, 0x5e, 0x4a, 0xf7, 0x18, - 0xaa, 0x19, 0xc3, 0xed, 0x35, 0x74, 0x56, 0x9d, 0x97, 0x38, 0x98, 0xd2, 0x2c, 0x0c, 0x65, 0x16, - 0xf6, 0x7b, 0x80, 0xa9, 0xf6, 0x88, 0xe7, 0xc7, 0x98, 0x08, 0x9e, 0x1b, 0x9d, 0xe0, 0xe4, 0xb1, - 0x51, 0x3c, 0x3c, 0x89, 0xb6, 0xbd, 0x82, 0x96, 0xb2, 0xe5, 0x89, 0xe5, 0xff, 0x83, 0x81, 0x4e, - 0x8b, 0x60, 0xb5, 0x83, 0xf3, 0x1c, 0xc9, 0x44, 0x53, 0xbe, 0xd3, 0xc5, 0x5c, 0x09, 0xfc, 0x1e, - 0xe5, 0x44, 0xe6, 0x0a, 0x9a, 0x0f, 0x42, 0x42, 0x07, 0x1f, 0x52, 0x2f, 0x14, 0x37, 0x82, 0xdc, - 0x15, 0x6d, 0x46, 0x74, 0x35, 0x52, 0x6f, 0xb7, 0x1f, 0x12, 0x1a, 0x94, 0xa7, 0x57, 0x4a, 0x17, - 0xe6, 0x9a, 0x4a, 0x9f, 0x7d, 0x16, 0x2d, 0xca, 0xb6, 0x09, 0xa3, 0x3f, 0x02, 0xff, 0xaf, 0xb6, - 0x60, 0xd3, 0x1e, 0x90, 0x7c, 0xb3, 0x17, 0xd1, 0x74, 0x80, 0x43, 0xe1, 0x31, 0xac, 0x21, 0x9d, - 0xd1, 0x92, 0x12, 0xd7, 0x98, 0xf7, 0xcb, 0xa2, 0x85, 0xd6, 0x77, 0xc0, 0x51, 0x6f, 0x79, 0xbe, - 0xd3, 0xf1, 0x1e, 0xe1, 0x02, 0x4a, 0xed, 0x32, 0x6c, 0xaf, 0x24, 0x41, 0xc8, 0xae, 0xa3, 0x33, - 0x2c, 0x04, 0xd7, 0x08, 0x89, 0x0e, 0xca, 0x7d, 0xc7, 0x3d, 0xd0, 0x16, 0x5f, 0x47, 0xe7, 0x86, - 0x84, 0x68, 0x47, 0x83, 0xef, 0xc3, 0x9a, 0x37, 0x71, 0x97, 0xb0, 0xa8, 0x72, 0x8b, 0x92, 0xee, - 0xf3, 0x5c, 0xe0, 0x25, 0x74, 0x3e, 0x4b, 0xbe, 0x58, 0x09, 0x07, 0xbd, 0x96, 0x7c, 0x4f, 0x9c, - 0xa1, 0xa8, 0x19, 0x26, 0x9a, 0x8a, 0x52, 0x30, 0xee, 0x9e, 0xf0, 0xdb, 0x7e, 0x0b, 0x7d, 0x25, - 0x47, 0x85, 0xb0, 0xe4, 0x63, 0x76, 0x18, 0x5b, 0x2d, 0x69, 0x4c, 0x31, 0x67, 0xcb, 0x32, 0x82, - 0x1f, 0xcd, 0x61, 0xe9, 0x42, 0xff, 0xa7, 0x2c, 0x29, 0x89, 0xdd, 0xbf, 0xd3, 0xb9, 0xb7, 0xb7, - 0x97, 0x7b, 0x13, 0x98, 0x68, 0x2a, 0x5a, 0x64, 0xae, 0x1b, 0x7e, 0x9b, 0x5b, 0x68, 0xba, 0x47, - 0x3d, 0x17, 0x17, 0x8d, 0x8c, 0x0c, 0x6d, 0x9f, 0x87, 0x4c, 0x23, 0x65, 0x8a, 0xb0, 0xf4, 0x5d, - 0x84, 0x92, 0x04, 0x32, 0xc7, 0xc0, 0xe8, 0x56, 0x88, 0xc1, 0x62, 0x8d, 0xe4, 0x2e, 0x7b, 0x11, - 0xa6, 0xcc, 0x25, 0x09, 0xf9, 0xf7, 0xa1, 0x97, 0x6d, 0xd8, 0x38, 0x0b, 0x71, 0xbc, 0x1e, 0x36, - 0x9f, 0x94, 0x44, 0xa1, 0xef, 0x21, 0xe8, 0x4b, 0x02, 0x6f, 0xb1, 0x5d, 0xcf, 0x0c, 0xf7, 0x5c, - 0x73, 0x4a, 0xb6, 0xd0, 0xfc, 0x5d, 0x28, 0x10, 0xaa, 0xad, 0xd6, 0x4e, 0x74, 0x55, 0x16, 0xd6, - 0x0b, 0x17, 0x6d, 0x5c, 0x94, 0x40, 0xc3, 0xb6, 0x20, 0xc9, 0x57, 0x24, 0x0b, 0xad, 0x7f, 0x61, - 0x75, 0xc9, 0x0e, 0x0e, 0x61, 0xd9, 0x1d, 0xea, 0x85, 0x83, 0x62, 0xf9, 0x0d, 0x33, 0xa7, 0x24, - 0x9b, 0x73, 0x07, 0xcd, 0x50, 0x90, 0x08, 0x51, 0x60, 0x61, 0xed, 0xe2, 0x98, 0x01, 0x35, 0x31, - 0xa5, 0xc9, 0x05, 0xf0, 0x39, 0x28, 0x66, 0x8a, 0x39, 0x34, 0x60, 0x0a, 0xcc, 0x43, 0x8f, 0x4d, - 0x4b, 0x46, 0x4d, 0x81, 0x6b, 0x50, 0xa4, 0x08, 0x0d, 0xbf, 0x34, 0xd8, 0x47, 0xd2, 0xed, 0x7a, - 0x61, 0xea, 0xe3, 0x71, 0xf1, 0x99, 0x8d, 0x4a, 0xe2, 0x33, 0x47, 0x9d, 0x47, 0x73, 0xbc, 0x30, - 0x16, 0xab, 0x96, 0x74, 0x98, 0x4b, 0x08, 0x05, 0xfd, 0x76, 0x1b, 0x07, 0xa1, 0x47, 0x7c, 0x1e, - 0x43, 0xa5, 0x1e, 0xdb, 0x46, 0x2b, 0xa3, 0xec, 0x11, 0x46, 0xff, 0x9d, 0x19, 0xdd, 0xc4, 0x87, - 0xd8, 0xe9, 0x8c, 0x6f, 0xf4, 0xdd, 0x94, 0xd1, 0xe3, 0x17, 0x67, 0xc2, 0x82, 0x64, 0x96, 0x67, - 0xd1, 0x4c, 0x80, 0x5d, 0x8a, 0x45, 0x92, 0xc0, 0x5a, 0xea, 0xec, 0xa7, 0x52, 0xb3, 0xe7, 0xb3, - 0xcb, 0x34, 0x5c, 0xcc, 0xee, 0x2e, 0x84, 0xcd, 0x26, 0x0e, 0x42, 0x87, 0x86, 0xc7, 0xef, 0xba, - 0xa2, 0x70, 0x32, 0xad, 0xf0, 0x35, 0x08, 0x9f, 0xaa, 0x30, 0xa1, 0x69, 0x9d, 0x87, 0xad, 0x23, - 0x72, 0x90, 0x38, 0x46, 0x94, 0xd4, 0x52, 0x27, 0xda, 0x8b, 0x9c, 0x0c, 0xf8, 0x6d, 0xf4, 0x66, - 0x1e, 0x52, 0x68, 0x78, 0xca, 0x4a, 0xa1, 0x3a, 0xf1, 0xf7, 0x3c, 0xda, 0x2d, 0x9e, 0x09, 0x4b, - 0x19, 0x6c, 0xe9, 0x44, 0x19, 0xac, 0xf9, 0x1d, 0x84, 0xa2, 0x02, 0x9b, 0xa5, 0xc6, 0x90, 0x2d, - 0xcf, 0x8f, 0x7d, 0x7a, 0x77, 0x3c, 0xbf, 0xdd, 0xc1, 0x51, 0x41, 0xde, 0x94, 0x84, 0xc4, 0xc5, - 0x85, 0x34, 0x47, 0x31, 0xff, 0x2d, 0xd8, 0xcb, 0x1d, 0x1c, 0xde, 0xa7, 0x64, 0xcf, 0xeb, 0x14, - 0x7c, 0x56, 0xe0, 0xbb, 0xa8, 0x8a, 0x11, 0x3a, 0x1e, 0xc0, 0xc5, 0x7e, 0xaf, 0x87, 0xfd, 0xf1, - 0xf2, 0xac, 0xa8, 0x0c, 0x4f, 0x06, 0x0a, 0x5d, 0x6a, 0xa7, 0x7d, 0x15, 0xae, 0xf4, 0x94, 0x54, - 0xe5, 0x90, 0x81, 0x69, 0x41, 0xd9, 0x80, 0x82, 0x23, 0x6e, 0xda, 0x21, 0x24, 0x18, 0x71, 0x5d, - 0xfc, 0x1c, 0x2d, 0x52, 0xaa, 0xf1, 0x52, 0xaa, 0x1a, 0x67, 0x89, 0x47, 0x86, 0x56, 0xb1, 0x4a, - 0xfb, 0x90, 0x02, 0xee, 0xe0, 0x30, 0xfa, 0x4f, 0x4a, 0xd9, 0x75, 0x03, 0x51, 0xaa, 0x08, 0x28, - 0x0d, 0x15, 0x01, 0x3c, 0x19, 0x1c, 0xd2, 0x94, 0x4a, 0xf4, 0xd9, 0xf7, 0x63, 0x0b, 0xdd, 0x91, - 0x79, 0x68, 0x4e, 0x99, 0x2b, 0x8b, 0x16, 0x5a, 0x6f, 0xc7, 0x9e, 0xf8, 0x7e, 0x80, 0xe9, 0x87, - 0x78, 0x37, 0xf0, 0x42, 0x9c, 0x7f, 0x14, 0x8f, 0xd8, 0xa0, 0xf8, 0x79, 0x90, 0x37, 0x13, 0x5f, - 0x94, 0x04, 0x09, 0x2d, 0xdb, 0xf0, 0x64, 0xc5, 0x3f, 0xd6, 0x3c, 0xd2, 0xa6, 0x4e, 0x6f, 0x7f, - 0x90, 0x7f, 0x7b, 0xed, 0xc6, 0xc3, 0xb8, 0xa6, 0xa4, 0xc3, 0x7e, 0x1d, 0xf2, 0xe6, 0xb4, 0x38, - 0xa1, 0xad, 0x0f, 0xe1, 0x71, 0xbb, 0xdf, 0x09, 0xbd, 0x31, 0xde, 0xec, 0x6e, 0xa3, 0xe9, 0x43, - 0x78, 0xac, 0x9a, 0x2c, 0x7a, 0xe8, 0x19, 0x9e, 0xc7, 0x53, 0x45, 0xad, 0x30, 0xe9, 0x09, 0x2b, - 0x3d, 0xa3, 0x73, 0x33, 0xc6, 0x6d, 0x07, 0x55, 0x3a, 0xad, 0xc6, 0x4b, 0xcc, 0x9b, 0xc9, 0x97, - 0x1a, 0xdf, 0xdf, 0xb8, 0x19, 0x79, 0x1f, 0x1f, 0xd4, 0xc0, 0xee, 0x01, 0x2f, 0xf6, 0xe5, 0xae, - 0x64, 0x44, 0x0d, 0x46, 0x4c, 0xcb, 0x23, 0xa0, 0xcb, 0xfe, 0x3a, 0x9c, 0x04, 0x61, 0xe1, 0x18, - 0x15, 0xfc, 0x0e, 0x3c, 0x13, 0x31, 0xb7, 0x7a, 0xcf, 0xc9, 0x7d, 0xde, 0x1d, 0x59, 0x2b, 0x40, - 0x95, 0x5d, 0x4a, 0xaa, 0x6c, 0xfe, 0x10, 0x94, 0x08, 0x4d, 0x95, 0xa4, 0xfc, 0xad, 0xa6, 0xe3, - 0x39, 0x41, 0xbe, 0x3a, 0xf6, 0x56, 0x3d, 0x29, 0xbf, 0x55, 0xb3, 0x92, 0x54, 0x92, 0x20, 0x25, - 0x54, 0xd1, 0xdc, 0xef, 0xf8, 0x87, 0x5e, 0x88, 0xb7, 0x1c, 0xda, 0x19, 0x54, 0x5d, 0x17, 0x07, - 0x41, 0x7e, 0xfd, 0xd1, 0x4f, 0x1e, 0xc9, 0x59, 0x99, 0xc3, 0x4e, 0xf8, 0x90, 0x14, 0xe9, 0xac, - 0xc1, 0x8b, 0x9b, 0x17, 0x78, 0x27, 0x54, 0xf4, 0x06, 0x5a, 0x1e, 0x21, 0x48, 0xe8, 0xfa, 0x36, - 0x9b, 0x2b, 0xf1, 0x7d, 0xec, 0x86, 0x0f, 0xb1, 0x03, 0x03, 0x48, 0x3f, 0xf7, 0xa1, 0xb7, 0x8c, - 0x4e, 0x3d, 0x8a, 0x46, 0xf2, 0x6d, 0x9a, 0x6b, 0xc6, 0x4d, 0x7e, 0x8f, 0x66, 0x48, 0x13, 0xfa, - 0x7e, 0x31, 0x09, 0xe1, 0x66, 0xcb, 0x87, 0x6e, 0x4c, 0x59, 0x5a, 0x99, 0x9f, 0x2a, 0x36, 0xa8, - 0x73, 0xd4, 0x89, 0x6e, 0xab, 0x49, 0xf0, 0x46, 0xd1, 0x36, 0x3d, 0x84, 0x7a, 0x0e, 0x75, 0xba, - 0x38, 0xc4, 0x34, 0x80, 0xe7, 0xad, 0xf9, 0xb5, 0x3b, 0x63, 0x9e, 0xcb, 0x61, 0x23, 0x2a, 0xf7, - 0x85, 0xac, 0x2d, 0x3f, 0xa4, 0x83, 0xa6, 0x24, 0x3c, 0x29, 0x5c, 0xa6, 0xa4, 0xc2, 0xc5, 0xda, - 0x44, 0x2f, 0xa6, 0x40, 0xe6, 0x4b, 0xa8, 0x74, 0x80, 0x07, 0x7c, 0x16, 0xd1, 0xcf, 0x08, 0x7a, - 0xe8, 0x74, 0xfa, 0xf1, 0x4d, 0xc8, 0x1a, 0xd7, 0x27, 0xd7, 0x0d, 0x5e, 0xf7, 0xa4, 0xcc, 0x10, - 0x4b, 0xf5, 0x43, 0x70, 0x64, 0xf1, 0xb5, 0x41, 0xf2, 0xab, 0x3b, 0x1c, 0x0f, 0x4c, 0xaa, 0x3b, - 0xa9, 0x2b, 0xb3, 0xde, 0x66, 0x8e, 0x2e, 0x69, 0x90, 0xae, 0xc6, 0x33, 0x8a, 0x65, 0x1d, 0x92, - 0x9b, 0x1a, 0x17, 0x52, 0x1f, 0x2d, 0xd5, 0x11, 0x4f, 0xe2, 0x67, 0x9b, 0xd1, 0x4f, 0x1e, 0x1c, - 0x54, 0xb5, 0xb1, 0x4d, 0x6b, 0xff, 0xbb, 0x8c, 0x4a, 0xdb, 0x41, 0xdb, 0xfc, 0x89, 0x81, 0x90, - 0xc4, 0x51, 0x5d, 0x1e, 0x7f, 0xc3, 0x13, 0x94, 0xf5, 0x8d, 0x22, 0x28, 0x71, 0xd7, 0x7d, 0x6a, - 0xa0, 0x17, 0x54, 0xc6, 0xea, 0xda, 0xf8, 0xf2, 0x14, 0xa0, 0x75, 0xb3, 0x20, 0x50, 0xd8, 0xf2, - 0x08, 0xcd, 0x8a, 0xe8, 0xb5, 0x36, 0xbe, 0xb0, 0x18, 0x63, 0x5d, 0xd7, 0xc7, 0x08, 0xdd, 0xbf, - 0x32, 0xd0, 0x8b, 0x69, 0x82, 0x68, 0x63, 0x7c, 0x79, 0x29, 0xa8, 0x55, 0x2d, 0x0c, 0x15, 0x16, - 0xfd, 0xcc, 0x40, 0xa7, 0x15, 0xda, 0xe6, 0xea, 0xf8, 0x32, 0x65, 0x9c, 0xf5, 0xcd, 0x62, 0x38, - 0xc5, 0x10, 0x85, 0xc2, 0xd1, 0x30, 0x44, 0xc6, 0xe9, 0x18, 0x92, 0x45, 0xd2, 0xc0, 0x71, 0x91, - 0x28, 0x1a, 0x8d, 0xe3, 0x92, 0xa0, 0x74, 0x8e, 0xcb, 0x30, 0x37, 0x03, 0x6b, 0xa1, 0x30, 0x33, - 0x1a, 0x6b, 0x21, 0xe3, 0x74, 0xd6, 0x22, 0x8b, 0xac, 0x31, 0x7f, 0x6f, 0x20, 0x33, 0x83, 0xaa, - 0xd1, 0x98, 0xdd, 0x30, 0xda, 0x6a, 0x9c, 0x04, 0x2d, 0x4c, 0xfb, 0xa9, 0x81, 0xe6, 0x65, 0xc2, - 0xe7, 0x8a, 0x8e, 0x54, 0x01, 0xb3, 0x36, 0x0b, 0xc1, 0x84, 0x15, 0x7f, 0x34, 0xd0, 0xcb, 0x59, - 0x54, 0x8b, 0x86, 0xd8, 0x0c, 0xb8, 0xb5, 0x75, 0x22, 0xb8, 0xb0, 0xee, 0xc7, 0x68, 0x2e, 0x21, - 0x65, 0x2e, 0xe9, 0xde, 0xe0, 0x3b, 0x38, 0xb4, 0x6e, 0x14, 0x00, 0x29, 0x6e, 0xac, 0x10, 0x2c, - 0x57, 0xb5, 0x4e, 0x85, 0xc0, 0xe9, 0xb8, 0x71, 0x16, 0xeb, 0x02, 0xbe, 0x22, 0x73, 0x2e, 0x1a, - 0xbe, 0x22, 0xc1, 0x74, 0x7c, 0x25, 0x83, 0x9f, 0x31, 0x1f, 0x1b, 0x68, 0x21, 0xc5, 0xce, 0xac, - 0x6b, 0x05, 0x33, 0x09, 0x69, 0xbd, 0x53, 0x14, 0x29, 0xcc, 0xf9, 0x9d, 0x81, 0xce, 0x0c, 0x53, - 0x34, 0x37, 0x74, 0xce, 0x43, 0x0a, 0x6c, 0xd5, 0x4f, 0x00, 0x16, 0x76, 0x7d, 0x66, 0xa0, 0xf2, - 0x48, 0xea, 0xa6, 0xa6, 0xad, 0x61, 0x48, 0x86, 0xf5, 0xad, 0x93, 0xcb, 0x50, 0xcf, 0x7f, 0x06, - 0xbb, 0xb3, 0xa9, 0xe7, 0xb1, 0x29, 0xb8, 0xd6, 0xf9, 0x1f, 0xcd, 0xfe, 0x40, 0xba, 0x91, 0xa6, - 0x7e, 0x36, 0xf4, 0x4f, 0x34, 0x87, 0xea, 0xa4, 0x1b, 0x23, 0x58, 0x1e, 0xf3, 0x08, 0x9d, 0x8a, - 0x29, 0x9e, 0x8b, 0xda, 0x89, 0x9c, 0xb5, 0xa1, 0x0d, 0x51, 0x96, 0x22, 0x4d, 0xfe, 0x6c, 0xe8, - 0x3a, 0x42, 0xa1, 0xa5, 0x18, 0x41, 0x10, 0x81, 0x45, 0x69, 0x7a, 0x68, 0xa3, 0x48, 0xda, 0xc0, - 0x5c, 0xa6, 0x5a, 0x18, 0xaa, 0x64, 0xe9, 0x2a, 0x6d, 0x74, 0x4d, 0x4b, 0x68, 0x02, 0xd4, 0xc9, - 0xd2, 0x33, 0xe9, 0x24, 0xb0, 0x45, 0xe5, 0x92, 0x34, 0x6c, 0x51, 0x80, 0x3a, 0xb6, 0x64, 0xd2, - 0x42, 0x60, 0x8b, 0x4a, 0x0a, 0x5d, 0xd3, 0x3d, 0x09, 0x71, 0xee, 0x73, 0xb3, 0x20, 0x50, 0xd8, - 0xf2, 0x67, 0x03, 0xbd, 0x92, 0xcd, 0x1e, 0xe9, 0x88, 0xce, 0x12, 0x60, 0xdd, 0x3e, 0xa1, 0x00, - 0xc5, 0xc6, 0x6c, 0xb2, 0xe8, 0xa6, 0xce, 0xb1, 0xc9, 0x10, 0xa0, 0x63, 0x63, 0x2e, 0xeb, 0x03, - 0xc1, 0x38, 0xc5, 0xf9, 0xac, 0xeb, 0xc8, 0x96, 0x91, 0x3a, 0xc1, 0x38, 0x9b, 0x1a, 0x32, 0xff, - 0x6a, 0xa0, 0x73, 0xa3, 0x89, 0x21, 0xad, 0xb8, 0x3a, 0x42, 0x88, 0x75, 0xf7, 0x39, 0x08, 0x51, - 0x2b, 0x14, 0x99, 0x65, 0xd2, 0xa9, 0x50, 0x24, 0x9c, 0x56, 0x85, 0x92, 0xc1, 0xf8, 0xc0, 0x3e, - 0xa6, 0xf8, 0x9e, 0x75, 0xad, 0xf3, 0x2e, 0x21, 0x75, 0xf6, 0x31, 0x9b, 0x1c, 0x82, 0x4b, 0x3d, - 0x4d, 0x0d, 0x69, 0x5c, 0xea, 0x29, 0xa8, 0xce, 0xa5, 0x3e, 0x8a, 0x3a, 0x8a, 0x32, 0x94, 0x2c, - 0x7a, 0x68, 0x53, 0xbf, 0x5e, 0x97, 0x2d, 0xdb, 0x3a, 0x11, 0x5c, 0x49, 0x42, 0x87, 0x49, 0xa2, - 0x1b, 0x5a, 0xfb, 0xa0, 0x82, 0x75, 0x92, 0xd0, 0x91, 0xa4, 0x11, 0xf8, 0xb7, 0x42, 0x19, 0x5d, - 0xd5, 0x95, 0xaa, 0x5f, 0x81, 0x67, 0xf1, 0x48, 0xb1, 0x7f, 0xcb, 0x2c, 0x92, 0x9e, 0x7f, 0x4b, - 0x48, 0x4d, 0xff, 0xce, 0x20, 0x9c, 0xcc, 0xdf, 0x18, 0xe8, 0xa5, 0x21, 0xba, 0xe9, 0xba, 0xb6, - 0x58, 0x81, 0xb5, 0x6a, 0xc5, 0xb1, 0x4a, 0x7c, 0x56, 0x59, 0x29, 0x8d, 0xf8, 0xac, 0x00, 0x75, - 0xe2, 0x73, 0x26, 0x21, 0x15, 0x95, 0xdc, 0x09, 0x19, 0x75, 0x49, 0xef, 0xf8, 0xb2, 0x1b, 0xf1, - 0x46, 0x01, 0x90, 0xf2, 0x78, 0x25, 0x11, 0x47, 0x97, 0x75, 0xbd, 0x2f, 0x42, 0xe9, 0x3c, 0x5e, - 0x0d, 0xf3, 0x49, 0x50, 0x6c, 0xcb, 0x6c, 0xd2, 0x15, 0xed, 0x37, 0xa8, 0x08, 0xa6, 0x53, 0x6c, - 0x67, 0x30, 0x4f, 0x70, 0xb1, 0x0c, 0xf3, 0x4e, 0x1a, 0x6b, 0x3b, 0x04, 0xd6, 0xb9, 0x58, 0x46, - 0x72, 0x55, 0xe6, 0x9f, 0x0c, 0xb4, 0x98, 0xc9, 0x54, 0xe9, 0x3c, 0x5b, 0x66, 0xe0, 0xad, 0x5b, - 0x27, 0xc3, 0x2b, 0xf1, 0x22, 0x8b, 0xde, 0xda, 0xd4, 0x0a, 0xd4, 0x69, 0xb8, 0x4e, 0xbc, 0xc8, - 0xa1, 0xc3, 0x20, 0xbe, 0xa6, 0xb9, 0xb0, 0x8d, 0xc2, 0x0c, 0x96, 0x4e, 0x7c, 0x1d, 0xc1, 0x3a, - 0x81, 0xbb, 0xcb, 0x9c, 0xd3, 0x95, 0x02, 0x22, 0x1b, 0x44, 0xc7, 0xdd, 0x33, 0xf8, 0x27, 0x08, - 0x13, 0x29, 0xf6, 0x69, 0xbd, 0xc8, 0xdc, 0x22, 0xa4, 0x4e, 0x98, 0xc8, 0xa6, 0x9e, 0x6a, 0xcd, - 0xcf, 0x9f, 0x2e, 0x19, 0x5f, 0x3c, 0x5d, 0x32, 0xfe, 0xf3, 0x74, 0xc9, 0xf8, 0xf5, 0xb3, 0xa5, - 0x89, 0x2f, 0x9e, 0x2d, 0x4d, 0xfc, 0xf3, 0xd9, 0xd2, 0xc4, 0xc3, 0x75, 0xe9, 0x1f, 0x8d, 0x0e, - 0x69, 0x59, 0xad, 0x8b, 0xbf, 0xc2, 0xfa, 0x44, 0xfe, 0x93, 0xb2, 0x41, 0x0f, 0x07, 0xbb, 0x33, - 0xf0, 0x37, 0x57, 0x97, 0xfe, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x48, 0xf2, 0xc1, 0x76, 0x36, - 0x00, 0x00, + // 2720 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5b, 0xcd, 0x6f, 0x1c, 0xb7, + 0x15, 0xd7, 0x68, 0x25, 0x59, 0xa2, 0x1d, 0xd9, 0x9e, 0x28, 0xce, 0x7a, 0xe2, 0x48, 0xca, 0x34, + 0x49, 0x7d, 0xe9, 0xaa, 0x96, 0xbf, 0x24, 0xbb, 0xaa, 0xb3, 0x1f, 0xb2, 0xe3, 0xba, 0x8a, 0xdd, + 0x95, 0x93, 0x34, 0x6e, 0xd0, 0x76, 0x34, 0x4b, 0xad, 0x06, 0xda, 0x1d, 0x6e, 0x39, 0x5c, 0x29, + 0x6b, 0xa0, 0x40, 0x81, 0x02, 0x45, 0x03, 0x18, 0x6d, 0x51, 0xb4, 0x40, 0xd1, 0x02, 0x81, 0x7b, + 0xe8, 0x25, 0x40, 0x6f, 0x05, 0xfa, 0x2f, 0xe4, 0x98, 0x53, 0x51, 0xf4, 0x90, 0x16, 0xf6, 0xa5, + 0x7f, 0x42, 0x8f, 0x05, 0x3f, 0x86, 0x43, 0xce, 0xce, 0x8e, 0x96, 0x23, 0x03, 0x01, 0xb2, 0xe4, + 0xf0, 0xf7, 0xde, 0x23, 0xf9, 0xc8, 0xf7, 0x1e, 0x7f, 0x16, 0xb8, 0xe0, 0x7b, 0xb8, 0xe5, 0xef, + 0x79, 0x41, 0xb8, 0x92, 0xfc, 0x22, 0x9f, 0x54, 0x7a, 0x18, 0x11, 0x64, 0xbf, 0xd5, 0x80, 0x3e, + 0x0c, 0x09, 0xf6, 0x3a, 0x75, 0x0f, 0xb7, 0xee, 0x78, 0x5d, 0x58, 0x91, 0xa3, 0x92, 0x5f, 0xce, + 0x42, 0x1b, 0xb5, 0x11, 0x43, 0xac, 0xd0, 0x5f, 0x1c, 0xec, 0xbc, 0x91, 0x25, 0xda, 0x47, 0xfd, + 0xd0, 0x0f, 0x3a, 0x62, 0xc8, 0x52, 0xd6, 0x90, 0xae, 0x47, 0xfc, 0x3d, 0x31, 0x60, 0x39, 0x6b, + 0xc0, 0x01, 0x22, 0x41, 0xd8, 0x16, 0x23, 0x16, 0x33, 0xb5, 0x78, 0xb8, 0x25, 0xbf, 0xa3, 0xa8, + 0x8b, 0xa2, 0x95, 0x1d, 0x2f, 0x82, 0x2b, 0x07, 0x97, 0x76, 0x20, 0xf1, 0x2e, 0xad, 0xf8, 0x28, + 0x08, 0xf9, 0x77, 0xf7, 0x23, 0xf0, 0xd2, 0x56, 0xd4, 0xae, 0x63, 0xe8, 0x11, 0xd8, 0x8f, 0x20, + 0xb6, 0xcb, 0xe0, 0x84, 0x4f, 0x5b, 0x08, 0x97, 0xad, 0x65, 0xeb, 0xe2, 0x5c, 0x33, 0x6e, 0xd2, + 0x2f, 0x21, 0x3c, 0x7c, 0x3f, 0x82, 0xb8, 0x3c, 0xc9, 0xbf, 0x88, 0xa6, 0xbd, 0x00, 0xa6, 0xbd, + 0x4e, 0xe0, 0x45, 0xe5, 0x12, 0xeb, 0xe7, 0x0d, 0xf7, 0x55, 0xf0, 0x8a, 0x26, 0xba, 0x09, 0xa3, + 0x1e, 0x0a, 0x23, 0xe8, 0xfe, 0xce, 0x02, 0x67, 0xb6, 0xa2, 0x76, 0xad, 0x3f, 0xa0, 0xcb, 0xba, + 0xed, 0xef, 0xc1, 0x2e, 0xcc, 0xd1, 0xfb, 0x31, 0x28, 0xed, 0x04, 0x2d, 0xa6, 0xf3, 0xe4, 0xea, + 0xf9, 0x0a, 0x9f, 0x50, 0x85, 0x4e, 0xa8, 0x22, 0x26, 0x54, 0xa9, 0xa3, 0x20, 0xac, 0xad, 0x7c, + 0xf1, 0xd5, 0xd2, 0xc4, 0xe7, 0xff, 0x5e, 0xfa, 0x7a, 0x3b, 0x20, 0x7b, 0xfd, 0x9d, 0x8a, 0x8f, + 0xba, 0x2b, 0x62, 0xf6, 0xfc, 0x7f, 0xdf, 0x88, 0x5a, 0xfb, 0x2b, 0x64, 0xd0, 0x83, 0x11, 0x03, + 0x34, 0xa9, 0xd8, 0x1b, 0xb3, 0xbf, 0x7c, 0xba, 0x34, 0xf1, 0xdf, 0xa7, 0x4b, 0x13, 0xee, 0x2a, + 0x28, 0xa7, 0xad, 0x8a, 0x4d, 0xb6, 0xcf, 0x81, 0x19, 0xba, 0xa8, 0x77, 0x5b, 0xcc, 0xb8, 0xa9, + 0xa6, 0x68, 0xb9, 0x4f, 0x2c, 0x70, 0x72, 0x2b, 0x6a, 0x7f, 0x80, 0x08, 0xa4, 0xa8, 0x9c, 0x59, + 0x24, 0x12, 0x26, 0x55, 0x09, 0xf6, 0x3d, 0x30, 0x7b, 0x80, 0x08, 0x7c, 0x38, 0xe8, 0x41, 0xb6, + 0x7c, 0xf3, 0xab, 0x2b, 0x95, 0xb1, 0xdc, 0xae, 0xf2, 0x81, 0x80, 0x35, 0xa5, 0x00, 0x77, 0x03, + 0xbc, 0xac, 0x58, 0x23, 0xad, 0x7f, 0x1b, 0xcc, 0x7b, 0x01, 0x6e, 0x61, 0xd4, 0xab, 0x77, 0xbc, + 0xa0, 0x0b, 0xf9, 0x2c, 0x66, 0x9b, 0xa9, 0x5e, 0xf7, 0x6f, 0x16, 0xb0, 0xb7, 0xa2, 0xf6, 0xb6, + 0x77, 0xc0, 0xf0, 0x75, 0x14, 0x12, 0x18, 0x92, 0x02, 0x93, 0xa2, 0x08, 0x0e, 0x66, 0x73, 0x3a, + 0xd5, 0x8c, 0x9b, 0xd4, 0x55, 0x42, 0x44, 0x60, 0x54, 0x9e, 0xe2, 0xae, 0xc2, 0x1a, 0x54, 0x8e, + 0x87, 0x49, 0x10, 0x91, 0xf2, 0x34, 0xeb, 0x16, 0x2d, 0xfb, 0x4d, 0xf0, 0xd2, 0x8e, 0xd7, 0xf1, + 0x42, 0x1f, 0x56, 0x43, 0x7f, 0x0f, 0xe1, 0xf2, 0x0c, 0xb3, 0x5b, 0xef, 0x74, 0x1b, 0xc0, 0x19, + 0xb6, 0xda, 0x78, 0xf2, 0x3f, 0x02, 0xa7, 0xb7, 0xa2, 0xf6, 0x43, 0xec, 0x85, 0xd1, 0x2e, 0xc4, + 0x05, 0x77, 0xd3, 0x01, 0xb3, 0x18, 0xfa, 0x30, 0x38, 0x80, 0x58, 0xcc, 0x50, 0xb6, 0xdd, 0xf3, + 0xe0, 0xd5, 0x94, 0x02, 0x79, 0x22, 0x9e, 0x58, 0x4c, 0x79, 0x03, 0x85, 0x1e, 0x81, 0x0f, 0x51, + 0x41, 0xe5, 0x77, 0xc0, 0x8c, 0xd7, 0x45, 0x7d, 0xb1, 0xe8, 0x73, 0xfc, 0x40, 0xfc, 0xeb, 0xab, + 0xf1, 0x0f, 0x84, 0x80, 0x0b, 0x4b, 0x55, 0x6b, 0xa4, 0xa5, 0x3f, 0x61, 0xf7, 0x45, 0xb5, 0xd5, + 0xaa, 0x62, 0x72, 0x88, 0xf0, 0x7e, 0x01, 0x33, 0x17, 0xc0, 0x74, 0xd0, 0xf5, 0xda, 0x50, 0xb8, + 0x06, 0x6f, 0x50, 0x39, 0xbb, 0xfd, 0x4e, 0xa7, 0x8a, 0x09, 0x5b, 0xb8, 0xd9, 0x66, 0xdc, 0x14, + 0xf7, 0x48, 0xa2, 0x52, 0xda, 0xf2, 0x03, 0xb6, 0x68, 0xf5, 0x3d, 0x2f, 0x6c, 0xc3, 0x2a, 0x77, + 0x98, 0xa3, 0xad, 0x69, 0x68, 0xd6, 0x34, 0x14, 0xd7, 0x2b, 0xa9, 0xae, 0x27, 0xd6, 0x40, 0x15, + 0x2e, 0xf5, 0x5e, 0x62, 0x06, 0x35, 0x61, 0x3b, 0x88, 0x08, 0xc4, 0xb7, 0x11, 0xae, 0xf3, 0x5b, + 0x7d, 0xb4, 0x76, 0x77, 0x09, 0xbc, 0x9e, 0x09, 0x91, 0x32, 0xff, 0x61, 0x81, 0x79, 0x36, 0xa2, + 0x87, 0x30, 0xd9, 0xa2, 0x21, 0x20, 0xff, 0x26, 0x66, 0x51, 0x42, 0x2e, 0x6d, 0xdc, 0xb4, 0x5d, + 0x70, 0xaa, 0xd7, 0xf1, 0x06, 0xb0, 0x45, 0x37, 0x2d, 0xaa, 0x96, 0x4b, 0xcb, 0xa5, 0x8b, 0x53, + 0x4d, 0xad, 0x2f, 0x35, 0xa6, 0x56, 0x9e, 0x1a, 0x1a, 0x53, 0xb3, 0xdf, 0x05, 0x27, 0x50, 0x9f, + 0xf8, 0xa8, 0x0b, 0xd9, 0x89, 0x9c, 0x5f, 0xad, 0x8c, 0x79, 0x29, 0xdd, 0xe7, 0xa8, 0x66, 0x0c, + 0x77, 0x57, 0xc1, 0x39, 0x7d, 0x5e, 0xf2, 0x60, 0x2a, 0xb3, 0xb0, 0xb4, 0x59, 0xb8, 0xef, 0x31, + 0x4c, 0xb5, 0x87, 0x82, 0x30, 0xc6, 0x50, 0x78, 0x6e, 0x74, 0x62, 0x27, 0x8f, 0x8f, 0x12, 0xe1, + 0x49, 0xb6, 0xdd, 0x65, 0xb0, 0x98, 0x2d, 0x4f, 0x2e, 0xff, 0x1f, 0x2d, 0x70, 0x4a, 0x06, 0xab, + 0x6d, 0x98, 0xe7, 0x48, 0x36, 0x98, 0x0a, 0xbd, 0x2e, 0x14, 0x4a, 0xd8, 0xef, 0x51, 0x4e, 0x64, + 0x2f, 0x83, 0x93, 0x11, 0x41, 0x78, 0xf0, 0x21, 0x0e, 0x88, 0xbc, 0x11, 0xd4, 0x2e, 0xba, 0x19, + 0xf4, 0x6a, 0xc4, 0xc1, 0x4e, 0x9f, 0x20, 0x1c, 0x95, 0xa7, 0x97, 0x4b, 0x17, 0xe7, 0x9a, 0x5a, + 0x9f, 0x7b, 0x0e, 0x2c, 0xa8, 0xb6, 0x49, 0xa3, 0x3f, 0x62, 0xfe, 0x5f, 0x6d, 0xb1, 0x4d, 0x7b, + 0x88, 0xf2, 0xcd, 0x5e, 0x00, 0xd3, 0x11, 0x24, 0xd2, 0x63, 0x78, 0x43, 0x39, 0xa3, 0x25, 0x2d, + 0xae, 0x71, 0xef, 0x57, 0x45, 0x4b, 0xad, 0xef, 0x30, 0x47, 0xbd, 0x1d, 0x84, 0x5e, 0x27, 0x78, + 0x0c, 0x0b, 0x28, 0x75, 0xcb, 0x6c, 0x7b, 0x15, 0x09, 0x52, 0x76, 0x1d, 0x9c, 0xe5, 0x21, 0xb8, + 0x86, 0x10, 0x3d, 0x28, 0x0f, 0x3c, 0x7f, 0xdf, 0x58, 0x7c, 0x1d, 0x9c, 0x1f, 0x12, 0x62, 0x1c, + 0x0d, 0x7e, 0xc8, 0xd6, 0xbc, 0x09, 0xbb, 0x88, 0x47, 0x95, 0xdb, 0x18, 0x75, 0x5f, 0xe4, 0x02, + 0x2f, 0x82, 0x0b, 0x59, 0xf2, 0xe5, 0x4a, 0x78, 0xe0, 0xb5, 0xe4, 0x7b, 0xe2, 0x0c, 0x45, 0xcd, + 0xb0, 0xc1, 0x14, 0x4d, 0xc1, 0x84, 0x7b, 0xb2, 0xdf, 0xee, 0x5b, 0xe0, 0x6b, 0x39, 0x2a, 0xa4, + 0x25, 0x1f, 0xf3, 0xc3, 0xd8, 0x6a, 0x29, 0x63, 0x8a, 0x39, 0x5b, 0x96, 0x11, 0xe2, 0x68, 0x0e, + 0x4b, 0x97, 0xfa, 0x3f, 0xe5, 0x49, 0x49, 0xec, 0xfe, 0x9d, 0xce, 0xfd, 0xdd, 0xdd, 0xdc, 0x9b, + 0xc0, 0x06, 0x53, 0x74, 0x91, 0x85, 0x6e, 0xf6, 0xdb, 0xde, 0x04, 0xd3, 0x3d, 0x1c, 0xf8, 0xb0, + 0x68, 0x64, 0xe4, 0x68, 0xf7, 0x02, 0xcb, 0x34, 0x52, 0xa6, 0x48, 0x4b, 0xdf, 0x05, 0x20, 0x49, + 0x20, 0x73, 0x0c, 0xa4, 0xb7, 0x42, 0x0c, 0x96, 0x6b, 0xa4, 0x76, 0xb9, 0x0b, 0x6c, 0xca, 0x42, + 0x92, 0x94, 0xff, 0x80, 0xf5, 0xf2, 0x0d, 0x1b, 0x67, 0x21, 0x8e, 0xd6, 0xc3, 0xe7, 0x93, 0x92, + 0x28, 0xf5, 0x3d, 0x62, 0xfa, 0x92, 0xc0, 0x5b, 0x6c, 0xd7, 0x33, 0xc3, 0xbd, 0xd0, 0x9c, 0x92, + 0x2d, 0x35, 0x7f, 0x9f, 0x15, 0x08, 0xd5, 0x56, 0x6b, 0x9b, 0x5e, 0x95, 0x85, 0xf5, 0xb2, 0x8b, + 0x36, 0x2e, 0x4a, 0x58, 0xc3, 0x75, 0x58, 0x92, 0xaf, 0x49, 0x96, 0x5a, 0xff, 0xc2, 0xeb, 0x92, + 0x6d, 0x48, 0xd8, 0xb2, 0x7b, 0x38, 0x20, 0x83, 0x62, 0xf9, 0x0d, 0x37, 0xa7, 0xa4, 0x9a, 0x73, + 0x17, 0xcc, 0x60, 0x26, 0x91, 0x45, 0x81, 0xf9, 0xd5, 0x4b, 0x63, 0x06, 0xd4, 0xc4, 0x94, 0xa6, + 0x10, 0x20, 0xe6, 0xa0, 0x99, 0x29, 0xe7, 0xd0, 0x60, 0x53, 0xe0, 0x1e, 0x7a, 0x64, 0x5a, 0x32, + 0x6a, 0x0a, 0x42, 0x83, 0x26, 0x45, 0x6a, 0xf8, 0x95, 0xc5, 0x3f, 0xa2, 0x6e, 0x37, 0x20, 0xa9, + 0x8f, 0x47, 0xc5, 0x67, 0x3e, 0x2a, 0x89, 0xcf, 0x02, 0x75, 0x01, 0xcc, 0x89, 0xc2, 0x58, 0xae, + 0x5a, 0xd2, 0x61, 0x2f, 0x02, 0x10, 0xf5, 0xdb, 0x6d, 0x18, 0x91, 0x00, 0x85, 0x22, 0x86, 0x2a, + 0x3d, 0xae, 0x0b, 0x96, 0x47, 0xd9, 0x23, 0x8d, 0xfe, 0x3b, 0x37, 0xba, 0x09, 0x0f, 0xa0, 0xd7, + 0x19, 0xdf, 0xe8, 0x7b, 0x29, 0xa3, 0xc7, 0x2f, 0xce, 0xa4, 0x05, 0xc9, 0x2c, 0xcf, 0x81, 0x99, + 0x08, 0xfa, 0x18, 0xca, 0x24, 0x81, 0xb7, 0xf4, 0xd9, 0x4f, 0xa5, 0x66, 0x2f, 0x66, 0x97, 0x69, + 0xb8, 0x9c, 0xdd, 0x3d, 0x16, 0x36, 0x9b, 0x30, 0x22, 0x1e, 0x26, 0x47, 0xef, 0xba, 0xa6, 0x70, + 0x32, 0xad, 0xf0, 0x35, 0x16, 0x3e, 0x75, 0x61, 0x52, 0xd3, 0x9a, 0x08, 0x5b, 0x87, 0x68, 0x3f, + 0x71, 0x0c, 0x9a, 0xd4, 0x62, 0x8f, 0xee, 0x45, 0x4e, 0x06, 0xfc, 0x36, 0x78, 0x33, 0x0f, 0x29, + 0x35, 0x3c, 0xe3, 0xa5, 0x50, 0x1d, 0x85, 0xbb, 0x01, 0xee, 0x16, 0xcf, 0x84, 0x95, 0x0c, 0xb6, + 0x74, 0xac, 0x0c, 0xd6, 0xfe, 0x1e, 0x00, 0xb4, 0xc0, 0xe6, 0xa9, 0x31, 0xcb, 0x96, 0x4f, 0x8e, + 0x7d, 0x7a, 0xb7, 0x83, 0xb0, 0xdd, 0x81, 0xb4, 0x20, 0x6f, 0x2a, 0x42, 0xe2, 0xe2, 0x42, 0x99, + 0xa3, 0x9c, 0xff, 0x26, 0xdb, 0xcb, 0x6d, 0x48, 0x1e, 0x60, 0xb4, 0x1b, 0x74, 0x0a, 0x3e, 0x2b, + 0x88, 0x5d, 0xd4, 0xc5, 0x48, 0x1d, 0x0f, 0xd9, 0xc5, 0x7e, 0xbf, 0x07, 0xc3, 0xf1, 0xf2, 0x2c, + 0x5a, 0x86, 0x27, 0x03, 0xa5, 0x2e, 0xbd, 0xd3, 0xbd, 0xc6, 0xae, 0xf4, 0x94, 0x54, 0xed, 0x90, + 0x31, 0xd3, 0xa2, 0xb2, 0xc5, 0x0a, 0x8e, 0xb8, 0xe9, 0x12, 0x96, 0x60, 0xc4, 0x75, 0xf1, 0x0b, + 0xb4, 0x48, 0xab, 0xc6, 0x4b, 0xa9, 0x6a, 0x9c, 0x27, 0x1e, 0x19, 0x5a, 0xe5, 0x2a, 0xed, 0xb1, + 0x14, 0x70, 0x1b, 0x12, 0xfa, 0x9f, 0x92, 0xb2, 0x9b, 0x06, 0xa2, 0x54, 0x11, 0x50, 0x1a, 0x2a, + 0x02, 0x44, 0x32, 0x38, 0xa4, 0x29, 0x95, 0xe8, 0xf3, 0xef, 0x47, 0x16, 0xba, 0x23, 0xf3, 0xd0, + 0x9c, 0x32, 0x57, 0x15, 0x2d, 0xb5, 0xde, 0x89, 0x3d, 0xf1, 0xfd, 0x08, 0xe2, 0x0f, 0xe1, 0x4e, + 0x14, 0x10, 0x98, 0x7f, 0x14, 0x0f, 0xf9, 0xa0, 0xf8, 0x79, 0x50, 0x34, 0x13, 0x5f, 0x54, 0x04, + 0x49, 0x2d, 0x5b, 0xec, 0xc9, 0x4a, 0x7c, 0xac, 0x05, 0xa8, 0x8d, 0xbd, 0xde, 0xde, 0x20, 0xff, + 0xf6, 0xda, 0x89, 0x87, 0x09, 0x4d, 0x49, 0x87, 0xfb, 0x3a, 0xcb, 0x9b, 0xd3, 0xe2, 0xa4, 0xb6, + 0x3e, 0x0b, 0x8f, 0x5b, 0xfd, 0x0e, 0x09, 0xc6, 0x78, 0xb3, 0xbb, 0x03, 0xa6, 0x0f, 0xd8, 0x63, + 0xd5, 0x64, 0xd1, 0x43, 0xcf, 0xf1, 0x22, 0x9e, 0x6a, 0x6a, 0xa5, 0x49, 0x4f, 0x79, 0xe9, 0x49, + 0xcf, 0xcd, 0x18, 0xb7, 0x1d, 0xab, 0xd2, 0x71, 0x35, 0x5e, 0x62, 0xd1, 0x4c, 0xbe, 0xd4, 0xc4, + 0xfe, 0xc6, 0x4d, 0xea, 0x7d, 0x62, 0x50, 0x03, 0xfa, 0xfb, 0xa2, 0xd8, 0x57, 0xbb, 0x92, 0x11, + 0x35, 0x36, 0x62, 0x5a, 0x1d, 0xc1, 0xba, 0xdc, 0x6f, 0xb2, 0x93, 0x20, 0x2d, 0x1c, 0xa3, 0x82, + 0xdf, 0x66, 0xcf, 0x44, 0xdc, 0xad, 0xde, 0xf3, 0x72, 0x9f, 0x77, 0x47, 0xd6, 0x0a, 0xac, 0xca, + 0x2e, 0x25, 0x55, 0xb6, 0x78, 0x08, 0x4a, 0x84, 0xa6, 0x4a, 0x52, 0xf1, 0x56, 0xd3, 0x09, 0xbc, + 0x28, 0x5f, 0x1d, 0x7f, 0xab, 0x9e, 0x54, 0xdf, 0xaa, 0x79, 0x49, 0xaa, 0x48, 0x50, 0x12, 0x2a, + 0x3a, 0xf7, 0xbb, 0xe1, 0x41, 0x40, 0xe0, 0xa6, 0x87, 0x3b, 0x83, 0xaa, 0xef, 0xc3, 0x28, 0xca, + 0xaf, 0x3f, 0xfa, 0xc9, 0x23, 0x39, 0x2f, 0x73, 0xf8, 0x09, 0x1f, 0x92, 0xa2, 0x9c, 0x35, 0xf6, + 0xe2, 0x16, 0x44, 0xc1, 0x31, 0x15, 0xbd, 0x01, 0x96, 0x46, 0x08, 0x92, 0xba, 0xbe, 0xcb, 0xe7, + 0x8a, 0xc2, 0x10, 0xfa, 0xe4, 0x11, 0xf4, 0xd8, 0x00, 0xd4, 0xcf, 0x7d, 0xe8, 0x2d, 0x83, 0x13, + 0x8f, 0xe9, 0x48, 0xb1, 0x4d, 0x73, 0xcd, 0xb8, 0x29, 0xee, 0xd1, 0x0c, 0x69, 0x52, 0xdf, 0x67, + 0x93, 0x2c, 0xdc, 0x6c, 0x86, 0xac, 0x1b, 0x62, 0x9e, 0x56, 0x1a, 0xbe, 0xb0, 0x38, 0x60, 0xb6, + 0x81, 0xbd, 0xc3, 0x0e, 0xbf, 0xc1, 0xa8, 0x87, 0xca, 0xb6, 0x1d, 0x00, 0xd0, 0xf3, 0xb0, 0xd7, + 0x85, 0x04, 0xe2, 0x38, 0x40, 0xdf, 0x1d, 0xf3, 0xac, 0x0e, 0x1b, 0x56, 0x79, 0x20, 0x65, 0x6d, + 0x86, 0x04, 0x0f, 0x9a, 0x8a, 0xf0, 0xa4, 0x98, 0x99, 0x56, 0x8a, 0x19, 0x67, 0x03, 0x9c, 0x4e, + 0x81, 0xec, 0x33, 0xa0, 0xb4, 0x0f, 0x07, 0x62, 0x66, 0xf4, 0x27, 0x85, 0x1e, 0x78, 0x9d, 0x7e, + 0x3c, 0x2d, 0xde, 0xb8, 0x31, 0xb9, 0x66, 0x89, 0x5a, 0x28, 0x65, 0x86, 0x5c, 0xbe, 0x1f, 0x33, + 0xe7, 0x96, 0x5f, 0x1b, 0x28, 0xbf, 0xe2, 0x83, 0xf1, 0xc0, 0xa4, 0xe2, 0x53, 0xba, 0x32, 0x6b, + 0x70, 0xee, 0xfc, 0x8a, 0x06, 0xe5, 0xba, 0x3c, 0xab, 0x59, 0xd6, 0x41, 0xb9, 0xe9, 0x72, 0x21, + 0xf5, 0x74, 0xa9, 0x0e, 0x45, 0x62, 0x3f, 0xdb, 0xa4, 0x3f, 0x45, 0xc0, 0xd0, 0xd5, 0xc6, 0x36, + 0xad, 0xfe, 0xef, 0x0a, 0x28, 0x6d, 0x45, 0x6d, 0xfb, 0x67, 0x16, 0x00, 0x0a, 0x6f, 0x75, 0x65, + 0xfc, 0x0d, 0x4f, 0x50, 0xce, 0xb7, 0x8a, 0xa0, 0xe4, 0xfd, 0xf7, 0xa9, 0x05, 0x5e, 0xd2, 0x59, + 0xac, 0xeb, 0xe3, 0xcb, 0xd3, 0x80, 0xce, 0xad, 0x82, 0x40, 0x69, 0xcb, 0x63, 0x30, 0x2b, 0x23, + 0xda, 0xea, 0xf8, 0xc2, 0x62, 0x8c, 0x73, 0xc3, 0x1c, 0x23, 0x75, 0xff, 0xda, 0x02, 0xa7, 0xd3, + 0xa4, 0xd1, 0xfa, 0xf8, 0xf2, 0x52, 0x50, 0xa7, 0x5a, 0x18, 0x2a, 0x2d, 0xfa, 0x85, 0x05, 0x4e, + 0x69, 0x54, 0xce, 0xb5, 0xf1, 0x65, 0xaa, 0x38, 0xe7, 0xdb, 0xc5, 0x70, 0x9a, 0x21, 0x1a, 0xad, + 0x63, 0x60, 0x88, 0x8a, 0x33, 0x31, 0x24, 0x8b, 0xb8, 0x61, 0xc7, 0x45, 0xa1, 0x6d, 0x0c, 0x8e, + 0x4b, 0x82, 0x32, 0x39, 0x2e, 0xc3, 0x7c, 0x0d, 0x5b, 0x0b, 0x8d, 0xad, 0x31, 0x58, 0x0b, 0x15, + 0x67, 0xb2, 0x16, 0x59, 0x04, 0x8e, 0xfd, 0x07, 0x0b, 0xd8, 0x19, 0xf4, 0x8d, 0xc1, 0xec, 0x86, + 0xd1, 0x4e, 0xe3, 0x38, 0x68, 0x69, 0xda, 0xcf, 0x2d, 0x70, 0x52, 0x25, 0x81, 0xae, 0x9a, 0x48, + 0x95, 0x30, 0x67, 0xa3, 0x10, 0x4c, 0x5a, 0xf1, 0x27, 0x0b, 0xbc, 0x9c, 0x45, 0xbf, 0x18, 0x88, + 0xcd, 0x80, 0x3b, 0x9b, 0xc7, 0x82, 0x4b, 0xeb, 0x7e, 0x0a, 0xe6, 0x12, 0xa2, 0xe6, 0xb2, 0xe9, + 0x0d, 0xbe, 0x0d, 0x89, 0x73, 0xb3, 0x00, 0x48, 0x73, 0x63, 0x8d, 0x74, 0xb9, 0x66, 0x74, 0x2a, + 0x24, 0xce, 0xc4, 0x8d, 0xb3, 0x98, 0x18, 0xe6, 0x2b, 0x2a, 0x0f, 0x63, 0xe0, 0x2b, 0x0a, 0xcc, + 0xc4, 0x57, 0x32, 0x38, 0x1b, 0xfb, 0x89, 0x05, 0xe6, 0x53, 0x8c, 0xcd, 0x9a, 0x51, 0x30, 0x53, + 0x90, 0xce, 0x3b, 0x45, 0x91, 0xd2, 0x9c, 0xdf, 0x5b, 0xe0, 0xec, 0x30, 0x6d, 0x73, 0xd3, 0xe4, + 0x3c, 0xa4, 0xc0, 0x4e, 0xfd, 0x18, 0x60, 0x69, 0xd7, 0xe7, 0x16, 0x28, 0x8f, 0xa4, 0x73, 0x6a, + 0xc6, 0x1a, 0x86, 0x64, 0x38, 0xdf, 0x39, 0xbe, 0x0c, 0xfd, 0xfc, 0x67, 0x30, 0x3e, 0x1b, 0x66, + 0x1e, 0x9b, 0x82, 0x1b, 0x9d, 0xff, 0xd1, 0x8c, 0x10, 0x4b, 0x37, 0xd2, 0x74, 0xd0, 0xba, 0xf9, + 0x89, 0x16, 0x50, 0x93, 0x74, 0x63, 0x04, 0xf3, 0x63, 0x1f, 0x82, 0x13, 0x31, 0xed, 0x73, 0xc9, + 0x38, 0x91, 0x73, 0xd6, 0x8d, 0x21, 0xda, 0x52, 0xa4, 0x09, 0xa1, 0x75, 0x53, 0x47, 0x28, 0xb4, + 0x14, 0x23, 0x48, 0x23, 0x66, 0x51, 0x9a, 0x32, 0x5a, 0x2f, 0x92, 0x36, 0x70, 0x97, 0xa9, 0x16, + 0x86, 0x6a, 0x59, 0xba, 0x4e, 0x25, 0x5d, 0x37, 0x12, 0x9a, 0x00, 0x4d, 0xb2, 0xf4, 0x4c, 0x8a, + 0x89, 0xd9, 0xa2, 0xf3, 0x4b, 0x06, 0xb6, 0x68, 0x40, 0x13, 0x5b, 0x32, 0xa9, 0x22, 0x66, 0x8b, + 0x4e, 0x14, 0x5d, 0x37, 0x3d, 0x09, 0x71, 0xee, 0x73, 0xab, 0x20, 0x50, 0xda, 0xf2, 0x67, 0x0b, + 0xbc, 0x92, 0xcd, 0x28, 0x99, 0x88, 0xce, 0x12, 0xe0, 0xdc, 0x39, 0xa6, 0x00, 0xcd, 0xc6, 0x6c, + 0x02, 0xe9, 0x96, 0xc9, 0xb1, 0xc9, 0x10, 0x60, 0x62, 0x63, 0x2e, 0x13, 0xc4, 0x82, 0x71, 0x8a, + 0x07, 0x5a, 0x33, 0x91, 0xad, 0x22, 0x4d, 0x82, 0x71, 0x36, 0x5d, 0x64, 0xff, 0xd5, 0x02, 0xe7, + 0x47, 0x93, 0x45, 0x46, 0x71, 0x75, 0x84, 0x10, 0xe7, 0xde, 0x0b, 0x10, 0xa2, 0x57, 0x28, 0x2a, + 0xf3, 0x64, 0x52, 0xa1, 0x28, 0x38, 0xa3, 0x0a, 0x25, 0x83, 0x05, 0x62, 0xfb, 0x98, 0xe2, 0x80, + 0xd6, 0x8c, 0xce, 0xbb, 0x82, 0x34, 0xd9, 0xc7, 0x6c, 0xc2, 0x88, 0x5d, 0xea, 0x69, 0xba, 0xc8, + 0xe0, 0x52, 0x4f, 0x41, 0x4d, 0x2e, 0xf5, 0x51, 0x74, 0x12, 0xcd, 0x50, 0xb2, 0x28, 0xa3, 0x0d, + 0xf3, 0x7a, 0x5d, 0xb5, 0x6c, 0xf3, 0x58, 0x70, 0x2d, 0x09, 0x1d, 0x26, 0x8e, 0x6e, 0x1a, 0xed, + 0x83, 0x0e, 0x36, 0x49, 0x42, 0x47, 0x12, 0x49, 0xcc, 0xbf, 0x35, 0x1a, 0xe9, 0x9a, 0xa9, 0x54, + 0xf3, 0x0a, 0x3c, 0x8b, 0x5b, 0x8a, 0xfd, 0x5b, 0x65, 0x96, 0xcc, 0xfc, 0x5b, 0x41, 0x1a, 0xfa, + 0x77, 0x06, 0x09, 0x65, 0xff, 0xd6, 0x02, 0x67, 0x86, 0x28, 0xa8, 0x1b, 0xc6, 0x62, 0x25, 0xd6, + 0xa9, 0x15, 0xc7, 0x6a, 0xf1, 0x59, 0x67, 0xaa, 0x0c, 0xe2, 0xb3, 0x06, 0x34, 0x89, 0xcf, 0x99, + 0x24, 0x15, 0x2d, 0xb9, 0x13, 0x82, 0xea, 0xb2, 0xd9, 0xf1, 0xe5, 0x37, 0xe2, 0xcd, 0x02, 0x20, + 0xed, 0xf1, 0x4a, 0x21, 0x93, 0xae, 0x98, 0x7a, 0x1f, 0x45, 0x99, 0x3c, 0x5e, 0x0d, 0x73, 0x4c, + 0xac, 0xd8, 0x56, 0x19, 0xa6, 0xab, 0xc6, 0x6f, 0x50, 0x14, 0x66, 0x52, 0x6c, 0x67, 0xb0, 0x51, + 0xec, 0x62, 0x19, 0xe6, 0xa2, 0x0c, 0xd6, 0x76, 0x08, 0x6c, 0x72, 0xb1, 0x8c, 0xe4, 0xaf, 0xec, + 0xcf, 0x2c, 0xb0, 0x90, 0xc9, 0x5e, 0x99, 0x3c, 0x5b, 0x66, 0xe0, 0x9d, 0xdb, 0xc7, 0xc3, 0x6b, + 0xf1, 0x22, 0x8b, 0xf2, 0xda, 0x30, 0x0a, 0xd4, 0x69, 0xb8, 0x49, 0xbc, 0xc8, 0xa1, 0xc8, 0x58, + 0x7c, 0x4d, 0xf3, 0x63, 0xeb, 0x85, 0x19, 0x2c, 0x93, 0xf8, 0x3a, 0x82, 0x75, 0x62, 0xee, 0xae, + 0x72, 0x4e, 0x57, 0x0b, 0x88, 0x6c, 0x20, 0x13, 0x77, 0xcf, 0xe0, 0x9f, 0x58, 0x98, 0x48, 0xb1, + 0x4f, 0x6b, 0x45, 0xe6, 0x46, 0x91, 0x26, 0x61, 0x22, 0x9b, 0x7a, 0xaa, 0x35, 0xbf, 0x78, 0xb6, + 0x68, 0x7d, 0xf9, 0x6c, 0xd1, 0xfa, 0xcf, 0xb3, 0x45, 0xeb, 0x37, 0xcf, 0x17, 0x27, 0xbe, 0x7c, + 0xbe, 0x38, 0xf1, 0xcf, 0xe7, 0x8b, 0x13, 0x8f, 0xd6, 0x94, 0x7f, 0x48, 0x3a, 0xa4, 0x65, 0xa5, + 0x2e, 0xff, 0x32, 0xeb, 0x13, 0xf5, 0xcf, 0xcc, 0x06, 0x3d, 0x18, 0xed, 0xcc, 0xb0, 0xbf, 0xc3, + 0xba, 0xfc, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9c, 0xf1, 0xd6, 0x7b, 0x8a, 0x36, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -9533,7 +9540,7 @@ func (m *MsgEncounterCreate) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.Image) i = encodeVarintTx(dAtA, i, uint64(len(m.Image))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x2a } if len(m.Parameters) > 0 { for k := range m.Parameters { @@ -9551,7 +9558,7 @@ func (m *MsgEncounterCreate) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0xa i = encodeVarintTx(dAtA, i, uint64(baseI-i)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x22 } } if len(m.Drawlist) > 0 { @@ -9570,6 +9577,13 @@ func (m *MsgEncounterCreate) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], dAtA13[:j12]) i = encodeVarintTx(dAtA, i, uint64(j12)) i-- + dAtA[i] = 0x1a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintTx(dAtA, i, uint64(len(m.Name))) + i-- dAtA[i] = 0x12 } if len(m.Creator) > 0 { @@ -11055,6 +11069,10 @@ func (m *MsgEncounterCreate) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } if len(m.Drawlist) > 0 { l = 0 for _, e := range m.Drawlist { @@ -19481,6 +19499,38 @@ func (m *MsgEncounterCreate) Unmarshal(dAtA []byte) error { m.Creator = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: if wireType == 0 { var v uint64 for shift := uint(0); ; shift += 7 { @@ -19556,7 +19606,7 @@ func (m *MsgEncounterCreate) Unmarshal(dAtA []byte) error { } else { return fmt.Errorf("proto: wrong wireType = %d for field Drawlist", wireType) } - case 3: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) } @@ -19683,7 +19733,7 @@ func (m *MsgEncounterCreate) Unmarshal(dAtA []byte) error { } m.Parameters[mapkey] = mapvalue iNdEx = postIndex - case 4: + case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) } From 552eb88a01301733b4781b15c4fbcaeecfe3efb2 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Sun, 15 Dec 2024 15:45:50 +0100 Subject: [PATCH 19/20] feat(#237): Added Proven status to be set to true --- docs/static/openapi.yml | 20 +++++++++++++++++++ .../keeper/msg_server_encounter_close.go | 8 +++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/static/openapi.yml b/docs/static/openapi.yml index 17e82647..77ad615f 100644 --- a/docs/static/openapi.yml +++ b/docs/static/openapi.yml @@ -33484,6 +33484,8 @@ paths: imageId: type: string format: uint64 + name: + type: string default: description: An unexpected error response. schema: @@ -33545,6 +33547,8 @@ paths: imageId: type: string format: uint64 + name: + type: string image: type: string format: byte @@ -33608,6 +33612,8 @@ paths: imageId: type: string format: uint64 + name: + type: string default: description: An unexpected error response. schema: @@ -33665,6 +33671,8 @@ paths: imageId: type: string format: uint64 + name: + type: string image: type: string format: byte @@ -69184,6 +69192,8 @@ definitions: imageId: type: string format: uint64 + name: + type: string DecentralCardGame.cardchain.cardchain.EncounterWithImage: type: object properties: @@ -69209,6 +69219,8 @@ definitions: imageId: type: string format: uint64 + name: + type: string image: type: string format: byte @@ -69861,6 +69873,8 @@ definitions: imageId: type: string format: uint64 + name: + type: string DecentralCardGame.cardchain.cardchain.QueryQEncounterWithImageResponse: type: object properties: @@ -69889,6 +69903,8 @@ definitions: imageId: type: string format: uint64 + name: + type: string image: type: string format: byte @@ -69919,6 +69935,8 @@ definitions: imageId: type: string format: uint64 + name: + type: string DecentralCardGame.cardchain.cardchain.QueryQEncountersWithImageResponse: type: object properties: @@ -69949,6 +69967,8 @@ definitions: imageId: type: string format: uint64 + name: + type: string image: type: string format: byte diff --git a/x/cardchain/keeper/msg_server_encounter_close.go b/x/cardchain/keeper/msg_server_encounter_close.go index 319cbe76..795e11aa 100644 --- a/x/cardchain/keeper/msg_server_encounter_close.go +++ b/x/cardchain/keeper/msg_server_encounter_close.go @@ -30,7 +30,7 @@ func (k msgServer) EncounterClose(goCtx context.Context, msg *types.MsgEncounter index := slices.Index(user.OpenEncounters, msg.EncounterId) if index == -1 { - return nil, sdkerrors.Wrapf(errors.ErrUnauthorized, "encounter %d isnt open for user", msg.EncounterId) + return nil, sdkerrors.Wrapf(errors.ErrUnauthorized, "encounter %d isn't open for user", msg.EncounterId) } user.OpenEncounters = append(user.OpenEncounters[:index], user.OpenEncounters[index+1:]...) @@ -38,6 +38,12 @@ func (k msgServer) EncounterClose(goCtx context.Context, msg *types.MsgEncounter if msg.Won { user.WonEncounters = append(user.WonEncounters, msg.EncounterId) // TODO: Treasury reward here + + encounter := k.Encounters.Get(ctx, msg.EncounterId) + if !encounter.Proven { + encounter.Proven = true + k.Encounters.Set(ctx, msg.EncounterId, encounter) + } } return &types.MsgEncounterCloseResponse{}, nil From 3edf032d14a04ddea55721585de1b98ce7149321 Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Sun, 15 Dec 2024 15:49:07 +0100 Subject: [PATCH 20/20] fix(#237): Added missing setUser to encounter close --- x/cardchain/keeper/msg_server_encounter_close.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/x/cardchain/keeper/msg_server_encounter_close.go b/x/cardchain/keeper/msg_server_encounter_close.go index 795e11aa..ce6ad744 100644 --- a/x/cardchain/keeper/msg_server_encounter_close.go +++ b/x/cardchain/keeper/msg_server_encounter_close.go @@ -46,5 +46,7 @@ func (k msgServer) EncounterClose(goCtx context.Context, msg *types.MsgEncounter } } + k.SetUserFromUser(ctx, user) + return &types.MsgEncounterCloseResponse{}, nil }