diff --git a/.github/workflows/pr-integration-tests.yml b/.github/workflows/pr-integration-tests.yml index 93500145..938514b9 100644 --- a/.github/workflows/pr-integration-tests.yml +++ b/.github/workflows/pr-integration-tests.yml @@ -44,7 +44,7 @@ jobs: - name: Run integration tests with Elasticsearch `v7.17.8` run: make integration-tests ES_VERSION=7.17.8 test-2: - name: Elasticsearch v8.6.0 + name: Elasticsearch v8.16.0 runs-on: ubuntu-latest steps: - name: Set up Go 1.x @@ -59,8 +59,8 @@ jobs: - name: Get dependencies run: | go get -v -t -d ./... - - name: Run integration tests with Elasticsearch `v8.6.0` - run: make integration-tests ES_VERSION=8.6.0 + - name: Run integration tests with Elasticsearch `v8.16.0` + run: make integration-tests ES_VERSION=8.16.0 test-3: name: OpenSearch v1.3.7 runs-on: ubuntu-latest diff --git a/client/elasticClient.go b/client/elasticClient.go index f388c049..43c04710 100644 --- a/client/elasticClient.go +++ b/client/elasticClient.go @@ -329,7 +329,7 @@ func (ec *elasticClient) createPolicy(policyName string, policy *bytes.Buffer) e // CreateIndexTemplate creates an elasticsearch index template func (ec *elasticClient) createIndexTemplate(templateName string, template io.Reader) error { - res, err := ec.client.Indices.PutTemplate(templateName, template, ec.client.Indices.PutTemplate.WithContext(context.Background())) + res, err := ec.client.Indices.PutIndexTemplate(templateName, template) if err != nil { return err } diff --git a/client/elasticClientCommon.go b/client/elasticClientCommon.go index 553ca048..94b81f50 100644 --- a/client/elasticClientCommon.go +++ b/client/elasticClientCommon.go @@ -46,7 +46,7 @@ func loadResponseBody(body io.ReadCloser, dest interface{}) error { return nil } if dest == nil { - _, err := io.Copy(ioutil.Discard, body) + _, err := io.Copy(io.Discard, body) return err } @@ -56,7 +56,7 @@ func loadResponseBody(body io.ReadCloser, dest interface{}) error { func elasticDefaultErrorResponseHandler(res *esapi.Response) error { responseBody := map[string]interface{}{} - bodyBytes, err := ioutil.ReadAll(res.Body) + bodyBytes, err := io.ReadAll(res.Body) if err != nil { return fmt.Errorf("%w cannot read elastic response body bytes", err) } diff --git a/client/elasticClientScroll.go b/client/elasticClientScroll.go index 1e1c5037..5448e16c 100644 --- a/client/elasticClientScroll.go +++ b/client/elasticClientScroll.go @@ -4,7 +4,7 @@ import ( "bytes" "context" "fmt" - "io/ioutil" + "io" "net/http" "strconv" "time" @@ -23,9 +23,6 @@ func (ec *elasticClient) DoCountRequest(ctx context.Context, index string, body if err != nil { return 0, err } - if err != nil { - return 0, err - } bodyBytes, err := getBytesFromResponse(res) if err != nil { @@ -139,7 +136,7 @@ func getBytesFromResponse(res *esapi.Response) ([]byte, error) { } defer closeBody(res) - bodyBytes, err := ioutil.ReadAll(res.Body) + bodyBytes, err := io.ReadAll(res.Body) if err != nil { return nil, err } diff --git a/client/elasticClientScroll_test.go b/client/elasticClientScroll_test.go index b0fe3d7b..ab61898d 100644 --- a/client/elasticClientScroll_test.go +++ b/client/elasticClientScroll_test.go @@ -2,7 +2,7 @@ package client import ( "context" - "io/ioutil" + "io" "net/http" "net/http/httptest" "os" @@ -24,7 +24,7 @@ func TestElasticClient_DoCountRequest(t *testing.T) { jsonFile, err := os.Open("./testsData/response-count-request.json") require.Nil(t, err) - byteValue, _ := ioutil.ReadAll(jsonFile) + byteValue, _ := io.ReadAll(jsonFile) _, _ = w.Write(byteValue) } diff --git a/client/logging/customLogger.go b/client/logging/customLogger.go index a42eecdf..aa3547fb 100644 --- a/client/logging/customLogger.go +++ b/client/logging/customLogger.go @@ -2,7 +2,6 @@ package logging import ( "io" - "io/ioutil" "net/http" "time" @@ -28,10 +27,10 @@ func (cl *CustomLogger) LogRoundTrip( ) if req != nil && req.Body != nil && req.Body != http.NoBody { - reqSize, _ = io.Copy(ioutil.Discard, req.Body) + reqSize, _ = io.Copy(io.Discard, req.Body) } if res != nil && res.Body != nil && res.Body != http.NoBody { - resSize, _ = io.Copy(ioutil.Discard, res.Body) + resSize, _ = io.Copy(io.Discard, res.Body) } if err != nil { diff --git a/data/block.go b/data/block.go index 9c71af27..73409f75 100644 --- a/data/block.go +++ b/data/block.go @@ -9,6 +9,7 @@ import ( // to be saved for a block. It has all the default fields // plus some extra information for ease of search and filter type Block struct { + UUID string `json:"uuid"` Nonce uint64 `json:"nonce"` Round uint64 `json:"round"` Epoch uint32 `json:"epoch"` diff --git a/data/event.go b/data/event.go index f3e22668..a3d113f7 100644 --- a/data/event.go +++ b/data/event.go @@ -4,6 +4,7 @@ import "time" // LogEvent is the dto for the log event structure type LogEvent struct { + UUID string `json:"uuid"` ID string `json:"-"` TxHash string `json:"txHash"` OriginalTxHash string `json:"originalTxHash,omitempty"` diff --git a/data/logs.go b/data/logs.go index 2daf0179..a2a558f3 100644 --- a/data/logs.go +++ b/data/logs.go @@ -9,6 +9,7 @@ import ( // Logs holds all the fields needed for a logs structure type Logs struct { + UUID string `json:"uuid"` ID string `json:"-"` OriginalTxHash string `json:"originalTxHash,omitempty"` Address string `json:"address"` diff --git a/data/scresult.go b/data/scresult.go index 95a71c5c..7ff11fbf 100644 --- a/data/scresult.go +++ b/data/scresult.go @@ -4,6 +4,7 @@ import "time" // ScResult is a structure containing all the fields that need to be saved for a smart contract result type ScResult struct { + UUID string `json:"uuid"` Hash string `json:"-"` MBHash string `json:"miniBlockHash,omitempty"` Nonce uint64 `json:"nonce"` @@ -39,6 +40,7 @@ type ScResult struct { CanBeIgnored bool `json:"canBeIgnored,omitempty"` OriginalSender string `json:"originalSender,omitempty"` HasLogs bool `json:"hasLogs,omitempty"` + Epoch uint32 `json:"epoch"` ExecutionOrder int `json:"-"` SenderAddressBytes []byte `json:"-"` InitialTxGasUsed uint64 `json:"-"` diff --git a/data/transaction.go b/data/transaction.go index 0837a590..4e1800ec 100644 --- a/data/transaction.go +++ b/data/transaction.go @@ -8,6 +8,7 @@ import ( // to be saved for a transaction. It has all the default fields // plus some extra information for ease of search and filter type Transaction struct { + UUID string `json:"uuid"` MBHash string `json:"miniBlockHash"` Nonce uint64 `json:"nonce"` Round uint64 `json:"round"` @@ -51,6 +52,7 @@ type Transaction struct { RelayedAddr string `json:"relayer,omitempty"` RelayedSignature string `json:"relayerSignature,omitempty"` HadRefund bool `json:"hadRefund,omitempty"` + Epoch uint32 `json:"epoch"` ExecutionOrder int `json:"-"` SmartContractResults []*ScResult `json:"-"` Hash string `json:"-"` diff --git a/go.mod b/go.mod index e6d26bc2..4747b259 100644 --- a/go.mod +++ b/go.mod @@ -5,58 +5,59 @@ go 1.20 require ( github.com/elastic/go-elasticsearch/v7 v7.12.0 github.com/gin-contrib/cors v1.4.0 - github.com/gin-gonic/gin v1.9.1 - github.com/multiversx/mx-chain-communication-go v1.1.0 + github.com/gin-gonic/gin v1.10.0 + github.com/google/uuid v1.6.0 + github.com/multiversx/mx-chain-communication-go v1.1.1 github.com/multiversx/mx-chain-core-go v1.2.24 github.com/multiversx/mx-chain-logger-go v1.0.15 - github.com/multiversx/mx-chain-vm-common-go v1.5.13 + github.com/multiversx/mx-chain-vm-common-go v1.5.16 github.com/prometheus/client_model v0.4.0 github.com/prometheus/common v0.37.0 - github.com/stretchr/testify v1.8.4 - github.com/tidwall/gjson v1.14.0 - github.com/urfave/cli v1.22.10 - google.golang.org/protobuf v1.30.0 + github.com/stretchr/testify v1.10.0 + github.com/tidwall/gjson v1.18.0 + github.com/urfave/cli v1.22.16 + google.golang.org/protobuf v1.36.3 ) require ( github.com/btcsuite/btcd/btcutil v1.1.3 // indirect - github.com/bytedance/sonic v1.9.1 // indirect - github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect + github.com/bytedance/sonic v1.11.6 // indirect + github.com/bytedance/sonic/loader v0.1.1 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cloudwego/iasm v0.2.0 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/denisbrodbeck/machineid v1.0.1 // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.14.0 // indirect + github.com/go-playground/validator/v10 v10.20.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/google/go-cmp v0.5.8 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/cpuid/v2 v2.2.5 // indirect - github.com/leodido/go-urn v1.2.4 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mr-tron/base58 v1.2.0 // indirect github.com/pelletier/go-toml v1.9.3 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/russross/blackfriday/v2 v2.0.1 // indirect - github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/ugorji/go/codec v1.2.11 // indirect - golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.9.0 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect + github.com/ugorji/go/codec v1.2.12 // indirect + golang.org/x/arch v0.8.0 // indirect + golang.org/x/crypto v0.31.0 // indirect + golang.org/x/net v0.33.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 339a4473..16275e8e 100644 --- a/go.sum +++ b/go.sum @@ -32,6 +32,7 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -62,23 +63,24 @@ github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= -github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= -github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= +github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= +github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= -github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= -github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= +github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -97,15 +99,15 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= -github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= +github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= -github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= -github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= +github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= +github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -126,8 +128,8 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= -github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= -github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= +github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= @@ -175,9 +177,8 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -189,6 +190,8 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= @@ -216,8 +219,9 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= -github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -230,11 +234,11 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= -github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= @@ -247,15 +251,15 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/multiversx/mx-chain-communication-go v1.1.0 h1:J7bX6HoN3HiHY7cUeEjG8AJWgQDDPcY+OPDOsSUOkRE= -github.com/multiversx/mx-chain-communication-go v1.1.0/go.mod h1:WK6bP4pGEHGDDna/AYRIMtl6G9OA0NByI1Lw8PmOnRM= +github.com/multiversx/mx-chain-communication-go v1.1.1 h1:y4DoQeQOJTaSUsRzczQFazf8JYQmInddypApqA3AkwM= +github.com/multiversx/mx-chain-communication-go v1.1.1/go.mod h1:WK6bP4pGEHGDDna/AYRIMtl6G9OA0NByI1Lw8PmOnRM= github.com/multiversx/mx-chain-core-go v1.2.24 h1:O0X7N9GfNVUCE9fukXA+dvfCRRjViYn88zOaE7feUog= github.com/multiversx/mx-chain-core-go v1.2.24/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= github.com/multiversx/mx-chain-crypto-go v1.2.12 h1:zWip7rpUS4CGthJxfKn5MZfMfYPjVjIiCID6uX5BSOk= github.com/multiversx/mx-chain-logger-go v1.0.15 h1:HlNdK8etyJyL9NQ+6mIXyKPEBo+wRqOwi3n+m2QIHXc= github.com/multiversx/mx-chain-logger-go v1.0.15/go.mod h1:t3PRKaWB1M+i6gUfD27KXgzLJJC+mAQiN+FLlL1yoGQ= -github.com/multiversx/mx-chain-vm-common-go v1.5.13 h1:ymnIHJW4Z4mFa0hZzla4fozkF30vjH5O1q+Y7Ftc+pQ= -github.com/multiversx/mx-chain-vm-common-go v1.5.13/go.mod h1:OSvFbzdWThfRbLZbUsEr7bikBSaLrPJQ2iUm9jw9nXQ= +github.com/multiversx/mx-chain-vm-common-go v1.5.16 h1:g1SqYjxl7K66Y1O/q6tvDJ37fzpzlxCSfRzSm/woQQY= +github.com/multiversx/mx-chain-vm-common-go v1.5.16/go.mod h1:1rSkXreUZNXyPTTdhj47M+Fy62yjxbu3aAsXEtKN3UY= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -270,8 +274,8 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= -github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -304,10 +308,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= @@ -315,6 +317,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -323,13 +326,13 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 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.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +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/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/tidwall/gjson v1.14.0 h1:6aeJ0bzojgWLa82gDQHcx3S0Lr/O51I9bJ5nv6JFx5w= -github.com/tidwall/gjson v1.14.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= +github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= @@ -338,10 +341,10 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= -github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= -github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= -github.com/urfave/cli v1.22.10 h1:p8Fspmz3iTctJstry1PYS3HVdllxnEzTEsgIgtxTrCk= -github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= +github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/urfave/cli v1.22.16 h1:MH0k6uJxdwdeWQTwhSO42Pwr4YLrNLwBtg1MRgTqPdQ= +github.com/urfave/cli v1.22.16/go.mod h1:EeJR6BKodywf4zciqrdw6hpCPk68JO9z5LazXZMn5Po= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -352,8 +355,8 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= -golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= +golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -362,8 +365,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/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-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.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-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -431,8 +434,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= 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-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -499,8 +502,8 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +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/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -510,8 +513,8 @@ 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.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.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +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-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -560,6 +563,7 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -637,8 +641,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU= +google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -665,6 +669,7 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/integrationtests/data.go b/integrationtests/data.go index 467d2bc3..27f35377 100644 --- a/integrationtests/data.go +++ b/integrationtests/data.go @@ -13,3 +13,35 @@ type GenericResponseDB struct { ID string `json:"_id"` Source json.RawMessage `json:"_source"` } + +// UnmarshalJSON will unmarshall and remove uuid field from json object +func (gr *GenericResponseDB) UnmarshalJSON(data []byte) error { + type Alias GenericResponseDB + aux := &struct { + Source json.RawMessage `json:"_source"` + *Alias + }{ + Alias: (*Alias)(gr), + } + + if err := json.Unmarshal(data, &aux); err != nil { + return err + } + + var sourceMap map[string]interface{} + err := json.Unmarshal(aux.Source, &sourceMap) + if err != nil { + gr.Source = aux.Source + return nil + } + + delete(sourceMap, "uuid") + + modifiedSource, err := json.Marshal(sourceMap) + if err != nil { + return err + } + + gr.Source = modifiedSource + return nil +} diff --git a/integrationtests/nftIssueCreateBurn_test.go b/integrationtests/nftIssueCreateBurn_test.go index 02fda26b..083729cc 100644 --- a/integrationtests/nftIssueCreateBurn_test.go +++ b/integrationtests/nftIssueCreateBurn_test.go @@ -146,3 +146,127 @@ func TestIssueNFTCreateAndBurn(t *testing.T) { require.Nil(t, err) require.False(t, genericResponse.Docs[0].Found) } + +func TestIssueNFTCreateAndBurnNonFungibleV2(t *testing.T) { + setLogLevelDebug() + + esClient, err := createESClient(esURL) + require.Nil(t, err) + + // ################ ISSUE NON FUNGIBLE TOKEN ######################### + + esProc, err := CreateElasticProcessor(esClient) + require.Nil(t, err) + + body := &dataBlock.Body{} + header := &dataBlock.Header{ + Round: 50, + TimeStamp: 5040, + ShardID: core.MetachainShardId, + } + + tokenIdentifier := "NON-v2" + + address1 := "erd1ju8pkvg57cwdmjsjx58jlmnuf4l9yspstrhr9tgsrt98n9edpm2qtlgy99" + pool := &outport.TransactionPool{ + Logs: []*outport.LogData{ + { + TxHash: hex.EncodeToString([]byte("h1")), + Log: &transaction.Log{ + Address: decodeAddress(address1), + Events: []*transaction.Event{ + { + Address: decodeAddress(address1), + Identifier: []byte("issueNonFungible"), + Topics: [][]byte{[]byte(tokenIdentifier), []byte("NON-token"), []byte("NON"), []byte(core.NonFungibleESDTv2)}, + }, + nil, + }, + }, + }, + }, + } + + err = esProc.SaveTransactions(createOutportBlockWithHeader(body, header, pool, nil, testNumOfShards)) + require.Nil(t, err) + + // ################ CREATE NON FUNGIBLE TOKEN ########################## + esProc, err = CreateElasticProcessor(esClient) + require.Nil(t, err) + + header = &dataBlock.Header{ + Round: 51, + TimeStamp: 5600, + ShardID: 0, + } + + esdtData := &esdt.ESDigitalToken{ + TokenMetaData: &esdt.MetaData{ + Creator: decodeAddress(address1), + }, + } + esdtDataBytes, _ := json.Marshal(esdtData) + + pool = &outport.TransactionPool{ + Logs: []*outport.LogData{ + { + TxHash: hex.EncodeToString([]byte("h1")), + Log: &transaction.Log{ + Address: decodeAddress(address1), + Events: []*transaction.Event{ + { + Address: decodeAddress(address1), + Identifier: []byte(core.BuiltInFunctionESDTNFTCreate), + Topics: [][]byte{[]byte(tokenIdentifier), big.NewInt(2).Bytes(), big.NewInt(1).Bytes(), esdtDataBytes}, + }, + nil, + }, + }, + }, + }, + } + + err = esProc.SaveTransactions(createOutportBlockWithHeader(body, header, pool, nil, testNumOfShards)) + require.Nil(t, err) + + ids := []string{tokenIdentifier + "-02"} + genericResponse := &GenericResponse{} + err = esClient.DoMultiGet(context.Background(), ids, indexerdata.TokensIndex, true, genericResponse) + require.Nil(t, err) + require.JSONEq(t, readExpectedResult("./testdata/nftIssueCreateBurn/non-fungible-v2-after-create.json"), string(genericResponse.Docs[0].Source)) + + // ################ BURN NON FUNGIBLE TOKEN ########################## + + header = &dataBlock.Header{ + Round: 52, + TimeStamp: 5666, + ShardID: 0, + } + + pool = &outport.TransactionPool{ + Logs: []*outport.LogData{ + { + TxHash: hex.EncodeToString([]byte("h1")), + Log: &transaction.Log{ + Address: decodeAddress(address1), + Events: []*transaction.Event{ + { + Address: decodeAddress(address1), + Identifier: []byte(core.BuiltInFunctionESDTNFTBurn), + Topics: [][]byte{[]byte(tokenIdentifier), big.NewInt(2).Bytes(), big.NewInt(1).Bytes(), decodeAddress(address1)}, + }, + nil, + }, + }, + }, + }, + } + + err = esProc.SaveTransactions(createOutportBlockWithHeader(body, header, pool, nil, testNumOfShards)) + require.Nil(t, err) + + genericResponse = &GenericResponse{} + err = esClient.DoMultiGet(context.Background(), ids, indexerdata.TokensIndex, true, genericResponse) + require.Nil(t, err) + require.False(t, genericResponse.Docs[0].Found) +} diff --git a/integrationtests/testdata/claimRewards/tx-claim-rewards.json b/integrationtests/testdata/claimRewards/tx-claim-rewards.json index c11ef56c..044a0c5f 100644 --- a/integrationtests/testdata/claimRewards/tx-claim-rewards.json +++ b/integrationtests/testdata/claimRewards/tx-claim-rewards.json @@ -24,5 +24,6 @@ "operation": "transfer", "function": "claimRewards", "isScCall": true, - "hasLogs": true + "hasLogs": true, + "epoch": 0 } diff --git a/integrationtests/testdata/esdtTransfer/esdt-transfer-cross-shard-on-destination.json b/integrationtests/testdata/esdtTransfer/esdt-transfer-cross-shard-on-destination.json index 2e1bc23b..81cd1701 100644 --- a/integrationtests/testdata/esdtTransfer/esdt-transfer-cross-shard-on-destination.json +++ b/integrationtests/testdata/esdtTransfer/esdt-transfer-cross-shard-on-destination.json @@ -30,5 +30,6 @@ 1e-17 ], "type": "normal", - "operation": "ESDTTransfer" + "operation": "ESDTTransfer", + "epoch": 0 } diff --git a/integrationtests/testdata/esdtTransfer/esdt-transfer-cross-shard-on-source.json b/integrationtests/testdata/esdtTransfer/esdt-transfer-cross-shard-on-source.json index df53964e..187e5d7b 100644 --- a/integrationtests/testdata/esdtTransfer/esdt-transfer-cross-shard-on-source.json +++ b/integrationtests/testdata/esdtTransfer/esdt-transfer-cross-shard-on-source.json @@ -30,5 +30,6 @@ 1e-17 ], "type": "normal", - "operation": "ESDTTransfer" + "operation": "ESDTTransfer", + "epoch": 0 } diff --git a/integrationtests/testdata/esdtTransfer/esdt-transfer-first-on-destination.json b/integrationtests/testdata/esdtTransfer/esdt-transfer-first-on-destination.json index 1b0f46b7..73b1a310 100644 --- a/integrationtests/testdata/esdtTransfer/esdt-transfer-first-on-destination.json +++ b/integrationtests/testdata/esdtTransfer/esdt-transfer-first-on-destination.json @@ -30,5 +30,6 @@ "receiverShard": 1, "operation": "ESDTTransfer", "status": "success", - "searchOrder": 0 + "searchOrder": 0, + "epoch": 0 } diff --git a/integrationtests/testdata/esdtTransfer/esdt-transfer-second-on-source.json b/integrationtests/testdata/esdtTransfer/esdt-transfer-second-on-source.json index eccaa6ba..2bbb9222 100644 --- a/integrationtests/testdata/esdtTransfer/esdt-transfer-second-on-source.json +++ b/integrationtests/testdata/esdtTransfer/esdt-transfer-second-on-source.json @@ -30,5 +30,6 @@ "receiverShard": 1, "operation": "ESDTTransfer", "status": "success", - "searchOrder": 0 + "searchOrder": 0, + "epoch": 0 } diff --git a/integrationtests/testdata/esdtTransfer/esdt-transfer.json b/integrationtests/testdata/esdtTransfer/esdt-transfer.json index 871e60a6..9f68664e 100644 --- a/integrationtests/testdata/esdtTransfer/esdt-transfer.json +++ b/integrationtests/testdata/esdtTransfer/esdt-transfer.json @@ -29,5 +29,6 @@ "esdtValuesNum": [ 1e-17 ], - "operation": "ESDTTransfer" + "operation": "ESDTTransfer", + "epoch": 0 } diff --git a/integrationtests/testdata/multiTransferWithScCallAndErrorSignaledBySC/transaction-after-execution-of-scr-dst-shard.json b/integrationtests/testdata/multiTransferWithScCallAndErrorSignaledBySC/transaction-after-execution-of-scr-dst-shard.json index 032af67c..4a3a96b6 100644 --- a/integrationtests/testdata/multiTransferWithScCallAndErrorSignaledBySC/transaction-after-execution-of-scr-dst-shard.json +++ b/integrationtests/testdata/multiTransferWithScCallAndErrorSignaledBySC/transaction-after-execution-of-scr-dst-shard.json @@ -42,5 +42,6 @@ "operation": "MultiESDTNFTTransfer", "status": "fail", "searchOrder": 0, - "errorEvent": true + "errorEvent": true, + "epoch": 0 } diff --git a/integrationtests/testdata/multiTransferWithScCallAndErrorSignaledBySC/transaction-executed-on-source.json b/integrationtests/testdata/multiTransferWithScCallAndErrorSignaledBySC/transaction-executed-on-source.json index a86b0649..f5d08816 100644 --- a/integrationtests/testdata/multiTransferWithScCallAndErrorSignaledBySC/transaction-executed-on-source.json +++ b/integrationtests/testdata/multiTransferWithScCallAndErrorSignaledBySC/transaction-executed-on-source.json @@ -41,5 +41,6 @@ "receiverShard": 0, "operation": "MultiESDTNFTTransfer", "status": "success", - "searchOrder": 0 + "searchOrder": 0, + "epoch": 0 } diff --git a/integrationtests/testdata/nftIssueCreateBurn/non-fungible-v2-after-create.json b/integrationtests/testdata/nftIssueCreateBurn/non-fungible-v2-after-create.json new file mode 100644 index 00000000..ec233947 --- /dev/null +++ b/integrationtests/testdata/nftIssueCreateBurn/non-fungible-v2-after-create.json @@ -0,0 +1,14 @@ +{ + "identifier": "NON-v2-02", + "token": "NON-v2", + "currentOwner": "erd1ju8pkvg57cwdmjsjx58jlmnuf4l9yspstrhr9tgsrt98n9edpm2qtlgy99", + "numDecimals": 0, + "type": "NonFungibleESDTv2", + "nonce": 2, + "timestamp": 5600, + "data": { + "creator": "erd1ju8pkvg57cwdmjsjx58jlmnuf4l9yspstrhr9tgsrt98n9edpm2qtlgy99", + "nonEmptyURIs": false, + "whiteListedStorage": false + } +} diff --git a/integrationtests/testdata/nftTransferCrossShard/op-nft-transfer-sc-call-after-refund.json b/integrationtests/testdata/nftTransferCrossShard/op-nft-transfer-sc-call-after-refund.json index 32c4ff66..66973883 100644 --- a/integrationtests/testdata/nftTransferCrossShard/op-nft-transfer-sc-call-after-refund.json +++ b/integrationtests/testdata/nftTransferCrossShard/op-nft-transfer-sc-call-after-refund.json @@ -37,5 +37,6 @@ ], "operation": "ESDTNFTTransfer", "type": "normal", - "function": "compoundRewardsProxy" + "function": "compoundRewardsProxy", + "epoch": 0 } diff --git a/integrationtests/testdata/nftTransferCrossShard/tx-complete-with-status.json b/integrationtests/testdata/nftTransferCrossShard/tx-complete-with-status.json index 62168879..34e1fa1d 100644 --- a/integrationtests/testdata/nftTransferCrossShard/tx-complete-with-status.json +++ b/integrationtests/testdata/nftTransferCrossShard/tx-complete-with-status.json @@ -36,5 +36,6 @@ "status": "fail", "initialPaidFee": "595490000000000", "searchOrder": 0, - "errorEvent": true + "errorEvent": true, + "epoch": 0 } diff --git a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-failed-on-dst.json b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-failed-on-dst.json index 70f07153..42c7bff5 100644 --- a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-failed-on-dst.json +++ b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-failed-on-dst.json @@ -36,5 +36,6 @@ 2 ], "operation": "ESDTNFTTransfer", - "errorEvent": true + "errorEvent": true, + "epoch": 0 } diff --git a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-sc-call-after-refund.json b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-sc-call-after-refund.json index 1223f2e7..8adf0bcf 100644 --- a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-sc-call-after-refund.json +++ b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-sc-call-after-refund.json @@ -36,5 +36,6 @@ 1 ], "operation": "ESDTNFTTransfer", - "function": "compoundRewardsProxy" + "function": "compoundRewardsProxy", + "epoch": 0 } diff --git a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-sc-call-source.json b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-sc-call-source.json index 0342ec98..ac53e099 100644 --- a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-sc-call-source.json +++ b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-sc-call-source.json @@ -36,5 +36,6 @@ "timestamp": 5040, "status": "success", "initialPaidFee": "1904415000000000", - "searchOrder": 0 + "searchOrder": 0, + "epoch": 0 } diff --git a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-success-destination-first.json b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-success-destination-first.json index 5781ea71..39a992f9 100644 --- a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-success-destination-first.json +++ b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-success-destination-first.json @@ -18,5 +18,6 @@ "timestamp": 0, "status": "", "searchOrder": 0, - "completedEvent": true + "completedEvent": true, + "epoch": 0 } diff --git a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-success-source-second.json b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-success-source-second.json index f30d8dee..412fd37f 100644 --- a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-success-source-second.json +++ b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer-success-source-second.json @@ -36,5 +36,6 @@ "receiverShard": 0, "operation": "ESDTNFTTransfer", "status": "success", - "searchOrder": 0 + "searchOrder": 0, + "epoch": 0 } diff --git a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer.json b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer.json index dc2e7dc7..b2951f89 100644 --- a/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer.json +++ b/integrationtests/testdata/nftTransferCrossShard/tx-nft-transfer.json @@ -35,5 +35,6 @@ "gasPrice": 1000000000, "timestamp": 5040, "status": "success", - "searchOrder": 0 + "searchOrder": 0, + "epoch": 0 } diff --git a/integrationtests/testdata/nftTransferCrossShard/tx-with-status-only.json b/integrationtests/testdata/nftTransferCrossShard/tx-with-status-only.json index c9a4c62a..f0f59b97 100644 --- a/integrationtests/testdata/nftTransferCrossShard/tx-with-status-only.json +++ b/integrationtests/testdata/nftTransferCrossShard/tx-with-status-only.json @@ -18,5 +18,6 @@ "timestamp": 0, "status": "fail", "searchOrder": 0, - "errorEvent": true + "errorEvent": true, + "epoch": 0 } diff --git a/integrationtests/testdata/nftTransferCrossShardWithScCall/cross-shard-transfer-with-sc-call.json b/integrationtests/testdata/nftTransferCrossShardWithScCall/cross-shard-transfer-with-sc-call.json index 07f16691..3891231f 100644 --- a/integrationtests/testdata/nftTransferCrossShardWithScCall/cross-shard-transfer-with-sc-call.json +++ b/integrationtests/testdata/nftTransferCrossShardWithScCall/cross-shard-transfer-with-sc-call.json @@ -36,5 +36,6 @@ 2 ], "operation": "ESDTNFTTransfer", - "function": "claimRewards" + "function": "claimRewards", + "epoch": 0 } diff --git a/integrationtests/testdata/relayedTx/relayed-tx-after-refund.json b/integrationtests/testdata/relayedTx/relayed-tx-after-refund.json index dd85dc43..9551d92a 100644 --- a/integrationtests/testdata/relayedTx/relayed-tx-after-refund.json +++ b/integrationtests/testdata/relayedTx/relayed-tx-after-refund.json @@ -28,5 +28,6 @@ ], "operation": "transfer", "function": "saveAttestation", - "isRelayed": true + "isRelayed": true, + "epoch": 0 } diff --git a/integrationtests/testdata/relayedTx/relayed-tx-intra.json b/integrationtests/testdata/relayedTx/relayed-tx-intra.json index cf066e85..dca3547e 100644 --- a/integrationtests/testdata/relayedTx/relayed-tx-intra.json +++ b/integrationtests/testdata/relayedTx/relayed-tx-intra.json @@ -27,5 +27,6 @@ 1 ], "operation": "SaveKeyValue", - "isRelayed": true + "isRelayed": true, + "epoch": 0 } diff --git a/integrationtests/testdata/relayedTx/relayed-tx-source.json b/integrationtests/testdata/relayedTx/relayed-tx-source.json index 9c907820..4e6d217a 100644 --- a/integrationtests/testdata/relayedTx/relayed-tx-source.json +++ b/integrationtests/testdata/relayedTx/relayed-tx-source.json @@ -28,5 +28,6 @@ ], "operation": "transfer", "function": "saveAttestation", - "isRelayed": true + "isRelayed": true, + "epoch": 0 } diff --git a/integrationtests/testdata/relayedTxV3/relayed-v3-no-refund.json b/integrationtests/testdata/relayedTxV3/relayed-v3-no-refund.json index e4c03f30..aabff5b8 100644 --- a/integrationtests/testdata/relayedTxV3/relayed-v3-no-refund.json +++ b/integrationtests/testdata/relayedTxV3/relayed-v3-no-refund.json @@ -24,5 +24,6 @@ "function": "doSomething", "isRelayed": true, "relayer": "erd10ksryjr065ad5475jcg82pnjfg9j9qtszjsrp24anl6ym7cmeddshwnru8", - "relayerSignature": "61" + "relayerSignature": "61", + "epoch": 0 } diff --git a/integrationtests/testdata/relayedTxV3/relayed-v3-with-one-refund.json b/integrationtests/testdata/relayedTxV3/relayed-v3-with-one-refund.json index d8aee273..d0c40bba 100644 --- a/integrationtests/testdata/relayedTxV3/relayed-v3-with-one-refund.json +++ b/integrationtests/testdata/relayedTxV3/relayed-v3-with-one-refund.json @@ -25,5 +25,6 @@ "isRelayed": true, "relayer": "erd10ksryjr065ad5475jcg82pnjfg9j9qtszjsrp24anl6ym7cmeddshwnru8", "relayerSignature": "61", - "hadRefund": true + "hadRefund": true, + "epoch": 0 } diff --git a/integrationtests/testdata/relayedTxV3/relayed-v3-with-two-refunds.json b/integrationtests/testdata/relayedTxV3/relayed-v3-with-two-refunds.json index b060be66..62e10c15 100644 --- a/integrationtests/testdata/relayedTxV3/relayed-v3-with-two-refunds.json +++ b/integrationtests/testdata/relayedTxV3/relayed-v3-with-two-refunds.json @@ -25,5 +25,6 @@ "isRelayed": true, "relayer": "erd10ksryjr065ad5475jcg82pnjfg9j9qtszjsrp24anl6ym7cmeddshwnru8", "relayerSignature": "61", - "hadRefund": true + "hadRefund": true, + "epoch": 0 } diff --git a/integrationtests/testdata/scCallIntraShard/claim-rewards.json b/integrationtests/testdata/scCallIntraShard/claim-rewards.json index 6de4372a..7e8d77ca 100644 --- a/integrationtests/testdata/scCallIntraShard/claim-rewards.json +++ b/integrationtests/testdata/scCallIntraShard/claim-rewards.json @@ -22,5 +22,6 @@ "hasScResults": true, "operation": "transfer", "isScCall": true, - "function": "claimRewards" + "function": "claimRewards", + "epoch": 0 } diff --git a/integrationtests/testdata/scCallIntraShard/sc-call-fail.json b/integrationtests/testdata/scCallIntraShard/sc-call-fail.json index aaea4caf..22dac8d7 100644 --- a/integrationtests/testdata/scCallIntraShard/sc-call-fail.json +++ b/integrationtests/testdata/scCallIntraShard/sc-call-fail.json @@ -25,5 +25,6 @@ "function": "delegate", "errorEvent": true, "hasLogs": true, - "hasOperations": true + "hasOperations": true, + "epoch": 0 } diff --git a/integrationtests/testdata/scCallWithIssueEsdt/scr-with-callback-executed-on-destination-shard.json b/integrationtests/testdata/scCallWithIssueEsdt/scr-with-callback-executed-on-destination-shard.json index d0896ee1..5b145d2c 100644 --- a/integrationtests/testdata/scCallWithIssueEsdt/scr-with-callback-executed-on-destination-shard.json +++ b/integrationtests/testdata/scCallWithIssueEsdt/scr-with-callback-executed-on-destination-shard.json @@ -18,5 +18,6 @@ "type": "unsigned", "status": "success", "operation": "transfer", - "hasLogs": true + "hasLogs": true, + "epoch": 0 } diff --git a/integrationtests/testdata/scCallWithIssueEsdt/scr-with-callback-executed-on-source.json b/integrationtests/testdata/scCallWithIssueEsdt/scr-with-callback-executed-on-source.json index 5bc7cbb2..d409e116 100644 --- a/integrationtests/testdata/scCallWithIssueEsdt/scr-with-callback-executed-on-source.json +++ b/integrationtests/testdata/scCallWithIssueEsdt/scr-with-callback-executed-on-source.json @@ -16,5 +16,6 @@ "timestamp": 5040, "type": "unsigned", "status": "pending", - "operation": "transfer" + "operation": "transfer", + "epoch": 0 } diff --git a/integrationtests/testdata/scCallWithIssueEsdt/scr-with-issue-executed-on-destination-shard.json b/integrationtests/testdata/scCallWithIssueEsdt/scr-with-issue-executed-on-destination-shard.json index 448dfb9e..cccd0b56 100644 --- a/integrationtests/testdata/scCallWithIssueEsdt/scr-with-issue-executed-on-destination-shard.json +++ b/integrationtests/testdata/scCallWithIssueEsdt/scr-with-issue-executed-on-destination-shard.json @@ -17,5 +17,6 @@ "type": "unsigned", "status": "success", "operation": "transfer", - "function": "issueNonFungible" + "function": "issueNonFungible", + "epoch": 0 } diff --git a/integrationtests/testdata/scCallWithIssueEsdt/scr-with-issue-executed-on-source-shard.json b/integrationtests/testdata/scCallWithIssueEsdt/scr-with-issue-executed-on-source-shard.json index 3703f353..7339cb15 100644 --- a/integrationtests/testdata/scCallWithIssueEsdt/scr-with-issue-executed-on-source-shard.json +++ b/integrationtests/testdata/scCallWithIssueEsdt/scr-with-issue-executed-on-source-shard.json @@ -17,5 +17,6 @@ "type": "unsigned", "status": "pending", "operation": "transfer", - "function": "issueNonFungible" + "function": "issueNonFungible", + "epoch": 0 } diff --git a/integrationtests/testdata/scCallWithIssueEsdt/tx-after-execution-of-callback-on-destination-shard.json b/integrationtests/testdata/scCallWithIssueEsdt/tx-after-execution-of-callback-on-destination-shard.json index ce08d35c..ed524a11 100644 --- a/integrationtests/testdata/scCallWithIssueEsdt/tx-after-execution-of-callback-on-destination-shard.json +++ b/integrationtests/testdata/scCallWithIssueEsdt/tx-after-execution-of-callback-on-destination-shard.json @@ -23,5 +23,6 @@ "isScCall": true, "operation": "transfer", "function": "issueToken", - "errorEvent": true + "errorEvent": true, + "epoch": 0 } diff --git a/integrationtests/testdata/scCallWithIssueEsdt/tx-after-execution-on-source-shard.json b/integrationtests/testdata/scCallWithIssueEsdt/tx-after-execution-on-source-shard.json index 6ea6fd40..cb9c4326 100644 --- a/integrationtests/testdata/scCallWithIssueEsdt/tx-after-execution-on-source-shard.json +++ b/integrationtests/testdata/scCallWithIssueEsdt/tx-after-execution-on-source-shard.json @@ -22,6 +22,7 @@ "hasScResults": true, "isScCall": true, "operation": "transfer", - "function": "issueToken" + "function": "issueToken", + "epoch": 0 } diff --git a/integrationtests/testdata/scCallWithIssueEsdt/tx-in-op-index-execution-of-callback-on-destination-shard.json b/integrationtests/testdata/scCallWithIssueEsdt/tx-in-op-index-execution-of-callback-on-destination-shard.json index 305833e8..f13509ee 100644 --- a/integrationtests/testdata/scCallWithIssueEsdt/tx-in-op-index-execution-of-callback-on-destination-shard.json +++ b/integrationtests/testdata/scCallWithIssueEsdt/tx-in-op-index-execution-of-callback-on-destination-shard.json @@ -24,5 +24,6 @@ "operation": "transfer", "function": "issueToken", "errorEvent": true, - "type": "normal" + "type": "normal", + "epoch": 0 } diff --git a/integrationtests/testdata/scDeploy/tx-deploy-with-error-event.json b/integrationtests/testdata/scDeploy/tx-deploy-with-error-event.json index 1229065c..1bd1c109 100644 --- a/integrationtests/testdata/scDeploy/tx-deploy-with-error-event.json +++ b/integrationtests/testdata/scDeploy/tx-deploy-with-error-event.json @@ -25,5 +25,6 @@ "type": "normal", "operation": "scDeploy", "errorEvent": true, - "completedEvent": true + "completedEvent": true, + "epoch": 0 } diff --git a/integrationtests/testdata/scDeploy/tx-sc-deploy.json b/integrationtests/testdata/scDeploy/tx-sc-deploy.json index 03a79f1b..ad7da041 100644 --- a/integrationtests/testdata/scDeploy/tx-sc-deploy.json +++ b/integrationtests/testdata/scDeploy/tx-sc-deploy.json @@ -20,5 +20,6 @@ "status": "success", "searchOrder": 0, "isScCall": true, - "operation": "scDeploy" + "operation": "scDeploy", + "epoch": 0 } diff --git a/integrationtests/testdata/transactions/move-balance.json b/integrationtests/testdata/transactions/move-balance.json index 266cfe1c..b5b56f0f 100644 --- a/integrationtests/testdata/transactions/move-balance.json +++ b/integrationtests/testdata/transactions/move-balance.json @@ -19,5 +19,6 @@ "timestamp": 5040, "status": "success", "searchOrder": 0, - "operation": "transfer" + "operation": "transfer", + "epoch": 0 } diff --git a/integrationtests/utils.go b/integrationtests/utils.go index 5fe2aaf8..39baab5e 100644 --- a/integrationtests/utils.go +++ b/integrationtests/utils.go @@ -4,7 +4,6 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" "net/http" "net/url" "os" @@ -22,6 +21,7 @@ import ( ) var ( + // nolint log = logger.GetOrCreate("integration-tests") pubKeyConverter, _ = pubkeyConverter.NewBech32PubkeyConverter(32, addressPrefix) ) @@ -93,7 +93,7 @@ func getIndexMappings(index string) (string, error) { return "", err } - body, err := ioutil.ReadAll(res.Body) + body, err := io.ReadAll(res.Body) if err != nil { return "", err } diff --git a/process/elasticproc/block/blockProcessor.go b/process/elasticproc/block/blockProcessor.go index a182f358..ca74af4b 100644 --- a/process/elasticproc/block/blockProcessor.go +++ b/process/elasticproc/block/blockProcessor.go @@ -111,6 +111,7 @@ func (bp *blockProcessor) PrepareBlockForDB(obh *outport.OutportBlockWithHeader) SoftwareVersion: hex.EncodeToString(obh.Header.GetSoftwareVersion()), ReceiptsHash: hex.EncodeToString(obh.Header.GetReceiptsHash()), Reserved: obh.Header.GetReserved(), + UUID: converters.GenerateBase64UUID(), } additionalData := obh.Header.GetAdditionalData() diff --git a/process/elasticproc/block/blockProcessor_test.go b/process/elasticproc/block/blockProcessor_test.go index b0208c23..fe568236 100644 --- a/process/elasticproc/block/blockProcessor_test.go +++ b/process/elasticproc/block/blockProcessor_test.go @@ -95,6 +95,8 @@ func TestBlockProcessor_PrepareBlockForDBShouldWork(t *testing.T) { dbBlock, err := bp.PrepareBlockForDB(outportBlockWithHeader) require.Nil(t, err) + dbBlock.UUID = "" + expectedBlock := &data.Block{ Hash: "68617368", Validators: []uint64{0x0, 0x1, 0x2}, @@ -278,6 +280,8 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { } dbBlock, err := bp.PrepareBlockForDB(outportBlockWithHeader) + dbBlock.UUID = "" + require.Equal(t, nil, err) require.Equal(t, &data.Block{ Nonce: 0, @@ -464,6 +468,7 @@ func TestBlockProcessor_PrepareBlockForDBMiniBlocksDetails(t *testing.T) { dbBlock, err := bp.PrepareBlockForDB(outportBlockWithHeader) require.Nil(t, err) + dbBlock.UUID = "" require.Equal(t, &data.Block{ Hash: "68617368", diff --git a/process/elasticproc/block/serialize_test.go b/process/elasticproc/block/serialize_test.go index b1f6d492..e88fb1dc 100644 --- a/process/elasticproc/block/serialize_test.go +++ b/process/elasticproc/block/serialize_test.go @@ -31,7 +31,7 @@ func TestBlockProcessor_SerializeBlock(t *testing.T) { err := bp.SerializeBlock(&data.Block{Nonce: 1}, buffSlice, "blocks") require.Nil(t, err) require.Equal(t, `{ "index" : { "_index":"blocks", "_id" : "" } } -{"nonce":1,"round":0,"epoch":0,"miniBlocksHashes":null,"notarizedBlocksHashes":null,"proposer":0,"validators":null,"pubKeyBitmap":"","size":0,"sizeTxs":0,"timestamp":0,"stateRootHash":"","prevHash":"","shardId":0,"txCount":0,"notarizedTxsCount":0,"accumulatedFees":"","developerFees":"","epochStartBlock":false,"searchOrder":0,"gasProvided":0,"gasRefunded":0,"gasPenalized":0,"maxGasLimit":0} +{"uuid":"","nonce":1,"round":0,"epoch":0,"miniBlocksHashes":null,"notarizedBlocksHashes":null,"proposer":0,"validators":null,"pubKeyBitmap":"","size":0,"sizeTxs":0,"timestamp":0,"stateRootHash":"","prevHash":"","shardId":0,"txCount":0,"notarizedTxsCount":0,"accumulatedFees":"","developerFees":"","epochStartBlock":false,"searchOrder":0,"gasProvided":0,"gasRefunded":0,"gasPenalized":0,"maxGasLimit":0} `, buffSlice.Buffers()[0].String()) } @@ -103,6 +103,6 @@ func TestBlockProcessor_SerializeBlockEpochStartMeta(t *testing.T) { }, buffSlice, "blocks") require.Nil(t, err) require.Equal(t, `{ "index" : { "_index":"blocks", "_id" : "11cb2a3a28522a11ae646a93aa4d50f87194cead7d6edeb333d502349407b61d" } } -{"nonce":1,"round":2,"epoch":3,"miniBlocksHashes":["mb1Hash","mbHash2"],"notarizedBlocksHashes":["notarized1"],"proposer":5,"validators":[0,1,2,3,4,5],"pubKeyBitmap":"00000110","size":345,"sizeTxs":0,"timestamp":123456,"stateRootHash":"stateHash","prevHash":"prevHash","shardId":4294967295,"txCount":100,"notarizedTxsCount":120,"accumulatedFees":"1000","developerFees":"50","epochStartBlock":true,"searchOrder":1010,"epochStartInfo":{"totalSupply":"100","totalToDistribute":"55","totalNewlyMinted":"20","rewardsPerBlock":"15","rewardsForProtocolSustainability":"2","nodePrice":"10","prevEpochStartRound":222,"prevEpochStartHash":"7072657645706f6368"},"gasProvided":0,"gasRefunded":0,"gasPenalized":0,"maxGasLimit":0} +{"uuid":"","nonce":1,"round":2,"epoch":3,"miniBlocksHashes":["mb1Hash","mbHash2"],"notarizedBlocksHashes":["notarized1"],"proposer":5,"validators":[0,1,2,3,4,5],"pubKeyBitmap":"00000110","size":345,"sizeTxs":0,"timestamp":123456,"stateRootHash":"stateHash","prevHash":"prevHash","shardId":4294967295,"txCount":100,"notarizedTxsCount":120,"accumulatedFees":"1000","developerFees":"50","epochStartBlock":true,"searchOrder":1010,"epochStartInfo":{"totalSupply":"100","totalToDistribute":"55","totalNewlyMinted":"20","rewardsPerBlock":"15","rewardsForProtocolSustainability":"2","nodePrice":"10","prevEpochStartRound":222,"prevEpochStartHash":"7072657645706f6368"},"gasProvided":0,"gasRefunded":0,"gasPenalized":0,"maxGasLimit":0} `, buffSlice.Buffers()[0].String()) } diff --git a/process/elasticproc/converters/uuid.go b/process/elasticproc/converters/uuid.go new file mode 100644 index 00000000..bebfb7ef --- /dev/null +++ b/process/elasticproc/converters/uuid.go @@ -0,0 +1,15 @@ +package converters + +import ( + "encoding/base64" + "github.com/google/uuid" +) + +// GenerateBase64UUID will generate a 24 bytes unique base string +func GenerateBase64UUID() string { + uuidBytes := uuid.New() + + base64UUID := base64.URLEncoding.EncodeToString(uuidBytes[:]) + + return base64UUID +} diff --git a/process/elasticproc/converters/uuid_test.go b/process/elasticproc/converters/uuid_test.go new file mode 100644 index 00000000..f529feb9 --- /dev/null +++ b/process/elasticproc/converters/uuid_test.go @@ -0,0 +1,14 @@ +package converters + +import ( + "github.com/stretchr/testify/require" + "testing" +) + +func TestGenerateBaseUUID(t *testing.T) { + t.Parallel() + + uuid := GenerateBase64UUID() + require.NotEmpty(t, uuid) + require.Len(t, uuid, 24) +} diff --git a/process/elasticproc/logsevents/logsAndEventsProcessor.go b/process/elasticproc/logsevents/logsAndEventsProcessor.go index b80e6714..39d8085a 100644 --- a/process/elasticproc/logsevents/logsAndEventsProcessor.go +++ b/process/elasticproc/logsevents/logsAndEventsProcessor.go @@ -14,6 +14,7 @@ import ( "github.com/multiversx/mx-chain-core-go/marshal" "github.com/multiversx/mx-chain-es-indexer-go/data" "github.com/multiversx/mx-chain-es-indexer-go/process/dataindexer" + "github.com/multiversx/mx-chain-es-indexer-go/process/elasticproc/converters" ) const eventIDFormat = "%s-%d-%d" @@ -221,6 +222,7 @@ func (lep *logsAndEventsProcessor) prepareLog( originalTxHash := lep.getOriginalTxHash(lgData, logHashHex) encodedAddr := lep.pubKeyConverter.SilentEncode(eventLogs.GetAddress(), log) logsDB := &data.Logs{ + UUID: converters.GenerateBase64UUID(), ID: logHashHex, OriginalTxHash: originalTxHash, Address: encodedAddr, @@ -253,6 +255,7 @@ func (lep *logsAndEventsProcessor) prepareLog( func (lep *logsAndEventsProcessor) prepareLogEvent(dbLog *data.Logs, event *data.Event, shardID uint32, execOrder int) *data.LogEvent { dbEvent := &data.LogEvent{ + UUID: converters.GenerateBase64UUID(), TxHash: dbLog.ID, LogAddress: dbLog.Address, Address: event.Address, diff --git a/process/elasticproc/logsevents/logsAndEventsProcessor_test.go b/process/elasticproc/logsevents/logsAndEventsProcessor_test.go index 321e007b..5fa6c582 100644 --- a/process/elasticproc/logsevents/logsAndEventsProcessor_test.go +++ b/process/elasticproc/logsevents/logsAndEventsProcessor_test.go @@ -236,6 +236,8 @@ func TestLogsAndEventsProcessor_PrepareLogsForDB(t *testing.T) { }, }}, 1234, 0, 3) + result.DBLogs[0].UUID = "" + require.Equal(t, &data.Logs{ ID: "747848617368", Address: "61646472657373", @@ -333,6 +335,9 @@ func TestPrepareLogsAndEvents_LogEvents(t *testing.T) { }, }}, 1234, 1, 3) + results.DBEvents[0].UUID = "" + results.DBEvents[1].UUID = "" + require.Equal(t, []*data.LogEvent{ { ID: "747848617368-1-0", diff --git a/process/elasticproc/logsevents/serialize.go b/process/elasticproc/logsevents/serialize.go index 22508c3c..57d69f7e 100644 --- a/process/elasticproc/logsevents/serialize.go +++ b/process/elasticproc/logsevents/serialize.go @@ -284,7 +284,8 @@ func serializeTokenTransferOwnership(tokenData *data.TokenInfo, index string) ([ // SerializeSupplyData will serialize the provided supply data func (lep *logsAndEventsProcessor) SerializeSupplyData(tokensSupply data.TokensHandler, buffSlice *data.BufferSlice, index string) error { for _, supplyData := range tokensSupply.GetAll() { - if supplyData.Type != core.NonFungibleESDT { + shouldSkip := supplyData.Type != core.NonFungibleESDT && supplyData.Type != core.NonFungibleESDTv2 && supplyData.Type != core.DynamicNFTESDT + if shouldSkip { continue } diff --git a/process/elasticproc/logsevents/serialize_test.go b/process/elasticproc/logsevents/serialize_test.go index 99d80304..f547e18d 100644 --- a/process/elasticproc/logsevents/serialize_test.go +++ b/process/elasticproc/logsevents/serialize_test.go @@ -36,7 +36,7 @@ func TestLogsAndEventsProcessor_SerializeLogs(t *testing.T) { require.Nil(t, err) expectedRes := `{ "update" : { "_index":"logs", "_id" : "747848617368" } } -{"scripted_upsert": true, "script": {"source": "if ('create' == ctx.op) {ctx._source = params.log} else {if (ctx._source.containsKey('timestamp')) {if (ctx._source.timestamp <= params.log.timestamp) {ctx._source = params.log}} else {ctx._source = params.log}}","lang": "painless","params": { "log": {"address":"61646472657373","events":[{"address":"61646472","identifier":"ESDTNFTTransfer","topics":["bXktdG9rZW4=","AQ==","cmVjZWl2ZXI="],"data":"ZGF0YQ==","order":0}],"timestamp":1234} }},"upsert": {}} +{"scripted_upsert": true, "script": {"source": "if ('create' == ctx.op) {ctx._source = params.log} else {if (ctx._source.containsKey('timestamp')) {if (ctx._source.timestamp <= params.log.timestamp) {ctx._source = params.log}} else {ctx._source = params.log}}","lang": "painless","params": { "log": {"uuid":"","address":"61646472657373","events":[{"address":"61646472","identifier":"ESDTNFTTransfer","topics":["bXktdG9rZW4=","AQ==","cmVjZWl2ZXI="],"data":"ZGF0YQ==","order":0}],"timestamp":1234} }},"upsert": {}} ` require.Equal(t, expectedRes, buffSlice.Buffers()[0].String()) } diff --git a/process/elasticproc/operations/serialize_test.go b/process/elasticproc/operations/serialize_test.go index c1ab7b99..2b098dc0 100644 --- a/process/elasticproc/operations/serialize_test.go +++ b/process/elasticproc/operations/serialize_test.go @@ -27,8 +27,8 @@ func TestOperationsProcessor_SerializeSCRS(t *testing.T) { err := op.SerializeSCRs(scrs, buffSlice, "operations", 0) require.Nil(t, err) require.Equal(t, `{"update":{"_index":"operations","_id":""}} -{"script":{"source":"return"},"upsert":{"nonce":0,"gasLimit":0,"gasPrice":0,"value":"","valueNum":0,"sender":"","receiver":"","senderShard":0,"receiverShard":1,"prevTxHash":"","originalTxHash":"","callType":"","timestamp":0}} +{"script":{"source":"return"},"upsert":{"uuid":"","nonce":0,"gasLimit":0,"gasPrice":0,"value":"","valueNum":0,"sender":"","receiver":"","senderShard":0,"receiverShard":1,"prevTxHash":"","originalTxHash":"","callType":"","timestamp":0,"epoch":0}} { "index" : { "_index":"operations","_id" : "" } } -{"nonce":0,"gasLimit":0,"gasPrice":0,"value":"","valueNum":0,"sender":"","receiver":"","senderShard":2,"receiverShard":0,"prevTxHash":"","originalTxHash":"","callType":"","timestamp":0} +{"uuid":"","nonce":0,"gasLimit":0,"gasPrice":0,"value":"","valueNum":0,"sender":"","receiver":"","senderShard":2,"receiverShard":0,"prevTxHash":"","originalTxHash":"","callType":"","timestamp":0,"epoch":0} `, buffSlice.Buffers()[0].String()) } diff --git a/process/elasticproc/transactions/serialize.go b/process/elasticproc/transactions/serialize.go index 0f9b57a3..e5188fbc 100644 --- a/process/elasticproc/transactions/serialize.go +++ b/process/elasticproc/transactions/serialize.go @@ -279,7 +279,7 @@ func prepareNFTESDTTransferOrMultiESDTTransfer(marshaledTx []byte) ([]byte, erro } func isNFTTransferOrMultiTransfer(tx *data.Transaction) bool { - if len(tx.SmartContractResults) < 0 || tx.SenderShard != tx.ReceiverShard { + if tx.SenderShard != tx.ReceiverShard { return false } diff --git a/process/elasticproc/transactions/serialize_test.go b/process/elasticproc/transactions/serialize_test.go index b4e2bf96..d9ad8513 100644 --- a/process/elasticproc/transactions/serialize_test.go +++ b/process/elasticproc/transactions/serialize_test.go @@ -39,9 +39,9 @@ func TestSerializeScResults(t *testing.T) { require.Equal(t, 1, len(buffSlice.Buffers())) expectedRes := `{ "index" : { "_index": "transactions", "_id" : "hash1" } } -{"nonce":1,"gasLimit":50,"gasPrice":10,"value":"100","valueNum":1e-16,"sender":"","receiver":"","senderShard":0,"receiverShard":1,"prevTxHash":"","originalTxHash":"","callType":"","timestamp":0} +{"uuid":"","nonce":1,"gasLimit":50,"gasPrice":10,"value":"100","valueNum":1e-16,"sender":"","receiver":"","senderShard":0,"receiverShard":1,"prevTxHash":"","originalTxHash":"","callType":"","timestamp":0,"epoch":0} { "index" : { "_index": "transactions", "_id" : "hash2" } } -{"nonce":2,"gasLimit":50,"gasPrice":10,"value":"20","valueNum":2e-17,"sender":"","receiver":"","senderShard":2,"receiverShard":3,"prevTxHash":"","originalTxHash":"","callType":"","timestamp":0} +{"uuid":"","nonce":2,"gasLimit":50,"gasPrice":10,"value":"20","valueNum":2e-17,"sender":"","receiver":"","senderShard":2,"receiverShard":3,"prevTxHash":"","originalTxHash":"","callType":"","timestamp":0,"epoch":0} ` require.Equal(t, expectedRes, buffSlice.Buffers()[0].String()) } @@ -86,7 +86,7 @@ func TestSerializeTransactionsIntraShardTx(t *testing.T) { require.Nil(t, err) expectedBuff := `{ "index" : { "_index":"transactions", "_id" : "txHash" } } -{"miniBlockHash":"","nonce":0,"round":0,"value":"","valueNum":0,"receiver":"","sender":"","receiverShard":0,"senderShard":0,"gasPrice":0,"gasLimit":0,"gasUsed":0,"fee":"","feeNum":0,"data":null,"signature":"","timestamp":0,"status":"","searchOrder":0} +{"uuid":"","miniBlockHash":"","nonce":0,"round":0,"value":"","valueNum":0,"receiver":"","sender":"","receiverShard":0,"senderShard":0,"gasPrice":0,"gasLimit":0,"gasUsed":0,"fee":"","feeNum":0,"data":null,"signature":"","timestamp":0,"status":"","searchOrder":0,"epoch":0} ` require.Equal(t, expectedBuff, buffSlice.Buffers()[0].String()) } @@ -105,7 +105,7 @@ func TestSerializeTransactionCrossShardTxSource(t *testing.T) { require.Nil(t, err) expectedBuff := `{"update":{ "_index":"transactions", "_id":"txHash"}} -{"script":{"source":"return"},"upsert":{"miniBlockHash":"","nonce":0,"round":0,"value":"","valueNum":0,"receiver":"","sender":"","receiverShard":1,"senderShard":0,"gasPrice":0,"gasLimit":0,"gasUsed":0,"fee":"","feeNum":0,"data":null,"signature":"","timestamp":0,"status":"","searchOrder":0,"version":1}} +{"script":{"source":"return"},"upsert":{"uuid":"","miniBlockHash":"","nonce":0,"round":0,"value":"","valueNum":0,"receiver":"","sender":"","receiverShard":1,"senderShard":0,"gasPrice":0,"gasLimit":0,"gasUsed":0,"fee":"","feeNum":0,"data":null,"signature":"","timestamp":0,"status":"","searchOrder":0,"version":1,"epoch":0}} ` require.Equal(t, expectedBuff, buffSlice.Buffers()[0].String()) } @@ -124,7 +124,7 @@ func TestSerializeTransactionsCrossShardTxDestination(t *testing.T) { require.Nil(t, err) expectedBuff := `{ "index" : { "_index":"transactions", "_id" : "txHash" } } -{"miniBlockHash":"","nonce":0,"round":0,"value":"","valueNum":0,"receiver":"","sender":"","receiverShard":0,"senderShard":1,"gasPrice":0,"gasLimit":0,"gasUsed":0,"fee":"","feeNum":0,"data":null,"signature":"","timestamp":0,"status":"","searchOrder":0,"version":1} +{"uuid":"","miniBlockHash":"","nonce":0,"round":0,"value":"","valueNum":0,"receiver":"","sender":"","receiverShard":0,"senderShard":1,"gasPrice":0,"gasLimit":0,"gasUsed":0,"fee":"","feeNum":0,"data":null,"signature":"","timestamp":0,"status":"","searchOrder":0,"version":1,"epoch":0} ` require.Equal(t, expectedBuff, buffSlice.Buffers()[0].String()) } diff --git a/process/elasticproc/transactions/smartContractResultsProcessor.go b/process/elasticproc/transactions/smartContractResultsProcessor.go index ce52062a..495978cd 100644 --- a/process/elasticproc/transactions/smartContractResultsProcessor.go +++ b/process/elasticproc/transactions/smartContractResultsProcessor.go @@ -191,6 +191,8 @@ func (proc *smartContractResultsProcessor) prepareSmartContractResult( InitialTxGasUsed: feeInfo.GasUsed, GasRefunded: feeInfo.GasRefunded, ExecutionOrder: int(scrInfo.ExecutionOrder), + UUID: converters.GenerateBase64UUID(), + Epoch: header.GetEpoch(), } } diff --git a/process/elasticproc/transactions/smartContractResultsProcessor_test.go b/process/elasticproc/transactions/smartContractResultsProcessor_test.go index 3feb64f4..ac35dfd8 100644 --- a/process/elasticproc/transactions/smartContractResultsProcessor_test.go +++ b/process/elasticproc/transactions/smartContractResultsProcessor_test.go @@ -61,6 +61,7 @@ func TestPrepareSmartContractResult(t *testing.T) { mbHash := []byte("hash") scRes := scrsProc.prepareSmartContractResult(scHash, mbHash, scrInfo, header, 0, 1, 3) + scRes.UUID = "" senderAddr, err := pubKeyConverter.Encode(sndAddr) require.Nil(t, err) diff --git a/process/elasticproc/transactions/transactionDBBuilder.go b/process/elasticproc/transactions/transactionDBBuilder.go index 3aab4884..3bb75015 100644 --- a/process/elasticproc/transactions/transactionDBBuilder.go +++ b/process/elasticproc/transactions/transactionDBBuilder.go @@ -126,6 +126,8 @@ func (dtb *dbTransactionBuilder) prepareTransaction( RelayedSignature: hex.EncodeToString(tx.RelayerSignature), RelayedAddr: relayedAddress, HadRefund: feeInfo.HadRefund, + UUID: converters.GenerateBase64UUID(), + Epoch: header.GetEpoch(), } hasValidRelayer := len(eTx.RelayedAddr) == len(eTx.Sender) && len(eTx.RelayedAddr) > 0 @@ -176,6 +178,8 @@ func (dtb *dbTransactionBuilder) prepareRewardTransaction( Status: txStatus, Operation: rewardsOperation, ExecutionOrder: int(rTxInfo.ExecutionOrder), + UUID: converters.GenerateBase64UUID(), + Epoch: header.GetEpoch(), } } diff --git a/process/elasticproc/transactions/transactionDBBuilder_test.go b/process/elasticproc/transactions/transactionDBBuilder_test.go index 0e3c9080..ce67ece1 100644 --- a/process/elasticproc/transactions/transactionDBBuilder_test.go +++ b/process/elasticproc/transactions/transactionDBBuilder_test.go @@ -99,6 +99,7 @@ func TestGetMoveBalanceTransaction(t *testing.T) { } dbTx := cp.prepareTransaction(txInfo, txHash, mbHash, mb, header, status, 3) + dbTx.UUID = "" require.Equal(t, expectedTx, dbTx) } @@ -120,6 +121,7 @@ func TestGetTransactionByType_RewardTx(t *testing.T) { Reward: rwdTx, } resultTx := cp.prepareRewardTransaction(rewardInfo, txHash, mbHash, mb, header, status) + resultTx.UUID = "" expectedTx := &data.Transaction{ Hash: hex.EncodeToString(txHash), MBHash: hex.EncodeToString(mbHash), @@ -206,6 +208,7 @@ func TestRelayedV3Transaction(t *testing.T) { } dbTx := cp.prepareTransaction(txInfo, txHash, mbHash, mb, header, status, 3) + dbTx.UUID = "" require.Equal(t, expectedTx, dbTx) } @@ -276,5 +279,6 @@ func TestGetMoveBalanceTransactionInvalid(t *testing.T) { } dbTx := cp.prepareTransaction(txInfo, txHash, mbHash, mb, header, status, 3) + dbTx.UUID = "" require.Equal(t, expectedTx, dbTx) } diff --git a/templates/noKibana/accounts.go b/templates/noKibana/accounts.go index c168869d..ac8b64ea 100644 --- a/templates/noKibana/accounts.go +++ b/templates/noKibana/accounts.go @@ -12,49 +12,50 @@ var Accounts = Object{ "index_patterns": Array{ "accounts-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - }, - - "mappings": Object{ - "properties": Object{ - "balanceNum": Object{ - "type": "double", - }, - "totalBalanceWithStakeNum": Object{ - "type": "double", - }, - "nonce": Object{ - "type": "double", - }, - "address": Object{ - "type": "keyword", - }, - "balance": Object{ - "type": "keyword", - }, - "totalBalanceWithStake": Object{ - "type": "keyword", - }, - "shardID": Object{ - "type": "long", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "userName": Object{ - "type": "keyword", - }, - "owner": Object{ - "type": "keyword", - }, - "developerRewards": Object{ - "type": "keyword", - }, - "developerRewardsNum": Object{ - "type": "double", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "balanceNum": Object{ + "type": "double", + }, + "totalBalanceWithStakeNum": Object{ + "type": "double", + }, + "nonce": Object{ + "type": "double", + }, + "address": Object{ + "type": "keyword", + }, + "balance": Object{ + "type": "keyword", + }, + "totalBalanceWithStake": Object{ + "type": "keyword", + }, + "shardID": Object{ + "type": "long", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "userName": Object{ + "type": "keyword", + }, + "owner": Object{ + "type": "keyword", + }, + "developerRewards": Object{ + "type": "keyword", + }, + "developerRewardsNum": Object{ + "type": "double", + }, }, }, }, diff --git a/templates/noKibana/accountsESDT.go b/templates/noKibana/accountsESDT.go index 027976b7..6ccf1945 100644 --- a/templates/noKibana/accountsESDT.go +++ b/templates/noKibana/accountsESDT.go @@ -5,81 +5,83 @@ var AccountsESDT = Object{ "index_patterns": Array{ "accountsesdt-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "address": Object{ - "type": "keyword", - }, - "balance": Object{ - "type": "keyword", - }, - "balanceNum": Object{ - "type": "double", - }, - "currentOwner": Object{ - "type": "keyword", - }, - "data": Object{ - "type": "nested", - "properties": Object{ - "attributes": Object{ - "index": "false", - "type": "keyword", - }, - "creator": Object{ - "type": "keyword", - }, - "hash": Object{ - "index": "false", - "type": "keyword", - }, - "metadata": Object{ - "index": "false", - "type": "keyword", - }, - "name": Object{ - "type": "keyword", - }, - "nonEmptyURIs": Object{ - "type": "boolean", - }, - "royalties": Object{ - "index": "false", - "type": "long", - }, - "tags": Object{ - "type": "text", - }, - "uris": Object{ - "type": "text", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "address": Object{ + "type": "keyword", + }, + "balance": Object{ + "type": "keyword", + }, + "balanceNum": Object{ + "type": "double", + }, + "currentOwner": Object{ + "type": "keyword", + }, + "data": Object{ + "type": "nested", + "properties": Object{ + "attributes": Object{ + "index": "false", + "type": "keyword", + }, + "creator": Object{ + "type": "keyword", + }, + "hash": Object{ + "index": "false", + "type": "keyword", + }, + "metadata": Object{ + "index": "false", + "type": "keyword", + }, + "name": Object{ + "type": "keyword", + }, + "nonEmptyURIs": Object{ + "type": "boolean", + }, + "royalties": Object{ + "index": "false", + "type": "long", + }, + "tags": Object{ + "type": "text", + }, + "uris": Object{ + "type": "text", + }, }, }, - }, - "identifier": Object{ - "type": "text", - }, - "properties": Object{ - "type": "keyword", - }, - "shardID": Object{ - "type": "long", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "token": Object{ - "type": "text", - }, - "tokenNonce": Object{ - "type": "double", - }, - "type": Object{ - "type": "keyword", + "identifier": Object{ + "type": "text", + }, + "properties": Object{ + "type": "keyword", + }, + "shardID": Object{ + "type": "long", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "token": Object{ + "type": "text", + }, + "tokenNonce": Object{ + "type": "double", + }, + "type": Object{ + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/accountsESDTHistory.go b/templates/noKibana/accountsESDTHistory.go index 12c1b589..0fd102ea 100644 --- a/templates/noKibana/accountsESDTHistory.go +++ b/templates/noKibana/accountsESDTHistory.go @@ -5,39 +5,41 @@ var AccountsESDTHistory = Object{ "index_patterns": Array{ "accountsesdthistory-*", }, - "settings": Object{ - "number_of_shards": 5, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "address": Object{ - "type": "keyword", - }, - "balance": Object{ - "type": "keyword", - }, - "identifier": Object{ - "type": "text", - }, - "isSender": Object{ - "type": "boolean", - }, - "isSmartContract": Object{ - "type": "boolean", - }, - "shardID": Object{ - "type": "long", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "token": Object{ - "type": "text", - }, - "tokenNonce": Object{ - "type": "double", + "template": Object{ + "settings": Object{ + "number_of_shards": 5, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "address": Object{ + "type": "keyword", + }, + "balance": Object{ + "type": "keyword", + }, + "identifier": Object{ + "type": "text", + }, + "isSender": Object{ + "type": "boolean", + }, + "isSmartContract": Object{ + "type": "boolean", + }, + "shardID": Object{ + "type": "long", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "token": Object{ + "type": "text", + }, + "tokenNonce": Object{ + "type": "double", + }, }, }, }, diff --git a/templates/noKibana/accountsHistory.go b/templates/noKibana/accountsHistory.go index fdee2eb5..cf46b285 100644 --- a/templates/noKibana/accountsHistory.go +++ b/templates/noKibana/accountsHistory.go @@ -5,30 +5,32 @@ var AccountsHistory = Object{ "index_patterns": Array{ "accountshistory-*", }, - "settings": Object{ - "number_of_shards": 5, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "address": Object{ - "type": "keyword", - }, - "balance": Object{ - "type": "keyword", - }, - "isSender": Object{ - "type": "boolean", - }, - "isSmartContract": Object{ - "type": "boolean", - }, - "shardID": Object{ - "type": "long", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", + "template": Object{ + "settings": Object{ + "number_of_shards": 5, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "address": Object{ + "type": "keyword", + }, + "balance": Object{ + "type": "keyword", + }, + "isSender": Object{ + "type": "boolean", + }, + "isSmartContract": Object{ + "type": "boolean", + }, + "shardID": Object{ + "type": "long", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, }, }, }, diff --git a/templates/noKibana/blocks.go b/templates/noKibana/blocks.go index 86032e77..00d2381d 100644 --- a/templates/noKibana/blocks.go +++ b/templates/noKibana/blocks.go @@ -5,245 +5,247 @@ var Blocks = Object{ "index_patterns": Array{ "blocks-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - "index": Object{ - "sort.field": Array{ - "timestamp", "nonce", - }, - "sort.order": Array{ - "desc", "desc", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + "index": Object{ + "sort.field": Array{ + "timestamp", "nonce", + }, + "sort.order": Array{ + "desc", "desc", + }, }, }, - }, - "mappings": Object{ - "properties": Object{ - "accumulatedFees": Object{ - "index": "false", - "type": "keyword", - }, - "developerFees": Object{ - "index": "false", - "type": "keyword", - }, - "epoch": Object{ - "type": "long", - }, - "epochStartBlock": Object{ - "type": "boolean", - }, - "epochStartInfo": Object{ - "properties": Object{ - "nodePrice": Object{ - "index": "false", - "type": "keyword", - }, - "prevEpochStartHash": Object{ - "index": "false", - "type": "keyword", - }, - "prevEpochStartRound": Object{ - "index": "false", - "type": "double", - }, - "rewardsForProtocolSustainability": Object{ - "index": "false", - "type": "keyword", - }, - "rewardsPerBlock": Object{ - "index": "false", - "type": "keyword", - }, - "totalNewlyMinted": Object{ - "index": "false", - "type": "keyword", - }, - "totalSupply": Object{ - "index": "false", - "type": "keyword", - }, - "totalToDistribute": Object{ - "index": "false", - "type": "keyword", - }, + "mappings": Object{ + "properties": Object{ + "accumulatedFees": Object{ + "index": "false", + "type": "keyword", }, - }, - "epochStartShardsData": Object{ - "properties": Object{ - "epoch": Object{ - "index": "false", - "type": "long", - }, - "firstPendingMetaBlock": Object{ - "index": "false", - "type": "keyword", - }, - "headerHash": Object{ - "index": "false", - "type": "keyword", - }, - "lastFinishedMetaBlock": Object{ - "index": "false", - "type": "keyword", - }, - "nonce": Object{ - "index": "false", - "type": "double", + "developerFees": Object{ + "index": "false", + "type": "keyword", + }, + "epoch": Object{ + "type": "long", + }, + "epochStartBlock": Object{ + "type": "boolean", + }, + "epochStartInfo": Object{ + "properties": Object{ + "nodePrice": Object{ + "index": "false", + "type": "keyword", + }, + "prevEpochStartHash": Object{ + "index": "false", + "type": "keyword", + }, + "prevEpochStartRound": Object{ + "index": "false", + "type": "double", + }, + "rewardsForProtocolSustainability": Object{ + "index": "false", + "type": "keyword", + }, + "rewardsPerBlock": Object{ + "index": "false", + "type": "keyword", + }, + "totalNewlyMinted": Object{ + "index": "false", + "type": "keyword", + }, + "totalSupply": Object{ + "index": "false", + "type": "keyword", + }, + "totalToDistribute": Object{ + "index": "false", + "type": "keyword", + }, }, - "pendingMiniBlockHeaders": Object{ - "properties": Object{ - "hash": Object{ - "index": "false", - "type": "keyword", - }, - "receiverShard": Object{ - "index": "false", - "type": "long", - }, - "senderShard": Object{ - "index": "false", - "type": "long", - }, - "timestamp": Object{ - "index": "false", - "type": "date", - "format": "epoch_second", - }, - "type": Object{ - "index": "false", - "type": "keyword", + }, + "epochStartShardsData": Object{ + "properties": Object{ + "epoch": Object{ + "index": "false", + "type": "long", + }, + "firstPendingMetaBlock": Object{ + "index": "false", + "type": "keyword", + }, + "headerHash": Object{ + "index": "false", + "type": "keyword", + }, + "lastFinishedMetaBlock": Object{ + "index": "false", + "type": "keyword", + }, + "nonce": Object{ + "index": "false", + "type": "double", + }, + "pendingMiniBlockHeaders": Object{ + "properties": Object{ + "hash": Object{ + "index": "false", + "type": "keyword", + }, + "receiverShard": Object{ + "index": "false", + "type": "long", + }, + "senderShard": Object{ + "index": "false", + "type": "long", + }, + "timestamp": Object{ + "index": "false", + "type": "date", + "format": "epoch_second", + }, + "type": Object{ + "index": "false", + "type": "keyword", + }, }, }, - }, - "rootHash": Object{ - "index": "false", - "type": "keyword", - }, - "round": Object{ - "index": "false", - "type": "double", - }, - "scheduledRootHash": Object{ - "index": "false", - "type": "keyword", - }, - "shardID": Object{ - "index": "false", - "type": "long", + "rootHash": Object{ + "index": "false", + "type": "keyword", + }, + "round": Object{ + "index": "false", + "type": "double", + }, + "scheduledRootHash": Object{ + "index": "false", + "type": "keyword", + }, + "shardID": Object{ + "index": "false", + "type": "long", + }, }, }, - }, - "gasPenalized": Object{ - "type": "double", - }, - "gasProvided": Object{ - "type": "double", - }, - "gasRefunded": Object{ - "type": "double", - }, - "maxGasLimit": Object{ - "type": "double", - }, - "miniBlocksDetails": Object{ - "properties": Object{ - "firstProcessedTx": Object{ - "index": "false", - "type": "long", - }, - "lastProcessedTx": Object{ - "index": "false", - "type": "long", - }, - "mbIndex": Object{ - "index": "false", - "type": "long", - }, + "gasPenalized": Object{ + "type": "double", }, - }, - "miniBlocksHashes": Object{ - "type": "keyword", - }, - "nonce": Object{ - "type": "double", - }, - "notarizedBlocksHashes": Object{ - "type": "keyword", - }, - "notarizedTxsCount": Object{ - "index": "false", - "type": "long", - }, - "prevHash": Object{ - "type": "keyword", - }, - "proposer": Object{ - "type": "long", - }, - "pubKeyBitmap": Object{ - "index": "false", - "type": "keyword", - }, - "round": Object{ - "type": "double", - }, - "scheduledData": Object{ - "properties": Object{ - "accumulatedFees": Object{ - "index": "false", - "type": "keyword", - }, - "developerFees": Object{ - "index": "false", - "type": "keyword", - }, - "gasProvided": Object{ - "index": "false", - "type": "double", - }, - "gasRefunded": Object{ - "index": "false", - "type": "double", - }, - "penalized": Object{ - "index": "false", - "type": "double", + "gasProvided": Object{ + "type": "double", + }, + "gasRefunded": Object{ + "type": "double", + }, + "maxGasLimit": Object{ + "type": "double", + }, + "miniBlocksDetails": Object{ + "properties": Object{ + "firstProcessedTx": Object{ + "index": "false", + "type": "long", + }, + "lastProcessedTx": Object{ + "index": "false", + "type": "long", + }, + "mbIndex": Object{ + "index": "false", + "type": "long", + }, }, - "rootHash": Object{ - "index": "false", - "type": "keyword", + }, + "miniBlocksHashes": Object{ + "type": "keyword", + }, + "nonce": Object{ + "type": "double", + }, + "notarizedBlocksHashes": Object{ + "type": "keyword", + }, + "notarizedTxsCount": Object{ + "index": "false", + "type": "long", + }, + "prevHash": Object{ + "type": "keyword", + }, + "proposer": Object{ + "type": "long", + }, + "pubKeyBitmap": Object{ + "index": "false", + "type": "keyword", + }, + "round": Object{ + "type": "double", + }, + "scheduledData": Object{ + "properties": Object{ + "accumulatedFees": Object{ + "index": "false", + "type": "keyword", + }, + "developerFees": Object{ + "index": "false", + "type": "keyword", + }, + "gasProvided": Object{ + "index": "false", + "type": "double", + }, + "gasRefunded": Object{ + "index": "false", + "type": "double", + }, + "penalized": Object{ + "index": "false", + "type": "double", + }, + "rootHash": Object{ + "index": "false", + "type": "keyword", + }, }, }, - }, - "searchOrder": Object{ - "type": "long", - }, - "shardId": Object{ - "type": "long", - }, - "size": Object{ - "index": "false", - "type": "long", - }, - "sizeTxs": Object{ - "index": "false", - "type": "long", - }, - "stateRootHash": Object{ - "type": "keyword", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "txCount": Object{ - "index": "false", - "type": "long", - }, - "validators": Object{ - "index": "false", - "type": "long", + "searchOrder": Object{ + "type": "long", + }, + "shardId": Object{ + "type": "long", + }, + "size": Object{ + "index": "false", + "type": "long", + }, + "sizeTxs": Object{ + "index": "false", + "type": "long", + }, + "stateRootHash": Object{ + "type": "keyword", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "txCount": Object{ + "index": "false", + "type": "long", + }, + "validators": Object{ + "index": "false", + "type": "long", + }, }, }, }, diff --git a/templates/noKibana/delegators.go b/templates/noKibana/delegators.go index ab8eacd3..91f33c94 100644 --- a/templates/noKibana/delegators.go +++ b/templates/noKibana/delegators.go @@ -5,47 +5,48 @@ var Delegators = Object{ "index_patterns": Array{ "delegators-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - }, - - "mappings": Object{ - "properties": Object{ - "activeStake": Object{ - "type": "keyword", - }, - "activeStakeNum": Object{ - "type": "double", - }, - "address": Object{ - "type": "keyword", - }, - "contract": Object{ - "type": "keyword", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "unDelegateInfo": Object{ - "properties": Object{ - "id": Object{ - "index": "false", - "type": "keyword", - }, - "value": Object{ - "index": "false", - "type": "keyword", - }, - "valueNum": Object{ - "index": "false", - "type": "double", - }, - "timestamp": Object{ - "index": "false", - "type": "date", - "format": "epoch_second", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "activeStake": Object{ + "type": "keyword", + }, + "activeStakeNum": Object{ + "type": "double", + }, + "address": Object{ + "type": "keyword", + }, + "contract": Object{ + "type": "keyword", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "unDelegateInfo": Object{ + "properties": Object{ + "id": Object{ + "index": "false", + "type": "keyword", + }, + "value": Object{ + "index": "false", + "type": "keyword", + }, + "valueNum": Object{ + "index": "false", + "type": "double", + }, + "timestamp": Object{ + "index": "false", + "type": "date", + "format": "epoch_second", + }, }, }, }, diff --git a/templates/noKibana/deploys.go b/templates/noKibana/deploys.go index 1142e568..18f04afd 100644 --- a/templates/noKibana/deploys.go +++ b/templates/noKibana/deploys.go @@ -5,58 +5,60 @@ var SCDeploys = Object{ "index_patterns": Array{ "scdeploys-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "deployTxHash": Object{ - "type": "keyword", - }, - "deployer": Object{ - "type": "keyword", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "currentOwner": Object{ - "type": "keyword", - }, - "initialCodeHash": Object{ - "type": "keyword", - }, - "upgrades": Object{ - "type": "nested", - "properties": Object{ - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "upgradeTxHash": Object{ - "type": "keyword", - }, - "upgrader": Object{ - "type": "keyword", - }, - "codeHash": Object{ - "type": "keyword", - }, + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "deployTxHash": Object{ + "type": "keyword", }, - }, - "owners": Object{ - "type": "nested", - "properties": Object{ - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "txHash": Object{ - "type": "keyword", + "deployer": Object{ + "type": "keyword", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "currentOwner": Object{ + "type": "keyword", + }, + "initialCodeHash": Object{ + "type": "keyword", + }, + "upgrades": Object{ + "type": "nested", + "properties": Object{ + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "upgradeTxHash": Object{ + "type": "keyword", + }, + "upgrader": Object{ + "type": "keyword", + }, + "codeHash": Object{ + "type": "keyword", + }, }, - "address": Object{ - "type": "keyword", + }, + "owners": Object{ + "type": "nested", + "properties": Object{ + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "txHash": Object{ + "type": "keyword", + }, + "address": Object{ + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/epochInfo.go b/templates/noKibana/epochInfo.go index bb931a42..337941f1 100644 --- a/templates/noKibana/epochInfo.go +++ b/templates/noKibana/epochInfo.go @@ -5,17 +5,19 @@ var EpochInfo = Object{ "index_patterns": Array{ "epochinfo-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "accumulatedFees": Object{ - "type": "keyword", - }, - "developerFees": Object{ - "type": "keyword", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "accumulatedFees": Object{ + "type": "keyword", + }, + "developerFees": Object{ + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/esdts.go b/templates/noKibana/esdts.go index 75d0bfa5..9ea5588b 100644 --- a/templates/noKibana/esdts.go +++ b/templates/noKibana/esdts.go @@ -5,127 +5,129 @@ var ESDTs = Object{ "index_patterns": Array{ "esdts-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "name": Object{ - "type": "keyword", - }, - "ticker": Object{ - "type": "keyword", - }, - "token": Object{ - "type": "text", - }, - "issuer": Object{ - "type": "keyword", - }, - "currentOwner": Object{ - "type": "keyword", - }, - "numDecimals": Object{ - "type": "long", - }, - "type": Object{ - "type": "keyword", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "changedToDynamicTimestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "ownersHistory": Object{ - "type": "nested", - "properties": Object{ - "timestamp": Object{ - "index": "false", - "type": "date", - "format": "epoch_second", - }, - "address": Object{ - "type": "keyword", - }, - }, - }, - "paused": Object{ - "type": "boolean", - }, + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + }, + "mappings": Object{ "properties": Object{ - "properties": Object{ - "canMint": Object{ - "index": "false", - "type": "boolean", - }, - "canBurn": Object{ - "index": "false", - "type": "boolean", - }, - "canUpgrade": Object{ - "index": "false", - "type": "boolean", - }, - "canTransferNFTCreateRole": Object{ - "index": "false", - "type": "boolean", - }, - "canAddSpecialRoles": Object{ - "index": "false", - "type": "boolean", - }, - "canPause": Object{ - "index": "false", - "type": "boolean", - }, - "canFreeze": Object{ - "index": "false", - "type": "boolean", - }, - "canWipe": Object{ - "index": "false", - "type": "boolean", - }, - "canChangeOwner": Object{ - "index": "false", - "type": "boolean", - }, - "canCreateMultiShard": Object{ - "index": "false", - "type": "boolean", + "name": Object{ + "type": "keyword", + }, + "ticker": Object{ + "type": "keyword", + }, + "token": Object{ + "type": "text", + }, + "issuer": Object{ + "type": "keyword", + }, + "currentOwner": Object{ + "type": "keyword", + }, + "numDecimals": Object{ + "type": "long", + }, + "type": Object{ + "type": "keyword", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "changedToDynamicTimestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "ownersHistory": Object{ + "type": "nested", + "properties": Object{ + "timestamp": Object{ + "index": "false", + "type": "date", + "format": "epoch_second", + }, + "address": Object{ + "type": "keyword", + }, }, }, - }, - "roles": Object{ - "type": "nested", + "paused": Object{ + "type": "boolean", + }, "properties": Object{ - "ESDTRoleLocalBurn": Object{ - "type": "keyword", - }, - "ESDTRoleLocalMint": Object{ - "type": "keyword", - }, - "ESDTRoleNFTAddQuantity": Object{ - "type": "keyword", + "properties": Object{ + "canMint": Object{ + "index": "false", + "type": "boolean", + }, + "canBurn": Object{ + "index": "false", + "type": "boolean", + }, + "canUpgrade": Object{ + "index": "false", + "type": "boolean", + }, + "canTransferNFTCreateRole": Object{ + "index": "false", + "type": "boolean", + }, + "canAddSpecialRoles": Object{ + "index": "false", + "type": "boolean", + }, + "canPause": Object{ + "index": "false", + "type": "boolean", + }, + "canFreeze": Object{ + "index": "false", + "type": "boolean", + }, + "canWipe": Object{ + "index": "false", + "type": "boolean", + }, + "canChangeOwner": Object{ + "index": "false", + "type": "boolean", + }, + "canCreateMultiShard": Object{ + "index": "false", + "type": "boolean", + }, }, - "ESDTRoleNFTAddURI": Object{ - "type": "keyword", - }, - "ESDTRoleNFTBurn": Object{ - "type": "keyword", - }, - "ESDTRoleNFTCreate": Object{ - "type": "keyword", - }, - "ESDTRoleNFTUpdateAttributes": Object{ - "type": "keyword", - }, - "ESDTTransferRole": Object{ - "type": "keyword", + }, + "roles": Object{ + "type": "nested", + "properties": Object{ + "ESDTRoleLocalBurn": Object{ + "type": "keyword", + }, + "ESDTRoleLocalMint": Object{ + "type": "keyword", + }, + "ESDTRoleNFTAddQuantity": Object{ + "type": "keyword", + }, + "ESDTRoleNFTAddURI": Object{ + "type": "keyword", + }, + "ESDTRoleNFTBurn": Object{ + "type": "keyword", + }, + "ESDTRoleNFTCreate": Object{ + "type": "keyword", + }, + "ESDTRoleNFTUpdateAttributes": Object{ + "type": "keyword", + }, + "ESDTTransferRole": Object{ + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/events.go b/templates/noKibana/events.go index bbdce60e..cdf3613a 100644 --- a/templates/noKibana/events.go +++ b/templates/noKibana/events.go @@ -5,49 +5,51 @@ var Events = Object{ "index_patterns": Array{ "events-*", }, - "settings": Object{ - "number_of_shards": 5, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "txHash": Object{ - "type": "keyword", - }, - "originalTxHash": Object{ - "type": "keyword", - }, - "logAddress": Object{ - "type": "keyword", - }, - "address": Object{ - "type": "keyword", - }, - "identifier": Object{ - "type": "keyword", - }, - "shardID": Object{ - "type": "long", - }, - "data": Object{ - "index": "false", - "type": "text", - }, - "additionalData": Object{ - "type": "text", - }, - "topics": Object{ - "type": "text", - }, - "order": Object{ - "type": "long", - }, - "txOrder": Object{ - "type": "long", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", + "template": Object{ + "settings": Object{ + "number_of_shards": 5, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "txHash": Object{ + "type": "keyword", + }, + "originalTxHash": Object{ + "type": "keyword", + }, + "logAddress": Object{ + "type": "keyword", + }, + "address": Object{ + "type": "keyword", + }, + "identifier": Object{ + "type": "keyword", + }, + "shardID": Object{ + "type": "long", + }, + "data": Object{ + "index": "false", + "type": "text", + }, + "additionalData": Object{ + "type": "text", + }, + "topics": Object{ + "type": "text", + }, + "order": Object{ + "type": "long", + }, + "txOrder": Object{ + "type": "long", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, }, }, }, diff --git a/templates/noKibana/logs.go b/templates/noKibana/logs.go index ebe4acb0..21cd297d 100644 --- a/templates/noKibana/logs.go +++ b/templates/noKibana/logs.go @@ -5,39 +5,41 @@ var Logs = Object{ "index_patterns": Array{ "logs-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "address": Object{ - "type": "keyword", - }, - "events": Object{ - "type": "nested", - "properties": Object{ - "address": Object{ - "type": "keyword", - }, - "data": Object{ - "index": "false", - "type": "text", - }, - "identifier": Object{ - "type": "keyword", - }, - "topics": Object{ - "type": "text", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "address": Object{ + "type": "keyword", + }, + "events": Object{ + "type": "nested", + "properties": Object{ + "address": Object{ + "type": "keyword", + }, + "data": Object{ + "index": "false", + "type": "text", + }, + "identifier": Object{ + "type": "keyword", + }, + "topics": Object{ + "type": "text", + }, }, }, - }, - "originalTxHash": Object{ - "type": "keyword", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", + "originalTxHash": Object{ + "type": "keyword", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, }, }, }, diff --git a/templates/noKibana/miniblocks.go b/templates/noKibana/miniblocks.go index f7187e16..30ef3360 100644 --- a/templates/noKibana/miniblocks.go +++ b/templates/noKibana/miniblocks.go @@ -5,40 +5,42 @@ var Miniblocks = Object{ "index_patterns": Array{ "miniblocks-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "procTypeD": Object{ - "type": "keyword", - }, - "procTypeS": Object{ - "type": "keyword", - }, - "receiverBlockHash": Object{ - "type": "keyword", - }, - "receiverShard": Object{ - "type": "long", - }, - "reserved": Object{ - "index": "false", - "type": "keyword", - }, - "senderBlockHash": Object{ - "type": "keyword", - }, - "senderShard": Object{ - "type": "long", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "type": Object{ - "type": "keyword", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "procTypeD": Object{ + "type": "keyword", + }, + "procTypeS": Object{ + "type": "keyword", + }, + "receiverBlockHash": Object{ + "type": "keyword", + }, + "receiverShard": Object{ + "type": "long", + }, + "reserved": Object{ + "index": "false", + "type": "keyword", + }, + "senderBlockHash": Object{ + "type": "keyword", + }, + "senderShard": Object{ + "type": "long", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "type": Object{ + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/opendistro.go b/templates/noKibana/opendistro.go index e31296b4..66a0bca8 100644 --- a/templates/noKibana/opendistro.go +++ b/templates/noKibana/opendistro.go @@ -5,8 +5,10 @@ var OpenDistro = Object{ "index_patterns": Array{ ".opendistro-*", }, - "settings": Object{ - "number_of_shards": 1, - "number_of_replicas": 0, + "template": Object{ + "settings": Object{ + "number_of_shards": 1, + "number_of_replicas": 0, + }, }, } diff --git a/templates/noKibana/operations.go b/templates/noKibana/operations.go index 8c734d9d..d9598f58 100644 --- a/templates/noKibana/operations.go +++ b/templates/noKibana/operations.go @@ -5,169 +5,170 @@ var Operations = Object{ "index_patterns": Array{ "operations-*", }, - "settings": Object{ - "number_of_shards": 5, - "number_of_replicas": 0, - "index": Object{ - "sort.field": Array{ - "timestamp", "nonce", - }, - "sort.order": Array{ - "desc", "desc", + "template": Object{ + "settings": Object{ + "number_of_shards": 5, + "number_of_replicas": 0, + "index": Object{ + "sort.field": Array{ + "timestamp", "nonce", + }, + "sort.order": Array{ + "desc", "desc", + }, }, }, - }, - - "mappings": Object{ - "properties": Object{ - "callType": Object{ - "index": "false", - "type": "keyword", - }, - "canBeIgnored": Object{ - "type": "boolean", - }, - "code": Object{ - "index": "false", - "type": "text", - }, - "data": Object{ - "type": "text", - }, - "esdtValues": Object{ - "type": "keyword", - }, - "esdtValuesNum": Object{ - "type": "double", - }, - "fee": Object{ - "index": "false", - "type": "keyword", - }, - "feeNum": Object{ - "type": "double", - }, - "function": Object{ - "type": "keyword", - }, - "gasLimit": Object{ - "index": "false", - "type": "double", - }, - "gasPrice": Object{ - "index": "false", - "type": "double", - }, - "gasUsed": Object{ - "index": "false", - "type": "double", - }, - "hasOperations": Object{ - "type": "boolean", - }, - "hasScResults": Object{ - "type": "boolean", - }, - "hasLogs": Object{ - "type": "boolean", - }, - "initialPaidFee": Object{ - "index": "false", - "type": "keyword", - }, - "isRelayed": Object{ - "type": "boolean", - }, - "isScCall": Object{ - "type": "boolean", - }, - "miniBlockHash": Object{ - "type": "keyword", - }, - "nonce": Object{ - "type": "double", - }, - "operation": Object{ - "type": "keyword", - }, - "originalSender": Object{ - "type": "keyword", - }, - "originalTxHash": Object{ - "type": "keyword", - }, - "prevTxHash": Object{ - "type": "keyword", - }, - "receiver": Object{ - "type": "keyword", - }, - "receiverShard": Object{ - "type": "long", - }, - "receivers": Object{ - "type": "keyword", - }, - "receiversShardIDs": Object{ - "type": "long", - }, - "relayedValue": Object{ - "index": "false", - "type": "keyword", - }, - "relayerAddr": Object{ - "type": "keyword", - }, - "returnMessage": Object{ - "type": "text", - }, - "round": Object{ - "type": "double", - }, - "searchOrder": Object{ - "type": "long", - }, - "sender": Object{ - "type": "keyword", - }, - "senderShard": Object{ - "type": "long", - }, - "senderUserName": Object{ - "type": "keyword", - }, - "signature": Object{ - "index": "false", - "type": "keyword", - }, - "status": Object{ - "type": "keyword", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "tokens": Object{ - "type": "text", - }, - "type": Object{ - "type": "keyword", - }, - "value": Object{ - "type": "keyword", - }, - "valueNum": Object{ - "type": "double", - }, - "version": Object{ - "type": "long", - }, - "guardian": Object{ - "type": "keyword", - }, - "guardianSignature": Object{ - "index": "false", - "type": "keyword", + "mappings": Object{ + "properties": Object{ + "callType": Object{ + "index": "false", + "type": "keyword", + }, + "canBeIgnored": Object{ + "type": "boolean", + }, + "code": Object{ + "index": "false", + "type": "text", + }, + "data": Object{ + "type": "text", + }, + "esdtValues": Object{ + "type": "keyword", + }, + "esdtValuesNum": Object{ + "type": "double", + }, + "fee": Object{ + "index": "false", + "type": "keyword", + }, + "feeNum": Object{ + "type": "double", + }, + "function": Object{ + "type": "keyword", + }, + "gasLimit": Object{ + "index": "false", + "type": "double", + }, + "gasPrice": Object{ + "index": "false", + "type": "double", + }, + "gasUsed": Object{ + "index": "false", + "type": "double", + }, + "hasOperations": Object{ + "type": "boolean", + }, + "hasScResults": Object{ + "type": "boolean", + }, + "hasLogs": Object{ + "type": "boolean", + }, + "initialPaidFee": Object{ + "index": "false", + "type": "keyword", + }, + "isRelayed": Object{ + "type": "boolean", + }, + "isScCall": Object{ + "type": "boolean", + }, + "miniBlockHash": Object{ + "type": "keyword", + }, + "nonce": Object{ + "type": "double", + }, + "operation": Object{ + "type": "keyword", + }, + "originalSender": Object{ + "type": "keyword", + }, + "originalTxHash": Object{ + "type": "keyword", + }, + "prevTxHash": Object{ + "type": "keyword", + }, + "receiver": Object{ + "type": "keyword", + }, + "receiverShard": Object{ + "type": "long", + }, + "receivers": Object{ + "type": "keyword", + }, + "receiversShardIDs": Object{ + "type": "long", + }, + "relayedValue": Object{ + "index": "false", + "type": "keyword", + }, + "relayerAddr": Object{ + "type": "keyword", + }, + "returnMessage": Object{ + "type": "text", + }, + "round": Object{ + "type": "double", + }, + "searchOrder": Object{ + "type": "long", + }, + "sender": Object{ + "type": "keyword", + }, + "senderShard": Object{ + "type": "long", + }, + "senderUserName": Object{ + "type": "keyword", + }, + "signature": Object{ + "index": "false", + "type": "keyword", + }, + "status": Object{ + "type": "keyword", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "tokens": Object{ + "type": "text", + }, + "type": Object{ + "type": "keyword", + }, + "value": Object{ + "type": "keyword", + }, + "valueNum": Object{ + "type": "double", + }, + "version": Object{ + "type": "long", + }, + "guardian": Object{ + "type": "keyword", + }, + "guardianSignature": Object{ + "index": "false", + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/rating.go b/templates/noKibana/rating.go index c9e9c364..53add6b8 100644 --- a/templates/noKibana/rating.go +++ b/templates/noKibana/rating.go @@ -5,15 +5,16 @@ var Rating = Object{ "index_patterns": Array{ "rating-*", }, - "settings": Object{ - "number_of_shards": 1, - "number_of_replicas": 0, - }, - - "mappings": Object{ - "properties": Object{ - "rating": Object{ - "type": "double", + "template": Object{ + "settings": Object{ + "number_of_shards": 1, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "rating": Object{ + "type": "double", + }, }, }, }, diff --git a/templates/noKibana/receipts.go b/templates/noKibana/receipts.go index 71e43373..b5869cd1 100644 --- a/templates/noKibana/receipts.go +++ b/templates/noKibana/receipts.go @@ -5,36 +5,38 @@ var Receipts = Object{ "index_patterns": Array{ "receipts-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - "index": Object{ - "sort.field": Array{ - "timestamp", - }, - "sort.order": Array{ - "desc", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + "index": Object{ + "sort.field": Array{ + "timestamp", + }, + "sort.order": Array{ + "desc", + }, }, }, - }, - "mappings": Object{ - "properties": Object{ - "data": Object{ - "type": "keyword", - }, - "sender": Object{ - "type": "keyword", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "txHash": Object{ - "type": "keyword", - }, - "value": Object{ - "index": "false", - "type": "keyword", + "mappings": Object{ + "properties": Object{ + "data": Object{ + "type": "keyword", + }, + "sender": Object{ + "type": "keyword", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "txHash": Object{ + "type": "keyword", + }, + "value": Object{ + "index": "false", + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/rounds.go b/templates/noKibana/rounds.go index b044e91e..890b3077 100644 --- a/templates/noKibana/rounds.go +++ b/templates/noKibana/rounds.go @@ -5,38 +5,40 @@ var Rounds = Object{ "index_patterns": Array{ "rounds-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - "index": Object{ - "sort.field": Array{ - "timestamp", - }, - "sort.order": Array{ - "desc", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + "index": Object{ + "sort.field": Array{ + "timestamp", + }, + "sort.order": Array{ + "desc", + }, }, }, - }, - "mappings": Object{ - "properties": Object{ - "blockWasProposed": Object{ - "type": "boolean", - }, - "epoch": Object{ - "type": "long", - }, - "round": Object{ - "type": "double", - }, - "shardId": Object{ - "type": "long", - }, - "signersIndexes": Object{ - "type": "long", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", + "mappings": Object{ + "properties": Object{ + "blockWasProposed": Object{ + "type": "boolean", + }, + "epoch": Object{ + "type": "long", + }, + "round": Object{ + "type": "double", + }, + "shardId": Object{ + "type": "long", + }, + "signersIndexes": Object{ + "type": "long", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, }, }, }, diff --git a/templates/noKibana/scResults.go b/templates/noKibana/scResults.go index 14a7e366..d8c02de1 100644 --- a/templates/noKibana/scResults.go +++ b/templates/noKibana/scResults.go @@ -5,108 +5,110 @@ var SCResults = Object{ "index_patterns": Array{ "scresults-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - "index": Object{ - "sort.field": Array{ - "timestamp", - }, - "sort.order": Array{ - "desc", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + "index": Object{ + "sort.field": Array{ + "timestamp", + }, + "sort.order": Array{ + "desc", + }, }, }, - }, - "mappings": Object{ - "properties": Object{ - "callType": Object{ - "type": "keyword", - }, - "code": Object{ - "index": "false", - "type": "text", - }, - "data": Object{ - "type": "text", - }, - "esdtValues": Object{ - "type": "keyword", - }, - "esdtValuesNum": Object{ - "type": "double", - }, - "function": Object{ - "type": "keyword", - }, - "gasLimit": Object{ - "index": "false", - "type": "double", - }, - "gasPrice": Object{ - "index": "false", - "type": "double", - }, - "hasOperations": Object{ - "type": "boolean", - }, - "miniBlockHash": Object{ - "type": "keyword", - }, - "nonce": Object{ - "type": "double", - }, - "operation": Object{ - "type": "keyword", - }, - "originalSender": Object{ - "type": "keyword", - }, - "originalTxHash": Object{ - "type": "keyword", - }, - "prevTxHash": Object{ - "type": "keyword", - }, - "receiver": Object{ - "type": "keyword", - }, - "receiverShard": Object{ - "type": "long", - }, - "receivers": Object{ - "type": "keyword", - }, - "receiversShardIDs": Object{ - "type": "long", - }, - "relayedValue": Object{ - "index": "false", - "type": "keyword", - }, - "relayerAddr": Object{ - "type": "keyword", - }, - "returnMessage": Object{ - "type": "text", - }, - "sender": Object{ - "type": "keyword", - }, - "senderShard": Object{ - "type": "long", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "tokens": Object{ - "type": "text", - }, - "value": Object{ - "type": "keyword", - }, - "valueNum": Object{ - "type": "double", + "mappings": Object{ + "properties": Object{ + "callType": Object{ + "type": "keyword", + }, + "code": Object{ + "index": "false", + "type": "text", + }, + "data": Object{ + "type": "text", + }, + "esdtValues": Object{ + "type": "keyword", + }, + "esdtValuesNum": Object{ + "type": "double", + }, + "function": Object{ + "type": "keyword", + }, + "gasLimit": Object{ + "index": "false", + "type": "double", + }, + "gasPrice": Object{ + "index": "false", + "type": "double", + }, + "hasOperations": Object{ + "type": "boolean", + }, + "miniBlockHash": Object{ + "type": "keyword", + }, + "nonce": Object{ + "type": "double", + }, + "operation": Object{ + "type": "keyword", + }, + "originalSender": Object{ + "type": "keyword", + }, + "originalTxHash": Object{ + "type": "keyword", + }, + "prevTxHash": Object{ + "type": "keyword", + }, + "receiver": Object{ + "type": "keyword", + }, + "receiverShard": Object{ + "type": "long", + }, + "receivers": Object{ + "type": "keyword", + }, + "receiversShardIDs": Object{ + "type": "long", + }, + "relayedValue": Object{ + "index": "false", + "type": "keyword", + }, + "relayerAddr": Object{ + "type": "keyword", + }, + "returnMessage": Object{ + "type": "text", + }, + "sender": Object{ + "type": "keyword", + }, + "senderShard": Object{ + "type": "long", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "tokens": Object{ + "type": "text", + }, + "value": Object{ + "type": "keyword", + }, + "valueNum": Object{ + "type": "double", + }, }, }, }, diff --git a/templates/noKibana/tags.go b/templates/noKibana/tags.go index 1476d3e6..45918b70 100644 --- a/templates/noKibana/tags.go +++ b/templates/noKibana/tags.go @@ -5,17 +5,19 @@ var Tags = Object{ "index_patterns": Array{ "tags-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "count": Object{ - "type": "long", - }, - "tag": Object{ - "type": "keyword", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "count": Object{ + "type": "long", + }, + "tag": Object{ + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/tokens.go b/templates/noKibana/tokens.go index 0035de16..a7de2dce 100644 --- a/templates/noKibana/tokens.go +++ b/templates/noKibana/tokens.go @@ -5,171 +5,173 @@ var Tokens = Object{ "index_patterns": Array{ "tokens-*", }, - "settings": Object{ - "number_of_shards": 3, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "currentOwner": Object{ - "type": "keyword", - }, - "data": Object{ - "type": "nested", - "properties": Object{ - "attributes": Object{ - "index": "false", - "type": "keyword", - }, - "creator": Object{ - "type": "keyword", - }, - "hash": Object{ - "index": "false", - "type": "keyword", - }, - "metadata": Object{ - "index": "false", - "type": "keyword", - }, - "name": Object{ - "type": "keyword", - }, - "nonEmptyURIs": Object{ - "type": "boolean", - }, - "royalties": Object{ - "type": "long", - }, - "tags": Object{ - "type": "keyword", - }, - "uris": Object{ - "type": "keyword", - }, - "whiteListedStorage": Object{ - "type": "boolean", + "template": Object{ + "settings": Object{ + "number_of_shards": 3, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "currentOwner": Object{ + "type": "keyword", + }, + "data": Object{ + "type": "nested", + "properties": Object{ + "attributes": Object{ + "index": "false", + "type": "keyword", + }, + "creator": Object{ + "type": "keyword", + }, + "hash": Object{ + "index": "false", + "type": "keyword", + }, + "metadata": Object{ + "index": "false", + "type": "keyword", + }, + "name": Object{ + "type": "keyword", + }, + "nonEmptyURIs": Object{ + "type": "boolean", + }, + "royalties": Object{ + "type": "long", + }, + "tags": Object{ + "type": "keyword", + }, + "uris": Object{ + "type": "keyword", + }, + "whiteListedStorage": Object{ + "type": "boolean", + }, }, }, - }, - "identifier": Object{ - "type": "text", - }, - "issuer": Object{ - "type": "keyword", - }, - "name": Object{ - "type": "keyword", - }, + "identifier": Object{ + "type": "text", + }, + "issuer": Object{ + "type": "keyword", + }, + "name": Object{ + "type": "keyword", + }, - "nonce": Object{ - "type": "double", - }, - "numDecimals": Object{ - "type": "long", - }, - "ownersHistory": Object{ - "type": "nested", - "properties": Object{ - "address": Object{ - "type": "keyword", - }, - "timestamp": Object{ - "index": "false", - "type": "date", - "format": "epoch_second", - }, + "nonce": Object{ + "type": "double", }, - }, - "properties": Object{ - "properties": Object{ - "canAddSpecialRoles": Object{ - "index": "false", - "type": "boolean", - }, - "canBurn": Object{ - "index": "false", - "type": "boolean", - }, - "canChangeOwner": Object{ - "index": "false", - "type": "boolean", - }, - "canCreateMultiShard": Object{ - "index": "false", - "type": "boolean", - }, - "canFreeze": Object{ - "index": "false", - "type": "boolean", - }, - "canMint": Object{ - "index": "false", - "type": "boolean", - }, - "canPause": Object{ - "index": "false", - "type": "boolean", - }, - "canTransferNFTCreateRole": Object{ - "index": "false", - "type": "boolean", - }, - "canUpgrade": Object{ - "index": "false", - "type": "boolean", - }, - "canWipe": Object{ - "index": "false", - "type": "boolean", + "numDecimals": Object{ + "type": "long", + }, + "ownersHistory": Object{ + "type": "nested", + "properties": Object{ + "address": Object{ + "type": "keyword", + }, + "timestamp": Object{ + "index": "false", + "type": "date", + "format": "epoch_second", + }, }, }, - }, - "roles": Object{ - "type": "nested", "properties": Object{ - "ESDTRoleLocalBurn": Object{ - "type": "keyword", - }, - "ESDTRoleLocalMint": Object{ - "type": "keyword", - }, - "ESDTRoleNFTAddQuantity": Object{ - "type": "keyword", - }, - "ESDTRoleNFTAddURI": Object{ - "type": "keyword", + "properties": Object{ + "canAddSpecialRoles": Object{ + "index": "false", + "type": "boolean", + }, + "canBurn": Object{ + "index": "false", + "type": "boolean", + }, + "canChangeOwner": Object{ + "index": "false", + "type": "boolean", + }, + "canCreateMultiShard": Object{ + "index": "false", + "type": "boolean", + }, + "canFreeze": Object{ + "index": "false", + "type": "boolean", + }, + "canMint": Object{ + "index": "false", + "type": "boolean", + }, + "canPause": Object{ + "index": "false", + "type": "boolean", + }, + "canTransferNFTCreateRole": Object{ + "index": "false", + "type": "boolean", + }, + "canUpgrade": Object{ + "index": "false", + "type": "boolean", + }, + "canWipe": Object{ + "index": "false", + "type": "boolean", + }, }, - "ESDTRoleNFTBurn": Object{ - "type": "keyword", - }, - "ESDTRoleNFTCreate": Object{ - "type": "keyword", - }, - "ESDTRoleNFTUpdateAttributes": Object{ - "type": "keyword", - }, - "ESDTTransferRole": Object{ - "type": "keyword", + }, + "roles": Object{ + "type": "nested", + "properties": Object{ + "ESDTRoleLocalBurn": Object{ + "type": "keyword", + }, + "ESDTRoleLocalMint": Object{ + "type": "keyword", + }, + "ESDTRoleNFTAddQuantity": Object{ + "type": "keyword", + }, + "ESDTRoleNFTAddURI": Object{ + "type": "keyword", + }, + "ESDTRoleNFTBurn": Object{ + "type": "keyword", + }, + "ESDTRoleNFTCreate": Object{ + "type": "keyword", + }, + "ESDTRoleNFTUpdateAttributes": Object{ + "type": "keyword", + }, + "ESDTTransferRole": Object{ + "type": "keyword", + }, }, }, - }, - "ticker": Object{ - "type": "keyword", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "changedToDynamicTimestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "token": Object{ - "type": "text", - }, - "type": Object{ - "type": "keyword", + "ticker": Object{ + "type": "keyword", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "changedToDynamicTimestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "token": Object{ + "type": "text", + }, + "type": Object{ + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/transactions.go b/templates/noKibana/transactions.go index 91ebea75..4935807c 100644 --- a/templates/noKibana/transactions.go +++ b/templates/noKibana/transactions.go @@ -5,135 +5,137 @@ var Transactions = Object{ "index_patterns": Array{ "transactions-*", }, - "settings": Object{ - "number_of_shards": 5, - "number_of_replicas": 0, - "index": Object{ - "sort.field": Array{ - "timestamp", "nonce", - }, - "sort.order": Array{ - "desc", "desc", + "template": Object{ + "settings": Object{ + "number_of_shards": 5, + "number_of_replicas": 0, + "index": Object{ + "sort.field": Array{ + "timestamp", "nonce", + }, + "sort.order": Array{ + "desc", "desc", + }, }, }, - }, - "mappings": Object{ - "properties": Object{ - "data": Object{ - "type": "text", - }, - "esdtValues": Object{ - "type": "keyword", - }, - "esdtValuesNum": Object{ - "type": "double", - }, - "fee": Object{ - "index": "false", - "type": "keyword", - }, - "feeNum": Object{ - "type": "double", - }, - "function": Object{ - "type": "keyword", - }, - "gasLimit": Object{ - "index": "false", - "type": "double", - }, - "gasPrice": Object{ - "index": "false", - "type": "double", - }, - "gasUsed": Object{ - "index": "false", - "type": "double", - }, - "hasOperations": Object{ - "type": "boolean", - }, - "hasScResults": Object{ - "type": "boolean", - }, - "hasLogs": Object{ - "type": "boolean", - }, - "initialPaidFee": Object{ - "index": "false", - "type": "keyword", - }, - "isRelayed": Object{ - "type": "boolean", - }, - "isScCall": Object{ - "type": "boolean", - }, - "miniBlockHash": Object{ - "type": "keyword", - }, - "nonce": Object{ - "type": "double", - }, - "operation": Object{ - "type": "keyword", - }, - "receiver": Object{ - "type": "keyword", - }, - "receiverShard": Object{ - "type": "long", - }, - "receivers": Object{ - "type": "keyword", - }, - "receiversShardIDs": Object{ - "type": "long", - }, - "round": Object{ - "type": "double", - }, - "searchOrder": Object{ - "type": "long", - }, - "sender": Object{ - "type": "keyword", - }, - "senderShard": Object{ - "type": "long", - }, - "senderUserName": Object{ - "type": "keyword", - }, - "signature": Object{ - "index": "false", - "type": "keyword", - }, - "status": Object{ - "type": "keyword", - }, - "timestamp": Object{ - "type": "date", - "format": "epoch_second", - }, - "tokens": Object{ - "type": "text", - }, - "value": Object{ - "type": "keyword", - }, - "valueNum": Object{ - "type": "double", - }, - "version": Object{ - "type": "long", - }, - "guardian": Object{ - "type": "keyword", - }, - "guardianSignature": Object{ - "index": "false", - "type": "keyword", + "mappings": Object{ + "properties": Object{ + "data": Object{ + "type": "text", + }, + "esdtValues": Object{ + "type": "keyword", + }, + "esdtValuesNum": Object{ + "type": "double", + }, + "fee": Object{ + "index": "false", + "type": "keyword", + }, + "feeNum": Object{ + "type": "double", + }, + "function": Object{ + "type": "keyword", + }, + "gasLimit": Object{ + "index": "false", + "type": "double", + }, + "gasPrice": Object{ + "index": "false", + "type": "double", + }, + "gasUsed": Object{ + "index": "false", + "type": "double", + }, + "hasOperations": Object{ + "type": "boolean", + }, + "hasScResults": Object{ + "type": "boolean", + }, + "hasLogs": Object{ + "type": "boolean", + }, + "initialPaidFee": Object{ + "index": "false", + "type": "keyword", + }, + "isRelayed": Object{ + "type": "boolean", + }, + "isScCall": Object{ + "type": "boolean", + }, + "miniBlockHash": Object{ + "type": "keyword", + }, + "nonce": Object{ + "type": "double", + }, + "operation": Object{ + "type": "keyword", + }, + "receiver": Object{ + "type": "keyword", + }, + "receiverShard": Object{ + "type": "long", + }, + "receivers": Object{ + "type": "keyword", + }, + "receiversShardIDs": Object{ + "type": "long", + }, + "round": Object{ + "type": "double", + }, + "searchOrder": Object{ + "type": "long", + }, + "sender": Object{ + "type": "keyword", + }, + "senderShard": Object{ + "type": "long", + }, + "senderUserName": Object{ + "type": "keyword", + }, + "signature": Object{ + "index": "false", + "type": "keyword", + }, + "status": Object{ + "type": "keyword", + }, + "timestamp": Object{ + "type": "date", + "format": "epoch_second", + }, + "tokens": Object{ + "type": "text", + }, + "value": Object{ + "type": "keyword", + }, + "valueNum": Object{ + "type": "double", + }, + "version": Object{ + "type": "long", + }, + "guardian": Object{ + "type": "keyword", + }, + "guardianSignature": Object{ + "index": "false", + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/validators.go b/templates/noKibana/validators.go index 3eac3139..88c09295 100644 --- a/templates/noKibana/validators.go +++ b/templates/noKibana/validators.go @@ -5,14 +5,16 @@ var Validators = Object{ "index_patterns": Array{ "validators-*", }, - "settings": Object{ - "number_of_shards": 1, - "number_of_replicas": 0, - }, - "mappings": Object{ - "properties": Object{ - "publicKeys": Object{ - "type": "keyword", + "template": Object{ + "settings": Object{ + "number_of_shards": 1, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "publicKeys": Object{ + "type": "keyword", + }, }, }, }, diff --git a/templates/noKibana/values.go b/templates/noKibana/values.go index 7ac7b249..707a3329 100644 --- a/templates/noKibana/values.go +++ b/templates/noKibana/values.go @@ -5,18 +5,19 @@ var Values = Object{ "index_patterns": Array{ "values-*", }, - "settings": Object{ - "number_of_shards": 1, - "number_of_replicas": 0, - }, - - "mappings": Object{ - "properties": Object{ - "key": Object{ - "type": "keyword", - }, - "value": Object{ - "type": "keyword", + "template": Object{ + "settings": Object{ + "number_of_shards": 1, + "number_of_replicas": 0, + }, + "mappings": Object{ + "properties": Object{ + "key": Object{ + "type": "keyword", + }, + "value": Object{ + "type": "keyword", + }, }, }, },