Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
parent
b37887e09c
commit
7f5ff068c2
@ -682,78 +682,78 @@ func TestAuthzGRPCQueries(t *testing.T) {
|
||||
|
||||
grantTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"invalid granter address",
|
||||
fmt.Sprintf(grantURL, "invalid_granter", grantee1Addr, msgSendTypeURL),
|
||||
http.StatusInternalServerError,
|
||||
bech32FailOutput,
|
||||
Name: "invalid granter address",
|
||||
Url: fmt.Sprintf(grantURL, "invalid_granter", grantee1Addr, msgSendTypeURL),
|
||||
ExpCodeGTE: http.StatusBadRequest,
|
||||
ExpOut: bech32FailOutput,
|
||||
},
|
||||
{
|
||||
"invalid grantee address",
|
||||
fmt.Sprintf(grantURL, granterAddr, "invalid_grantee", msgSendTypeURL),
|
||||
http.StatusInternalServerError,
|
||||
bech32FailOutput,
|
||||
Name: "invalid grantee address",
|
||||
Url: fmt.Sprintf(grantURL, granterAddr, "invalid_grantee", msgSendTypeURL),
|
||||
ExpCodeGTE: http.StatusBadRequest,
|
||||
ExpOut: bech32FailOutput,
|
||||
},
|
||||
{
|
||||
"with empty granter",
|
||||
fmt.Sprintf(grantURL, "", grantee1Addr, msgSendTypeURL),
|
||||
http.StatusInternalServerError,
|
||||
emptyStrOutput,
|
||||
Name: "with empty granter",
|
||||
Url: fmt.Sprintf(grantURL, "", grantee1Addr, msgSendTypeURL),
|
||||
ExpCodeGTE: http.StatusBadRequest,
|
||||
ExpOut: emptyStrOutput,
|
||||
},
|
||||
{
|
||||
"with empty grantee",
|
||||
fmt.Sprintf(grantURL, granterAddr, "", msgSendTypeURL),
|
||||
http.StatusInternalServerError,
|
||||
emptyStrOutput,
|
||||
Name: "with empty grantee",
|
||||
Url: fmt.Sprintf(grantURL, granterAddr, "", msgSendTypeURL),
|
||||
ExpCodeGTE: http.StatusBadRequest,
|
||||
ExpOut: emptyStrOutput,
|
||||
},
|
||||
{
|
||||
"invalid msg-type",
|
||||
fmt.Sprintf(grantURL, granterAddr, grantee1Addr, "invalidMsg"),
|
||||
http.StatusInternalServerError,
|
||||
invalidMsgTypeOutput,
|
||||
Name: "invalid msg-type",
|
||||
Url: fmt.Sprintf(grantURL, granterAddr, grantee1Addr, "invalidMsg"),
|
||||
ExpCode: http.StatusInternalServerError,
|
||||
ExpOut: invalidMsgTypeOutput,
|
||||
},
|
||||
{
|
||||
"valid grant query",
|
||||
fmt.Sprintf(grantURL, granterAddr, grantee1Addr, msgSendTypeURL),
|
||||
http.StatusOK,
|
||||
expGrantOutput,
|
||||
Name: "valid grant query",
|
||||
Url: fmt.Sprintf(grantURL, granterAddr, grantee1Addr, msgSendTypeURL),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: expGrantOutput,
|
||||
},
|
||||
}
|
||||
|
||||
systest.RunRestQueries(t, grantTestCases...)
|
||||
systest.RunRestQueriesIgnoreNumbers(t, grantTestCases...)
|
||||
|
||||
// test query grants grpc endpoint
|
||||
grantsURL := baseurl + "/cosmos/authz/v1beta1/grants?granter=%s&grantee=%s"
|
||||
|
||||
grantsTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"expect single grant",
|
||||
fmt.Sprintf(grantsURL, granterAddr, grantee1Addr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"grants":[{%s}],"pagination":{"next_key":null,"total":"1"}}`, grant1),
|
||||
Name: "expect single grant",
|
||||
Url: fmt.Sprintf(grantsURL, granterAddr, grantee1Addr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"grants":[{%s}],"pagination":{"next_key":null,"total":"1"}}`, grant1),
|
||||
},
|
||||
{
|
||||
"expect two grants",
|
||||
fmt.Sprintf(grantsURL, granterAddr, grantee2Addr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"grants":[{%s},{%s}],"pagination":{"next_key":null,"total":"2"}}`, grant2, grant3),
|
||||
Name: "expect two grants",
|
||||
Url: fmt.Sprintf(grantsURL, granterAddr, grantee2Addr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"grants":[{%s},{%s}],"pagination":{"next_key":null,"total":"2"}}`, grant2, grant3),
|
||||
},
|
||||
{
|
||||
"expect single grant with pagination",
|
||||
fmt.Sprintf(grantsURL+"&pagination.limit=1", granterAddr, grantee2Addr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"grants":[{%s}],"pagination":{"next_key":"L2Nvc21vcy5nb3YudjEuTXNnVm90ZQ==","total":"0"}}`, grant2),
|
||||
Name: "expect single grant with pagination",
|
||||
Url: fmt.Sprintf(grantsURL+"&pagination.limit=1", granterAddr, grantee2Addr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"grants":[{%s}],"pagination":{"next_key":"L2Nvc21vcy5nb3YudjEuTXNnVm90ZQ==","total":"0"}}`, grant2),
|
||||
},
|
||||
{
|
||||
"expect single grant with pagination limit and offset",
|
||||
fmt.Sprintf(grantsURL+"&pagination.limit=1&pagination.offset=1", granterAddr, grantee2Addr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"grants":[{%s}],"pagination":{"next_key":null,"total":"0"}}`, grant3),
|
||||
Name: "expect single grant with pagination limit and offset",
|
||||
Url: fmt.Sprintf(grantsURL+"&pagination.limit=1&pagination.offset=1", granterAddr, grantee2Addr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"grants":[{%s}],"pagination":{"next_key":null,"total":"0"}}`, grant3),
|
||||
},
|
||||
{
|
||||
"expect two grants with pagination",
|
||||
fmt.Sprintf(grantsURL+"&pagination.limit=2", granterAddr, grantee2Addr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"grants":[{%s},{%s}],"pagination":{"next_key":null,"total":"0"}}`, grant2, grant3),
|
||||
Name: "expect two grants with pagination",
|
||||
Url: fmt.Sprintf(grantsURL+"&pagination.limit=2", granterAddr, grantee2Addr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"grants":[{%s},{%s}],"pagination":{"next_key":null,"total":"0"}}`, grant2, grant3),
|
||||
},
|
||||
}
|
||||
|
||||
@ -768,26 +768,26 @@ func TestAuthzGRPCQueries(t *testing.T) {
|
||||
|
||||
granterTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"invalid granter account address",
|
||||
fmt.Sprintf(grantsByGranterURL, "invalid address"),
|
||||
http.StatusInternalServerError,
|
||||
decodingFailedOutput,
|
||||
Name: "invalid granter account address",
|
||||
Url: fmt.Sprintf(grantsByGranterURL, "invalid address"),
|
||||
ExpCodeGTE: http.StatusBadRequest,
|
||||
ExpOut: decodingFailedOutput,
|
||||
},
|
||||
{
|
||||
"no authorizations found from granter",
|
||||
fmt.Sprintf(grantsByGranterURL, grantee2Addr),
|
||||
http.StatusOK,
|
||||
noAuthorizationsOutput,
|
||||
Name: "no authorizations found from granter",
|
||||
Url: fmt.Sprintf(grantsByGranterURL, grantee2Addr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: noAuthorizationsOutput,
|
||||
},
|
||||
{
|
||||
"valid granter query",
|
||||
fmt.Sprintf(grantsByGranterURL, grantee1Addr),
|
||||
http.StatusOK,
|
||||
granterQueryOutput,
|
||||
Name: "valid granter query",
|
||||
Url: fmt.Sprintf(grantsByGranterURL, grantee1Addr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: granterQueryOutput,
|
||||
},
|
||||
}
|
||||
|
||||
systest.RunRestQueries(t, granterTestCases...)
|
||||
systest.RunRestQueriesIgnoreNumbers(t, granterTestCases...)
|
||||
|
||||
// test query grants by grantee grpc endpoint
|
||||
grantsByGranteeURL := baseurl + "/cosmos/authz/v1beta1/grants/grantee/%s"
|
||||
@ -795,26 +795,26 @@ func TestAuthzGRPCQueries(t *testing.T) {
|
||||
|
||||
granteeTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"invalid grantee account address",
|
||||
fmt.Sprintf(grantsByGranteeURL, "invalid address"),
|
||||
http.StatusInternalServerError,
|
||||
decodingFailedOutput,
|
||||
Name: "invalid grantee account address",
|
||||
Url: fmt.Sprintf(grantsByGranteeURL, "invalid address"),
|
||||
ExpCodeGTE: http.StatusBadRequest,
|
||||
ExpOut: decodingFailedOutput,
|
||||
},
|
||||
{
|
||||
"no authorizations found from grantee",
|
||||
fmt.Sprintf(grantsByGranteeURL, granterAddr),
|
||||
http.StatusOK,
|
||||
noAuthorizationsOutput,
|
||||
Name: "no authorizations found from grantee",
|
||||
Url: fmt.Sprintf(grantsByGranteeURL, granterAddr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: noAuthorizationsOutput,
|
||||
},
|
||||
{
|
||||
"valid grantee query",
|
||||
fmt.Sprintf(grantsByGranteeURL, grantee1Addr),
|
||||
http.StatusOK,
|
||||
grantee1GrantsOutput,
|
||||
Name: "valid grantee query",
|
||||
Url: fmt.Sprintf(grantsByGranteeURL, grantee1Addr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: grantee1GrantsOutput,
|
||||
},
|
||||
}
|
||||
|
||||
systest.RunRestQueries(t, granteeTestCases...)
|
||||
systest.RunRestQueriesIgnoreNumbers(t, granteeTestCases...)
|
||||
}
|
||||
|
||||
func setupChain(t *testing.T) (*systest.CLIWrapper, string, string) {
|
||||
|
||||
@ -265,7 +265,7 @@ func TestBankGRPCQueries(t *testing.T) {
|
||||
map[string]string{
|
||||
blockHeightHeader: fmt.Sprintf("%d", blockHeight+5),
|
||||
},
|
||||
http.StatusInternalServerError,
|
||||
http.StatusBadRequest,
|
||||
"invalid height",
|
||||
},
|
||||
{
|
||||
@ -280,7 +280,7 @@ func TestBankGRPCQueries(t *testing.T) {
|
||||
|
||||
for _, tc := range supplyTestCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
resp := systest.GetRequestWithHeaders(t, tc.url, tc.headers, tc.expHttpCode)
|
||||
resp := systest.GetRequestWithHeadersGreaterThanOrEqual(t, tc.url, tc.headers, tc.expHttpCode)
|
||||
require.Contains(t, string(resp), tc.expOut)
|
||||
})
|
||||
}
|
||||
@ -289,22 +289,22 @@ func TestBankGRPCQueries(t *testing.T) {
|
||||
denomMetadataUrl := baseurl + "/cosmos/bank/v1beta1/denoms_metadata"
|
||||
dmTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"test GRPC client metadata",
|
||||
denomMetadataUrl,
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"metadatas":%s,"pagination":{"next_key":null,"total":"2"}}`, bankDenomMetadata),
|
||||
Name: "test GRPC client metadata",
|
||||
Url: denomMetadataUrl,
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"metadatas":%s,"pagination":{"next_key":null,"total":"2"}}`, bankDenomMetadata),
|
||||
},
|
||||
{
|
||||
"test GRPC client metadata of a specific denom",
|
||||
denomMetadataUrl + "/uatom",
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"metadata":%s}`, atomDenomMetadata),
|
||||
Name: "test GRPC client metadata of a specific denom",
|
||||
Url: denomMetadataUrl + "/uatom",
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"metadata":%s}`, atomDenomMetadata),
|
||||
},
|
||||
{
|
||||
"test GRPC client metadata of a bogus denom",
|
||||
denomMetadataUrl + "/foobar",
|
||||
http.StatusNotFound,
|
||||
`{"code":5, "message":"client metadata for denom foobar", "details":[]}`,
|
||||
Name: "test GRPC client metadata of a bogus denom",
|
||||
Url: denomMetadataUrl + "/foobar",
|
||||
ExpCode: http.StatusNotFound,
|
||||
ExpOut: `{"code":5, "message":"client metadata for denom foobar", "details":[]}`,
|
||||
},
|
||||
}
|
||||
|
||||
@ -316,22 +316,22 @@ func TestBankGRPCQueries(t *testing.T) {
|
||||
|
||||
balanceTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"test GRPC total account balance",
|
||||
balanceUrl + account1Addr,
|
||||
http.StatusOK,
|
||||
allBalancesOutput,
|
||||
Name: "test GRPC total account balance",
|
||||
Url: balanceUrl + account1Addr,
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: allBalancesOutput,
|
||||
},
|
||||
{
|
||||
"test GRPC account balance of a specific denom",
|
||||
fmt.Sprintf("%s%s/by_denom?denom=%s", balanceUrl, account1Addr, newDenom),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"balance":%s}`, specificDenomOutput),
|
||||
Name: "test GRPC account balance of a specific denom",
|
||||
Url: fmt.Sprintf("%s%s/by_denom?denom=%s", balanceUrl, account1Addr, newDenom),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"balance":%s}`, specificDenomOutput),
|
||||
},
|
||||
{
|
||||
"test GRPC account balance of a bogus denom",
|
||||
fmt.Sprintf("%s%s/by_denom?denom=foobar", balanceUrl, account1Addr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"balance":%s}`, bogusDenomOutput),
|
||||
Name: "test GRPC account balance of a bogus denom",
|
||||
Url: fmt.Sprintf("%s%s/by_denom?denom=foobar", balanceUrl, account1Addr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"balance":%s}`, bogusDenomOutput),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@ -129,10 +129,10 @@ func TestDistrValidatorGRPCQueries(t *testing.T) {
|
||||
|
||||
paramsTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"gRPC request params",
|
||||
paramsURL,
|
||||
http.StatusOK,
|
||||
`{"params":{"community_tax":"0.020000000000000000","base_proposer_reward":"0.000000000000000000","bonus_proposer_reward":"0.000000000000000000","withdraw_addr_enabled":true}}`,
|
||||
Name: "gRPC request params",
|
||||
Url: paramsURL,
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: `{"params":{"community_tax":"0.020000000000000000","base_proposer_reward":"0.000000000000000000","bonus_proposer_reward":"0.000000000000000000","withdraw_addr_enabled":true}}`,
|
||||
},
|
||||
}
|
||||
systest.RunRestQueries(t, paramsTestCases...)
|
||||
@ -143,39 +143,39 @@ func TestDistrValidatorGRPCQueries(t *testing.T) {
|
||||
|
||||
validatorsTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"gRPC request validator with valid validator address",
|
||||
fmt.Sprintf(validatorsURL, valOperAddr),
|
||||
http.StatusOK,
|
||||
validatorsOutput,
|
||||
Name: "gRPC request validator with valid validator address",
|
||||
Url: fmt.Sprintf(validatorsURL, valOperAddr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: validatorsOutput,
|
||||
},
|
||||
}
|
||||
systest.TestRestQueryIgnoreNumbers(t, validatorsTestCases...)
|
||||
systest.RunRestQueriesIgnoreNumbers(t, validatorsTestCases...)
|
||||
|
||||
// test outstanding rewards grpc endpoint
|
||||
outstandingRewardsURL := baseurl + `/cosmos/distribution/v1beta1/validators/%s/outstanding_rewards`
|
||||
|
||||
rewardsTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"gRPC request outstanding rewards with valid validator address",
|
||||
fmt.Sprintf(outstandingRewardsURL, valOperAddr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"rewards":{"rewards":[%s]}}`, expectedAmountOutput),
|
||||
Name: "gRPC request outstanding rewards with valid validator address",
|
||||
Url: fmt.Sprintf(outstandingRewardsURL, valOperAddr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"rewards":{"rewards":[%s]}}`, expectedAmountOutput),
|
||||
},
|
||||
}
|
||||
systest.TestRestQueryIgnoreNumbers(t, rewardsTestCases...)
|
||||
systest.RunRestQueriesIgnoreNumbers(t, rewardsTestCases...)
|
||||
|
||||
// test validator commission grpc endpoint
|
||||
commissionURL := baseurl + `/cosmos/distribution/v1beta1/validators/%s/commission`
|
||||
|
||||
commissionTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"gRPC request commission with valid validator address",
|
||||
fmt.Sprintf(commissionURL, valOperAddr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"commission":{"commission":[%s]}}`, expectedAmountOutput),
|
||||
Name: "gRPC request commission with valid validator address",
|
||||
Url: fmt.Sprintf(commissionURL, valOperAddr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"commission":{"commission":[%s]}}`, expectedAmountOutput),
|
||||
},
|
||||
}
|
||||
systest.TestRestQueryIgnoreNumbers(t, commissionTestCases...)
|
||||
systest.RunRestQueriesIgnoreNumbers(t, commissionTestCases...)
|
||||
|
||||
// test validator slashes grpc endpoint
|
||||
slashURL := baseurl + `/cosmos/distribution/v1beta1/validators/%s/slashes`
|
||||
@ -183,25 +183,25 @@ func TestDistrValidatorGRPCQueries(t *testing.T) {
|
||||
|
||||
slashTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"invalid start height",
|
||||
fmt.Sprintf(slashURL+`?starting_height=%s&ending_height=%s`, valOperAddr, "-3", "3"),
|
||||
http.StatusBadRequest,
|
||||
invalidHeightOutput,
|
||||
Name: "invalid start height",
|
||||
Url: fmt.Sprintf(slashURL+`?starting_height=%s&ending_height=%s`, valOperAddr, "-3", "3"),
|
||||
ExpCode: http.StatusBadRequest,
|
||||
ExpOut: invalidHeightOutput,
|
||||
},
|
||||
{
|
||||
"invalid end height",
|
||||
fmt.Sprintf(slashURL+`?starting_height=%s&ending_height=%s`, valOperAddr, "1", "-3"),
|
||||
http.StatusBadRequest,
|
||||
invalidHeightOutput,
|
||||
Name: "invalid end height",
|
||||
Url: fmt.Sprintf(slashURL+`?starting_height=%s&ending_height=%s`, valOperAddr, "1", "-3"),
|
||||
ExpCode: http.StatusBadRequest,
|
||||
ExpOut: invalidHeightOutput,
|
||||
},
|
||||
{
|
||||
"valid request get slashes",
|
||||
fmt.Sprintf(slashURL+`?starting_height=%s&ending_height=%s`, valOperAddr, "1", "3"),
|
||||
http.StatusOK,
|
||||
`{"slashes":[],"pagination":{"next_key":null,"total":"0"}}`,
|
||||
Name: "valid request get slashes",
|
||||
Url: fmt.Sprintf(slashURL+`?starting_height=%s&ending_height=%s`, valOperAddr, "1", "3"),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: `{"slashes":[],"pagination":{"next_key":null,"total":"0"}}`,
|
||||
},
|
||||
}
|
||||
systest.RunRestQueries(t, slashTestCases...)
|
||||
systest.RunRestQueriesIgnoreNumbers(t, slashTestCases...)
|
||||
}
|
||||
|
||||
func TestDistrDelegatorGRPCQueries(t *testing.T) {
|
||||
@ -257,28 +257,28 @@ func TestDistrDelegatorGRPCQueries(t *testing.T) {
|
||||
|
||||
delegatorRewardsTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"valid rewards request with valid delegator address",
|
||||
fmt.Sprintf(delegatorRewardsURL, delAddr),
|
||||
http.StatusOK,
|
||||
rewardsOutput,
|
||||
Name: "valid rewards request with valid delegator address",
|
||||
Url: fmt.Sprintf(delegatorRewardsURL, delAddr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: rewardsOutput,
|
||||
},
|
||||
{
|
||||
"valid request(specific validator rewards)",
|
||||
fmt.Sprintf(delegatorRewardsURL+`/%s`, delAddr, valOperAddr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"rewards":[%s]}`, expectedAmountOutput),
|
||||
Name: "valid request(specific validator rewards)",
|
||||
Url: fmt.Sprintf(delegatorRewardsURL+`/%s`, delAddr, valOperAddr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"rewards":[%s]}`, expectedAmountOutput),
|
||||
},
|
||||
}
|
||||
systest.TestRestQueryIgnoreNumbers(t, delegatorRewardsTestCases...)
|
||||
systest.RunRestQueriesIgnoreNumbers(t, delegatorRewardsTestCases...)
|
||||
|
||||
// test delegator validators grpc endpoint
|
||||
delegatorValsURL := baseurl + `/cosmos/distribution/v1beta1/delegators/%s/validators`
|
||||
valsTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"gRPC request delegator validators with valid delegator address",
|
||||
fmt.Sprintf(delegatorValsURL, delAddr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"validators":["%s"]}`, valOperAddr),
|
||||
Name: "gRPC request delegator validators with valid delegator address",
|
||||
Url: fmt.Sprintf(delegatorValsURL, delAddr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"validators":["%s"]}`, valOperAddr),
|
||||
},
|
||||
}
|
||||
systest.RunRestQueries(t, valsTestCases...)
|
||||
@ -287,10 +287,10 @@ func TestDistrDelegatorGRPCQueries(t *testing.T) {
|
||||
withdrawAddrURL := baseurl + `/cosmos/distribution/v1beta1/delegators/%s/withdraw_address`
|
||||
withdrawAddrTestCases := []systest.RestTestCase{
|
||||
{
|
||||
"gRPC request withdraw address with valid delegator address",
|
||||
fmt.Sprintf(withdrawAddrURL, delAddr),
|
||||
http.StatusOK,
|
||||
fmt.Sprintf(`{"withdraw_address":"%s"}`, delAddr),
|
||||
Name: "gRPC request withdraw address with valid delegator address",
|
||||
Url: fmt.Sprintf(withdrawAddrURL, delAddr),
|
||||
ExpCode: http.StatusOK,
|
||||
ExpOut: fmt.Sprintf(`{"withdraw_address":"%s"}`, delAddr),
|
||||
},
|
||||
}
|
||||
systest.RunRestQueries(t, withdrawAddrTestCases...)
|
||||
|
||||
@ -4,7 +4,7 @@ go 1.23.1
|
||||
|
||||
require (
|
||||
cosmossdk.io/math v1.4.0
|
||||
cosmossdk.io/systemtests v1.0.0-rc.2
|
||||
cosmossdk.io/systemtests v1.0.0-rc.3
|
||||
github.com/cosmos/cosmos-sdk v0.50.6
|
||||
github.com/cosmos/gogogateway v1.2.0 // indirect
|
||||
github.com/cosmos/gogoproto v1.7.0 // indirect
|
||||
@ -18,12 +18,12 @@ require (
|
||||
github.com/spf13/cast v1.7.0 // indirect
|
||||
github.com/spf13/cobra v1.8.1 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/stretchr/testify v1.9.0
|
||||
github.com/stretchr/testify v1.10.0
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
|
||||
github.com/tidwall/gjson v1.14.2
|
||||
github.com/tidwall/sjson v1.2.5
|
||||
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect
|
||||
google.golang.org/grpc v1.68.0 // indirect
|
||||
google.golang.org/grpc v1.68.1 // indirect
|
||||
)
|
||||
|
||||
require (
|
||||
@ -125,7 +125,7 @@ require (
|
||||
github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
github.com/prometheus/client_model v0.6.1 // indirect
|
||||
github.com/prometheus/common v0.60.1 // indirect
|
||||
github.com/prometheus/common v0.61.0 // indirect
|
||||
github.com/prometheus/procfs v0.15.1 // indirect
|
||||
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
|
||||
github.com/rogpeppe/go-internal v1.13.1 // indirect
|
||||
@ -149,15 +149,15 @@ require (
|
||||
go.opencensus.io v0.24.0 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
golang.org/x/arch v0.12.0 // indirect
|
||||
golang.org/x/crypto v0.29.0 // indirect
|
||||
golang.org/x/crypto v0.30.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect
|
||||
golang.org/x/net v0.30.0 // indirect
|
||||
golang.org/x/sync v0.9.0 // indirect
|
||||
golang.org/x/sys v0.27.0 // indirect
|
||||
golang.org/x/term v0.26.0 // indirect
|
||||
golang.org/x/text v0.20.0 // indirect
|
||||
golang.org/x/net v0.32.0 // indirect
|
||||
golang.org/x/sync v0.10.0 // indirect
|
||||
golang.org/x/sys v0.28.0 // indirect
|
||||
golang.org/x/term v0.27.0 // indirect
|
||||
golang.org/x/text v0.21.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect
|
||||
google.golang.org/protobuf v1.35.2 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
|
||||
@ -16,8 +16,8 @@ cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ=
|
||||
cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk=
|
||||
cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk=
|
||||
cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng=
|
||||
cosmossdk.io/systemtests v1.0.0-rc.2 h1:dJTdkO4SRiJuy+4E2VynW++R/7rYYFzOJI4IHRhMQyo=
|
||||
cosmossdk.io/systemtests v1.0.0-rc.2/go.mod h1:ME2eFY/+2CjaFrPOMW8paPXupMzYaDMTKQ1sRvi71hU=
|
||||
cosmossdk.io/systemtests v1.0.0-rc.3 h1:W1ZdfHtWxbzRCiBwcMb1nMKkmUNyAcHapJOrfh1lX20=
|
||||
cosmossdk.io/systemtests v1.0.0-rc.3/go.mod h1:B3RY1tY/iwLjQ9MUTz+GsiXV9gEdS8mfUvSQtWUwaAo=
|
||||
cosmossdk.io/x/tx v1.0.0-alpha.2 h1:UW80FMm7B0fiAMsrfe5+HabSJ3XBg+tQa6/GK9prqWk=
|
||||
cosmossdk.io/x/tx v1.0.0-alpha.2/go.mod h1:r4yTKSJ7ZCCR95YbBfY3nfvbgNw6m9F6f25efWYYQWo=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
@ -616,8 +616,8 @@ github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt2
|
||||
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
|
||||
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
|
||||
github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
||||
github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc=
|
||||
github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw=
|
||||
github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ=
|
||||
github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s=
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
@ -696,8 +696,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
|
||||
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
|
||||
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs=
|
||||
@ -766,8 +766,8 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U
|
||||
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-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ=
|
||||
golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg=
|
||||
golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY=
|
||||
golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw=
|
||||
@ -816,8 +816,8 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT
|
||||
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
|
||||
golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
|
||||
golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
|
||||
golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
@ -828,8 +828,8 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ=
|
||||
golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
||||
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@ -882,20 +882,20 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s=
|
||||
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU=
|
||||
golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E=
|
||||
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
|
||||
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
|
||||
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=
|
||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug=
|
||||
golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4=
|
||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
||||
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
@ -944,8 +944,8 @@ google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUE
|
||||
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a h1:hgh8P4EuoxpsuKMXX/To36nOFD7vixReXgn8lPGnt+o=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
|
||||
@ -964,8 +964,8 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv
|
||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
|
||||
google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
|
||||
google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0=
|
||||
google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA=
|
||||
google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0=
|
||||
google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
|
||||
Loading…
Reference in New Issue
Block a user