diff --git a/.gitignore b/.gitignore index 8034ed4a..02ca44f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .idea/ build/ +pgdata # Configuration *.toml diff --git a/Dockerfile b/Dockerfile index 1be2e92d..87d52390 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,16 @@ -FROM golang:1.16-alpine AS builder -RUN apk update && apk add --no-cache make git +FROM golang:1.19-bullseye AS builder WORKDIR /go/src/github.com/forbole/bdjuno COPY . ./ RUN go mod download RUN make build +RUN ldd build/bdjuno > /deps.txt +RUN echo $(ldd build/bdjuno | grep libwasmvm.so | awk '{ print $3 }') -FROM alpine:latest -WORKDIR /bdjuno -COPY --from=builder /go/src/github.com/forbole/bdjuno/build/bdjuno /usr/bin/bdjuno +FROM debian:bullseye +WORKDIR /root +RUN apt-get update && apt-get install ca-certificates -y +COPY --from=builder /deps.txt /root/deps.txt +COPY --from=builder /go/pkg/mod/github.com/!cosm!wasm/wasmvm@v1.0.0-beta5/api/libwasmvm.so /root +COPY --from=builder /go/src/github.com/forbole/bdjuno/build/bdjuno /root/bdjuno +ENV LD_LIBRARY_PATH=/root CMD [ "bdjuno" ] diff --git a/README.md b/README.md index f74fd619..4766194e 100644 --- a/README.md +++ b/README.md @@ -31,3 +31,11 @@ This will: 2. Run all the tests using that database as support. +## Setup + +Remember to run this if you have an empty database: + +``` +cd hasura +hasura metadata apply --endpoint http://localhost:8080 --admin-secret myadminsecretkey +``` diff --git a/cmd/bdjuno/main.go b/cmd/bdjuno/main.go index 8fa85800..9fb9439b 100644 --- a/cmd/bdjuno/main.go +++ b/cmd/bdjuno/main.go @@ -16,7 +16,7 @@ import ( "github.com/forbole/bdjuno/v3/database" "github.com/forbole/bdjuno/v3/modules" - cmdxapp "github.com/comdex-official/comdex/app" + wasmapp "github.com/CosmWasm/wasmd/app" gaiaapp "github.com/cosmos/gaia/v6/app" ) @@ -57,7 +57,7 @@ func main() { func getBasicManagers() []module.BasicManager { return []module.BasicManager{ gaiaapp.ModuleBasics, - cmdxapp.ModuleBasics, + wasmapp.ModuleBasics, } } diff --git a/database/consensus.go b/database/consensus.go index 7fcac032..469c76dd 100644 --- a/database/consensus.go +++ b/database/consensus.go @@ -55,6 +55,44 @@ func (db *Db) getBlockHeightTime(pastTime time.Time) (dbtypes.BlockRow, error) { return val[0], nil } +// GetFirstBlockTime retrieves the first block stored +func (db *Db) GetFirstBlockTime() (dbtypes.BlockRow, error) { + stmt := `SELECT * FROM block ORDER BY block.timestamp ASC LIMIT 1;` + + var val []dbtypes.BlockRow + if err := db.Sqlx.Select(&val, stmt); err != nil { + return dbtypes.BlockRow{}, err + } + + if len(val) == 0 { + return dbtypes.BlockRow{}, fmt.Errorf("cannot get block time, no blocks saved") + } + + return val[0], nil +} + +// GetLastBlockTime retrieves the first block stored +func (db *Db) GetLastBlockTime() (dbtypes.BlockRow, error) { + stmt := `SELECT * FROM block ORDER BY block.timestamp DESC LIMIT 1;` + + var val []dbtypes.BlockRow + if err := db.Sqlx.Select(&val, stmt); err != nil { + return dbtypes.BlockRow{}, err + } + + if len(val) == 0 { + return dbtypes.BlockRow{}, fmt.Errorf("cannot get block time, no blocks saved") + } + + return val[0], nil +} + +// GetBlockHeightTime return block height and time that a block proposals +// at the input date +func (db *Db) GetBlockHeightTime(now time.Time) (dbtypes.BlockRow, error) { + return db.getBlockHeightTime(now) +} + // GetBlockHeightTimeMinuteAgo return block height and time that a block proposals // about a minute ago from input date func (db *Db) GetBlockHeightTimeMinuteAgo(now time.Time) (dbtypes.BlockRow, error) { diff --git a/database/messages.go b/database/messages.go new file mode 100644 index 00000000..38f4df22 --- /dev/null +++ b/database/messages.go @@ -0,0 +1,48 @@ +package database + +import ( + "fmt" + dbtypes "github.com/forbole/bdjuno/v3/database/types" +) + +// GetMessages returns all messages between block heights +func (db *Db) GetMessages(address string, startHeight int64, endHeight int64, offset uint64, limit uint64) ([]dbtypes.MessageRow, error) { + query := fmt.Sprintf(`SELECT + transaction_hash, + index, + type, + value, + involved_accounts_addresses, + height + FROM message + WHERE involved_accounts_addresses @> '{%s}' AND height >= %d AND height <= %d + ORDER BY height ASC, type ASC, index ASC + OFFSET %d LIMIT %d`, address, startHeight, endHeight, offset, limit) + + var dbRows []dbtypes.MessageRow + err := db.Sqlx.Select(&dbRows, query) + if err != nil { + return nil, err + } + + return dbRows, nil +} + +// GetMessagesCount returns count of GetMessages +func (db *Db) GetMessagesCount(address string, startHeight int64, endHeight int64) (int, error) { + + stmt, err := db.Sqlx.Prepare(fmt.Sprintf(`SELECT count(height) + FROM message + WHERE involved_accounts_addresses @> '{%s}' AND height >= %d AND height <= %d`, address, startHeight, endHeight)) + if err != nil { + return 0, err + } + + var count int + err = stmt.QueryRow().Scan(&count) + + if err != nil { + return 0, err + } + return count, nil +} diff --git a/database/schema/12-wasm.sql b/database/schema/12-wasm.sql index 869272ea..2eb0ddda 100644 --- a/database/schema/12-wasm.sql +++ b/database/schema/12-wasm.sql @@ -41,6 +41,8 @@ CREATE TABLE wasm_contract height BIGINT NOT NULL ); CREATE INDEX wasm_contract_height_index ON wasm_contract (height); +CREATE INDEX wasm_contract_creator_index ON wasm_contract (creator); +CREATE INDEX wasm_contract_label_index ON wasm_contract (label); CREATE TABLE wasm_execute_contract ( @@ -48,9 +50,13 @@ CREATE TABLE wasm_execute_contract contract_address TEXT NOT NULL REFERENCES wasm_contract (contract_address), raw_contract_message JSONB NOT NULL DEFAULT '{}'::JSONB, funds COIN[] NOT NULL DEFAULT '{}', + message_type TEXT NULL, data TEXT NULL, executed_at TIMESTAMP NOT NULL, - height BIGINT NOT NULL + height BIGINT NOT NULL, + hash TEXT NOT NULL ); CREATE INDEX execute_contract_height_index ON wasm_execute_contract (height); +CREATE INDEX execute_contract_executed_at_index ON wasm_execute_contract (executed_at); +CREATE INDEX execute_contract_message_type_index ON wasm_execute_contract (message_type); \ No newline at end of file diff --git a/database/schema/13-wasm-events.sql b/database/schema/13-wasm-events.sql new file mode 100644 index 00000000..be0b3b14 --- /dev/null +++ b/database/schema/13-wasm-events.sql @@ -0,0 +1,13 @@ +CREATE TABLE wasm_execute_contract_event_types +( + contract_address TEXT NOT NULL REFERENCES wasm_contract (contract_address), + event_type TEXT NOT NULL, + + first_seen_height BIGINT NOT NULL REFERENCES block (height), + first_seen_hash TEXT NOT NULL, + + last_seen_height BIGINT NOT NULL REFERENCES block (height), + last_seen_hash TEXT NOT NULL, + UNIQUE (contract_address, event_type) +); +CREATE INDEX wasm_execute_contract_event_types_index ON wasm_execute_contract_event_types (contract_address, event_type); diff --git a/database/schema/14-nyx-nym-mixnet-v1.sql b/database/schema/14-nyx-nym-mixnet-v1.sql new file mode 100644 index 00000000..a8550c58 --- /dev/null +++ b/database/schema/14-nyx-nym-mixnet-v1.sql @@ -0,0 +1,82 @@ +CREATE TABLE nyx_nym_mixnet_v1_mixnode +( + identity_key TEXT UNIQUE PRIMARY KEY, + last_is_bonded_status BOOLEAN NULL, + + -- values: in_active_set, in_standby_set, inactive + last_mixnet_status TEXT NULL +); +CREATE INDEX nyx_nym_mixnet_v1_mixnode_status_index ON nyx_nym_mixnet_v1_mixnode (last_mixnet_status); + +CREATE TABLE nyx_nym_mixnet_v1_mixnode_status +( + -- values: in_active_set, in_standby_set, inactive + mixnet_status TEXT NOT NULL, + + -- in the range 0 to 100 + routing_score INTEGER NOT NULL, + + identity_key TEXT NOT NULL REFERENCES nyx_nym_mixnet_v1_mixnode (identity_key), + executed_at TIMESTAMP NOT NULL, + height BIGINT NOT NULL REFERENCES block (height), + hash TEXT NOT NULL +); +CREATE INDEX nyx_nm_v1_m_status_height_index ON nyx_nym_mixnet_v1_mixnode_status (height); +CREATE INDEX nyx_nm_v1_m_identity_key_index ON nyx_nym_mixnet_v1_mixnode_status (identity_key); + +CREATE TABLE nyx_nym_mixnet_v1_mixnode_events +( + -- values: bond, unbond, delegate, undelegate, claim + event_kind TEXT NOT NULL, + -- values: mixnode_operator, mixnode_delegator, mixnet_rewarding, mixnet_monitoring + actor TEXT NOT NULL, + sender TEXT NOT NULL, + proxy TEXT NULL, + identity_key TEXT NOT NULL REFERENCES nyx_nym_mixnet_v1_mixnode (identity_key), + executed_at TIMESTAMP NOT NULL, + height BIGINT NOT NULL REFERENCES block (height), + hash TEXT NOT NULL, + message_index BIGINT NOT NULL +); +CREATE INDEX nyx_nm_v1_me_height_index ON nyx_nym_mixnet_v1_mixnode_events (identity_key, height); +CREATE INDEX nyx_nm_v1_me_identity_key_executed_at_index ON nyx_nym_mixnet_v1_mixnode_events (identity_key, executed_at); + +CREATE TABLE nyx_nym_mixnet_v1_mixnode_reward +( + identity_key TEXT NOT NULL REFERENCES nyx_nym_mixnet_v1_mixnode (identity_key), + total_node_reward COIN[] NOT NULL DEFAULT '{}', + total_delegations COIN[] NOT NULL DEFAULT '{}', + operator_reward COIN[] NOT NULL DEFAULT '{}', + unit_delegator_reward BIGINT NOT NULL, + apy FLOAT NOT NULL, + executed_at TIMESTAMP NOT NULL, + height BIGINT NOT NULL REFERENCES block (height), + hash TEXT NOT NULL, + message_index BIGINT NOT NULL, + UNIQUE (identity_key, height, hash, message_index) +); +CREATE INDEX nyx_nm_v1_mr_height_index ON nyx_nym_mixnet_v1_mixnode_reward (height); +CREATE INDEX nyx_nm_v1_mr_identity_key_index ON nyx_nym_mixnet_v1_mixnode_reward (identity_key); + +CREATE TABLE nyx_nym_mixnet_v1_gateway +( + identity_key TEXT UNIQUE PRIMARY KEY, + last_is_bonded_status BOOLEAN NULL +); + +CREATE TABLE nyx_nym_mixnet_v1_gateway_events +( + -- values: bond, unbond + event_kind TEXT NOT NULL, + sender TEXT NOT NULL, + proxy TEXT NULL, + identity_key TEXT NOT NULL REFERENCES nyx_nym_mixnet_v1_gateway (identity_key), + executed_at TIMESTAMP NOT NULL, + height BIGINT NOT NULL REFERENCES block (height), + hash TEXT NOT NULL, + message_index BIGINT NOT NULL +); +CREATE INDEX nyx_nm_v1_ge_height_index ON nyx_nym_mixnet_v1_gateway_events (identity_key, height); +CREATE INDEX nyx_nm_v1_ge_identity_key_executed_at_index ON nyx_nym_mixnet_v1_gateway_events (identity_key, executed_at); + + diff --git a/database/schema/15-nyx-nym-mixnet-v2.sql b/database/schema/15-nyx-nym-mixnet-v2.sql new file mode 100644 index 00000000..486b4f68 --- /dev/null +++ b/database/schema/15-nyx-nym-mixnet-v2.sql @@ -0,0 +1,67 @@ +CREATE TABLE nyx_nym_mixnet_v2_mixnode +( + mix_id BIGINT UNIQUE PRIMARY KEY, + + -- the identity key may be null, because a tx/event with only the mix_id might be processed out of order + identity_key TEXT NULL, + + last_is_bonded_status BOOLEAN NULL, + + -- values: in_active_set, in_standby_set, inactive + last_mixnet_status TEXT NULL +); +CREATE INDEX nyx_nm_v2_m_status_index ON nyx_nym_mixnet_v2_mixnode (last_mixnet_status); +CREATE INDEX nyx_nm_v2_m_identity_key_index ON nyx_nym_mixnet_v2_mixnode (identity_key); + +CREATE TABLE nyx_nym_mixnet_v2_mixnode_status +( + -- values: in_active_set, in_standby_set, inactive + mixnet_status TEXT NOT NULL, + + -- in the range 0 to 1 + routing_score DECIMAL NOT NULL, + + mix_id BIGINT NOT NULL REFERENCES nyx_nym_mixnet_v2_mixnode (mix_id), + executed_at TIMESTAMP NOT NULL, + height BIGINT NOT NULL REFERENCES block (height), + hash TEXT NOT NULL +); +CREATE INDEX nyx_nm_v2_ms_status_height_index ON nyx_nym_mixnet_v2_mixnode_status (height); +CREATE INDEX nyx_nm_v2_ms_executed_at_index ON nyx_nym_mixnet_v2_mixnode_status (executed_at); + +CREATE TABLE nyx_nym_mixnet_v2_events +( + -- values: bond, unbond, delegate, undelegate, claim + event_kind TEXT NOT NULL, + -- values: mixnode_operator, mixnode_delegator, mixnet_rewarding, mixnet_monitoring, gateway_operator + actor TEXT NOT NULL, + sender TEXT NOT NULL, + proxy TEXT NULL, + mix_id BIGINT NULL REFERENCES nyx_nym_mixnet_v2_mixnode (mix_id), + identity_key TEXT NOT NULL, + executed_at TIMESTAMP NOT NULL, + height BIGINT NOT NULL REFERENCES block (height), + hash TEXT NOT NULL, + message_index BIGINT NOT NULL +); +CREATE INDEX nyx_nm_v2_e_height_index ON nyx_nym_mixnet_v2_events (mix_id, height); +CREATE INDEX nyx_nm_v2_e_executed_at_index ON nyx_nym_mixnet_v2_events (mix_id, executed_at); +CREATE INDEX nyx_nm_v2_e_identity_key_executed_at_index ON nyx_nym_mixnet_v2_events (identity_key, executed_at); + +CREATE TABLE nyx_nym_mixnet_v2_mixnode_reward +( + mix_id BIGINT NOT NULL REFERENCES nyx_nym_mixnet_v2_mixnode (mix_id), + operator_reward COIN[] NOT NULL DEFAULT '{}', + delegates_reward COIN[] NOT NULL DEFAULT '{}', + prior_delegates COIN[] NOT NULL DEFAULT '{}', + prior_unit_reward BIGINT NOT NULL, + apy FLOAT NOT NULL, + epoch BIGINT NOT NULL, + executed_at TIMESTAMP NOT NULL, + height BIGINT NOT NULL REFERENCES block (height), + hash TEXT NOT NULL, + message_index BIGINT NOT NULL, + UNIQUE (mix_id, height, hash, message_index) +); +CREATE INDEX nyx_nm_v2_mr_height_index ON nyx_nym_mixnet_v2_mixnode_reward (mix_id, height); +CREATE INDEX nyx_nm_v2_mr_executed_at_index ON nyx_nym_mixnet_v2_mixnode_reward (mix_id, executed_at); \ No newline at end of file diff --git a/database/types/messages.go b/database/types/messages.go new file mode 100644 index 00000000..2982b2a6 --- /dev/null +++ b/database/types/messages.go @@ -0,0 +1,54 @@ +package types + +import ( + "encoding/json" + "github.com/lib/pq" +) + +type MessageRow struct { + TxHash string `db:"transaction_hash"` + Index int `db:"index"` + Type string `db:"type"` + Value string `db:"value"` + Aliases pq.StringArray `db:"involved_accounts_addresses"` + Height int64 `db:"height"` +} + +type MessageWithValueRow struct { + TxHash string `json:"transaction_hash"` + Index int `json:"index"` + Type string `json:"type"` + Value interface{} `json:"value"` + Funds interface{} `json:"funds"` + Aliases pq.StringArray `json:"involved_accounts_addresses"` + Height int64 `json:"height"` +} + +func NewMessageWithValueRow(row MessageRow) (*MessageWithValueRow, error) { + var value map[string]interface{} + err := json.Unmarshal([]byte(row.Value), &value) + if err != nil { + return nil, err + } + + var funds interface{} + + if value["funds"] != nil { + funds = value["funds"] + } + if value["amount"] != nil { + funds = value["amount"] + } + + var rowWithValue = MessageWithValueRow{ + TxHash: row.TxHash, + Index: row.Index, + Type: row.Type, + Value: value, + Funds: funds, + Aliases: row.Aliases, + Height: row.Height, + } + + return &rowWithValue, nil +} diff --git a/database/types/wasm.go b/database/types/wasm.go index 8a075716..4fc5147c 100644 --- a/database/types/wasm.go +++ b/database/types/wasm.go @@ -153,7 +153,7 @@ func (a WasmContractRow) Equals(b WasmContractRow) bool { a.CodeID == b.CodeID && a.Label == b.Label && a.RawContractMessage == b.RawContractMessage && - a.Funds.Equal(a.Funds) && + a.Funds.Equal(b.Funds) && a.ContractAddress == b.ContractAddress && a.Data == b.Data && a.InstantiatedAt == b.InstantiatedAt && @@ -172,6 +172,7 @@ type WasmExecuteContractRow struct { Data string `db:"data"` ExecutedAt time.Time `db:"executed_at"` Height int64 `db:"height"` + Hash string `db:"hash"` } // NewWasmExecuteContractRow allows to easily create a new WasmExecuteContractRow @@ -183,6 +184,7 @@ func NewWasmExecuteContractRow( data string, executedAt time.Time, height int64, + hash string, ) WasmExecuteContractRow { return WasmExecuteContractRow{ Sender: sender, @@ -192,6 +194,7 @@ func NewWasmExecuteContractRow( Data: data, ExecutedAt: executedAt, Height: height, + Hash: hash, } } @@ -200,8 +203,54 @@ func (a WasmExecuteContractRow) Equals(b WasmExecuteContractRow) bool { return a.Sender == b.Sender && a.ContractAddress == b.ContractAddress && a.RawContractMessage == b.RawContractMessage && - a.Funds.Equal(a.Funds) && + a.Funds.Equal(b.Funds) && a.Data == b.Data && a.ExecutedAt == b.ExecutedAt && - a.Height == b.Height + a.Height == b.Height && + a.Hash == b.Hash +} + +// ===================== Execute Contract Event ===================== + +// WasmExecuteContractRow represents a single row inside the "wasm_execute_contract" table +type WasmExecuteContractEventRow struct { + Sender string `db:"sender"` + ContractAddress string `db:"contract_address"` + EventType string `db:"event_type"` + Attributes string `db:"attributes"` + ExecutedAt time.Time `db:"executed_at"` + Height int64 `db:"height"` + Hash string `db:"hash"` +} + +// NewWasmExecuteContractEventRow allows to easily create a new WasmExecuteContractEventRow +func NewWasmExecuteContractEventRow( + sender string, + contractAddress string, + eventType string, + attributes string, + executedAt time.Time, + height int64, + hash string, +) WasmExecuteContractEventRow { + return WasmExecuteContractEventRow{ + Sender: sender, + ContractAddress: contractAddress, + EventType: eventType, + Attributes: attributes, + ExecutedAt: executedAt, + Height: height, + Hash: hash, + } +} + +// Equals return true if one WasmExecuteContractEventRow representing the same row as the original one +func (a WasmExecuteContractEventRow) Equals(b WasmExecuteContractEventRow) bool { + return a.Sender == b.Sender && + a.ContractAddress == b.ContractAddress && + a.EventType == b.EventType && + a.Attributes == b.Attributes && + a.ExecutedAt == b.ExecutedAt && + a.Height == b.Height && + a.Hash == b.Hash } diff --git a/database/wasm.go b/database/wasm.go index d91c6975..7d3e3b00 100644 --- a/database/wasm.go +++ b/database/wasm.go @@ -6,6 +6,7 @@ import ( dbtypes "github.com/forbole/bdjuno/v3/database/types" dbutils "github.com/forbole/bdjuno/v3/database/utils" "github.com/forbole/bdjuno/v3/types" + juno "github.com/forbole/juno/v3/types" "github.com/lib/pq" ) @@ -141,6 +142,13 @@ VALUES ` return nil } +// GetWasmContractExists returns all the wasm contracts matching an address that are currently stored inside the database. +func (db *Db) GetWasmContractExists(contractAddress string) (bool, error) { + var count int + err := db.Sqlx.Select(&count, `SELECT count(contract_address) FROM wasm_contract WHERE contract_address = '`+contractAddress+`'`) + return count > 0, err +} + // SaveWasmExecuteContract allows to store the wasm contract func (db *Db) SaveWasmExecuteContract(wasmExecuteContract types.WasmExecuteContract) error { return db.SaveWasmExecuteContracts([]types.WasmExecuteContract{wasmExecuteContract}) @@ -148,7 +156,7 @@ func (db *Db) SaveWasmExecuteContract(wasmExecuteContract types.WasmExecuteContr // SaveWasmContracts allows to store the wasm contract slice func (db *Db) SaveWasmExecuteContracts(executeContracts []types.WasmExecuteContract) error { - paramsNumber := 7 + paramsNumber := 8 slices := dbutils.SplitWasmExecuteContracts(executeContracts, paramsNumber) for _, contracts := range slices { @@ -168,17 +176,17 @@ func (db *Db) SaveWasmExecuteContracts(executeContracts []types.WasmExecuteContr func (db *Db) saveWasmExecuteContracts(paramNumber int, executeContracts []types.WasmExecuteContract) error { stmt := ` INSERT INTO wasm_execute_contract -(sender, contract_address, raw_contract_message, funds, data, executed_at, height) +(sender, contract_address, raw_contract_message, funds, data, executed_at, height, hash, message_type) VALUES ` var args []interface{} for i, executeContract := range executeContracts { ii := i * paramNumber - stmt += fmt.Sprintf("($%d, $%d, $%d, $%d, $%d, $%d, $%d),", - ii+1, ii+2, ii+3, ii+4, ii+5, ii+6, ii+7) + stmt += fmt.Sprintf("($%d, $%d, $%d, $%d, $%d, $%d, $%d, $%d, $%d),", + ii+1, ii+2, ii+3, ii+4, ii+5, ii+6, ii+7, ii+8, ii+9) args = append(args, executeContract.Sender, executeContract.ContractAddress, string(executeContract.RawContractMsg), - pq.Array(dbtypes.NewDbCoins(executeContract.Funds)), executeContract.Data, executeContract.ExecutedAt, executeContract.Height) + pq.Array(dbtypes.NewDbCoins(executeContract.Funds)), executeContract.Data, executeContract.ExecutedAt, executeContract.Height, executeContract.Hash, executeContract.MessageType) } stmt = stmt[:len(stmt)-1] // Remove trailing "," @@ -193,6 +201,35 @@ VALUES ` return nil } +// SaveWasmExecuteContractEvents allows to store the wasm contract events +func (db *Db) SaveWasmExecuteContractEvents(executeContract types.WasmExecuteContract, tx *juno.Tx) error { + stmt := ` +INSERT INTO wasm_execute_contract_event_types +(contract_address, +event_type, +first_seen_height, +first_seen_hash, +last_seen_height, +last_seen_hash) +VALUES ($1, $2, $3, $4, $3, $4) +ON CONFLICT (contract_address, event_type) DO UPDATE +SET (last_seen_height, last_seen_hash) = (EXCLUDED.last_seen_height, EXCLUDED.last_seen_hash); +` + + for _, txLog := range tx.Logs { + for _, event := range txLog.Events { + + _, err := db.Sql.Exec(stmt, executeContract.ContractAddress, event.Type, + executeContract.Height, tx.TxHash) + if err != nil { + return fmt.Errorf("error while saving wasm execute contracts: %s", err) + } + } + } + + return nil +} + func (db *Db) UpdateContractWithMsgMigrateContract( sender string, contractAddress string, codeID uint64, rawContractMsg []byte, data string, ) error { diff --git a/go.mod b/go.mod index 1a999a06..3644d76f 100644 --- a/go.mod +++ b/go.mod @@ -4,14 +4,15 @@ go 1.17 require ( github.com/CosmWasm/wasmd v0.22.0 - github.com/comdex-official/comdex v0.1.1 github.com/cosmos/cosmos-sdk v0.45.3 github.com/cosmos/gaia/v6 v6.0.4 github.com/forbole/juno/v3 v3.3.1-0.20220803134534-55af63c839ac github.com/go-co-op/gocron v1.16.1 github.com/gogo/protobuf v1.3.3 + github.com/invopop/jsonschema v0.7.0 github.com/jmoiron/sqlx v1.3.5 github.com/lib/pq v1.10.6 + github.com/ohler55/ojg v1.14.5 github.com/pelletier/go-toml v1.9.5 github.com/prometheus/client_golang v1.12.2 github.com/proullon/ramsql v0.0.0-20181213202341-817cee58a244 @@ -81,6 +82,7 @@ require ( github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 // indirect + github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0 // indirect github.com/improbable-eng/grpc-web v0.14.1 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect @@ -137,7 +139,7 @@ require ( ) replace ( - github.com/comdex-official/comdex => github.com/huichiaotsou/comdex v0.1.1-exportkeepers-a + github.com/CosmWasm/wasmd => github.com/mmsinclair/wasmd v0.22.1 github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.45.1 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/tendermint/tendermint => github.com/forbole/tendermint v0.34.13-0.20210820072129-a2a4af55563d diff --git a/go.sum b/go.sum index 0cc4b466..5f7516f1 100644 --- a/go.sum +++ b/go.sum @@ -17,14 +17,6 @@ cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmW cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -34,7 +26,6 @@ cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM7 cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -66,21 +57,14 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= -github.com/CosmWasm/wasmd v0.22.0 h1:6Bn2DDjHvLwZJkYXL+/PRQ9bSll0ReX2IZqRt/BQkhg= -github.com/CosmWasm/wasmd v0.22.0/go.mod h1:kNDnMAQDJyVek9k6SxCNijMCzOROzzUGBRT8r/vr7oY= github.com/CosmWasm/wasmvm v1.0.0-beta5 h1:38M8z89LB5cFMYB5vfjewMzz9Pr8TB1QBHdjnrWnkas= github.com/CosmWasm/wasmvm v1.0.0-beta5/go.mod h1:mtwKxbmsko1zdwpaKiRkRwxijMmIAtnLaX5/UT2nPFk= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= -github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= -github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= @@ -93,7 +77,6 @@ github.com/Workiva/go-datastructures v1.0.53/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t github.com/Zilliqa/gozilliqa-sdk v1.2.1-0.20201201074141-dd0ecada1be6/go.mod h1:eSYp2T6f0apnuW8TzhV3f6Aff2SE8Dwio++U4ha4yEM= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -111,18 +94,11 @@ github.com/armon/go-metrics v0.3.9/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4 github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8Uo= github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.25.48/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= -github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o= -github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= -github.com/bandprotocol/bandchain-packet v0.0.2/go.mod h1:pk/wJxznWERdDVU2WWpzt8Tr0WvDSkT66JDYVdIECAo= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -153,11 +129,8 @@ github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg 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/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= -github.com/casbin/casbin/v2 v2.37.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= @@ -169,14 +142,9 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= -github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/cloudflare/cloudflare-go v0.10.2-0.20190916151808-a80f83b9add9/go.mod h1:1MxXX1Ux4x6mqPmjkUgTP1CdXIBXKX7T+Jk9Gxrmx+U= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211130200136-a8f946100490/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/rosetta-sdk-go v0.7.0 h1:lmTO/JEpCvZgpbkOITL95rA80CPKb5CtMzLaqF2mCNg= @@ -211,8 +179,6 @@ github.com/cosmos/gorocksdb v1.2.0/go.mod h1:aaKvKItm514hKfNJpUJXnnOWeBnk2GL4+Qw github.com/cosmos/iavl v0.15.3/go.mod h1:OLjQiAQ4fGD2KDZooyJG9yz+p2ao2IAYSbke8mVvSA4= github.com/cosmos/iavl v0.17.3 h1:s2N819a2olOmiauVa0WAhoIJq9EhSXE9HDBAoR9k+8Y= github.com/cosmos/iavl v0.17.3/go.mod h1:prJoErZFABYZGDHka1R6Oay4z9PrNeFFiMKHDAMOi4w= -github.com/cosmos/ibc-go v1.0.0/go.mod h1:2wHKQUa+BLJMEyN635KrHfmTTwSNHBtXcqdY8JWGuXA= -github.com/cosmos/ibc-go/v2 v2.0.2/go.mod h1:XUmW7wmubCRhIEAGtMGS+5IjiSSmcAwihoN/yPGd6Kk= github.com/cosmos/ibc-go/v2 v2.2.0 h1:nqpvElI9ku5oQZtKvLerhZ/UXH7QoL44VBTWwZkS4C8= github.com/cosmos/ibc-go/v2 v2.2.0/go.mod h1:rAHRlBcRiHPP/JszN+08SJx3pegww9bcVncIb9QLx7I= github.com/cosmos/ledger-cosmos-go v0.11.1 h1:9JIYsGnXP613pb2vPjFeMMjBI5lEDsEaF6oYorTy6J4= @@ -262,9 +228,7 @@ github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFP github.com/edsrzf/mmap-go v0.0.0-20160512033002-935e0e8a636c/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.10.1/go.mod h1:AY7fTTXNdv/aJ2O5jwpxAPOWUZ7hQAEvzN5Pf27BkQQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.6.2/go.mod h1:2t7qjJNvHPx8IjnBOzl9E9/baC+qXE/TeeyBRzgJDws= github.com/ethereum/go-ethereum v1.9.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM= github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= @@ -274,14 +238,10 @@ github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870/go.mod h1:5tD+ne github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= github.com/fatih/color v1.3.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= -github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fjl/memsize v0.0.0-20180418122429-ca190fb6ffbc/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/forbole/juno/v3 v3.3.1-0.20220803134534-55af63c839ac h1:is7gg5MHsFxtc6laHCFaDGoG0L4viGD5CZO6T9Dw/TE= github.com/forbole/juno/v3 v3.3.1-0.20220803134534-55af63c839ac/go.mod h1:1QsroKkT/Q9gM2VA6mVGOp5/gqlJnrsAYIoVZ+B0wus= github.com/forbole/tendermint v0.34.13-0.20210820072129-a2a4af55563d h1:pUqGUgTUU24ibHeloQeg1F2pFbgQllddsuZ+x+CcUzw= @@ -289,7 +249,6 @@ github.com/forbole/tendermint v0.34.13-0.20210820072129-a2a4af55563d/go.mod h1:a github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/franela/goblin v0.0.0-20210519012713-85d372ac71e2/go.mod h1:VzmDKDJVZI3aJmnRI9VjAn9nJ8qPPsN1fqzr9dqInIo= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= 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= @@ -299,7 +258,6 @@ github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gin-gonic/gin v1.7.0 h1:jGB9xAJQ12AIGNB4HguylppmDK1Am9ppF7XnGXXJuoU= github.com/gin-gonic/gin v1.7.0/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= @@ -324,17 +282,9 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= -github.com/go-openapi/spec v0.20.3/go.mod h1:gG4F8wdEDN+YPBMVnzE85Rbhf+Th2DTvA9nFPQ5AYEg= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= @@ -346,7 +296,6 @@ github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfC github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= @@ -356,11 +305,8 @@ github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/E github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= github.com/gogo/gateway v1.1.0/go.mod h1:S7rR8FRQyG3QFESeSv4l2WnsyzlCLG0CzBbUUo/mbic= -github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= @@ -369,7 +315,6 @@ github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= @@ -419,7 +364,6 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/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/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= @@ -430,7 +374,6 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ 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= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -445,17 +388,12 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/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/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -496,27 +434,18 @@ github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uM github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= -github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= -github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v1.0.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -533,25 +462,17 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= -github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= -github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= -github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 h1:uUjLpLt6bVvZ72SQc/B4dXcPBw4Vgd7soowdRl52qEM= github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87/go.mod h1:XGsKKeXxeRr95aEOgipvluMPlgjr7dGlk9ZTWOjcUcg= github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo= -github.com/huichiaotsou/comdex v0.1.1-exportkeepers-a h1:ygGSXB+SQH3e2s+a9TYIT/DuefNqLouwIjyzEkjqFqA= -github.com/huichiaotsou/comdex v0.1.1-exportkeepers-a/go.mod h1:wYpKRpB9iWQdwDy7RxWtOtY41IYI18EzW+XuGV1BP48= github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0 h1:i462o439ZjprVSFSZLZxcsoAe592sZB1rci2Z8j4wdk= +github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0/go.mod h1:N0Wam8K1arqPXNWjMo21EXnBPOPp36vB07FNRdD2geA= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/improbable-eng/grpc-web v0.14.1 h1:NrN4PY71A6tAz2sKDvC5JCauENWp0ykG8Oq1H3cpFvw= @@ -560,7 +481,8 @@ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NH github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb v1.2.3-0.20180221223340-01288bdb0883/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/invopop/jsonschema v0.7.0 h1:2vgQcBz1n256N+FpX3Jq7Y17AjYt46Ig3zIWyy770So= +github.com/invopop/jsonschema v0.7.0/go.mod h1:O9uiLokuu0+MGFlyiaqtWxwqJm41/+8Nj0lD7A36YH0= github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -568,14 +490,11 @@ github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJS github.com/jhump/protoreflect v1.9.0 h1:npqHz788dryJiR/l6K/RUQAyh2SwV91+d1dnh4RjO9w= github.com/jhump/protoreflect v1.9.0/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -592,7 +511,6 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.1.1-0.20170430222011-975b5c4c7c21/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d/go.mod h1:JJNrCn9otv/2QP4D7SMJBgaleKpOf66PnW6F5WGNRIc= @@ -602,7 +520,6 @@ github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6 github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -616,13 +533,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/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.0.2 h1:QNK2iAFa8gjAe1SPz6mHSMuCcjs+X1wlHzeOSqcmlfs= @@ -630,20 +545,13 @@ github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoR github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lucasjones/reggen v0.0.0-20180717132126-cdb49ff09d77/go.mod h1:5ELEyG+X8f+meRWHuqUOewBOhvHkl7M76pdGEansxW4= -github.com/lyft/protoc-gen-star v0.5.3/go.mod h1:V0xaHgaf5oCCqmcxYcWiDfTiKsZsRc87/1qhoTACD8w= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= @@ -651,10 +559,6 @@ github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HN github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= @@ -666,16 +570,12 @@ github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 h1:hLDRPB66XQT/8+wG9WsDpiCvZf1yKO7sz7scAjSlBa0= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -689,6 +589,8 @@ github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mmsinclair/wasmd v0.22.1 h1:pFoCTyA0XRaJGjMH8a6EOXt+bVhwFBLuByQMiTacEHg= +github.com/mmsinclair/wasmd v0.22.1/go.mod h1:kNDnMAQDJyVek9k6SxCNijMCzOROzzUGBRT8r/vr7oY= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -706,16 +608,10 @@ github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q= -github.com/nats-io/jwt/v2 v2.0.3/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SEcNiGlY= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= -github.com/nats-io/nats-server/v2 v2.5.0/go.mod h1:Kj86UtrXAL6LwYRA6H4RqzkHhK0Vcv2ZnKD5WbQ1t3g= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nats.go v1.12.1/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= -github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/neilotoole/errgroup v0.1.5/go.mod h1:Q2nLGf+594h0CLBs/Mbg6qOr7GtqDK7C2S41udRnToE= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= @@ -724,6 +620,8 @@ github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/ohler55/ojg v1.14.5 h1:xCX2oyh/ZaoesbLH6fwVHStSJpk4o4eJs8ttXutzdg0= +github.com/ohler55/ojg v1.14.5/go.mod h1:7Ghirupn8NC8hSSDpI0gcjorPxj+vSVIONDWfliHR1k= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= @@ -751,12 +649,10 @@ github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE= github.com/otiai10/copy v1.6.0 h1:IinKAryFFuPONZ7cm6T6E2QX/vcJwSnlaA5lfoaXIiQ= github.com/otiai10/copy v1.6.0/go.mod h1:XWfuS3CrI0R6IE0FbgHsEazaXO8G0LpMp9o8tos0x4E= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= @@ -775,7 +671,6 @@ github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/performancecopilot/speed/v4 v4.0.0/go.mod h1:qxrSyuDGrTOWfV+uKRFhfxw6h/4HXRGUiZiufxo49BM= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= @@ -791,7 +686,6 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= @@ -801,7 +695,6 @@ github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3O github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.0/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -822,7 +715,6 @@ github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16 github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -857,34 +749,29 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/cors v0.0.0-20160617231935-a62a804a8a00/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.8.0/go.mod h1:EBwu+T5AvHOcXwvZIkQFjUN6s8Czyqw12GL/Y0tUyRM= github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xhandler v0.0.0-20160618193221-ed27b6fd6521/go.mod h1:RvLn4FgxWubrpZHtQLnOf6EwhN2hEMusxZOhcW9H3UQ= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.23.0/go.mod h1:6c7hFfxPOy7TacJc4Fcdi24/J0NKYGzjG8FWRI916Qo= -github.com/rs/zerolog v1.26.0/go.mod h1:yBiM87lvSqX8h0Ww4sdzNSkVYZ8dL2xjZJG1lAuGZEo= github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sagikazarmark/crypt v0.4.0/go.mod h1:ALv2SRj7GxYV4HO9elxH9nS6M9gW+xDNxqmyJ6RfDFM= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa h1:0U2s5loxrTy6/VgfVoLuVLFJcURKLH49ie0zSch7gh4= github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= github.com/shirou/gopsutil v2.20.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= 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= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4= @@ -894,7 +781,6 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= @@ -904,7 +790,6 @@ github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= @@ -918,7 +803,6 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.0/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.10.1 h1:nuJZuYpG7gTj/XqiUwg8bA0cp1+M2mC3J4g5luUYBKk= github.com/spf13/viper v1.10.1/go.mod h1:IGlFPqhNAPKRxohIzWpI5QEy4kuI7tcl5WvR+8qy1rU= @@ -929,9 +813,7 @@ github.com/strangelove-ventures/packet-forward-middleware v1.0.1 h1:R7UXkwFgO8HJ github.com/strangelove-ventures/packet-forward-middleware v1.0.1/go.mod h1:H/stKEvKrp78FGipAy45rSOIzrgebEi2aAnE0ww45Fg= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= -github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -939,6 +821,7 @@ github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= 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.3.1-0.20190311161405-34c6fa2dc709/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -948,7 +831,6 @@ github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PK github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/swaggo/swag v1.7.4/go.mod h1:zD8h6h4SPv7t3l+4BKdRquqW1ASWjKZgT6Qv9z3kNqI= github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= @@ -961,7 +843,6 @@ github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2l github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= github.com/tendermint/tm-db v0.6.3/go.mod h1:lfA1dL9/Y/Y8wwyPp2NMLyn5P5Ptr/gvDFNWtrCWSf8= github.com/tendermint/tm-db v0.6.4/go.mod h1:dptYhIpJ2M5kUuenLr+Yyf3zQOv1SgBZcl8/BmWlMBw= -github.com/tendermint/tm-db v0.6.6/go.mod h1:wP8d49A85B7/erz/r4YbKssKw6ylsO/hKtFk7E1aWZI= github.com/tendermint/tm-db v0.6.7 h1:fE00Cbl0jayAoqlExN6oyQJ7fR/ZtoVOmvPJ//+shu8= github.com/tendermint/tm-db v0.6.7/go.mod h1:byQDzFkZV1syXr/ReXS808NxA2xvyuuVgXOJ/088L6I= github.com/tidwall/gjson v1.6.7/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= @@ -982,7 +863,6 @@ github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/vmihailenco/msgpack/v5 v5.1.4/go.mod h1:C5gboKD0TJPqWDTVTtrQNfRbiBwHZGo8UTqP/9/XvLI= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees= @@ -994,7 +874,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/zondax/hid v0.9.0 h1:eiT3P6vNxAEVxXMw66eZUAAnU2zD33JBkfG/EnfAKl8= github.com/zondax/hid v0.9.0/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -1004,12 +883,8 @@ go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.etcd.io/etcd/client/v2 v2.305.1/go.mod h1:pMEacxZW7o8pg4CrFE7pquyCJJzZvkvdD2RibOCCCGs= -go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -1019,22 +894,17 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= 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-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1046,26 +916,18 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210915214749-c084706c2272/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292 h1:f+lwQ+GtmgoY+A2YaQxlSOnDjXcQ7ZRLWOHbC6HtRqE= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/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= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= @@ -1077,7 +939,6 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -1104,7 +965,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1126,8 +986,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1154,15 +1012,8 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211005001312-d4b1ae081e3b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211208012354-db4efeb81f4b h1:MWaHNqZy3KTpuTMAGvv+Kw+ylsEpmyJZizz1dqxnu28= golang.org/x/net v0.0.0-20211208012354-db4efeb81f4b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1178,11 +1029,6 @@ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1205,7 +1051,6 @@ golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1216,14 +1061,10 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1233,7 +1074,6 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1263,7 +1103,6 @@ golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1271,22 +1110,10 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158 h1:rm+CHSpPEEW2IsXUib1ThaHIjuBVZjxNgSKmBLFfD4c= @@ -1308,11 +1135,7 @@ golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxb 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= -golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1325,7 +1148,6 @@ golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1372,19 +1194,12 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= 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= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= 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= @@ -1408,17 +1223,6 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= -google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1473,34 +1277,13 @@ google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211028162531-8db9c33dc351/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211223182754-3ac035c7e7cb h1:ZrsicilzPCS/Xr8qtBZZLpy4P9TYXAfl49ctG1/5tgw= google.golang.org/genproto v0.0.0-20211223182754-3ac035c7e7cb/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1520,15 +1303,12 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks 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= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -1552,7 +1332,6 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -1567,9 +1346,7 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= 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= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/hasura/Dockerfile b/hasura/Dockerfile new file mode 100644 index 00000000..8726947f --- /dev/null +++ b/hasura/Dockerfile @@ -0,0 +1,5 @@ +FROM node:16 + +COPY docker-entrypoint.sh /bin/docker-entrypoint.sh +RUN chmod +x /bin/docker-entrypoint.sh +ENTRYPOINT ["/bin/docker-entrypoint.sh"] \ No newline at end of file diff --git a/hasura/docker-entrypoint.sh b/hasura/docker-entrypoint.sh new file mode 100644 index 00000000..cc64955a --- /dev/null +++ b/hasura/docker-entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -e + +npm install --global hasura-cli + +cd hasura/metadata +hasura metadata apply --endpoint http://hasura:8080 --skip-update-check --admin-secret $HASURA_ADMIN_SECRET \ No newline at end of file diff --git a/hasura/metadata/actions.graphql b/hasura/metadata/actions.graphql index 6a034607..f370d50c 100644 --- a/hasura/metadata/actions.graphql +++ b/hasura/metadata/actions.graphql @@ -1,81 +1,123 @@ type Query { - action_account_balance( - address: String! - height: Int - ): ActionBalance - - action_delegation_reward( - address: String! - height: Int - ): [ActionDelegationReward] - - action_delegator_withdraw_address( - address: String! - ): ActionAddress! - - action_delegation( - address: String! - height: Int - offset: Int - limit: Int - count_total: Boolean - ): ActionDelegationResponse - - action_delegation_total( - address: String! - height: Int - ): ActionBalance - - action_redelegation( - address: String! - height: Int - offset: Int - limit: Int - count_total: Boolean - ): ActionRedelegationResponse - - action_unbonding_delegation( - address: String! - height: Int - offset: Int - limit: Int - count_total: Boolean - ): ActionUnbondingDelegationResponse - - action_unbonding_delegation_total( - address: String! - height: Int - ): ActionBalance - - action_validator_commission_amount( - address: String! - ): ActionValidatorCommissionAmount - - action_validator_delegations( - address: String! - offset: Int - limit: Int - count_total: Boolean - ): ActionDelegationResponse - - action_validator_redelegations_from( - address: String! - height: Int - offset: Int - limit: Int - count_total: Boolean - ): ActionRedelegationResponse - - action_validator_unbonding_delegations( - address: String! - offset: Int - limit: Int - count_total: Boolean - ): ActionUnbondingDelegationResponse + action_account_balance( + address: String! + height: Int + ): ActionBalance +} + +type Query { + action_delegation( + address: String! + height: Int + offset: Int + limit: Int + count_total: Boolean + ): ActionDelegationResponse +} + +type Query { + action_delegation_reward( + address: String! + height: Int + ): [ActionDelegationReward] +} + +type Query { + action_delegation_total( + address: String! + height: Int + ): ActionBalance +} + +type Query { + action_delegator_withdraw_address( + address: String! + ): ActionAddress! +} + +type Query { + action_messages( + address: String! + executedAtStart: String! + executedAtEnd: String! + offset: Int + limit: Int + ): [ActionMessages] +} + +type Query { + action_messages_count( + address: String! + executedAtStart: String! + executedAtEnd: String! + offset: Int + limit: Int + ): ActionMessagePaging! +} + +type Query { + action_redelegation( + address: String! + height: Int + offset: Int + limit: Int + count_total: Boolean + ): ActionRedelegationResponse +} + +type Query { + action_unbonding_delegation( + address: String! + height: Int + offset: Int + limit: Int + count_total: Boolean + ): ActionUnbondingDelegationResponse +} + +type Query { + action_unbonding_delegation_total( + address: String! + height: Int + ): ActionBalance +} + +type Query { + action_validator_commission_amount( + address: String! + ): ActionValidatorCommissionAmount +} + +type Query { + action_validator_delegations( + address: String! + offset: Int + limit: Int + count_total: Boolean + ): ActionDelegationResponse +} + +type Query { + action_validator_redelegations_from( + address: String! + height: Int + offset: Int + limit: Int + count_total: Boolean + ): ActionRedelegationResponse +} + +type Query { + action_validator_unbonding_delegations( + address: String! + offset: Int + limit: Int + count_total: Boolean + ): ActionUnbondingDelegationResponse } type ActionBalance { - coins: [ActionCoin] + coins: [ActionCoin] } type ActionDelegationReward { @@ -84,32 +126,53 @@ type ActionDelegationReward { } type ActionAddress { - address: String! + address: String! } type ActionDelegationResponse { - delegations: [ActionDelegation] - pagination: ActionPagination + delegations: [ActionDelegation] + pagination: ActionPagination } type ActionRedelegationResponse { - redelegations: [ActionRedelegation] - pagination: ActionPagination + redelegations: [ActionRedelegation] + pagination: ActionPagination } type ActionUnbondingDelegationResponse { - unbonding_delegations: [ActionUnbondingDelegation] - pagination: ActionPagination + unbonding_delegations: [ActionUnbondingDelegation] + pagination: ActionPagination } type ActionValidatorCommissionAmount { - coins: [ActionCoin] + coins: [ActionCoin] +} + +type ActionMessages { + height: bigint! + index: bigint! + involved_accounts_addresses: [String!] + transaction_hash: String! + type: String! + value: jsonb + funds: [ActionCoin] +} + +type ActionMessagePaging { + offset: Int + limit: Int + total_count: Int } scalar ActionCoin + scalar ActionDelegation + scalar ActionEntry + scalar ActionPagination + scalar ActionRedelegation + scalar ActionUnbondingDelegation diff --git a/hasura/metadata/actions.yaml b/hasura/metadata/actions.yaml index ae45ad9a..1c644555 100644 --- a/hasura/metadata/actions.yaml +++ b/hasura/metadata/actions.yaml @@ -1,291 +1,156 @@ -############### ACTIONS ############### actions: - -##### Bank ##### -- name: action_account_balance - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/account_balance" - output_type: ActionBalance - arguments: - - name: address - type: String! - - name: height - type: Int - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -##### Staking / Delegatagor ##### -- name: action_delegation_reward - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/delegation_reward" - output_type: "[ActionDelegationReward]" - arguments: - - name: address - type: String! - - name: height - type: Int - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -- name: action_delegator_withdraw_address - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/delegator_withdraw_address" - output_type: ActionAddress - arguments: - - name: address - type: String! - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -- name: action_delegation - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/delegation" - output_type: ActionDelegationResponse - arguments: - - name: address - type: String! - - name: height - type: Int - - name: offset - type: Int - - name: limit - type: Int - - name: count_total - type: Boolean! - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -- name: action_delegation_total - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/delegation_total" - output_type: ActionBalance - arguments: - - name: address - type: String! - - name: height - type: Int - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -- name: action_redelegation - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/redelegation" - output_type: ActionRedelegationResponse - arguments: - - name: address - type: String! - - name: height - type: Int - - name: offset - type: Int - - name: limit - type: Int - - name: count_total - type: Boolean! - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -- name: action_unbonding_delegation - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/unbonding_delegation" - output_type: ActionUnbondingDelegationResponse - arguments: - - name: address - type: String! - - name: height - type: Int - - name: offset - type: Int - - name: limit - type: Int - - name: count_total - type: Boolean! - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -- name: action_unbonding_delegation_total - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/unbonding_delegation_total" - output_type: ActionBalance - arguments: - - name: address - type: String! - - name: height - type: Int - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -##### Staking / Validator ##### -- name: action_validator_commission_amount - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/validator_commission_amount" - output_type: "[ActionValidatorCommissionAmount]" - arguments: - - name: address - type: String! - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -- name: action_validator_delegations - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/validator_delegations" - output_type: ActionDelegationResponse - arguments: - - name: address - type: String! - - name: offset - type: Int - - name: limit - type: Int - - name: count_total - type: Boolean! - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -- name: action_validator_redelegations_from - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/validator_redelegations_from" - output_type: ActionRedelegationResponse - arguments: - - name: address - type: String! - - name: height - type: Int - - name: offset - type: Int - - name: limit - type: Int - - name: count_total - type: Boolean! - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -- name: action_validator_unbonding_delegations - definition: - kind: synchronous - handler: "{{ACTION_BASE_URL}}/validator_unbonding_delegations" - output_type: ActionUnbondingDelegationResponse - arguments: - - name: address - type: String! - - name: offset - type: Int - - name: limit - type: Int - - name: count_total - type: Boolean! - type: query - headers: - - value: application/json - name: Content-Type - permissions: - - role: anonymous - -############### CUSTOM TYPES ############### + - name: action_account_balance + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/account_balance' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_delegation + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/delegation' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_delegation_reward + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/delegation_reward' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_delegation_total + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/delegation_total' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_delegator_withdraw_address + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/delegator_withdraw_address' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_messages + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/messages' + comment: action_messages + - name: action_messages_count + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/messages/count' + comment: acount_messages_count + - name: action_redelegation + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/redelegation' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_unbonding_delegation + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/unbonding_delegation' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_unbonding_delegation_total + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/unbonding_delegation_total' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_validator_commission_amount + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/validator_commission_amount' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_validator_delegations + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/validator_delegations' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_validator_redelegations_from + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/validator_redelegations_from' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous + - name: action_validator_unbonding_delegations + definition: + kind: "" + handler: '{{ACTION_BASE_URL}}/validator_unbonding_delegations' + headers: + - name: Content-Type + value: application/json + permissions: + - role: anonymous custom_types: - scalars: - - name: ActionCoin - - name: ActionDelegation - - name: ActionEntry - - name: ActionPagination - - name: ActionRedelegation - - name: ActionUnbondingDelegation - + enums: [] + input_objects: [] objects: - - name: ActionBalance - fields: - - name: coins - type: [ActionCoin] - - - name: ActionDelegationReward - fields: - - name: coins - type: [ActionCoin] - - name: validator_address - type: String! - - - name: ActionDelegationResponse - fields: - - name: delegations - type: [ActionDelegation] - - name: pagination - type: ActionPagination - - - name: ActionAddress - fields: - - name: address - type: String! - - - name: ActionRedelegationResponse - fields: - - name: redelegations - type: [ActionRedelegation] - - name: pagination - type: ActionPagination - - - name: ActionUnbondingDelegationResponse - fields: - - name: unbonding_delegations - type: [ActionUnbondingDelegation] - - name: pagination - type: ActionPagination - - - name: ActionValidatorCommissionAmount - fields: - - name: coins - type: [ActionCoin] \ No newline at end of file + - name: ActionBalance + - name: ActionDelegationReward + - name: ActionAddress + - name: ActionDelegationResponse + - name: ActionRedelegationResponse + - name: ActionUnbondingDelegationResponse + - name: ActionValidatorCommissionAmount + - name: ActionMessages + relationships: + - field_mapping: + transaction_hash: hash + name: transaction + remote_table: + name: transaction + schema: public + source: bdjuno + type: object + - field_mapping: + height: height + name: block + remote_table: + name: block + schema: public + source: bdjuno + type: object + - name: ActionMessagePaging + scalars: + - name: ActionCoin + - name: ActionDelegation + - name: ActionEntry + - name: ActionPagination + - name: ActionRedelegation + - name: ActionUnbondingDelegation diff --git a/hasura/metadata/allow_list.yaml b/hasura/metadata/allow_list.yaml index fe51488c..4ef597ff 100644 --- a/hasura/metadata/allow_list.yaml +++ b/hasura/metadata/allow_list.yaml @@ -1 +1 @@ -[] +- collection: allowed-queries diff --git a/hasura/metadata/api_limits.yaml b/hasura/metadata/api_limits.yaml new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/hasura/metadata/api_limits.yaml @@ -0,0 +1 @@ +{} diff --git a/hasura/metadata/databases/bdjuno/tables/public_account.yaml b/hasura/metadata/databases/bdjuno/tables/public_account.yaml index f3954d25..609ef65a 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_account.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_account.yaml @@ -2,55 +2,76 @@ table: name: account schema: public object_relationships: -- name: vesting_account - using: - manual_configuration: - column_mapping: - address: address - insertion_order: null - remote_table: - name: vesting_account - schema: public + - name: vesting_account + using: + manual_configuration: + column_mapping: + address: address + insertion_order: null + remote_table: + name: vesting_account + schema: public array_relationships: -- name: proposal_deposits - using: - foreign_key_constraint_on: - column: depositor_address - table: - name: proposal_deposit - schema: public -- name: proposal_votes - using: - foreign_key_constraint_on: - column: voter_address - table: - name: proposal_vote - schema: public -- name: proposals - using: - foreign_key_constraint_on: - column: proposer_address - table: - name: proposal - schema: public -- name: validator_infos - using: - foreign_key_constraint_on: - column: self_delegate_address - table: - name: validator_info - schema: public -- name: vesting_accounts - using: - foreign_key_constraint_on: - column: address - table: - name: vesting_account - schema: public + - name: feeGrantAllowancesByGranterAddress + using: + foreign_key_constraint_on: + column: granter_address + table: + name: fee_grant_allowance + schema: public + - name: fee_grant_allowances + using: + foreign_key_constraint_on: + column: grantee_address + table: + name: fee_grant_allowance + schema: public + - name: proposal_deposits + using: + foreign_key_constraint_on: + column: depositor_address + table: + name: proposal_deposit + schema: public + - name: proposal_votes + using: + foreign_key_constraint_on: + column: voter_address + table: + name: proposal_vote + schema: public + - name: proposals + using: + foreign_key_constraint_on: + column: proposer_address + table: + name: proposal + schema: public + - name: validator_infos + using: + foreign_key_constraint_on: + column: self_delegate_address + table: + name: validator_info + schema: public + - name: vesting_accounts + using: + foreign_key_constraint_on: + column: address + table: + name: vesting_account + schema: public + - name: wasm_contracts + using: + foreign_key_constraint_on: + column: creator + table: + name: wasm_contract + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - address - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - address + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_from_genesis.yaml b/hasura/metadata/databases/bdjuno/tables/public_average_block_time_from_genesis.yaml index ba555d57..3e35f354 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_from_genesis.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_average_block_time_from_genesis.yaml @@ -2,10 +2,10 @@ table: name: average_block_time_from_genesis schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - average_time - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - average_time + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_day.yaml b/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_day.yaml index 26fe01b5..24209a24 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_day.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_day.yaml @@ -2,10 +2,10 @@ table: name: average_block_time_per_day schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - average_time - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - average_time + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_hour.yaml b/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_hour.yaml index 75a957db..1ef7ce93 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_hour.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_hour.yaml @@ -2,10 +2,10 @@ table: name: average_block_time_per_hour schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - average_time - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - average_time + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_minute.yaml b/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_minute.yaml index 465f6454..8457107f 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_minute.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_minute.yaml @@ -2,10 +2,10 @@ table: name: average_block_time_per_minute schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - average_time - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - average_time + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_block.yaml b/hasura/metadata/databases/bdjuno/tables/public_block.yaml index 5c3f15fc..aa98bb09 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_block.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_block.yaml @@ -2,62 +2,125 @@ table: name: block schema: public object_relationships: -- name: validator - using: - foreign_key_constraint_on: proposer_address + - name: validator + using: + foreign_key_constraint_on: proposer_address array_relationships: -- name: pre_commits - using: - manual_configuration: - column_mapping: - height: height - insertion_order: null - remote_table: - name: pre_commit - schema: public -- name: transactions - using: - foreign_key_constraint_on: - column: height - table: - name: transaction - schema: public -- name: validator_voting_powers - using: - manual_configuration: - column_mapping: - height: height - insertion_order: null - remote_table: - name: validator_voting_power - schema: public -- name: proposal_deposits - using: - manual_configuration: - column_mapping: - height: height - insertion_order: null - remote_table: - name: proposal_deposit - schema: public -- name: proposal_votes - using: - manual_configuration: - column_mapping: - height: height - insertion_order: null - remote_table: - name: proposal_vote - schema: public + - name: nyx_nym_mixnet_v1_gateway_events + using: + foreign_key_constraint_on: + column: height + table: + name: nyx_nym_mixnet_v1_gateway_events + schema: public + - name: nyx_nym_mixnet_v1_mixnode_events + using: + foreign_key_constraint_on: + column: height + table: + name: nyx_nym_mixnet_v1_mixnode_events + schema: public + - name: nyx_nym_mixnet_v1_mixnode_rewards + using: + foreign_key_constraint_on: + column: height + table: + name: nyx_nym_mixnet_v1_mixnode_reward + schema: public + - name: nyx_nym_mixnet_v1_mixnode_statuses + using: + foreign_key_constraint_on: + column: height + table: + name: nyx_nym_mixnet_v1_mixnode_status + schema: public + - name: nyx_nym_mixnet_v2_events + using: + foreign_key_constraint_on: + column: height + table: + name: nyx_nym_mixnet_v2_events + schema: public + - name: nyx_nym_mixnet_v2_mixnode_rewards + using: + foreign_key_constraint_on: + column: height + table: + name: nyx_nym_mixnet_v2_mixnode_reward + schema: public + - name: nyx_nym_mixnet_v2_mixnode_statuses + using: + foreign_key_constraint_on: + column: height + table: + name: nyx_nym_mixnet_v2_mixnode_status + schema: public + - name: pre_commits + using: + manual_configuration: + column_mapping: + height: height + insertion_order: null + remote_table: + name: pre_commit + schema: public + - name: proposal_deposits + using: + manual_configuration: + column_mapping: + height: height + insertion_order: null + remote_table: + name: proposal_deposit + schema: public + - name: proposal_votes + using: + manual_configuration: + column_mapping: + height: height + insertion_order: null + remote_table: + name: proposal_vote + schema: public + - name: transactions + using: + foreign_key_constraint_on: + column: height + table: + name: transaction + schema: public + - name: validator_voting_powers + using: + manual_configuration: + column_mapping: + height: height + insertion_order: null + remote_table: + name: validator_voting_power + schema: public + - name: wasmExecuteContractEventTypesByLastSeenHeight + using: + foreign_key_constraint_on: + column: last_seen_height + table: + name: wasm_execute_contract_event_types + schema: public + - name: wasm_execute_contract_event_types + using: + foreign_key_constraint_on: + column: first_seen_height + table: + name: wasm_execute_contract_event_types + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - num_txs - - height - - total_gas - - hash - - proposer_address - - timestamp - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - num_txs + - height + - total_gas + - hash + - proposer_address + - timestamp + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_community_pool.yaml b/hasura/metadata/databases/bdjuno/tables/public_community_pool.yaml index 21006960..5f531c90 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_community_pool.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_community_pool.yaml @@ -2,10 +2,10 @@ table: name: community_pool schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - coins - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - coins + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_distribution_params.yaml b/hasura/metadata/databases/bdjuno/tables/public_distribution_params.yaml index ca0ecf72..167c7614 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_distribution_params.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_distribution_params.yaml @@ -2,11 +2,11 @@ table: name: distribution_params schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - one_row_id - - params - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - one_row_id + - params + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_double_sign_evidence.yaml b/hasura/metadata/databases/bdjuno/tables/public_double_sign_evidence.yaml index 009da39c..aab0dd7b 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_double_sign_evidence.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_double_sign_evidence.yaml @@ -2,26 +2,26 @@ table: name: double_sign_evidence schema: public object_relationships: -- name: doubleSignVoteByVoteAId - using: - foreign_key_constraint_on: vote_a_id -- name: double_sign_vote - using: - foreign_key_constraint_on: vote_b_id + - name: doubleSignVoteByVoteAId + using: + foreign_key_constraint_on: vote_a_id + - name: double_sign_vote + using: + foreign_key_constraint_on: vote_b_id select_permissions: -- permission: - allow_aggregations: true - columns: - - height - - vote_a_id - - vote_b_id - filter: {} - role: anonymous -- permission: - allow_aggregations: true - columns: - - height - - vote_a_id - - vote_b_id - filter: {} - role: client + - role: anonymous + permission: + columns: + - height + - vote_a_id + - vote_b_id + filter: {} + allow_aggregations: true + - role: client + permission: + columns: + - height + - vote_a_id + - vote_b_id + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_double_sign_vote.yaml b/hasura/metadata/databases/bdjuno/tables/public_double_sign_vote.yaml index 03f6217a..2d039bc0 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_double_sign_vote.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_double_sign_vote.yaml @@ -2,48 +2,48 @@ table: name: double_sign_vote schema: public object_relationships: -- name: validator - using: - foreign_key_constraint_on: validator_address + - name: validator + using: + foreign_key_constraint_on: validator_address array_relationships: -- name: doubleSignEvidencesByVoteBId - using: - foreign_key_constraint_on: - column: vote_b_id - table: - name: double_sign_evidence - schema: public -- name: double_sign_evidences - using: - foreign_key_constraint_on: - column: vote_a_id - table: - name: double_sign_evidence - schema: public + - name: doubleSignEvidencesByVoteBId + using: + foreign_key_constraint_on: + column: vote_b_id + table: + name: double_sign_evidence + schema: public + - name: double_sign_evidences + using: + foreign_key_constraint_on: + column: vote_a_id + table: + name: double_sign_evidence + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - id - - type - - height - - round - - block_id - - validator_address - - validator_index - - signature - filter: {} - role: anonymous -- permission: - allow_aggregations: true - columns: - - id - - type - - height - - round - - block_id - - validator_address - - validator_index - - signature - filter: {} - role: client + - role: anonymous + permission: + columns: + - id + - type + - height + - round + - block_id + - validator_address + - validator_index + - signature + filter: {} + allow_aggregations: true + - role: client + permission: + columns: + - id + - type + - height + - round + - block_id + - validator_address + - validator_index + - signature + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_fee_grant_allowance.yaml b/hasura/metadata/databases/bdjuno/tables/public_fee_grant_allowance.yaml index dc3ef472..47289a7e 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_fee_grant_allowance.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_fee_grant_allowance.yaml @@ -2,20 +2,20 @@ table: name: fee_grant_allowance schema: public object_relationships: -- name: grantee - using: - foreign_key_constraint_on: grantee_address -- name: granter - using: - foreign_key_constraint_on: granter_address + - name: grantee + using: + foreign_key_constraint_on: grantee_address + - name: granter + using: + foreign_key_constraint_on: granter_address select_permissions: -- permission: - allow_aggregations: true - columns: - - id - - grantee_address - - granter_address - - allowance - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - id + - grantee_address + - granter_address + - allowance + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_genesis.yaml b/hasura/metadata/databases/bdjuno/tables/public_genesis.yaml index c51e829a..66eb0f6e 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_genesis.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_genesis.yaml @@ -2,19 +2,19 @@ table: name: genesis schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - chain_id - - initial_height - - time - filter: {} - role: anonymous -- permission: - allow_aggregations: true - columns: - - chain_id - - one_row_id - - time - filter: {} - role: client + - role: anonymous + permission: + columns: + - chain_id + - initial_height + - time + filter: {} + allow_aggregations: true + - role: client + permission: + columns: + - chain_id + - one_row_id + - time + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_gov_params.yaml b/hasura/metadata/databases/bdjuno/tables/public_gov_params.yaml index 358c3e92..81bc3330 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_gov_params.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_gov_params.yaml @@ -2,13 +2,13 @@ table: name: gov_params schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - one_row_id - - deposit_params - - voting_params - - tally_params - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - one_row_id + - deposit_params + - voting_params + - tally_params + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_inflation.yaml b/hasura/metadata/databases/bdjuno/tables/public_inflation.yaml index 2a348c86..1997c90f 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_inflation.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_inflation.yaml @@ -2,16 +2,16 @@ table: name: inflation schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - value - - height - filter: {} - role: anonymous -- permission: - allow_aggregations: true - columns: - - height - filter: {} - role: client + - role: anonymous + permission: + columns: + - value + - height + filter: {} + allow_aggregations: true + - role: client + permission: + columns: + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_message.yaml b/hasura/metadata/databases/bdjuno/tables/public_message.yaml index aa572e71..7e74a38a 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_message.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_message.yaml @@ -2,25 +2,35 @@ table: name: message schema: public object_relationships: -- name: transaction - using: - manual_configuration: - remote_table: - schema: public - name: transaction - insertion_order: - column_mapping: - transaction_hash: hash + - name: transaction + using: + manual_configuration: + column_mapping: + transaction_hash: hash + insertion_order: null + remote_table: + name: transaction + schema: public + - name: transactionByPartitionIdTransactionHash + using: + manual_configuration: + column_mapping: + partition_id: partition_id + transaction_hash: hash + insertion_order: null + remote_table: + name: transaction + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - transaction_hash - - index - - type - - value - - involved_accounts_addresses - - partition_id - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - transaction_hash + - index + - type + - value + - involved_accounts_addresses + - partition_id + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_mint_params.yaml b/hasura/metadata/databases/bdjuno/tables/public_mint_params.yaml index 948bcdc1..5af668bc 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_mint_params.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_mint_params.yaml @@ -2,11 +2,11 @@ table: name: mint_params schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - one_row_id - - params - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - one_row_id + - params + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_modules.yaml b/hasura/metadata/databases/bdjuno/tables/public_modules.yaml index 6ebde2ec..ab488222 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_modules.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_modules.yaml @@ -2,9 +2,9 @@ table: name: modules schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - module_name - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - module_name + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_gateway.yaml b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_gateway.yaml new file mode 100644 index 00000000..6ee565ed --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_gateway.yaml @@ -0,0 +1,11 @@ +table: + name: nyx_nym_mixnet_v1_gateway + schema: public +array_relationships: + - name: nyx_nym_mixnet_v1_gateway_events + using: + foreign_key_constraint_on: + column: identity_key + table: + name: nyx_nym_mixnet_v1_gateway_events + schema: public diff --git a/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_gateway_events.yaml b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_gateway_events.yaml new file mode 100644 index 00000000..47db51a6 --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_gateway_events.yaml @@ -0,0 +1,10 @@ +table: + name: nyx_nym_mixnet_v1_gateway_events + schema: public +object_relationships: + - name: block + using: + foreign_key_constraint_on: height + - name: nyx_nym_mixnet_v1_gateway + using: + foreign_key_constraint_on: identity_key diff --git a/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode.yaml b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode.yaml new file mode 100644 index 00000000..763d7c38 --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode.yaml @@ -0,0 +1,25 @@ +table: + name: nyx_nym_mixnet_v1_mixnode + schema: public +array_relationships: + - name: nyx_nym_mixnet_v1_mixnode_events + using: + foreign_key_constraint_on: + column: identity_key + table: + name: nyx_nym_mixnet_v1_mixnode_events + schema: public + - name: nyx_nym_mixnet_v1_mixnode_rewards + using: + foreign_key_constraint_on: + column: identity_key + table: + name: nyx_nym_mixnet_v1_mixnode_reward + schema: public + - name: nyx_nym_mixnet_v1_mixnode_statuses + using: + foreign_key_constraint_on: + column: identity_key + table: + name: nyx_nym_mixnet_v1_mixnode_status + schema: public diff --git a/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_events.yaml b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_events.yaml new file mode 100644 index 00000000..b2a6ca8a --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_events.yaml @@ -0,0 +1,19 @@ +table: + name: nyx_nym_mixnet_v1_mixnode_events + schema: public +object_relationships: + - name: block + using: + foreign_key_constraint_on: height + - name: nyx_nym_mixnet_v1_mixnode + using: + foreign_key_constraint_on: identity_key + - name: transaction + using: + manual_configuration: + column_mapping: + hash: hash + insertion_order: null + remote_table: + name: transaction + schema: public diff --git a/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_reward.yaml b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_reward.yaml new file mode 100644 index 00000000..f6e1eae6 --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_reward.yaml @@ -0,0 +1,19 @@ +table: + name: nyx_nym_mixnet_v1_mixnode_reward + schema: public +object_relationships: + - name: block + using: + foreign_key_constraint_on: height + - name: nyx_nym_mixnet_v1_mixnode + using: + foreign_key_constraint_on: identity_key + - name: transaction + using: + manual_configuration: + column_mapping: + hash: hash + insertion_order: null + remote_table: + name: transaction + schema: public diff --git a/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_status.yaml b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_status.yaml new file mode 100644 index 00000000..817f3cd1 --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_status.yaml @@ -0,0 +1,10 @@ +table: + name: nyx_nym_mixnet_v1_mixnode_status + schema: public +object_relationships: + - name: block + using: + foreign_key_constraint_on: height + - name: nyx_nym_mixnet_v1_mixnode + using: + foreign_key_constraint_on: identity_key diff --git a/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_events.yaml b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_events.yaml new file mode 100644 index 00000000..99a99796 --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_events.yaml @@ -0,0 +1,10 @@ +table: + name: nyx_nym_mixnet_v2_events + schema: public +object_relationships: + - name: block + using: + foreign_key_constraint_on: height + - name: nyx_nym_mixnet_v2_mixnode + using: + foreign_key_constraint_on: mix_id diff --git a/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode.yaml b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode.yaml new file mode 100644 index 00000000..7eff577c --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode.yaml @@ -0,0 +1,25 @@ +table: + name: nyx_nym_mixnet_v2_mixnode + schema: public +array_relationships: + - name: nyx_nym_mixnet_v2_events + using: + foreign_key_constraint_on: + column: mix_id + table: + name: nyx_nym_mixnet_v2_events + schema: public + - name: nyx_nym_mixnet_v2_mixnode_rewards + using: + foreign_key_constraint_on: + column: mix_id + table: + name: nyx_nym_mixnet_v2_mixnode_reward + schema: public + - name: nyx_nym_mixnet_v2_mixnode_statuses + using: + foreign_key_constraint_on: + column: mix_id + table: + name: nyx_nym_mixnet_v2_mixnode_status + schema: public diff --git a/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode_reward.yaml b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode_reward.yaml new file mode 100644 index 00000000..2faf9dfb --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode_reward.yaml @@ -0,0 +1,10 @@ +table: + name: nyx_nym_mixnet_v2_mixnode_reward + schema: public +object_relationships: + - name: block + using: + foreign_key_constraint_on: height + - name: nyx_nym_mixnet_v2_mixnode + using: + foreign_key_constraint_on: mix_id diff --git a/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode_status.yaml b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode_status.yaml new file mode 100644 index 00000000..3c251625 --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode_status.yaml @@ -0,0 +1,10 @@ +table: + name: nyx_nym_mixnet_v2_mixnode_status + schema: public +object_relationships: + - name: block + using: + foreign_key_constraint_on: height + - name: nyx_nym_mixnet_v2_mixnode + using: + foreign_key_constraint_on: mix_id diff --git a/hasura/metadata/databases/bdjuno/tables/public_pre_commit.yaml b/hasura/metadata/databases/bdjuno/tables/public_pre_commit.yaml index e97a6db7..c5a2355d 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_pre_commit.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_pre_commit.yaml @@ -2,27 +2,27 @@ table: name: pre_commit schema: public object_relationships: -- name: validator - using: - foreign_key_constraint_on: validator_address + - name: validator + using: + foreign_key_constraint_on: validator_address select_permissions: -- permission: - allow_aggregations: true - columns: - - validator_address - - height - - timestamp - - voting_power - - proposer_priority - filter: {} - role: anonymous -- permission: - allow_aggregations: true - columns: - - validator_address - - height - - timestamp - - voting_power - - proposer_priority - filter: {} - role: client + - role: anonymous + permission: + columns: + - validator_address + - height + - timestamp + - voting_power + - proposer_priority + filter: {} + allow_aggregations: true + - role: client + permission: + columns: + - validator_address + - height + - timestamp + - voting_power + - proposer_priority + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal.yaml b/hasura/metadata/databases/bdjuno/tables/public_proposal.yaml index aeaa47b2..b36af412 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_proposal.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_proposal.yaml @@ -2,71 +2,71 @@ table: name: proposal schema: public object_relationships: -- name: proposal_tally_result - using: - manual_configuration: - column_mapping: - id: proposal_id - insertion_order: null - remote_table: - name: proposal_tally_result - schema: public -- name: proposer - using: - foreign_key_constraint_on: proposer_address -- name: staking_pool_snapshot - using: - manual_configuration: - column_mapping: - id: proposal_id - insertion_order: null - remote_table: - name: proposal_staking_pool_snapshot - schema: public + - name: proposal_tally_result + using: + manual_configuration: + column_mapping: + id: proposal_id + insertion_order: null + remote_table: + name: proposal_tally_result + schema: public + - name: proposer + using: + foreign_key_constraint_on: proposer_address + - name: staking_pool_snapshot + using: + manual_configuration: + column_mapping: + id: proposal_id + insertion_order: null + remote_table: + name: proposal_staking_pool_snapshot + schema: public array_relationships: -- name: proposal_deposits - using: - foreign_key_constraint_on: - column: proposal_id - table: - name: proposal_deposit - schema: public -- name: proposal_tally_results - using: - foreign_key_constraint_on: - column: proposal_id - table: - name: proposal_tally_result - schema: public -- name: proposal_votes - using: - foreign_key_constraint_on: - column: proposal_id - table: - name: proposal_vote - schema: public -- name: validator_status_snapshots - using: - foreign_key_constraint_on: - column: proposal_id - table: - name: proposal_validator_status_snapshot - schema: public + - name: proposal_deposits + using: + foreign_key_constraint_on: + column: proposal_id + table: + name: proposal_deposit + schema: public + - name: proposal_tally_results + using: + foreign_key_constraint_on: + column: proposal_id + table: + name: proposal_tally_result + schema: public + - name: proposal_votes + using: + foreign_key_constraint_on: + column: proposal_id + table: + name: proposal_vote + schema: public + - name: validator_status_snapshots + using: + foreign_key_constraint_on: + column: proposal_id + table: + name: proposal_validator_status_snapshot + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - title - - description - - proposal_route - - proposal_type - - id - - submit_time - - deposit_end_time - - voting_start_time - - voting_end_time - - proposer_address - - status - - content - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - title + - description + - proposal_route + - proposal_type + - id + - submit_time + - deposit_end_time + - voting_start_time + - voting_end_time + - proposer_address + - status + - content + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal_deposit.yaml b/hasura/metadata/databases/bdjuno/tables/public_proposal_deposit.yaml index 7c480ff8..22b936f9 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_proposal_deposit.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_proposal_deposit.yaml @@ -2,28 +2,28 @@ table: name: proposal_deposit schema: public object_relationships: -- name: block - using: - manual_configuration: - column_mapping: - height: height - insertion_order: null - remote_table: - name: block - schema: public -- name: depositor - using: - foreign_key_constraint_on: depositor_address -- name: proposal - using: - foreign_key_constraint_on: proposal_id + - name: block + using: + manual_configuration: + column_mapping: + height: height + insertion_order: null + remote_table: + name: block + schema: public + - name: depositor + using: + foreign_key_constraint_on: depositor_address + - name: proposal + using: + foreign_key_constraint_on: proposal_id select_permissions: -- permission: - allow_aggregations: true - columns: - - proposal_id - - depositor_address - - amount - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - proposal_id + - depositor_address + - amount + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal_staking_pool_snapshot.yaml b/hasura/metadata/databases/bdjuno/tables/public_proposal_staking_pool_snapshot.yaml index 3f03cced..55495c1f 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_proposal_staking_pool_snapshot.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_proposal_staking_pool_snapshot.yaml @@ -2,16 +2,16 @@ table: name: proposal_staking_pool_snapshot schema: public object_relationships: -- name: proposal - using: - foreign_key_constraint_on: proposal_id + - name: proposal + using: + foreign_key_constraint_on: proposal_id select_permissions: -- permission: - allow_aggregations: true - columns: - - proposal_id - - bonded_tokens - - not_bonded_tokens - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - proposal_id + - bonded_tokens + - not_bonded_tokens + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal_tally_result.yaml b/hasura/metadata/databases/bdjuno/tables/public_proposal_tally_result.yaml index e2e21c5f..a38948b5 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_proposal_tally_result.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_proposal_tally_result.yaml @@ -2,18 +2,18 @@ table: name: proposal_tally_result schema: public object_relationships: -- name: proposal - using: - foreign_key_constraint_on: proposal_id + - name: proposal + using: + foreign_key_constraint_on: proposal_id select_permissions: -- permission: - allow_aggregations: true - columns: - - proposal_id - - yes - - abstain - - no - - no_with_veto - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - proposal_id + - "yes" + - abstain + - "no" + - no_with_veto + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal_validator_status_snapshot.yaml b/hasura/metadata/databases/bdjuno/tables/public_proposal_validator_status_snapshot.yaml index 769e27f3..0ea540ee 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_proposal_validator_status_snapshot.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_proposal_validator_status_snapshot.yaml @@ -2,22 +2,22 @@ table: name: proposal_validator_status_snapshot schema: public object_relationships: -- name: proposal - using: - foreign_key_constraint_on: proposal_id -- name: validator - using: - foreign_key_constraint_on: validator_address + - name: proposal + using: + foreign_key_constraint_on: proposal_id + - name: validator + using: + foreign_key_constraint_on: validator_address select_permissions: -- permission: - allow_aggregations: true - columns: - - id - - proposal_id - - validator_address - - voting_power - - status - - jailed - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - id + - proposal_id + - validator_address + - voting_power + - status + - jailed + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal_vote.yaml b/hasura/metadata/databases/bdjuno/tables/public_proposal_vote.yaml index 30b70e03..ead22ce3 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_proposal_vote.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_proposal_vote.yaml @@ -2,22 +2,22 @@ table: name: proposal_vote schema: public object_relationships: -- name: account - using: - foreign_key_constraint_on: voter_address -- name: block - using: - foreign_key_constraint_on: height -- name: proposal - using: - foreign_key_constraint_on: proposal_id + - name: account + using: + foreign_key_constraint_on: voter_address + - name: block + using: + foreign_key_constraint_on: height + - name: proposal + using: + foreign_key_constraint_on: proposal_id select_permissions: -- permission: - allow_aggregations: true - columns: - - proposal_id - - voter_address - - option - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - proposal_id + - voter_address + - option + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_slashing_params.yaml b/hasura/metadata/databases/bdjuno/tables/public_slashing_params.yaml index 4969d9e2..a386fe9a 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_slashing_params.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_slashing_params.yaml @@ -2,11 +2,11 @@ table: name: slashing_params schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - one_row_id - - params - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - one_row_id + - params + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_staking_params.yaml b/hasura/metadata/databases/bdjuno/tables/public_staking_params.yaml index be445552..14dd7395 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_staking_params.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_staking_params.yaml @@ -2,11 +2,11 @@ table: name: staking_params schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - one_row_id - - params - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - one_row_id + - params + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_staking_pool.yaml b/hasura/metadata/databases/bdjuno/tables/public_staking_pool.yaml index b2dfa5e6..db60b70b 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_staking_pool.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_staking_pool.yaml @@ -2,11 +2,11 @@ table: name: staking_pool schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - height - - bonded_tokens - - not_bonded_tokens - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - height + - bonded_tokens + - not_bonded_tokens + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_supply.yaml b/hasura/metadata/databases/bdjuno/tables/public_supply.yaml index 7e748d71..09cd2fe7 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_supply.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_supply.yaml @@ -2,10 +2,10 @@ table: name: supply schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - coins - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - coins + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_token.yaml b/hasura/metadata/databases/bdjuno/tables/public_token.yaml index efb055e4..efde997e 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_token.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_token.yaml @@ -2,17 +2,17 @@ table: name: token schema: public array_relationships: -- name: token_units - using: - foreign_key_constraint_on: - column: token_name - table: - name: token_unit - schema: public + - name: token_units + using: + foreign_key_constraint_on: + column: token_name + table: + name: token_unit + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - name - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - name + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_token_price.yaml b/hasura/metadata/databases/bdjuno/tables/public_token_price.yaml index e28c7abb..15073c47 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_token_price.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_token_price.yaml @@ -2,17 +2,17 @@ table: name: token_price schema: public object_relationships: -- name: token_unit - using: - foreign_key_constraint_on: unit_name + - name: token_unit + using: + foreign_key_constraint_on: unit_name select_permissions: -- permission: - allow_aggregations: true - columns: - - id - - unit_name - - price - - market_cap - - timestamp - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - id + - unit_name + - price + - market_cap + - timestamp + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_token_price_history.yaml b/hasura/metadata/databases/bdjuno/tables/public_token_price_history.yaml index 45a77136..7b0d9e07 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_token_price_history.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_token_price_history.yaml @@ -2,16 +2,16 @@ table: name: token_price_history schema: public object_relationships: -- name: token_unit - using: - foreign_key_constraint_on: unit_name + - name: token_unit + using: + foreign_key_constraint_on: unit_name select_permissions: -- permission: - allow_aggregations: true - columns: - - market_cap - - price - - timestamp - - unit_name - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - market_cap + - price + - timestamp + - unit_name + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_token_unit.yaml b/hasura/metadata/databases/bdjuno/tables/public_token_unit.yaml index 6b11f818..4c103bf6 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_token_unit.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_token_unit.yaml @@ -2,41 +2,41 @@ table: name: token_unit schema: public object_relationships: -- name: token - using: - foreign_key_constraint_on: token_name -- name: token_price - using: - manual_configuration: - column_mapping: - denom: unit_name - insertion_order: null - remote_table: - name: token_price - schema: public + - name: token + using: + foreign_key_constraint_on: token_name + - name: token_price + using: + manual_configuration: + column_mapping: + denom: unit_name + insertion_order: null + remote_table: + name: token_price + schema: public array_relationships: -- name: token_price_histories - using: - foreign_key_constraint_on: - column: unit_name - table: - name: token_price_history - schema: public -- name: token_prices - using: - foreign_key_constraint_on: - column: unit_name - table: - name: token_price - schema: public + - name: token_price_histories + using: + foreign_key_constraint_on: + column: unit_name + table: + name: token_price_history + schema: public + - name: token_prices + using: + foreign_key_constraint_on: + column: unit_name + table: + name: token_price + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - aliases - - denom - - exponent - - price_id - - token_name - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - aliases + - denom + - exponent + - price_id + - token_name + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_transaction.yaml b/hasura/metadata/databases/bdjuno/tables/public_transaction.yaml index 8cd83c73..c127ebb0 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_transaction.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_transaction.yaml @@ -2,25 +2,36 @@ table: name: transaction schema: public object_relationships: -- name: block - using: - foreign_key_constraint_on: height + - name: block + using: + foreign_key_constraint_on: height +array_relationships: + - name: messagesByTransactionHashPartitionId + using: + manual_configuration: + column_mapping: + hash: transaction_hash + partition_id: partition_id + insertion_order: null + remote_table: + name: message + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - hash - - height - - success - - messages - - memo - - signatures - - signer_infos - - fee - - gas_wanted - - gas_used - - raw_log - - logs - - partition_id - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - hash + - height + - success + - messages + - memo + - signatures + - signer_infos + - fee + - gas_wanted + - gas_used + - raw_log + - logs + - partition_id + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator.yaml b/hasura/metadata/databases/bdjuno/tables/public_validator.yaml index a2fbf811..04dc1905 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_validator.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_validator.yaml @@ -2,102 +2,102 @@ table: name: validator schema: public object_relationships: -- name: validator_info - using: - manual_configuration: - column_mapping: - consensus_address: consensus_address - insertion_order: null - remote_table: - name: validator_info - schema: public -- name: proposal_validator_status_snapshot - using: - manual_configuration: - column_mapping: - consensus_address: validator_address - insertion_order: null - remote_table: - name: proposal_validator_status_snapshot - schema: public + - name: proposal_validator_status_snapshot + using: + manual_configuration: + column_mapping: + consensus_address: validator_address + insertion_order: null + remote_table: + name: proposal_validator_status_snapshot + schema: public + - name: validator_info + using: + manual_configuration: + column_mapping: + consensus_address: consensus_address + insertion_order: null + remote_table: + name: validator_info + schema: public array_relationships: -- name: blocks - using: - foreign_key_constraint_on: - column: proposer_address - table: - name: block - schema: public -- name: double_sign_votes - using: - foreign_key_constraint_on: - column: validator_address - table: - name: double_sign_vote - schema: public -- name: pre_commits - using: - foreign_key_constraint_on: - column: validator_address - table: - name: pre_commit - schema: public -- name: validator_commissions - using: - foreign_key_constraint_on: - column: validator_address - table: - name: validator_commission - schema: public -- name: validator_descriptions - using: - foreign_key_constraint_on: - column: validator_address - table: - name: validator_description - schema: public -- name: validator_infos - using: - foreign_key_constraint_on: - column: consensus_address - table: - name: validator_info - schema: public -- name: validator_signing_infos - using: - manual_configuration: - column_mapping: - consensus_address: validator_address - insertion_order: null - remote_table: - name: validator_signing_info - schema: public -- name: validator_statuses - using: - foreign_key_constraint_on: - column: validator_address - table: - name: validator_status - schema: public -- name: validator_voting_powers - using: - foreign_key_constraint_on: - column: validator_address - table: - name: validator_voting_power - schema: public -- name: proposal_validator_status_snapshots - using: - foreign_key_constraint_on: - column: validator_address - table: - name: proposal_validator_status_snapshot - schema: public + - name: blocks + using: + foreign_key_constraint_on: + column: proposer_address + table: + name: block + schema: public + - name: double_sign_votes + using: + foreign_key_constraint_on: + column: validator_address + table: + name: double_sign_vote + schema: public + - name: pre_commits + using: + foreign_key_constraint_on: + column: validator_address + table: + name: pre_commit + schema: public + - name: proposal_validator_status_snapshots + using: + foreign_key_constraint_on: + column: validator_address + table: + name: proposal_validator_status_snapshot + schema: public + - name: validator_commissions + using: + foreign_key_constraint_on: + column: validator_address + table: + name: validator_commission + schema: public + - name: validator_descriptions + using: + foreign_key_constraint_on: + column: validator_address + table: + name: validator_description + schema: public + - name: validator_infos + using: + foreign_key_constraint_on: + column: consensus_address + table: + name: validator_info + schema: public + - name: validator_signing_infos + using: + manual_configuration: + column_mapping: + consensus_address: validator_address + insertion_order: null + remote_table: + name: validator_signing_info + schema: public + - name: validator_statuses + using: + foreign_key_constraint_on: + column: validator_address + table: + name: validator_status + schema: public + - name: validator_voting_powers + using: + foreign_key_constraint_on: + column: validator_address + table: + name: validator_voting_power + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - consensus_address - - consensus_pubkey - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - consensus_address + - consensus_pubkey + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_commission.yaml b/hasura/metadata/databases/bdjuno/tables/public_validator_commission.yaml index bbe8d3a6..9ae88051 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_validator_commission.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_validator_commission.yaml @@ -2,16 +2,16 @@ table: name: validator_commission schema: public object_relationships: -- name: validator - using: - foreign_key_constraint_on: validator_address + - name: validator + using: + foreign_key_constraint_on: validator_address select_permissions: -- permission: - allow_aggregations: true - columns: - - validator_address - - commission - - min_self_delegation - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - validator_address + - commission + - min_self_delegation + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_description.yaml b/hasura/metadata/databases/bdjuno/tables/public_validator_description.yaml index 3edb4f67..c27b8d79 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_validator_description.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_validator_description.yaml @@ -2,20 +2,20 @@ table: name: validator_description schema: public object_relationships: -- name: validator - using: - foreign_key_constraint_on: validator_address + - name: validator + using: + foreign_key_constraint_on: validator_address select_permissions: -- permission: - allow_aggregations: true - columns: - - validator_address - - moniker - - identity - - website - - security_contact - - details - - height - - avatar_url - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - validator_address + - moniker + - identity + - website + - security_contact + - details + - height + - avatar_url + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_info.yaml b/hasura/metadata/databases/bdjuno/tables/public_validator_info.yaml index fb8d8b4e..d76a9962 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_validator_info.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_validator_info.yaml @@ -2,20 +2,20 @@ table: name: validator_info schema: public object_relationships: -- name: account - using: - foreign_key_constraint_on: self_delegate_address -- name: validator - using: - foreign_key_constraint_on: consensus_address + - name: account + using: + foreign_key_constraint_on: self_delegate_address + - name: validator + using: + foreign_key_constraint_on: consensus_address select_permissions: -- permission: - allow_aggregations: true - columns: - - consensus_address - - operator_address - - self_delegate_address - - max_change_rate - - max_rate - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - consensus_address + - operator_address + - self_delegate_address + - max_change_rate + - max_rate + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_signing_info.yaml b/hasura/metadata/databases/bdjuno/tables/public_validator_signing_info.yaml index dba8155f..85dac207 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_validator_signing_info.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_validator_signing_info.yaml @@ -2,15 +2,15 @@ table: name: validator_signing_info schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - validator_address - - start_height - - index_offset - - jailed_until - - tombstoned - - missed_blocks_counter - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - validator_address + - start_height + - index_offset + - jailed_until + - tombstoned + - missed_blocks_counter + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_status.yaml b/hasura/metadata/databases/bdjuno/tables/public_validator_status.yaml index 1e983d9a..59a72e7e 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_validator_status.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_validator_status.yaml @@ -2,17 +2,17 @@ table: name: validator_status schema: public object_relationships: -- name: validator - using: - foreign_key_constraint_on: validator_address + - name: validator + using: + foreign_key_constraint_on: validator_address select_permissions: -- permission: - allow_aggregations: true - columns: - - validator_address - - status - - jailed - - tombstoned - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - validator_address + - status + - jailed + - tombstoned + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_voting_power.yaml b/hasura/metadata/databases/bdjuno/tables/public_validator_voting_power.yaml index 6710ad5c..5d7841f1 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_validator_voting_power.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_validator_voting_power.yaml @@ -2,18 +2,18 @@ table: name: validator_voting_power schema: public object_relationships: -- name: block - using: - foreign_key_constraint_on: height -- name: validator - using: - foreign_key_constraint_on: validator_address + - name: block + using: + foreign_key_constraint_on: height + - name: validator + using: + foreign_key_constraint_on: validator_address select_permissions: -- permission: - allow_aggregations: true - columns: - - validator_address - - voting_power - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - validator_address + - voting_power + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_vesting_account.yaml b/hasura/metadata/databases/bdjuno/tables/public_vesting_account.yaml index 1b095315..11201a5a 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_vesting_account.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_vesting_account.yaml @@ -2,26 +2,26 @@ table: name: vesting_account schema: public object_relationships: -- name: account - using: - foreign_key_constraint_on: address + - name: account + using: + foreign_key_constraint_on: address array_relationships: -- name: vesting_periods - using: - foreign_key_constraint_on: - column: vesting_account_id - table: - name: vesting_period - schema: public + - name: vesting_periods + using: + foreign_key_constraint_on: + column: vesting_account_id + table: + name: vesting_period + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - id - - type - - address - - original_vesting - - end_time - - start_time - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - id + - type + - address + - original_vesting + - end_time + - start_time + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_vesting_period.yaml b/hasura/metadata/databases/bdjuno/tables/public_vesting_period.yaml index dc4de32c..3658b6c1 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_vesting_period.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_vesting_period.yaml @@ -2,16 +2,16 @@ table: name: vesting_period schema: public object_relationships: -- name: vesting_account - using: - foreign_key_constraint_on: vesting_account_id + - name: vesting_account + using: + foreign_key_constraint_on: vesting_account_id select_permissions: -- permission: - allow_aggregations: true - columns: - - vesting_account_id - - period_order - - length - - amount - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - vesting_account_id + - period_order + - length + - amount + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_wasm_code.yaml b/hasura/metadata/databases/bdjuno/tables/public_wasm_code.yaml index b77262da..7769e709 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_wasm_code.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_wasm_code.yaml @@ -2,21 +2,21 @@ table: name: wasm_code schema: public array_relationships: -- name: wasm_contracts - using: - foreign_key_constraint_on: - column: code_id - table: - name: wasm_contract - schema: public + - name: wasm_contracts + using: + foreign_key_constraint_on: + column: code_id + table: + name: wasm_contract + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - sender - - byte_code - - instantiate_permission - - code_id - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - sender + - byte_code + - instantiate_permission + - code_id + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_wasm_contract.yaml b/hasura/metadata/databases/bdjuno/tables/public_wasm_contract.yaml index 618e003e..19cadd54 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_wasm_contract.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_wasm_contract.yaml @@ -2,33 +2,43 @@ table: name: wasm_contract schema: public object_relationships: -- name: wasm_code - using: - foreign_key_constraint_on: code_id + - name: account + using: + foreign_key_constraint_on: creator + - name: wasm_code + using: + foreign_key_constraint_on: code_id array_relationships: -- name: wasm_execute_contracts - using: - foreign_key_constraint_on: - column: contract_address - table: - name: wasm_execute_contract - schema: public + - name: wasm_execute_contract_event_types + using: + foreign_key_constraint_on: + column: contract_address + table: + name: wasm_execute_contract_event_types + schema: public + - name: wasm_execute_contracts + using: + foreign_key_constraint_on: + column: contract_address + table: + name: wasm_execute_contract + schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - sender - - creator - - admin - - code_id - - label - - raw_contract_message - - funds - - contract_address - - data - - instantiated_at - - contract_info_extension - - contract_states - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - sender + - creator + - admin + - code_id + - label + - raw_contract_message + - funds + - contract_address + - data + - instantiated_at + - contract_info_extension + - contract_states + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract.yaml b/hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract.yaml index 2b95b6cc..9cb62203 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract.yaml @@ -2,19 +2,37 @@ table: name: wasm_execute_contract schema: public object_relationships: -- name: wasm_contract - using: - foreign_key_constraint_on: contract_address + - name: block + using: + manual_configuration: + column_mapping: + height: height + insertion_order: null + remote_table: + name: block + schema: public + - name: transaction + using: + manual_configuration: + column_mapping: + hash: hash + insertion_order: null + remote_table: + name: transaction + schema: public + - name: wasm_contract + using: + foreign_key_constraint_on: contract_address select_permissions: -- permission: - allow_aggregations: true - columns: - - sender - - contract_address - - raw_contract_message - - funds - - data - - executed_at - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - sender + - contract_address + - raw_contract_message + - funds + - data + - executed_at + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract_event.yaml b/hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract_event.yaml new file mode 100644 index 00000000..ab9239ea --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract_event.yaml @@ -0,0 +1,19 @@ +table: + schema: public + name: wasm_execute_contract_event +object_relationships: + - name: block + using: + foreign_key_constraint_on: height + - name: transaction + using: + manual_configuration: + remote_table: + schema: public + name: transaction + insertion_order: null + column_mapping: + hash: hash + - name: wasm_contract + using: + foreign_key_constraint_on: contract_address diff --git a/hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract_event_types.yaml b/hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract_event_types.yaml new file mode 100644 index 00000000..27bb6294 --- /dev/null +++ b/hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract_event_types.yaml @@ -0,0 +1,13 @@ +table: + name: wasm_execute_contract_event_types + schema: public +object_relationships: + - name: block + using: + foreign_key_constraint_on: first_seen_height + - name: blockByLastSeenHeight + using: + foreign_key_constraint_on: last_seen_height + - name: wasm_contract + using: + foreign_key_constraint_on: contract_address diff --git a/hasura/metadata/databases/bdjuno/tables/public_wasm_params.yaml b/hasura/metadata/databases/bdjuno/tables/public_wasm_params.yaml index a69dc549..fd6c1646 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_wasm_params.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_wasm_params.yaml @@ -2,13 +2,13 @@ table: name: wasm_params schema: public select_permissions: -- permission: - allow_aggregations: true - columns: - - one_row_id - - code_upload_access - - instantiate_default_permission - - max_wasm_code_size - - height - filter: {} - role: anonymous + - role: anonymous + permission: + columns: + - one_row_id + - code_upload_access + - instantiate_default_permission + - max_wasm_code_size + - height + filter: {} + allow_aggregations: true diff --git a/hasura/metadata/databases/bdjuno/tables/tables.yaml b/hasura/metadata/databases/bdjuno/tables/tables.yaml index 8ef246b0..2397cb0d 100644 --- a/hasura/metadata/databases/bdjuno/tables/tables.yaml +++ b/hasura/metadata/databases/bdjuno/tables/tables.yaml @@ -15,6 +15,16 @@ - "!include public_message.yaml" - "!include public_mint_params.yaml" - "!include public_modules.yaml" +- "!include public_nyx_nym_mixnet_v1_gateway.yaml" +- "!include public_nyx_nym_mixnet_v1_gateway_events.yaml" +- "!include public_nyx_nym_mixnet_v1_mixnode.yaml" +- "!include public_nyx_nym_mixnet_v1_mixnode_events.yaml" +- "!include public_nyx_nym_mixnet_v1_mixnode_reward.yaml" +- "!include public_nyx_nym_mixnet_v1_mixnode_status.yaml" +- "!include public_nyx_nym_mixnet_v2_events.yaml" +- "!include public_nyx_nym_mixnet_v2_mixnode.yaml" +- "!include public_nyx_nym_mixnet_v2_mixnode_reward.yaml" +- "!include public_nyx_nym_mixnet_v2_mixnode_status.yaml" - "!include public_pre_commit.yaml" - "!include public_proposal.yaml" - "!include public_proposal_deposit.yaml" @@ -43,4 +53,5 @@ - "!include public_wasm_code.yaml" - "!include public_wasm_contract.yaml" - "!include public_wasm_execute_contract.yaml" +- "!include public_wasm_execute_contract_event_types.yaml" - "!include public_wasm_params.yaml" diff --git a/hasura/metadata/graphql_schema_introspection.yaml b/hasura/metadata/graphql_schema_introspection.yaml new file mode 100644 index 00000000..61a4dcac --- /dev/null +++ b/hasura/metadata/graphql_schema_introspection.yaml @@ -0,0 +1 @@ +disabled_for_roles: [] diff --git a/hasura/metadata/inherited_roles.yaml b/hasura/metadata/inherited_roles.yaml new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/hasura/metadata/inherited_roles.yaml @@ -0,0 +1 @@ +[] diff --git a/hasura/metadata/network.yaml b/hasura/metadata/network.yaml new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/hasura/metadata/network.yaml @@ -0,0 +1 @@ +{} diff --git a/hasura/metadata/query_collections.yaml b/hasura/metadata/query_collections.yaml index fe51488c..4c15d911 100644 --- a/hasura/metadata/query_collections.yaml +++ b/hasura/metadata/query_collections.yaml @@ -1 +1,65 @@ -[] +- name: allowed-queries + definition: + queries: + - name: GetNymMixnetV1MixnodeRewards + query: | + query GetNymMixnetV1MixnodeRewards ($identity_key: String) { + nyx_nym_mixnet_v1_mixnode_reward(where: {identity_key:{_eq:$identity_key}}) { + identity_key + executed_at + hash + height + executed_at + operator_reward + total_node_reward + total_delegations + unit_delegator_reward + } + } + - name: SearchNymMixnetV1MixnodeRewards + query: | + query GetNymMixnetV1MixnodeRewards ($offset: Int!, $limit: Int!, $where: nyx_nym_mixnet_v1_mixnode_reward_bool_exp!) { + nyx_nym_mixnet_v1_mixnode_reward_aggregate(where: $where) { + aggregate { + totalCount: count + } + } + nyx_nym_mixnet_v1_mixnode_reward(where: $where, limit: $limit, offset: $offset) { + identity_key + executed_at + hash + height + executed_at + operator_reward + total_node_reward + total_delegations + unit_delegator_reward + } + } + - name: messages + query: | + query getMessages ($address: String!, $executedAtStart: String!, $executedAtEnd: String!, $offset: Int, $limit: Int) { + action_messages_count(address: $address, executedAtStart: $executedAtStart, executedAtEnd: $executedAtEnd, limit: $limit, offset: $offset) { + limit + offset + total_count + } + action_messages(address: $address, executedAtStart: $executedAtStart, executedAtEnd: $executedAtEnd, limit: $limit, offset: $offset) { + height + index + involved_accounts_addresses + transaction_hash + type + funds + transaction { + fee + gas_used + gas_wanted + memo + } + block { + timestamp + } + value + } + } diff --git a/hasura/metadata/rest_endpoints.yaml b/hasura/metadata/rest_endpoints.yaml index fe51488c..3d8c61ce 100644 --- a/hasura/metadata/rest_endpoints.yaml +++ b/hasura/metadata/rest_endpoints.yaml @@ -1 +1,9 @@ -[] +- comment: Gets message for a date range + definition: + query: + collection_name: allowed-queries + query_name: messages + methods: + - POST + name: messages + url: messages diff --git a/modules/actions/handle_additional_operations.go b/modules/actions/handle_additional_operations.go index 4b532788..30ddb542 100644 --- a/modules/actions/handle_additional_operations.go +++ b/modules/actions/handle_additional_operations.go @@ -6,6 +6,8 @@ import ( "sync" "syscall" + "github.com/rs/zerolog/log" + "github.com/forbole/bdjuno/v3/modules/actions/handlers" actionstypes "github.com/forbole/bdjuno/v3/modules/actions/types" ) @@ -15,8 +17,10 @@ var ( ) func (m *Module) RunAdditionalOperations() error { + log.Info().Msg("Starting actions worker...") + // Build the worker - context := actionstypes.NewContext(m.node, m.sources) + context := actionstypes.NewContext(m.node, m.sources, m.db) worker := actionstypes.NewActionsWorker(context) // Register the endpoints @@ -41,6 +45,13 @@ func (m *Module) RunAdditionalOperations() error { worker.RegisterHandler("/validator_redelegations_from", handlers.ValidatorRedelegationsFromHandler) worker.RegisterHandler("/validator_unbonding_delegations", handlers.ValidatorUnbondingDelegationsHandler) + // -- Messages -- + worker.RegisterHandler("/messages", handlers.MessagesHandler) + worker.RegisterHandler("/messages/count", handlers.MessagesCountHandler) + + // -- Nyx -- + worker.RegisterHandler("/nyx/external", handlers.ExternalRequestHandler) + // Listen for and trap any OS signal to gracefully shutdown and exit m.trapSignal() diff --git a/modules/actions/handlers/external.go b/modules/actions/handlers/external.go new file mode 100644 index 00000000..1af94f4d --- /dev/null +++ b/modules/actions/handlers/external.go @@ -0,0 +1,35 @@ +package handlers + +import ( + "bytes" + "encoding/json" + "net/http" + + "github.com/forbole/bdjuno/v3/modules/actions/types" + + "github.com/rs/zerolog/log" +) + +func ExternalRequestHandler(ctx *types.Context, payload *types.Payload) (interface{}, error) { + log.Debug().Str("address", payload.GetAddress()). + Int64("height", payload.Input.Height). + Msg("executing external action") + + payloadJSON, err := json.Marshal(payload) + if err != nil { + return nil, err + } + requestBody := bytes.NewBuffer(payloadJSON) + + // TODO: parse the URL from the payload and sanitise + url := "http://localhost:3001/api/v1/test" + + log.Trace().Str("url", url).Msg(">>>") + response, err := http.Post(url, "application/json", requestBody) + log.Trace().Str("url", url).Str("Response status", response.Status).Int("Response code", response.StatusCode).Msg("<<<") + if err != nil { + response.Body.Close() + } + + return types.Coin{Denom: "foo", Amount: "0"}, nil +} diff --git a/modules/actions/handlers/messages.go b/modules/actions/handlers/messages.go new file mode 100644 index 00000000..ef025b0f --- /dev/null +++ b/modules/actions/handlers/messages.go @@ -0,0 +1,140 @@ +package handlers + +import ( + dbtypes "github.com/forbole/bdjuno/v3/database/types" + "github.com/forbole/bdjuno/v3/modules/actions/types" + "github.com/rs/zerolog/log" +) + +type MessagesPaging struct { + Limit uint64 `json:"limit"` + Offset uint64 `json:"offset"` + TotalCount int `json:"total_count"` +} + +type MessagesParams struct { + Limit uint64 + Offset uint64 + StartHeight int64 + EndHeight int64 + Address string +} + +func ValidateMessageParams(ctx *types.Context, payload *types.Payload, message string) (*MessagesParams, error) { + log.Debug().Str("address", payload.GetAddress()). + Time("executed_at_start", payload.Input.ExecutedAtStart). + Time("executed_at_end", payload.Input.ExecutedAtEnd). + Uint64("offset", payload.Input.Offset). + Uint64("limit", payload.Input.Limit). + Str("location", "before"). + Msg(message) + + limit := uint64(10) + offset := uint64(0) + + executedAtStart := payload.Input.ExecutedAtStart + executedAtEnd := payload.Input.ExecutedAtEnd + + startHeight := int64(-1) + endHeight := int64(-1) + + valueStart, err := ctx.Db.GetBlockHeightTime(executedAtStart) + if err != nil { + valueFirst, err := ctx.Db.GetFirstBlockTime() + if err != nil { + return nil, err + } else { + startHeight = valueFirst.Height + } + } else { + startHeight = valueStart.Height + } + + valueEnd, err := ctx.Db.GetBlockHeightTime(executedAtEnd) + if err != nil { + valueLast, err := ctx.Db.GetLastBlockTime() + if err != nil { + return nil, err + } else { + startHeight = valueLast.Height + } + } else { + endHeight = valueEnd.Height + } + + address := payload.Input.Address + + if payload.Input.Limit > 10 || payload.Input.Limit < 1 { + limit = uint64(10) + } else { + limit = payload.Input.Limit + } + if payload.Input.Offset < 1 { + offset = uint64(0) + } else { + offset = payload.Input.Offset + } + + log.Debug().Str("address", address). + Int64("start_height", startHeight). + Int64("end_height", endHeight). + Uint64("offset", offset). + Uint64("limit", limit). + Str("location", "after"). + Msg(message) + + output := MessagesParams{ + Limit: limit, + Offset: offset, + StartHeight: startHeight, + EndHeight: endHeight, + Address: address, + } + + return &output, nil +} + +func MessagesHandler(ctx *types.Context, payload *types.Payload) (interface{}, error) { + + params, err := ValidateMessageParams(ctx, payload, "message handler") + if err != nil { + return nil, err + } + + rows, err := ctx.Db.GetMessages(params.Address, params.StartHeight, params.EndHeight, params.Offset, params.Limit) + if err != nil { + return nil, err + } + + rowsWithValue := make([]dbtypes.MessageWithValueRow, len(rows)) + + for i, row := range rows { + newRow, err := dbtypes.NewMessageWithValueRow(row) + if err != nil { + return nil, err + } + rowsWithValue[i] = *newRow + } + + return rowsWithValue, err +} + +func MessagesCountHandler(ctx *types.Context, payload *types.Payload) (interface{}, error) { + params, err := ValidateMessageParams(ctx, payload, "message count handler") + if err != nil { + return nil, err + } + + count, err := ctx.Db.GetMessagesCount(params.Address, params.StartHeight, params.EndHeight) + if err != nil { + return nil, err + } + + output := MessagesPaging{ + Limit: params.Limit, + Offset: params.Offset, + TotalCount: count, + } + + return output, err +} diff --git a/modules/actions/module.go b/modules/actions/module.go index a7c40ee0..5e4999b1 100644 --- a/modules/actions/module.go +++ b/modules/actions/module.go @@ -2,6 +2,7 @@ package actions import ( "github.com/cosmos/cosmos-sdk/simapp/params" + "github.com/forbole/bdjuno/v3/database" "github.com/forbole/juno/v3/modules" "github.com/forbole/juno/v3/node" "github.com/forbole/juno/v3/node/builder" @@ -24,9 +25,10 @@ type Module struct { cfg *Config node node.Node sources *modulestypes.Sources + db *database.Db } -func NewModule(cfg config.Config, encodingConfig *params.EncodingConfig) *Module { +func NewModule(cfg config.Config, encodingConfig *params.EncodingConfig, db *database.Db) *Module { bz, err := cfg.GetBytes() if err != nil { panic(err) @@ -58,6 +60,7 @@ func NewModule(cfg config.Config, encodingConfig *params.EncodingConfig) *Module cfg: actionsCfg, node: junoNode, sources: sources, + db: db, } } diff --git a/modules/actions/types/handler.go b/modules/actions/types/handler.go index f233a2d4..86a27a1b 100644 --- a/modules/actions/types/handler.go +++ b/modules/actions/types/handler.go @@ -2,6 +2,7 @@ package types import ( "fmt" + "github.com/forbole/bdjuno/v3/database" "github.com/forbole/juno/v3/node" @@ -12,13 +13,15 @@ import ( type Context struct { node node.Node Sources *modulestypes.Sources + Db *database.Db } // NewContext returns a new Context instance -func NewContext(node node.Node, sources *modulestypes.Sources) *Context { +func NewContext(node node.Node, sources *modulestypes.Sources, db *database.Db) *Context { return &Context{ node: node, Sources: sources, + Db: db, } } diff --git a/modules/actions/types/payload.go b/modules/actions/types/payload.go index 18e9cacd..8f004484 100644 --- a/modules/actions/types/payload.go +++ b/modules/actions/types/payload.go @@ -1,6 +1,9 @@ package types -import "github.com/cosmos/cosmos-sdk/types/query" +import ( + "github.com/cosmos/cosmos-sdk/types/query" + "time" +) // Payload contains the payload data that is sent from Hasura type Payload struct { @@ -13,6 +16,24 @@ func (p *Payload) GetAddress() string { return p.Input.Address } +// GetIdentityKey returns the identity key associated with this payload, if any +func (p *Payload) GetIdentityKey() *string { + return &p.Input.IdentityKey +} + +// GetHeight returns the block height associated with this payload, if any +func (p *Payload) GetHeight() *int64 { + return &p.Input.Height +} + +func (p *Payload) GetExecutedAtStart() *time.Time { + return &p.Input.ExecutedAtStart +} + +func (p *Payload) GetExecutedAtEnd() *time.Time { + return &p.Input.ExecutedAtEnd +} + // GetPagination returns the pagination asasociated with this payload, if any func (p *Payload) GetPagination() *query.PageRequest { return &query.PageRequest{ @@ -23,9 +44,12 @@ func (p *Payload) GetPagination() *query.PageRequest { } type PayloadArgs struct { - Address string `json:"address"` - Height int64 `json:"height"` - Offset uint64 `json:"offset"` - Limit uint64 `json:"limit"` - CountTotal bool `json:"count_total"` + Address string `json:"address"` + IdentityKey string `json:"identityKey"` + Height int64 `json:"height"` + Offset uint64 `json:"offset"` + Limit uint64 `json:"limit"` + CountTotal bool `json:"count_total"` + ExecutedAtStart time.Time `json:"executedAtStart"` + ExecutedAtEnd time.Time `json:"executedAtEnd"` } diff --git a/modules/external/config.go b/modules/external/config.go new file mode 100644 index 00000000..fdc88efc --- /dev/null +++ b/modules/external/config.go @@ -0,0 +1,33 @@ +package external + +import ( + "gopkg.in/yaml.v3" +) + +// Config contains the configuration about the actions module +type Config struct { + URL string `yaml:"url"` +} + +// NewConfig returns a new Config instance +func NewConfig(url string) *Config { + return &Config{ + URL: url, + } +} + +// DefaultConfig returns the default configuration +func DefaultConfig() Config { + return Config{ + URL: "http://localhost:3001/api/v1/handleTx", + } +} + +func ParseConfig(bz []byte) (*Config, error) { + type T struct { + Config *Config `yaml:"external"` + } + var cfg T + err := yaml.Unmarshal(bz, &cfg) + return cfg.Config, err +} diff --git a/modules/external/handle_tx.go b/modules/external/handle_tx.go new file mode 100644 index 00000000..89e61d6a --- /dev/null +++ b/modules/external/handle_tx.go @@ -0,0 +1,35 @@ +package external + +import ( + "bytes" + "net/http" + + juno "github.com/forbole/juno/v3/types" + "github.com/rs/zerolog/log" +) + +// HandleTx implements modules.TransactionModule +func (m *Module) HandleTx(tx *juno.Tx) error { + log.Info().Str("txhash", tx.TxHash).Msg("✅✅✅✅ external HandleTx") + + txResponseJSON, err := m.cdc.MarshalJSON(tx.TxResponse) + if err != nil { + log.Err(err).Msg("Could no encode transaction response as json") + } + + // log.Trace().Str("request", string(txResponseJSON)).Msg("Request >>>") + + requestBody := bytes.NewBuffer(txResponseJSON) + + log.Trace().Str("url", m.cfg.URL).Msg(">>>") + response, err := http.Post(m.cfg.URL, "application/json", requestBody) + if response != nil { + log.Trace().Str("url", m.cfg.URL).Str("Response status", response.Status).Int("Response code", response.StatusCode).Msg("<<<") + response.Body.Close() + } + if err != nil { + log.Warn().Err(err).Msg("Failed to called external API") + } + + return nil +} diff --git a/modules/external/module.go b/modules/external/module.go new file mode 100644 index 00000000..0cee44fd --- /dev/null +++ b/modules/external/module.go @@ -0,0 +1,67 @@ +package external + +import ( + "os" + + "github.com/cosmos/cosmos-sdk/codec" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/forbole/juno/v3/modules" + "github.com/forbole/juno/v3/types/config" + "github.com/invopop/jsonschema" + "github.com/rs/zerolog/log" +) + +const ( + ModuleName = "external" +) + +var ( + _ modules.Module = &Module{} + _ modules.TransactionModule = &Module{} +) + +type Module struct { + cfg *Config + cdc codec.Codec + cdcProto codec.ProtoCodecMarshaler +} + +func NewModule(cfg config.Config, cdc codec.Codec, registry codectypes.InterfaceRegistry) *Module { + bz, err := cfg.GetBytes() + if err != nil { + panic(err) + } + + externalCfg, err := ParseConfig(bz) + if err != nil { + panic(err) + } + + if externalCfg == nil { + log.Info().Msg("config is nil") + defaultConfig := DefaultConfig() + externalCfg = &defaultConfig + } + + log.Info().Str("url", externalCfg.URL).Msg("External API config") + + cdcProto := codec.NewProtoCodec(registry) + + // use reflection to write out the current JSON Schema of the Cosmos transaction response types + schema := jsonschema.Reflect(&sdk.TxResponse{}) + // schema := jsonschema.ReflectFromType(sdk.TxResponse) + json, _ := schema.MarshalJSON() + os.WriteFile("schema.json", json, 0600) + log.Info().Msg("Wrote `schema.json` with Cosmos transaction types") + + return &Module{ + cfg: externalCfg, + cdc: cdc, + cdcProto: cdcProto, + } +} + +func (m *Module) Name() string { + return ModuleName +} diff --git a/modules/registrar.go b/modules/registrar.go index 45f6236a..e91def1b 100644 --- a/modules/registrar.go +++ b/modules/registrar.go @@ -30,6 +30,8 @@ import ( "github.com/forbole/bdjuno/v3/modules/pricefeed" "github.com/forbole/bdjuno/v3/modules/staking" "github.com/forbole/bdjuno/v3/modules/wasm" + + "github.com/forbole/bdjuno/v3/modules/external" ) // UniqueAddressesParser returns a wrapper around the given parser that removes all duplicated addresses @@ -72,7 +74,7 @@ func (r *Registrar) BuildModules(ctx registrar.Context) jmodules.Modules { panic(err) } - actionsModule := actions.NewModule(ctx.JunoConfig, ctx.EncodingConfig) + actionsModule := actions.NewModule(ctx.JunoConfig, ctx.EncodingConfig, db) authModule := auth.NewModule(r.parser, cdc, db) bankModule := bank.NewModule(r.parser, sources.BankSource, cdc, db) consensusModule := consensus.NewModule(db) @@ -83,6 +85,8 @@ func (r *Registrar) BuildModules(ctx registrar.Context) jmodules.Modules { stakingModule := staking.NewModule(sources.StakingSource, slashingModule, cdc, db) govModule := gov.NewModule(sources.GovSource, authModule, distrModule, mintModule, slashingModule, stakingModule, cdc, db) + externalModule := external.NewModule(ctx.JunoConfig, cdc, ctx.EncodingConfig.InterfaceRegistry) + return []jmodules.Module{ messages.NewModule(r.parser, cdc, ctx.Database), telemetry.NewModule(ctx.JunoConfig), @@ -101,5 +105,6 @@ func (r *Registrar) BuildModules(ctx registrar.Context) jmodules.Modules { slashingModule, stakingModule, wasm.NewModule(sources.WasmSource, cdc, db), + externalModule, } } diff --git a/modules/types/sources.go b/modules/types/sources.go index 310bce4d..5b8d9b51 100644 --- a/modules/types/sources.go +++ b/modules/types/sources.go @@ -4,9 +4,10 @@ import ( "fmt" "os" - wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" - cmdxapp "github.com/comdex-official/comdex/app" + wasmapp "github.com/CosmWasm/wasmd/app" + "github.com/CosmWasm/wasmd/x/wasm" + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" "github.com/cosmos/cosmos-sdk/simapp" "github.com/tendermint/tendermint/libs/log" @@ -76,32 +77,39 @@ func buildLocalSources(cfg *local.Details, encodingConfig *params.EncodingConfig return nil, err } - cmdxApp := cmdxapp.New(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), source.StoreDB, nil, true, map[int64]bool{}, - cfg.Home, 0, cmdxapp.MakeEncodingConfig(), simapp.EmptyAppOptions{}, nil, + app := simapp.NewSimApp( + log.NewTMLogger(log.NewSyncWriter(os.Stdout)), source.StoreDB, nil, true, map[int64]bool{}, + cfg.Home, 0, simapp.MakeTestEncodingConfig(), simapp.EmptyAppOptions{}, + ) + + wasmApp := wasmapp.NewWasmApp( + log.NewTMLogger(log.NewSyncWriter(os.Stdout)), source.StoreDB, nil, true, map[int64]bool{}, + cfg.Home, 0, wasmapp.MakeEncodingConfig(), wasm.EnableAllProposals, simapp.EmptyAppOptions{}, + nil, ) sources := &Sources{ - BankSource: localbanksource.NewSource(source, banktypes.QueryServer(cmdxApp.BankKeeper)), - DistrSource: localdistrsource.NewSource(source, distrtypes.QueryServer(cmdxApp.DistrKeeper)), - GovSource: localgovsource.NewSource(source, govtypes.QueryServer(cmdxApp.GovKeeper)), - MintSource: localmintsource.NewSource(source, minttypes.QueryServer(cmdxApp.MintKeeper)), - SlashingSource: localslashingsource.NewSource(source, slashingtypes.QueryServer(cmdxApp.SlashingKeeper)), - StakingSource: localstakingsource.NewSource(source, stakingkeeper.Querier{Keeper: cmdxApp.StakingKeeper}), - WasmSource: localwasmsource.NewSource(source, wasmkeeper.Querier(&cmdxApp.WasmKeeper)), + BankSource: localbanksource.NewSource(source, banktypes.QueryServer(app.BankKeeper)), + DistrSource: localdistrsource.NewSource(source, distrtypes.QueryServer(app.DistrKeeper)), + GovSource: localgovsource.NewSource(source, govtypes.QueryServer(app.GovKeeper)), + MintSource: localmintsource.NewSource(source, minttypes.QueryServer(app.MintKeeper)), + SlashingSource: localslashingsource.NewSource(source, slashingtypes.QueryServer(app.SlashingKeeper)), + StakingSource: localstakingsource.NewSource(source, stakingkeeper.Querier{Keeper: app.StakingKeeper}), + WasmSource: localwasmsource.NewSource(source, wasmkeeper.Querier(&wasmApp.WasmKeeper)), } // Mount and initialize the stores - err = source.MountKVStores(cmdxApp, "keys") + err = source.MountKVStores(app, "keys") if err != nil { return nil, err } - err = source.MountTransientStores(cmdxApp, "tkeys") + err = source.MountTransientStores(app, "tkeys") if err != nil { return nil, err } - err = source.MountMemoryStores(cmdxApp, "memKeys") + err = source.MountMemoryStores(app, "memKeys") if err != nil { return nil, err } diff --git a/modules/wasm/handle_block.go b/modules/wasm/handle_block.go new file mode 100644 index 00000000..6b5eda55 --- /dev/null +++ b/modules/wasm/handle_block.go @@ -0,0 +1,11 @@ +package wasm + +import ( + juno "github.com/forbole/juno/v3/types" + tmctypes "github.com/tendermint/tendermint/rpc/core/types" +) + +// HandleBlock implements modules.BlockModule +func (m *Module) HandleBlock(block *tmctypes.ResultBlock, results *tmctypes.ResultBlockResults, txs []*juno.Tx, vals *tmctypes.ResultValidators) error { + return nil +} diff --git a/modules/wasm/handle_genesis.go b/modules/wasm/handle_genesis.go index 3e1d91cd..aba8d98e 100644 --- a/modules/wasm/handle_genesis.go +++ b/modules/wasm/handle_genesis.go @@ -134,6 +134,7 @@ func (m *Module) SaveGenesisMsgs(msgs []wasmtypes.GenesisState_GenMsgs, doc *tmt "", doc.GenesisTime, doc.InitialHeight, + "", ) genesisExecuteContracts = append(genesisExecuteContracts, executeContract) } diff --git a/modules/wasm/handle_msg.go b/modules/wasm/handle_msg.go index 90c62c5c..881193d9 100644 --- a/modules/wasm/handle_msg.go +++ b/modules/wasm/handle_msg.go @@ -3,9 +3,14 @@ package wasm import ( "encoding/base64" "fmt" + "reflect" "strconv" "time" + "github.com/rs/zerolog/log" + + "github.com/ohler55/ojg/oj" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/forbole/bdjuno/v3/types" @@ -14,6 +19,8 @@ import ( // HandleMsg implements modules.MessageModule func (m *Module) HandleMsg(index int, msg sdk.Msg, tx *juno.Tx) error { + log.Trace().Str("txhash", tx.TxHash).Msg("wasm HandleMsg") + if len(tx.Logs) == 0 { return nil } @@ -147,6 +154,31 @@ func (m *Module) HandleMsgInstantiateContract(index int, tx *juno.Tx, msg *wasmt // HandleMsgExecuteContract allows to properly handle a MsgExecuteContract // Execute Event executes an instantiated contract func (m *Module) HandleMsgExecuteContract(index int, tx *juno.Tx, msg *wasmtypes.MsgExecuteContract) error { + log.Trace().Str("txhash", tx.TxHash).Msg("wasm HandleMsgExecuteContract") + + // + // parse the ExecuteContract message body + // + msgJSON, err := oj.ParseString(string(msg.Msg)) + + // use reflection to get the message name by pulling the 1st field name from the JSON struct + messageName := "" + v := reflect.ValueOf(msgJSON) + if v.Len() == 1 && len(v.MapKeys()) == 1 { + messageName = v.MapKeys()[0].String() + } else { + log.Warn().Str("txhash", tx.TxHash).Str("messageJson", string(msg.Msg)).Msg("Unable to parse message name from JSON") + } + + // skip some message types: + // - `write_k_v` will bloat the pgsql database with contract state imports + if messageName == "write_k_v" { + log.Trace().Str("txhash", tx.TxHash).Str("messageName", messageName).Msg("Skipping contract message") + return err + } + + log.Debug().Int64("height", tx.Height).Str("txhash", tx.TxHash).Str("messageName", messageName).Msg("Processing contract message") + // Get Execute Contract event event, err := tx.FindEventByType(index, wasmtypes.EventTypeExecute) if err != nil { @@ -168,12 +200,110 @@ func (m *Module) HandleMsgExecuteContract(index int, tx *juno.Tx, msg *wasmtypes return fmt.Errorf("error while parsing time: %s", err) } - return m.db.SaveWasmExecuteContract( - types.NewWasmExecuteContract( - msg.Sender, msg.Contract, msg.Msg, msg.Funds, - string(resultDataBz), timestamp, tx.Height, - ), + contractExists, _ := m.db.GetWasmContractExists(msg.Contract) + + if !contractExists { + contractAddress := msg.Contract + + // default values + contractInfoCreator := "unknown" + contractInfoAdmin := "unknown" + contractInfoCodeID := uint64(0) + contractInfoLabel := "" + + // Check if there is a record of the contract, otherwise look it up + contractInfo, err := m.source.GetContractInfo(tx.Height, contractAddress) + if err != nil { + log.Trace().Str("contractAddress", contractAddress).Int64("height", tx.Height).Msg("Unable to get contract info, using default values...") + } else { + contractInfoCreator = contractInfo.Creator + contractInfoAdmin = contractInfo.Admin + contractInfoCodeID = contractInfo.CodeID + contractInfoLabel = contractInfo.Label + } + + createdBlockHeight := int64(0) + if contractInfo != nil && contractInfo.Created != nil { + createdBlockHeight = int64(contractInfo.Created.BlockHeight) + } + + emptyBytes := make([]byte, 0) + var initPermission wasmtypes.AccessConfig + newCode := types.NewWasmCode( + contractInfoCreator, emptyBytes, &initPermission, contractInfoCodeID, createdBlockHeight, + ) + + err = m.db.SaveWasmCode(newCode) + if err != nil { + return fmt.Errorf("error while saving contract code: %s", err) + } + + // Get contract info extension + contractInfoExt := "" + if contractInfo != nil && contractInfo.Extension != nil { + var extentionI wasmtypes.ContractInfoExtension + err = m.cdc.UnpackAny(contractInfo.Extension, &extentionI) + if err != nil { + return fmt.Errorf("error while getting contract info extension: %s", err) + } + contractInfoExt = extentionI.String() + } + + // Get contract states (at the height the contract was created) + var contractStates []wasmtypes.Model + // contractStates, err := m.source.GetContractStates(int64(contractInfo.Created.BlockHeight), contractAddress) + // if err != nil { + // return fmt.Errorf("error while getting genesis contract states: %s", err) + //} + + err = m.db.SaveAccounts([]types.Account{ + types.NewAccount(msg.Sender)}) + if err != nil { + log.Debug().Msg(fmt.Errorf("error while saving Sender account %s: %s", msg.Sender, err).Error()) + } + err = m.db.SaveAccounts([]types.Account{ + types.NewAccount(contractInfoAdmin)}) + if err != nil { + log.Debug().Msg(fmt.Errorf("error while saving Admin account %s: %s", contractInfo.Admin, err).Error()) + } + + // Set to default values, that will hopefully be overwritten during the next migration of this contract + emptyRawMessage := []byte("{}") + emptyFunds := sdk.Coins{sdk.Coin{}} + + contract := types.NewWasmContract( + msg.Sender, contractInfoAdmin, contractInfoCodeID, contractInfoLabel, + emptyRawMessage, emptyFunds, + contractAddress, string(resultDataBz), timestamp, + contractInfoCreator, contractInfoExt, contractStates, createdBlockHeight, + ) + + err = m.db.SaveWasmContracts( + []types.WasmContract{contract}, + ) + if err != nil { + return fmt.Errorf("error while saving contract info: %s", err) + } + } + + execute := types.NewWasmExecuteContract( + msg.Sender, msg.Contract, msg.Msg, msg.Funds, + string(resultDataBz), timestamp, tx.Height, tx.TxHash, ) + + // save a record of the raw contract execution details + err = m.db.SaveWasmExecuteContract(execute) + if err != nil { + log.Err(err).Msg("Could not save WasmExecuteContract") + } + + // save a row for each event in the contract execution + err = m.db.SaveWasmExecuteContractEvents(execute, tx) + if err != nil { + log.Err(err).Msg("Could not save events for WasmExecuteContract") + } + + return err } // HandleMsgMigrateContract allows to properly handle a MsgMigrateContract diff --git a/modules/wasm/handle_tx.go b/modules/wasm/handle_tx.go new file mode 100644 index 00000000..3dea808f --- /dev/null +++ b/modules/wasm/handle_tx.go @@ -0,0 +1,11 @@ +package wasm + +import ( + juno "github.com/forbole/juno/v3/types" +) + +// HandleTx implements modules.TransactionModule +func (m *Module) HandleTx(tx *juno.Tx) error { + // log.Debug().Str("txhash", tx.TxHash).Msg("wasm HandleTx") + return nil +} diff --git a/modules/wasm/module.go b/modules/wasm/module.go index 1576c83e..f8c1b93f 100644 --- a/modules/wasm/module.go +++ b/modules/wasm/module.go @@ -10,8 +10,10 @@ import ( ) var ( - _ modules.Module = &Module{} - _ modules.MessageModule = &Module{} + _ modules.Module = &Module{} + _ modules.MessageModule = &Module{} + _ modules.TransactionModule = &Module{} + _ modules.BlockModule = &Module{} ) // Module represent x/wasm module diff --git a/modules/wasm/source/remote/source.go b/modules/wasm/source/remote/source.go index 46bf91d8..cdecbb0d 100644 --- a/modules/wasm/source/remote/source.go +++ b/modules/wasm/source/remote/source.go @@ -5,9 +5,8 @@ import ( wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" "github.com/cosmos/cosmos-sdk/types/query" - "github.com/forbole/juno/v3/node/remote" - wasmsource "github.com/forbole/bdjuno/v3/modules/wasm/source" + "github.com/forbole/juno/v3/node/remote" ) var ( diff --git a/types/config/config.go b/types/config/config.go index 187c2226..8f69b3a5 100644 --- a/types/config/config.go +++ b/types/config/config.go @@ -1,6 +1,7 @@ package config import ( + "github.com/forbole/bdjuno/v3/modules/external" initcmd "github.com/forbole/juno/v3/cmd/init" junoconfig "github.com/forbole/juno/v3/types/config" "github.com/spf13/cobra" @@ -11,15 +12,17 @@ import ( // Config represents the BDJuno configuration type Config struct { - JunoConfig junoconfig.Config `yaml:"-,inline"` - ActionsConfig actions.Config `yaml:"actions"` + JunoConfig junoconfig.Config `yaml:"-,inline"` + ActionsConfig actions.Config `yaml:"actions"` + ExternalConfig external.Config `yaml:"external"` } // NewConfig returns a new Config instance -func NewConfig(junoCfg junoconfig.Config, actionsCfg actions.Config) Config { +func NewConfig(junoCfg junoconfig.Config, actionsCfg actions.Config, externalCfg external.Config) Config { return Config{ - JunoConfig: junoCfg, - ActionsConfig: actionsCfg, + JunoConfig: junoCfg, + ActionsConfig: actionsCfg, + ExternalConfig: externalCfg, } } @@ -30,5 +33,5 @@ func (c Config) GetBytes() ([]byte, error) { // Creator represents a configuration creator func Creator(_ *cobra.Command) initcmd.WritableConfig { - return NewConfig(junoconfig.DefaultConfig(), actions.DefaultConfig()) + return NewConfig(junoconfig.DefaultConfig(), actions.DefaultConfig(), external.DefaultConfig()) } diff --git a/types/wasm.go b/types/wasm.go index ffe9a1ed..86e2bdf9 100644 --- a/types/wasm.go +++ b/types/wasm.go @@ -3,6 +3,7 @@ package types import ( "encoding/hex" "encoding/json" + "strings" "time" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" @@ -132,15 +133,46 @@ type WasmExecuteContract struct { Data string ExecutedAt time.Time Height int64 + Hash string + MessageType string +} + +// GetWasmExecuteContractMessageType gets the name of the contract execution message type. It will create a comma +// separated string if there are multiple keys in the root of the message type. If message is empty, or an array, or +// a single value, the return value will be an empty string. +func GetWasmExecuteContractMessageType(rawContractMsg []byte) string { + // the default return is an empty string + messageType := "" + + if rawContractMsg != nil { + var msg map[string]interface{} + _ = json.Unmarshal(rawContractMsg, &msg) + + if len(msg) > 0 { + + // get the keys in the root of the message + keys := make([]string, 0, len(msg)) + for k := range msg { + keys = append(keys, k) + } + + // create string of key names, so `{ a: 1 }` will be "a", and `{ b: 2, c: { ... } }` will be "b,c" + messageType = strings.Join(keys, ",") + } + } + + return messageType } // NewWasmExecuteContract allows to build a new x/wasm execute contract instance func NewWasmExecuteContract( sender string, contractAddress string, rawMsg wasmtypes.RawContractMessage, - funds sdk.Coins, data string, executedAt time.Time, height int64, + funds sdk.Coins, data string, executedAt time.Time, height int64, hash string, ) WasmExecuteContract { rawContractMsg, _ := rawMsg.MarshalJSON() + messageType := GetWasmExecuteContractMessageType(rawMsg) + return WasmExecuteContract{ Sender: sender, ContractAddress: contractAddress, @@ -149,5 +181,7 @@ func NewWasmExecuteContract( Data: data, ExecutedAt: executedAt, Height: height, + Hash: hash, + MessageType: messageType, } } diff --git a/types/wasm_test.go b/types/wasm_test.go new file mode 100644 index 00000000..156a4c9b --- /dev/null +++ b/types/wasm_test.go @@ -0,0 +1,68 @@ +package types + +import ( + "github.com/stretchr/testify/suite" + "testing" +) + +func TestWasmTestSuite(t *testing.T) { + suite.Run(t, new(WasmTestSuite)) +} + +type WasmTestSuite struct { + suite.Suite +} + +func (suite *WasmTestSuite) TestBigDipperTypes_CorrectlyParseWasmContractExecuteMessageType_Empty() { + var wasmContractExecuteMessage string + + // nil returns nil type + messageType := GetWasmExecuteContractMessageType([]byte(wasmContractExecuteMessage)) + suite.Require().Equal("", messageType) + + // empty string returns nil type + wasmContractExecuteMessage = "" + messageType = GetWasmExecuteContractMessageType([]byte(wasmContractExecuteMessage)) + suite.Require().Equal("", messageType) +} + +func (suite *WasmTestSuite) TestBigDipperTypes_CorrectlyParseWasmContractExecuteMessageType_ParseErrorIsNil() { + wasmContractExecuteMessage := "invalid JSON should not return a message type" + messageType := GetWasmExecuteContractMessageType([]byte(wasmContractExecuteMessage)) + suite.Require().Equal("", messageType) +} + +func (suite *WasmTestSuite) TestBigDipperTypes_CorrectlyParseWasmContractExecuteMessageType_ArrayIsNil() { + wasmContractExecuteMessage := `[{ "foo": 1 }, { "bar": 2 }]` + messageType := GetWasmExecuteContractMessageType([]byte(wasmContractExecuteMessage)) + suite.Require().Equal("", messageType) +} + +func (suite *WasmTestSuite) TestBigDipperTypes_CorrectlyParseWasmContractExecuteMessageType_SingleValueIsNil() { + wasmContractExecuteMessage := `"this should not return a message type"` + messageType := GetWasmExecuteContractMessageType([]byte(wasmContractExecuteMessage)) + suite.Require().Equal("", messageType) +} + +func (suite *WasmTestSuite) TestBigDipperTypes_CorrectlyParseWasmContractExecuteMessageType_SingleKeyParses() { + wasmContractExecuteMessage := `{ + "foo": { + "arg1": 1, + "arg2": true, + "arg3": { + "arg4": "4" + } + } +}` + messageType := GetWasmExecuteContractMessageType([]byte(wasmContractExecuteMessage)) + suite.Require().Equal("foo", messageType) +} + +func (suite *WasmTestSuite) TestBigDipperTypes_CorrectlyParseWasmContractExecuteMessageType_TwoKeysParses() { + wasmContractExecuteMessage := `{ + "foo": "1", + "bar": "2" +}` + messageType := GetWasmExecuteContractMessageType([]byte(wasmContractExecuteMessage)) + suite.Require().Equal("foo,bar", messageType) +}