Skip to content
This repository has been archived by the owner on Nov 16, 2022. It is now read-only.

chain: Add in-before-resolve field for report data #1873

Merged
merged 3 commits into from
Jun 5, 2020
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

### Chain

- (feat) [\#1873](https://github.com/bandprotocol/bandchain/pull/1873) Add `in-before-resolve` field in `Report` data structure.
- (chore) [\#1869](https://github.com/bandprotocol/bandchain/pull/1869) Update new schema and source code url for all oracle scripts
- (chore) [\#1864](https://github.com/bandprotocol/bandchain/pull/1864) Remove unused query types.
- (impv) [\#1792](https://github.com/bandprotocol/bandchain/pull/1792) Request data message handler test
Expand Down
2 changes: 1 addition & 1 deletion chain/x/oracle/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ func handleMsgReportData(ctx sdk.Context, k Keeper, m MsgReportData) (*sdk.Resul
if !k.IsReporter(ctx, m.Validator, m.Reporter) {
return nil, types.ErrReporterNotAuthorized
}
err := k.AddReport(ctx, m.RequestID, types.NewReport(m.Validator, m.RawReports))
err := k.AddReport(ctx, m.RequestID, types.NewReport(m.Validator, !k.HasResult(ctx, m.RequestID), m.RawReports))
if err != nil {
return nil, err
}
Expand Down
52 changes: 26 additions & 26 deletions chain/x/oracle/keeper/report_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ func TestHasReport(t *testing.T) {
// We should not have a report to request ID 42 from Alice without setting it.
require.False(t, k.HasReport(ctx, 42, Alice.ValAddress))
// After we set it, we should be able to find it.
k.SetReport(ctx, 42, types.NewReport(Alice.ValAddress, nil))
k.SetReport(ctx, 42, types.NewReport(Alice.ValAddress, true, nil))
require.True(t, k.HasReport(ctx, 42, Alice.ValAddress))
}

Expand All @@ -26,14 +26,14 @@ func TestAddReportSuccess(t *testing.T) {
k.SetRequest(ctx, 1, request)

err := k.AddReport(ctx, 1, types.NewReport(
Validator1.ValAddress, []types.RawReport{
Validator1.ValAddress, true, []types.RawReport{
types.NewRawReport(2, 1, []byte("data1/1")),
types.NewRawReport(10, 0, []byte("data2/1")),
},
))

require.NoError(t, err)
require.Equal(t, []types.Report{types.NewReport(Validator1.ValAddress, []types.RawReport{
require.Equal(t, []types.Report{types.NewReport(Validator1.ValAddress, true, []types.RawReport{
types.NewRawReport(2, 1, []byte("data1/1")),
types.NewRawReport(10, 0, []byte("data2/1")),
})}, k.GetReports(ctx, 1))
Expand All @@ -46,7 +46,7 @@ func TestReportOnInvalidRequest(t *testing.T) {
k.SetRequest(ctx, 1, request)

err := k.AddReport(ctx, 2, types.NewReport(
Validator1.ValAddress, []types.RawReport{
Validator1.ValAddress, true, []types.RawReport{
types.NewRawReport(2, 1, []byte("data1/1")),
types.NewRawReport(10, 0, []byte("data2/1")),
},
Expand All @@ -62,7 +62,7 @@ func TestReportByNotRequestedValidator(t *testing.T) {
k.SetRequest(ctx, 1, request)

err := k.AddReport(ctx, 1, types.NewReport(
Alice.ValAddress, []types.RawReport{
Alice.ValAddress, true, []types.RawReport{
types.NewRawReport(2, 1, []byte("data1/1")),
types.NewRawReport(10, 0, []byte("data2/1")),
},
Expand All @@ -78,15 +78,15 @@ func TestDuplicateReport(t *testing.T) {
k.SetRequest(ctx, 1, request)

err := k.AddReport(ctx, 1, types.NewReport(
Validator1.ValAddress, []types.RawReport{
Validator1.ValAddress, true, []types.RawReport{
types.NewRawReport(2, 1, []byte("data1/1")),
types.NewRawReport(10, 0, []byte("data2/1")),
},
))

require.NoError(t, err)
err = k.AddReport(ctx, 1, types.NewReport(
Validator1.ValAddress, []types.RawReport{
Validator1.ValAddress, true, []types.RawReport{
types.NewRawReport(2, 0, []byte("new data 1")),
types.NewRawReport(10, 0, []byte("new data 2")),
},
Expand All @@ -101,7 +101,7 @@ func TestReportInvalidDataSourceCount(t *testing.T) {
k.SetRequest(ctx, 1, request)

err := k.AddReport(ctx, 1, types.NewReport(
Validator1.ValAddress, []types.RawReport{
Validator1.ValAddress, true, []types.RawReport{
types.NewRawReport(2, 1, []byte("data1/1")),
},
))
Expand All @@ -115,7 +115,7 @@ func TestReportInvalidExternalIDs(t *testing.T) {
k.SetRequest(ctx, 1, request)

err := k.AddReport(ctx, 1, types.NewReport(
Validator1.ValAddress, []types.RawReport{
Validator1.ValAddress, true, []types.RawReport{
types.NewRawReport(2, 1, []byte("data1/1")),
types.NewRawReport(11, 1, []byte("data1/1")),
},
Expand All @@ -126,11 +126,11 @@ func TestReportInvalidExternalIDs(t *testing.T) {
func TestGetReportCount(t *testing.T) {
_, ctx, k := createTestInput()

k.SetReport(ctx, types.RequestID(1), types.NewReport(Validator1.ValAddress, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(1), types.NewReport(Validator2.ValAddress, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Alice.ValAddress, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Bob.ValAddress, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Carol.ValAddress, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(1), types.NewReport(Validator1.ValAddress, true, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(1), types.NewReport(Validator2.ValAddress, true, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Alice.ValAddress, true, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Bob.ValAddress, true, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Carol.ValAddress, true, []types.RawReport{}))

require.Equal(t, uint64(2), k.GetReportCount(ctx, types.RequestID(1)))
require.Equal(t, uint64(3), k.GetReportCount(ctx, types.RequestID(2)))
Expand All @@ -139,11 +139,11 @@ func TestGetReportCount(t *testing.T) {
func TestDeleteReports(t *testing.T) {
_, ctx, k := createTestInput()

k.SetReport(ctx, types.RequestID(1), types.NewReport(Validator1.ValAddress, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(1), types.NewReport(Validator2.ValAddress, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Alice.ValAddress, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Bob.ValAddress, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Carol.ValAddress, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(1), types.NewReport(Validator1.ValAddress, true, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(1), types.NewReport(Validator2.ValAddress, true, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Alice.ValAddress, true, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Bob.ValAddress, true, []types.RawReport{}))
k.SetReport(ctx, types.RequestID(2), types.NewReport(Carol.ValAddress, true, []types.RawReport{}))

require.True(t, k.HasReport(ctx, types.RequestID(1), Validator1.ValAddress))
require.True(t, k.HasReport(ctx, types.RequestID(2), Alice.ValAddress))
Expand All @@ -165,11 +165,11 @@ func TestUpdateReportInfos(t *testing.T) {

// 2 Validators report
k.SetReport(ctx, types.RequestID(1), types.NewReport(
Validator1.ValAddress, []types.RawReport{},
Validator1.ValAddress, true, []types.RawReport{},
))

k.SetReport(ctx, types.RequestID(1), types.NewReport(
Validator2.ValAddress, []types.RawReport{},
Validator2.ValAddress, true, []types.RawReport{},
))

// Update report info
Expand All @@ -190,7 +190,7 @@ func TestUpdateReportInfos(t *testing.T) {

// Only Validator1 report
k.SetReport(ctx, types.RequestID(2), types.NewReport(
Validator1.ValAddress, []types.RawReport{},
Validator1.ValAddress, true, []types.RawReport{},
))

// Update report info
Expand All @@ -210,7 +210,7 @@ func TestUpdateReportInfos(t *testing.T) {
k.SetRequest(ctx, types.RequestID(3), request)
// Only Validator2 report
k.SetReport(ctx, types.RequestID(3), types.NewReport(
Validator2.ValAddress, []types.RawReport{},
Validator2.ValAddress, true, []types.RawReport{},
))

// Update report info
Expand Down Expand Up @@ -257,19 +257,19 @@ func TestGetJailedUpdateReportInfos(t *testing.T) {

// 2 Validators report
k.SetReport(ctx, types.RequestID(1), types.NewReport(
Validator1.ValAddress, []types.RawReport{},
Validator1.ValAddress, true, []types.RawReport{},
))

k.SetReport(ctx, types.RequestID(1), types.NewReport(
Validator2.ValAddress, []types.RawReport{},
Validator2.ValAddress, true, []types.RawReport{},
))
k.UpdateReportInfos(ctx, types.RequestID(1))

// Validator2 reported downed
for i := 2; i <= 5; i++ {
k.SetRequest(ctx, types.RequestID(i), request)
k.SetReport(ctx, types.RequestID(i), types.NewReport(
Validator1.ValAddress, []types.RawReport{},
Validator1.ValAddress, true, []types.RawReport{},
))
k.UpdateReportInfos(ctx, types.RequestID(i))
}
Expand Down
6 changes: 4 additions & 2 deletions chain/x/oracle/types/constructors.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.