From a4ab27f29d56e1782595a2e929378d5439b3fb68 Mon Sep 17 00:00:00 2001 From: Alexander Sporn Date: Tue, 26 Jul 2022 15:12:06 +0200 Subject: [PATCH] Follow Protocol Buffers Style Guide and handle ProtocolParameter upgrades (#79) * - Changing all field names to snake_case and prefixing enum values according to the protobuf style guide (https://developers.google.com/protocol-buffers/docs/style) * - Updated iota.go/v3 to beta.4 * - Prepare beta.3 * - Cleaned up handling of protocol parameters to allow upgrades --- Cargo.toml | 2 +- examples/go/go.mod | 10 +- examples/go/go.sum | 20 +- examples/go/main.go | 4 +- go/go.mod | 10 +- go/go.sum | 20 +- go/helpers.go | 16 - go/inx.pb.go | 2035 ++++++++++++++++++++----------------------- go/inx_grpc.pb.go | 46 +- go/utils.go | 22 - proto/inx.proto | 177 ++-- 11 files changed, 1105 insertions(+), 1257 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 7b7f820..59597d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "inx" -version = "1.0.0-beta.2" +version = "1.0.0-beta.3" authors = [ "IOTA Stiftung" ] edition = "2021" description = "Rust bindings for IOTA node extensions (INX)" diff --git a/examples/go/go.mod b/examples/go/go.mod index 647eb9e..884ef90 100644 --- a/examples/go/go.mod +++ b/examples/go/go.mod @@ -19,14 +19,14 @@ require ( github.com/golang/protobuf v1.5.2 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/iotaledger/iota.go v1.0.0 // indirect - github.com/iotaledger/iota.go/v3 v3.0.0-beta.3 // indirect + github.com/iotaledger/iota.go/v3 v3.0.0-beta.4 // indirect github.com/pasztorpisti/qs v0.0.0-20171216220353-8d6c33ee906c // indirect github.com/pkg/errors v0.9.1 // indirect - golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect - golang.org/x/net v0.0.0-20220708220712-1185a9018129 // indirect + golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect + golang.org/x/net v0.0.0-20220725212005-46097bf591d3 // indirect golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f // indirect - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect + golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect golang.org/x/text v0.3.7 // indirect - google.golang.org/genproto v0.0.0-20220720214146-176da50484ac // indirect + google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b // indirect google.golang.org/protobuf v1.28.0 // indirect ) diff --git a/examples/go/go.sum b/examples/go/go.sum index bd425f6..2c874d8 100644 --- a/examples/go/go.sum +++ b/examples/go/go.sum @@ -81,8 +81,8 @@ github.com/iotaledger/hive.go/serializer/v2 v2.0.0-20220714075325-11202fe498d6 h github.com/iotaledger/hive.go/serializer/v2 v2.0.0-20220714075325-11202fe498d6/go.mod h1:7fVUqbLY+iBjCNjFwzbhOyS07OZJFIYJEDNJAItzMw8= github.com/iotaledger/iota.go v1.0.0 h1:tqm1FxJ/zOdzbrAaQ5BQpVF8dUy2eeGlSeWlNG8GoXY= github.com/iotaledger/iota.go v1.0.0/go.mod h1:RiKYwDyY7aCD1L0YRzHSjOsJ5mUR9yvQpvhZncNcGQI= -github.com/iotaledger/iota.go/v3 v3.0.0-beta.3 h1:4zJxFG7lHLPuDUr9Gxvi0gxWZynifdrxL1GCxmG9cRw= -github.com/iotaledger/iota.go/v3 v3.0.0-beta.3/go.mod h1:+9a/3it5ZSsmvDzIW6UawtNATQyzmrP+6puS8mUTHwo= +github.com/iotaledger/iota.go/v3 v3.0.0-beta.4 h1:T4yWpxaAEu/itx6QK7CaNfNMtgsdCKacdpIktiUdo78= +github.com/iotaledger/iota.go/v3 v3.0.0-beta.4/go.mod h1:+9a/3it5ZSsmvDzIW6UawtNATQyzmrP+6puS8mUTHwo= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -116,8 +116,8 @@ go.mongodb.org/mongo-driver v1.0.0/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qL go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -134,8 +134,8 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20220708220712-1185a9018129 h1:vucSRfWwTsoXro7P+3Cjlr6flUMtzCwzlvkxEQtHHB0= -golang.org/x/net v0.0.0-20220708220712-1185a9018129/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220725212005-46097bf591d3 h1:2yWTtPWWRcISTw3/o+s/Y4UOMnQL71DWyToOANFusCg= +golang.org/x/net v0.0.0-20220725212005-46097bf591d3/go.mod h1:AaygXjzTFtRAg2ttMY5RMuhpJ3cNnI0XpyFJD1iQRSM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -156,8 +156,8 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -177,8 +177,8 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20220720214146-176da50484ac h1:EOa+Yrhx1C0O+4pHeXeWrCwdI0tWI6IfUU56Vebs9wQ= -google.golang.org/genproto v0.0.0-20220720214146-176da50484ac/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= +google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b h1:SfSkJugek6xm7lWywqth4r2iTrYLpD8lOj1nMIIhMNM= +google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/examples/go/main.go b/examples/go/main.go index 1f5282b..ad03d65 100644 --- a/examples/go/main.go +++ b/examples/go/main.go @@ -31,7 +31,7 @@ func main() { panic(err) } for { - milestone, err := stream.Recv() + milestoneAndParams, err := stream.Recv() if err != nil { if err == io.EOF { break @@ -39,7 +39,7 @@ func main() { panic(err) } // Fetch all messages included by this milestone - if err := fetchMilestoneCone(client, milestone); err != nil { + if err := fetchMilestoneCone(client, milestoneAndParams.GetMilestone()); err != nil { panic(err) } } diff --git a/go/go.mod b/go/go.mod index b8673b9..e17d370 100644 --- a/go/go.mod +++ b/go/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/iotaledger/hive.go/serializer/v2 v2.0.0-20220714075325-11202fe498d6 - github.com/iotaledger/iota.go/v3 v3.0.0-beta.3 + github.com/iotaledger/iota.go/v3 v3.0.0-beta.4 github.com/pkg/errors v0.9.1 google.golang.org/grpc v1.48.0 google.golang.org/protobuf v1.28.0 @@ -22,10 +22,10 @@ require ( github.com/onsi/ginkgo v1.16.5 // indirect github.com/onsi/gomega v1.16.0 // indirect github.com/pasztorpisti/qs v0.0.0-20171216220353-8d6c33ee906c // indirect - golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect - golang.org/x/net v0.0.0-20220708220712-1185a9018129 // indirect + golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect + golang.org/x/net v0.0.0-20220725212005-46097bf591d3 // indirect golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f // indirect - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect + golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect golang.org/x/text v0.3.7 // indirect - google.golang.org/genproto v0.0.0-20220720214146-176da50484ac // indirect + google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b // indirect ) diff --git a/go/go.sum b/go/go.sum index 56a522e..99e2e3f 100644 --- a/go/go.sum +++ b/go/go.sum @@ -82,8 +82,8 @@ github.com/iotaledger/hive.go/serializer/v2 v2.0.0-20220714075325-11202fe498d6 h github.com/iotaledger/hive.go/serializer/v2 v2.0.0-20220714075325-11202fe498d6/go.mod h1:7fVUqbLY+iBjCNjFwzbhOyS07OZJFIYJEDNJAItzMw8= github.com/iotaledger/iota.go v1.0.0 h1:tqm1FxJ/zOdzbrAaQ5BQpVF8dUy2eeGlSeWlNG8GoXY= github.com/iotaledger/iota.go v1.0.0/go.mod h1:RiKYwDyY7aCD1L0YRzHSjOsJ5mUR9yvQpvhZncNcGQI= -github.com/iotaledger/iota.go/v3 v3.0.0-beta.3 h1:4zJxFG7lHLPuDUr9Gxvi0gxWZynifdrxL1GCxmG9cRw= -github.com/iotaledger/iota.go/v3 v3.0.0-beta.3/go.mod h1:+9a/3it5ZSsmvDzIW6UawtNATQyzmrP+6puS8mUTHwo= +github.com/iotaledger/iota.go/v3 v3.0.0-beta.4 h1:T4yWpxaAEu/itx6QK7CaNfNMtgsdCKacdpIktiUdo78= +github.com/iotaledger/iota.go/v3 v3.0.0-beta.4/go.mod h1:+9a/3it5ZSsmvDzIW6UawtNATQyzmrP+6puS8mUTHwo= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= @@ -123,8 +123,8 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -144,8 +144,8 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20220708220712-1185a9018129 h1:vucSRfWwTsoXro7P+3Cjlr6flUMtzCwzlvkxEQtHHB0= -golang.org/x/net v0.0.0-20220708220712-1185a9018129/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220725212005-46097bf591d3 h1:2yWTtPWWRcISTw3/o+s/Y4UOMnQL71DWyToOANFusCg= +golang.org/x/net v0.0.0-20220725212005-46097bf591d3/go.mod h1:AaygXjzTFtRAg2ttMY5RMuhpJ3cNnI0XpyFJD1iQRSM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -170,8 +170,8 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -197,8 +197,8 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20220720214146-176da50484ac h1:EOa+Yrhx1C0O+4pHeXeWrCwdI0tWI6IfUU56Vebs9wQ= -google.golang.org/genproto v0.0.0-20220720214146-176da50484ac/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= +google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b h1:SfSkJugek6xm7lWywqth4r2iTrYLpD8lOj1nMIIhMNM= +google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/go/helpers.go b/go/helpers.go index 20a85ad..5dea4ac 100644 --- a/go/helpers.go +++ b/go/helpers.go @@ -62,19 +62,3 @@ func NewMilestoneInfo(milestoneID iotago.MilestoneID, index uint32, timestamp ui MilestoneTimestamp: timestamp, } } - -func NewProtocolParameters(protoParas *iotago.ProtocolParameters) *ProtocolParameters { - return &ProtocolParameters{ - Version: uint32(protoParas.Version), - NetworkName: protoParas.NetworkName, - Bech32HRP: string(protoParas.Bech32HRP), - MinPoWScore: protoParas.MinPoWScore, - BelowMaxDepth: uint32(protoParas.BelowMaxDepth), - RentStructure: &RentStructure{ - VByteCost: protoParas.RentStructure.VByteCost, - VByteFactorData: uint32(protoParas.RentStructure.VBFactorData), - VByteFactorKey: uint32(protoParas.RentStructure.VBFactorKey), - }, - TokenSupply: protoParas.TokenSupply, - } -} diff --git a/go/inx.pb.go b/go/inx.pb.go index 6351d39..ef1abe5 100644 --- a/go/inx.pb.go +++ b/go/inx.pb.go @@ -23,22 +23,22 @@ const ( type BlockMetadata_LedgerInclusionState int32 const ( - BlockMetadata_NO_TRANSACTION BlockMetadata_LedgerInclusionState = 0 - BlockMetadata_INCLUDED BlockMetadata_LedgerInclusionState = 1 - BlockMetadata_CONFLICTING BlockMetadata_LedgerInclusionState = 2 + BlockMetadata_LEDGER_INCLUSION_STATE_NO_TRANSACTION BlockMetadata_LedgerInclusionState = 0 + BlockMetadata_LEDGER_INCLUSION_STATE_INCLUDED BlockMetadata_LedgerInclusionState = 1 + BlockMetadata_LEDGER_INCLUSION_STATE_CONFLICTING BlockMetadata_LedgerInclusionState = 2 ) // Enum value maps for BlockMetadata_LedgerInclusionState. var ( BlockMetadata_LedgerInclusionState_name = map[int32]string{ - 0: "NO_TRANSACTION", - 1: "INCLUDED", - 2: "CONFLICTING", + 0: "LEDGER_INCLUSION_STATE_NO_TRANSACTION", + 1: "LEDGER_INCLUSION_STATE_INCLUDED", + 2: "LEDGER_INCLUSION_STATE_CONFLICTING", } BlockMetadata_LedgerInclusionState_value = map[string]int32{ - "NO_TRANSACTION": 0, - "INCLUDED": 1, - "CONFLICTING": 2, + "LEDGER_INCLUSION_STATE_NO_TRANSACTION": 0, + "LEDGER_INCLUSION_STATE_INCLUDED": 1, + "LEDGER_INCLUSION_STATE_CONFLICTING": 2, } ) @@ -66,61 +66,61 @@ func (x BlockMetadata_LedgerInclusionState) Number() protoreflect.EnumNumber { // Deprecated: Use BlockMetadata_LedgerInclusionState.Descriptor instead. func (BlockMetadata_LedgerInclusionState) EnumDescriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{20, 0} + return file_inx_proto_rawDescGZIP(), []int{19, 0} } type BlockMetadata_ConflictReason int32 const ( - BlockMetadata_NONE BlockMetadata_ConflictReason = 0 - BlockMetadata_INPUT_ALREADY_SPENT BlockMetadata_ConflictReason = 1 - BlockMetadata_INPUT_ALREADY_SPENT_IN_THIS_MILESTONE BlockMetadata_ConflictReason = 2 - BlockMetadata_INPUT_NOT_FOUND BlockMetadata_ConflictReason = 3 - BlockMetadata_INPUT_OUTPUT_SUM_MISMATCH BlockMetadata_ConflictReason = 4 - BlockMetadata_INVALID_SIGNATURE BlockMetadata_ConflictReason = 5 - BlockMetadata_TIMELOCK_NOT_EXPIRED BlockMetadata_ConflictReason = 6 - BlockMetadata_INVALID_NATIVE_TOKENS BlockMetadata_ConflictReason = 7 - BlockMetadata_RETURN_AMOUNT_NOT_FULFILLED BlockMetadata_ConflictReason = 8 - BlockMetadata_INVALID_INPUT_UNLOCK BlockMetadata_ConflictReason = 9 - BlockMetadata_INVALID_INPUTS_COMMITMENT BlockMetadata_ConflictReason = 10 - BlockMetadata_INVALID_SENDER BlockMetadata_ConflictReason = 11 - BlockMetadata_INVALID_CHAIN_STATE_TRANSITION BlockMetadata_ConflictReason = 12 - BlockMetadata_SEMANTIC_VALIDATION_FAILED BlockMetadata_ConflictReason = 255 + BlockMetadata_CONFLICT_REASON_NONE BlockMetadata_ConflictReason = 0 + BlockMetadata_CONFLICT_REASON_INPUT_ALREADY_SPENT BlockMetadata_ConflictReason = 1 + BlockMetadata_CONFLICT_REASON_INPUT_ALREADY_SPENT_IN_THIS_MILESTONE BlockMetadata_ConflictReason = 2 + BlockMetadata_CONFLICT_REASON_INPUT_NOT_FOUND BlockMetadata_ConflictReason = 3 + BlockMetadata_CONFLICT_REASON_INPUT_OUTPUT_SUM_MISMATCH BlockMetadata_ConflictReason = 4 + BlockMetadata_CONFLICT_REASON_INVALID_SIGNATURE BlockMetadata_ConflictReason = 5 + BlockMetadata_CONFLICT_REASON_TIMELOCK_NOT_EXPIRED BlockMetadata_ConflictReason = 6 + BlockMetadata_CONFLICT_REASON_INVALID_NATIVE_TOKENS BlockMetadata_ConflictReason = 7 + BlockMetadata_CONFLICT_REASON_RETURN_AMOUNT_NOT_FULFILLED BlockMetadata_ConflictReason = 8 + BlockMetadata_CONFLICT_REASON_INVALID_INPUT_UNLOCK BlockMetadata_ConflictReason = 9 + BlockMetadata_CONFLICT_REASON_INVALID_INPUTS_COMMITMENT BlockMetadata_ConflictReason = 10 + BlockMetadata_CONFLICT_REASON_INVALID_SENDER BlockMetadata_ConflictReason = 11 + BlockMetadata_CONFLICT_REASON_INVALID_CHAIN_STATE_TRANSITION BlockMetadata_ConflictReason = 12 + BlockMetadata_CONFLICT_REASON_SEMANTIC_VALIDATION_FAILED BlockMetadata_ConflictReason = 255 ) // Enum value maps for BlockMetadata_ConflictReason. var ( BlockMetadata_ConflictReason_name = map[int32]string{ - 0: "NONE", - 1: "INPUT_ALREADY_SPENT", - 2: "INPUT_ALREADY_SPENT_IN_THIS_MILESTONE", - 3: "INPUT_NOT_FOUND", - 4: "INPUT_OUTPUT_SUM_MISMATCH", - 5: "INVALID_SIGNATURE", - 6: "TIMELOCK_NOT_EXPIRED", - 7: "INVALID_NATIVE_TOKENS", - 8: "RETURN_AMOUNT_NOT_FULFILLED", - 9: "INVALID_INPUT_UNLOCK", - 10: "INVALID_INPUTS_COMMITMENT", - 11: "INVALID_SENDER", - 12: "INVALID_CHAIN_STATE_TRANSITION", - 255: "SEMANTIC_VALIDATION_FAILED", + 0: "CONFLICT_REASON_NONE", + 1: "CONFLICT_REASON_INPUT_ALREADY_SPENT", + 2: "CONFLICT_REASON_INPUT_ALREADY_SPENT_IN_THIS_MILESTONE", + 3: "CONFLICT_REASON_INPUT_NOT_FOUND", + 4: "CONFLICT_REASON_INPUT_OUTPUT_SUM_MISMATCH", + 5: "CONFLICT_REASON_INVALID_SIGNATURE", + 6: "CONFLICT_REASON_TIMELOCK_NOT_EXPIRED", + 7: "CONFLICT_REASON_INVALID_NATIVE_TOKENS", + 8: "CONFLICT_REASON_RETURN_AMOUNT_NOT_FULFILLED", + 9: "CONFLICT_REASON_INVALID_INPUT_UNLOCK", + 10: "CONFLICT_REASON_INVALID_INPUTS_COMMITMENT", + 11: "CONFLICT_REASON_INVALID_SENDER", + 12: "CONFLICT_REASON_INVALID_CHAIN_STATE_TRANSITION", + 255: "CONFLICT_REASON_SEMANTIC_VALIDATION_FAILED", } BlockMetadata_ConflictReason_value = map[string]int32{ - "NONE": 0, - "INPUT_ALREADY_SPENT": 1, - "INPUT_ALREADY_SPENT_IN_THIS_MILESTONE": 2, - "INPUT_NOT_FOUND": 3, - "INPUT_OUTPUT_SUM_MISMATCH": 4, - "INVALID_SIGNATURE": 5, - "TIMELOCK_NOT_EXPIRED": 6, - "INVALID_NATIVE_TOKENS": 7, - "RETURN_AMOUNT_NOT_FULFILLED": 8, - "INVALID_INPUT_UNLOCK": 9, - "INVALID_INPUTS_COMMITMENT": 10, - "INVALID_SENDER": 11, - "INVALID_CHAIN_STATE_TRANSITION": 12, - "SEMANTIC_VALIDATION_FAILED": 255, + "CONFLICT_REASON_NONE": 0, + "CONFLICT_REASON_INPUT_ALREADY_SPENT": 1, + "CONFLICT_REASON_INPUT_ALREADY_SPENT_IN_THIS_MILESTONE": 2, + "CONFLICT_REASON_INPUT_NOT_FOUND": 3, + "CONFLICT_REASON_INPUT_OUTPUT_SUM_MISMATCH": 4, + "CONFLICT_REASON_INVALID_SIGNATURE": 5, + "CONFLICT_REASON_TIMELOCK_NOT_EXPIRED": 6, + "CONFLICT_REASON_INVALID_NATIVE_TOKENS": 7, + "CONFLICT_REASON_RETURN_AMOUNT_NOT_FULFILLED": 8, + "CONFLICT_REASON_INVALID_INPUT_UNLOCK": 9, + "CONFLICT_REASON_INVALID_INPUTS_COMMITMENT": 10, + "CONFLICT_REASON_INVALID_SENDER": 11, + "CONFLICT_REASON_INVALID_CHAIN_STATE_TRANSITION": 12, + "CONFLICT_REASON_SEMANTIC_VALIDATION_FAILED": 255, } ) @@ -148,7 +148,7 @@ func (x BlockMetadata_ConflictReason) Number() protoreflect.EnumNumber { // Deprecated: Use BlockMetadata_ConflictReason.Descriptor instead. func (BlockMetadata_ConflictReason) EnumDescriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{20, 1} + return file_inx_proto_rawDescGZIP(), []int{19, 1} } type NoParams struct { @@ -195,12 +195,10 @@ type NodeConfiguration struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ProtocolParameters *ProtocolParameters `protobuf:"bytes,1,opt,name=protocolParameters,proto3" json:"protocolParameters,omitempty"` - MilestonePublicKeyCount uint32 `protobuf:"varint,2,opt,name=milestonePublicKeyCount,proto3" json:"milestonePublicKeyCount,omitempty"` - MilestoneKeyRanges []*MilestoneKeyRange `protobuf:"bytes,3,rep,name=milestoneKeyRanges,proto3" json:"milestoneKeyRanges,omitempty"` - BaseToken *BaseToken `protobuf:"bytes,4,opt,name=baseToken,proto3" json:"baseToken,omitempty"` - SupportedProtocolVersions []uint32 `protobuf:"varint,5,rep,packed,name=supportedProtocolVersions,proto3" json:"supportedProtocolVersions,omitempty"` - PendingProtocolParameters []*PendingProtocolParameters `protobuf:"bytes,6,rep,name=pendingProtocolParameters,proto3" json:"pendingProtocolParameters,omitempty"` + MilestonePublicKeyCount uint32 `protobuf:"varint,1,opt,name=milestone_public_key_count,json=milestonePublicKeyCount,proto3" json:"milestone_public_key_count,omitempty"` + MilestoneKeyRanges []*MilestoneKeyRange `protobuf:"bytes,2,rep,name=milestone_key_ranges,json=milestoneKeyRanges,proto3" json:"milestone_key_ranges,omitempty"` + BaseToken *BaseToken `protobuf:"bytes,3,opt,name=base_token,json=baseToken,proto3" json:"base_token,omitempty"` + SupportedProtocolVersions []uint32 `protobuf:"varint,4,rep,packed,name=supported_protocol_versions,json=supportedProtocolVersions,proto3" json:"supported_protocol_versions,omitempty"` } func (x *NodeConfiguration) Reset() { @@ -235,13 +233,6 @@ func (*NodeConfiguration) Descriptor() ([]byte, []int) { return file_inx_proto_rawDescGZIP(), []int{1} } -func (x *NodeConfiguration) GetProtocolParameters() *ProtocolParameters { - if x != nil { - return x.ProtocolParameters - } - return nil -} - func (x *NodeConfiguration) GetMilestonePublicKeyCount() uint32 { if x != nil { return x.MilestonePublicKeyCount @@ -270,188 +261,23 @@ func (x *NodeConfiguration) GetSupportedProtocolVersions() []uint32 { return nil } -func (x *NodeConfiguration) GetPendingProtocolParameters() []*PendingProtocolParameters { - if x != nil { - return x.PendingProtocolParameters - } - return nil -} - -type ProtocolParameters struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` - NetworkName string `protobuf:"bytes,2,opt,name=networkName,proto3" json:"networkName,omitempty"` - Bech32HRP string `protobuf:"bytes,3,opt,name=bech32HRP,proto3" json:"bech32HRP,omitempty"` - MinPoWScore uint32 `protobuf:"varint,4,opt,name=minPoWScore,proto3" json:"minPoWScore,omitempty"` - BelowMaxDepth uint32 `protobuf:"varint,5,opt,name=belowMaxDepth,proto3" json:"belowMaxDepth,omitempty"` - RentStructure *RentStructure `protobuf:"bytes,6,opt,name=rentStructure,proto3" json:"rentStructure,omitempty"` - TokenSupply uint64 `protobuf:"varint,7,opt,name=tokenSupply,proto3" json:"tokenSupply,omitempty"` -} - -func (x *ProtocolParameters) Reset() { - *x = ProtocolParameters{} - if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProtocolParameters) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProtocolParameters) ProtoMessage() {} - -func (x *ProtocolParameters) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ProtocolParameters.ProtoReflect.Descriptor instead. -func (*ProtocolParameters) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{2} -} - -func (x *ProtocolParameters) GetVersion() uint32 { - if x != nil { - return x.Version - } - return 0 -} - -func (x *ProtocolParameters) GetNetworkName() string { - if x != nil { - return x.NetworkName - } - return "" -} - -func (x *ProtocolParameters) GetBech32HRP() string { - if x != nil { - return x.Bech32HRP - } - return "" -} - -func (x *ProtocolParameters) GetMinPoWScore() uint32 { - if x != nil { - return x.MinPoWScore - } - return 0 -} - -func (x *ProtocolParameters) GetBelowMaxDepth() uint32 { - if x != nil { - return x.BelowMaxDepth - } - return 0 -} - -func (x *ProtocolParameters) GetRentStructure() *RentStructure { - if x != nil { - return x.RentStructure - } - return nil -} - -func (x *ProtocolParameters) GetTokenSupply() uint64 { - if x != nil { - return x.TokenSupply - } - return 0 -} - -type PendingProtocolParameters struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TargetMilestoneIndex uint32 `protobuf:"varint,1,opt,name=targetMilestoneIndex,proto3" json:"targetMilestoneIndex,omitempty"` - Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` - Params []byte `protobuf:"bytes,3,opt,name=params,proto3" json:"params,omitempty"` -} - -func (x *PendingProtocolParameters) Reset() { - *x = PendingProtocolParameters{} - if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PendingProtocolParameters) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PendingProtocolParameters) ProtoMessage() {} - -func (x *PendingProtocolParameters) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PendingProtocolParameters.ProtoReflect.Descriptor instead. -func (*PendingProtocolParameters) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{3} -} - -func (x *PendingProtocolParameters) GetTargetMilestoneIndex() uint32 { - if x != nil { - return x.TargetMilestoneIndex - } - return 0 -} - -func (x *PendingProtocolParameters) GetVersion() uint32 { - if x != nil { - return x.Version - } - return 0 -} - -func (x *PendingProtocolParameters) GetParams() []byte { - if x != nil { - return x.Params - } - return nil -} - type BaseToken struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - TickerSymbol string `protobuf:"bytes,2,opt,name=tickerSymbol,proto3" json:"tickerSymbol,omitempty"` + TickerSymbol string `protobuf:"bytes,2,opt,name=ticker_symbol,json=tickerSymbol,proto3" json:"ticker_symbol,omitempty"` Unit string `protobuf:"bytes,3,opt,name=unit,proto3" json:"unit,omitempty"` Subunit string `protobuf:"bytes,4,opt,name=subunit,proto3" json:"subunit,omitempty"` Decimals uint32 `protobuf:"varint,5,opt,name=decimals,proto3" json:"decimals,omitempty"` - UseMetricPrefix bool `protobuf:"varint,6,opt,name=useMetricPrefix,proto3" json:"useMetricPrefix,omitempty"` + UseMetricPrefix bool `protobuf:"varint,6,opt,name=use_metric_prefix,json=useMetricPrefix,proto3" json:"use_metric_prefix,omitempty"` } func (x *BaseToken) Reset() { *x = BaseToken{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[4] + mi := &file_inx_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -464,7 +290,7 @@ func (x *BaseToken) String() string { func (*BaseToken) ProtoMessage() {} func (x *BaseToken) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[4] + mi := &file_inx_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -477,7 +303,7 @@ func (x *BaseToken) ProtoReflect() protoreflect.Message { // Deprecated: Use BaseToken.ProtoReflect.Descriptor instead. func (*BaseToken) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{4} + return file_inx_proto_rawDescGZIP(), []int{2} } func (x *BaseToken) GetName() string { @@ -527,15 +353,15 @@ type MilestoneKeyRange struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PublicKey []byte `protobuf:"bytes,1,opt,name=publicKey,proto3" json:"publicKey,omitempty"` - StartIndex uint32 `protobuf:"varint,2,opt,name=startIndex,proto3" json:"startIndex,omitempty"` - EndIndex uint32 `protobuf:"varint,3,opt,name=endIndex,proto3" json:"endIndex,omitempty"` + PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + StartIndex uint32 `protobuf:"varint,2,opt,name=start_index,json=startIndex,proto3" json:"start_index,omitempty"` + EndIndex uint32 `protobuf:"varint,3,opt,name=end_index,json=endIndex,proto3" json:"end_index,omitempty"` } func (x *MilestoneKeyRange) Reset() { *x = MilestoneKeyRange{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[5] + mi := &file_inx_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -548,7 +374,7 @@ func (x *MilestoneKeyRange) String() string { func (*MilestoneKeyRange) ProtoMessage() {} func (x *MilestoneKeyRange) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[5] + mi := &file_inx_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -561,7 +387,7 @@ func (x *MilestoneKeyRange) ProtoReflect() protoreflect.Message { // Deprecated: Use MilestoneKeyRange.ProtoReflect.Descriptor instead. func (*MilestoneKeyRange) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{5} + return file_inx_proto_rawDescGZIP(), []int{3} } func (x *MilestoneKeyRange) GetPublicKey() []byte { @@ -585,87 +411,24 @@ func (x *MilestoneKeyRange) GetEndIndex() uint32 { return 0 } -type RentStructure struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - VByteCost uint32 `protobuf:"varint,1,opt,name=vByteCost,proto3" json:"vByteCost,omitempty"` - VByteFactorData uint32 `protobuf:"varint,2,opt,name=vByteFactorData,proto3" json:"vByteFactorData,omitempty"` - VByteFactorKey uint32 `protobuf:"varint,3,opt,name=vByteFactorKey,proto3" json:"vByteFactorKey,omitempty"` -} - -func (x *RentStructure) Reset() { - *x = RentStructure{} - if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RentStructure) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RentStructure) ProtoMessage() {} - -func (x *RentStructure) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RentStructure.ProtoReflect.Descriptor instead. -func (*RentStructure) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{6} -} - -func (x *RentStructure) GetVByteCost() uint32 { - if x != nil { - return x.VByteCost - } - return 0 -} - -func (x *RentStructure) GetVByteFactorData() uint32 { - if x != nil { - return x.VByteFactorData - } - return 0 -} - -func (x *RentStructure) GetVByteFactorKey() uint32 { - if x != nil { - return x.VByteFactorKey - } - return 0 -} - type NodeStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IsHealthy bool `protobuf:"varint,1,opt,name=isHealthy,proto3" json:"isHealthy,omitempty"` - LatestMilestone *Milestone `protobuf:"bytes,2,opt,name=latestMilestone,proto3" json:"latestMilestone,omitempty"` - ConfirmedMilestone *Milestone `protobuf:"bytes,3,opt,name=confirmedMilestone,proto3" json:"confirmedMilestone,omitempty"` - TanglePruningIndex uint32 `protobuf:"varint,4,opt,name=tanglePruningIndex,proto3" json:"tanglePruningIndex,omitempty"` - MilestonesPruningIndex uint32 `protobuf:"varint,5,opt,name=milestonesPruningIndex,proto3" json:"milestonesPruningIndex,omitempty"` - LedgerPruningIndex uint32 `protobuf:"varint,6,opt,name=ledgerPruningIndex,proto3" json:"ledgerPruningIndex,omitempty"` - LedgerIndex uint32 `protobuf:"varint,7,opt,name=ledgerIndex,proto3" json:"ledgerIndex,omitempty"` + IsHealthy bool `protobuf:"varint,1,opt,name=is_healthy,json=isHealthy,proto3" json:"is_healthy,omitempty"` + LatestMilestone *Milestone `protobuf:"bytes,2,opt,name=latest_milestone,json=latestMilestone,proto3" json:"latest_milestone,omitempty"` + ConfirmedMilestone *Milestone `protobuf:"bytes,3,opt,name=confirmed_milestone,json=confirmedMilestone,proto3" json:"confirmed_milestone,omitempty"` + TanglePruningIndex uint32 `protobuf:"varint,4,opt,name=tangle_pruning_index,json=tanglePruningIndex,proto3" json:"tangle_pruning_index,omitempty"` + MilestonesPruningIndex uint32 `protobuf:"varint,5,opt,name=milestones_pruning_index,json=milestonesPruningIndex,proto3" json:"milestones_pruning_index,omitempty"` + LedgerPruningIndex uint32 `protobuf:"varint,6,opt,name=ledger_pruning_index,json=ledgerPruningIndex,proto3" json:"ledger_pruning_index,omitempty"` + LedgerIndex uint32 `protobuf:"varint,7,opt,name=ledger_index,json=ledgerIndex,proto3" json:"ledger_index,omitempty"` } func (x *NodeStatus) Reset() { *x = NodeStatus{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[7] + mi := &file_inx_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -678,7 +441,7 @@ func (x *NodeStatus) String() string { func (*NodeStatus) ProtoMessage() {} func (x *NodeStatus) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[7] + mi := &file_inx_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -691,7 +454,7 @@ func (x *NodeStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeStatus.ProtoReflect.Descriptor instead. func (*NodeStatus) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{7} + return file_inx_proto_rawDescGZIP(), []int{4} } func (x *NodeStatus) GetIsHealthy() bool { @@ -743,6 +506,61 @@ func (x *NodeStatus) GetLedgerIndex() uint32 { return 0 } +type RawProtocolParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProtocolVersion uint32 `protobuf:"varint,1,opt,name=protocol_version,json=protocolVersion,proto3" json:"protocol_version,omitempty"` + Params []byte `protobuf:"bytes,2,opt,name=params,proto3" json:"params,omitempty"` +} + +func (x *RawProtocolParameters) Reset() { + *x = RawProtocolParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_inx_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RawProtocolParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RawProtocolParameters) ProtoMessage() {} + +func (x *RawProtocolParameters) ProtoReflect() protoreflect.Message { + mi := &file_inx_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RawProtocolParameters.ProtoReflect.Descriptor instead. +func (*RawProtocolParameters) Descriptor() ([]byte, []int) { + return file_inx_proto_rawDescGZIP(), []int{5} +} + +func (x *RawProtocolParameters) GetProtocolVersion() uint32 { + if x != nil { + return x.ProtocolVersion + } + return 0 +} + +func (x *RawProtocolParameters) GetParams() []byte { + if x != nil { + return x.Params + } + return nil +} + // Milestones type RawMilestone struct { state protoimpl.MessageState @@ -755,7 +573,7 @@ type RawMilestone struct { func (x *RawMilestone) Reset() { *x = RawMilestone{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[8] + mi := &file_inx_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -768,7 +586,7 @@ func (x *RawMilestone) String() string { func (*RawMilestone) ProtoMessage() {} func (x *RawMilestone) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[8] + mi := &file_inx_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -781,7 +599,7 @@ func (x *RawMilestone) ProtoReflect() protoreflect.Message { // Deprecated: Use RawMilestone.ProtoReflect.Descriptor instead. func (*RawMilestone) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{8} + return file_inx_proto_rawDescGZIP(), []int{6} } func (x *RawMilestone) GetData() []byte { @@ -802,7 +620,7 @@ type MilestoneId struct { func (x *MilestoneId) Reset() { *x = MilestoneId{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[9] + mi := &file_inx_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -815,7 +633,7 @@ func (x *MilestoneId) String() string { func (*MilestoneId) ProtoMessage() {} func (x *MilestoneId) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[9] + mi := &file_inx_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -828,7 +646,7 @@ func (x *MilestoneId) ProtoReflect() protoreflect.Message { // Deprecated: Use MilestoneId.ProtoReflect.Descriptor instead. func (*MilestoneId) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{9} + return file_inx_proto_rawDescGZIP(), []int{7} } func (x *MilestoneId) GetId() []byte { @@ -843,14 +661,14 @@ type MilestoneRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MilestoneIndex uint32 `protobuf:"varint,1,opt,name=milestoneIndex,proto3" json:"milestoneIndex,omitempty"` - MilestoneId *MilestoneId `protobuf:"bytes,2,opt,name=milestoneId,proto3" json:"milestoneId,omitempty"` + MilestoneIndex uint32 `protobuf:"varint,1,opt,name=milestone_index,json=milestoneIndex,proto3" json:"milestone_index,omitempty"` + MilestoneId *MilestoneId `protobuf:"bytes,2,opt,name=milestone_id,json=milestoneId,proto3" json:"milestone_id,omitempty"` } func (x *MilestoneRequest) Reset() { *x = MilestoneRequest{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[10] + mi := &file_inx_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -863,7 +681,7 @@ func (x *MilestoneRequest) String() string { func (*MilestoneRequest) ProtoMessage() {} func (x *MilestoneRequest) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[10] + mi := &file_inx_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -876,7 +694,7 @@ func (x *MilestoneRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MilestoneRequest.ProtoReflect.Descriptor instead. func (*MilestoneRequest) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{10} + return file_inx_proto_rawDescGZIP(), []int{8} } func (x *MilestoneRequest) GetMilestoneIndex() uint32 { @@ -898,16 +716,16 @@ type MilestoneRangeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // startMilestoneIndex is the initial milestone to get. Use 0 to start from the current node status. - StartMilestoneIndex uint32 `protobuf:"varint,1,opt,name=startMilestoneIndex,proto3" json:"startMilestoneIndex,omitempty"` - // endMilestoneIndex is the last milestone to get (inclusive). Use 0 to keep getting new confirmed milestones. - EndMilestoneIndex uint32 `protobuf:"varint,2,opt,name=endMilestoneIndex,proto3" json:"endMilestoneIndex,omitempty"` + // start_milestone_index is the initial milestone to get. Use 0 to start from the current node status. + StartMilestoneIndex uint32 `protobuf:"varint,1,opt,name=start_milestone_index,json=startMilestoneIndex,proto3" json:"start_milestone_index,omitempty"` + // end_milestone_index is the last milestone to get (inclusive). Use 0 to keep getting new confirmed milestones. + EndMilestoneIndex uint32 `protobuf:"varint,2,opt,name=end_milestone_index,json=endMilestoneIndex,proto3" json:"end_milestone_index,omitempty"` } func (x *MilestoneRangeRequest) Reset() { *x = MilestoneRangeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[11] + mi := &file_inx_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -920,7 +738,7 @@ func (x *MilestoneRangeRequest) String() string { func (*MilestoneRangeRequest) ProtoMessage() {} func (x *MilestoneRangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[11] + mi := &file_inx_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -933,7 +751,7 @@ func (x *MilestoneRangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MilestoneRangeRequest.ProtoReflect.Descriptor instead. func (*MilestoneRangeRequest) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{11} + return file_inx_proto_rawDescGZIP(), []int{9} } func (x *MilestoneRangeRequest) GetStartMilestoneIndex() uint32 { @@ -956,16 +774,16 @@ type MilestoneInfo struct { unknownFields protoimpl.UnknownFields // Optional. This field can be missing for example if there are no milestones yet in a network. - MilestoneId *MilestoneId `protobuf:"bytes,1,opt,name=milestoneId,proto3" json:"milestoneId,omitempty"` - MilestoneIndex uint32 `protobuf:"varint,2,opt,name=milestoneIndex,proto3" json:"milestoneIndex,omitempty"` + MilestoneId *MilestoneId `protobuf:"bytes,1,opt,name=milestone_id,json=milestoneId,proto3" json:"milestone_id,omitempty"` + MilestoneIndex uint32 `protobuf:"varint,2,opt,name=milestone_index,json=milestoneIndex,proto3" json:"milestone_index,omitempty"` // Optional. This field can be missing for example if there are no milestones yet in a network. - MilestoneTimestamp uint32 `protobuf:"varint,3,opt,name=milestoneTimestamp,proto3" json:"milestoneTimestamp,omitempty"` + MilestoneTimestamp uint32 `protobuf:"varint,3,opt,name=milestone_timestamp,json=milestoneTimestamp,proto3" json:"milestone_timestamp,omitempty"` } func (x *MilestoneInfo) Reset() { *x = MilestoneInfo{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[12] + mi := &file_inx_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -978,7 +796,7 @@ func (x *MilestoneInfo) String() string { func (*MilestoneInfo) ProtoMessage() {} func (x *MilestoneInfo) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[12] + mi := &file_inx_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -991,7 +809,7 @@ func (x *MilestoneInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use MilestoneInfo.ProtoReflect.Descriptor instead. func (*MilestoneInfo) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{12} + return file_inx_proto_rawDescGZIP(), []int{10} } func (x *MilestoneInfo) GetMilestoneId() *MilestoneId { @@ -1010,38 +828,93 @@ func (x *MilestoneInfo) GetMilestoneIndex() uint32 { func (x *MilestoneInfo) GetMilestoneTimestamp() uint32 { if x != nil { - return x.MilestoneTimestamp + return x.MilestoneTimestamp + } + return 0 +} + +type Milestone struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MilestoneInfo *MilestoneInfo `protobuf:"bytes,1,opt,name=milestone_info,json=milestoneInfo,proto3" json:"milestone_info,omitempty"` + // Optional. This field can be missing for example if there are no milestones yet in a network. + Milestone *RawMilestone `protobuf:"bytes,2,opt,name=milestone,proto3" json:"milestone,omitempty"` +} + +func (x *Milestone) Reset() { + *x = Milestone{} + if protoimpl.UnsafeEnabled { + mi := &file_inx_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Milestone) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Milestone) ProtoMessage() {} + +func (x *Milestone) ProtoReflect() protoreflect.Message { + mi := &file_inx_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Milestone.ProtoReflect.Descriptor instead. +func (*Milestone) Descriptor() ([]byte, []int) { + return file_inx_proto_rawDescGZIP(), []int{11} +} + +func (x *Milestone) GetMilestoneInfo() *MilestoneInfo { + if x != nil { + return x.MilestoneInfo + } + return nil +} + +func (x *Milestone) GetMilestone() *RawMilestone { + if x != nil { + return x.Milestone } - return 0 + return nil } -type Milestone struct { +type MilestoneAndProtocolParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MilestoneInfo *MilestoneInfo `protobuf:"bytes,1,opt,name=milestoneInfo,proto3" json:"milestoneInfo,omitempty"` - // Optional. This field can be missing for example if there are no milestones yet in a network. - Milestone *RawMilestone `protobuf:"bytes,2,opt,name=milestone,proto3" json:"milestone,omitempty"` + Milestone *Milestone `protobuf:"bytes,1,opt,name=milestone,proto3" json:"milestone,omitempty"` + CurrentProtocolParameters *RawProtocolParameters `protobuf:"bytes,2,opt,name=current_protocol_parameters,json=currentProtocolParameters,proto3" json:"current_protocol_parameters,omitempty"` } -func (x *Milestone) Reset() { - *x = Milestone{} +func (x *MilestoneAndProtocolParameters) Reset() { + *x = MilestoneAndProtocolParameters{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[13] + mi := &file_inx_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Milestone) String() string { +func (x *MilestoneAndProtocolParameters) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Milestone) ProtoMessage() {} +func (*MilestoneAndProtocolParameters) ProtoMessage() {} -func (x *Milestone) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[13] +func (x *MilestoneAndProtocolParameters) ProtoReflect() protoreflect.Message { + mi := &file_inx_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1052,21 +925,21 @@ func (x *Milestone) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Milestone.ProtoReflect.Descriptor instead. -func (*Milestone) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{13} +// Deprecated: Use MilestoneAndProtocolParameters.ProtoReflect.Descriptor instead. +func (*MilestoneAndProtocolParameters) Descriptor() ([]byte, []int) { + return file_inx_proto_rawDescGZIP(), []int{12} } -func (x *Milestone) GetMilestoneInfo() *MilestoneInfo { +func (x *MilestoneAndProtocolParameters) GetMilestone() *Milestone { if x != nil { - return x.MilestoneInfo + return x.Milestone } return nil } -func (x *Milestone) GetMilestone() *RawMilestone { +func (x *MilestoneAndProtocolParameters) GetCurrentProtocolParameters() *RawProtocolParameters { if x != nil { - return x.Milestone + return x.CurrentProtocolParameters } return nil } @@ -1076,16 +949,16 @@ type WhiteFlagRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MilestoneIndex uint32 `protobuf:"varint,1,opt,name=milestoneIndex,proto3" json:"milestoneIndex,omitempty"` - MilestoneTimestamp uint32 `protobuf:"varint,2,opt,name=milestoneTimestamp,proto3" json:"milestoneTimestamp,omitempty"` + MilestoneIndex uint32 `protobuf:"varint,1,opt,name=milestone_index,json=milestoneIndex,proto3" json:"milestone_index,omitempty"` + MilestoneTimestamp uint32 `protobuf:"varint,2,opt,name=milestone_timestamp,json=milestoneTimestamp,proto3" json:"milestone_timestamp,omitempty"` Parents []*BlockId `protobuf:"bytes,3,rep,name=parents,proto3" json:"parents,omitempty"` - PreviousMilestoneId *MilestoneId `protobuf:"bytes,4,opt,name=previousMilestoneId,proto3" json:"previousMilestoneId,omitempty"` + PreviousMilestoneId *MilestoneId `protobuf:"bytes,4,opt,name=previous_milestone_id,json=previousMilestoneId,proto3" json:"previous_milestone_id,omitempty"` } func (x *WhiteFlagRequest) Reset() { *x = WhiteFlagRequest{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[14] + mi := &file_inx_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1098,7 +971,7 @@ func (x *WhiteFlagRequest) String() string { func (*WhiteFlagRequest) ProtoMessage() {} func (x *WhiteFlagRequest) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[14] + mi := &file_inx_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1111,7 +984,7 @@ func (x *WhiteFlagRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WhiteFlagRequest.ProtoReflect.Descriptor instead. func (*WhiteFlagRequest) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{14} + return file_inx_proto_rawDescGZIP(), []int{13} } func (x *WhiteFlagRequest) GetMilestoneIndex() uint32 { @@ -1147,14 +1020,14 @@ type WhiteFlagResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MilestoneInclusionMerkleRoot []byte `protobuf:"bytes,1,opt,name=milestoneInclusionMerkleRoot,proto3" json:"milestoneInclusionMerkleRoot,omitempty"` - MilestoneAppliedMerkleRoot []byte `protobuf:"bytes,2,opt,name=milestoneAppliedMerkleRoot,proto3" json:"milestoneAppliedMerkleRoot,omitempty"` + MilestoneInclusionMerkleRoot []byte `protobuf:"bytes,1,opt,name=milestone_inclusion_merkle_root,json=milestoneInclusionMerkleRoot,proto3" json:"milestone_inclusion_merkle_root,omitempty"` + MilestoneAppliedMerkleRoot []byte `protobuf:"bytes,2,opt,name=milestone_applied_merkle_root,json=milestoneAppliedMerkleRoot,proto3" json:"milestone_applied_merkle_root,omitempty"` } func (x *WhiteFlagResponse) Reset() { *x = WhiteFlagResponse{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[15] + mi := &file_inx_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1167,7 +1040,7 @@ func (x *WhiteFlagResponse) String() string { func (*WhiteFlagResponse) ProtoMessage() {} func (x *WhiteFlagResponse) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[15] + mi := &file_inx_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1180,7 +1053,7 @@ func (x *WhiteFlagResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WhiteFlagResponse.ProtoReflect.Descriptor instead. func (*WhiteFlagResponse) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{15} + return file_inx_proto_rawDescGZIP(), []int{14} } func (x *WhiteFlagResponse) GetMilestoneInclusionMerkleRoot() []byte { @@ -1209,7 +1082,7 @@ type RawBlock struct { func (x *RawBlock) Reset() { *x = RawBlock{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[16] + mi := &file_inx_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1222,7 +1095,7 @@ func (x *RawBlock) String() string { func (*RawBlock) ProtoMessage() {} func (x *RawBlock) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[16] + mi := &file_inx_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1235,7 +1108,7 @@ func (x *RawBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use RawBlock.ProtoReflect.Descriptor instead. func (*RawBlock) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{16} + return file_inx_proto_rawDescGZIP(), []int{15} } func (x *RawBlock) GetData() []byte { @@ -1256,7 +1129,7 @@ type BlockId struct { func (x *BlockId) Reset() { *x = BlockId{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[17] + mi := &file_inx_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1269,7 +1142,7 @@ func (x *BlockId) String() string { func (*BlockId) ProtoMessage() {} func (x *BlockId) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[17] + mi := &file_inx_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1282,7 +1155,7 @@ func (x *BlockId) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockId.ProtoReflect.Descriptor instead. func (*BlockId) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{17} + return file_inx_proto_rawDescGZIP(), []int{16} } func (x *BlockId) GetId() []byte { @@ -1297,14 +1170,14 @@ type Block struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BlockId *BlockId `protobuf:"bytes,1,opt,name=blockId,proto3" json:"blockId,omitempty"` + BlockId *BlockId `protobuf:"bytes,1,opt,name=block_id,json=blockId,proto3" json:"block_id,omitempty"` Block *RawBlock `protobuf:"bytes,2,opt,name=block,proto3" json:"block,omitempty"` } func (x *Block) Reset() { *x = Block{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[18] + mi := &file_inx_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1317,7 +1190,7 @@ func (x *Block) String() string { func (*Block) ProtoMessage() {} func (x *Block) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[18] + mi := &file_inx_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1330,7 +1203,7 @@ func (x *Block) ProtoReflect() protoreflect.Message { // Deprecated: Use Block.ProtoReflect.Descriptor instead. func (*Block) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{18} + return file_inx_proto_rawDescGZIP(), []int{17} } func (x *Block) GetBlockId() *BlockId { @@ -1359,7 +1232,7 @@ type BlockWithMetadata struct { func (x *BlockWithMetadata) Reset() { *x = BlockWithMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[19] + mi := &file_inx_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1372,7 +1245,7 @@ func (x *BlockWithMetadata) String() string { func (*BlockWithMetadata) ProtoMessage() {} func (x *BlockWithMetadata) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[19] + mi := &file_inx_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1385,7 +1258,7 @@ func (x *BlockWithMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockWithMetadata.ProtoReflect.Descriptor instead. func (*BlockWithMetadata) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{19} + return file_inx_proto_rawDescGZIP(), []int{18} } func (x *BlockWithMetadata) GetMetadata() *BlockMetadata { @@ -1407,22 +1280,22 @@ type BlockMetadata struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BlockId *BlockId `protobuf:"bytes,1,opt,name=blockId,proto3" json:"blockId,omitempty"` + BlockId *BlockId `protobuf:"bytes,1,opt,name=block_id,json=blockId,proto3" json:"block_id,omitempty"` Parents []*BlockId `protobuf:"bytes,2,rep,name=parents,proto3" json:"parents,omitempty"` Solid bool `protobuf:"varint,3,opt,name=solid,proto3" json:"solid,omitempty"` - ShouldPromote bool `protobuf:"varint,4,opt,name=shouldPromote,proto3" json:"shouldPromote,omitempty"` - ShouldReattach bool `protobuf:"varint,5,opt,name=shouldReattach,proto3" json:"shouldReattach,omitempty"` - ReferencedByMilestoneIndex uint32 `protobuf:"varint,6,opt,name=referencedByMilestoneIndex,proto3" json:"referencedByMilestoneIndex,omitempty"` - MilestoneIndex uint32 `protobuf:"varint,7,opt,name=milestoneIndex,proto3" json:"milestoneIndex,omitempty"` - LedgerInclusionState BlockMetadata_LedgerInclusionState `protobuf:"varint,8,opt,name=ledgerInclusionState,proto3,enum=inx.BlockMetadata_LedgerInclusionState" json:"ledgerInclusionState,omitempty"` - ConflictReason BlockMetadata_ConflictReason `protobuf:"varint,9,opt,name=conflictReason,proto3,enum=inx.BlockMetadata_ConflictReason" json:"conflictReason,omitempty"` - WhiteFlagIndex uint32 `protobuf:"varint,10,opt,name=whiteFlagIndex,proto3" json:"whiteFlagIndex,omitempty"` + ShouldPromote bool `protobuf:"varint,4,opt,name=should_promote,json=shouldPromote,proto3" json:"should_promote,omitempty"` + ShouldReattach bool `protobuf:"varint,5,opt,name=should_reattach,json=shouldReattach,proto3" json:"should_reattach,omitempty"` + ReferencedByMilestoneIndex uint32 `protobuf:"varint,6,opt,name=referenced_by_milestone_index,json=referencedByMilestoneIndex,proto3" json:"referenced_by_milestone_index,omitempty"` + MilestoneIndex uint32 `protobuf:"varint,7,opt,name=milestone_index,json=milestoneIndex,proto3" json:"milestone_index,omitempty"` + LedgerInclusionState BlockMetadata_LedgerInclusionState `protobuf:"varint,8,opt,name=ledger_inclusion_state,json=ledgerInclusionState,proto3,enum=inx.BlockMetadata_LedgerInclusionState" json:"ledger_inclusion_state,omitempty"` + ConflictReason BlockMetadata_ConflictReason `protobuf:"varint,9,opt,name=conflict_reason,json=conflictReason,proto3,enum=inx.BlockMetadata_ConflictReason" json:"conflict_reason,omitempty"` + WhiteFlagIndex uint32 `protobuf:"varint,10,opt,name=white_flag_index,json=whiteFlagIndex,proto3" json:"white_flag_index,omitempty"` } func (x *BlockMetadata) Reset() { *x = BlockMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[20] + mi := &file_inx_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1435,7 +1308,7 @@ func (x *BlockMetadata) String() string { func (*BlockMetadata) ProtoMessage() {} func (x *BlockMetadata) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[20] + mi := &file_inx_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1448,7 +1321,7 @@ func (x *BlockMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockMetadata.ProtoReflect.Descriptor instead. func (*BlockMetadata) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{20} + return file_inx_proto_rawDescGZIP(), []int{19} } func (x *BlockMetadata) GetBlockId() *BlockId { @@ -1504,14 +1377,14 @@ func (x *BlockMetadata) GetLedgerInclusionState() BlockMetadata_LedgerInclusionS if x != nil { return x.LedgerInclusionState } - return BlockMetadata_NO_TRANSACTION + return BlockMetadata_LEDGER_INCLUSION_STATE_NO_TRANSACTION } func (x *BlockMetadata) GetConflictReason() BlockMetadata_ConflictReason { if x != nil { return x.ConflictReason } - return BlockMetadata_NONE + return BlockMetadata_CONFLICT_REASON_NONE } func (x *BlockMetadata) GetWhiteFlagIndex() uint32 { @@ -1528,13 +1401,13 @@ type TipsRequest struct { unknownFields protoimpl.UnknownFields Count uint32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` - AllowSemiLazy bool `protobuf:"varint,2,opt,name=allowSemiLazy,proto3" json:"allowSemiLazy,omitempty"` + AllowSemiLazy bool `protobuf:"varint,2,opt,name=allow_semiLazy,json=allowSemiLazy,proto3" json:"allow_semiLazy,omitempty"` } func (x *TipsRequest) Reset() { *x = TipsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[21] + mi := &file_inx_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1547,7 +1420,7 @@ func (x *TipsRequest) String() string { func (*TipsRequest) ProtoMessage() {} func (x *TipsRequest) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[21] + mi := &file_inx_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1560,7 +1433,7 @@ func (x *TipsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use TipsRequest.ProtoReflect.Descriptor instead. func (*TipsRequest) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{21} + return file_inx_proto_rawDescGZIP(), []int{20} } func (x *TipsRequest) GetCount() uint32 { @@ -1588,7 +1461,7 @@ type TipsResponse struct { func (x *TipsResponse) Reset() { *x = TipsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[22] + mi := &file_inx_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1601,7 +1474,7 @@ func (x *TipsResponse) String() string { func (*TipsResponse) ProtoMessage() {} func (x *TipsResponse) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[22] + mi := &file_inx_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1614,7 +1487,7 @@ func (x *TipsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TipsResponse.ProtoReflect.Descriptor instead. func (*TipsResponse) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{22} + return file_inx_proto_rawDescGZIP(), []int{21} } func (x *TipsResponse) GetTips() []*BlockId { @@ -1629,13 +1502,13 @@ type TipsMetricRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IntervalInMilliseconds uint32 `protobuf:"varint,1,opt,name=intervalInMilliseconds,proto3" json:"intervalInMilliseconds,omitempty"` + IntervalInMilliseconds uint32 `protobuf:"varint,1,opt,name=interval_in_milliseconds,json=intervalInMilliseconds,proto3" json:"interval_in_milliseconds,omitempty"` } func (x *TipsMetricRequest) Reset() { *x = TipsMetricRequest{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[23] + mi := &file_inx_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1648,7 +1521,7 @@ func (x *TipsMetricRequest) String() string { func (*TipsMetricRequest) ProtoMessage() {} func (x *TipsMetricRequest) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[23] + mi := &file_inx_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1661,7 +1534,7 @@ func (x *TipsMetricRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use TipsMetricRequest.ProtoReflect.Descriptor instead. func (*TipsMetricRequest) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{23} + return file_inx_proto_rawDescGZIP(), []int{22} } func (x *TipsMetricRequest) GetIntervalInMilliseconds() uint32 { @@ -1676,14 +1549,14 @@ type TipsMetric struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NonLazyPoolSize uint32 `protobuf:"varint,1,opt,name=nonLazyPoolSize,proto3" json:"nonLazyPoolSize,omitempty"` - SemiLazyPoolSize uint32 `protobuf:"varint,2,opt,name=semiLazyPoolSize,proto3" json:"semiLazyPoolSize,omitempty"` + NonLazyPoolSize uint32 `protobuf:"varint,1,opt,name=non_lazy_pool_size,json=nonLazyPoolSize,proto3" json:"non_lazy_pool_size,omitempty"` + SemiLazyPoolSize uint32 `protobuf:"varint,2,opt,name=semi_lazy_pool_size,json=semiLazyPoolSize,proto3" json:"semi_lazy_pool_size,omitempty"` } func (x *TipsMetric) Reset() { *x = TipsMetric{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[24] + mi := &file_inx_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1696,7 +1569,7 @@ func (x *TipsMetric) String() string { func (*TipsMetric) ProtoMessage() {} func (x *TipsMetric) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[24] + mi := &file_inx_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1709,7 +1582,7 @@ func (x *TipsMetric) ProtoReflect() protoreflect.Message { // Deprecated: Use TipsMetric.ProtoReflect.Descriptor instead. func (*TipsMetric) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{24} + return file_inx_proto_rawDescGZIP(), []int{23} } func (x *TipsMetric) GetNonLazyPoolSize() uint32 { @@ -1738,7 +1611,7 @@ type TransactionId struct { func (x *TransactionId) Reset() { *x = TransactionId{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[25] + mi := &file_inx_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1751,7 +1624,7 @@ func (x *TransactionId) String() string { func (*TransactionId) ProtoMessage() {} func (x *TransactionId) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[25] + mi := &file_inx_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1764,7 +1637,7 @@ func (x *TransactionId) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionId.ProtoReflect.Descriptor instead. func (*TransactionId) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{25} + return file_inx_proto_rawDescGZIP(), []int{24} } func (x *TransactionId) GetId() []byte { @@ -1785,7 +1658,7 @@ type OutputId struct { func (x *OutputId) Reset() { *x = OutputId{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[26] + mi := &file_inx_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1798,7 +1671,7 @@ func (x *OutputId) String() string { func (*OutputId) ProtoMessage() {} func (x *OutputId) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[26] + mi := &file_inx_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1811,7 +1684,7 @@ func (x *OutputId) ProtoReflect() protoreflect.Message { // Deprecated: Use OutputId.ProtoReflect.Descriptor instead. func (*OutputId) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{26} + return file_inx_proto_rawDescGZIP(), []int{25} } func (x *OutputId) GetId() []byte { @@ -1826,7 +1699,7 @@ type OutputResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - LedgerIndex uint32 `protobuf:"varint,1,opt,name=ledgerIndex,proto3" json:"ledgerIndex,omitempty"` + LedgerIndex uint32 `protobuf:"varint,1,opt,name=ledger_index,json=ledgerIndex,proto3" json:"ledger_index,omitempty"` // Types that are assignable to Payload: // *OutputResponse_Output // *OutputResponse_Spent @@ -1836,7 +1709,7 @@ type OutputResponse struct { func (x *OutputResponse) Reset() { *x = OutputResponse{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[27] + mi := &file_inx_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1849,7 +1722,7 @@ func (x *OutputResponse) String() string { func (*OutputResponse) ProtoMessage() {} func (x *OutputResponse) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[27] + mi := &file_inx_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1862,7 +1735,7 @@ func (x *OutputResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OutputResponse.ProtoReflect.Descriptor instead. func (*OutputResponse) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{27} + return file_inx_proto_rawDescGZIP(), []int{26} } func (x *OutputResponse) GetLedgerIndex() uint32 { @@ -1921,7 +1794,7 @@ type UnspentOutput struct { func (x *UnspentOutput) Reset() { *x = UnspentOutput{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[28] + mi := &file_inx_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1934,7 +1807,7 @@ func (x *UnspentOutput) String() string { func (*UnspentOutput) ProtoMessage() {} func (x *UnspentOutput) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[28] + mi := &file_inx_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1947,7 +1820,7 @@ func (x *UnspentOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use UnspentOutput.ProtoReflect.Descriptor instead. func (*UnspentOutput) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{28} + return file_inx_proto_rawDescGZIP(), []int{27} } func (x *UnspentOutput) GetLedgerIndex() uint32 { @@ -1975,7 +1848,7 @@ type RawOutput struct { func (x *RawOutput) Reset() { *x = RawOutput{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[29] + mi := &file_inx_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1988,7 +1861,7 @@ func (x *RawOutput) String() string { func (*RawOutput) ProtoMessage() {} func (x *RawOutput) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[29] + mi := &file_inx_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2001,7 +1874,7 @@ func (x *RawOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use RawOutput.ProtoReflect.Descriptor instead. func (*RawOutput) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{29} + return file_inx_proto_rawDescGZIP(), []int{28} } func (x *RawOutput) GetData() []byte { @@ -2016,17 +1889,17 @@ type LedgerOutput struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OutputId *OutputId `protobuf:"bytes,1,opt,name=outputId,proto3" json:"outputId,omitempty"` + OutputId *OutputId `protobuf:"bytes,1,opt,name=output_id,json=outputId,proto3" json:"output_id,omitempty"` BlockId *BlockId `protobuf:"bytes,2,opt,name=blockId,proto3" json:"blockId,omitempty"` - MilestoneIndexBooked uint32 `protobuf:"varint,3,opt,name=milestoneIndexBooked,proto3" json:"milestoneIndexBooked,omitempty"` - MilestoneTimestampBooked uint32 `protobuf:"varint,4,opt,name=milestoneTimestampBooked,proto3" json:"milestoneTimestampBooked,omitempty"` + MilestoneIndexBooked uint32 `protobuf:"varint,3,opt,name=milestone_index_booked,json=milestoneIndexBooked,proto3" json:"milestone_index_booked,omitempty"` + MilestoneTimestampBooked uint32 `protobuf:"varint,4,opt,name=milestone_timestamp_booked,json=milestoneTimestampBooked,proto3" json:"milestone_timestamp_booked,omitempty"` Output *RawOutput `protobuf:"bytes,5,opt,name=output,proto3" json:"output,omitempty"` } func (x *LedgerOutput) Reset() { *x = LedgerOutput{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[30] + mi := &file_inx_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2039,7 +1912,7 @@ func (x *LedgerOutput) String() string { func (*LedgerOutput) ProtoMessage() {} func (x *LedgerOutput) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[30] + mi := &file_inx_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2052,7 +1925,7 @@ func (x *LedgerOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use LedgerOutput.ProtoReflect.Descriptor instead. func (*LedgerOutput) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{30} + return file_inx_proto_rawDescGZIP(), []int{29} } func (x *LedgerOutput) GetOutputId() *OutputId { @@ -2096,15 +1969,15 @@ type LedgerSpent struct { unknownFields protoimpl.UnknownFields Output *LedgerOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` - TransactionIdSpent *TransactionId `protobuf:"bytes,2,opt,name=transactionIdSpent,proto3" json:"transactionIdSpent,omitempty"` - MilestoneIndexSpent uint32 `protobuf:"varint,3,opt,name=milestoneIndexSpent,proto3" json:"milestoneIndexSpent,omitempty"` - MilestoneTimestampSpent uint32 `protobuf:"varint,4,opt,name=milestoneTimestampSpent,proto3" json:"milestoneTimestampSpent,omitempty"` + TransactionIdSpent *TransactionId `protobuf:"bytes,2,opt,name=transaction_id_spent,json=transactionIdSpent,proto3" json:"transaction_id_spent,omitempty"` + MilestoneIndexSpent uint32 `protobuf:"varint,3,opt,name=milestone_index_spent,json=milestoneIndexSpent,proto3" json:"milestone_index_spent,omitempty"` + MilestoneTimestampSpent uint32 `protobuf:"varint,4,opt,name=milestone_timestamp_spent,json=milestoneTimestampSpent,proto3" json:"milestone_timestamp_spent,omitempty"` } func (x *LedgerSpent) Reset() { *x = LedgerSpent{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[31] + mi := &file_inx_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2117,7 +1990,7 @@ func (x *LedgerSpent) String() string { func (*LedgerSpent) ProtoMessage() {} func (x *LedgerSpent) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[31] + mi := &file_inx_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2130,7 +2003,7 @@ func (x *LedgerSpent) ProtoReflect() protoreflect.Message { // Deprecated: Use LedgerSpent.ProtoReflect.Descriptor instead. func (*LedgerSpent) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{31} + return file_inx_proto_rawDescGZIP(), []int{30} } func (x *LedgerSpent) GetOutput() *LedgerOutput { @@ -2166,14 +2039,14 @@ type TreasuryOutput struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MilestoneId *MilestoneId `protobuf:"bytes,1,opt,name=milestoneId,proto3" json:"milestoneId,omitempty"` + MilestoneId *MilestoneId `protobuf:"bytes,1,opt,name=milestone_id,json=milestoneId,proto3" json:"milestone_id,omitempty"` Amount uint64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"` } func (x *TreasuryOutput) Reset() { *x = TreasuryOutput{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[32] + mi := &file_inx_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2186,7 +2059,7 @@ func (x *TreasuryOutput) String() string { func (*TreasuryOutput) ProtoMessage() {} func (x *TreasuryOutput) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[32] + mi := &file_inx_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2199,7 +2072,7 @@ func (x *TreasuryOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use TreasuryOutput.ProtoReflect.Descriptor instead. func (*TreasuryOutput) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{32} + return file_inx_proto_rawDescGZIP(), []int{31} } func (x *TreasuryOutput) GetMilestoneId() *MilestoneId { @@ -2221,7 +2094,7 @@ type LedgerUpdate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MilestoneIndex uint32 `protobuf:"varint,1,opt,name=milestoneIndex,proto3" json:"milestoneIndex,omitempty"` + MilestoneIndex uint32 `protobuf:"varint,1,opt,name=milestone_index,json=milestoneIndex,proto3" json:"milestone_index,omitempty"` Created []*LedgerOutput `protobuf:"bytes,2,rep,name=created,proto3" json:"created,omitempty"` Consumed []*LedgerSpent `protobuf:"bytes,3,rep,name=consumed,proto3" json:"consumed,omitempty"` } @@ -2229,7 +2102,7 @@ type LedgerUpdate struct { func (x *LedgerUpdate) Reset() { *x = LedgerUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[33] + mi := &file_inx_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2242,7 +2115,7 @@ func (x *LedgerUpdate) String() string { func (*LedgerUpdate) ProtoMessage() {} func (x *LedgerUpdate) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[33] + mi := &file_inx_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2255,7 +2128,7 @@ func (x *LedgerUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use LedgerUpdate.ProtoReflect.Descriptor instead. func (*LedgerUpdate) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{33} + return file_inx_proto_rawDescGZIP(), []int{32} } func (x *LedgerUpdate) GetMilestoneIndex() uint32 { @@ -2284,7 +2157,7 @@ type TreasuryUpdate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MilestoneIndex uint32 `protobuf:"varint,1,opt,name=milestoneIndex,proto3" json:"milestoneIndex,omitempty"` + MilestoneIndex uint32 `protobuf:"varint,1,opt,name=milestone_index,json=milestoneIndex,proto3" json:"milestone_index,omitempty"` Created *TreasuryOutput `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"` Consumed *TreasuryOutput `protobuf:"bytes,3,opt,name=consumed,proto3" json:"consumed,omitempty"` } @@ -2292,7 +2165,7 @@ type TreasuryUpdate struct { func (x *TreasuryUpdate) Reset() { *x = TreasuryUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[34] + mi := &file_inx_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2305,7 +2178,7 @@ func (x *TreasuryUpdate) String() string { func (*TreasuryUpdate) ProtoMessage() {} func (x *TreasuryUpdate) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[34] + mi := &file_inx_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2318,7 +2191,7 @@ func (x *TreasuryUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use TreasuryUpdate.ProtoReflect.Descriptor instead. func (*TreasuryUpdate) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{34} + return file_inx_proto_rawDescGZIP(), []int{33} } func (x *TreasuryUpdate) GetMilestoneIndex() uint32 { @@ -2353,7 +2226,7 @@ type RawReceipt struct { func (x *RawReceipt) Reset() { *x = RawReceipt{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[35] + mi := &file_inx_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2366,7 +2239,7 @@ func (x *RawReceipt) String() string { func (*RawReceipt) ProtoMessage() {} func (x *RawReceipt) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[35] + mi := &file_inx_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2379,7 +2252,7 @@ func (x *RawReceipt) ProtoReflect() protoreflect.Message { // Deprecated: Use RawReceipt.ProtoReflect.Descriptor instead. func (*RawReceipt) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{35} + return file_inx_proto_rawDescGZIP(), []int{34} } func (x *RawReceipt) GetData() []byte { @@ -2403,7 +2276,7 @@ type APIRouteRequest struct { func (x *APIRouteRequest) Reset() { *x = APIRouteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[36] + mi := &file_inx_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2416,7 +2289,7 @@ func (x *APIRouteRequest) String() string { func (*APIRouteRequest) ProtoMessage() {} func (x *APIRouteRequest) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[36] + mi := &file_inx_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2429,7 +2302,7 @@ func (x *APIRouteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use APIRouteRequest.ProtoReflect.Descriptor instead. func (*APIRouteRequest) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{36} + return file_inx_proto_rawDescGZIP(), []int{35} } func (x *APIRouteRequest) GetRoute() string { @@ -2467,7 +2340,7 @@ type APIRequest struct { func (x *APIRequest) Reset() { *x = APIRequest{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[37] + mi := &file_inx_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2480,7 +2353,7 @@ func (x *APIRequest) String() string { func (*APIRequest) ProtoMessage() {} func (x *APIRequest) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[37] + mi := &file_inx_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2493,7 +2366,7 @@ func (x *APIRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use APIRequest.ProtoReflect.Descriptor instead. func (*APIRequest) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{37} + return file_inx_proto_rawDescGZIP(), []int{36} } func (x *APIRequest) GetMethod() string { @@ -2537,7 +2410,7 @@ type APIResponse struct { func (x *APIResponse) Reset() { *x = APIResponse{} if protoimpl.UnsafeEnabled { - mi := &file_inx_proto_msgTypes[38] + mi := &file_inx_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2550,7 +2423,7 @@ func (x *APIResponse) String() string { func (*APIResponse) ProtoMessage() {} func (x *APIResponse) ProtoReflect() protoreflect.Message { - mi := &file_inx_proto_msgTypes[38] + mi := &file_inx_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2563,7 +2436,7 @@ func (x *APIResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use APIResponse.ProtoReflect.Descriptor instead. func (*APIResponse) Descriptor() ([]byte, []int) { - return file_inx_proto_rawDescGZIP(), []int{38} + return file_inx_proto_rawDescGZIP(), []int{37} } func (x *APIResponse) GetCode() uint32 { @@ -2591,468 +2464,470 @@ var File_inx_proto protoreflect.FileDescriptor var file_inx_proto_rawDesc = []byte{ 0x0a, 0x09, 0x69, 0x6e, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x69, 0x6e, 0x78, - 0x22, 0x0a, 0x0a, 0x08, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa8, 0x03, 0x0a, + 0x22, 0x0a, 0x0a, 0x08, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x17, 0x6d, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, - 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x6d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x12, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x4b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x12, 0x6d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2c, 0x0a, - 0x09, 0x62, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x52, 0x09, 0x62, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x3c, 0x0a, 0x19, 0x73, + 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x1a, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, + 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x48, 0x0a, 0x14, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x6b, 0x65, 0x79, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x4b, 0x65, 0x79, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x12, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, + 0x4b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x0a, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x62, + 0x61, 0x73, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x3e, 0x0a, 0x1b, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x19, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x19, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x19, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, - 0x6e, 0x78, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x19, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x65, - 0x63, 0x68, 0x33, 0x32, 0x48, 0x52, 0x50, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, - 0x65, 0x63, 0x68, 0x33, 0x32, 0x48, 0x52, 0x50, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x50, - 0x6f, 0x57, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, - 0x69, 0x6e, 0x50, 0x6f, 0x57, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x65, - 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x44, 0x65, 0x70, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0d, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x78, 0x44, 0x65, 0x70, 0x74, 0x68, - 0x12, 0x38, 0x0a, 0x0d, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x65, - 0x6e, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6e, - 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, - 0x19, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x22, 0xb7, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x53, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, - 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, - 0x62, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, - 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, - 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6d, 0x0a, 0x11, 0x4d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x7f, 0x0a, 0x0d, 0x52, 0x65, 0x6e, - 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x42, - 0x79, 0x74, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, - 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x42, 0x79, 0x74, - 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0f, 0x76, 0x42, 0x79, 0x74, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x42, 0x79, 0x74, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x76, 0x42, 0x79, 0x74, - 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x22, 0xde, 0x02, 0x0a, 0x0a, 0x4e, - 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x48, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x38, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, - 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x12, 0x3e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x69, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x73, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, + 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x73, 0x65, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x70, 0x0a, 0x11, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, + 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, + 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, + 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xe8, 0x02, 0x0a, 0x0a, 0x4e, 0x6f, 0x64, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x39, 0x0a, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, + 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, + 0x12, 0x3f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x69, - 0x6e, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, - 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x36, 0x0a, 0x16, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x50, - 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x16, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x50, 0x72, 0x75, - 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2e, 0x0a, 0x12, 0x6c, 0x65, 0x64, - 0x67, 0x65, 0x72, 0x50, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x50, 0x72, 0x75, - 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x65, 0x64, - 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x22, 0x0a, 0x0c, 0x52, - 0x61, 0x77, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x1d, 0x0a, 0x0b, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x22, 0x6e, - 0x0a, 0x10, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, - 0x64, 0x52, 0x0b, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x77, - 0x0a, 0x15, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x6e, 0x64, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x65, 0x6e, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x9b, 0x01, 0x0a, 0x0d, 0x4d, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x69, 0x6c, - 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, - 0x52, 0x0b, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, - 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x12, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x76, 0x0a, 0x09, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x12, 0x38, 0x0a, 0x0d, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x09, - 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x52, 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x22, 0xd6, 0x01, - 0x0a, 0x10, 0x57, 0x68, 0x69, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x26, 0x0a, 0x07, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x69, 0x6e, - 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x42, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, - 0x64, 0x52, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x11, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x1c, - 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x1c, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x63, - 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, - 0x12, 0x3e, 0x0a, 0x1a, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1a, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x41, - 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, - 0x22, 0x1e, 0x0a, 0x08, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x19, 0x0a, 0x07, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x22, 0x54, 0x0a, 0x05, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x49, 0x64, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x05, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x69, 0x6e, - 0x78, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x22, 0x68, 0x0a, 0x11, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xda, 0x07, 0x0a, 0x0d, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, - 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x07, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x49, 0x64, 0x52, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x6f, - 0x6c, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x50, 0x72, 0x6f, - 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x68, 0x6f, 0x75, - 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x68, 0x6f, - 0x75, 0x6c, 0x64, 0x52, 0x65, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x52, 0x65, 0x61, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x12, 0x3e, 0x0a, 0x1a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x42, - 0x79, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x64, 0x42, 0x79, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x5b, 0x0a, 0x14, 0x6c, 0x65, 0x64, - 0x67, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x65, 0x64, 0x67, - 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x14, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, - 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x77, 0x68, 0x69, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x77, 0x68, 0x69, 0x74, 0x65, - 0x46, 0x6c, 0x61, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x49, 0x0a, 0x14, 0x4c, 0x65, 0x64, - 0x67, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x45, - 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x49, - 0x4e, 0x47, 0x10, 0x02, 0x22, 0x91, 0x03, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, - 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, - 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, - 0x44, 0x59, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x49, 0x4e, - 0x50, 0x55, 0x54, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x53, 0x50, 0x45, 0x4e, - 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x49, 0x53, 0x5f, 0x4d, 0x49, 0x4c, 0x45, 0x53, 0x54, - 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x4e, - 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, - 0x50, 0x55, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x55, 0x4d, 0x5f, 0x4d, - 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x56, - 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x10, 0x05, - 0x12, 0x18, 0x0a, 0x14, 0x54, 0x49, 0x4d, 0x45, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, - 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x4f, 0x4b, - 0x45, 0x4e, 0x53, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x5f, - 0x41, 0x4d, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x46, 0x49, - 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x09, - 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x50, 0x55, - 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x0a, 0x12, - 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x45, - 0x52, 0x10, 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x43, - 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, - 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0c, 0x12, 0x1f, 0x0a, 0x1a, 0x53, 0x45, 0x4d, 0x41, 0x4e, - 0x54, 0x49, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, - 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xff, 0x01, 0x22, 0x49, 0x0a, 0x0b, 0x54, 0x69, 0x70, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, - 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x6d, 0x69, 0x4c, 0x61, 0x7a, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x6d, 0x69, 0x4c, - 0x61, 0x7a, 0x79, 0x22, 0x30, 0x0a, 0x0c, 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x74, 0x69, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, - 0x04, 0x74, 0x69, 0x70, 0x73, 0x22, 0x4b, 0x0a, 0x11, 0x54, 0x69, 0x70, 0x73, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x22, 0x62, 0x0a, 0x0a, 0x54, 0x69, 0x70, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x6f, 0x6e, 0x4c, 0x61, 0x7a, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, - 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6e, 0x6f, 0x6e, 0x4c, 0x61, - 0x7a, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, - 0x6d, 0x69, 0x4c, 0x61, 0x7a, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x65, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x12, 0x74, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x38, 0x0a, 0x18, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, + 0x73, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, + 0x73, 0x50, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x30, 0x0a, + 0x14, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6c, 0x65, 0x64, + 0x67, 0x65, 0x72, 0x50, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x21, 0x0a, 0x0c, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x22, 0x5a, 0x0a, 0x15, 0x52, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x22, + 0x0a, 0x0c, 0x52, 0x61, 0x77, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x1d, 0x0a, 0x0b, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, + 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, + 0x64, 0x22, 0x70, 0x0a, 0x10, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, + 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x33, + 0x0a, 0x0c, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, + 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x52, 0x0b, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, + 0x65, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x15, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x15, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, + 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x65, + 0x6e, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x22, 0x9e, 0x01, 0x0a, 0x0d, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x0c, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, + 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x52, 0x0b, 0x6d, 0x69, 0x6c, 0x65, + 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x69, 0x6c, 0x65, 0x73, + 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x2f, 0x0a, 0x13, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, + 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x22, 0x77, 0x0a, 0x09, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x39, + 0x0a, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, + 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x69, 0x6c, 0x65, + 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x09, 0x6d, 0x69, 0x6c, + 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x69, + 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, + 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x1e, 0x4d, + 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, + 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, + 0x52, 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x5a, 0x0a, 0x1b, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x19, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x10, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, + 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2f, 0x0a, 0x13, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, + 0x6e, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x26, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x44, + 0x0a, 0x15, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x6d, 0x69, 0x6c, 0x65, 0x73, + 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x52, + 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, + 0x6e, 0x65, 0x49, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x11, 0x57, 0x68, 0x69, 0x74, 0x65, 0x46, 0x6c, + 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x1f, 0x6d, 0x69, + 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x1c, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, + 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, + 0x74, 0x12, 0x41, 0x0a, 0x1d, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1a, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, + 0x6f, 0x6e, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, + 0x52, 0x6f, 0x6f, 0x74, 0x22, 0x1e, 0x0a, 0x08, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x19, 0x0a, 0x07, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x22, + 0x55, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x69, 0x6e, 0x78, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, + 0x64, 0x12, 0x23, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, + 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x68, 0x0a, 0x11, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, + 0x69, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x69, 0x6e, 0x78, + 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x22, 0x8c, 0x0a, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x27, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x49, 0x64, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x07, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x69, + 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x07, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x68, 0x6f, + 0x75, 0x6c, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x75, 0x6c, + 0x64, 0x52, 0x65, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x41, 0x0a, 0x1d, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x6d, 0x69, 0x6c, 0x65, 0x73, + 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x1a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x79, 0x4d, 0x69, + 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, + 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x5d, 0x0a, 0x16, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x5f, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, + 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x14, + 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, + 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, + 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x12, 0x28, 0x0a, 0x10, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x77, 0x68, 0x69, 0x74, + 0x65, 0x46, 0x6c, 0x61, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x8e, 0x01, 0x0a, 0x14, 0x4c, + 0x65, 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x4c, 0x45, 0x44, 0x47, 0x45, 0x52, 0x5f, 0x49, 0x4e, + 0x43, 0x4c, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, + 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x23, + 0x0a, 0x1f, 0x4c, 0x45, 0x44, 0x47, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x45, 0x44, 0x47, 0x45, 0x52, 0x5f, 0x49, 0x4e, + 0x43, 0x4c, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, + 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x22, 0xf1, 0x04, 0x0a, 0x0e, + 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, + 0x0a, 0x14, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x4f, 0x4e, 0x46, + 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x50, 0x55, + 0x54, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x54, 0x10, + 0x01, 0x12, 0x39, 0x0a, 0x35, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, + 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, + 0x44, 0x59, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x48, 0x49, 0x53, + 0x5f, 0x4d, 0x49, 0x4c, 0x45, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, + 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, + 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, + 0x03, 0x12, 0x2d, 0x0a, 0x29, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, + 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, + 0x54, 0x5f, 0x53, 0x55, 0x4d, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x04, + 0x12, 0x25, 0x0a, 0x21, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x49, 0x47, 0x4e, + 0x41, 0x54, 0x55, 0x52, 0x45, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x4f, 0x4e, 0x46, 0x4c, + 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, + 0x06, 0x12, 0x29, 0x0a, 0x25, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, + 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4e, 0x41, 0x54, + 0x49, 0x56, 0x45, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x53, 0x10, 0x07, 0x12, 0x2f, 0x0a, 0x2b, + 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, + 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x41, 0x4d, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, + 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x46, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x28, 0x0a, + 0x24, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, + 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x55, + 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x09, 0x12, 0x2d, 0x0a, 0x29, 0x43, 0x4f, 0x4e, 0x46, 0x4c, + 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, + 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x0a, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, + 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x0b, 0x12, 0x32, 0x0a, 0x2e, 0x43, 0x4f, + 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0c, 0x12, 0x2f, + 0x0a, 0x2a, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x53, 0x45, 0x4d, 0x41, 0x4e, 0x54, 0x49, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xff, 0x01, 0x22, + 0x4a, 0x0a, 0x0b, 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x65, + 0x6d, 0x69, 0x4c, 0x61, 0x7a, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x6d, 0x69, 0x4c, 0x61, 0x7a, 0x79, 0x22, 0x30, 0x0a, 0x0c, 0x54, + 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x74, + 0x69, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x04, 0x74, 0x69, 0x70, 0x73, 0x22, 0x4d, 0x0a, + 0x11, 0x54, 0x69, 0x70, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x69, + 0x6e, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x49, 0x6e, + 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x68, 0x0a, 0x0a, + 0x54, 0x69, 0x70, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x2b, 0x0a, 0x12, 0x6e, 0x6f, + 0x6e, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6e, 0x6f, 0x6e, 0x4c, 0x61, 0x7a, 0x79, 0x50, + 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x65, 0x6d, 0x69, 0x5f, + 0x6c, 0x61, 0x7a, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x65, 0x6d, 0x69, 0x4c, 0x61, 0x7a, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x1f, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x08, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x02, 0x69, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, 0x65, 0x64, - 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2b, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, - 0x65, 0x64, 0x67, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, 0x65, 0x64, 0x67, 0x65, - 0x72, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x5c, 0x0a, 0x0d, 0x55, 0x6e, - 0x73, 0x70, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, - 0x65, 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x0a, - 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x69, 0x6e, 0x78, 0x2e, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x1f, 0x0a, 0x09, 0x52, 0x61, 0x77, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf9, 0x01, 0x0a, 0x0c, 0x4c, 0x65, - 0x64, 0x67, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x08, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x69, - 0x6e, 0x78, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x52, 0x08, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x49, 0x64, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x32, 0x0a, + 0x02, 0x69, 0x64, 0x22, 0x95, 0x01, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, 0x65, + 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2b, 0x0a, 0x06, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x69, 0x6e, 0x78, 0x2e, + 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, 0x65, 0x64, 0x67, + 0x65, 0x72, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x5c, 0x0a, 0x0d, 0x55, + 0x6e, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x20, 0x0a, 0x0b, + 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, + 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x1f, 0x0a, 0x09, 0x52, 0x61, 0x77, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfe, 0x01, 0x0a, 0x0c, 0x4c, + 0x65, 0x64, 0x67, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x09, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x52, 0x08, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, + 0x34, 0x0a, 0x16, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, - 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6d, 0x69, 0x6c, - 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x6f, 0x6f, 0x6b, 0x65, - 0x64, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x18, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x12, 0x26, 0x0a, - 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0xe8, 0x01, 0x0a, 0x0b, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, - 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, 0x65, 0x64, 0x67, - 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x12, 0x42, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x69, - 0x6e, 0x78, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x53, - 0x70, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x53, 0x70, 0x65, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x53, 0x70, 0x65, 0x6e, 0x74, - 0x22, 0x5c, 0x0a, 0x0e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x52, 0x0b, 0x6d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, - 0x01, 0x0a, 0x0c, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, - 0x65, 0x64, 0x67, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, 0x65, 0x64, - 0x67, 0x65, 0x72, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x65, 0x64, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2d, 0x0a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x08, - 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x22, 0x20, 0x0a, - 0x0a, 0x52, 0x61, 0x77, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x4f, 0x0a, 0x0f, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, - 0x22, 0xc0, 0x01, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x07, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, - 0x6e, 0x78, 0x2e, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0xaa, 0x01, 0x0a, 0x0b, 0x41, 0x50, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x41, - 0x50, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, - 0x62, 0x6f, 0x64, 0x79, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x32, 0xeb, 0x0b, 0x0a, 0x03, 0x49, 0x4e, 0x58, 0x12, 0x30, 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, - 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x0f, 0x2e, 0x69, 0x6e, 0x78, 0x2e, - 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x15, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x1a, 0x16, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0d, 0x52, 0x65, - 0x61, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x15, 0x2e, 0x69, 0x6e, - 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x12, 0x3b, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x4c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x0d, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x0e, 0x2e, - 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x30, 0x01, 0x12, - 0x4b, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x1a, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x69, 0x6e, 0x78, - 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x10, - 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, - 0x12, 0x15, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x57, 0x68, 0x69, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x44, 0x0a, 0x11, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, - 0x43, 0x6f, 0x6e, 0x65, 0x12, 0x15, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x69, 0x6e, - 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x48, 0x0a, 0x19, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x69, 0x6c, - 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x15, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, - 0x2d, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x1a, 0x0a, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x30, 0x01, 0x12, 0x3a, - 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x3f, 0x0a, 0x18, 0x4c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, + 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, + 0x6e, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x62, 0x6f, 0x6f, + 0x6b, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x6d, 0x69, 0x6c, 0x65, 0x73, + 0x74, 0x6f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x6f, 0x6f, + 0x6b, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0xee, 0x01, 0x0a, 0x0b, + 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x69, 0x6e, + 0x78, 0x2e, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x44, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, + 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, + 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x69, 0x6c, + 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x70, 0x65, 0x6e, 0x74, + 0x12, 0x3a, 0x0a, 0x19, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x17, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x22, 0x5d, 0x0a, 0x0e, + 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x33, + 0x0a, 0x0c, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, + 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x52, 0x0b, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, + 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x0c, + 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, 0x65, 0x64, + 0x67, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, 0x65, 0x64, 0x67, 0x65, + 0x72, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, + 0x22, 0x99, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, + 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2d, 0x0a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x69, 0x6e, 0x78, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x69, 0x6e, 0x78, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x22, 0x20, 0x0a, 0x0a, + 0x52, 0x61, 0x77, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, + 0x0a, 0x0f, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, + 0xc0, 0x01, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x07, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, + 0x78, 0x2e, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0xaa, 0x01, 0x0a, 0x0b, 0x41, 0x50, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x41, 0x50, + 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, + 0xcd, 0x0c, 0x0a, 0x03, 0x49, 0x4e, 0x58, 0x12, 0x30, 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, + 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x0f, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, + 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x15, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0x16, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x16, 0x52, 0x65, 0x61, + 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x15, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, + 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x69, 0x6e, 0x78, + 0x2e, 0x52, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x0d, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x69, + 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x15, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, + 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, + 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x3b, + 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, + 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x0e, 0x2e, 0x69, 0x6e, 0x78, 0x2e, + 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x30, 0x01, 0x12, 0x60, 0x0a, 0x1b, 0x4c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, + 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x69, 0x6e, 0x78, + 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, + 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x30, 0x01, 0x12, 0x41, 0x0a, + 0x10, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x46, 0x6c, 0x61, + 0x67, 0x12, 0x15, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x57, 0x68, 0x69, 0x74, 0x65, 0x46, 0x6c, 0x61, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x44, 0x0a, 0x11, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, + 0x65, 0x43, 0x6f, 0x6e, 0x65, 0x12, 0x15, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, + 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x69, + 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x48, 0x0a, 0x19, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x69, + 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x15, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, + 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x30, 0x01, + 0x12, 0x2d, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0x0a, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x30, 0x01, 0x12, + 0x3a, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, - 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x49, 0x64, 0x1a, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x35, 0x0a, 0x11, 0x52, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x49, 0x64, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x54, 0x69, - 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x69, 0x6e, 0x78, 0x2e, - 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x13, - 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x54, 0x69, 0x70, 0x73, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x54, 0x69, 0x70, 0x73, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x69, 0x6e, - 0x78, 0x2e, 0x54, 0x69, 0x70, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x30, 0x01, 0x12, 0x3e, - 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x54, 0x69, 0x70, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, - 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x39, - 0x0a, 0x12, 0x52, 0x65, 0x61, 0x64, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x6e, - 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x30, 0x01, 0x12, 0x48, 0x0a, 0x15, 0x4c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x30, 0x01, 0x12, 0x4c, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x54, - 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1a, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x69, 0x6e, 0x78, - 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x30, - 0x01, 0x12, 0x30, 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, - 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x1a, 0x13, - 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x4d, - 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, - 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, - 0x0f, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, - 0x30, 0x01, 0x12, 0x37, 0x0a, 0x10, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x50, - 0x49, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x14, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x41, 0x50, 0x49, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x69, - 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x39, 0x0a, 0x12, 0x55, - 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x12, 0x14, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, - 0x6d, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0f, 0x2e, 0x69, 0x6e, - 0x78, 0x2e, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x69, - 0x6e, 0x78, 0x2e, 0x41, 0x50, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x22, - 0x5a, 0x20, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6f, 0x74, - 0x61, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x78, 0x2f, 0x67, 0x6f, 0x3b, 0x69, - 0x6e, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x3f, 0x0a, 0x18, 0x4c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x2a, 0x0a, 0x0b, + 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0d, 0x2e, 0x69, 0x6e, + 0x78, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x0c, 0x2e, 0x69, 0x6e, 0x78, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x49, 0x64, 0x1a, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x35, 0x0a, 0x11, 0x52, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0c, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x0b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x10, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x54, + 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x69, 0x6e, 0x78, + 0x2e, 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, + 0x13, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x54, 0x69, 0x70, 0x73, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x54, 0x69, 0x70, 0x73, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x69, + 0x6e, 0x78, 0x2e, 0x54, 0x69, 0x70, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x30, 0x01, 0x12, + 0x3e, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x54, 0x69, 0x70, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, + 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, + 0x39, 0x0a, 0x12, 0x52, 0x65, 0x61, 0x64, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x55, 0x6e, 0x73, 0x70, 0x65, + 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x30, 0x01, 0x12, 0x48, 0x0a, 0x15, 0x4c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, + 0x6f, 0x6e, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x11, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x30, 0x01, 0x12, 0x4c, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, + 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, + 0x1a, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x69, 0x6e, + 0x78, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x30, 0x01, 0x12, 0x30, 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x64, 0x1a, + 0x13, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x6f, + 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, + 0x73, 0x12, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x1a, 0x0f, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x52, 0x61, 0x77, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, + 0x74, 0x30, 0x01, 0x12, 0x37, 0x0a, 0x10, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, + 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x14, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x41, 0x50, + 0x49, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, + 0x69, 0x6e, 0x78, 0x2e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x39, 0x0a, 0x12, + 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x12, 0x14, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x41, 0x50, 0x49, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x69, 0x6e, 0x78, 0x2e, 0x4e, + 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x66, 0x6f, + 0x72, 0x6d, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0f, 0x2e, 0x69, + 0x6e, 0x78, 0x2e, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, + 0x69, 0x6e, 0x78, 0x2e, 0x41, 0x50, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x22, 0x5a, 0x20, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6f, + 0x74, 0x61, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x78, 0x2f, 0x67, 0x6f, 0x3b, + 0x69, 0x6e, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3068,145 +2943,145 @@ func file_inx_proto_rawDescGZIP() []byte { } var file_inx_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_inx_proto_msgTypes = make([]protoimpl.MessageInfo, 41) +var file_inx_proto_msgTypes = make([]protoimpl.MessageInfo, 40) var file_inx_proto_goTypes = []interface{}{ (BlockMetadata_LedgerInclusionState)(0), // 0: inx.BlockMetadata.LedgerInclusionState (BlockMetadata_ConflictReason)(0), // 1: inx.BlockMetadata.ConflictReason (*NoParams)(nil), // 2: inx.NoParams (*NodeConfiguration)(nil), // 3: inx.NodeConfiguration - (*ProtocolParameters)(nil), // 4: inx.ProtocolParameters - (*PendingProtocolParameters)(nil), // 5: inx.PendingProtocolParameters - (*BaseToken)(nil), // 6: inx.BaseToken - (*MilestoneKeyRange)(nil), // 7: inx.MilestoneKeyRange - (*RentStructure)(nil), // 8: inx.RentStructure - (*NodeStatus)(nil), // 9: inx.NodeStatus - (*RawMilestone)(nil), // 10: inx.RawMilestone - (*MilestoneId)(nil), // 11: inx.MilestoneId - (*MilestoneRequest)(nil), // 12: inx.MilestoneRequest - (*MilestoneRangeRequest)(nil), // 13: inx.MilestoneRangeRequest - (*MilestoneInfo)(nil), // 14: inx.MilestoneInfo - (*Milestone)(nil), // 15: inx.Milestone - (*WhiteFlagRequest)(nil), // 16: inx.WhiteFlagRequest - (*WhiteFlagResponse)(nil), // 17: inx.WhiteFlagResponse - (*RawBlock)(nil), // 18: inx.RawBlock - (*BlockId)(nil), // 19: inx.BlockId - (*Block)(nil), // 20: inx.Block - (*BlockWithMetadata)(nil), // 21: inx.BlockWithMetadata - (*BlockMetadata)(nil), // 22: inx.BlockMetadata - (*TipsRequest)(nil), // 23: inx.TipsRequest - (*TipsResponse)(nil), // 24: inx.TipsResponse - (*TipsMetricRequest)(nil), // 25: inx.TipsMetricRequest - (*TipsMetric)(nil), // 26: inx.TipsMetric - (*TransactionId)(nil), // 27: inx.TransactionId - (*OutputId)(nil), // 28: inx.OutputId - (*OutputResponse)(nil), // 29: inx.OutputResponse - (*UnspentOutput)(nil), // 30: inx.UnspentOutput - (*RawOutput)(nil), // 31: inx.RawOutput - (*LedgerOutput)(nil), // 32: inx.LedgerOutput - (*LedgerSpent)(nil), // 33: inx.LedgerSpent - (*TreasuryOutput)(nil), // 34: inx.TreasuryOutput - (*LedgerUpdate)(nil), // 35: inx.LedgerUpdate - (*TreasuryUpdate)(nil), // 36: inx.TreasuryUpdate - (*RawReceipt)(nil), // 37: inx.RawReceipt - (*APIRouteRequest)(nil), // 38: inx.APIRouteRequest - (*APIRequest)(nil), // 39: inx.APIRequest - (*APIResponse)(nil), // 40: inx.APIResponse - nil, // 41: inx.APIRequest.HeadersEntry - nil, // 42: inx.APIResponse.HeadersEntry + (*BaseToken)(nil), // 4: inx.BaseToken + (*MilestoneKeyRange)(nil), // 5: inx.MilestoneKeyRange + (*NodeStatus)(nil), // 6: inx.NodeStatus + (*RawProtocolParameters)(nil), // 7: inx.RawProtocolParameters + (*RawMilestone)(nil), // 8: inx.RawMilestone + (*MilestoneId)(nil), // 9: inx.MilestoneId + (*MilestoneRequest)(nil), // 10: inx.MilestoneRequest + (*MilestoneRangeRequest)(nil), // 11: inx.MilestoneRangeRequest + (*MilestoneInfo)(nil), // 12: inx.MilestoneInfo + (*Milestone)(nil), // 13: inx.Milestone + (*MilestoneAndProtocolParameters)(nil), // 14: inx.MilestoneAndProtocolParameters + (*WhiteFlagRequest)(nil), // 15: inx.WhiteFlagRequest + (*WhiteFlagResponse)(nil), // 16: inx.WhiteFlagResponse + (*RawBlock)(nil), // 17: inx.RawBlock + (*BlockId)(nil), // 18: inx.BlockId + (*Block)(nil), // 19: inx.Block + (*BlockWithMetadata)(nil), // 20: inx.BlockWithMetadata + (*BlockMetadata)(nil), // 21: inx.BlockMetadata + (*TipsRequest)(nil), // 22: inx.TipsRequest + (*TipsResponse)(nil), // 23: inx.TipsResponse + (*TipsMetricRequest)(nil), // 24: inx.TipsMetricRequest + (*TipsMetric)(nil), // 25: inx.TipsMetric + (*TransactionId)(nil), // 26: inx.TransactionId + (*OutputId)(nil), // 27: inx.OutputId + (*OutputResponse)(nil), // 28: inx.OutputResponse + (*UnspentOutput)(nil), // 29: inx.UnspentOutput + (*RawOutput)(nil), // 30: inx.RawOutput + (*LedgerOutput)(nil), // 31: inx.LedgerOutput + (*LedgerSpent)(nil), // 32: inx.LedgerSpent + (*TreasuryOutput)(nil), // 33: inx.TreasuryOutput + (*LedgerUpdate)(nil), // 34: inx.LedgerUpdate + (*TreasuryUpdate)(nil), // 35: inx.TreasuryUpdate + (*RawReceipt)(nil), // 36: inx.RawReceipt + (*APIRouteRequest)(nil), // 37: inx.APIRouteRequest + (*APIRequest)(nil), // 38: inx.APIRequest + (*APIResponse)(nil), // 39: inx.APIResponse + nil, // 40: inx.APIRequest.HeadersEntry + nil, // 41: inx.APIResponse.HeadersEntry } var file_inx_proto_depIdxs = []int32{ - 4, // 0: inx.NodeConfiguration.protocolParameters:type_name -> inx.ProtocolParameters - 7, // 1: inx.NodeConfiguration.milestoneKeyRanges:type_name -> inx.MilestoneKeyRange - 6, // 2: inx.NodeConfiguration.baseToken:type_name -> inx.BaseToken - 5, // 3: inx.NodeConfiguration.pendingProtocolParameters:type_name -> inx.PendingProtocolParameters - 8, // 4: inx.ProtocolParameters.rentStructure:type_name -> inx.RentStructure - 15, // 5: inx.NodeStatus.latestMilestone:type_name -> inx.Milestone - 15, // 6: inx.NodeStatus.confirmedMilestone:type_name -> inx.Milestone - 11, // 7: inx.MilestoneRequest.milestoneId:type_name -> inx.MilestoneId - 11, // 8: inx.MilestoneInfo.milestoneId:type_name -> inx.MilestoneId - 14, // 9: inx.Milestone.milestoneInfo:type_name -> inx.MilestoneInfo - 10, // 10: inx.Milestone.milestone:type_name -> inx.RawMilestone - 19, // 11: inx.WhiteFlagRequest.parents:type_name -> inx.BlockId - 11, // 12: inx.WhiteFlagRequest.previousMilestoneId:type_name -> inx.MilestoneId - 19, // 13: inx.Block.blockId:type_name -> inx.BlockId - 18, // 14: inx.Block.block:type_name -> inx.RawBlock - 22, // 15: inx.BlockWithMetadata.metadata:type_name -> inx.BlockMetadata - 18, // 16: inx.BlockWithMetadata.block:type_name -> inx.RawBlock - 19, // 17: inx.BlockMetadata.blockId:type_name -> inx.BlockId - 19, // 18: inx.BlockMetadata.parents:type_name -> inx.BlockId - 0, // 19: inx.BlockMetadata.ledgerInclusionState:type_name -> inx.BlockMetadata.LedgerInclusionState - 1, // 20: inx.BlockMetadata.conflictReason:type_name -> inx.BlockMetadata.ConflictReason - 19, // 21: inx.TipsResponse.tips:type_name -> inx.BlockId - 32, // 22: inx.OutputResponse.output:type_name -> inx.LedgerOutput - 33, // 23: inx.OutputResponse.spent:type_name -> inx.LedgerSpent - 32, // 24: inx.UnspentOutput.output:type_name -> inx.LedgerOutput - 28, // 25: inx.LedgerOutput.outputId:type_name -> inx.OutputId - 19, // 26: inx.LedgerOutput.blockId:type_name -> inx.BlockId - 31, // 27: inx.LedgerOutput.output:type_name -> inx.RawOutput - 32, // 28: inx.LedgerSpent.output:type_name -> inx.LedgerOutput - 27, // 29: inx.LedgerSpent.transactionIdSpent:type_name -> inx.TransactionId - 11, // 30: inx.TreasuryOutput.milestoneId:type_name -> inx.MilestoneId - 32, // 31: inx.LedgerUpdate.created:type_name -> inx.LedgerOutput - 33, // 32: inx.LedgerUpdate.consumed:type_name -> inx.LedgerSpent - 34, // 33: inx.TreasuryUpdate.created:type_name -> inx.TreasuryOutput - 34, // 34: inx.TreasuryUpdate.consumed:type_name -> inx.TreasuryOutput - 41, // 35: inx.APIRequest.headers:type_name -> inx.APIRequest.HeadersEntry - 42, // 36: inx.APIResponse.headers:type_name -> inx.APIResponse.HeadersEntry - 2, // 37: inx.INX.ReadNodeStatus:input_type -> inx.NoParams - 2, // 38: inx.INX.ReadNodeConfiguration:input_type -> inx.NoParams - 12, // 39: inx.INX.ReadMilestone:input_type -> inx.MilestoneRequest + 5, // 0: inx.NodeConfiguration.milestone_key_ranges:type_name -> inx.MilestoneKeyRange + 4, // 1: inx.NodeConfiguration.base_token:type_name -> inx.BaseToken + 13, // 2: inx.NodeStatus.latest_milestone:type_name -> inx.Milestone + 13, // 3: inx.NodeStatus.confirmed_milestone:type_name -> inx.Milestone + 9, // 4: inx.MilestoneRequest.milestone_id:type_name -> inx.MilestoneId + 9, // 5: inx.MilestoneInfo.milestone_id:type_name -> inx.MilestoneId + 12, // 6: inx.Milestone.milestone_info:type_name -> inx.MilestoneInfo + 8, // 7: inx.Milestone.milestone:type_name -> inx.RawMilestone + 13, // 8: inx.MilestoneAndProtocolParameters.milestone:type_name -> inx.Milestone + 7, // 9: inx.MilestoneAndProtocolParameters.current_protocol_parameters:type_name -> inx.RawProtocolParameters + 18, // 10: inx.WhiteFlagRequest.parents:type_name -> inx.BlockId + 9, // 11: inx.WhiteFlagRequest.previous_milestone_id:type_name -> inx.MilestoneId + 18, // 12: inx.Block.block_id:type_name -> inx.BlockId + 17, // 13: inx.Block.block:type_name -> inx.RawBlock + 21, // 14: inx.BlockWithMetadata.metadata:type_name -> inx.BlockMetadata + 17, // 15: inx.BlockWithMetadata.block:type_name -> inx.RawBlock + 18, // 16: inx.BlockMetadata.block_id:type_name -> inx.BlockId + 18, // 17: inx.BlockMetadata.parents:type_name -> inx.BlockId + 0, // 18: inx.BlockMetadata.ledger_inclusion_state:type_name -> inx.BlockMetadata.LedgerInclusionState + 1, // 19: inx.BlockMetadata.conflict_reason:type_name -> inx.BlockMetadata.ConflictReason + 18, // 20: inx.TipsResponse.tips:type_name -> inx.BlockId + 31, // 21: inx.OutputResponse.output:type_name -> inx.LedgerOutput + 32, // 22: inx.OutputResponse.spent:type_name -> inx.LedgerSpent + 31, // 23: inx.UnspentOutput.output:type_name -> inx.LedgerOutput + 27, // 24: inx.LedgerOutput.output_id:type_name -> inx.OutputId + 18, // 25: inx.LedgerOutput.blockId:type_name -> inx.BlockId + 30, // 26: inx.LedgerOutput.output:type_name -> inx.RawOutput + 31, // 27: inx.LedgerSpent.output:type_name -> inx.LedgerOutput + 26, // 28: inx.LedgerSpent.transaction_id_spent:type_name -> inx.TransactionId + 9, // 29: inx.TreasuryOutput.milestone_id:type_name -> inx.MilestoneId + 31, // 30: inx.LedgerUpdate.created:type_name -> inx.LedgerOutput + 32, // 31: inx.LedgerUpdate.consumed:type_name -> inx.LedgerSpent + 33, // 32: inx.TreasuryUpdate.created:type_name -> inx.TreasuryOutput + 33, // 33: inx.TreasuryUpdate.consumed:type_name -> inx.TreasuryOutput + 40, // 34: inx.APIRequest.headers:type_name -> inx.APIRequest.HeadersEntry + 41, // 35: inx.APIResponse.headers:type_name -> inx.APIResponse.HeadersEntry + 2, // 36: inx.INX.ReadNodeStatus:input_type -> inx.NoParams + 2, // 37: inx.INX.ReadNodeConfiguration:input_type -> inx.NoParams + 10, // 38: inx.INX.ReadProtocolParameters:input_type -> inx.MilestoneRequest + 10, // 39: inx.INX.ReadMilestone:input_type -> inx.MilestoneRequest 2, // 40: inx.INX.ListenToLatestMilestones:input_type -> inx.NoParams - 13, // 41: inx.INX.ListenToConfirmedMilestones:input_type -> inx.MilestoneRangeRequest - 16, // 42: inx.INX.ComputeWhiteFlag:input_type -> inx.WhiteFlagRequest - 12, // 43: inx.INX.ReadMilestoneCone:input_type -> inx.MilestoneRequest - 12, // 44: inx.INX.ReadMilestoneConeMetadata:input_type -> inx.MilestoneRequest + 11, // 41: inx.INX.ListenToConfirmedMilestones:input_type -> inx.MilestoneRangeRequest + 15, // 42: inx.INX.ComputeWhiteFlag:input_type -> inx.WhiteFlagRequest + 10, // 43: inx.INX.ReadMilestoneCone:input_type -> inx.MilestoneRequest + 10, // 44: inx.INX.ReadMilestoneConeMetadata:input_type -> inx.MilestoneRequest 2, // 45: inx.INX.ListenToBlocks:input_type -> inx.NoParams 2, // 46: inx.INX.ListenToSolidBlocks:input_type -> inx.NoParams 2, // 47: inx.INX.ListenToReferencedBlocks:input_type -> inx.NoParams - 18, // 48: inx.INX.SubmitBlock:input_type -> inx.RawBlock - 19, // 49: inx.INX.ReadBlock:input_type -> inx.BlockId - 19, // 50: inx.INX.ReadBlockMetadata:input_type -> inx.BlockId - 23, // 51: inx.INX.RequestTips:input_type -> inx.TipsRequest - 25, // 52: inx.INX.ListenToTipsMetrics:input_type -> inx.TipsMetricRequest + 17, // 48: inx.INX.SubmitBlock:input_type -> inx.RawBlock + 18, // 49: inx.INX.ReadBlock:input_type -> inx.BlockId + 18, // 50: inx.INX.ReadBlockMetadata:input_type -> inx.BlockId + 22, // 51: inx.INX.RequestTips:input_type -> inx.TipsRequest + 24, // 52: inx.INX.ListenToTipsMetrics:input_type -> inx.TipsMetricRequest 2, // 53: inx.INX.ListenToTipScoreUpdates:input_type -> inx.NoParams 2, // 54: inx.INX.ReadUnspentOutputs:input_type -> inx.NoParams - 13, // 55: inx.INX.ListenToLedgerUpdates:input_type -> inx.MilestoneRangeRequest - 13, // 56: inx.INX.ListenToTreasuryUpdates:input_type -> inx.MilestoneRangeRequest - 28, // 57: inx.INX.ReadOutput:input_type -> inx.OutputId + 11, // 55: inx.INX.ListenToLedgerUpdates:input_type -> inx.MilestoneRangeRequest + 11, // 56: inx.INX.ListenToTreasuryUpdates:input_type -> inx.MilestoneRangeRequest + 27, // 57: inx.INX.ReadOutput:input_type -> inx.OutputId 2, // 58: inx.INX.ListenToMigrationReceipts:input_type -> inx.NoParams - 38, // 59: inx.INX.RegisterAPIRoute:input_type -> inx.APIRouteRequest - 38, // 60: inx.INX.UnregisterAPIRoute:input_type -> inx.APIRouteRequest - 39, // 61: inx.INX.PerformAPIRequest:input_type -> inx.APIRequest - 9, // 62: inx.INX.ReadNodeStatus:output_type -> inx.NodeStatus + 37, // 59: inx.INX.RegisterAPIRoute:input_type -> inx.APIRouteRequest + 37, // 60: inx.INX.UnregisterAPIRoute:input_type -> inx.APIRouteRequest + 38, // 61: inx.INX.PerformAPIRequest:input_type -> inx.APIRequest + 6, // 62: inx.INX.ReadNodeStatus:output_type -> inx.NodeStatus 3, // 63: inx.INX.ReadNodeConfiguration:output_type -> inx.NodeConfiguration - 15, // 64: inx.INX.ReadMilestone:output_type -> inx.Milestone - 15, // 65: inx.INX.ListenToLatestMilestones:output_type -> inx.Milestone - 15, // 66: inx.INX.ListenToConfirmedMilestones:output_type -> inx.Milestone - 17, // 67: inx.INX.ComputeWhiteFlag:output_type -> inx.WhiteFlagResponse - 21, // 68: inx.INX.ReadMilestoneCone:output_type -> inx.BlockWithMetadata - 22, // 69: inx.INX.ReadMilestoneConeMetadata:output_type -> inx.BlockMetadata - 20, // 70: inx.INX.ListenToBlocks:output_type -> inx.Block - 22, // 71: inx.INX.ListenToSolidBlocks:output_type -> inx.BlockMetadata - 22, // 72: inx.INX.ListenToReferencedBlocks:output_type -> inx.BlockMetadata - 19, // 73: inx.INX.SubmitBlock:output_type -> inx.BlockId - 18, // 74: inx.INX.ReadBlock:output_type -> inx.RawBlock - 22, // 75: inx.INX.ReadBlockMetadata:output_type -> inx.BlockMetadata - 24, // 76: inx.INX.RequestTips:output_type -> inx.TipsResponse - 26, // 77: inx.INX.ListenToTipsMetrics:output_type -> inx.TipsMetric - 22, // 78: inx.INX.ListenToTipScoreUpdates:output_type -> inx.BlockMetadata - 30, // 79: inx.INX.ReadUnspentOutputs:output_type -> inx.UnspentOutput - 35, // 80: inx.INX.ListenToLedgerUpdates:output_type -> inx.LedgerUpdate - 36, // 81: inx.INX.ListenToTreasuryUpdates:output_type -> inx.TreasuryUpdate - 29, // 82: inx.INX.ReadOutput:output_type -> inx.OutputResponse - 37, // 83: inx.INX.ListenToMigrationReceipts:output_type -> inx.RawReceipt - 2, // 84: inx.INX.RegisterAPIRoute:output_type -> inx.NoParams - 2, // 85: inx.INX.UnregisterAPIRoute:output_type -> inx.NoParams - 40, // 86: inx.INX.PerformAPIRequest:output_type -> inx.APIResponse - 62, // [62:87] is the sub-list for method output_type - 37, // [37:62] is the sub-list for method input_type - 37, // [37:37] is the sub-list for extension type_name - 37, // [37:37] is the sub-list for extension extendee - 0, // [0:37] is the sub-list for field type_name + 7, // 64: inx.INX.ReadProtocolParameters:output_type -> inx.RawProtocolParameters + 13, // 65: inx.INX.ReadMilestone:output_type -> inx.Milestone + 13, // 66: inx.INX.ListenToLatestMilestones:output_type -> inx.Milestone + 14, // 67: inx.INX.ListenToConfirmedMilestones:output_type -> inx.MilestoneAndProtocolParameters + 16, // 68: inx.INX.ComputeWhiteFlag:output_type -> inx.WhiteFlagResponse + 20, // 69: inx.INX.ReadMilestoneCone:output_type -> inx.BlockWithMetadata + 21, // 70: inx.INX.ReadMilestoneConeMetadata:output_type -> inx.BlockMetadata + 19, // 71: inx.INX.ListenToBlocks:output_type -> inx.Block + 21, // 72: inx.INX.ListenToSolidBlocks:output_type -> inx.BlockMetadata + 21, // 73: inx.INX.ListenToReferencedBlocks:output_type -> inx.BlockMetadata + 18, // 74: inx.INX.SubmitBlock:output_type -> inx.BlockId + 17, // 75: inx.INX.ReadBlock:output_type -> inx.RawBlock + 21, // 76: inx.INX.ReadBlockMetadata:output_type -> inx.BlockMetadata + 23, // 77: inx.INX.RequestTips:output_type -> inx.TipsResponse + 25, // 78: inx.INX.ListenToTipsMetrics:output_type -> inx.TipsMetric + 21, // 79: inx.INX.ListenToTipScoreUpdates:output_type -> inx.BlockMetadata + 29, // 80: inx.INX.ReadUnspentOutputs:output_type -> inx.UnspentOutput + 34, // 81: inx.INX.ListenToLedgerUpdates:output_type -> inx.LedgerUpdate + 35, // 82: inx.INX.ListenToTreasuryUpdates:output_type -> inx.TreasuryUpdate + 28, // 83: inx.INX.ReadOutput:output_type -> inx.OutputResponse + 36, // 84: inx.INX.ListenToMigrationReceipts:output_type -> inx.RawReceipt + 2, // 85: inx.INX.RegisterAPIRoute:output_type -> inx.NoParams + 2, // 86: inx.INX.UnregisterAPIRoute:output_type -> inx.NoParams + 39, // 87: inx.INX.PerformAPIRequest:output_type -> inx.APIResponse + 62, // [62:88] is the sub-list for method output_type + 36, // [36:62] is the sub-list for method input_type + 36, // [36:36] is the sub-list for extension type_name + 36, // [36:36] is the sub-list for extension extendee + 0, // [0:36] is the sub-list for field type_name } func init() { file_inx_proto_init() } @@ -3240,7 +3115,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProtocolParameters); i { + switch v := v.(*BaseToken); i { case 0: return &v.state case 1: @@ -3252,7 +3127,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PendingProtocolParameters); i { + switch v := v.(*MilestoneKeyRange); i { case 0: return &v.state case 1: @@ -3264,7 +3139,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BaseToken); i { + switch v := v.(*NodeStatus); i { case 0: return &v.state case 1: @@ -3276,7 +3151,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MilestoneKeyRange); i { + switch v := v.(*RawProtocolParameters); i { case 0: return &v.state case 1: @@ -3288,7 +3163,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RentStructure); i { + switch v := v.(*RawMilestone); i { case 0: return &v.state case 1: @@ -3300,7 +3175,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NodeStatus); i { + switch v := v.(*MilestoneId); i { case 0: return &v.state case 1: @@ -3312,7 +3187,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RawMilestone); i { + switch v := v.(*MilestoneRequest); i { case 0: return &v.state case 1: @@ -3324,7 +3199,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MilestoneId); i { + switch v := v.(*MilestoneRangeRequest); i { case 0: return &v.state case 1: @@ -3336,7 +3211,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MilestoneRequest); i { + switch v := v.(*MilestoneInfo); i { case 0: return &v.state case 1: @@ -3348,7 +3223,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MilestoneRangeRequest); i { + switch v := v.(*Milestone); i { case 0: return &v.state case 1: @@ -3360,7 +3235,7 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MilestoneInfo); i { + switch v := v.(*MilestoneAndProtocolParameters); i { case 0: return &v.state case 1: @@ -3372,18 +3247,6 @@ func file_inx_proto_init() { } } file_inx_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Milestone); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inx_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WhiteFlagRequest); i { case 0: return &v.state @@ -3395,7 +3258,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WhiteFlagResponse); i { case 0: return &v.state @@ -3407,7 +3270,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RawBlock); i { case 0: return &v.state @@ -3419,7 +3282,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockId); i { case 0: return &v.state @@ -3431,7 +3294,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Block); i { case 0: return &v.state @@ -3443,7 +3306,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockWithMetadata); i { case 0: return &v.state @@ -3455,7 +3318,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockMetadata); i { case 0: return &v.state @@ -3467,7 +3330,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TipsRequest); i { case 0: return &v.state @@ -3479,7 +3342,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TipsResponse); i { case 0: return &v.state @@ -3491,7 +3354,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TipsMetricRequest); i { case 0: return &v.state @@ -3503,7 +3366,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TipsMetric); i { case 0: return &v.state @@ -3515,7 +3378,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionId); i { case 0: return &v.state @@ -3527,7 +3390,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OutputId); i { case 0: return &v.state @@ -3539,7 +3402,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OutputResponse); i { case 0: return &v.state @@ -3551,7 +3414,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnspentOutput); i { case 0: return &v.state @@ -3563,7 +3426,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RawOutput); i { case 0: return &v.state @@ -3575,7 +3438,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LedgerOutput); i { case 0: return &v.state @@ -3587,7 +3450,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LedgerSpent); i { case 0: return &v.state @@ -3599,7 +3462,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TreasuryOutput); i { case 0: return &v.state @@ -3611,7 +3474,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LedgerUpdate); i { case 0: return &v.state @@ -3623,7 +3486,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TreasuryUpdate); i { case 0: return &v.state @@ -3635,7 +3498,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RawReceipt); i { case 0: return &v.state @@ -3647,7 +3510,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*APIRouteRequest); i { case 0: return &v.state @@ -3659,7 +3522,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*APIRequest); i { case 0: return &v.state @@ -3671,7 +3534,7 @@ func file_inx_proto_init() { return nil } } - file_inx_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_inx_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*APIResponse); i { case 0: return &v.state @@ -3684,7 +3547,7 @@ func file_inx_proto_init() { } } } - file_inx_proto_msgTypes[27].OneofWrappers = []interface{}{ + file_inx_proto_msgTypes[26].OneofWrappers = []interface{}{ (*OutputResponse_Output)(nil), (*OutputResponse_Spent)(nil), } @@ -3694,7 +3557,7 @@ func file_inx_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_inx_proto_rawDesc, NumEnums: 2, - NumMessages: 41, + NumMessages: 40, NumExtensions: 0, NumServices: 1, }, diff --git a/go/inx_grpc.pb.go b/go/inx_grpc.pb.go index eae4b67..ef34996 100644 --- a/go/inx_grpc.pb.go +++ b/go/inx_grpc.pb.go @@ -25,6 +25,7 @@ type INXClient interface { // Node ReadNodeStatus(ctx context.Context, in *NoParams, opts ...grpc.CallOption) (*NodeStatus, error) ReadNodeConfiguration(ctx context.Context, in *NoParams, opts ...grpc.CallOption) (*NodeConfiguration, error) + ReadProtocolParameters(ctx context.Context, in *MilestoneRequest, opts ...grpc.CallOption) (*RawProtocolParameters, error) // Milestones ReadMilestone(ctx context.Context, in *MilestoneRequest, opts ...grpc.CallOption) (*Milestone, error) ListenToLatestMilestones(ctx context.Context, in *NoParams, opts ...grpc.CallOption) (INX_ListenToLatestMilestonesClient, error) @@ -82,6 +83,15 @@ func (c *iNXClient) ReadNodeConfiguration(ctx context.Context, in *NoParams, opt return out, nil } +func (c *iNXClient) ReadProtocolParameters(ctx context.Context, in *MilestoneRequest, opts ...grpc.CallOption) (*RawProtocolParameters, error) { + out := new(RawProtocolParameters) + err := c.cc.Invoke(ctx, "/inx.INX/ReadProtocolParameters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *iNXClient) ReadMilestone(ctx context.Context, in *MilestoneRequest, opts ...grpc.CallOption) (*Milestone, error) { out := new(Milestone) err := c.cc.Invoke(ctx, "/inx.INX/ReadMilestone", in, out, opts...) @@ -139,7 +149,7 @@ func (c *iNXClient) ListenToConfirmedMilestones(ctx context.Context, in *Milesto } type INX_ListenToConfirmedMilestonesClient interface { - Recv() (*Milestone, error) + Recv() (*MilestoneAndProtocolParameters, error) grpc.ClientStream } @@ -147,8 +157,8 @@ type iNXListenToConfirmedMilestonesClient struct { grpc.ClientStream } -func (x *iNXListenToConfirmedMilestonesClient) Recv() (*Milestone, error) { - m := new(Milestone) +func (x *iNXListenToConfirmedMilestonesClient) Recv() (*MilestoneAndProtocolParameters, error) { + m := new(MilestoneAndProtocolParameters) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } @@ -595,6 +605,7 @@ type INXServer interface { // Node ReadNodeStatus(context.Context, *NoParams) (*NodeStatus, error) ReadNodeConfiguration(context.Context, *NoParams) (*NodeConfiguration, error) + ReadProtocolParameters(context.Context, *MilestoneRequest) (*RawProtocolParameters, error) // Milestones ReadMilestone(context.Context, *MilestoneRequest) (*Milestone, error) ListenToLatestMilestones(*NoParams, INX_ListenToLatestMilestonesServer) error @@ -637,6 +648,9 @@ func (UnimplementedINXServer) ReadNodeStatus(context.Context, *NoParams) (*NodeS func (UnimplementedINXServer) ReadNodeConfiguration(context.Context, *NoParams) (*NodeConfiguration, error) { return nil, status.Errorf(codes.Unimplemented, "method ReadNodeConfiguration not implemented") } +func (UnimplementedINXServer) ReadProtocolParameters(context.Context, *MilestoneRequest) (*RawProtocolParameters, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReadProtocolParameters not implemented") +} func (UnimplementedINXServer) ReadMilestone(context.Context, *MilestoneRequest) (*Milestone, error) { return nil, status.Errorf(codes.Unimplemented, "method ReadMilestone not implemented") } @@ -755,6 +769,24 @@ func _INX_ReadNodeConfiguration_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _INX_ReadProtocolParameters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MilestoneRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(INXServer).ReadProtocolParameters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/inx.INX/ReadProtocolParameters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(INXServer).ReadProtocolParameters(ctx, req.(*MilestoneRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _INX_ReadMilestone_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MilestoneRequest) if err := dec(in); err != nil { @@ -803,7 +835,7 @@ func _INX_ListenToConfirmedMilestones_Handler(srv interface{}, stream grpc.Serve } type INX_ListenToConfirmedMilestonesServer interface { - Send(*Milestone) error + Send(*MilestoneAndProtocolParameters) error grpc.ServerStream } @@ -811,7 +843,7 @@ type iNXListenToConfirmedMilestonesServer struct { grpc.ServerStream } -func (x *iNXListenToConfirmedMilestonesServer) Send(m *Milestone) error { +func (x *iNXListenToConfirmedMilestonesServer) Send(m *MilestoneAndProtocolParameters) error { return x.ServerStream.SendMsg(m) } @@ -1223,6 +1255,10 @@ var INX_ServiceDesc = grpc.ServiceDesc{ MethodName: "ReadNodeConfiguration", Handler: _INX_ReadNodeConfiguration_Handler, }, + { + MethodName: "ReadProtocolParameters", + Handler: _INX_ReadProtocolParameters_Handler, + }, { MethodName: "ReadMilestone", Handler: _INX_ReadMilestone_Handler, diff --git a/go/utils.go b/go/utils.go index f338259..80e6ab0 100644 --- a/go/utils.go +++ b/go/utils.go @@ -15,28 +15,6 @@ func blockIDsFromSlice(slice []*BlockId) iotago.BlockIDs { return result } -// Node - -func (x *NodeConfiguration) UnwrapProtocolParameters() *iotago.ProtocolParameters { - return x.GetProtocolParameters().Unwrap() -} - -func (x *ProtocolParameters) Unwrap() *iotago.ProtocolParameters { - return &iotago.ProtocolParameters{ - Version: byte(x.GetVersion()), - NetworkName: x.GetNetworkName(), - Bech32HRP: iotago.NetworkPrefix(x.GetBech32HRP()), - MinPoWScore: x.GetMinPoWScore(), - BelowMaxDepth: uint8(x.GetBelowMaxDepth()), - RentStructure: iotago.RentStructure{ - VByteCost: x.GetRentStructure().GetVByteCost(), - VBFactorData: iotago.VByteCostFactor(x.GetRentStructure().GetVByteFactorData()), - VBFactorKey: iotago.VByteCostFactor(x.GetRentStructure().GetVByteFactorKey()), - }, - TokenSupply: x.GetTokenSupply(), - } -} - // Block func WrapBlock(msg *iotago.Block) (*RawBlock, error) { diff --git a/proto/inx.proto b/proto/inx.proto index 775eb0e..2fd0084 100644 --- a/proto/inx.proto +++ b/proto/inx.proto @@ -7,11 +7,12 @@ service INX { // Node rpc ReadNodeStatus(NoParams) returns (NodeStatus); rpc ReadNodeConfiguration(NoParams) returns (NodeConfiguration); + rpc ReadProtocolParameters(MilestoneRequest) returns (RawProtocolParameters); // Milestones rpc ReadMilestone(MilestoneRequest) returns (Milestone); rpc ListenToLatestMilestones(NoParams) returns (stream Milestone); - rpc ListenToConfirmedMilestones(MilestoneRangeRequest) returns (stream Milestone); + rpc ListenToConfirmedMilestones(MilestoneRangeRequest) returns (stream MilestoneAndProtocolParameters); rpc ComputeWhiteFlag(WhiteFlagRequest) returns (WhiteFlagResponse); rpc ReadMilestoneCone(MilestoneRequest) returns (stream BlockWithMetadata); rpc ReadMilestoneConeMetadata(MilestoneRequest) returns (stream BlockMetadata); @@ -48,59 +49,40 @@ message NoParams {} // Node message NodeConfiguration { - ProtocolParameters protocolParameters = 1; - uint32 milestonePublicKeyCount = 2; - repeated MilestoneKeyRange milestoneKeyRanges = 3; - BaseToken baseToken = 4; - repeated uint32 supportedProtocolVersions = 5; - repeated PendingProtocolParameters pendingProtocolParameters = 6; -} - -message ProtocolParameters { - uint32 version = 1; - string networkName = 2; - string bech32HRP = 3; - uint32 minPoWScore = 4; - uint32 belowMaxDepth = 5; - RentStructure rentStructure = 6; - uint64 tokenSupply = 7; -} - -message PendingProtocolParameters { - uint32 targetMilestoneIndex = 1; - uint32 version = 2; - bytes params = 3; + uint32 milestone_public_key_count = 1; + repeated MilestoneKeyRange milestone_key_ranges = 2; + BaseToken base_token = 3; + repeated uint32 supported_protocol_versions = 4; } message BaseToken { string name = 1; - string tickerSymbol = 2; + string ticker_symbol = 2; string unit = 3; string subunit = 4; uint32 decimals = 5; - bool useMetricPrefix = 6; + bool use_metric_prefix = 6; } message MilestoneKeyRange { - bytes publicKey = 1; - uint32 startIndex = 2; - uint32 endIndex = 3; + bytes public_key = 1; + uint32 start_index = 2; + uint32 end_index = 3; } -message RentStructure { - uint32 vByteCost = 1; - uint32 vByteFactorData = 2; - uint32 vByteFactorKey = 3; +message NodeStatus { + bool is_healthy = 1; + Milestone latest_milestone = 2; + Milestone confirmed_milestone = 3; + uint32 tangle_pruning_index = 4; + uint32 milestones_pruning_index = 5; + uint32 ledger_pruning_index = 6; + uint32 ledger_index = 7; } -message NodeStatus { - bool isHealthy = 1; - Milestone latestMilestone = 2; - Milestone confirmedMilestone = 3; - uint32 tanglePruningIndex = 4; - uint32 milestonesPruningIndex = 5; - uint32 ledgerPruningIndex = 6; - uint32 ledgerIndex = 7; +message RawProtocolParameters { + uint32 protocol_version = 1; + bytes params = 2; } // Milestones @@ -113,41 +95,46 @@ message MilestoneId { } message MilestoneRequest { - uint32 milestoneIndex = 1; - MilestoneId milestoneId = 2; + uint32 milestone_index = 1; + MilestoneId milestone_id = 2; } message MilestoneRangeRequest { - // startMilestoneIndex is the initial milestone to get. Use 0 to start from the current node status. - uint32 startMilestoneIndex = 1; - // endMilestoneIndex is the last milestone to get (inclusive). Use 0 to keep getting new confirmed milestones. - uint32 endMilestoneIndex = 2; + // start_milestone_index is the initial milestone to get. Use 0 to start from the current node status. + uint32 start_milestone_index = 1; + // end_milestone_index is the last milestone to get (inclusive). Use 0 to keep getting new confirmed milestones. + uint32 end_milestone_index = 2; } message MilestoneInfo { // Optional. This field can be missing for example if there are no milestones yet in a network. - MilestoneId milestoneId = 1; - uint32 milestoneIndex = 2; + MilestoneId milestone_id = 1; + uint32 milestone_index = 2; // Optional. This field can be missing for example if there are no milestones yet in a network. - uint32 milestoneTimestamp = 3; + uint32 milestone_timestamp = 3; } message Milestone { - MilestoneInfo milestoneInfo = 1; + MilestoneInfo milestone_info = 1; // Optional. This field can be missing for example if there are no milestones yet in a network. RawMilestone milestone = 2; } +message MilestoneAndProtocolParameters { + Milestone milestone = 1; + RawProtocolParameters current_protocol_parameters = 2; +} + message WhiteFlagRequest { - uint32 milestoneIndex = 1; - uint32 milestoneTimestamp = 2; + uint32 milestone_index = 1; + uint32 milestone_timestamp = 2; repeated BlockId parents = 3; - MilestoneId previousMilestoneId = 4; + MilestoneId previous_milestone_id = 4; } message WhiteFlagResponse { - bytes milestoneInclusionMerkleRoot = 1; - bytes milestoneAppliedMerkleRoot = 2; + bytes milestone_inclusion_merkle_root = 1; + bytes milestone_applied_merkle_root = 2; } // Blocks @@ -160,7 +147,7 @@ message BlockId { } message Block { - BlockId blockId = 1; + BlockId block_id = 1; RawBlock block = 2; } @@ -170,43 +157,43 @@ message BlockWithMetadata { } message BlockMetadata { - BlockId blockId = 1; + BlockId block_id = 1; repeated BlockId parents = 2; bool solid = 3; - bool shouldPromote = 4; - bool shouldReattach = 5; - uint32 referencedByMilestoneIndex = 6; - uint32 milestoneIndex = 7; + bool should_promote = 4; + bool should_reattach = 5; + uint32 referenced_by_milestone_index = 6; + uint32 milestone_index = 7; enum LedgerInclusionState { - NO_TRANSACTION = 0; - INCLUDED = 1; - CONFLICTING = 2; + LEDGER_INCLUSION_STATE_NO_TRANSACTION = 0; + LEDGER_INCLUSION_STATE_INCLUDED = 1; + LEDGER_INCLUSION_STATE_CONFLICTING = 2; } - LedgerInclusionState ledgerInclusionState = 8; + LedgerInclusionState ledger_inclusion_state = 8; enum ConflictReason { - NONE = 0; - INPUT_ALREADY_SPENT = 1; - INPUT_ALREADY_SPENT_IN_THIS_MILESTONE = 2; - INPUT_NOT_FOUND = 3; - INPUT_OUTPUT_SUM_MISMATCH = 4; - INVALID_SIGNATURE = 5; - TIMELOCK_NOT_EXPIRED = 6; - INVALID_NATIVE_TOKENS = 7; - RETURN_AMOUNT_NOT_FULFILLED = 8; - INVALID_INPUT_UNLOCK = 9; - INVALID_INPUTS_COMMITMENT = 10; - INVALID_SENDER = 11; - INVALID_CHAIN_STATE_TRANSITION = 12; - SEMANTIC_VALIDATION_FAILED = 255; + CONFLICT_REASON_NONE = 0; + CONFLICT_REASON_INPUT_ALREADY_SPENT = 1; + CONFLICT_REASON_INPUT_ALREADY_SPENT_IN_THIS_MILESTONE = 2; + CONFLICT_REASON_INPUT_NOT_FOUND = 3; + CONFLICT_REASON_INPUT_OUTPUT_SUM_MISMATCH = 4; + CONFLICT_REASON_INVALID_SIGNATURE = 5; + CONFLICT_REASON_TIMELOCK_NOT_EXPIRED = 6; + CONFLICT_REASON_INVALID_NATIVE_TOKENS = 7; + CONFLICT_REASON_RETURN_AMOUNT_NOT_FULFILLED = 8; + CONFLICT_REASON_INVALID_INPUT_UNLOCK = 9; + CONFLICT_REASON_INVALID_INPUTS_COMMITMENT = 10; + CONFLICT_REASON_INVALID_SENDER = 11; + CONFLICT_REASON_INVALID_CHAIN_STATE_TRANSITION = 12; + CONFLICT_REASON_SEMANTIC_VALIDATION_FAILED = 255; } - ConflictReason conflictReason = 9; - uint32 whiteFlagIndex = 10; + ConflictReason conflict_reason = 9; + uint32 white_flag_index = 10; } // Tips message TipsRequest { uint32 count = 1; - bool allowSemiLazy = 2; + bool allow_semiLazy = 2; } message TipsResponse { @@ -214,12 +201,12 @@ message TipsResponse { } message TipsMetricRequest { - uint32 intervalInMilliseconds = 1; + uint32 interval_in_milliseconds = 1; } message TipsMetric { - uint32 nonLazyPoolSize = 1; - uint32 semiLazyPoolSize = 2; + uint32 non_lazy_pool_size = 1; + uint32 semi_lazy_pool_size = 2; } // UTXO @@ -232,7 +219,7 @@ message OutputId { } message OutputResponse { - uint32 ledgerIndex = 1; + uint32 ledger_index = 1; oneof payload { LedgerOutput output = 2; LedgerSpent spent = 3; @@ -249,33 +236,33 @@ message RawOutput { } message LedgerOutput { - OutputId outputId = 1; + OutputId output_id = 1; BlockId blockId = 2; - uint32 milestoneIndexBooked = 3; - uint32 milestoneTimestampBooked = 4; + uint32 milestone_index_booked = 3; + uint32 milestone_timestamp_booked = 4; RawOutput output = 5; } message LedgerSpent { LedgerOutput output = 1; - TransactionId transactionIdSpent = 2; - uint32 milestoneIndexSpent = 3; - uint32 milestoneTimestampSpent = 4; + TransactionId transaction_id_spent = 2; + uint32 milestone_index_spent = 3; + uint32 milestone_timestamp_spent = 4; } message TreasuryOutput { - MilestoneId milestoneId = 1; + MilestoneId milestone_id = 1; uint64 amount = 2; } message LedgerUpdate { - uint32 milestoneIndex = 1; + uint32 milestone_index = 1; repeated LedgerOutput created = 2; repeated LedgerSpent consumed = 3; } message TreasuryUpdate { - uint32 milestoneIndex = 1; + uint32 milestone_index = 1; TreasuryOutput created = 2; TreasuryOutput consumed = 3; }