From 77753d2d5ea0994edd3505152d80aa8ff3cfe127 Mon Sep 17 00:00:00 2001 From: Mark Sinclair Date: Fri, 16 Sep 2022 16:20:57 +0100 Subject: [PATCH] Use COMDEX chain as base swapping main app for wasm app Change docker image bases Change golang version Process Nyx chain cosmwasm transactions Add Nym specific tables Add module to hand-off message processing to an external API (Typescript + Express + postgres) --- .gitignore | 1 + Dockerfile | 15 +- README.md | 8 + cmd/bdjuno/main.go | 4 +- database/consensus.go | 38 ++ database/messages.go | 48 ++ database/schema/12-wasm.sql | 8 +- database/schema/13-wasm-events.sql | 13 + database/schema/14-nyx-nym-mixnet-v1.sql | 82 ++++ database/schema/15-nyx-nym-mixnet-v2.sql | 67 +++ database/types/messages.go | 54 +++ database/types/wasm.go | 55 ++- database/wasm.go | 47 +- go.mod | 6 +- go.sum | 241 +--------- hasura/Dockerfile | 5 + hasura/docker-entrypoint.sh | 7 + hasura/metadata/actions.graphql | 227 +++++---- hasura/metadata/actions.yaml | 441 ++++++------------ hasura/metadata/allow_list.yaml | 2 +- hasura/metadata/api_limits.yaml | 1 + .../bdjuno/tables/public_account.yaml | 121 +++-- ...ublic_average_block_time_from_genesis.yaml | 14 +- .../public_average_block_time_per_day.yaml | 14 +- .../public_average_block_time_per_hour.yaml | 14 +- .../public_average_block_time_per_minute.yaml | 14 +- .../databases/bdjuno/tables/public_block.yaml | 177 ++++--- .../bdjuno/tables/public_community_pool.yaml | 14 +- .../tables/public_distribution_params.yaml | 16 +- .../tables/public_double_sign_evidence.yaml | 44 +- .../tables/public_double_sign_vote.yaml | 86 ++-- .../tables/public_fee_grant_allowance.yaml | 32 +- .../bdjuno/tables/public_genesis.yaml | 32 +- .../bdjuno/tables/public_gov_params.yaml | 20 +- .../bdjuno/tables/public_inflation.yaml | 26 +- .../bdjuno/tables/public_message.yaml | 52 ++- .../bdjuno/tables/public_mint_params.yaml | 16 +- .../bdjuno/tables/public_modules.yaml | 12 +- .../public_nyx_nym_mixnet_v1_gateway.yaml | 11 + ...blic_nyx_nym_mixnet_v1_gateway_events.yaml | 10 + .../public_nyx_nym_mixnet_v1_mixnode.yaml | 25 + ...blic_nyx_nym_mixnet_v1_mixnode_events.yaml | 19 + ...blic_nyx_nym_mixnet_v1_mixnode_reward.yaml | 19 + ...blic_nyx_nym_mixnet_v1_mixnode_status.yaml | 10 + .../public_nyx_nym_mixnet_v2_events.yaml | 10 + .../public_nyx_nym_mixnet_v2_mixnode.yaml | 25 + ...blic_nyx_nym_mixnet_v2_mixnode_reward.yaml | 10 + ...blic_nyx_nym_mixnet_v2_mixnode_status.yaml | 10 + .../bdjuno/tables/public_pre_commit.yaml | 46 +- .../bdjuno/tables/public_proposal.yaml | 132 +++--- .../tables/public_proposal_deposit.yaml | 48 +- ...public_proposal_staking_pool_snapshot.yaml | 24 +- .../tables/public_proposal_tally_result.yaml | 28 +- ...ic_proposal_validator_status_snapshot.yaml | 36 +- .../bdjuno/tables/public_proposal_vote.yaml | 36 +- .../bdjuno/tables/public_slashing_params.yaml | 16 +- .../bdjuno/tables/public_staking_params.yaml | 16 +- .../bdjuno/tables/public_staking_pool.yaml | 16 +- .../bdjuno/tables/public_supply.yaml | 14 +- .../databases/bdjuno/tables/public_token.yaml | 26 +- .../bdjuno/tables/public_token_price.yaml | 26 +- .../tables/public_token_price_history.yaml | 24 +- .../bdjuno/tables/public_token_unit.yaml | 72 +-- .../bdjuno/tables/public_transaction.yaml | 53 ++- .../bdjuno/tables/public_validator.yaml | 194 ++++---- .../tables/public_validator_commission.yaml | 24 +- .../tables/public_validator_description.yaml | 32 +- .../bdjuno/tables/public_validator_info.yaml | 32 +- .../tables/public_validator_signing_info.yaml | 24 +- .../tables/public_validator_status.yaml | 26 +- .../tables/public_validator_voting_power.yaml | 28 +- .../bdjuno/tables/public_vesting_account.yaml | 42 +- .../bdjuno/tables/public_vesting_period.yaml | 24 +- .../bdjuno/tables/public_wasm_code.yaml | 34 +- .../bdjuno/tables/public_wasm_contract.yaml | 66 +-- .../tables/public_wasm_execute_contract.yaml | 48 +- .../public_wasm_execute_contract_event.yaml | 19 + ...lic_wasm_execute_contract_event_types.yaml | 13 + .../bdjuno/tables/public_wasm_params.yaml | 20 +- .../databases/bdjuno/tables/tables.yaml | 11 + .../graphql_schema_introspection.yaml | 1 + hasura/metadata/inherited_roles.yaml | 1 + hasura/metadata/network.yaml | 1 + hasura/metadata/query_collections.yaml | 66 ++- hasura/metadata/rest_endpoints.yaml | 10 +- .../actions/handle_additional_operations.go | 13 +- modules/actions/handlers/external.go | 35 ++ modules/actions/handlers/messages.go | 140 ++++++ modules/actions/module.go | 5 +- modules/actions/types/handler.go | 5 +- modules/actions/types/payload.go | 36 +- modules/external/config.go | 33 ++ modules/external/handle_tx.go | 35 ++ modules/external/module.go | 67 +++ modules/registrar.go | 7 +- modules/types/sources.go | 36 +- modules/wasm/handle_block.go | 11 + modules/wasm/handle_genesis.go | 1 + modules/wasm/handle_msg.go | 140 +++++- modules/wasm/handle_tx.go | 11 + modules/wasm/module.go | 6 +- modules/wasm/source/remote/source.go | 3 +- types/config/config.go | 15 +- types/wasm.go | 36 +- types/wasm_test.go | 68 +++ 105 files changed, 2703 insertions(+), 1552 deletions(-) create mode 100644 database/messages.go create mode 100644 database/schema/13-wasm-events.sql create mode 100644 database/schema/14-nyx-nym-mixnet-v1.sql create mode 100644 database/schema/15-nyx-nym-mixnet-v2.sql create mode 100644 database/types/messages.go create mode 100644 hasura/Dockerfile create mode 100644 hasura/docker-entrypoint.sh create mode 100644 hasura/metadata/api_limits.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_gateway.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_gateway_events.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_events.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_reward.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v1_mixnode_status.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_events.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode_reward.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_nyx_nym_mixnet_v2_mixnode_status.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract_event.yaml create mode 100644 hasura/metadata/databases/bdjuno/tables/public_wasm_execute_contract_event_types.yaml create mode 100644 hasura/metadata/graphql_schema_introspection.yaml create mode 100644 hasura/metadata/inherited_roles.yaml create mode 100644 hasura/metadata/network.yaml create mode 100644 modules/actions/handlers/external.go create mode 100644 modules/actions/handlers/messages.go create mode 100644 modules/external/config.go create mode 100644 modules/external/handle_tx.go create mode 100644 modules/external/module.go create mode 100644 modules/wasm/handle_block.go create mode 100644 modules/wasm/handle_tx.go create mode 100644 types/wasm_test.go 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) +}