diff --git a/.github/workflows/delete-branch-snapshot.yml b/.github/workflows/delete-branch-snapshot.yml index 1530751d3..30aeb8fe5 100644 --- a/.github/workflows/delete-branch-snapshot.yml +++ b/.github/workflows/delete-branch-snapshot.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Retrieve post upgrade snapshot generator binary run: | - POST_UPGRADE_SNAPSHOT_GENERATOR_VERSION=v0.3.18 + POST_UPGRADE_SNAPSHOT_GENERATOR_VERSION=v0.4.0 DOWNLOAD_URL=https://github.com/elys-network/post-upgrade-snapshot-generator/releases/download/${POST_UPGRADE_SNAPSHOT_GENERATOR_VERSION}/post-upgrade-snapshot-generator-${POST_UPGRADE_SNAPSHOT_GENERATOR_VERSION}-linux-amd64 POST_UPGRADE_SNAPSHOT_GENERATOR_PATH=/tmp/post-upgrade-snapshot-generator-${POST_UPGRADE_SNAPSHOT_GENERATOR_VERSION} curl -L $DOWNLOAD_URL -o $POST_UPGRADE_SNAPSHOT_GENERATOR_PATH && chmod +x $POST_UPGRADE_SNAPSHOT_GENERATOR_PATH diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5f5370251..313f567af 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,7 +31,7 @@ jobs: # helper functions extract_txhash() { awk -F 'txhash: ' '/txhash:/{print $2; exit}'; } extract_proposal_id() { awk -F 'key: proposal_id|value: ' '/key: proposal_id/ { getline; gsub(/"/, "", $2); print $2; exit }'; } - extract_and_calc_upgrade_height() { awk -F'"latest_block_height":"' '{ split($2,a,"\""); print a[1]+900; exit }'; } + extract_and_calc_upgrade_height() { awk -F'"latest_block_height":"' '{ split($2,a,"\""); print a[1]+4500; exit }'; } extract_checksum() { awk "/elysd-${{ github.ref_name }}-linux-amd64.tar.gz/ {print \$1; exit}"; } # environment variables diff --git a/.github/workflows/software-upgrade-test.yml b/.github/workflows/software-upgrade-test.yml index c6ba7d3ad..c2b550710 100644 --- a/.github/workflows/software-upgrade-test.yml +++ b/.github/workflows/software-upgrade-test.yml @@ -49,7 +49,7 @@ jobs: - name: Retrieve post upgrade snapshot generator binary run: | - POST_UPGRADE_SNAPSHOT_GENERATOR_VERSION=v0.3.17 + POST_UPGRADE_SNAPSHOT_GENERATOR_VERSION=v0.4.0 DOWNLOAD_URL=https://github.com/elys-network/post-upgrade-snapshot-generator/releases/download/${POST_UPGRADE_SNAPSHOT_GENERATOR_VERSION}/post-upgrade-snapshot-generator-${POST_UPGRADE_SNAPSHOT_GENERATOR_VERSION}-linux-amd64 POST_UPGRADE_SNAPSHOT_GENERATOR_PATH=/tmp/post-upgrade-snapshot-generator-${POST_UPGRADE_SNAPSHOT_GENERATOR_VERSION} curl -L $DOWNLOAD_URL -o $POST_UPGRADE_SNAPSHOT_GENERATOR_PATH && chmod +x $POST_UPGRADE_SNAPSHOT_GENERATOR_PATH @@ -157,7 +157,7 @@ jobs: run: | ${POST_UPGRADE_SNAPSHOT_GENERATOR_PATH} chain-snapshot-export \ ${SNAPSHOT_FILE_PATH} \ - ${NEW_BINARY_PATH} \ + ${OLD_BINARY_PATH} \ --timeout-next-block 100000 \ --timeout-wait-for-node 100000 if: steps.cache-submit-new-proposal.outputs.cache-hit != 'true' @@ -173,7 +173,7 @@ jobs: - name: Create second validator run: | ${POST_UPGRADE_SNAPSHOT_GENERATOR_PATH} create-second-validator \ - ${NEW_BINARY_PATH} \ + ${OLD_BINARY_PATH} \ --timeout-next-block 100000 \ --timeout-wait-for-node 100000 if: steps.cache-submit-new-proposal.outputs.cache-hit != 'true' diff --git a/app/setup_handlers.go b/app/setup_handlers.go index 3846d9935..de093db7d 100644 --- a/app/setup_handlers.go +++ b/app/setup_handlers.go @@ -7,12 +7,13 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" m "github.com/cosmos/cosmos-sdk/types/module" "github.com/cosmos/cosmos-sdk/version" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" ) const ( // make sure to update these when you upgrade the version - NextVersion = "v0.45.1" + NextVersion = "v0.46.0" LocalNetVersion = "v999.999.999" ) @@ -33,6 +34,11 @@ func setUpgradeHandler(app *ElysApp) { // Add any logic here to run when the chain is upgraded to the new version + app.Logger().Info("Deleting proposals with ID < 274") + store := ctx.KVStore(app.keys[govtypes.StoreKey]) + for i := uint64(1); i < 274; i++ { + store.Delete(govtypes.ProposalKey(i)) + } } return app.mm.RunMigrations(ctx, app.configurator, vm) diff --git a/docs/static/openapi.yml b/docs/static/openapi.yml index 171732d87..dcce36706 100644 --- a/docs/static/openapi.yml +++ b/docs/static/openapi.yml @@ -40541,16 +40541,10 @@ paths: eden_amount_per_year: type: string title: reward amount in eden for 1 year - distribution_start_block: - type: string - title: starting block height of the distribution - total_blocks_per_year: - type: string - title: distribution duration - block number per year blocks_distributed: type: string + format: int64 title: blocks distributed - title: Incentive Info eden_commit_val: type: string edenb_commit_val: @@ -40566,6 +40560,7 @@ paths: properties: num_blocks: type: string + format: int64 title: >- Number of blocks since start of epoch (distribution epoch) @@ -41446,9 +41441,6 @@ paths: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -41536,9 +41528,6 @@ paths: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -41707,9 +41696,6 @@ paths: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -41878,9 +41864,6 @@ paths: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -42597,7 +42580,7 @@ paths: title: external reward denoms on the pool enable_eden_rewards: type: boolean - title: Enabled or disabled eden rewards + title: Enable or disable eden rewards default: description: An unexpected error response. schema: @@ -43641,12 +43624,20 @@ paths: type: string open_price: type: string + stop_loss_price: + type: string last_interest_calc_time: type: string format: uint64 last_interest_calc_block: type: string format: uint64 + last_funding_calc_time: + type: string + format: uint64 + last_funding_calc_block: + type: string + format: uint64 default: description: An unexpected error response. schema: @@ -43755,12 +43746,20 @@ paths: type: string open_price: type: string + stop_loss_price: + type: string last_interest_calc_time: type: string format: uint64 last_interest_calc_block: type: string format: uint64 + last_funding_calc_time: + type: string + format: uint64 + last_funding_calc_block: + type: string + format: uint64 pagination: type: object properties: @@ -43949,12 +43948,20 @@ paths: type: string open_price: type: string + stop_loss_price: + type: string last_interest_calc_time: type: string format: uint64 last_interest_calc_block: type: string format: uint64 + last_funding_calc_time: + type: string + format: uint64 + last_funding_calc_block: + type: string + format: uint64 pagination: type: object properties: @@ -44659,12 +44666,20 @@ paths: type: string open_price: type: string + stop_loss_price: + type: string last_interest_calc_time: type: string format: uint64 last_interest_calc_block: type: string format: uint64 + last_funding_calc_time: + type: string + format: uint64 + last_funding_calc_block: + type: string + format: uint64 pagination: type: object properties: @@ -46103,6 +46118,448 @@ paths: additionalProperties: {} tags: - Query + /elys-network/elys/tradeshield/pending_perpetual_order: + get: + operationId: ElysTradeshieldPendingPerpetualOrderAll + responses: + '200': + description: A successful response. + schema: + type: object + properties: + PendingPerpetualOrder: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + order: + type: string + creator: + type: string + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + default: + description: An unexpected error response. + schema: + type: object + properties: + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + '@type': + type: string + additionalProperties: {} + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean + tags: + - Query + /elys-network/elys/tradeshield/pending_perpetual_order/{id}: + get: + summary: Queries a list of PendingPerpetualOrder items. + operationId: ElysTradeshieldPendingPerpetualOrder + responses: + '200': + description: A successful response. + schema: + type: object + properties: + PendingPerpetualOrder: + type: object + properties: + id: + type: string + format: uint64 + order: + type: string + creator: + type: string + default: + description: An unexpected error response. + schema: + type: object + properties: + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + '@type': + type: string + additionalProperties: {} + parameters: + - name: id + in: path + required: true + type: string + format: uint64 + tags: + - Query + /elys-network/elys/tradeshield/pending_spot_order: + get: + operationId: ElysTradeshieldPendingSpotOrderAll + responses: + '200': + description: A successful response. + schema: + type: object + properties: + PendingSpotOrder: + type: array + items: + type: object + properties: + order_type: + type: string + enum: + - STOPLOSS + - LIMITSELL + - LIMITBUY + - MARKETBUY + default: STOPLOSS + title: Spot order + order_id: + type: string + format: uint64 + order_price: + type: object + properties: + base_denom: + type: string + quote_denom: + type: string + rate: + type: string + order_amount: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + owner_address: + type: string + order_target_denom: + type: string + status: + type: string + enum: + - PENDING + - EXECUTED + - CANCLED + default: PENDING + date: + type: object + properties: + height: + type: string + format: uint64 + timestamp: + type: string + format: uint64 + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + default: + description: An unexpected error response. + schema: + type: object + properties: + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + '@type': + type: string + additionalProperties: {} + parameters: + - name: pagination.key + description: |- + key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. + in: query + required: false + type: string + format: byte + - name: pagination.offset + description: >- + offset is a numeric offset that can be used when key is unavailable. + + It is less efficient than using key. Only one of offset or key + should + + be set. + in: query + required: false + type: string + format: uint64 + - name: pagination.limit + description: >- + limit is the total number of results to be returned in the result + page. + + If left empty it will default to a value to be set by each app. + in: query + required: false + type: string + format: uint64 + - name: pagination.count_total + description: >- + count_total is set to true to indicate that the result set should + include + + a count of the total number of items available for pagination in + UIs. + + count_total is only respected when offset is used. It is ignored + when key + + is set. + in: query + required: false + type: boolean + - name: pagination.reverse + description: >- + reverse is set to true if results are to be returned in the + descending order. + + + Since: cosmos-sdk 0.43 + in: query + required: false + type: boolean + tags: + - Query + /elys-network/elys/tradeshield/pending_spot_order/{id}: + get: + summary: Queries a list of PendingSpotOrder items. + operationId: ElysTradeshieldPendingSpotOrder + responses: + '200': + description: A successful response. + schema: + type: object + properties: + PendingSpotOrder: + type: object + properties: + order_type: + type: string + enum: + - STOPLOSS + - LIMITSELL + - LIMITBUY + - MARKETBUY + default: STOPLOSS + title: Spot order + order_id: + type: string + format: uint64 + order_price: + type: object + properties: + base_denom: + type: string + quote_denom: + type: string + rate: + type: string + order_amount: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the + custom method + + signatures required by gogoproto. + owner_address: + type: string + order_target_denom: + type: string + status: + type: string + enum: + - PENDING + - EXECUTED + - CANCLED + default: PENDING + date: + type: object + properties: + height: + type: string + format: uint64 + timestamp: + type: string + format: uint64 + default: + description: An unexpected error response. + schema: + type: object + properties: + code: + type: integer + format: int32 + message: + type: string + details: + type: array + items: + type: object + properties: + '@type': + type: string + additionalProperties: {} + parameters: + - name: id + in: path + required: true + type: string + format: uint64 + tags: + - Query /elys-network/elys/transferhook/params: get: summary: Parameters queries the parameters of the module. @@ -87233,6 +87690,7 @@ definitions: properties: num_blocks: type: string + format: int64 title: Number of blocks since start of epoch (distribution epoch) amount: type: string @@ -87248,16 +87706,10 @@ definitions: eden_amount_per_year: type: string title: reward amount in eden for 1 year - distribution_start_block: - type: string - title: starting block height of the distribution - total_blocks_per_year: - type: string - title: distribution duration - block number per year blocks_distributed: type: string + format: int64 title: blocks distributed - title: Incentive Info elys.estaking.MsgUpdateParamsResponse: type: object description: >- @@ -87332,16 +87784,10 @@ definitions: eden_amount_per_year: type: string title: reward amount in eden for 1 year - distribution_start_block: - type: string - title: starting block height of the distribution - total_blocks_per_year: - type: string - title: distribution duration - block number per year blocks_distributed: type: string + format: int64 title: blocks distributed - title: Incentive Info eden_commit_val: type: string edenb_commit_val: @@ -87357,6 +87803,7 @@ definitions: properties: num_blocks: type: string + format: int64 title: Number of blocks since start of epoch (distribution epoch) amount: type: string @@ -87384,16 +87831,10 @@ definitions: eden_amount_per_year: type: string title: reward amount in eden for 1 year - distribution_start_block: - type: string - title: starting block height of the distribution - total_blocks_per_year: - type: string - title: distribution duration - block number per year blocks_distributed: type: string + format: int64 title: blocks distributed - title: Incentive Info eden_commit_val: type: string edenb_commit_val: @@ -87409,6 +87850,7 @@ definitions: properties: num_blocks: type: string + format: int64 title: Number of blocks since start of epoch (distribution epoch) amount: type: string @@ -87597,8 +88039,6 @@ definitions: type: string is_whitelisted: type: boolean - elys.leveragelp.MsgAddCollateralResponse: - type: object elys.leveragelp.MsgAddPoolResponse: type: object elys.leveragelp.MsgClaimRewardsResponse: @@ -87709,9 +88149,6 @@ definitions: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -87753,9 +88190,6 @@ definitions: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -87813,9 +88247,6 @@ definitions: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -87865,9 +88296,6 @@ definitions: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -87944,9 +88372,6 @@ definitions: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -88024,9 +88449,6 @@ definitions: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -88217,9 +88639,6 @@ definitions: liabilities: type: string title: For recording - leverage: - type: string - title: For recording leveraged_lp_amount: type: string position_health: @@ -88498,7 +88917,7 @@ definitions: title: external reward denoms on the pool enable_eden_rewards: type: boolean - title: Enabled or disabled eden rewards + title: Enable or disable eden rewards elys.masterchef.PoolMultiplier: type: object properties: @@ -88668,7 +89087,7 @@ definitions: title: external reward denoms on the pool enable_eden_rewards: type: boolean - title: Enabled or disabled eden rewards + title: Enable or disable eden rewards elys.masterchef.QueryPoolRewardInfoResponse: type: object properties: @@ -89319,12 +89738,20 @@ definitions: type: string open_price: type: string + stop_loss_price: + type: string last_interest_calc_time: type: string format: uint64 last_interest_calc_block: type: string format: uint64 + last_funding_calc_time: + type: string + format: uint64 + last_funding_calc_block: + type: string + format: uint64 elys.perpetual.MTPResponse: type: object properties: @@ -89394,12 +89821,20 @@ definitions: type: string open_price: type: string + stop_loss_price: + type: string last_interest_calc_time: type: string format: uint64 last_interest_calc_block: type: string format: uint64 + last_funding_calc_time: + type: string + format: uint64 + last_funding_calc_block: + type: string + format: uint64 elys.perpetual.MsgAddCollateralResponse: type: object elys.perpetual.MsgClosePositionsResponse: @@ -89422,6 +89857,8 @@ definitions: format: uint64 elys.perpetual.MsgUpdateParamsResponse: type: object + elys.perpetual.MsgUpdateStopLossResponse: + type: object elys.perpetual.MsgWhitelistResponse: type: object elys.perpetual.Params: @@ -89616,6 +90053,14 @@ definitions: - LONG - SHORT default: UNSPECIFIED + elys.perpetual.PositionRequest: + type: object + properties: + address: + type: string + id: + type: string + format: uint64 elys.perpetual.PositionsByPoolResponse: type: object properties: @@ -89687,12 +90132,20 @@ definitions: type: string open_price: type: string + stop_loss_price: + type: string last_interest_calc_time: type: string format: uint64 last_interest_calc_block: type: string format: uint64 + last_funding_calc_time: + type: string + format: uint64 + last_funding_calc_block: + type: string + format: uint64 pagination: type: object properties: @@ -89790,12 +90243,20 @@ definitions: type: string open_price: type: string + stop_loss_price: + type: string last_interest_calc_time: type: string format: uint64 last_interest_calc_block: type: string format: uint64 + last_funding_calc_time: + type: string + format: uint64 + last_funding_calc_block: + type: string + format: uint64 pagination: type: object properties: @@ -89893,12 +90354,20 @@ definitions: type: string open_price: type: string + stop_loss_price: + type: string last_interest_calc_time: type: string format: uint64 last_interest_calc_block: type: string format: uint64 + last_funding_calc_time: + type: string + format: uint64 + last_funding_calc_block: + type: string + format: uint64 pagination: type: object properties: @@ -90715,9 +91184,263 @@ definitions: format: uint64 authority: type: string + elys.tradeshield.Date: + type: object + properties: + height: + type: string + format: uint64 + timestamp: + type: string + format: uint64 + elys.tradeshield.MsgCreatePendingPerpetualOrderResponse: + type: object + properties: + id: + type: string + format: uint64 + elys.tradeshield.MsgCreatePendingSpotOrderResponse: + type: object + properties: + id: + type: string + format: uint64 + elys.tradeshield.MsgDeletePendingPerpetualOrderResponse: + type: object + elys.tradeshield.MsgDeletePendingSpotOrderResponse: + type: object + elys.tradeshield.MsgUpdatePendingPerpetualOrderResponse: + type: object + elys.tradeshield.MsgUpdatePendingSpotOrderResponse: + type: object + elys.tradeshield.OrderPrice: + type: object + properties: + base_denom: + type: string + quote_denom: + type: string + rate: + type: string elys.tradeshield.Params: type: object description: Params defines the parameters for the module. + elys.tradeshield.PendingPerpetualOrder: + type: object + properties: + id: + type: string + format: uint64 + order: + type: string + creator: + type: string + elys.tradeshield.QueryAllPendingPerpetualOrderResponse: + type: object + properties: + PendingPerpetualOrder: + type: array + items: + type: object + properties: + id: + type: string + format: uint64 + order: + type: string + creator: + type: string + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + elys.tradeshield.QueryAllPendingSpotOrderResponse: + type: object + properties: + PendingSpotOrder: + type: array + items: + type: object + properties: + order_type: + type: string + enum: + - STOPLOSS + - LIMITSELL + - LIMITBUY + - MARKETBUY + default: STOPLOSS + title: Spot order + order_id: + type: string + format: uint64 + order_price: + type: object + properties: + base_denom: + type: string + quote_denom: + type: string + rate: + type: string + order_amount: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + owner_address: + type: string + order_target_denom: + type: string + status: + type: string + enum: + - PENDING + - EXECUTED + - CANCLED + default: PENDING + date: + type: object + properties: + height: + type: string + format: uint64 + timestamp: + type: string + format: uint64 + pagination: + type: object + properties: + next_key: + type: string + format: byte + description: |- + next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. + total: + type: string + format: uint64 + title: >- + total is total number of results available if + PageRequest.count_total + + was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } + elys.tradeshield.QueryGetPendingPerpetualOrderResponse: + type: object + properties: + PendingPerpetualOrder: + type: object + properties: + id: + type: string + format: uint64 + order: + type: string + creator: + type: string + elys.tradeshield.QueryGetPendingSpotOrderResponse: + type: object + properties: + PendingSpotOrder: + type: object + properties: + order_type: + type: string + enum: + - STOPLOSS + - LIMITSELL + - LIMITBUY + - MARKETBUY + default: STOPLOSS + title: Spot order + order_id: + type: string + format: uint64 + order_price: + type: object + properties: + base_denom: + type: string + quote_denom: + type: string + rate: + type: string + order_amount: + type: object + properties: + denom: + type: string + amount: + type: string + description: >- + Coin defines a token with a denomination and an amount. + + + NOTE: The amount field is an Int which implements the custom + method + + signatures required by gogoproto. + owner_address: + type: string + order_target_denom: + type: string + status: + type: string + enum: + - PENDING + - EXECUTED + - CANCLED + default: PENDING + date: + type: object + properties: + height: + type: string + format: uint64 + timestamp: + type: string + format: uint64 elys.tradeshield.QueryParamsResponse: type: object properties: @@ -90725,6 +91448,78 @@ definitions: description: params holds all the parameters of this module. type: object description: QueryParamsResponse is response type for the Query/Params RPC method. + elys.tradeshield.SpotOrder: + type: object + properties: + order_type: + type: string + enum: + - STOPLOSS + - LIMITSELL + - LIMITBUY + - MARKETBUY + default: STOPLOSS + title: Spot order + order_id: + type: string + format: uint64 + order_price: + type: object + properties: + base_denom: + type: string + quote_denom: + type: string + rate: + type: string + order_amount: + type: object + properties: + denom: + type: string + amount: + type: string + description: |- + Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. + owner_address: + type: string + order_target_denom: + type: string + status: + type: string + enum: + - PENDING + - EXECUTED + - CANCLED + default: PENDING + date: + type: object + properties: + height: + type: string + format: uint64 + timestamp: + type: string + format: uint64 + elys.tradeshield.SpotOrderType: + type: string + enum: + - STOPLOSS + - LIMITSELL + - LIMITBUY + - MARKETBUY + default: STOPLOSS + title: Spot order + elys.tradeshield.Status: + type: string + enum: + - PENDING + - EXECUTED + - CANCLED + default: PENDING elys.transferhook.Params: type: object properties: diff --git a/proto/elys/tradeshield/genesis.proto b/proto/elys/tradeshield/genesis.proto index de5b4ea76..ed9ad20b0 100644 --- a/proto/elys/tradeshield/genesis.proto +++ b/proto/elys/tradeshield/genesis.proto @@ -1,12 +1,19 @@ syntax = "proto3"; + package elys.tradeshield; import "gogoproto/gogo.proto"; import "elys/tradeshield/params.proto"; +import "elys/tradeshield/types.proto"; option go_package = "github.com/elys-network/elys/x/tradeshield/types"; // GenesisState defines the tradeshield module's genesis state. message GenesisState { - Params params = 1 [(gogoproto.nullable) = false]; + Params params = 1 [(gogoproto.nullable) = false]; + repeated SpotOrder pendingSpotOrderList = 2 [(gogoproto.nullable) = false]; + uint64 pendingSpotOrderCount = 3; + repeated PerpetualOrder pendingPerpetualOrderList = 4 [(gogoproto.nullable) = false]; + uint64 pendingPerpetualOrderCount = 5; } + diff --git a/proto/elys/tradeshield/query.proto b/proto/elys/tradeshield/query.proto index 71a117e52..743780618 100644 --- a/proto/elys/tradeshield/query.proto +++ b/proto/elys/tradeshield/query.proto @@ -1,26 +1,85 @@ syntax = "proto3"; + package elys.tradeshield; import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; import "elys/tradeshield/params.proto"; +import "elys/tradeshield/types.proto"; option go_package = "github.com/elys-network/elys/x/tradeshield/types"; // Query defines the gRPC querier service. service Query { + // Parameters queries the parameters of the module. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + rpc Params (QueryParamsRequest) returns (QueryParamsResponse) { option (google.api.http).get = "/elys-network/elys/tradeshield/params"; + + } + + // Queries a list of PendingSpotOrder items. + rpc PendingSpotOrder (QueryGetPendingSpotOrderRequest) returns (QueryGetPendingSpotOrderResponse) { + option (google.api.http).get = "/elys-network/elys/tradeshield/pending_spot_order/{id}"; + + } + rpc PendingSpotOrderAll (QueryAllPendingSpotOrderRequest) returns (QueryAllPendingSpotOrderResponse) { + option (google.api.http).get = "/elys-network/elys/tradeshield/pending_spot_order"; + + } + + // Queries a list of PendingPerpetualOrder items. + rpc PendingPerpetualOrder (QueryGetPendingPerpetualOrderRequest) returns (QueryGetPendingPerpetualOrderResponse) { + option (google.api.http).get = "/elys-network/elys/tradeshield/pending_perpetual_order/{id}"; + + } + rpc PendingPerpetualOrderAll (QueryAllPendingPerpetualOrderRequest) returns (QueryAllPendingPerpetualOrderResponse) { + option (google.api.http).get = "/elys-network/elys/tradeshield/pending_perpetual_order"; + } } - // QueryParamsRequest is request type for the Query/Params RPC method. message QueryParamsRequest {} // QueryParamsResponse is response type for the Query/Params RPC method. message QueryParamsResponse { + // params holds all the parameters of this module. Params params = 1 [(gogoproto.nullable) = false]; -} \ No newline at end of file +} + +message QueryGetPendingSpotOrderRequest { + uint64 id = 1; +} + +message QueryGetPendingSpotOrderResponse { + SpotOrder PendingSpotOrder = 1 [(gogoproto.nullable) = false]; +} + +message QueryAllPendingSpotOrderRequest { + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +message QueryAllPendingSpotOrderResponse { + repeated SpotOrder PendingSpotOrder = 1 [(gogoproto.nullable) = false]; + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +message QueryGetPendingPerpetualOrderRequest { + uint64 id = 1; +} + +message QueryGetPendingPerpetualOrderResponse { + PerpetualOrder PendingPerpetualOrder = 1 [(gogoproto.nullable) = false]; +} + +message QueryAllPendingPerpetualOrderRequest { + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +message QueryAllPendingPerpetualOrderResponse { + repeated PerpetualOrder PendingPerpetualOrder = 1 [(gogoproto.nullable) = false]; + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + diff --git a/proto/elys/tradeshield/tx.proto b/proto/elys/tradeshield/tx.proto index cb6db37b3..a97caec44 100644 --- a/proto/elys/tradeshield/tx.proto +++ b/proto/elys/tradeshield/tx.proto @@ -1,7 +1,71 @@ syntax = "proto3"; + package elys.tradeshield; +import "elys/tradeshield/types.proto"; +import "cosmos/base/v1beta1/coin.proto"; + option go_package = "github.com/elys-network/elys/x/tradeshield/types"; // Msg defines the Msg service. -service Msg {} \ No newline at end of file +service Msg { + rpc CreatePendingSpotOrder (MsgCreatePendingSpotOrder ) returns (MsgCreatePendingSpotOrderResponse ); + rpc UpdatePendingSpotOrder (MsgUpdatePendingSpotOrder ) returns (MsgUpdatePendingSpotOrderResponse ); + rpc DeletePendingSpotOrder (MsgDeletePendingSpotOrder ) returns (MsgDeletePendingSpotOrderResponse ); + rpc CreatePendingPerpetualOrder (MsgCreatePendingPerpetualOrder) returns (MsgCreatePendingPerpetualOrderResponse); + rpc UpdatePendingPerpetualOrder (MsgUpdatePendingPerpetualOrder) returns (MsgUpdatePendingPerpetualOrderResponse); + rpc DeletePendingPerpetualOrder (MsgDeletePendingPerpetualOrder) returns (MsgDeletePendingPerpetualOrderResponse); +} +message MsgCreatePendingSpotOrder { + SpotOrderType order_type = 1; + OrderPrice order_price = 3; + cosmos.base.v1beta1.Coin order_amount = 4; + string owner_address = 5; + string order_target_denom = 6; + Status status = 7; + Date date = 8; +} + +message MsgCreatePendingSpotOrderResponse { + uint64 id = 1; +} + +message MsgUpdatePendingSpotOrder { + string creator = 1; + uint64 id = 2; + string order = 3; +} + +message MsgUpdatePendingSpotOrderResponse {} + +message MsgDeletePendingSpotOrder { + string creator = 1; + uint64 id = 2; +} + +message MsgDeletePendingSpotOrderResponse {} + +message MsgCreatePendingPerpetualOrder { + string creator = 1; + string order = 2; +} + +message MsgCreatePendingPerpetualOrderResponse { + uint64 id = 1; +} + +message MsgUpdatePendingPerpetualOrder { + string creator = 1; + uint64 id = 2; + string order = 3; +} + +message MsgUpdatePendingPerpetualOrderResponse {} + +message MsgDeletePendingPerpetualOrder { + string creator = 1; + uint64 id = 2; +} + +message MsgDeletePendingPerpetualOrderResponse {} + diff --git a/proto/elys/tradeshield/types.proto b/proto/elys/tradeshield/types.proto new file mode 100644 index 000000000..ffe77d024 --- /dev/null +++ b/proto/elys/tradeshield/types.proto @@ -0,0 +1,84 @@ +syntax = "proto3"; + +package elys.tradeshield; + +option go_package = "github.com/elys-network/elys/x/tradeshield/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +// Spot order +enum SpotOrderType { + STOPLOSS = 0; + LIMITSELL = 1; + LIMITBUY = 2; + MARKETBUY = 3; +} + +enum Status { + PENDING = 0; + EXECUTED = 1; + CANCLED = 2; +} + +message OrderPrice { + string base_denom = 1; + string quote_denom = 2; + string rate = 3 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; +} + +message Date { + uint64 height = 1; + uint64 timestamp = 2; +} + +message SpotOrder { + SpotOrderType order_type = 1; + uint64 order_id = 2; + OrderPrice order_price = 3; + cosmos.base.v1beta1.Coin order_amount = 4 [(gogoproto.nullable) = false]; + string owner_address = 5; + string order_target_denom = 6; + Status status = 7; + Date date = 8; +} + +// Perpetual Order +enum PerpetualOrderType { + LIMITOPEN = 0; + LIMITCLOSE = 1; + + MARKETOPEN = 2; + MARKETCLOSE = 3; + + STOPLOSSPERP = 4; +} + +enum PerpetualPosition { + UNSPECIFIED = 0; + LONG = 1; + SHORT = 2; +} + +message PerpetualOrder { + uint64 order_id = 1; + string owner_address = 2; + PerpetualOrderType perpetual_order_type = 3; + PerpetualPosition position = 4; + OrderPrice trigger_price = 5; + cosmos.base.v1beta1.Coin collateral = 6 [(gogoproto.nullable) = false]; + string trading_asset = 7; + string leverage = 8 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + string take_profit_price = 9 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + uint64 position_id = 10; + Status status = 11; +} \ No newline at end of file diff --git a/x/leveragelp/migrations/v12_migration.go b/x/leveragelp/migrations/v12_migration.go index 6a005d028..4cf815010 100644 --- a/x/leveragelp/migrations/v12_migration.go +++ b/x/leveragelp/migrations/v12_migration.go @@ -26,4 +26,4 @@ func (m Migrator) V12Migration(ctx sdk.Context) error { } return nil -} \ No newline at end of file +} diff --git a/x/leveragelp/types/types.pb.go b/x/leveragelp/types/types.pb.go index 86996cef0..e160f0b58 100644 --- a/x/leveragelp/types/types.pb.go +++ b/x/leveragelp/types/types.pb.go @@ -325,47 +325,46 @@ func init() { func init() { proto.RegisterFile("elys/leveragelp/types.proto", fileDescriptor_992d513dd201f55b) } var fileDescriptor_992d513dd201f55b = []byte{ - // 632 bytes of a gzipped FileDescriptorProto + // 610 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x95, 0x41, 0x6f, 0xd3, 0x30, - 0x18, 0x86, 0x9b, 0xd2, 0x6d, 0xad, 0xc7, 0xd6, 0xe2, 0x22, 0x14, 0x86, 0x94, 0x4d, 0x3d, 0xa0, - 0x5d, 0x96, 0x68, 0x20, 0x2e, 0x70, 0x40, 0x2b, 0x1c, 0x56, 0xd4, 0x43, 0x09, 0xda, 0x10, 0x68, - 0x22, 0x72, 0x63, 0xab, 0xb5, 0xe6, 0xc4, 0x21, 0x76, 0x0a, 0xfd, 0x17, 0x1c, 0xb8, 0xf3, 0x67, - 0x38, 0xec, 0xb8, 0x23, 0xe2, 0x30, 0xa1, 0xf6, 0x87, 0x80, 0x9c, 0xc6, 0x59, 0xb7, 0x0a, 0x04, - 0xd1, 0x76, 0xe0, 0xd4, 0x44, 0x9f, 0xbf, 0xa7, 0xaf, 0xdf, 0xef, 0x8d, 0x0d, 0xee, 0x11, 0x36, - 0x16, 0x0e, 0x23, 0x23, 0x12, 0xa3, 0x01, 0x61, 0x91, 0x23, 0xc7, 0x11, 0x11, 0x76, 0x14, 0x73, - 0xc9, 0x61, 0x5d, 0x15, 0xed, 0xf3, 0xe2, 0xc6, 0xed, 0x01, 0x1f, 0xf0, 0xb4, 0xe6, 0xa8, 0xa7, - 0xd9, 0xb2, 0x0d, 0xcb, 0xe7, 0x22, 0xe0, 0xc2, 0xe9, 0x23, 0x41, 0x9c, 0xd1, 0x6e, 0x9f, 0x48, - 0xb4, 0xeb, 0xf8, 0x9c, 0x86, 0xb3, 0x7a, 0xeb, 0x09, 0xa8, 0xf7, 0xb8, 0xa0, 0x92, 0xf2, 0xd0, - 0x25, 0xef, 0x13, 0x22, 0x24, 0x34, 0xc1, 0x0a, 0xc2, 0x38, 0x26, 0x42, 0x98, 0xc6, 0x96, 0xb1, - 0x5d, 0x73, 0xf5, 0x2b, 0x5c, 0x07, 0x65, 0x8a, 0xcd, 0xf2, 0x96, 0xb1, 0x5d, 0x71, 0xcb, 0x14, - 0xb7, 0xbe, 0x56, 0x40, 0x55, 0x77, 0xff, 0xa1, 0xed, 0x29, 0x00, 0x3e, 0x67, 0x0c, 0x49, 0x12, - 0x23, 0x96, 0xb6, 0xaf, 0x3e, 0xb8, 0x6b, 0xcf, 0x84, 0xd9, 0x4a, 0x98, 0x9d, 0x09, 0xb3, 0x9f, - 0x71, 0x1a, 0xb6, 0x2b, 0x27, 0x67, 0x9b, 0x25, 0x77, 0xae, 0x05, 0xf6, 0xc0, 0x2a, 0xa3, 0xa8, - 0x4f, 0x19, 0x95, 0x94, 0x08, 0xf3, 0x86, 0xc2, 0xb7, 0x6d, 0xb5, 0xec, 0xfb, 0xd9, 0xe6, 0xfd, - 0x01, 0x95, 0xc3, 0xa4, 0x6f, 0xfb, 0x3c, 0x70, 0xb2, 0xcd, 0xce, 0x7e, 0x76, 0x04, 0x3e, 0xce, - 0x2c, 0xeb, 0x84, 0xd2, 0x9d, 0x47, 0xc0, 0x17, 0xa0, 0xaa, 0xad, 0x33, 0x2b, 0xff, 0x8c, 0x7b, - 0x4e, 0x7c, 0x37, 0xef, 0x87, 0xef, 0x40, 0x53, 0x3f, 0x63, 0x8f, 0x45, 0x1e, 0x0a, 0x78, 0x12, - 0x4a, 0x73, 0xa9, 0x90, 0xca, 0x5b, 0x39, 0xaa, 0x1b, 0xed, 0xa5, 0x20, 0xf8, 0x1a, 0xd4, 0xa3, - 0xcc, 0x64, 0x6f, 0x48, 0x10, 0x93, 0x43, 0x73, 0xb9, 0x90, 0xe4, 0x75, 0x8d, 0xd9, 0x4f, 0x29, - 0xd9, 0x38, 0x57, 0xf4, 0x38, 0xa1, 0x05, 0x56, 0x51, 0x10, 0x78, 0x11, 0xe7, 0xcc, 0xa3, 0xd8, - 0xac, 0xa6, 0x85, 0x1a, 0x0a, 0x82, 0x1e, 0xe7, 0xac, 0x83, 0xe1, 0x21, 0xa8, 0x0b, 0xc9, 0x23, - 0x8f, 0x71, 0x21, 0xbc, 0x28, 0xa6, 0x3e, 0x31, 0x6b, 0x85, 0x84, 0xac, 0x29, 0x4c, 0x97, 0x0b, - 0xd1, 0x53, 0x90, 0xd6, 0x97, 0x25, 0xb0, 0xde, 0x25, 0x03, 0xe4, 0x8f, 0xff, 0xcf, 0x30, 0xbd, - 0x02, 0x6b, 0x34, 0x94, 0x24, 0x26, 0x42, 0x7a, 0x11, 0xa2, 0xb8, 0x40, 0xa2, 0x14, 0xf3, 0xa6, - 0x86, 0xf4, 0x10, 0xc5, 0x17, 0x12, 0xba, 0x74, 0x3d, 0x09, 0x5d, 0xbe, 0xc6, 0x84, 0xae, 0x5c, - 0x61, 0x42, 0xab, 0xbf, 0x4b, 0x68, 0xed, 0x2f, 0x12, 0x0a, 0xae, 0x22, 0xa1, 0x3f, 0x0d, 0xb0, - 0xf6, 0x32, 0x21, 0xf1, 0x79, 0x40, 0x1f, 0x81, 0xaa, 0xd6, 0x9a, 0x26, 0x54, 0x85, 0xf0, 0xd2, - 0x89, 0x6c, 0xe7, 0x07, 0x6b, 0xbe, 0x14, 0xbe, 0x01, 0x8d, 0x24, 0xc2, 0x48, 0xaa, 0x39, 0xe8, - 0xe9, 0x96, 0x0b, 0x29, 0xac, 0x67, 0x9c, 0xae, 0x1e, 0xf2, 0x11, 0x80, 0xf9, 0x10, 0x12, 0x81, - 0xbd, 0x11, 0x62, 0x09, 0x29, 0x10, 0x6f, 0x05, 0x6f, 0x68, 0xd2, 0x81, 0xc0, 0x87, 0x8a, 0xd3, - 0xfa, 0x5c, 0x06, 0x4d, 0xbd, 0x9f, 0xbd, 0x10, 0x77, 0xb2, 0xa8, 0xc2, 0xc7, 0x0b, 0x3e, 0x58, - 0x0b, 0x3e, 0x5c, 0x70, 0x6e, 0xce, 0x8c, 0x23, 0x00, 0xf3, 0xef, 0x26, 0x46, 0x92, 0x78, 0x43, - 0x9e, 0xc4, 0x05, 0xed, 0x68, 0x68, 0x92, 0x8b, 0x24, 0xd9, 0xe7, 0x49, 0x0c, 0x7d, 0x70, 0x67, - 0x91, 0xae, 0x9c, 0x29, 0xe8, 0x49, 0xf3, 0xf2, 0x3f, 0x1c, 0x08, 0xdc, 0xee, 0x9c, 0x4c, 0x2c, - 0xe3, 0x74, 0x62, 0x19, 0x3f, 0x26, 0x96, 0xf1, 0x69, 0x6a, 0x95, 0x4e, 0xa7, 0x56, 0xe9, 0xdb, - 0xd4, 0x2a, 0xbd, 0x75, 0xe6, 0xb0, 0xca, 0x90, 0x9d, 0x90, 0xc8, 0x0f, 0x3c, 0x3e, 0x4e, 0x5f, - 0x9c, 0x8f, 0x0b, 0xd7, 0x7a, 0x7f, 0x39, 0xbd, 0x90, 0x1f, 0xfe, 0x0a, 0x00, 0x00, 0xff, 0xff, - 0x9d, 0xe9, 0xb4, 0x6c, 0xf6, 0x07, 0x00, 0x00, + 0x18, 0x86, 0x9b, 0xae, 0x5b, 0x5b, 0x57, 0x6b, 0x8b, 0x8b, 0x50, 0x18, 0x52, 0x36, 0xf5, 0x80, + 0x76, 0x59, 0xa2, 0x81, 0xb8, 0xc0, 0x01, 0xad, 0x70, 0x58, 0x51, 0x0f, 0x25, 0xd2, 0x86, 0x40, + 0x13, 0x91, 0x1b, 0x5b, 0xad, 0x35, 0x27, 0x0e, 0xb1, 0x53, 0xe8, 0xbf, 0xe0, 0xc0, 0x8f, 0x9a, + 0x38, 0xed, 0x88, 0x38, 0x4c, 0xa8, 0xfd, 0x13, 0xdc, 0x40, 0x4e, 0xe3, 0xae, 0xac, 0x1a, 0x82, + 0x68, 0x1c, 0x38, 0xb5, 0xd6, 0xe7, 0xef, 0xc9, 0xe7, 0xf7, 0x7d, 0x65, 0x83, 0x7b, 0x84, 0x4d, + 0x84, 0xc3, 0xc8, 0x98, 0xc4, 0x68, 0x48, 0x58, 0xe4, 0xc8, 0x49, 0x44, 0x84, 0x1d, 0xc5, 0x5c, + 0x72, 0xd8, 0x50, 0x45, 0xfb, 0xb2, 0xb8, 0x75, 0x7b, 0xc8, 0x87, 0x3c, 0xad, 0x39, 0xea, 0xdf, + 0x7c, 0xdb, 0x96, 0xe5, 0x73, 0x11, 0x70, 0xe1, 0x0c, 0x90, 0x20, 0xce, 0x78, 0x7f, 0x40, 0x24, + 0xda, 0x77, 0x7c, 0x4e, 0xc3, 0x79, 0xbd, 0xfd, 0x04, 0x34, 0xfa, 0x5c, 0x50, 0x49, 0x79, 0xe8, + 0x92, 0x77, 0x09, 0x11, 0x12, 0x9a, 0xa0, 0x8c, 0x30, 0x8e, 0x89, 0x10, 0xa6, 0xb1, 0x63, 0xec, + 0x56, 0x5d, 0xbd, 0x84, 0x75, 0x50, 0xa4, 0xd8, 0x2c, 0xee, 0x18, 0xbb, 0x25, 0xb7, 0x48, 0x71, + 0xfb, 0xfb, 0x1a, 0xa8, 0xe8, 0xee, 0xdf, 0xb4, 0x3d, 0x05, 0xc0, 0xe7, 0x8c, 0x21, 0x49, 0x62, + 0xc4, 0xd2, 0xf6, 0xda, 0x83, 0xbb, 0xf6, 0x7c, 0x30, 0x5b, 0x0d, 0x66, 0x67, 0x83, 0xd9, 0xcf, + 0x38, 0x0d, 0x3b, 0xa5, 0xb3, 0x8b, 0xed, 0x82, 0xbb, 0xd4, 0x02, 0xfb, 0xa0, 0xc6, 0x28, 0x1a, + 0x50, 0x46, 0x25, 0x25, 0xc2, 0x5c, 0x53, 0xf8, 0x8e, 0xad, 0xb6, 0x7d, 0xbd, 0xd8, 0xbe, 0x3f, + 0xa4, 0x72, 0x94, 0x0c, 0x6c, 0x9f, 0x07, 0x4e, 0x76, 0xd8, 0xf9, 0xcf, 0x9e, 0xc0, 0xa7, 0x99, + 0x64, 0xdd, 0x50, 0xba, 0xcb, 0x08, 0xf8, 0x16, 0xb4, 0xb4, 0x74, 0xd8, 0x63, 0x91, 0x87, 0x02, + 0x9e, 0x84, 0xd2, 0x2c, 0xe5, 0x22, 0xdf, 0x5a, 0xa0, 0x7a, 0xd1, 0x41, 0x0a, 0x82, 0xaf, 0x40, + 0x23, 0xca, 0x84, 0xf1, 0x46, 0x04, 0x31, 0x39, 0x32, 0xd7, 0xff, 0x9a, 0xfd, 0x9c, 0xf8, 0x6e, + 0x5d, 0x63, 0x0e, 0x53, 0x4a, 0x66, 0xc1, 0x86, 0xb6, 0x00, 0x5a, 0xa0, 0x86, 0x82, 0xc0, 0x8b, + 0x38, 0x67, 0x1e, 0xc5, 0x66, 0x39, 0x2d, 0x54, 0x51, 0x10, 0xf4, 0x39, 0x67, 0x5d, 0x0c, 0x8f, + 0x41, 0x43, 0x48, 0x1e, 0x79, 0x8c, 0x0b, 0xe1, 0x45, 0x31, 0xf5, 0x89, 0x59, 0xc9, 0x35, 0xc8, + 0xa6, 0xc2, 0xf4, 0xb8, 0x10, 0x7d, 0x05, 0x69, 0x7f, 0x2e, 0x81, 0x7a, 0x8f, 0x0c, 0x91, 0x3f, + 0xf9, 0x3f, 0x03, 0xf0, 0x02, 0x54, 0xb4, 0x6b, 0x39, 0x5c, 0x57, 0x82, 0x2c, 0xfa, 0xaf, 0x0b, + 0xd3, 0xfa, 0x3f, 0x0c, 0xd3, 0xc6, 0x0d, 0x86, 0xa9, 0x7c, 0x5d, 0x98, 0x2a, 0x7f, 0x10, 0xa6, + 0xea, 0x4d, 0x84, 0xe9, 0x87, 0x01, 0x36, 0x5f, 0x26, 0x24, 0xbe, 0xcc, 0xd2, 0x23, 0x50, 0xd1, + 0xb3, 0xa6, 0x61, 0x52, 0x79, 0xb9, 0x72, 0xe1, 0xd9, 0x8b, 0x7b, 0x6b, 0xb1, 0x15, 0xbe, 0x06, + 0xcd, 0x24, 0xc2, 0x48, 0x2a, 0x1f, 0xb4, 0xbb, 0xc5, 0x5c, 0x13, 0x36, 0x32, 0x4e, 0x4f, 0x9b, + 0x7c, 0x02, 0xe0, 0xc2, 0x84, 0x44, 0x60, 0x6f, 0x8c, 0x58, 0x42, 0x72, 0x24, 0x51, 0xc1, 0x9b, + 0x9a, 0x74, 0x24, 0xf0, 0xb1, 0xe2, 0xb4, 0x3f, 0x15, 0x41, 0x4b, 0x9f, 0xe7, 0x20, 0xc4, 0xdd, + 0x50, 0x92, 0x58, 0xdd, 0xc5, 0x8f, 0x57, 0x74, 0xb0, 0x56, 0x74, 0xf8, 0x45, 0xb9, 0x25, 0x31, + 0x4e, 0x00, 0xa4, 0x19, 0xc7, 0x8b, 0x91, 0x24, 0xde, 0x88, 0x27, 0x71, 0x4e, 0x39, 0x9a, 0x9a, + 0xe4, 0x22, 0x49, 0x0e, 0x79, 0x12, 0x43, 0x1f, 0xdc, 0x59, 0xa5, 0x2b, 0x65, 0x72, 0x6a, 0xd2, + 0xba, 0xfa, 0x85, 0x23, 0x81, 0x3b, 0xdd, 0xb3, 0xa9, 0x65, 0x9c, 0x4f, 0x2d, 0xe3, 0xdb, 0xd4, + 0x32, 0x3e, 0xce, 0xac, 0xc2, 0xf9, 0xcc, 0x2a, 0x7c, 0x99, 0x59, 0x85, 0x37, 0xce, 0x12, 0x56, + 0x09, 0xb2, 0x17, 0x12, 0xf9, 0x9e, 0xc7, 0xa7, 0xe9, 0xc2, 0xf9, 0xb0, 0xf2, 0x6a, 0x0e, 0x36, + 0xd2, 0xf7, 0xee, 0xe1, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x04, 0xb1, 0x90, 0x7b, 0x55, 0x07, + 0x00, 0x00, } func (m *PositionRequest) Marshal() (dAtA []byte, err error) { diff --git a/x/perpetual/client/cli/tx_update_stop_loss.go b/x/perpetual/client/cli/tx_update_stop_loss.go index 678ef8e6b..a9fbb5383 100644 --- a/x/perpetual/client/cli/tx_update_stop_loss.go +++ b/x/perpetual/client/cli/tx_update_stop_loss.go @@ -20,7 +20,7 @@ func CmdUpdateStopLoss() *cobra.Command { Args: cobra.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) (err error) { argPrice, err := sdk.NewDecFromStr(args[0]) - if err!=nil { + if err != nil { return errors.New("invalid stoploss amount") } positionId, err := strconv.Atoi(args[1]) @@ -36,7 +36,7 @@ func CmdUpdateStopLoss() *cobra.Command { msg := types.NewMsgUpdateStopLoss( clientCtx.GetFromAddress().String(), uint64(positionId), - math.LegacyDec(argPrice), + math.LegacyDec(argPrice), ) if err := msg.ValidateBasic(); err != nil { return err diff --git a/x/perpetual/client/cli/tx_update_stop_loss_test.go b/x/perpetual/client/cli/tx_update_stop_loss_test.go index 9ccf64754..0d36b521c 100644 --- a/x/perpetual/client/cli/tx_update_stop_loss_test.go +++ b/x/perpetual/client/cli/tx_update_stop_loss_test.go @@ -27,4 +27,4 @@ func TestUpdatestopLoss(t *testing.T) { _, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdUpdateStopLoss(), args) require.NoError(t, err) -} \ No newline at end of file +} diff --git a/x/perpetual/keeper/check_same_asset_position_test.go b/x/perpetual/keeper/check_same_asset_position_test.go index a7b18517d..27c54a68b 100644 --- a/x/perpetual/keeper/check_same_asset_position_test.go +++ b/x/perpetual/keeper/check_same_asset_position_test.go @@ -23,11 +23,11 @@ func TestCheckSameAssetPosition_NewPosition(t *testing.T) { assert.Nil(t, err) msg := &types.MsgOpen{ - Creator: addr[0].String(), - Position: types.Position_SHORT, - Leverage: sdk.NewDec(1), - TradingAsset: ptypes.ATOM, - Collateral: sdk.NewCoin(ptypes.ATOM, sdk.NewInt(100)), + Creator: addr[0].String(), + Position: types.Position_SHORT, + Leverage: sdk.NewDec(1), + TradingAsset: ptypes.ATOM, + Collateral: sdk.NewCoin(ptypes.ATOM, sdk.NewInt(100)), StopLossPrice: sdk.NewDec(100), } diff --git a/x/perpetual/keeper/keeper_test.go b/x/perpetual/keeper/keeper_test.go index ef8740416..891320952 100644 --- a/x/perpetual/keeper/keeper_test.go +++ b/x/perpetual/keeper/keeper_test.go @@ -146,5 +146,5 @@ func SetupStableCoinPrices(ctx sdk.Context, oracle oraclekeeper.Keeper) { Provider: provider.String(), Timestamp: uint64(ctx.BlockTime().Unix()), }) - + } diff --git a/x/perpetual/keeper/process_mtp.go b/x/perpetual/keeper/process_mtp.go index 172cc482d..626e286a6 100644 --- a/x/perpetual/keeper/process_mtp.go +++ b/x/perpetual/keeper/process_mtp.go @@ -137,13 +137,12 @@ func (k Keeper) CheckAndCloseAtStopLoss(ctx sdk.Context, mtp *types.MTP, pool ty if !underStopLossPrice { return fmt.Errorf("mtp stop loss price is not <= token price") } - }else { + } else { underStopLossPrice := !mtp.StopLossPrice.IsNil() && tradingAssetPrice.Price.GTE(mtp.StopLossPrice) if !underStopLossPrice { return fmt.Errorf("mtp stop loss price is not => token price") } } - var ( repayAmount math.Int diff --git a/x/perpetual/module.go b/x/perpetual/module.go index 50decd4c4..54b1afcd0 100644 --- a/x/perpetual/module.go +++ b/x/perpetual/module.go @@ -117,9 +117,9 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(am.keeper)) types.RegisterQueryServer(cfg.QueryServer(), am.keeper) m := migrations.NewMigrator(am.keeper) - err := cfg.RegisterMigration(types.ModuleName, 5, m.V6Migration) + err := cfg.RegisterMigration(types.ModuleName, 5, m.V6Migration) if err != nil { - panic(err) + panic(err) } err = cfg.RegisterMigration(types.ModuleName, 6, m.V7Migration) if err != nil { diff --git a/x/perpetual/types/message_broker_open.go b/x/perpetual/types/message_broker_open.go index 7bccbe782..184411f72 100644 --- a/x/perpetual/types/message_broker_open.go +++ b/x/perpetual/types/message_broker_open.go @@ -8,7 +8,7 @@ import ( const TypeMsgBrokerOpen = "broker_open" -func NewMsgBrokerOpen(creator string, position Position, leverage sdk.Dec, tradingAsset string, collateral sdk.Coin, takeProfitPrice sdk.Dec, owner string, stopLossPrice sdk.Dec) *MsgBrokerOpen { +func NewMsgBrokerOpen(creator string, position Position, leverage sdk.Dec, tradingAsset string, collateral sdk.Coin, takeProfitPrice sdk.Dec, owner string, stopLossPrice sdk.Dec) *MsgBrokerOpen { return &MsgBrokerOpen{ Creator: creator, Position: position, diff --git a/x/perpetual/types/message_open.go b/x/perpetual/types/message_open.go index 45c7946e3..be2ace50a 100644 --- a/x/perpetual/types/message_open.go +++ b/x/perpetual/types/message_open.go @@ -10,7 +10,7 @@ const TypeMsgOpen = "open" var _ sdk.Msg = &MsgOpen{} -func NewMsgOpen(creator string, position Position, leverage sdk.Dec, tradingAsset string, collateral sdk.Coin, takeProfitPrice sdk.Dec, stopLossPrice sdk.Dec) *MsgOpen { +func NewMsgOpen(creator string, position Position, leverage sdk.Dec, tradingAsset string, collateral sdk.Coin, takeProfitPrice sdk.Dec, stopLossPrice sdk.Dec) *MsgOpen { return &MsgOpen{ Creator: creator, Position: position, diff --git a/x/perpetual/types/message_update_stop_loss.go b/x/perpetual/types/message_update_stop_loss.go index 162faf4c7..c2424b0b3 100644 --- a/x/perpetual/types/message_update_stop_loss.go +++ b/x/perpetual/types/message_update_stop_loss.go @@ -7,15 +7,15 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) -const TypeMsgUpdateStopLoss= "update_stop_loss" +const TypeMsgUpdateStopLoss = "update_stop_loss" var _ sdk.Msg = &MsgUpdateStopLoss{} func NewMsgUpdateStopLoss(creator string, id uint64, price sdk.Dec) *MsgUpdateStopLoss { return &MsgUpdateStopLoss{ - Creator: creator, - Id: id, - Price: price, + Creator: creator, + Id: id, + Price: price, } } @@ -50,4 +50,4 @@ func (msg *MsgUpdateStopLoss) ValidateBasic() error { return fmt.Errorf("stop loss price cannot be negative") } return nil -} \ No newline at end of file +} diff --git a/x/tradeshield/client/cli/query.go b/x/tradeshield/client/cli/query.go index ed1ef8da1..bc888059a 100644 --- a/x/tradeshield/client/cli/query.go +++ b/x/tradeshield/client/cli/query.go @@ -25,6 +25,10 @@ func GetQueryCmd(queryRoute string) *cobra.Command { } cmd.AddCommand(CmdQueryParams()) + cmd.AddCommand(CmdListPendingSpotOrder()) + cmd.AddCommand(CmdShowPendingSpotOrder()) + cmd.AddCommand(CmdListPendingPerpetualOrder()) + cmd.AddCommand(CmdShowPendingPerpetualOrder()) // this line is used by starport scaffolding # 1 return cmd diff --git a/x/tradeshield/client/cli/query_pending_perpetual_order.go b/x/tradeshield/client/cli/query_pending_perpetual_order.go new file mode 100644 index 000000000..83c347d35 --- /dev/null +++ b/x/tradeshield/client/cli/query_pending_perpetual_order.go @@ -0,0 +1,82 @@ +package cli + +import ( + "strconv" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/elys-network/elys/x/tradeshield/types" + "github.com/spf13/cobra" +) + +func CmdListPendingPerpetualOrder() *cobra.Command { + cmd := &cobra.Command{ + Use: "list-pending-perpetual-order", + Short: "list all pending-perpetual-order", + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + pageReq, err := client.ReadPageRequest(cmd.Flags()) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + params := &types.QueryAllPendingPerpetualOrderRequest{ + Pagination: pageReq, + } + + res, err := queryClient.PendingPerpetualOrderAll(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddPaginationFlagsToCmd(cmd, cmd.Use) + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} + +func CmdShowPendingPerpetualOrder() *cobra.Command { + cmd := &cobra.Command{ + Use: "show-pending-perpetual-order [id]", + Short: "shows a pending-perpetual-order", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + id, err := strconv.ParseUint(args[0], 10, 64) + if err != nil { + return err + } + + params := &types.QueryGetPendingPerpetualOrderRequest{ + Id: id, + } + + res, err := queryClient.PendingPerpetualOrder(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} diff --git a/x/tradeshield/client/cli/query_pending_perpetual_order_test.go b/x/tradeshield/client/cli/query_pending_perpetual_order_test.go new file mode 100644 index 000000000..b80689748 --- /dev/null +++ b/x/tradeshield/client/cli/query_pending_perpetual_order_test.go @@ -0,0 +1,145 @@ +package cli_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/elys-network/elys/testutil/network" + "github.com/elys-network/elys/testutil/nullify" + "github.com/elys-network/elys/x/tradeshield/types" +) + +func networkWithPendingPerpetualOrderObjects(t *testing.T, n int) (*network.Network, []types.PerpetualOrder) { + t.Helper() + cfg := network.DefaultConfig() + state := types.GenesisState{} + for i := 0; i < n; i++ { + pendingPerpetualOrder := types.PerpetualOrder{ + OrderId: uint64(i), + } + nullify.Fill(&pendingPerpetualOrder) + state.PendingPerpetualOrderList = append(state.PendingPerpetualOrderList, pendingPerpetualOrder) + } + buf, err := cfg.Codec.MarshalJSON(&state) + require.NoError(t, err) + cfg.GenesisState[types.ModuleName] = buf + return network.New(t, cfg), state.PendingPerpetualOrderList +} + +// TODO: Add tests for the CLI queries in query task +// func TestShowPendingPerpetualOrder(t *testing.T) { +// net, objs := networkWithPendingPerpetualOrderObjects(t, 2) + +// ctx := net.Validators[0].ClientCtx +// common := []string{ +// fmt.Sprintf("--%s=json", tmcli.OutputFlag), +// } +// tests := []struct { +// desc string +// id string +// args []string +// err error +// obj types.PerpetualOrder +// }{ +// { +// desc: "found", +// id: fmt.Sprintf("%d", objs[0].OrderId), +// args: common, +// obj: objs[0], +// }, +// { +// desc: "not found", +// id: "not_found", +// args: common, +// err: status.Error(codes.NotFound, "not found"), +// }, +// } +// for _, tc := range tests { +// t.Run(tc.desc, func(t *testing.T) { +// args := []string{tc.id} +// args = append(args, tc.args...) +// out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdShowPendingPerpetualOrder(), args) +// if tc.err != nil { +// stat, ok := status.FromError(tc.err) +// require.True(t, ok) +// require.ErrorIs(t, stat.Err(), tc.err) +// } else { +// require.NoError(t, err) +// var resp types.QueryGetPendingPerpetualOrderResponse +// require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp)) +// require.NotNil(t, resp.PendingPerpetualOrder) +// require.Equal(t, +// nullify.Fill(&tc.obj), +// nullify.Fill(&resp.PendingPerpetualOrder), +// ) +// } +// }) +// } +// } + +// func TestListPendingPerpetualOrder(t *testing.T) { +// net, objs := networkWithPendingPerpetualOrderObjects(t, 5) + +// ctx := net.Validators[0].ClientCtx +// request := func(next []byte, offset, limit uint64, total bool) []string { +// args := []string{ +// fmt.Sprintf("--%s=json", tmcli.OutputFlag), +// } +// if next == nil { +// args = append(args, fmt.Sprintf("--%s=%d", flags.FlagOffset, offset)) +// } else { +// args = append(args, fmt.Sprintf("--%s=%s", flags.FlagPageKey, next)) +// } +// args = append(args, fmt.Sprintf("--%s=%d", flags.FlagLimit, limit)) +// if total { +// args = append(args, fmt.Sprintf("--%s", flags.FlagCountTotal)) +// } +// return args +// } +// t.Run("ByOffset", func(t *testing.T) { +// step := 2 +// for i := 0; i < len(objs); i += step { +// args := request(nil, uint64(i), uint64(step), false) +// out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdListPendingPerpetualOrder(), args) +// require.NoError(t, err) +// var resp types.QueryAllPendingPerpetualOrderResponse +// require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp)) +// require.LessOrEqual(t, len(resp.PendingPerpetualOrder), step) +// require.Subset(t, +// nullify.Fill(objs), +// nullify.Fill(resp.PendingPerpetualOrder), +// ) +// } +// }) +// t.Run("ByKey", func(t *testing.T) { +// step := 2 +// var next []byte +// for i := 0; i < len(objs); i += step { +// args := request(next, 0, uint64(step), false) +// out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdListPendingPerpetualOrder(), args) +// require.NoError(t, err) +// var resp types.QueryAllPendingPerpetualOrderResponse +// require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp)) +// require.LessOrEqual(t, len(resp.PendingPerpetualOrder), step) +// require.Subset(t, +// nullify.Fill(objs), +// nullify.Fill(resp.PendingPerpetualOrder), +// ) +// next = resp.Pagination.NextKey +// } +// }) +// t.Run("Total", func(t *testing.T) { +// args := request(nil, 0, uint64(len(objs)), true) +// out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdListPendingPerpetualOrder(), args) +// require.NoError(t, err) +// var resp types.QueryAllPendingPerpetualOrderResponse +// require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp)) +// require.NoError(t, err) +// require.Equal(t, len(objs), int(resp.Pagination.Total)) +// require.ElementsMatch(t, +// nullify.Fill(objs), +// nullify.Fill(resp.PendingPerpetualOrder), +// ) +// }) +// } diff --git a/x/tradeshield/client/cli/query_pending_spot_order.go b/x/tradeshield/client/cli/query_pending_spot_order.go new file mode 100644 index 000000000..539f9bd9a --- /dev/null +++ b/x/tradeshield/client/cli/query_pending_spot_order.go @@ -0,0 +1,82 @@ +package cli + +import ( + "strconv" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/elys-network/elys/x/tradeshield/types" + "github.com/spf13/cobra" +) + +func CmdListPendingSpotOrder() *cobra.Command { + cmd := &cobra.Command{ + Use: "list-pending-spot-order", + Short: "list all pending-spot-order", + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + pageReq, err := client.ReadPageRequest(cmd.Flags()) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + params := &types.QueryAllPendingSpotOrderRequest{ + Pagination: pageReq, + } + + res, err := queryClient.PendingSpotOrderAll(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddPaginationFlagsToCmd(cmd, cmd.Use) + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} + +func CmdShowPendingSpotOrder() *cobra.Command { + cmd := &cobra.Command{ + Use: "show-pending-spot-order [id]", + Short: "shows a pending-spot-order", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + queryClient := types.NewQueryClient(clientCtx) + + id, err := strconv.ParseUint(args[0], 10, 64) + if err != nil { + return err + } + + params := &types.QueryGetPendingSpotOrderRequest{ + Id: id, + } + + res, err := queryClient.PendingSpotOrder(cmd.Context(), params) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} diff --git a/x/tradeshield/client/cli/query_pending_spot_order_test.go b/x/tradeshield/client/cli/query_pending_spot_order_test.go new file mode 100644 index 000000000..710607386 --- /dev/null +++ b/x/tradeshield/client/cli/query_pending_spot_order_test.go @@ -0,0 +1,149 @@ +package cli_test + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/elys-network/elys/testutil/network" + "github.com/elys-network/elys/testutil/nullify" + "github.com/elys-network/elys/x/tradeshield/types" +) + +func networkWithPendingSpotOrderObjects(t *testing.T, n int) (*network.Network, []types.SpotOrder) { + t.Helper() + cfg := network.DefaultConfig() + state := types.GenesisState{} + for i := 0; i < n; i++ { + pendingSpotOrder := types.SpotOrder{ + OrderType: types.SpotOrderType_MARKETBUY, // Assuming a BUY order type + OrderId: uint64(i + 1), + OwnerAddress: fmt.Sprintf("address%d", i+1), + Status: types.Status_PENDING, // Assuming a PENDING status + } + nullify.Fill(&pendingSpotOrder) + state.PendingSpotOrderList = append(state.PendingSpotOrderList, pendingSpotOrder) + } + buf, err := cfg.Codec.MarshalJSON(&state) + require.NoError(t, err) + cfg.GenesisState[types.ModuleName] = buf + return network.New(t, cfg), state.PendingSpotOrderList +} + +// TODO: Add tests for the CLI queries in query task +// func TestShowPendingSpotOrder(t *testing.T) { +// net, objs := networkWithPendingSpotOrderObjects(t, 2) + +// ctx := net.Validators[0].ClientCtx +// common := []string{ +// fmt.Sprintf("--%s=json", tmcli.OutputFlag), +// } +// tests := []struct { +// desc string +// id string +// args []string +// err error +// obj types.SpotOrder +// }{ +// { +// desc: "found", +// id: fmt.Sprintf("%d", objs[0].OrderId), +// args: common, +// obj: objs[0], +// }, +// { +// desc: "not found", +// id: "not_found", +// args: common, +// err: status.Error(codes.NotFound, "not found"), +// }, +// } +// for _, tc := range tests { +// t.Run(tc.desc, func(t *testing.T) { +// args := []string{tc.id} +// args = append(args, tc.args...) +// out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdShowPendingSpotOrder(), args) +// if tc.err != nil { +// stat, ok := status.FromError(tc.err) +// require.True(t, ok) +// require.ErrorIs(t, stat.Err(), tc.err) +// } else { +// require.NoError(t, err) +// var resp types.QueryGetPendingSpotOrderResponse +// require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp)) +// require.NotNil(t, resp.PendingSpotOrder) +// require.Equal(t, +// nullify.Fill(&tc.obj), +// nullify.Fill(&resp.PendingSpotOrder), +// ) +// } +// }) +// } +// } + +// func TestListPendingSpotOrder(t *testing.T) { +// net, objs := networkWithPendingSpotOrderObjects(t, 5) + +// ctx := net.Validators[0].ClientCtx +// request := func(next []byte, offset, limit uint64, total bool) []string { +// args := []string{ +// fmt.Sprintf("--%s=json", tmcli.OutputFlag), +// } +// if next == nil { +// args = append(args, fmt.Sprintf("--%s=%d", flags.FlagOffset, offset)) +// } else { +// args = append(args, fmt.Sprintf("--%s=%s", flags.FlagPageKey, next)) +// } +// args = append(args, fmt.Sprintf("--%s=%d", flags.FlagLimit, limit)) +// if total { +// args = append(args, fmt.Sprintf("--%s", flags.FlagCountTotal)) +// } +// return args +// } +// t.Run("ByOffset", func(t *testing.T) { +// step := 2 +// for i := 0; i < len(objs); i += step { +// args := request(nil, uint64(i), uint64(step), false) +// out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdListPendingSpotOrder(), args) +// require.NoError(t, err) +// var resp types.QueryAllPendingSpotOrderResponse +// require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp)) +// require.LessOrEqual(t, len(resp.PendingSpotOrder), step) +// require.Subset(t, +// nullify.Fill(objs), +// nullify.Fill(resp.PendingSpotOrder), +// ) +// } +// }) +// t.Run("ByKey", func(t *testing.T) { +// step := 2 +// var next []byte +// for i := 0; i < len(objs); i += step { +// args := request(next, 0, uint64(step), false) +// out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdListPendingSpotOrder(), args) +// require.NoError(t, err) +// var resp types.QueryAllPendingSpotOrderResponse +// require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp)) +// require.LessOrEqual(t, len(resp.PendingSpotOrder), step) +// require.Subset(t, +// nullify.Fill(objs), +// nullify.Fill(resp.PendingSpotOrder), +// ) +// next = resp.Pagination.NextKey +// } +// }) +// t.Run("Total", func(t *testing.T) { +// args := request(nil, 0, uint64(len(objs)), true) +// out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdListPendingSpotOrder(), args) +// require.NoError(t, err) +// var resp types.QueryAllPendingSpotOrderResponse +// require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp)) +// require.NoError(t, err) +// require.Equal(t, len(objs), int(resp.Pagination.Total)) +// require.ElementsMatch(t, +// nullify.Fill(objs), +// nullify.Fill(resp.PendingSpotOrder), +// ) +// }) +// } diff --git a/x/tradeshield/client/cli/tx.go b/x/tradeshield/client/cli/tx.go index 34d620633..d92d7b72d 100644 --- a/x/tradeshield/client/cli/tx.go +++ b/x/tradeshield/client/cli/tx.go @@ -30,6 +30,12 @@ func GetTxCmd() *cobra.Command { RunE: client.ValidateCmd, } + cmd.AddCommand(CmdCreatePendingSpotOrder()) + cmd.AddCommand(CmdUpdatePendingSpotOrder()) + cmd.AddCommand(CmdDeletePendingSpotOrder()) + cmd.AddCommand(CmdCreatePendingPerpetualOrder()) + cmd.AddCommand(CmdUpdatePendingPerpetualOrder()) + cmd.AddCommand(CmdDeletePendingPerpetualOrder()) // this line is used by starport scaffolding # 1 return cmd diff --git a/x/tradeshield/client/cli/tx_pending_perpetual_order.go b/x/tradeshield/client/cli/tx_pending_perpetual_order.go new file mode 100644 index 000000000..47f98a9c7 --- /dev/null +++ b/x/tradeshield/client/cli/tx_pending_perpetual_order.go @@ -0,0 +1,97 @@ +package cli + +import ( + "strconv" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/elys-network/elys/x/tradeshield/types" + "github.com/spf13/cobra" +) + +func CmdCreatePendingPerpetualOrder() *cobra.Command { + cmd := &cobra.Command{ + Use: "create-pending-perpetual-order [order]", + Short: "Create a new pending-perpetual-order", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) (err error) { + argOrder := args[0] + + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + msg := types.NewMsgCreatePendingPerpetualOrder(clientCtx.GetFromAddress().String(), argOrder) + if err := msg.ValidateBasic(); err != nil { + return err + } + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} + +func CmdUpdatePendingPerpetualOrder() *cobra.Command { + cmd := &cobra.Command{ + Use: "update-pending-perpetual-order [id] [order]", + Short: "Update a pending-perpetual-order", + Args: cobra.ExactArgs(2), + RunE: func(cmd *cobra.Command, args []string) (err error) { + id, err := strconv.ParseUint(args[0], 10, 64) + if err != nil { + return err + } + + argOrder := args[1] + + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + msg := types.NewMsgUpdatePendingPerpetualOrder(clientCtx.GetFromAddress().String(), id, argOrder) + if err := msg.ValidateBasic(); err != nil { + return err + } + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} + +func CmdDeletePendingPerpetualOrder() *cobra.Command { + cmd := &cobra.Command{ + Use: "delete-pending-perpetual-order [id]", + Short: "Delete a pending-perpetual-order by id", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + id, err := strconv.ParseUint(args[0], 10, 64) + if err != nil { + return err + } + + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + msg := types.NewMsgDeletePendingPerpetualOrder(clientCtx.GetFromAddress().String(), id) + if err := msg.ValidateBasic(); err != nil { + return err + } + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} diff --git a/x/tradeshield/client/cli/tx_pending_perpetual_order_test.go b/x/tradeshield/client/cli/tx_pending_perpetual_order_test.go new file mode 100644 index 000000000..8de269ad6 --- /dev/null +++ b/x/tradeshield/client/cli/tx_pending_perpetual_order_test.go @@ -0,0 +1,184 @@ +package cli_test + +import ( + "fmt" + "testing" + + sdkmath "cosmossdk.io/math" + "github.com/cosmos/cosmos-sdk/client/flags" + clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stretchr/testify/require" + + "github.com/elys-network/elys/testutil/network" + "github.com/elys-network/elys/x/tradeshield/client/cli" +) + +func TestCreatePendingPerpetualOrder(t *testing.T) { + net := network.New(t) + val := net.Validators[0] + ctx := val.ClientCtx + + fields := []string{"xyz"} + tests := []struct { + desc string + args []string + err error + code uint32 + }{ + { + desc: "valid", + args: []string{ + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(net.Config.BondDenom, sdkmath.NewInt(10))).String()), + }, + }, + } + for _, tc := range tests { + t.Run(tc.desc, func(t *testing.T) { + require.NoError(t, net.WaitForNextBlock()) + + args := []string{} + args = append(args, fields...) + args = append(args, tc.args...) + out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdCreatePendingPerpetualOrder(), args) + if tc.err != nil { + require.ErrorIs(t, err, tc.err) + return + } + require.NoError(t, err) + + var resp sdk.TxResponse + require.NoError(t, ctx.Codec.UnmarshalJSON(out.Bytes(), &resp)) + require.NoError(t, clitestutil.CheckTxCode(net, ctx, resp.TxHash, tc.code)) + }) + } +} + +// TODO: Add this in message task +// func TestUpdatePendingPerpetualOrder(t *testing.T) { +// net := network.New(t) + +// val := net.Validators[0] +// ctx := val.ClientCtx + +// fields := []string{"xyz"} +// common := []string{ +// fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), +// fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), +// fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), +// fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(net.Config.BondDenom, sdkmath.NewInt(10))).String()), +// } +// args := []string{} +// args = append(args, fields...) +// args = append(args, common...) +// _, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdCreatePendingPerpetualOrder(), args) +// require.NoError(t, err) + +// tests := []struct { +// desc string +// id string +// args []string +// code uint32 +// err error +// }{ +// { +// desc: "valid", +// id: "0", +// args: common, +// }, +// { +// desc: "key not found", +// id: "1", +// args: common, +// code: sdkerrors.ErrKeyNotFound.ABCICode(), +// }, +// { +// desc: "invalid key", +// id: "invalid", +// err: strconv.ErrSyntax, +// }, +// } +// for _, tc := range tests { +// t.Run(tc.desc, func(t *testing.T) { +// require.NoError(t, net.WaitForNextBlock()) + +// args := []string{tc.id} +// args = append(args, fields...) +// args = append(args, tc.args...) +// out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdUpdatePendingPerpetualOrder(), args) +// if tc.err != nil { +// require.ErrorIs(t, err, tc.err) +// return +// } +// require.NoError(t, err) + +// var resp sdk.TxResponse +// require.NoError(t, ctx.Codec.UnmarshalJSON(out.Bytes(), &resp)) +// require.NoError(t, clitestutil.CheckTxCode(net, ctx, resp.TxHash, tc.code)) +// }) +// } +// } + +// func TestDeletePendingPerpetualOrder(t *testing.T) { +// net := network.New(t) + +// val := net.Validators[0] +// ctx := val.ClientCtx + +// fields := []string{"xyz"} +// common := []string{ +// fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), +// fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), +// fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), +// fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(net.Config.BondDenom, sdkmath.NewInt(10))).String()), +// } +// args := []string{} +// args = append(args, fields...) +// args = append(args, common...) +// _, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdCreatePendingPerpetualOrder(), args) +// require.NoError(t, err) + +// tests := []struct { +// desc string +// id string +// args []string +// code uint32 +// err error +// }{ +// { +// desc: "valid", +// id: "0", +// args: common, +// }, +// { +// desc: "key not found", +// id: "1", +// args: common, +// code: sdkerrors.ErrKeyNotFound.ABCICode(), +// }, +// { +// desc: "invalid key", +// id: "invalid", +// err: strconv.ErrSyntax, +// }, +// } +// for _, tc := range tests { +// t.Run(tc.desc, func(t *testing.T) { +// require.NoError(t, net.WaitForNextBlock()) + +// out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdDeletePendingPerpetualOrder(), append([]string{tc.id}, tc.args...)) +// if tc.err != nil { +// require.ErrorIs(t, err, tc.err) +// return +// } +// require.NoError(t, err) + +// var resp sdk.TxResponse +// require.NoError(t, ctx.Codec.UnmarshalJSON(out.Bytes(), &resp)) +// require.NoError(t, clitestutil.CheckTxCode(net, ctx, resp.TxHash, tc.code)) +// }) +// } +// } diff --git a/x/tradeshield/client/cli/tx_pending_spot_order.go b/x/tradeshield/client/cli/tx_pending_spot_order.go new file mode 100644 index 000000000..2d65059d4 --- /dev/null +++ b/x/tradeshield/client/cli/tx_pending_spot_order.go @@ -0,0 +1,97 @@ +package cli + +import ( + "strconv" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/elys-network/elys/x/tradeshield/types" + "github.com/spf13/cobra" +) + +// TODO: Add message in other task +func CmdCreatePendingSpotOrder() *cobra.Command { + cmd := &cobra.Command{ + Use: "create-pending-spot-order [order]", + Short: "Create a new pending-spot-order", + Args: cobra.ExactArgs(0), + RunE: func(cmd *cobra.Command, args []string) (err error) { + + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + msg := types.NewMsgCreatePendingSpotOrder(clientCtx.GetFromAddress().String()) + if err := msg.ValidateBasic(); err != nil { + return err + } + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} + +func CmdUpdatePendingSpotOrder() *cobra.Command { + cmd := &cobra.Command{ + Use: "update-pending-spot-order [id] [order]", + Short: "Update a pending-spot-order", + Args: cobra.ExactArgs(2), + RunE: func(cmd *cobra.Command, args []string) (err error) { + id, err := strconv.ParseUint(args[0], 10, 64) + if err != nil { + return err + } + + argOrder := args[1] + + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + msg := types.NewMsgUpdatePendingSpotOrder(clientCtx.GetFromAddress().String(), id, argOrder) + if err := msg.ValidateBasic(); err != nil { + return err + } + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} + +func CmdDeletePendingSpotOrder() *cobra.Command { + cmd := &cobra.Command{ + Use: "delete-pending-spot-order [id]", + Short: "Delete a pending-spot-order by id", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + id, err := strconv.ParseUint(args[0], 10, 64) + if err != nil { + return err + } + + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + msg := types.NewMsgDeletePendingSpotOrder(clientCtx.GetFromAddress().String(), id) + if err := msg.ValidateBasic(); err != nil { + return err + } + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + + return cmd +} diff --git a/x/tradeshield/genesis.go b/x/tradeshield/genesis.go index 6a2d124c8..666499573 100644 --- a/x/tradeshield/genesis.go +++ b/x/tradeshield/genesis.go @@ -8,6 +8,20 @@ import ( // InitGenesis initializes the module's state from a provided genesis state. func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState) { + // Set all the pendingSpotOrder + for _, elem := range genState.PendingSpotOrderList { + k.SetPendingSpotOrder(ctx, elem) + } + + // Set pendingSpotOrder count + k.SetPendingSpotOrderCount(ctx, genState.PendingSpotOrderCount) + // Set all the pendingPerpetualOrder + for _, elem := range genState.PendingPerpetualOrderList { + k.SetPendingPerpetualOrder(ctx, elem) + } + + // Set pendingPerpetualOrder count + k.SetPendingPerpetualOrderCount(ctx, genState.PendingPerpetualOrderCount) // this line is used by starport scaffolding # genesis/module/init k.SetParams(ctx, &genState.Params) } @@ -17,6 +31,10 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { genesis := types.DefaultGenesis() genesis.Params = k.GetParams(ctx) + genesis.PendingSpotOrderList = k.GetAllPendingSpotOrder(ctx) + genesis.PendingSpotOrderCount = k.GetPendingSpotOrderCount(ctx) + genesis.PendingPerpetualOrderList = k.GetAllPendingPerpetualOrder(ctx) + genesis.PendingPerpetualOrderCount = k.GetPendingPerpetualOrderCount(ctx) // this line is used by starport scaffolding # genesis/module/export return genesis diff --git a/x/tradeshield/genesis_test.go b/x/tradeshield/genesis_test.go index 516f52b08..2bf130517 100644 --- a/x/tradeshield/genesis_test.go +++ b/x/tradeshield/genesis_test.go @@ -14,6 +14,24 @@ func TestGenesis(t *testing.T) { genesisState := types.GenesisState{ Params: types.DefaultParams(), + PendingSpotOrderList: []types.SpotOrder{ + { + OrderId: 0, + }, + { + OrderId: 1, + }, + }, + PendingSpotOrderCount: 2, + PendingPerpetualOrderList: []types.PerpetualOrder{ + { + OrderId: 0, + }, + { + OrderId: 1, + }, + }, + PendingPerpetualOrderCount: 2, // this line is used by starport scaffolding # genesis/test/state } @@ -25,5 +43,9 @@ func TestGenesis(t *testing.T) { nullify.Fill(&genesisState) nullify.Fill(got) + require.ElementsMatch(t, genesisState.PendingSpotOrderList, got.PendingSpotOrderList) + require.Equal(t, genesisState.PendingSpotOrderCount, got.PendingSpotOrderCount) + require.ElementsMatch(t, genesisState.PendingPerpetualOrderList, got.PendingPerpetualOrderList) + require.Equal(t, genesisState.PendingPerpetualOrderCount, got.PendingPerpetualOrderCount) // this line is used by starport scaffolding # genesis/test/assert } diff --git a/x/tradeshield/keeper/msg_server_pending_perpetual_order.go b/x/tradeshield/keeper/msg_server_pending_perpetual_order.go new file mode 100644 index 000000000..885b8d5b0 --- /dev/null +++ b/x/tradeshield/keeper/msg_server_pending_perpetual_order.go @@ -0,0 +1,70 @@ +package keeper + +import ( + "context" + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/elys-network/elys/x/tradeshield/types" +) + +// TODO: Complete message in another task +func (k msgServer) CreatePendingPerpetualOrder(goCtx context.Context, msg *types.MsgCreatePendingPerpetualOrder) (*types.MsgCreatePendingPerpetualOrderResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + var pendingPerpetualOrder = types.PerpetualOrder{ + OwnerAddress: msg.Creator, + } + + id := k.AppendPendingPerpetualOrder( + ctx, + pendingPerpetualOrder, + ) + + return &types.MsgCreatePendingPerpetualOrderResponse{ + Id: id, + }, nil +} + +func (k msgServer) UpdatePendingPerpetualOrder(goCtx context.Context, msg *types.MsgUpdatePendingPerpetualOrder) (*types.MsgUpdatePendingPerpetualOrderResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + var pendingPerpetualOrder = types.PerpetualOrder{ + OwnerAddress: msg.Creator, + } + + // Checks that the element exists + val, found := k.GetPendingPerpetualOrder(ctx, msg.Id) + if !found { + return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, fmt.Sprintf("key %d doesn't exist", msg.Id)) + } + + // Checks if the msg creator is the same as the current owner + if msg.Creator != val.OwnerAddress { + return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "incorrect owner") + } + + k.SetPendingPerpetualOrder(ctx, pendingPerpetualOrder) + + return &types.MsgUpdatePendingPerpetualOrderResponse{}, nil +} + +func (k msgServer) DeletePendingPerpetualOrder(goCtx context.Context, msg *types.MsgDeletePendingPerpetualOrder) (*types.MsgDeletePendingPerpetualOrderResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Checks that the element exists + val, found := k.GetPendingPerpetualOrder(ctx, msg.Id) + if !found { + return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, fmt.Sprintf("key %d doesn't exist", msg.Id)) + } + + // Checks if the msg creator is the same as the current owner + if msg.Creator != val.OwnerAddress { + return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "incorrect owner") + } + + k.RemovePendingPerpetualOrder(ctx, msg.Id) + + return &types.MsgDeletePendingPerpetualOrderResponse{}, nil +} diff --git a/x/tradeshield/keeper/msg_server_pending_spot_order.go b/x/tradeshield/keeper/msg_server_pending_spot_order.go new file mode 100644 index 000000000..f0c85f592 --- /dev/null +++ b/x/tradeshield/keeper/msg_server_pending_spot_order.go @@ -0,0 +1,58 @@ +package keeper + +import ( + "context" + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/elys-network/elys/x/tradeshield/types" +) + +func (k msgServer) CreatePendingSpotOrder(goCtx context.Context, msg *types.MsgCreatePendingSpotOrder) (*types.MsgCreatePendingSpotOrderResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + var pendingSpotOrder = types.SpotOrder{ + OrderType: msg.OrderType, + OrderId: uint64(0), + OrderPrice: msg.OrderPrice, + OrderAmount: *msg.OrderAmount, + OwnerAddress: msg.OwnerAddress, + Status: msg.Status, + Date: msg.Date, + } + + id := k.AppendPendingSpotOrder( + ctx, + pendingSpotOrder, + ) + + return &types.MsgCreatePendingSpotOrderResponse{ + Id: id, + }, nil +} + +func (k msgServer) UpdatePendingSpotOrder(goCtx context.Context, msg *types.MsgUpdatePendingSpotOrder) (*types.MsgUpdatePendingSpotOrderResponse, error) { + // _ := sdk.UnwrapSDKContext(goCtx) + + return &types.MsgUpdatePendingSpotOrderResponse{}, nil +} + +func (k msgServer) DeletePendingSpotOrder(goCtx context.Context, msg *types.MsgDeletePendingSpotOrder) (*types.MsgDeletePendingSpotOrderResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Checks that the element exists + val, found := k.GetPendingSpotOrder(ctx, msg.Id) + if !found { + return nil, sdkerrors.Wrap(sdkerrors.ErrKeyNotFound, fmt.Sprintf("key %d doesn't exist", msg.Id)) + } + + // Checks if the msg creator is the same as the current owner + if msg.Creator != val.OwnerAddress { + return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "incorrect owner") + } + + k.RemovePendingSpotOrder(ctx, msg.Id) + + return &types.MsgDeletePendingSpotOrderResponse{}, nil +} diff --git a/x/tradeshield/keeper/pending_perpetual_order.go b/x/tradeshield/keeper/pending_perpetual_order.go new file mode 100644 index 000000000..755fee6a1 --- /dev/null +++ b/x/tradeshield/keeper/pending_perpetual_order.go @@ -0,0 +1,235 @@ +package keeper + +import ( + "encoding/binary" + "errors" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/elys-network/elys/x/tradeshield/types" +) + +// GetPendingPerpetualOrderCount get the total number of pendingPerpetualOrder +func (k Keeper) GetPendingPerpetualOrderCount(ctx sdk.Context) uint64 { + store := prefix.NewStore(ctx.KVStore(k.storeKey), []byte{}) + byteKey := types.PendingPerpetualOrderCountKey + bz := store.Get(byteKey) + + // Count doesn't exist: no element + // Set count + if bz == nil { + return 0 + } + + // Parse bytes + return binary.BigEndian.Uint64(bz) +} + +// SetPendingPerpetualOrderCount set the total number of pendingPerpetualOrder +func (k Keeper) SetPendingPerpetualOrderCount(ctx sdk.Context, count uint64) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), []byte{}) + byteKey := types.PendingPerpetualOrderCountKey + bz := make([]byte, 8) + binary.BigEndian.PutUint64(bz, count) + store.Set(byteKey, bz) +} + +// AppendPendingPerpetualOrder appends a pendingPerpetualOrder in the store with a new id and update the count +func (k Keeper) AppendPendingPerpetualOrder( + ctx sdk.Context, + pendingPerpetualOrder types.PerpetualOrder, +) uint64 { + // Create the pendingPerpetualOrder + count := k.GetPendingPerpetualOrderCount(ctx) + + if count == 0 { + k.SetPendingPerpetualOrderCount(ctx, uint64(1)) + count = 1 + } + + // Set the ID of the appended value + pendingPerpetualOrder.OrderId = count + + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingPerpetualOrderKey) + appendedValue := k.cdc.MustMarshal(&pendingPerpetualOrder) + store.Set(GetPendingPerpetualOrderIDBytes(pendingPerpetualOrder.OrderId), appendedValue) + + // Update pendingPerpetualOrder count + k.SetPendingPerpetualOrderCount(ctx, count+1) + + return count +} + +// SetPendingPerpetualOrder set a specific pendingPerpetualOrder in the store +func (k Keeper) SetPendingPerpetualOrder(ctx sdk.Context, pendingPerpetualOrder types.PerpetualOrder) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingPerpetualOrderKey) + b := k.cdc.MustMarshal(&pendingPerpetualOrder) + store.Set(GetPendingPerpetualOrderIDBytes(pendingPerpetualOrder.OrderId), b) +} + +// GetPendingPerpetualOrder returns a pendingPerpetualOrder from its id +func (k Keeper) GetPendingPerpetualOrder(ctx sdk.Context, id uint64) (val types.PerpetualOrder, found bool) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingPerpetualOrderKey) + b := store.Get(GetPendingPerpetualOrderIDBytes(id)) + if b == nil { + return val, false + } + k.cdc.MustUnmarshal(b, &val) + return val, true +} + +// RemovePendingPerpetualOrder removes a pendingPerpetualOrder from the store +func (k Keeper) RemovePendingPerpetualOrder(ctx sdk.Context, id uint64) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingPerpetualOrderKey) + store.Delete(GetPendingPerpetualOrderIDBytes(id)) +} + +// GetAllPendingPerpetualOrder returns all pendingPerpetualOrder +func (k Keeper) GetAllPendingPerpetualOrder(ctx sdk.Context) (list []types.PerpetualOrder) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingPerpetualOrderKey) + iterator := sdk.KVStorePrefixIterator(store, []byte{}) + + defer iterator.Close() + + for ; iterator.Valid(); iterator.Next() { + var val types.PerpetualOrder + k.cdc.MustUnmarshal(iterator.Value(), &val) + list = append(list, val) + } + + return +} + +// GetPendingPerpetualOrderIDBytes returns the byte representation of the ID +func GetPendingPerpetualOrderIDBytes(id uint64) []byte { + bz := make([]byte, 8) + binary.BigEndian.PutUint64(bz, id) + return bz +} + +// GetPendingPerpetualOrderIDFromBytes returns ID in uint64 format from a byte array +func GetPendingPerpetualOrderIDFromBytes(bz []byte) uint64 { + return binary.BigEndian.Uint64(bz) +} + +func (k Keeper) PerpetualBinarySearch(ctx sdk.Context, orderPrice sdk.Dec, orders []uint64) (int, error) { + low, high := 0, len(orders) + for low < high { + mid := (low + high) / 2 + // Get order price + order, found := k.GetPendingPerpetualOrder(ctx, orders[mid]) + if !found { + return 0, types.ErrOrderNotFound + } + if order.TriggerPrice.Rate.LT(orderPrice) { + low = mid + 1 + } else { + high = mid + } + } + return low, nil +} + +func (k Keeper) InsertPerptualSortedOrder(ctx sdk.Context, newOrder types.PerpetualOrder) error { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.SortedPerpetualOrderKey) + + key, err := types.GenPerpKey(newOrder) + if err != nil { + return err + } + bz := store.Get([]byte(key)) + + var orderIds []uint64 + if bz != nil { + orderIds, err = types.DecodeUint64Slice(bz) + if err != nil { + return err + } + } + + index, err := k.PerpetualBinarySearch(ctx, newOrder.TriggerPrice.Rate, orderIds) + if err != nil { + return err + } + + if len(orderIds) <= index { + orderIds = append(orderIds, newOrder.OrderId) + } else { + orderIds = append(orderIds[:index+1], orderIds[index:]...) + orderIds[index] = newOrder.OrderId + } + + bz = types.EncodeUint64Slice(orderIds) + + store.Set([]byte(key), bz) + return nil +} + +func (k Keeper) GetAllSortedPerpetualOrder(ctx sdk.Context) (list [][]uint64, err error) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.SortedPerpetualOrderKey) + iterator := sdk.KVStorePrefixIterator(store, []byte{}) + + defer iterator.Close() + + for ; iterator.Valid(); iterator.Next() { + var orderIds []uint64 + orderIds, err := types.DecodeUint64Slice(iterator.Value()) + if err != nil { + return nil, err + } + list = append(list, orderIds) + } + + return +} + +// RemoveSortedOrder removes an order from the sorted order list. +func (k Keeper) RemovePerpetualSortedOrder(ctx sdk.Context, orderID uint64) error { + order, found := k.GetPendingPerpetualOrder(ctx, orderID) + if !found { + return types.ErrOrderNotFound + } + + // Generate the key for the order + key, err := types.GenPerpKey(order) + if err != nil { + return err + } + + // Load the sorted order IDs using the key + sortedStore := prefix.NewStore(ctx.KVStore(k.storeKey), types.SortedPerpetualOrderKey) + bz := sortedStore.Get([]byte(key)) + + if bz == nil { + return errors.New("sorted order IDs not found") + } + + orderIds, err := types.DecodeUint64Slice(bz) + if err != nil { + return err + } + + // Find the index of the order ID in the sorted order list + index, err := k.PerpetualBinarySearch(ctx, order.TriggerPrice.Rate, orderIds) + if err != nil { + return err + } + + sizeOfVec := len(orderIds) + for index < sizeOfVec && orderIds[index] != orderID { + index++ + } + + if index >= sizeOfVec { + return errors.New("order ID not found in sorted order list") + } + + // Remove the order ID from the list + orderIds = append(orderIds[:index], orderIds[index+1:]...) + + // Save the updated list back to storage + encodedOrderIds := types.EncodeUint64Slice(orderIds) + + sortedStore.Set([]byte(key), encodedOrderIds) + return nil +} diff --git a/x/tradeshield/keeper/pending_perpetual_order_test.go b/x/tradeshield/keeper/pending_perpetual_order_test.go new file mode 100644 index 000000000..21edaee68 --- /dev/null +++ b/x/tradeshield/keeper/pending_perpetual_order_test.go @@ -0,0 +1,164 @@ +package keeper_test + +import ( + "fmt" + "testing" + + sdk "github.com/cosmos/cosmos-sdk/types" + keepertest "github.com/elys-network/elys/testutil/keeper" + "github.com/elys-network/elys/testutil/nullify" + "github.com/elys-network/elys/x/tradeshield/keeper" + "github.com/elys-network/elys/x/tradeshield/types" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func createNPendingPerpetualOrder(keeper *keeper.Keeper, ctx sdk.Context, n int) []types.PerpetualOrder { + items := make([]types.PerpetualOrder, n) + for i := range items { + items[i] = types.PerpetualOrder{ + OrderId: 0, + OwnerAddress: fmt.Sprintf("address%d", i), + PerpetualOrderType: types.PerpetualOrderType_LIMITCLOSE, + Position: types.PerpetualPosition_LONG, + TriggerPrice: &types.OrderPrice{Rate: sdk.NewDec(1), BaseDenom: "base", QuoteDenom: "quote"}, + Collateral: sdk.Coin{Denom: "denom", Amount: sdk.NewInt(10)}, + TradingAsset: "asset", + Leverage: sdk.NewDec(int64(i)), + TakeProfitPrice: sdk.NewDec(1), + PositionId: uint64(i), + Status: types.Status_PENDING, + } + items[i].OrderId = keeper.AppendPendingPerpetualOrder(ctx, items[i]) + } + return items +} + +func TestPendingPerpetualOrderGet(t *testing.T) { + keeper, ctx := keepertest.TradeshieldKeeper(t) + items := createNPendingPerpetualOrder(keeper, ctx, 10) + for _, item := range items { + got, found := keeper.GetPendingPerpetualOrder(ctx, item.OrderId) + require.True(t, found) + require.Equal(t, + nullify.Fill(&item), + nullify.Fill(&got), + ) + } +} + +func TestPendingPerpetualOrderRemove(t *testing.T) { + keeper, ctx := keepertest.TradeshieldKeeper(t) + items := createNPendingPerpetualOrder(keeper, ctx, 10) + for _, item := range items { + keeper.RemovePendingPerpetualOrder(ctx, item.OrderId) + _, found := keeper.GetPendingPerpetualOrder(ctx, item.OrderId) + require.False(t, found) + } +} + +func TestPendingPerpetualOrderGetAll(t *testing.T) { + keeper, ctx := keepertest.TradeshieldKeeper(t) + items := createNPendingPerpetualOrder(keeper, ctx, 10) + require.ElementsMatch(t, + nullify.Fill(items), + nullify.Fill(keeper.GetAllPendingPerpetualOrder(ctx)), + ) +} + +func TestPendingPerpetualOrderCount(t *testing.T) { + keeper, ctx := keepertest.TradeshieldKeeper(t) + items := createNPendingPerpetualOrder(keeper, ctx, 10) + count := uint64(len(items)) + require.Equal(t, count, keeper.GetPendingPerpetualOrderCount(ctx)-1) +} + +func TestSortedPerpetualOrder(t *testing.T) { + keeper, ctx := keepertest.TradeshieldKeeper(t) + + // Set to main storage + keeper.AppendPendingPerpetualOrder(ctx, types.PerpetualOrder{ + OwnerAddress: "address", + OrderId: 0, + PerpetualOrderType: types.PerpetualOrderType_LIMITCLOSE, + TriggerPrice: &types.OrderPrice{ + BaseDenom: "base", + QuoteDenom: "quote", + Rate: sdk.NewDec(1), + }, + }) + + order, _ := keeper.GetPendingPerpetualOrder(ctx, 1) + + err := keeper.InsertPerptualSortedOrder(ctx, order) + require.NoError(t, err) + + res, _ := keeper.GetAllSortedPerpetualOrder(ctx) + + assert.Equal(t, res, [][]uint64{{1}}) + + // Insert two more elements + // Set to main storage + keeper.AppendPendingPerpetualOrder(ctx, types.PerpetualOrder{ + OwnerAddress: "address1", + OrderId: 0, + PerpetualOrderType: types.PerpetualOrderType_LIMITCLOSE, + TriggerPrice: &types.OrderPrice{ + BaseDenom: "base", + QuoteDenom: "quote", + Rate: sdk.NewDec(20), + }, + }) + + keeper.AppendPendingPerpetualOrder(ctx, types.PerpetualOrder{ + OwnerAddress: "address2", + OrderId: 0, + PerpetualOrderType: types.PerpetualOrderType_LIMITCLOSE, + TriggerPrice: &types.OrderPrice{ + BaseDenom: "base", + QuoteDenom: "quote", + Rate: sdk.NewDec(5), + }, + }) + + keeper.AppendPendingPerpetualOrder(ctx, types.PerpetualOrder{ + OwnerAddress: "address3", + OrderId: 0, + PerpetualOrderType: types.PerpetualOrderType_LIMITCLOSE, + TriggerPrice: &types.OrderPrice{ + BaseDenom: "base", + QuoteDenom: "quote", + Rate: sdk.NewDec(25), + }, + }) + + order2, _ := keeper.GetPendingPerpetualOrder(ctx, 2) + order3, _ := keeper.GetPendingPerpetualOrder(ctx, 3) + order4, _ := keeper.GetPendingPerpetualOrder(ctx, 4) + + err = keeper.InsertPerptualSortedOrder(ctx, order2) + require.NoError(t, err) + err = keeper.InsertPerptualSortedOrder(ctx, order3) + require.NoError(t, err) + err = keeper.InsertPerptualSortedOrder(ctx, order4) + require.NoError(t, err) + + res, _ = keeper.GetAllSortedPerpetualOrder(ctx) + + // Should store in sorted order + assert.Equal(t, res, [][]uint64{{1, 3, 2, 4}}) + + // Test binary search, search with rate 5 + index, err := keeper.PerpetualBinarySearch(ctx, sdk.NewDec(5), []uint64{1, 3, 2, 4}) + require.NoError(t, err) + + // second element + assert.Equal(t, index, 1) + + // Test remove sorted order + keeper.RemovePerpetualSortedOrder(ctx, 2) + res, _ = keeper.GetAllSortedPerpetualOrder(ctx) + + // Should store in sorted order + assert.Equal(t, res, [][]uint64{{1, 3, 4}}) +} diff --git a/x/tradeshield/keeper/pending_spot_order.go b/x/tradeshield/keeper/pending_spot_order.go new file mode 100644 index 000000000..a0afbe8a6 --- /dev/null +++ b/x/tradeshield/keeper/pending_spot_order.go @@ -0,0 +1,236 @@ +package keeper + +import ( + "encoding/binary" + "errors" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/elys-network/elys/x/tradeshield/types" +) + +// GetPendingSpotOrderCount get the total number of pendingSpotOrder +func (k Keeper) GetPendingSpotOrderCount(ctx sdk.Context) uint64 { + store := prefix.NewStore(ctx.KVStore(k.storeKey), []byte{}) + byteKey := types.PendingSpotOrderCountKey + bz := store.Get(byteKey) + + // Count doesn't exist: no element + // Set count + if bz == nil { + return 0 + } + + // Parse bytes + return binary.BigEndian.Uint64(bz) +} + +// SetPendingSpotOrderCount set the total number of pendingSpotOrder +func (k Keeper) SetPendingSpotOrderCount(ctx sdk.Context, count uint64) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), []byte{}) + byteKey := types.PendingSpotOrderCountKey + bz := make([]byte, 8) + binary.BigEndian.PutUint64(bz, count) + store.Set(byteKey, bz) +} + +// AppendPendingSpotOrder appends a pendingSpotOrder in the store with a new id and update the count +func (k Keeper) AppendPendingSpotOrder( + ctx sdk.Context, + pendingSpotOrder types.SpotOrder, +) uint64 { + // Create the pendingSpotOrder + count := k.GetPendingSpotOrderCount(ctx) + + if count == 0 { + k.SetPendingSpotOrderCount(ctx, uint64(1)) + count = 1 + } + + // Set the ID of the appended value + pendingSpotOrder.OrderId = count + + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingSpotOrderKey) + appendedValue := k.cdc.MustMarshal(&pendingSpotOrder) + store.Set(GetPendingSpotOrderIDBytes(pendingSpotOrder.OrderId), appendedValue) + + // Update pendingSpotOrder count + k.SetPendingSpotOrderCount(ctx, count+1) + + return count +} + +// SetPendingSpotOrder set a specific pendingSpotOrder in the store +func (k Keeper) SetPendingSpotOrder(ctx sdk.Context, pendingSpotOrder types.SpotOrder) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingSpotOrderKey) + b := k.cdc.MustMarshal(&pendingSpotOrder) + store.Set(GetPendingSpotOrderIDBytes(pendingSpotOrder.OrderId), b) +} + +// GetPendingSpotOrder returns a pendingSpotOrder from its id +func (k Keeper) GetPendingSpotOrder(ctx sdk.Context, id uint64) (val types.SpotOrder, found bool) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingSpotOrderKey) + b := store.Get(GetPendingSpotOrderIDBytes(id)) + if b == nil { + return val, false + } + k.cdc.MustUnmarshal(b, &val) + return val, true +} + +// RemovePendingSpotOrder removes a pendingSpotOrder from the store +func (k Keeper) RemovePendingSpotOrder(ctx sdk.Context, id uint64) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingSpotOrderKey) + store.Delete(GetPendingSpotOrderIDBytes(id)) +} + +// GetAllPendingSpotOrder returns all pendingSpotOrder +func (k Keeper) GetAllPendingSpotOrder(ctx sdk.Context) (list []types.SpotOrder) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingSpotOrderKey) + iterator := sdk.KVStorePrefixIterator(store, []byte{}) + + defer iterator.Close() + + for ; iterator.Valid(); iterator.Next() { + var val types.SpotOrder + k.cdc.MustUnmarshal(iterator.Value(), &val) + list = append(list, val) + } + + return +} + +// GetPendingSpotOrderIDBytes returns the byte representation of the ID +func GetPendingSpotOrderIDBytes(id uint64) []byte { + bz := make([]byte, 8) + binary.BigEndian.PutUint64(bz, id) + return bz +} + +// GetPendingSpotOrderIDFromBytes returns ID in uint64 format from a byte array +func GetPendingSpotOrderIDFromBytes(bz []byte) uint64 { + return binary.BigEndian.Uint64(bz) +} + +func (k Keeper) SpotBinarySearch(ctx sdk.Context, orderPrice sdk.Dec, orders []uint64) (int, error) { + low, high := 0, len(orders) + for low < high { + mid := (low + high) / 2 + // Get order price + order, found := k.GetPendingSpotOrder(ctx, orders[mid]) + if !found { + return 0, types.ErrOrderNotFound + } + if order.OrderPrice.Rate.LT(orderPrice) { + low = mid + 1 + } else { + high = mid + } + } + return low, nil +} + +func (k Keeper) InsertSpotSortedOrder(ctx sdk.Context, newOrder types.SpotOrder) error { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.SortedSpotOrderKey) + + key, err := types.GenSpotKey(newOrder) + if err != nil { + return err + } + bz := store.Get([]byte(key)) + + var orderIds []uint64 + if bz != nil { + orderIds, err = types.DecodeUint64Slice(bz) + if err != nil { + return err + } + } + + index, err := k.SpotBinarySearch(ctx, newOrder.OrderPrice.Rate, orderIds) + if err != nil { + return err + } + + if len(orderIds) <= index { + orderIds = append(orderIds, newOrder.OrderId) + } else { + orderIds = append(orderIds[:index+1], orderIds[index:]...) + orderIds[index] = newOrder.OrderId + } + + bz = types.EncodeUint64Slice(orderIds) + + store.Set([]byte(key), bz) + return nil +} + +// GetAllPendingSpotOrder returns all pendingSpotOrder +func (k Keeper) GetAllSortedSpotOrder(ctx sdk.Context) (list [][]uint64, err error) { + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.SortedSpotOrderKey) + iterator := sdk.KVStorePrefixIterator(store, []byte{}) + + defer iterator.Close() + + for ; iterator.Valid(); iterator.Next() { + var orderIds []uint64 + orderIds, err := types.DecodeUint64Slice(iterator.Value()) + if err != nil { + return nil, err + } + list = append(list, orderIds) + } + + return +} + +// RemoveSortedOrder removes an order from the sorted order list. +func (k Keeper) RemoveSpotSortedOrder(ctx sdk.Context, orderID uint64) error { + order, found := k.GetPendingSpotOrder(ctx, orderID) + if !found { + return types.ErrOrderNotFound + } + + // Generate the key for the order + key, err := types.GenSpotKey(order) + if err != nil { + return err + } + + // Load the sorted order IDs using the key + sortedStore := prefix.NewStore(ctx.KVStore(k.storeKey), types.SortedSpotOrderKey) + bz := sortedStore.Get([]byte(key)) + + if bz == nil { + return errors.New("sorted order IDs not found") + } + + orderIds, err := types.DecodeUint64Slice(bz) + if err != nil { + return err + } + + // Find the index of the order ID in the sorted order list + index, err := k.SpotBinarySearch(ctx, order.OrderPrice.Rate, orderIds) + if err != nil { + return err + } + + sizeOfVec := len(orderIds) + for index < sizeOfVec && orderIds[index] != orderID { + index++ + } + + if index >= sizeOfVec { + return errors.New("order ID not found in sorted order list") + } + + // Remove the order ID from the list + orderIds = append(orderIds[:index], orderIds[index+1:]...) + + // Save the updated list back to storage + encodedOrderIds := types.EncodeUint64Slice(orderIds) + + sortedStore.Set([]byte(key), encodedOrderIds) + return nil +} diff --git a/x/tradeshield/keeper/pending_spot_order_test.go b/x/tradeshield/keeper/pending_spot_order_test.go new file mode 100644 index 000000000..01cdf2c24 --- /dev/null +++ b/x/tradeshield/keeper/pending_spot_order_test.go @@ -0,0 +1,136 @@ +package keeper_test + +import ( + "testing" + + sdk "github.com/cosmos/cosmos-sdk/types" + keepertest "github.com/elys-network/elys/testutil/keeper" + "github.com/elys-network/elys/testutil/nullify" + "github.com/elys-network/elys/x/tradeshield/keeper" + "github.com/elys-network/elys/x/tradeshield/types" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func createNPendingSpotOrder(keeper *keeper.Keeper, ctx sdk.Context, n int) []types.SpotOrder { + items := make([]types.SpotOrder, n) + for i := range items { + items[i].OrderId = keeper.AppendPendingSpotOrder(ctx, items[i]) + } + return items +} + +func TestPendingSpotOrderGet(t *testing.T) { + keeper, ctx := keepertest.TradeshieldKeeper(t) + items := createNPendingSpotOrder(keeper, ctx, 10) + for _, item := range items { + got, found := keeper.GetPendingSpotOrder(ctx, item.OrderId) + require.True(t, found) + require.Equal(t, + nullify.Fill(&item), + nullify.Fill(&got), + ) + } +} + +func TestPendingSpotOrderRemove(t *testing.T) { + keeper, ctx := keepertest.TradeshieldKeeper(t) + items := createNPendingSpotOrder(keeper, ctx, 10) + for _, item := range items { + keeper.RemovePendingSpotOrder(ctx, item.OrderId) + _, found := keeper.GetPendingSpotOrder(ctx, item.OrderId) + require.False(t, found) + } +} + +func TestPendingSpotOrderGetAll(t *testing.T) { + keeper, ctx := keepertest.TradeshieldKeeper(t) + items := createNPendingSpotOrder(keeper, ctx, 10) + require.ElementsMatch(t, + nullify.Fill(items), + nullify.Fill(keeper.GetAllPendingSpotOrder(ctx)), + ) +} + +func TestPendingSpotOrderCount(t *testing.T) { + keeper, ctx := keepertest.TradeshieldKeeper(t) + items := createNPendingSpotOrder(keeper, ctx, 10) + count := uint64(len(items)) + require.Equal(t, count, keeper.GetPendingSpotOrderCount(ctx)-1) +} + +func TestSortedSpotOrder(t *testing.T) { + keeper, ctx := keepertest.TradeshieldKeeper(t) + + // Set to main storage + keeper.AppendPendingSpotOrder(ctx, types.SpotOrder{ + OwnerAddress: "address", + OrderId: 0, + OrderType: types.SpotOrderType_LIMITBUY, + OrderPrice: &types.OrderPrice{ + BaseDenom: "base", + QuoteDenom: "quote", + Rate: sdk.NewDec(1), + }, + }) + + order, _ := keeper.GetPendingSpotOrder(ctx, 1) + + err := keeper.InsertSpotSortedOrder(ctx, order) + require.NoError(t, err) + + res, _ := keeper.GetAllSortedSpotOrder(ctx) + + assert.Equal(t, res, [][]uint64{{1}}) + + // Insert two more elements + // Set to main storage + keeper.AppendPendingSpotOrder(ctx, types.SpotOrder{ + OwnerAddress: "address1", + OrderId: 0, + OrderType: types.SpotOrderType_LIMITBUY, + OrderPrice: &types.OrderPrice{ + BaseDenom: "base", + QuoteDenom: "quote", + Rate: sdk.NewDec(20), + }, + }) + + keeper.AppendPendingSpotOrder(ctx, types.SpotOrder{ + OwnerAddress: "address2", + OrderId: 0, + OrderType: types.SpotOrderType_LIMITBUY, + OrderPrice: &types.OrderPrice{ + BaseDenom: "base", + QuoteDenom: "quote", + Rate: sdk.NewDec(5), + }, + }) + + order2, _ := keeper.GetPendingSpotOrder(ctx, 2) + order3, _ := keeper.GetPendingSpotOrder(ctx, 3) + + err = keeper.InsertSpotSortedOrder(ctx, order2) + require.NoError(t, err) + err = keeper.InsertSpotSortedOrder(ctx, order3) + require.NoError(t, err) + + res, _ = keeper.GetAllSortedSpotOrder(ctx) + + // Should store in sorted order + assert.Equal(t, res, [][]uint64{{1, 3, 2}}) + + // Test binary search, search with rate 5 + index, err := keeper.SpotBinarySearch(ctx, sdk.NewDec(5), []uint64{1, 3, 2}) + require.NoError(t, err) + + // second element + assert.Equal(t, index, 1) + + // Test remove sorted order + keeper.RemoveSpotSortedOrder(ctx, 2) + res, _ = keeper.GetAllSortedSpotOrder(ctx) + + // Should store in sorted order + assert.Equal(t, res, [][]uint64{{1, 3}}) +} diff --git a/x/tradeshield/keeper/query_pending_perpetual_order.go b/x/tradeshield/keeper/query_pending_perpetual_order.go new file mode 100644 index 000000000..910d0b10f --- /dev/null +++ b/x/tradeshield/keeper/query_pending_perpetual_order.go @@ -0,0 +1,55 @@ +package keeper + +import ( + "context" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/cosmos/cosmos-sdk/types/query" + "github.com/elys-network/elys/x/tradeshield/types" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (k Keeper) PendingPerpetualOrderAll(goCtx context.Context, req *types.QueryAllPendingPerpetualOrderRequest) (*types.QueryAllPendingPerpetualOrderResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + var pendingPerpetualOrders []types.PerpetualOrder + ctx := sdk.UnwrapSDKContext(goCtx) + + store := ctx.KVStore(k.storeKey) + pendingPerpetualOrderStore := prefix.NewStore(store, types.PendingPerpetualOrderKey) + + pageRes, err := query.Paginate(pendingPerpetualOrderStore, req.Pagination, func(key []byte, value []byte) error { + var pendingPerpetualOrder types.PerpetualOrder + if err := k.cdc.Unmarshal(value, &pendingPerpetualOrder); err != nil { + return err + } + + pendingPerpetualOrders = append(pendingPerpetualOrders, pendingPerpetualOrder) + return nil + }) + + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + + return &types.QueryAllPendingPerpetualOrderResponse{PendingPerpetualOrder: pendingPerpetualOrders, Pagination: pageRes}, nil +} + +func (k Keeper) PendingPerpetualOrder(goCtx context.Context, req *types.QueryGetPendingPerpetualOrderRequest) (*types.QueryGetPendingPerpetualOrderResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + ctx := sdk.UnwrapSDKContext(goCtx) + pendingPerpetualOrder, found := k.GetPendingPerpetualOrder(ctx, req.Id) + if !found { + return nil, sdkerrors.ErrKeyNotFound + } + + return &types.QueryGetPendingPerpetualOrderResponse{PendingPerpetualOrder: pendingPerpetualOrder}, nil +} diff --git a/x/tradeshield/keeper/query_pending_spot_order.go b/x/tradeshield/keeper/query_pending_spot_order.go new file mode 100644 index 000000000..39d17d2a0 --- /dev/null +++ b/x/tradeshield/keeper/query_pending_spot_order.go @@ -0,0 +1,55 @@ +package keeper + +import ( + "context" + + "github.com/cosmos/cosmos-sdk/store/prefix" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/cosmos/cosmos-sdk/types/query" + "github.com/elys-network/elys/x/tradeshield/types" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (k Keeper) PendingSpotOrderAll(goCtx context.Context, req *types.QueryAllPendingSpotOrderRequest) (*types.QueryAllPendingSpotOrderResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + var pendingSpotOrders []types.SpotOrder + ctx := sdk.UnwrapSDKContext(goCtx) + + store := ctx.KVStore(k.storeKey) + pendingSpotOrderStore := prefix.NewStore(store, types.PendingSpotOrderKey) + + pageRes, err := query.Paginate(pendingSpotOrderStore, req.Pagination, func(key []byte, value []byte) error { + var pendingSpotOrder types.SpotOrder + if err := k.cdc.Unmarshal(value, &pendingSpotOrder); err != nil { + return err + } + + pendingSpotOrders = append(pendingSpotOrders, pendingSpotOrder) + return nil + }) + + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + + return &types.QueryAllPendingSpotOrderResponse{PendingSpotOrder: pendingSpotOrders, Pagination: pageRes}, nil +} + +func (k Keeper) PendingSpotOrder(goCtx context.Context, req *types.QueryGetPendingSpotOrderRequest) (*types.QueryGetPendingSpotOrderResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + ctx := sdk.UnwrapSDKContext(goCtx) + pendingSpotOrder, found := k.GetPendingSpotOrder(ctx, req.Id) + if !found { + return nil, sdkerrors.ErrKeyNotFound + } + + return &types.QueryGetPendingSpotOrderResponse{PendingSpotOrder: pendingSpotOrder}, nil +} diff --git a/x/tradeshield/module_simulation.go b/x/tradeshield/module_simulation.go index dfc0ce2bb..9892c15e0 100644 --- a/x/tradeshield/module_simulation.go +++ b/x/tradeshield/module_simulation.go @@ -23,7 +23,31 @@ var ( ) const ( -// this line is used by starport scaffolding # simapp/module/const + opWeightMsgCreatePendingSpotOrder = "op_weight_msg_pending_spot_order" + // TODO: Determine the simulation weight value + defaultWeightMsgCreatePendingSpotOrder int = 100 + + opWeightMsgUpdatePendingSpotOrder = "op_weight_msg_pending_spot_order" + // TODO: Determine the simulation weight value + defaultWeightMsgUpdatePendingSpotOrder int = 100 + + opWeightMsgDeletePendingSpotOrder = "op_weight_msg_pending_spot_order" + // TODO: Determine the simulation weight value + defaultWeightMsgDeletePendingSpotOrder int = 100 + + opWeightMsgCreatePendingPerpetualOrder = "op_weight_msg_pending_perpetual_order" + // TODO: Determine the simulation weight value + defaultWeightMsgCreatePendingPerpetualOrder int = 100 + + opWeightMsgUpdatePendingPerpetualOrder = "op_weight_msg_pending_perpetual_order" + // TODO: Determine the simulation weight value + defaultWeightMsgUpdatePendingPerpetualOrder int = 100 + + opWeightMsgDeletePendingPerpetualOrder = "op_weight_msg_pending_perpetual_order" + // TODO: Determine the simulation weight value + defaultWeightMsgDeletePendingPerpetualOrder int = 100 + + // this line is used by starport scaffolding # simapp/module/const ) // GenerateGenesisState creates a randomized GenState of the module. @@ -34,6 +58,28 @@ func (AppModule) GenerateGenesisState(simState *module.SimulationState) { } tradeshieldGenesis := types.GenesisState{ Params: types.DefaultParams(), + PendingSpotOrderList: []types.SpotOrder{ + { + OrderId: 0, + OwnerAddress: sample.AccAddress(), + }, + { + OrderId: 1, + OwnerAddress: sample.AccAddress(), + }, + }, + PendingSpotOrderCount: 2, + PendingPerpetualOrderList: []types.PerpetualOrder{ + { + OrderId: 0, + OwnerAddress: sample.AccAddress(), + }, + { + OrderId: 1, + OwnerAddress: sample.AccAddress(), + }, + }, + PendingPerpetualOrderCount: 2, // this line is used by starport scaffolding # simapp/module/genesisState } simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(&tradeshieldGenesis) @@ -51,6 +97,72 @@ func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedP func (am AppModule) WeightedOperations(simState module.SimulationState) []simtypes.WeightedOperation { operations := make([]simtypes.WeightedOperation, 0) + var weightMsgCreatePendingSpotOrder int + simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgCreatePendingSpotOrder, &weightMsgCreatePendingSpotOrder, nil, + func(_ *rand.Rand) { + weightMsgCreatePendingSpotOrder = defaultWeightMsgCreatePendingSpotOrder + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgCreatePendingSpotOrder, + tradeshieldsimulation.SimulateMsgCreatePendingSpotOrder(am.accountKeeper, am.bankKeeper, am.keeper), + )) + + var weightMsgUpdatePendingSpotOrder int + simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgUpdatePendingSpotOrder, &weightMsgUpdatePendingSpotOrder, nil, + func(_ *rand.Rand) { + weightMsgUpdatePendingSpotOrder = defaultWeightMsgUpdatePendingSpotOrder + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgUpdatePendingSpotOrder, + tradeshieldsimulation.SimulateMsgUpdatePendingSpotOrder(am.accountKeeper, am.bankKeeper, am.keeper), + )) + + var weightMsgDeletePendingSpotOrder int + simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgDeletePendingSpotOrder, &weightMsgDeletePendingSpotOrder, nil, + func(_ *rand.Rand) { + weightMsgDeletePendingSpotOrder = defaultWeightMsgDeletePendingSpotOrder + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgDeletePendingSpotOrder, + tradeshieldsimulation.SimulateMsgDeletePendingSpotOrder(am.accountKeeper, am.bankKeeper, am.keeper), + )) + + var weightMsgCreatePendingPerpetualOrder int + simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgCreatePendingPerpetualOrder, &weightMsgCreatePendingPerpetualOrder, nil, + func(_ *rand.Rand) { + weightMsgCreatePendingPerpetualOrder = defaultWeightMsgCreatePendingPerpetualOrder + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgCreatePendingPerpetualOrder, + tradeshieldsimulation.SimulateMsgCreatePendingPerpetualOrder(am.accountKeeper, am.bankKeeper, am.keeper), + )) + + var weightMsgUpdatePendingPerpetualOrder int + simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgUpdatePendingPerpetualOrder, &weightMsgUpdatePendingPerpetualOrder, nil, + func(_ *rand.Rand) { + weightMsgUpdatePendingPerpetualOrder = defaultWeightMsgUpdatePendingPerpetualOrder + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgUpdatePendingPerpetualOrder, + tradeshieldsimulation.SimulateMsgUpdatePendingPerpetualOrder(am.accountKeeper, am.bankKeeper, am.keeper), + )) + + var weightMsgDeletePendingPerpetualOrder int + simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgDeletePendingPerpetualOrder, &weightMsgDeletePendingPerpetualOrder, nil, + func(_ *rand.Rand) { + weightMsgDeletePendingPerpetualOrder = defaultWeightMsgDeletePendingPerpetualOrder + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgDeletePendingPerpetualOrder, + tradeshieldsimulation.SimulateMsgDeletePendingPerpetualOrder(am.accountKeeper, am.bankKeeper, am.keeper), + )) + // this line is used by starport scaffolding # simapp/module/operation return operations @@ -59,6 +171,54 @@ func (am AppModule) WeightedOperations(simState module.SimulationState) []simtyp // ProposalMsgs returns msgs used for governance proposals for simulations. func (am AppModule) ProposalMsgs(simState module.SimulationState) []simtypes.WeightedProposalMsg { return []simtypes.WeightedProposalMsg{ + simulation.NewWeightedProposalMsg( + opWeightMsgCreatePendingSpotOrder, + defaultWeightMsgCreatePendingSpotOrder, + func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg { + tradeshieldsimulation.SimulateMsgCreatePendingSpotOrder(am.accountKeeper, am.bankKeeper, am.keeper) + return nil + }, + ), + simulation.NewWeightedProposalMsg( + opWeightMsgUpdatePendingSpotOrder, + defaultWeightMsgUpdatePendingSpotOrder, + func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg { + tradeshieldsimulation.SimulateMsgUpdatePendingSpotOrder(am.accountKeeper, am.bankKeeper, am.keeper) + return nil + }, + ), + simulation.NewWeightedProposalMsg( + opWeightMsgDeletePendingSpotOrder, + defaultWeightMsgDeletePendingSpotOrder, + func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg { + tradeshieldsimulation.SimulateMsgDeletePendingSpotOrder(am.accountKeeper, am.bankKeeper, am.keeper) + return nil + }, + ), + simulation.NewWeightedProposalMsg( + opWeightMsgCreatePendingPerpetualOrder, + defaultWeightMsgCreatePendingPerpetualOrder, + func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg { + tradeshieldsimulation.SimulateMsgCreatePendingPerpetualOrder(am.accountKeeper, am.bankKeeper, am.keeper) + return nil + }, + ), + simulation.NewWeightedProposalMsg( + opWeightMsgUpdatePendingPerpetualOrder, + defaultWeightMsgUpdatePendingPerpetualOrder, + func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg { + tradeshieldsimulation.SimulateMsgUpdatePendingPerpetualOrder(am.accountKeeper, am.bankKeeper, am.keeper) + return nil + }, + ), + simulation.NewWeightedProposalMsg( + opWeightMsgDeletePendingPerpetualOrder, + defaultWeightMsgDeletePendingPerpetualOrder, + func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg { + tradeshieldsimulation.SimulateMsgDeletePendingPerpetualOrder(am.accountKeeper, am.bankKeeper, am.keeper) + return nil + }, + ), // this line is used by starport scaffolding # simapp/module/OpMsg } } diff --git a/x/tradeshield/simulation/pending_perpetual_order.go b/x/tradeshield/simulation/pending_perpetual_order.go new file mode 100644 index 000000000..90a19e323 --- /dev/null +++ b/x/tradeshield/simulation/pending_perpetual_order.go @@ -0,0 +1,134 @@ +package simulation + +import ( + "math/rand" + + simappparams "cosmossdk.io/simapp/params" + "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" + simtypes "github.com/cosmos/cosmos-sdk/types/simulation" + "github.com/cosmos/cosmos-sdk/x/simulation" + "github.com/elys-network/elys/x/tradeshield/keeper" + "github.com/elys-network/elys/x/tradeshield/types" +) + +func SimulateMsgCreatePendingPerpetualOrder( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + simAccount, _ := simtypes.RandomAcc(r, accs) + + msg := &types.MsgCreatePendingPerpetualOrder{ + Creator: simAccount.Address.String(), + } + + txCtx := simulation.OperationInput{ + R: r, + App: app, + TxGen: simappparams.MakeTestEncodingConfig().TxConfig, + Cdc: nil, + Msg: msg, + MsgType: msg.Type(), + Context: ctx, + SimAccount: simAccount, + ModuleName: types.ModuleName, + CoinsSpentInMsg: sdk.NewCoins(), + AccountKeeper: ak, + Bankkeeper: bk, + } + return simulation.GenAndDeliverTxWithRandFees(txCtx) + } +} + +func SimulateMsgUpdatePendingPerpetualOrder( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + var ( + simAccount = simtypes.Account{} + pendingPerpetualOrder = types.PerpetualOrder{} + msg = &types.MsgUpdatePendingPerpetualOrder{} + allPendingPerpetualOrder = k.GetAllPendingPerpetualOrder(ctx) + found = false + ) + for _, obj := range allPendingPerpetualOrder { + simAccount, found = FindAccount(accs, obj.OwnerAddress) + if found { + pendingPerpetualOrder = obj + break + } + } + if !found { + return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "pendingPerpetualOrder creator not found"), nil, nil + } + msg.Creator = simAccount.Address.String() + msg.Id = pendingPerpetualOrder.OrderId + + txCtx := simulation.OperationInput{ + R: r, + App: app, + TxGen: simappparams.MakeTestEncodingConfig().TxConfig, + Cdc: nil, + Msg: msg, + MsgType: msg.Type(), + Context: ctx, + SimAccount: simAccount, + ModuleName: types.ModuleName, + CoinsSpentInMsg: sdk.NewCoins(), + AccountKeeper: ak, + Bankkeeper: bk, + } + return simulation.GenAndDeliverTxWithRandFees(txCtx) + } +} + +func SimulateMsgDeletePendingPerpetualOrder( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + var ( + simAccount = simtypes.Account{} + pendingPerpetualOrder = types.PerpetualOrder{} + msg = &types.MsgUpdatePendingPerpetualOrder{} + allPendingPerpetualOrder = k.GetAllPendingPerpetualOrder(ctx) + found = false + ) + for _, obj := range allPendingPerpetualOrder { + simAccount, found = FindAccount(accs, obj.OwnerAddress) + if found { + pendingPerpetualOrder = obj + break + } + } + if !found { + return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "pendingPerpetualOrder creator not found"), nil, nil + } + msg.Creator = simAccount.Address.String() + msg.Id = pendingPerpetualOrder.OrderId + + txCtx := simulation.OperationInput{ + R: r, + App: app, + TxGen: simappparams.MakeTestEncodingConfig().TxConfig, + Cdc: nil, + Msg: msg, + MsgType: msg.Type(), + Context: ctx, + SimAccount: simAccount, + ModuleName: types.ModuleName, + CoinsSpentInMsg: sdk.NewCoins(), + AccountKeeper: ak, + Bankkeeper: bk, + } + return simulation.GenAndDeliverTxWithRandFees(txCtx) + } +} diff --git a/x/tradeshield/simulation/pending_spot_order.go b/x/tradeshield/simulation/pending_spot_order.go new file mode 100644 index 000000000..c99c3a233 --- /dev/null +++ b/x/tradeshield/simulation/pending_spot_order.go @@ -0,0 +1,134 @@ +package simulation + +import ( + "math/rand" + + simappparams "cosmossdk.io/simapp/params" + "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" + simtypes "github.com/cosmos/cosmos-sdk/types/simulation" + "github.com/cosmos/cosmos-sdk/x/simulation" + "github.com/elys-network/elys/x/tradeshield/keeper" + "github.com/elys-network/elys/x/tradeshield/types" +) + +func SimulateMsgCreatePendingSpotOrder( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + simAccount, _ := simtypes.RandomAcc(r, accs) + + msg := &types.MsgCreatePendingSpotOrder{ + OwnerAddress: simAccount.Address.String(), + } + + txCtx := simulation.OperationInput{ + R: r, + App: app, + TxGen: simappparams.MakeTestEncodingConfig().TxConfig, + Cdc: nil, + Msg: msg, + MsgType: msg.Type(), + Context: ctx, + SimAccount: simAccount, + ModuleName: types.ModuleName, + CoinsSpentInMsg: sdk.NewCoins(), + AccountKeeper: ak, + Bankkeeper: bk, + } + return simulation.GenAndDeliverTxWithRandFees(txCtx) + } +} + +func SimulateMsgUpdatePendingSpotOrder( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + var ( + simAccount = simtypes.Account{} + pendingSpotOrder = types.SpotOrder{} + msg = &types.MsgUpdatePendingSpotOrder{} + allPendingSpotOrder = k.GetAllPendingSpotOrder(ctx) + found = false + ) + for _, obj := range allPendingSpotOrder { + simAccount, found = FindAccount(accs, obj.OwnerAddress) + if found { + pendingSpotOrder = obj + break + } + } + if !found { + return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "pendingSpotOrder creator not found"), nil, nil + } + msg.Creator = simAccount.Address.String() + msg.Id = pendingSpotOrder.OrderId + + txCtx := simulation.OperationInput{ + R: r, + App: app, + TxGen: simappparams.MakeTestEncodingConfig().TxConfig, + Cdc: nil, + Msg: msg, + MsgType: msg.Type(), + Context: ctx, + SimAccount: simAccount, + ModuleName: types.ModuleName, + CoinsSpentInMsg: sdk.NewCoins(), + AccountKeeper: ak, + Bankkeeper: bk, + } + return simulation.GenAndDeliverTxWithRandFees(txCtx) + } +} + +func SimulateMsgDeletePendingSpotOrder( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + var ( + simAccount = simtypes.Account{} + pendingSpotOrder = types.SpotOrder{} + msg = &types.MsgUpdatePendingSpotOrder{} + allPendingSpotOrder = k.GetAllPendingSpotOrder(ctx) + found = false + ) + for _, obj := range allPendingSpotOrder { + simAccount, found = FindAccount(accs, obj.OwnerAddress) + if found { + pendingSpotOrder = obj + break + } + } + if !found { + return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "pendingSpotOrder creator not found"), nil, nil + } + msg.Creator = simAccount.Address.String() + msg.Id = pendingSpotOrder.OrderId + + txCtx := simulation.OperationInput{ + R: r, + App: app, + TxGen: simappparams.MakeTestEncodingConfig().TxConfig, + Cdc: nil, + Msg: msg, + MsgType: msg.Type(), + Context: ctx, + SimAccount: simAccount, + ModuleName: types.ModuleName, + CoinsSpentInMsg: sdk.NewCoins(), + AccountKeeper: ak, + Bankkeeper: bk, + } + return simulation.GenAndDeliverTxWithRandFees(txCtx) + } +} diff --git a/x/tradeshield/types/codec.go b/x/tradeshield/types/codec.go index 844157a87..9aa46d8d8 100644 --- a/x/tradeshield/types/codec.go +++ b/x/tradeshield/types/codec.go @@ -3,15 +3,31 @@ package types import ( "github.com/cosmos/cosmos-sdk/codec" cdctypes "github.com/cosmos/cosmos-sdk/codec/types" - // this line is used by starport scaffolding # 1 + sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" ) func RegisterCodec(cdc *codec.LegacyAmino) { + cdc.RegisterConcrete(&MsgCreatePendingSpotOrder{}, "tradeshield/CreatePendingSpotOrder", nil) + cdc.RegisterConcrete(&MsgUpdatePendingSpotOrder{}, "tradeshield/UpdatePendingSpotOrder", nil) + cdc.RegisterConcrete(&MsgDeletePendingSpotOrder{}, "tradeshield/DeletePendingSpotOrder", nil) + cdc.RegisterConcrete(&MsgCreatePendingPerpetualOrder{}, "tradeshield/CreatePendingPerpetualOrder", nil) + cdc.RegisterConcrete(&MsgUpdatePendingPerpetualOrder{}, "tradeshield/UpdatePendingPerpetualOrder", nil) + cdc.RegisterConcrete(&MsgDeletePendingPerpetualOrder{}, "tradeshield/DeletePendingPerpetualOrder", nil) // this line is used by starport scaffolding # 2 } func RegisterInterfaces(registry cdctypes.InterfaceRegistry) { + registry.RegisterImplementations((*sdk.Msg)(nil), + &MsgCreatePendingSpotOrder{}, + &MsgUpdatePendingSpotOrder{}, + &MsgDeletePendingSpotOrder{}, + ) + registry.RegisterImplementations((*sdk.Msg)(nil), + &MsgCreatePendingPerpetualOrder{}, + &MsgUpdatePendingPerpetualOrder{}, + &MsgDeletePendingPerpetualOrder{}, + ) // this line is used by starport scaffolding # 3 msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) diff --git a/x/tradeshield/types/errors.go b/x/tradeshield/types/errors.go index 3b870b2c2..76d9b85c4 100644 --- a/x/tradeshield/types/errors.go +++ b/x/tradeshield/types/errors.go @@ -8,5 +8,6 @@ import ( // x/tradeshield module sentinel errors var ( - ErrSample = sdkerrors.Register(ModuleName, 1100, "sample error") + ErrSample = sdkerrors.Register(ModuleName, 1100, "sample error") + ErrOrderNotFound = sdkerrors.Register(ModuleName, 1101, "order not found") ) diff --git a/x/tradeshield/types/genesis.go b/x/tradeshield/types/genesis.go index 0af9b4416..4042e5184 100644 --- a/x/tradeshield/types/genesis.go +++ b/x/tradeshield/types/genesis.go @@ -1,7 +1,7 @@ package types import ( -// this line is used by starport scaffolding # genesis/types/import + "fmt" ) // DefaultIndex is the default global index @@ -10,6 +10,8 @@ const DefaultIndex uint64 = 1 // DefaultGenesis returns the default genesis state func DefaultGenesis() *GenesisState { return &GenesisState{ + PendingSpotOrderList: []SpotOrder{}, + PendingPerpetualOrderList: []PerpetualOrder{}, // this line is used by starport scaffolding # genesis/types/default Params: DefaultParams(), } @@ -18,6 +20,30 @@ func DefaultGenesis() *GenesisState { // Validate performs basic genesis state validation returning an error upon any // failure. func (gs GenesisState) Validate() error { + // Check for duplicated ID in pendingSpotOrder + pendingSpotOrderIdMap := make(map[uint64]bool) + pendingSpotOrderCount := gs.GetPendingSpotOrderCount() + for _, elem := range gs.PendingSpotOrderList { + if _, ok := pendingSpotOrderIdMap[elem.OrderId]; ok { + return fmt.Errorf("duplicated id for pendingSpotOrder") + } + if elem.OrderId >= pendingSpotOrderCount { + return fmt.Errorf("pendingSpotOrder id should be lower or equal than the last id") + } + pendingSpotOrderIdMap[elem.OrderId] = true + } + // Check for duplicated ID in pendingPerpetualOrder + pendingPerpetualOrderIdMap := make(map[uint64]bool) + pendingPerpetualOrderCount := gs.GetPendingPerpetualOrderCount() + for _, elem := range gs.PendingPerpetualOrderList { + if _, ok := pendingPerpetualOrderIdMap[elem.OrderId]; ok { + return fmt.Errorf("duplicated id for pendingPerpetualOrder") + } + if elem.OrderId >= pendingPerpetualOrderCount { + return fmt.Errorf("pendingPerpetualOrder id should be lower or equal than the last id") + } + pendingPerpetualOrderIdMap[elem.OrderId] = true + } // this line is used by starport scaffolding # genesis/types/validate return gs.Params.Validate() diff --git a/x/tradeshield/types/genesis.pb.go b/x/tradeshield/types/genesis.pb.go index e9491b79a..7e3420931 100644 --- a/x/tradeshield/types/genesis.pb.go +++ b/x/tradeshield/types/genesis.pb.go @@ -25,7 +25,11 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the tradeshield module's genesis state. type GenesisState struct { - Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + PendingSpotOrderList []SpotOrder `protobuf:"bytes,2,rep,name=pendingSpotOrderList,proto3" json:"pendingSpotOrderList"` + PendingSpotOrderCount uint64 `protobuf:"varint,3,opt,name=pendingSpotOrderCount,proto3" json:"pendingSpotOrderCount,omitempty"` + PendingPerpetualOrderList []PerpetualOrder `protobuf:"bytes,4,rep,name=pendingPerpetualOrderList,proto3" json:"pendingPerpetualOrderList"` + PendingPerpetualOrderCount uint64 `protobuf:"varint,5,opt,name=pendingPerpetualOrderCount,proto3" json:"pendingPerpetualOrderCount,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -68,6 +72,34 @@ func (m *GenesisState) GetParams() Params { return Params{} } +func (m *GenesisState) GetPendingSpotOrderList() []SpotOrder { + if m != nil { + return m.PendingSpotOrderList + } + return nil +} + +func (m *GenesisState) GetPendingSpotOrderCount() uint64 { + if m != nil { + return m.PendingSpotOrderCount + } + return 0 +} + +func (m *GenesisState) GetPendingPerpetualOrderList() []PerpetualOrder { + if m != nil { + return m.PendingPerpetualOrderList + } + return nil +} + +func (m *GenesisState) GetPendingPerpetualOrderCount() uint64 { + if m != nil { + return m.PendingPerpetualOrderCount + } + return 0 +} + func init() { proto.RegisterType((*GenesisState)(nil), "elys.tradeshield.GenesisState") } @@ -75,20 +107,27 @@ func init() { func init() { proto.RegisterFile("elys/tradeshield/genesis.proto", fileDescriptor_da92b96d2e7e2f05) } var fileDescriptor_da92b96d2e7e2f05 = []byte{ - // 196 bytes of a gzipped FileDescriptorProto + // 308 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4b, 0xcd, 0xa9, 0x2c, 0xd6, 0x2f, 0x29, 0x4a, 0x4c, 0x49, 0x2d, 0xce, 0xc8, 0x4c, 0xcd, 0x49, 0xd1, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x00, 0xc9, 0xeb, 0x21, 0xc9, 0x4b, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf5, 0x41, 0x2c, 0x88, 0x3a, 0x29, 0x59, - 0x0c, 0x73, 0x0a, 0x12, 0x8b, 0x12, 0x73, 0xa1, 0xc6, 0x28, 0xb9, 0x71, 0xf1, 0xb8, 0x43, 0xcc, - 0x0d, 0x2e, 0x49, 0x2c, 0x49, 0x15, 0x32, 0xe3, 0x62, 0x83, 0xc8, 0x4b, 0x30, 0x2a, 0x30, 0x6a, - 0x70, 0x1b, 0x49, 0xe8, 0xa1, 0xdb, 0xa3, 0x17, 0x00, 0x96, 0x77, 0x62, 0x39, 0x71, 0x4f, 0x9e, - 0x21, 0x08, 0xaa, 0xda, 0xc9, 0xeb, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, - 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39, 0x86, 0x1b, 0x8f, 0xe5, 0x18, 0xa2, - 0x0c, 0xd2, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x66, 0xe9, 0xe6, - 0xa5, 0x96, 0x94, 0xe7, 0x17, 0x65, 0x83, 0x39, 0xfa, 0x15, 0x28, 0x4e, 0x2b, 0xa9, 0x2c, 0x48, - 0x2d, 0x4e, 0x62, 0x03, 0x3b, 0xcd, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x57, 0x0d, 0x16, 0xcc, - 0x03, 0x01, 0x00, 0x00, + 0x0c, 0x73, 0x0a, 0x12, 0x8b, 0x12, 0x73, 0xa1, 0xc6, 0x48, 0xc9, 0x60, 0x48, 0x97, 0x54, 0x16, + 0xa4, 0x42, 0x65, 0x95, 0x7e, 0x32, 0x71, 0xf1, 0xb8, 0x43, 0xac, 0x0d, 0x2e, 0x49, 0x2c, 0x49, + 0x15, 0x32, 0xe3, 0x62, 0x83, 0x68, 0x97, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x36, 0x92, 0xd0, 0x43, + 0x77, 0x86, 0x5e, 0x00, 0x58, 0xde, 0x89, 0xe5, 0xc4, 0x3d, 0x79, 0x86, 0x20, 0xa8, 0x6a, 0xa1, + 0x50, 0x2e, 0x91, 0x82, 0xd4, 0xbc, 0x94, 0xcc, 0xbc, 0xf4, 0xe0, 0x82, 0xfc, 0x12, 0xff, 0xa2, + 0x94, 0xd4, 0x22, 0x9f, 0xcc, 0xe2, 0x12, 0x09, 0x26, 0x05, 0x66, 0x0d, 0x6e, 0x23, 0x69, 0x4c, + 0x53, 0xe0, 0xca, 0xa0, 0x06, 0x61, 0xd5, 0x2e, 0x64, 0xc2, 0x25, 0x8a, 0x2e, 0xee, 0x9c, 0x5f, + 0x9a, 0x57, 0x22, 0xc1, 0xac, 0xc0, 0xa8, 0xc1, 0x12, 0x84, 0x5d, 0x52, 0x28, 0x85, 0x4b, 0x12, + 0x2a, 0x11, 0x90, 0x5a, 0x54, 0x90, 0x5a, 0x52, 0x9a, 0x98, 0x83, 0x70, 0x11, 0x0b, 0xd8, 0x45, + 0x0a, 0x58, 0xfc, 0x85, 0xa2, 0x16, 0xea, 0x2c, 0xdc, 0x06, 0x09, 0xd9, 0x71, 0x49, 0x61, 0x95, + 0x84, 0x38, 0x90, 0x15, 0xec, 0x40, 0x3c, 0x2a, 0x9c, 0xbc, 0x4e, 0x3c, 0x92, 0x63, 0xbc, 0xf0, + 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, 0x63, 0xb8, + 0xf1, 0x58, 0x8e, 0x21, 0xca, 0x20, 0x3d, 0xb3, 0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, 0x3f, 0x57, + 0x1f, 0xe4, 0x4c, 0xdd, 0xbc, 0xd4, 0x92, 0xf2, 0xfc, 0xa2, 0x6c, 0x30, 0x47, 0xbf, 0x02, 0x33, + 0x36, 0x93, 0xd8, 0xc0, 0xd1, 0x69, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xe6, 0x77, 0x68, 0xf6, + 0x55, 0x02, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -111,6 +150,44 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.PendingPerpetualOrderCount != 0 { + i = encodeVarintGenesis(dAtA, i, uint64(m.PendingPerpetualOrderCount)) + i-- + dAtA[i] = 0x28 + } + if len(m.PendingPerpetualOrderList) > 0 { + for iNdEx := len(m.PendingPerpetualOrderList) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PendingPerpetualOrderList[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if m.PendingSpotOrderCount != 0 { + i = encodeVarintGenesis(dAtA, i, uint64(m.PendingSpotOrderCount)) + i-- + dAtA[i] = 0x18 + } + if len(m.PendingSpotOrderList) > 0 { + for iNdEx := len(m.PendingSpotOrderList) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PendingSpotOrderList[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } { size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -143,6 +220,24 @@ func (m *GenesisState) Size() (n int) { _ = l l = m.Params.Size() n += 1 + l + sovGenesis(uint64(l)) + if len(m.PendingSpotOrderList) > 0 { + for _, e := range m.PendingSpotOrderList { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } + if m.PendingSpotOrderCount != 0 { + n += 1 + sovGenesis(uint64(m.PendingSpotOrderCount)) + } + if len(m.PendingPerpetualOrderList) > 0 { + for _, e := range m.PendingPerpetualOrderList { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } + if m.PendingPerpetualOrderCount != 0 { + n += 1 + sovGenesis(uint64(m.PendingPerpetualOrderCount)) + } return n } @@ -214,6 +309,112 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingSpotOrderList", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PendingSpotOrderList = append(m.PendingSpotOrderList, SpotOrder{}) + if err := m.PendingSpotOrderList[len(m.PendingSpotOrderList)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingSpotOrderCount", wireType) + } + m.PendingSpotOrderCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PendingSpotOrderCount |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingPerpetualOrderList", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PendingPerpetualOrderList = append(m.PendingPerpetualOrderList, PerpetualOrder{}) + if err := m.PendingPerpetualOrderList[len(m.PendingPerpetualOrderList)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingPerpetualOrderCount", wireType) + } + m.PendingPerpetualOrderCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PendingPerpetualOrderCount |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/x/tradeshield/types/genesis_test.go b/x/tradeshield/types/genesis_test.go index 1cc50a382..0ed4da7c8 100644 --- a/x/tradeshield/types/genesis_test.go +++ b/x/tradeshield/types/genesis_test.go @@ -19,13 +19,83 @@ func TestGenesisState_Validate(t *testing.T) { valid: true, }, { - desc: "valid genesis state", + desc: "valid genesis state", genState: &types.GenesisState{ + PendingSpotOrderList: []types.SpotOrder{ + { + OrderId: 0, + }, + { + OrderId: 1, + }, + }, + PendingSpotOrderCount: 2, + PendingPerpetualOrderList: []types.PerpetualOrder{ + { + OrderId: 0, + }, + { + OrderId: 1, + }, + }, + PendingPerpetualOrderCount: 2, // this line is used by starport scaffolding # types/genesis/validField }, valid: true, }, + { + desc: "duplicated pendingSpotOrder", + genState: &types.GenesisState{ + PendingSpotOrderList: []types.SpotOrder{ + { + OrderId: 0, + }, + { + OrderId: 0, + }, + }, + }, + valid: false, + }, + { + desc: "invalid pendingSpotOrder count", + genState: &types.GenesisState{ + PendingSpotOrderList: []types.SpotOrder{ + { + OrderId: 1, + }, + }, + PendingSpotOrderCount: 0, + }, + valid: false, + }, + { + desc: "duplicated pendingPerpetualOrder", + genState: &types.GenesisState{ + PendingPerpetualOrderList: []types.PerpetualOrder{ + { + OrderId: 0, + }, + { + OrderId: 0, + }, + }, + }, + valid: false, + }, + { + desc: "invalid pendingPerpetualOrder count", + genState: &types.GenesisState{ + PendingPerpetualOrderList: []types.PerpetualOrder{ + { + OrderId: 1, + }, + }, + PendingPerpetualOrderCount: 0, + }, + valid: false, + }, // this line is used by starport scaffolding # types/genesis/testcase } for _, tc := range tests { diff --git a/x/tradeshield/types/keys.go b/x/tradeshield/types/keys.go index 68b16c37e..006b32b9b 100644 --- a/x/tradeshield/types/keys.go +++ b/x/tradeshield/types/keys.go @@ -1,5 +1,11 @@ package types +import ( + "encoding/binary" + "errors" + "fmt" +) + const ( // ModuleName defines the module name ModuleName = "tradeshield" @@ -19,5 +25,57 @@ func KeyPrefix(p string) []byte { } var ( - ParamsKey = []byte{0x01} + ParamsKey = []byte{0x01} + PendingSpotOrderKey = []byte{0x02} + PendingSpotOrderCountKey = []byte{0x03} + SortedSpotOrderKey = []byte{0x04} + PendingPerpetualOrderKey = []byte{0x05} + PendingPerpetualOrderCountKey = []byte{0x06} + SortedPerpetualOrderKey = []byte{0x07} ) + +func GenSpotKey(order SpotOrder) (string, error) { + if order.OrderType == SpotOrderType_MARKETBUY { + return "", errors.New("cannot generate a key on a market order") + } + if order.OrderPrice != nil { + return fmt.Sprintf("%s\n%s\n%s", + order.OrderType, + order.OrderPrice.BaseDenom, + order.OrderPrice.QuoteDenom), nil + } + return "", errors.New("order price not found") +} + +func GenPerpKey(order PerpetualOrder) (string, error) { + if order.PerpetualOrderType == PerpetualOrderType_MARKETCLOSE || order.PerpetualOrderType == PerpetualOrderType_MARKETOPEN { + return "", errors.New("cannot generate a key on a market order") + } + if order.TriggerPrice != nil { + return fmt.Sprintf("%s\n%s\n%s\n%s", + order.Position, + order.PerpetualOrderType, + order.TriggerPrice.BaseDenom, + order.TriggerPrice.QuoteDenom), nil + } + return "", errors.New("trigger price not found") +} + +func EncodeUint64Slice(slice []uint64) []byte { + buf := make([]byte, 8*len(slice)) + for i, v := range slice { + binary.BigEndian.PutUint64(buf[i*8:], v) + } + return buf +} + +func DecodeUint64Slice(bz []byte) ([]uint64, error) { + if len(bz)%8 != 0 { + return nil, errors.New("invalid byte slice length") + } + slice := make([]uint64, len(bz)/8) + for i := range slice { + slice[i] = binary.BigEndian.Uint64(bz[i*8:]) + } + return slice, nil +} diff --git a/x/tradeshield/types/messages_pending_perpetual_order.go b/x/tradeshield/types/messages_pending_perpetual_order.go new file mode 100644 index 000000000..551370568 --- /dev/null +++ b/x/tradeshield/types/messages_pending_perpetual_order.go @@ -0,0 +1,126 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +const ( + TypeMsgCreatePendingPerpetualOrder = "create_pending_perpetual_order" + TypeMsgUpdatePendingPerpetualOrder = "update_pending_perpetual_order" + TypeMsgDeletePendingPerpetualOrder = "delete_pending_perpetual_order" +) + +var _ sdk.Msg = &MsgCreatePendingPerpetualOrder{} + +func NewMsgCreatePendingPerpetualOrder(creator string, order string) *MsgCreatePendingPerpetualOrder { + return &MsgCreatePendingPerpetualOrder{ + Creator: creator, + Order: order, + } +} + +func (msg *MsgCreatePendingPerpetualOrder) Route() string { + return RouterKey +} + +func (msg *MsgCreatePendingPerpetualOrder) Type() string { + return TypeMsgCreatePendingPerpetualOrder +} + +func (msg *MsgCreatePendingPerpetualOrder) GetSigners() []sdk.AccAddress { + creator, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + panic(err) + } + return []sdk.AccAddress{creator} +} + +func (msg *MsgCreatePendingPerpetualOrder) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} + +func (msg *MsgCreatePendingPerpetualOrder) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} + +var _ sdk.Msg = &MsgUpdatePendingPerpetualOrder{} + +func NewMsgUpdatePendingPerpetualOrder(creator string, id uint64, order string) *MsgUpdatePendingPerpetualOrder { + return &MsgUpdatePendingPerpetualOrder{ + Id: id, + Creator: creator, + Order: order, + } +} + +func (msg *MsgUpdatePendingPerpetualOrder) Route() string { + return RouterKey +} + +func (msg *MsgUpdatePendingPerpetualOrder) Type() string { + return TypeMsgUpdatePendingPerpetualOrder +} + +func (msg *MsgUpdatePendingPerpetualOrder) GetSigners() []sdk.AccAddress { + creator, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + panic(err) + } + return []sdk.AccAddress{creator} +} + +func (msg *MsgUpdatePendingPerpetualOrder) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} + +func (msg *MsgUpdatePendingPerpetualOrder) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} + +var _ sdk.Msg = &MsgDeletePendingPerpetualOrder{} + +func NewMsgDeletePendingPerpetualOrder(creator string, id uint64) *MsgDeletePendingPerpetualOrder { + return &MsgDeletePendingPerpetualOrder{ + Id: id, + Creator: creator, + } +} +func (msg *MsgDeletePendingPerpetualOrder) Route() string { + return RouterKey +} + +func (msg *MsgDeletePendingPerpetualOrder) Type() string { + return TypeMsgDeletePendingPerpetualOrder +} + +func (msg *MsgDeletePendingPerpetualOrder) GetSigners() []sdk.AccAddress { + creator, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + panic(err) + } + return []sdk.AccAddress{creator} +} + +func (msg *MsgDeletePendingPerpetualOrder) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} + +func (msg *MsgDeletePendingPerpetualOrder) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} diff --git a/x/tradeshield/types/messages_pending_perpetual_order_test.go b/x/tradeshield/types/messages_pending_perpetual_order_test.go new file mode 100644 index 000000000..f813c5398 --- /dev/null +++ b/x/tradeshield/types/messages_pending_perpetual_order_test.go @@ -0,0 +1,102 @@ +package types + +import ( + "testing" + + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/elys-network/elys/testutil/sample" + "github.com/stretchr/testify/require" +) + +func TestMsgCreatePendingPerpetualOrder_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgCreatePendingPerpetualOrder + err error + }{ + { + name: "invalid address", + msg: MsgCreatePendingPerpetualOrder{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgCreatePendingPerpetualOrder{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} + +func TestMsgUpdatePendingPerpetualOrder_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgUpdatePendingPerpetualOrder + err error + }{ + { + name: "invalid address", + msg: MsgUpdatePendingPerpetualOrder{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgUpdatePendingPerpetualOrder{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} + +func TestMsgDeletePendingPerpetualOrder_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgDeletePendingPerpetualOrder + err error + }{ + { + name: "invalid address", + msg: MsgDeletePendingPerpetualOrder{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgDeletePendingPerpetualOrder{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} diff --git a/x/tradeshield/types/messages_pending_spot_order.go b/x/tradeshield/types/messages_pending_spot_order.go new file mode 100644 index 000000000..7fb02d833 --- /dev/null +++ b/x/tradeshield/types/messages_pending_spot_order.go @@ -0,0 +1,139 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +const ( + TypeMsgCreatePendingSpotOrder = "create_pending_spot_order" + TypeMsgUpdatePendingSpotOrder = "update_pending_spot_order" + TypeMsgDeletePendingSpotOrder = "delete_pending_spot_order" +) + +var _ sdk.Msg = &MsgCreatePendingSpotOrder{} + +// func NewMsgCreatePendingSpotOrder(ownerAddress string, orderType SpotOrderType, +// orderPrice OrderPrice, orderAmount sdk.Coin, +// orderTargetDenom string, status Status, date Date) *MsgCreatePendingSpotOrder { +// return &MsgCreatePendingSpotOrder{ +// OrderType: orderType, +// OrderPrice: &orderPrice, +// OrderAmount: &orderAmount, +// OwnerAddress: ownerAddress, +// OrderTargetDenom: orderTargetDenom, +// Status: status, +// Date: &date, +// } +// } + +func NewMsgCreatePendingSpotOrder(ownerAddress string) *MsgCreatePendingSpotOrder { + return &MsgCreatePendingSpotOrder{ + OwnerAddress: ownerAddress, + } +} + +func (msg *MsgCreatePendingSpotOrder) Route() string { + return RouterKey +} + +func (msg *MsgCreatePendingSpotOrder) Type() string { + return TypeMsgCreatePendingSpotOrder +} + +func (msg *MsgCreatePendingSpotOrder) GetSigners() []sdk.AccAddress { + creator, err := sdk.AccAddressFromBech32(msg.OwnerAddress) + if err != nil { + panic(err) + } + return []sdk.AccAddress{creator} +} + +func (msg *MsgCreatePendingSpotOrder) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} + +func (msg *MsgCreatePendingSpotOrder) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.OwnerAddress) + if err != nil { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} + +var _ sdk.Msg = &MsgUpdatePendingSpotOrder{} + +func NewMsgUpdatePendingSpotOrder(creator string, id uint64, order string) *MsgUpdatePendingSpotOrder { + return &MsgUpdatePendingSpotOrder{ + Id: id, + Creator: creator, + Order: order, + } +} + +func (msg *MsgUpdatePendingSpotOrder) Route() string { + return RouterKey +} + +func (msg *MsgUpdatePendingSpotOrder) Type() string { + return TypeMsgUpdatePendingSpotOrder +} + +func (msg *MsgUpdatePendingSpotOrder) GetSigners() []sdk.AccAddress { + creator, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + panic(err) + } + return []sdk.AccAddress{creator} +} + +func (msg *MsgUpdatePendingSpotOrder) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} + +func (msg *MsgUpdatePendingSpotOrder) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} + +var _ sdk.Msg = &MsgDeletePendingSpotOrder{} + +func NewMsgDeletePendingSpotOrder(creator string, id uint64) *MsgDeletePendingSpotOrder { + return &MsgDeletePendingSpotOrder{ + Id: id, + Creator: creator, + } +} +func (msg *MsgDeletePendingSpotOrder) Route() string { + return RouterKey +} + +func (msg *MsgDeletePendingSpotOrder) Type() string { + return TypeMsgDeletePendingSpotOrder +} + +func (msg *MsgDeletePendingSpotOrder) GetSigners() []sdk.AccAddress { + creator, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + panic(err) + } + return []sdk.AccAddress{creator} +} + +func (msg *MsgDeletePendingSpotOrder) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} + +func (msg *MsgDeletePendingSpotOrder) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} diff --git a/x/tradeshield/types/messages_pending_spot_order_test.go b/x/tradeshield/types/messages_pending_spot_order_test.go new file mode 100644 index 000000000..32526351f --- /dev/null +++ b/x/tradeshield/types/messages_pending_spot_order_test.go @@ -0,0 +1,102 @@ +package types + +import ( + "testing" + + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/elys-network/elys/testutil/sample" + "github.com/stretchr/testify/require" +) + +func TestMsgCreatePendingSpotOrder_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgCreatePendingSpotOrder + err error + }{ + { + name: "invalid address", + msg: MsgCreatePendingSpotOrder{ + OwnerAddress: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgCreatePendingSpotOrder{ + OwnerAddress: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} + +func TestMsgUpdatePendingSpotOrder_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgUpdatePendingSpotOrder + err error + }{ + { + name: "invalid address", + msg: MsgUpdatePendingSpotOrder{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgUpdatePendingSpotOrder{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} + +func TestMsgDeletePendingSpotOrder_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgDeletePendingSpotOrder + err error + }{ + { + name: "invalid address", + msg: MsgDeletePendingSpotOrder{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgDeletePendingSpotOrder{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} diff --git a/x/tradeshield/types/pending_perpetual_order.pb.go b/x/tradeshield/types/pending_perpetual_order.pb.go new file mode 100644 index 000000000..b684c3909 --- /dev/null +++ b/x/tradeshield/types/pending_perpetual_order.pb.go @@ -0,0 +1,405 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: elys/tradeshield/pending_perpetual_order.proto + +package types + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type PendingPerpetualOrder struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Order string `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` + Creator string `protobuf:"bytes,3,opt,name=creator,proto3" json:"creator,omitempty"` +} + +func (m *PendingPerpetualOrder) Reset() { *m = PendingPerpetualOrder{} } +func (m *PendingPerpetualOrder) String() string { return proto.CompactTextString(m) } +func (*PendingPerpetualOrder) ProtoMessage() {} +func (*PendingPerpetualOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_ec35bce0468cb2b8, []int{0} +} +func (m *PendingPerpetualOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PendingPerpetualOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PendingPerpetualOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PendingPerpetualOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_PendingPerpetualOrder.Merge(m, src) +} +func (m *PendingPerpetualOrder) XXX_Size() int { + return m.Size() +} +func (m *PendingPerpetualOrder) XXX_DiscardUnknown() { + xxx_messageInfo_PendingPerpetualOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_PendingPerpetualOrder proto.InternalMessageInfo + +func (m *PendingPerpetualOrder) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *PendingPerpetualOrder) GetOrder() string { + if m != nil { + return m.Order + } + return "" +} + +func (m *PendingPerpetualOrder) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func init() { + proto.RegisterType((*PendingPerpetualOrder)(nil), "elys.tradeshield.PendingPerpetualOrder") +} + +func init() { + proto.RegisterFile("elys/tradeshield/pending_perpetual_order.proto", fileDescriptor_ec35bce0468cb2b8) +} + +var fileDescriptor_ec35bce0468cb2b8 = []byte{ + // 207 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4b, 0xcd, 0xa9, 0x2c, + 0xd6, 0x2f, 0x29, 0x4a, 0x4c, 0x49, 0x2d, 0xce, 0xc8, 0x4c, 0xcd, 0x49, 0xd1, 0x2f, 0x48, 0xcd, + 0x4b, 0xc9, 0xcc, 0x4b, 0x8f, 0x2f, 0x48, 0x2d, 0x2a, 0x48, 0x2d, 0x29, 0x4d, 0xcc, 0x89, 0xcf, + 0x2f, 0x4a, 0x49, 0x2d, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x00, 0xa9, 0xd7, 0x43, + 0x52, 0xaf, 0x14, 0xce, 0x25, 0x1a, 0x00, 0xd1, 0x12, 0x00, 0xd3, 0xe1, 0x0f, 0xd2, 0x20, 0xc4, + 0xc7, 0xc5, 0x94, 0x99, 0x22, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x12, 0xc4, 0x94, 0x99, 0x22, 0x24, + 0xc2, 0xc5, 0x0a, 0x36, 0x49, 0x82, 0x49, 0x81, 0x51, 0x83, 0x33, 0x08, 0xc2, 0x11, 0x92, 0xe0, + 0x62, 0x4f, 0x2e, 0x4a, 0x4d, 0x2c, 0xc9, 0x2f, 0x92, 0x60, 0x06, 0x8b, 0xc3, 0xb8, 0x4e, 0x5e, + 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x84, 0xc7, 0x72, + 0x0c, 0x17, 0x1e, 0xcb, 0x31, 0xdc, 0x78, 0x2c, 0xc7, 0x10, 0x65, 0x90, 0x9e, 0x59, 0x92, 0x51, + 0x9a, 0xa4, 0x97, 0x9c, 0x9f, 0xab, 0x0f, 0x72, 0x8f, 0x6e, 0x5e, 0x6a, 0x49, 0x79, 0x7e, 0x51, + 0x36, 0x98, 0xa3, 0x5f, 0x81, 0xe2, 0x9d, 0x92, 0xca, 0x82, 0xd4, 0xe2, 0x24, 0x36, 0xb0, 0xeb, + 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x17, 0x58, 0xc2, 0x20, 0xef, 0x00, 0x00, 0x00, +} + +func (m *PendingPerpetualOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PendingPerpetualOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PendingPerpetualOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintPendingPerpetualOrder(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0x1a + } + if len(m.Order) > 0 { + i -= len(m.Order) + copy(dAtA[i:], m.Order) + i = encodeVarintPendingPerpetualOrder(dAtA, i, uint64(len(m.Order))) + i-- + dAtA[i] = 0x12 + } + if m.Id != 0 { + i = encodeVarintPendingPerpetualOrder(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintPendingPerpetualOrder(dAtA []byte, offset int, v uint64) int { + offset -= sovPendingPerpetualOrder(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *PendingPerpetualOrder) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovPendingPerpetualOrder(uint64(m.Id)) + } + l = len(m.Order) + if l > 0 { + n += 1 + l + sovPendingPerpetualOrder(uint64(l)) + } + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovPendingPerpetualOrder(uint64(l)) + } + return n +} + +func sovPendingPerpetualOrder(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozPendingPerpetualOrder(x uint64) (n int) { + return sovPendingPerpetualOrder(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *PendingPerpetualOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPendingPerpetualOrder + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PendingPerpetualOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PendingPerpetualOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPendingPerpetualOrder + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPendingPerpetualOrder + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPendingPerpetualOrder + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPendingPerpetualOrder + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Order = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPendingPerpetualOrder + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPendingPerpetualOrder + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPendingPerpetualOrder + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPendingPerpetualOrder(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPendingPerpetualOrder + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipPendingPerpetualOrder(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPendingPerpetualOrder + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPendingPerpetualOrder + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPendingPerpetualOrder + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthPendingPerpetualOrder + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupPendingPerpetualOrder + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthPendingPerpetualOrder + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthPendingPerpetualOrder = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowPendingPerpetualOrder = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupPendingPerpetualOrder = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/tradeshield/types/query.pb.go b/x/tradeshield/types/query.pb.go index 1e84f3163..b4ce36663 100644 --- a/x/tradeshield/types/query.pb.go +++ b/x/tradeshield/types/query.pb.go @@ -6,7 +6,7 @@ package types import ( context "context" fmt "fmt" - _ "github.com/cosmos/cosmos-sdk/types/query" + query "github.com/cosmos/cosmos-sdk/types/query" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -113,35 +113,431 @@ func (m *QueryParamsResponse) GetParams() Params { return Params{} } +type QueryGetPendingSpotOrderRequest struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *QueryGetPendingSpotOrderRequest) Reset() { *m = QueryGetPendingSpotOrderRequest{} } +func (m *QueryGetPendingSpotOrderRequest) String() string { return proto.CompactTextString(m) } +func (*QueryGetPendingSpotOrderRequest) ProtoMessage() {} +func (*QueryGetPendingSpotOrderRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0b92ce2c2fb85355, []int{2} +} +func (m *QueryGetPendingSpotOrderRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryGetPendingSpotOrderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryGetPendingSpotOrderRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryGetPendingSpotOrderRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetPendingSpotOrderRequest.Merge(m, src) +} +func (m *QueryGetPendingSpotOrderRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryGetPendingSpotOrderRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetPendingSpotOrderRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryGetPendingSpotOrderRequest proto.InternalMessageInfo + +func (m *QueryGetPendingSpotOrderRequest) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type QueryGetPendingSpotOrderResponse struct { + PendingSpotOrder SpotOrder `protobuf:"bytes,1,opt,name=PendingSpotOrder,proto3" json:"PendingSpotOrder"` +} + +func (m *QueryGetPendingSpotOrderResponse) Reset() { *m = QueryGetPendingSpotOrderResponse{} } +func (m *QueryGetPendingSpotOrderResponse) String() string { return proto.CompactTextString(m) } +func (*QueryGetPendingSpotOrderResponse) ProtoMessage() {} +func (*QueryGetPendingSpotOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0b92ce2c2fb85355, []int{3} +} +func (m *QueryGetPendingSpotOrderResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryGetPendingSpotOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryGetPendingSpotOrderResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryGetPendingSpotOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetPendingSpotOrderResponse.Merge(m, src) +} +func (m *QueryGetPendingSpotOrderResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryGetPendingSpotOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetPendingSpotOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryGetPendingSpotOrderResponse proto.InternalMessageInfo + +func (m *QueryGetPendingSpotOrderResponse) GetPendingSpotOrder() SpotOrder { + if m != nil { + return m.PendingSpotOrder + } + return SpotOrder{} +} + +type QueryAllPendingSpotOrderRequest struct { + Pagination *query.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryAllPendingSpotOrderRequest) Reset() { *m = QueryAllPendingSpotOrderRequest{} } +func (m *QueryAllPendingSpotOrderRequest) String() string { return proto.CompactTextString(m) } +func (*QueryAllPendingSpotOrderRequest) ProtoMessage() {} +func (*QueryAllPendingSpotOrderRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0b92ce2c2fb85355, []int{4} +} +func (m *QueryAllPendingSpotOrderRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAllPendingSpotOrderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAllPendingSpotOrderRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAllPendingSpotOrderRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAllPendingSpotOrderRequest.Merge(m, src) +} +func (m *QueryAllPendingSpotOrderRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryAllPendingSpotOrderRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAllPendingSpotOrderRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAllPendingSpotOrderRequest proto.InternalMessageInfo + +func (m *QueryAllPendingSpotOrderRequest) GetPagination() *query.PageRequest { + if m != nil { + return m.Pagination + } + return nil +} + +type QueryAllPendingSpotOrderResponse struct { + PendingSpotOrder []SpotOrder `protobuf:"bytes,1,rep,name=PendingSpotOrder,proto3" json:"PendingSpotOrder"` + Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryAllPendingSpotOrderResponse) Reset() { *m = QueryAllPendingSpotOrderResponse{} } +func (m *QueryAllPendingSpotOrderResponse) String() string { return proto.CompactTextString(m) } +func (*QueryAllPendingSpotOrderResponse) ProtoMessage() {} +func (*QueryAllPendingSpotOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0b92ce2c2fb85355, []int{5} +} +func (m *QueryAllPendingSpotOrderResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAllPendingSpotOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAllPendingSpotOrderResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAllPendingSpotOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAllPendingSpotOrderResponse.Merge(m, src) +} +func (m *QueryAllPendingSpotOrderResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryAllPendingSpotOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAllPendingSpotOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAllPendingSpotOrderResponse proto.InternalMessageInfo + +func (m *QueryAllPendingSpotOrderResponse) GetPendingSpotOrder() []SpotOrder { + if m != nil { + return m.PendingSpotOrder + } + return nil +} + +func (m *QueryAllPendingSpotOrderResponse) GetPagination() *query.PageResponse { + if m != nil { + return m.Pagination + } + return nil +} + +type QueryGetPendingPerpetualOrderRequest struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *QueryGetPendingPerpetualOrderRequest) Reset() { *m = QueryGetPendingPerpetualOrderRequest{} } +func (m *QueryGetPendingPerpetualOrderRequest) String() string { return proto.CompactTextString(m) } +func (*QueryGetPendingPerpetualOrderRequest) ProtoMessage() {} +func (*QueryGetPendingPerpetualOrderRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0b92ce2c2fb85355, []int{6} +} +func (m *QueryGetPendingPerpetualOrderRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryGetPendingPerpetualOrderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryGetPendingPerpetualOrderRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryGetPendingPerpetualOrderRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetPendingPerpetualOrderRequest.Merge(m, src) +} +func (m *QueryGetPendingPerpetualOrderRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryGetPendingPerpetualOrderRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetPendingPerpetualOrderRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryGetPendingPerpetualOrderRequest proto.InternalMessageInfo + +func (m *QueryGetPendingPerpetualOrderRequest) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type QueryGetPendingPerpetualOrderResponse struct { + PendingPerpetualOrder PerpetualOrder `protobuf:"bytes,1,opt,name=PendingPerpetualOrder,proto3" json:"PendingPerpetualOrder"` +} + +func (m *QueryGetPendingPerpetualOrderResponse) Reset() { *m = QueryGetPendingPerpetualOrderResponse{} } +func (m *QueryGetPendingPerpetualOrderResponse) String() string { return proto.CompactTextString(m) } +func (*QueryGetPendingPerpetualOrderResponse) ProtoMessage() {} +func (*QueryGetPendingPerpetualOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0b92ce2c2fb85355, []int{7} +} +func (m *QueryGetPendingPerpetualOrderResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryGetPendingPerpetualOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryGetPendingPerpetualOrderResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryGetPendingPerpetualOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetPendingPerpetualOrderResponse.Merge(m, src) +} +func (m *QueryGetPendingPerpetualOrderResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryGetPendingPerpetualOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetPendingPerpetualOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryGetPendingPerpetualOrderResponse proto.InternalMessageInfo + +func (m *QueryGetPendingPerpetualOrderResponse) GetPendingPerpetualOrder() PerpetualOrder { + if m != nil { + return m.PendingPerpetualOrder + } + return PerpetualOrder{} +} + +type QueryAllPendingPerpetualOrderRequest struct { + Pagination *query.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryAllPendingPerpetualOrderRequest) Reset() { *m = QueryAllPendingPerpetualOrderRequest{} } +func (m *QueryAllPendingPerpetualOrderRequest) String() string { return proto.CompactTextString(m) } +func (*QueryAllPendingPerpetualOrderRequest) ProtoMessage() {} +func (*QueryAllPendingPerpetualOrderRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0b92ce2c2fb85355, []int{8} +} +func (m *QueryAllPendingPerpetualOrderRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAllPendingPerpetualOrderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAllPendingPerpetualOrderRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAllPendingPerpetualOrderRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAllPendingPerpetualOrderRequest.Merge(m, src) +} +func (m *QueryAllPendingPerpetualOrderRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryAllPendingPerpetualOrderRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAllPendingPerpetualOrderRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAllPendingPerpetualOrderRequest proto.InternalMessageInfo + +func (m *QueryAllPendingPerpetualOrderRequest) GetPagination() *query.PageRequest { + if m != nil { + return m.Pagination + } + return nil +} + +type QueryAllPendingPerpetualOrderResponse struct { + PendingPerpetualOrder []PerpetualOrder `protobuf:"bytes,1,rep,name=PendingPerpetualOrder,proto3" json:"PendingPerpetualOrder"` + Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryAllPendingPerpetualOrderResponse) Reset() { *m = QueryAllPendingPerpetualOrderResponse{} } +func (m *QueryAllPendingPerpetualOrderResponse) String() string { return proto.CompactTextString(m) } +func (*QueryAllPendingPerpetualOrderResponse) ProtoMessage() {} +func (*QueryAllPendingPerpetualOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0b92ce2c2fb85355, []int{9} +} +func (m *QueryAllPendingPerpetualOrderResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAllPendingPerpetualOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAllPendingPerpetualOrderResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAllPendingPerpetualOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAllPendingPerpetualOrderResponse.Merge(m, src) +} +func (m *QueryAllPendingPerpetualOrderResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryAllPendingPerpetualOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAllPendingPerpetualOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAllPendingPerpetualOrderResponse proto.InternalMessageInfo + +func (m *QueryAllPendingPerpetualOrderResponse) GetPendingPerpetualOrder() []PerpetualOrder { + if m != nil { + return m.PendingPerpetualOrder + } + return nil +} + +func (m *QueryAllPendingPerpetualOrderResponse) GetPagination() *query.PageResponse { + if m != nil { + return m.Pagination + } + return nil +} + func init() { proto.RegisterType((*QueryParamsRequest)(nil), "elys.tradeshield.QueryParamsRequest") proto.RegisterType((*QueryParamsResponse)(nil), "elys.tradeshield.QueryParamsResponse") + proto.RegisterType((*QueryGetPendingSpotOrderRequest)(nil), "elys.tradeshield.QueryGetPendingSpotOrderRequest") + proto.RegisterType((*QueryGetPendingSpotOrderResponse)(nil), "elys.tradeshield.QueryGetPendingSpotOrderResponse") + proto.RegisterType((*QueryAllPendingSpotOrderRequest)(nil), "elys.tradeshield.QueryAllPendingSpotOrderRequest") + proto.RegisterType((*QueryAllPendingSpotOrderResponse)(nil), "elys.tradeshield.QueryAllPendingSpotOrderResponse") + proto.RegisterType((*QueryGetPendingPerpetualOrderRequest)(nil), "elys.tradeshield.QueryGetPendingPerpetualOrderRequest") + proto.RegisterType((*QueryGetPendingPerpetualOrderResponse)(nil), "elys.tradeshield.QueryGetPendingPerpetualOrderResponse") + proto.RegisterType((*QueryAllPendingPerpetualOrderRequest)(nil), "elys.tradeshield.QueryAllPendingPerpetualOrderRequest") + proto.RegisterType((*QueryAllPendingPerpetualOrderResponse)(nil), "elys.tradeshield.QueryAllPendingPerpetualOrderResponse") } func init() { proto.RegisterFile("elys/tradeshield/query.proto", fileDescriptor_0b92ce2c2fb85355) } var fileDescriptor_0b92ce2c2fb85355 = []byte{ - // 307 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0x41, 0x4b, 0x33, 0x31, - 0x10, 0x86, 0x37, 0x1f, 0x9f, 0x3d, 0xc4, 0x8b, 0xc4, 0x1e, 0x4a, 0xa9, 0x51, 0x8a, 0x45, 0x11, - 0xba, 0xb1, 0x15, 0xfc, 0x01, 0x3d, 0x0a, 0x82, 0xf6, 0xe8, 0x2d, 0xdb, 0x0e, 0xe9, 0x62, 0x9b, - 0x49, 0x37, 0xa9, 0xda, 0xab, 0x78, 0x16, 0xc1, 0x3f, 0xd5, 0x63, 0xc1, 0x8b, 0x27, 0x91, 0xae, - 0x3f, 0x44, 0x76, 0xb3, 0x07, 0xeb, 0x2a, 0xde, 0xc2, 0xbc, 0xcf, 0x3c, 0xbc, 0x13, 0xda, 0x80, - 0xf1, 0xdc, 0x0a, 0x97, 0xc8, 0x21, 0xd8, 0x51, 0x0c, 0xe3, 0xa1, 0x98, 0xce, 0x20, 0x99, 0x87, - 0x26, 0x41, 0x87, 0x6c, 0x2b, 0x4b, 0xc3, 0x2f, 0x69, 0xbd, 0xaa, 0x50, 0x61, 0x1e, 0x8a, 0xec, - 0xe5, 0xb9, 0x7a, 0x43, 0x21, 0xaa, 0x31, 0x08, 0x69, 0x62, 0x21, 0xb5, 0x46, 0x27, 0x5d, 0x8c, - 0xda, 0x16, 0xe9, 0xd1, 0x00, 0xed, 0x04, 0xad, 0x88, 0xa4, 0x05, 0xaf, 0x17, 0x37, 0x9d, 0x08, - 0x9c, 0xec, 0x08, 0x23, 0x55, 0xac, 0x73, 0xb8, 0x60, 0x77, 0x4a, 0x7d, 0x8c, 0x4c, 0xe4, 0xa4, - 0x50, 0x35, 0xab, 0x94, 0x5d, 0x66, 0x82, 0x8b, 0x7c, 0xd8, 0x87, 0xe9, 0x0c, 0xac, 0x6b, 0x9e, - 0xd3, 0xed, 0xb5, 0xa9, 0x35, 0xa8, 0x2d, 0xb0, 0x53, 0x5a, 0xf1, 0xcb, 0x35, 0xb2, 0x47, 0x0e, - 0x37, 0xbb, 0xb5, 0xf0, 0xfb, 0x39, 0xa1, 0xdf, 0xe8, 0xfd, 0x5f, 0xbc, 0xed, 0x06, 0xfd, 0x82, - 0xee, 0x3e, 0x12, 0xba, 0x91, 0xfb, 0xd8, 0x03, 0xa1, 0x15, 0x8f, 0xb0, 0xfd, 0xf2, 0x72, 0xb9, - 0x49, 0xbd, 0xf5, 0x07, 0xe5, 0x9b, 0x35, 0xdb, 0xf7, 0x2f, 0x1f, 0xcf, 0xff, 0x0e, 0x58, 0x4b, - 0x64, 0x78, 0x5b, 0x83, 0xbb, 0xc5, 0xe4, 0x5a, 0xfc, 0x72, 0x7b, 0xef, 0x6c, 0xb1, 0xe2, 0x64, - 0xb9, 0xe2, 0xe4, 0x7d, 0xc5, 0xc9, 0x53, 0xca, 0x83, 0x65, 0xca, 0x83, 0xd7, 0x94, 0x07, 0x57, - 0xc7, 0x2a, 0x76, 0xa3, 0x59, 0x14, 0x0e, 0x70, 0xf2, 0x83, 0xea, 0x6e, 0x4d, 0xe6, 0xe6, 0x06, - 0x6c, 0x54, 0xc9, 0x3f, 0xf2, 0xe4, 0x33, 0x00, 0x00, 0xff, 0xff, 0x09, 0x97, 0x15, 0xe3, 0xf9, - 0x01, 0x00, 0x00, + // 635 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xd1, 0x6a, 0x13, 0x4d, + 0x14, 0xc7, 0x33, 0x69, 0xbf, 0x7c, 0x30, 0x82, 0x94, 0x69, 0x85, 0x10, 0xeb, 0x36, 0x2c, 0x8d, + 0x15, 0xa1, 0x3b, 0x26, 0x85, 0xa8, 0x88, 0x42, 0x2b, 0x58, 0x10, 0x8a, 0x31, 0xde, 0x89, 0x50, + 0x26, 0xdd, 0x61, 0xbb, 0xb8, 0xd9, 0xd9, 0xec, 0x4e, 0xd4, 0x20, 0xde, 0x88, 0xde, 0x0b, 0xbe, + 0x81, 0x2f, 0x21, 0xfa, 0x04, 0x05, 0x51, 0x0a, 0xde, 0x78, 0x25, 0x92, 0xf8, 0x20, 0xb2, 0x33, + 0x13, 0x9b, 0x64, 0x77, 0xb2, 0xae, 0xf6, 0x2e, 0x64, 0xce, 0xf9, 0x9f, 0xdf, 0xff, 0x9c, 0x99, + 0xc3, 0xc2, 0x55, 0xea, 0x0d, 0x22, 0xcc, 0x43, 0x62, 0xd3, 0xe8, 0xd0, 0xa5, 0x9e, 0x8d, 0x7b, + 0x7d, 0x1a, 0x0e, 0xac, 0x20, 0x64, 0x9c, 0xa1, 0xa5, 0xf8, 0xd4, 0x9a, 0x38, 0xad, 0xac, 0x38, + 0xcc, 0x61, 0xe2, 0x10, 0xc7, 0xbf, 0x64, 0x5c, 0x65, 0xd5, 0x61, 0xcc, 0xf1, 0x28, 0x26, 0x81, + 0x8b, 0x89, 0xef, 0x33, 0x4e, 0xb8, 0xcb, 0xfc, 0x48, 0x9d, 0x5e, 0x3e, 0x60, 0x51, 0x97, 0x45, + 0xb8, 0x43, 0x22, 0x2a, 0xe5, 0xf1, 0x93, 0x7a, 0x87, 0x72, 0x52, 0xc7, 0x01, 0x71, 0x5c, 0x5f, + 0x04, 0xab, 0xd8, 0x0b, 0x09, 0x9e, 0x80, 0x84, 0xa4, 0x3b, 0x96, 0x4a, 0xe2, 0xf2, 0x41, 0x40, + 0xd5, 0xa9, 0xb9, 0x02, 0xd1, 0xfd, 0x58, 0xbe, 0x25, 0x52, 0xda, 0xb4, 0xd7, 0xa7, 0x11, 0x37, + 0xf7, 0xe0, 0xf2, 0xd4, 0xbf, 0x51, 0xc0, 0xfc, 0x88, 0xa2, 0x26, 0x2c, 0x49, 0xe9, 0x32, 0xa8, + 0x82, 0x4b, 0x67, 0x1a, 0x65, 0x6b, 0xd6, 0xac, 0x25, 0x33, 0x76, 0x16, 0x8f, 0xbe, 0xaf, 0x15, + 0xda, 0x2a, 0xda, 0xac, 0xc3, 0x35, 0x21, 0xb7, 0x4b, 0x79, 0x8b, 0xfa, 0xb6, 0xeb, 0x3b, 0x0f, + 0x02, 0xc6, 0xef, 0x85, 0x36, 0x0d, 0x55, 0x45, 0x74, 0x16, 0x16, 0x5d, 0x5b, 0xc8, 0x2e, 0xb6, + 0x8b, 0xae, 0x6d, 0xf6, 0x60, 0x55, 0x9f, 0xa2, 0x70, 0xf6, 0xe0, 0xd2, 0xec, 0x99, 0x02, 0x3b, + 0x9f, 0x04, 0xfb, 0x1d, 0xa2, 0xd8, 0x12, 0xa9, 0xa6, 0xab, 0x28, 0xb7, 0x3d, 0x4f, 0x47, 0x79, + 0x07, 0xc2, 0x93, 0xf6, 0xab, 0x5a, 0x17, 0x2d, 0x39, 0x2b, 0x2b, 0x9e, 0x95, 0x25, 0xaf, 0x82, + 0x9a, 0x95, 0xd5, 0x22, 0x0e, 0x55, 0xb9, 0xed, 0x89, 0x4c, 0xf3, 0x23, 0x50, 0xf6, 0x52, 0x6b, + 0xcd, 0xb5, 0xb7, 0xf0, 0x97, 0xf6, 0xd0, 0xee, 0x14, 0x7b, 0x51, 0xb0, 0x6f, 0x64, 0xb2, 0x4b, + 0x96, 0x29, 0xf8, 0x26, 0x5c, 0x9f, 0x19, 0x4d, 0x8b, 0x86, 0x01, 0xe5, 0x7d, 0xe2, 0xcd, 0x1d, + 0xe9, 0x6b, 0x00, 0x6b, 0x19, 0x89, 0xca, 0xf9, 0x23, 0x78, 0x2e, 0x35, 0x40, 0x75, 0xbc, 0x9a, + 0x72, 0xed, 0xa6, 0xe2, 0x54, 0x0f, 0xd2, 0x45, 0x4c, 0x5f, 0xf1, 0x9f, 0xf4, 0x3e, 0x9d, 0xff, + 0xb4, 0x86, 0xfd, 0x65, 0xec, 0x5b, 0x5f, 0x30, 0xdb, 0xf7, 0xc2, 0x3f, 0xfb, 0x3e, 0xb5, 0x0b, + 0xd0, 0x78, 0xf7, 0x3f, 0xfc, 0x4f, 0x18, 0x42, 0xaf, 0x00, 0x2c, 0xc9, 0x17, 0x8f, 0xd6, 0x93, + 0x70, 0xc9, 0xc5, 0x52, 0xa9, 0x65, 0x44, 0xc9, 0x6a, 0xe6, 0xe6, 0xcb, 0xaf, 0x3f, 0xdf, 0x16, + 0x37, 0x50, 0x0d, 0xc7, 0xe1, 0x9b, 0x3e, 0xe5, 0x4f, 0x59, 0xf8, 0x18, 0x6b, 0x16, 0x1d, 0xfa, + 0x00, 0x92, 0x4f, 0x05, 0xd5, 0x35, 0xa5, 0xf4, 0x4b, 0xa8, 0xd2, 0xc8, 0x93, 0xa2, 0x50, 0x6f, + 0x09, 0xd4, 0x6b, 0xa8, 0x99, 0x85, 0x2a, 0x05, 0xf6, 0xa3, 0x80, 0xf1, 0x7d, 0x16, 0x4b, 0xe0, + 0xe7, 0xae, 0xfd, 0x02, 0xbd, 0x07, 0x70, 0x79, 0x56, 0x7c, 0xdb, 0xf3, 0xb4, 0xf8, 0xfa, 0xed, + 0xa4, 0xc5, 0x9f, 0xb3, 0x64, 0xcc, 0xeb, 0x02, 0x7f, 0x0b, 0xd5, 0x73, 0xe3, 0xa3, 0xcf, 0x40, + 0x73, 0x5d, 0x51, 0x33, 0xb3, 0x8f, 0xa9, 0x2f, 0xae, 0x72, 0x35, 0x77, 0x9e, 0x72, 0x71, 0x5b, + 0xb8, 0xb8, 0x89, 0x6e, 0xfc, 0xa1, 0x8b, 0x60, 0x2c, 0x33, 0x39, 0x89, 0x4f, 0x00, 0x96, 0x53, + 0xcb, 0xc4, 0xe3, 0x68, 0x66, 0xf6, 0x36, 0x9f, 0xa5, 0xac, 0x5d, 0x90, 0xfb, 0x5e, 0xcd, 0x58, + 0xda, 0xb9, 0x7b, 0x34, 0x34, 0xc0, 0xf1, 0xd0, 0x00, 0x3f, 0x86, 0x06, 0x78, 0x33, 0x32, 0x0a, + 0xc7, 0x23, 0xa3, 0xf0, 0x6d, 0x64, 0x14, 0x1e, 0x5e, 0x71, 0x5c, 0x7e, 0xd8, 0xef, 0x58, 0x07, + 0xac, 0x9b, 0xa2, 0xfd, 0x2c, 0xf9, 0xa9, 0xd0, 0x29, 0x89, 0x6f, 0x85, 0xad, 0x5f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x1f, 0xbf, 0xf5, 0x44, 0xfa, 0x08, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -158,6 +554,12 @@ const _ = grpc.SupportPackageIsVersion4 type QueryClient interface { // Parameters queries the parameters of the module. Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // Queries a list of PendingSpotOrder items. + PendingSpotOrder(ctx context.Context, in *QueryGetPendingSpotOrderRequest, opts ...grpc.CallOption) (*QueryGetPendingSpotOrderResponse, error) + PendingSpotOrderAll(ctx context.Context, in *QueryAllPendingSpotOrderRequest, opts ...grpc.CallOption) (*QueryAllPendingSpotOrderResponse, error) + // Queries a list of PendingPerpetualOrder items. + PendingPerpetualOrder(ctx context.Context, in *QueryGetPendingPerpetualOrderRequest, opts ...grpc.CallOption) (*QueryGetPendingPerpetualOrderResponse, error) + PendingPerpetualOrderAll(ctx context.Context, in *QueryAllPendingPerpetualOrderRequest, opts ...grpc.CallOption) (*QueryAllPendingPerpetualOrderResponse, error) } type queryClient struct { @@ -177,10 +579,52 @@ func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts . return out, nil } +func (c *queryClient) PendingSpotOrder(ctx context.Context, in *QueryGetPendingSpotOrderRequest, opts ...grpc.CallOption) (*QueryGetPendingSpotOrderResponse, error) { + out := new(QueryGetPendingSpotOrderResponse) + err := c.cc.Invoke(ctx, "/elys.tradeshield.Query/PendingSpotOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) PendingSpotOrderAll(ctx context.Context, in *QueryAllPendingSpotOrderRequest, opts ...grpc.CallOption) (*QueryAllPendingSpotOrderResponse, error) { + out := new(QueryAllPendingSpotOrderResponse) + err := c.cc.Invoke(ctx, "/elys.tradeshield.Query/PendingSpotOrderAll", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) PendingPerpetualOrder(ctx context.Context, in *QueryGetPendingPerpetualOrderRequest, opts ...grpc.CallOption) (*QueryGetPendingPerpetualOrderResponse, error) { + out := new(QueryGetPendingPerpetualOrderResponse) + err := c.cc.Invoke(ctx, "/elys.tradeshield.Query/PendingPerpetualOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) PendingPerpetualOrderAll(ctx context.Context, in *QueryAllPendingPerpetualOrderRequest, opts ...grpc.CallOption) (*QueryAllPendingPerpetualOrderResponse, error) { + out := new(QueryAllPendingPerpetualOrderResponse) + err := c.cc.Invoke(ctx, "/elys.tradeshield.Query/PendingPerpetualOrderAll", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { // Parameters queries the parameters of the module. Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // Queries a list of PendingSpotOrder items. + PendingSpotOrder(context.Context, *QueryGetPendingSpotOrderRequest) (*QueryGetPendingSpotOrderResponse, error) + PendingSpotOrderAll(context.Context, *QueryAllPendingSpotOrderRequest) (*QueryAllPendingSpotOrderResponse, error) + // Queries a list of PendingPerpetualOrder items. + PendingPerpetualOrder(context.Context, *QueryGetPendingPerpetualOrderRequest) (*QueryGetPendingPerpetualOrderResponse, error) + PendingPerpetualOrderAll(context.Context, *QueryAllPendingPerpetualOrderRequest) (*QueryAllPendingPerpetualOrderResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -190,6 +634,18 @@ type UnimplementedQueryServer struct { func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") } +func (*UnimplementedQueryServer) PendingSpotOrder(ctx context.Context, req *QueryGetPendingSpotOrderRequest) (*QueryGetPendingSpotOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PendingSpotOrder not implemented") +} +func (*UnimplementedQueryServer) PendingSpotOrderAll(ctx context.Context, req *QueryAllPendingSpotOrderRequest) (*QueryAllPendingSpotOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PendingSpotOrderAll not implemented") +} +func (*UnimplementedQueryServer) PendingPerpetualOrder(ctx context.Context, req *QueryGetPendingPerpetualOrderRequest) (*QueryGetPendingPerpetualOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PendingPerpetualOrder not implemented") +} +func (*UnimplementedQueryServer) PendingPerpetualOrderAll(ctx context.Context, req *QueryAllPendingPerpetualOrderRequest) (*QueryAllPendingPerpetualOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PendingPerpetualOrderAll not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -213,20 +669,108 @@ func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interf return interceptor(ctx, in, info, handler) } -var _Query_serviceDesc = grpc.ServiceDesc{ - ServiceName: "elys.tradeshield.Query", - HandlerType: (*QueryServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Params", - Handler: _Query_Params_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "elys/tradeshield/query.proto", -} - -func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { +func _Query_PendingSpotOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGetPendingSpotOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).PendingSpotOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/elys.tradeshield.Query/PendingSpotOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).PendingSpotOrder(ctx, req.(*QueryGetPendingSpotOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_PendingSpotOrderAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAllPendingSpotOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).PendingSpotOrderAll(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/elys.tradeshield.Query/PendingSpotOrderAll", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).PendingSpotOrderAll(ctx, req.(*QueryAllPendingSpotOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_PendingPerpetualOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGetPendingPerpetualOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).PendingPerpetualOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/elys.tradeshield.Query/PendingPerpetualOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).PendingPerpetualOrder(ctx, req.(*QueryGetPendingPerpetualOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_PendingPerpetualOrderAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAllPendingPerpetualOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).PendingPerpetualOrderAll(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/elys.tradeshield.Query/PendingPerpetualOrderAll", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).PendingPerpetualOrderAll(ctx, req.(*QueryAllPendingPerpetualOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Query_serviceDesc = grpc.ServiceDesc{ + ServiceName: "elys.tradeshield.Query", + HandlerType: (*QueryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Params", + Handler: _Query_Params_Handler, + }, + { + MethodName: "PendingSpotOrder", + Handler: _Query_PendingSpotOrder_Handler, + }, + { + MethodName: "PendingSpotOrderAll", + Handler: _Query_PendingSpotOrderAll_Handler, + }, + { + MethodName: "PendingPerpetualOrder", + Handler: _Query_PendingPerpetualOrder_Handler, + }, + { + MethodName: "PendingPerpetualOrderAll", + Handler: _Query_PendingPerpetualOrderAll_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "elys/tradeshield/query.proto", +} + +func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -274,52 +818,1095 @@ func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { if err != nil { return 0, err } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryGetPendingSpotOrderRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryGetPendingSpotOrderRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryGetPendingSpotOrderRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *QueryGetPendingSpotOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryGetPendingSpotOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryGetPendingSpotOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.PendingSpotOrder.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryAllPendingSpotOrderRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAllPendingSpotOrderRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAllPendingSpotOrderRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryAllPendingSpotOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAllPendingSpotOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAllPendingSpotOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.PendingSpotOrder) > 0 { + for iNdEx := len(m.PendingSpotOrder) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PendingSpotOrder[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryGetPendingPerpetualOrderRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryGetPendingPerpetualOrderRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryGetPendingPerpetualOrderRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *QueryGetPendingPerpetualOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryGetPendingPerpetualOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryGetPendingPerpetualOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.PendingPerpetualOrder.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryAllPendingPerpetualOrderRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAllPendingPerpetualOrderRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAllPendingPerpetualOrderRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryAllPendingPerpetualOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAllPendingPerpetualOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAllPendingPerpetualOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.PendingPerpetualOrder) > 0 { + for iNdEx := len(m.PendingPerpetualOrder) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PendingPerpetualOrder[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { + offset -= sovQuery(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *QueryParamsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryParamsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Params.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryGetPendingSpotOrderRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovQuery(uint64(m.Id)) + } + return n +} + +func (m *QueryGetPendingSpotOrderResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.PendingSpotOrder.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryAllPendingSpotOrderRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryAllPendingSpotOrderResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.PendingSpotOrder) > 0 { + for _, e := range m.PendingSpotOrder { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGetPendingPerpetualOrderRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovQuery(uint64(m.Id)) + } + return n +} + +func (m *QueryGetPendingPerpetualOrderResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.PendingPerpetualOrder.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryAllPendingPerpetualOrderRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryAllPendingPerpetualOrderResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.PendingPerpetualOrder) > 0 { + for _, e := range m.PendingPerpetualOrder { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func sovQuery(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozQuery(x uint64) (n int) { + return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryGetPendingSpotOrderRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryGetPendingSpotOrderRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGetPendingSpotOrderRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryGetPendingSpotOrderResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryGetPendingSpotOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGetPendingSpotOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingSpotOrder", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.PendingSpotOrder.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryAllPendingSpotOrderRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryAllPendingSpotOrderRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAllPendingSpotOrderRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageRequest{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryAllPendingSpotOrderResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryAllPendingSpotOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAllPendingSpotOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingSpotOrder", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PendingSpotOrder = append(m.PendingSpotOrder, SpotOrder{}) + if err := m.PendingSpotOrder[len(m.PendingSpotOrder)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageResponse{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} -func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { - offset -= sovQuery(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ + if iNdEx > l { + return io.ErrUnexpectedEOF } - dAtA[offset] = uint8(v) - return base + return nil } -func (m *QueryParamsRequest) Size() (n int) { - if m == nil { - return 0 +func (m *QueryGetPendingPerpetualOrderRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryGetPendingPerpetualOrderRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGetPendingPerpetualOrderRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } - var l int - _ = l - return n -} -func (m *QueryParamsResponse) Size() (n int) { - if m == nil { - return 0 + if iNdEx > l { + return io.ErrUnexpectedEOF } - var l int - _ = l - l = m.Params.Size() - n += 1 + l + sovQuery(uint64(l)) - return n + return nil } +func (m *QueryGetPendingPerpetualOrderResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryGetPendingPerpetualOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGetPendingPerpetualOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingPerpetualOrder", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.PendingPerpetualOrder.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } -func sovQuery(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozQuery(x uint64) (n int) { - return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil } -func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryAllPendingPerpetualOrderRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -342,12 +1929,48 @@ func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryAllPendingPerpetualOrderRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryAllPendingPerpetualOrderRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageRequest{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -369,7 +1992,7 @@ func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryAllPendingPerpetualOrderResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -392,15 +2015,15 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryAllPendingPerpetualOrderResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryAllPendingPerpetualOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PendingPerpetualOrder", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -427,7 +2050,44 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.PendingPerpetualOrder = append(m.PendingPerpetualOrder, PerpetualOrder{}) + if err := m.PendingPerpetualOrder[len(m.PendingPerpetualOrder)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageResponse{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/tradeshield/types/query.pb.gw.go b/x/tradeshield/types/query.pb.gw.go index ce350b939..44709220d 100644 --- a/x/tradeshield/types/query.pb.gw.go +++ b/x/tradeshield/types/query.pb.gw.go @@ -51,6 +51,186 @@ func local_request_Query_Params_0(ctx context.Context, marshaler runtime.Marshal } +func request_Query_PendingSpotOrder_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetPendingSpotOrderRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.PendingSpotOrder(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_PendingSpotOrder_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetPendingSpotOrderRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := server.PendingSpotOrder(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_Query_PendingSpotOrderAll_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Query_PendingSpotOrderAll_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAllPendingSpotOrderRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_PendingSpotOrderAll_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PendingSpotOrderAll(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_PendingSpotOrderAll_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAllPendingSpotOrderRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_PendingSpotOrderAll_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.PendingSpotOrderAll(ctx, &protoReq) + return msg, metadata, err + +} + +func request_Query_PendingPerpetualOrder_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetPendingPerpetualOrderRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.PendingPerpetualOrder(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_PendingPerpetualOrder_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetPendingPerpetualOrderRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := server.PendingPerpetualOrder(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_Query_PendingPerpetualOrderAll_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Query_PendingPerpetualOrderAll_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAllPendingPerpetualOrderRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_PendingPerpetualOrderAll_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PendingPerpetualOrderAll(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_PendingPerpetualOrderAll_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAllPendingPerpetualOrderRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_PendingPerpetualOrderAll_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.PendingPerpetualOrderAll(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -80,6 +260,98 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_PendingSpotOrder_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_PendingSpotOrder_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_PendingSpotOrder_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_PendingSpotOrderAll_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_PendingSpotOrderAll_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_PendingSpotOrderAll_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_PendingPerpetualOrder_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_PendingPerpetualOrder_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_PendingPerpetualOrder_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_PendingPerpetualOrderAll_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_PendingPerpetualOrderAll_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_PendingPerpetualOrderAll_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -141,13 +413,109 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_PendingSpotOrder_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_PendingSpotOrder_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_PendingSpotOrder_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_PendingSpotOrderAll_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_PendingSpotOrderAll_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_PendingSpotOrderAll_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_PendingPerpetualOrder_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_PendingPerpetualOrder_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_PendingPerpetualOrder_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_PendingPerpetualOrderAll_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_PendingPerpetualOrderAll_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_PendingPerpetualOrderAll_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } var ( pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"elys-network", "elys", "tradeshield", "params"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_PendingSpotOrder_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"elys-network", "elys", "tradeshield", "pending_spot_order", "id"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_PendingSpotOrderAll_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"elys-network", "elys", "tradeshield", "pending_spot_order"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_PendingPerpetualOrder_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"elys-network", "elys", "tradeshield", "pending_perpetual_order", "id"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_PendingPerpetualOrderAll_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"elys-network", "elys", "tradeshield", "pending_perpetual_order"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( forward_Query_Params_0 = runtime.ForwardResponseMessage + + forward_Query_PendingSpotOrder_0 = runtime.ForwardResponseMessage + + forward_Query_PendingSpotOrderAll_0 = runtime.ForwardResponseMessage + + forward_Query_PendingPerpetualOrder_0 = runtime.ForwardResponseMessage + + forward_Query_PendingPerpetualOrderAll_0 = runtime.ForwardResponseMessage ) diff --git a/x/tradeshield/types/tx.pb.go b/x/tradeshield/types/tx.pb.go index 4e8dc5e7b..89c2fa074 100644 --- a/x/tradeshield/types/tx.pb.go +++ b/x/tradeshield/types/tx.pb.go @@ -6,10 +6,15 @@ package types import ( context "context" fmt "fmt" + types "github.com/cosmos/cosmos-sdk/types" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + io "io" math "math" + math_bits "math/bits" ) // Reference imports to suppress errors if they are not otherwise used. @@ -23,19 +28,671 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +type MsgCreatePendingSpotOrder struct { + OrderType SpotOrderType `protobuf:"varint,1,opt,name=order_type,json=orderType,proto3,enum=elys.tradeshield.SpotOrderType" json:"order_type,omitempty"` + OrderPrice *OrderPrice `protobuf:"bytes,3,opt,name=order_price,json=orderPrice,proto3" json:"order_price,omitempty"` + OrderAmount *types.Coin `protobuf:"bytes,4,opt,name=order_amount,json=orderAmount,proto3" json:"order_amount,omitempty"` + OwnerAddress string `protobuf:"bytes,5,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` + OrderTargetDenom string `protobuf:"bytes,6,opt,name=order_target_denom,json=orderTargetDenom,proto3" json:"order_target_denom,omitempty"` + Status Status `protobuf:"varint,7,opt,name=status,proto3,enum=elys.tradeshield.Status" json:"status,omitempty"` + Date *Date `protobuf:"bytes,8,opt,name=date,proto3" json:"date,omitempty"` +} + +func (m *MsgCreatePendingSpotOrder) Reset() { *m = MsgCreatePendingSpotOrder{} } +func (m *MsgCreatePendingSpotOrder) String() string { return proto.CompactTextString(m) } +func (*MsgCreatePendingSpotOrder) ProtoMessage() {} +func (*MsgCreatePendingSpotOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{0} +} +func (m *MsgCreatePendingSpotOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCreatePendingSpotOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCreatePendingSpotOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgCreatePendingSpotOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCreatePendingSpotOrder.Merge(m, src) +} +func (m *MsgCreatePendingSpotOrder) XXX_Size() int { + return m.Size() +} +func (m *MsgCreatePendingSpotOrder) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCreatePendingSpotOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCreatePendingSpotOrder proto.InternalMessageInfo + +func (m *MsgCreatePendingSpotOrder) GetOrderType() SpotOrderType { + if m != nil { + return m.OrderType + } + return SpotOrderType_STOPLOSS +} + +func (m *MsgCreatePendingSpotOrder) GetOrderPrice() *OrderPrice { + if m != nil { + return m.OrderPrice + } + return nil +} + +func (m *MsgCreatePendingSpotOrder) GetOrderAmount() *types.Coin { + if m != nil { + return m.OrderAmount + } + return nil +} + +func (m *MsgCreatePendingSpotOrder) GetOwnerAddress() string { + if m != nil { + return m.OwnerAddress + } + return "" +} + +func (m *MsgCreatePendingSpotOrder) GetOrderTargetDenom() string { + if m != nil { + return m.OrderTargetDenom + } + return "" +} + +func (m *MsgCreatePendingSpotOrder) GetStatus() Status { + if m != nil { + return m.Status + } + return Status_PENDING +} + +func (m *MsgCreatePendingSpotOrder) GetDate() *Date { + if m != nil { + return m.Date + } + return nil +} + +type MsgCreatePendingSpotOrderResponse struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *MsgCreatePendingSpotOrderResponse) Reset() { *m = MsgCreatePendingSpotOrderResponse{} } +func (m *MsgCreatePendingSpotOrderResponse) String() string { return proto.CompactTextString(m) } +func (*MsgCreatePendingSpotOrderResponse) ProtoMessage() {} +func (*MsgCreatePendingSpotOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{1} +} +func (m *MsgCreatePendingSpotOrderResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCreatePendingSpotOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCreatePendingSpotOrderResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgCreatePendingSpotOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCreatePendingSpotOrderResponse.Merge(m, src) +} +func (m *MsgCreatePendingSpotOrderResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgCreatePendingSpotOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCreatePendingSpotOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCreatePendingSpotOrderResponse proto.InternalMessageInfo + +func (m *MsgCreatePendingSpotOrderResponse) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type MsgUpdatePendingSpotOrder struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + Order string `protobuf:"bytes,3,opt,name=order,proto3" json:"order,omitempty"` +} + +func (m *MsgUpdatePendingSpotOrder) Reset() { *m = MsgUpdatePendingSpotOrder{} } +func (m *MsgUpdatePendingSpotOrder) String() string { return proto.CompactTextString(m) } +func (*MsgUpdatePendingSpotOrder) ProtoMessage() {} +func (*MsgUpdatePendingSpotOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{2} +} +func (m *MsgUpdatePendingSpotOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdatePendingSpotOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdatePendingSpotOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdatePendingSpotOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdatePendingSpotOrder.Merge(m, src) +} +func (m *MsgUpdatePendingSpotOrder) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdatePendingSpotOrder) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdatePendingSpotOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdatePendingSpotOrder proto.InternalMessageInfo + +func (m *MsgUpdatePendingSpotOrder) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgUpdatePendingSpotOrder) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *MsgUpdatePendingSpotOrder) GetOrder() string { + if m != nil { + return m.Order + } + return "" +} + +type MsgUpdatePendingSpotOrderResponse struct { +} + +func (m *MsgUpdatePendingSpotOrderResponse) Reset() { *m = MsgUpdatePendingSpotOrderResponse{} } +func (m *MsgUpdatePendingSpotOrderResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdatePendingSpotOrderResponse) ProtoMessage() {} +func (*MsgUpdatePendingSpotOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{3} +} +func (m *MsgUpdatePendingSpotOrderResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdatePendingSpotOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdatePendingSpotOrderResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdatePendingSpotOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdatePendingSpotOrderResponse.Merge(m, src) +} +func (m *MsgUpdatePendingSpotOrderResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdatePendingSpotOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdatePendingSpotOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdatePendingSpotOrderResponse proto.InternalMessageInfo + +type MsgDeletePendingSpotOrder struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *MsgDeletePendingSpotOrder) Reset() { *m = MsgDeletePendingSpotOrder{} } +func (m *MsgDeletePendingSpotOrder) String() string { return proto.CompactTextString(m) } +func (*MsgDeletePendingSpotOrder) ProtoMessage() {} +func (*MsgDeletePendingSpotOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{4} +} +func (m *MsgDeletePendingSpotOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgDeletePendingSpotOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgDeletePendingSpotOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgDeletePendingSpotOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDeletePendingSpotOrder.Merge(m, src) +} +func (m *MsgDeletePendingSpotOrder) XXX_Size() int { + return m.Size() +} +func (m *MsgDeletePendingSpotOrder) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDeletePendingSpotOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgDeletePendingSpotOrder proto.InternalMessageInfo + +func (m *MsgDeletePendingSpotOrder) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgDeletePendingSpotOrder) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type MsgDeletePendingSpotOrderResponse struct { +} + +func (m *MsgDeletePendingSpotOrderResponse) Reset() { *m = MsgDeletePendingSpotOrderResponse{} } +func (m *MsgDeletePendingSpotOrderResponse) String() string { return proto.CompactTextString(m) } +func (*MsgDeletePendingSpotOrderResponse) ProtoMessage() {} +func (*MsgDeletePendingSpotOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{5} +} +func (m *MsgDeletePendingSpotOrderResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgDeletePendingSpotOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgDeletePendingSpotOrderResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgDeletePendingSpotOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDeletePendingSpotOrderResponse.Merge(m, src) +} +func (m *MsgDeletePendingSpotOrderResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgDeletePendingSpotOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDeletePendingSpotOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgDeletePendingSpotOrderResponse proto.InternalMessageInfo + +type MsgCreatePendingPerpetualOrder struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Order string `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` +} + +func (m *MsgCreatePendingPerpetualOrder) Reset() { *m = MsgCreatePendingPerpetualOrder{} } +func (m *MsgCreatePendingPerpetualOrder) String() string { return proto.CompactTextString(m) } +func (*MsgCreatePendingPerpetualOrder) ProtoMessage() {} +func (*MsgCreatePendingPerpetualOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{6} +} +func (m *MsgCreatePendingPerpetualOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCreatePendingPerpetualOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCreatePendingPerpetualOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgCreatePendingPerpetualOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCreatePendingPerpetualOrder.Merge(m, src) +} +func (m *MsgCreatePendingPerpetualOrder) XXX_Size() int { + return m.Size() +} +func (m *MsgCreatePendingPerpetualOrder) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCreatePendingPerpetualOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCreatePendingPerpetualOrder proto.InternalMessageInfo + +func (m *MsgCreatePendingPerpetualOrder) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgCreatePendingPerpetualOrder) GetOrder() string { + if m != nil { + return m.Order + } + return "" +} + +type MsgCreatePendingPerpetualOrderResponse struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *MsgCreatePendingPerpetualOrderResponse) Reset() { + *m = MsgCreatePendingPerpetualOrderResponse{} +} +func (m *MsgCreatePendingPerpetualOrderResponse) String() string { return proto.CompactTextString(m) } +func (*MsgCreatePendingPerpetualOrderResponse) ProtoMessage() {} +func (*MsgCreatePendingPerpetualOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{7} +} +func (m *MsgCreatePendingPerpetualOrderResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCreatePendingPerpetualOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCreatePendingPerpetualOrderResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgCreatePendingPerpetualOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCreatePendingPerpetualOrderResponse.Merge(m, src) +} +func (m *MsgCreatePendingPerpetualOrderResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgCreatePendingPerpetualOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCreatePendingPerpetualOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCreatePendingPerpetualOrderResponse proto.InternalMessageInfo + +func (m *MsgCreatePendingPerpetualOrderResponse) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type MsgUpdatePendingPerpetualOrder struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + Order string `protobuf:"bytes,3,opt,name=order,proto3" json:"order,omitempty"` +} + +func (m *MsgUpdatePendingPerpetualOrder) Reset() { *m = MsgUpdatePendingPerpetualOrder{} } +func (m *MsgUpdatePendingPerpetualOrder) String() string { return proto.CompactTextString(m) } +func (*MsgUpdatePendingPerpetualOrder) ProtoMessage() {} +func (*MsgUpdatePendingPerpetualOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{8} +} +func (m *MsgUpdatePendingPerpetualOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdatePendingPerpetualOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdatePendingPerpetualOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdatePendingPerpetualOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdatePendingPerpetualOrder.Merge(m, src) +} +func (m *MsgUpdatePendingPerpetualOrder) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdatePendingPerpetualOrder) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdatePendingPerpetualOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdatePendingPerpetualOrder proto.InternalMessageInfo + +func (m *MsgUpdatePendingPerpetualOrder) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgUpdatePendingPerpetualOrder) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *MsgUpdatePendingPerpetualOrder) GetOrder() string { + if m != nil { + return m.Order + } + return "" +} + +type MsgUpdatePendingPerpetualOrderResponse struct { +} + +func (m *MsgUpdatePendingPerpetualOrderResponse) Reset() { + *m = MsgUpdatePendingPerpetualOrderResponse{} +} +func (m *MsgUpdatePendingPerpetualOrderResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdatePendingPerpetualOrderResponse) ProtoMessage() {} +func (*MsgUpdatePendingPerpetualOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{9} +} +func (m *MsgUpdatePendingPerpetualOrderResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdatePendingPerpetualOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdatePendingPerpetualOrderResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdatePendingPerpetualOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdatePendingPerpetualOrderResponse.Merge(m, src) +} +func (m *MsgUpdatePendingPerpetualOrderResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdatePendingPerpetualOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdatePendingPerpetualOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdatePendingPerpetualOrderResponse proto.InternalMessageInfo + +type MsgDeletePendingPerpetualOrder struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *MsgDeletePendingPerpetualOrder) Reset() { *m = MsgDeletePendingPerpetualOrder{} } +func (m *MsgDeletePendingPerpetualOrder) String() string { return proto.CompactTextString(m) } +func (*MsgDeletePendingPerpetualOrder) ProtoMessage() {} +func (*MsgDeletePendingPerpetualOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{10} +} +func (m *MsgDeletePendingPerpetualOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgDeletePendingPerpetualOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgDeletePendingPerpetualOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgDeletePendingPerpetualOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDeletePendingPerpetualOrder.Merge(m, src) +} +func (m *MsgDeletePendingPerpetualOrder) XXX_Size() int { + return m.Size() +} +func (m *MsgDeletePendingPerpetualOrder) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDeletePendingPerpetualOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgDeletePendingPerpetualOrder proto.InternalMessageInfo + +func (m *MsgDeletePendingPerpetualOrder) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgDeletePendingPerpetualOrder) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type MsgDeletePendingPerpetualOrderResponse struct { +} + +func (m *MsgDeletePendingPerpetualOrderResponse) Reset() { + *m = MsgDeletePendingPerpetualOrderResponse{} +} +func (m *MsgDeletePendingPerpetualOrderResponse) String() string { return proto.CompactTextString(m) } +func (*MsgDeletePendingPerpetualOrderResponse) ProtoMessage() {} +func (*MsgDeletePendingPerpetualOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0534a5eaf85a8c0b, []int{11} +} +func (m *MsgDeletePendingPerpetualOrderResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgDeletePendingPerpetualOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgDeletePendingPerpetualOrderResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgDeletePendingPerpetualOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDeletePendingPerpetualOrderResponse.Merge(m, src) +} +func (m *MsgDeletePendingPerpetualOrderResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgDeletePendingPerpetualOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDeletePendingPerpetualOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgDeletePendingPerpetualOrderResponse proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MsgCreatePendingSpotOrder)(nil), "elys.tradeshield.MsgCreatePendingSpotOrder") + proto.RegisterType((*MsgCreatePendingSpotOrderResponse)(nil), "elys.tradeshield.MsgCreatePendingSpotOrderResponse") + proto.RegisterType((*MsgUpdatePendingSpotOrder)(nil), "elys.tradeshield.MsgUpdatePendingSpotOrder") + proto.RegisterType((*MsgUpdatePendingSpotOrderResponse)(nil), "elys.tradeshield.MsgUpdatePendingSpotOrderResponse") + proto.RegisterType((*MsgDeletePendingSpotOrder)(nil), "elys.tradeshield.MsgDeletePendingSpotOrder") + proto.RegisterType((*MsgDeletePendingSpotOrderResponse)(nil), "elys.tradeshield.MsgDeletePendingSpotOrderResponse") + proto.RegisterType((*MsgCreatePendingPerpetualOrder)(nil), "elys.tradeshield.MsgCreatePendingPerpetualOrder") + proto.RegisterType((*MsgCreatePendingPerpetualOrderResponse)(nil), "elys.tradeshield.MsgCreatePendingPerpetualOrderResponse") + proto.RegisterType((*MsgUpdatePendingPerpetualOrder)(nil), "elys.tradeshield.MsgUpdatePendingPerpetualOrder") + proto.RegisterType((*MsgUpdatePendingPerpetualOrderResponse)(nil), "elys.tradeshield.MsgUpdatePendingPerpetualOrderResponse") + proto.RegisterType((*MsgDeletePendingPerpetualOrder)(nil), "elys.tradeshield.MsgDeletePendingPerpetualOrder") + proto.RegisterType((*MsgDeletePendingPerpetualOrderResponse)(nil), "elys.tradeshield.MsgDeletePendingPerpetualOrderResponse") +} + func init() { proto.RegisterFile("elys/tradeshield/tx.proto", fileDescriptor_0534a5eaf85a8c0b) } var fileDescriptor_0534a5eaf85a8c0b = []byte{ - // 131 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4c, 0xcd, 0xa9, 0x2c, - 0xd6, 0x2f, 0x29, 0x4a, 0x4c, 0x49, 0x2d, 0xce, 0xc8, 0x4c, 0xcd, 0x49, 0xd1, 0x2f, 0xa9, 0xd0, - 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x00, 0x49, 0xe9, 0x21, 0x49, 0x19, 0xb1, 0x72, 0x31, - 0xfb, 0x16, 0xa7, 0x3b, 0x79, 0x9d, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, - 0x72, 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x94, - 0x41, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x3e, 0x48, 0xb7, 0x6e, 0x5e, - 0x6a, 0x49, 0x79, 0x7e, 0x51, 0x36, 0x98, 0xa3, 0x5f, 0x81, 0x6a, 0x4f, 0x65, 0x41, 0x6a, 0x71, - 0x12, 0x1b, 0xd8, 0x2e, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xea, 0x04, 0x20, 0x91, 0x88, - 0x00, 0x00, 0x00, + // 626 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcd, 0x6e, 0xda, 0x4c, + 0x14, 0x8d, 0x09, 0x21, 0x1f, 0x93, 0x7c, 0x51, 0x34, 0xaa, 0x90, 0xa1, 0x91, 0x4b, 0x89, 0x54, + 0xa1, 0xfe, 0xd8, 0x04, 0x36, 0x59, 0xb4, 0x95, 0xd2, 0xd0, 0x4d, 0xa4, 0xa8, 0xc8, 0x6d, 0x37, + 0xed, 0x22, 0x35, 0xcc, 0x15, 0xb1, 0x0a, 0x1e, 0x6b, 0x66, 0x68, 0x42, 0xde, 0x20, 0xbb, 0xbe, + 0x40, 0xdf, 0xa7, 0xcb, 0x2c, 0xbb, 0xac, 0xe0, 0x45, 0x2a, 0x5f, 0x1b, 0x14, 0x82, 0x6d, 0x9c, + 0x76, 0x37, 0x3f, 0xe7, 0xde, 0x73, 0xee, 0xb9, 0x73, 0x6d, 0x52, 0x86, 0xc1, 0x58, 0x5a, 0x4a, + 0x38, 0x0c, 0xe4, 0xb9, 0x0b, 0x03, 0x66, 0xa9, 0x4b, 0xd3, 0x17, 0x5c, 0x71, 0xba, 0x1b, 0x5c, + 0x99, 0xb7, 0xae, 0x2a, 0x7b, 0xcb, 0xe0, 0xb1, 0x0f, 0x32, 0xc4, 0x57, 0x8c, 0x1e, 0x97, 0x43, + 0x2e, 0xad, 0xae, 0x23, 0xc1, 0xfa, 0x76, 0xd0, 0x05, 0xe5, 0x1c, 0x58, 0x3d, 0xee, 0x7a, 0xe1, + 0x7d, 0xed, 0x7a, 0x9d, 0x94, 0x4f, 0x65, 0xff, 0x58, 0x80, 0xa3, 0xa0, 0x03, 0x1e, 0x73, 0xbd, + 0xfe, 0x7b, 0x9f, 0xab, 0x77, 0x82, 0x81, 0xa0, 0xaf, 0x09, 0xe1, 0xc1, 0xe2, 0x2c, 0x48, 0xa9, + 0x6b, 0x55, 0xad, 0xbe, 0xd3, 0x7c, 0x64, 0xde, 0x95, 0x60, 0xce, 0x03, 0x3e, 0x8c, 0x7d, 0xb0, + 0x8b, 0x7c, 0xb6, 0xa4, 0xaf, 0xc8, 0x56, 0x18, 0xef, 0x0b, 0xb7, 0x07, 0xfa, 0x7a, 0x55, 0xab, + 0x6f, 0x35, 0xf7, 0x96, 0x13, 0x60, 0x70, 0x27, 0xc0, 0xd8, 0x21, 0x21, 0xae, 0xe9, 0x4b, 0xb2, + 0x1d, 0x86, 0x3b, 0x43, 0x3e, 0xf2, 0x94, 0x9e, 0xc7, 0xf8, 0xb2, 0x19, 0xd6, 0x64, 0x06, 0x35, + 0x99, 0x51, 0x4d, 0xe6, 0x31, 0x77, 0x3d, 0x3b, 0x64, 0x3b, 0x42, 0x34, 0xdd, 0x27, 0xff, 0xf3, + 0x0b, 0x2f, 0x88, 0x66, 0x4c, 0x80, 0x94, 0xfa, 0x46, 0x55, 0xab, 0x17, 0xed, 0x6d, 0x3c, 0x3c, + 0x0a, 0xcf, 0xe8, 0x73, 0x42, 0xa3, 0x0a, 0x1d, 0xd1, 0x07, 0x75, 0xc6, 0xc0, 0xe3, 0x43, 0xbd, + 0x80, 0xc8, 0xdd, 0xb0, 0x10, 0xbc, 0x68, 0x07, 0xe7, 0xb4, 0x41, 0x0a, 0x52, 0x39, 0x6a, 0x24, + 0xf5, 0x4d, 0xf4, 0x42, 0x8f, 0xf1, 0x02, 0xef, 0xed, 0x08, 0x47, 0x9f, 0x92, 0x3c, 0x73, 0x14, + 0xe8, 0xff, 0xa1, 0xf4, 0xd2, 0x32, 0xbe, 0xed, 0x28, 0xb0, 0x11, 0x53, 0x6b, 0x91, 0xc7, 0x89, + 0xad, 0xb0, 0x41, 0xfa, 0xdc, 0x93, 0x40, 0x77, 0x48, 0xce, 0x65, 0xd8, 0x8a, 0xbc, 0x9d, 0x73, + 0x59, 0xed, 0x33, 0xf6, 0xef, 0xa3, 0xcf, 0xe2, 0xfa, 0xa7, 0x93, 0xcd, 0x5e, 0x90, 0x8e, 0x0b, + 0x8c, 0x28, 0xda, 0xb3, 0x6d, 0x94, 0x26, 0x37, 0x4b, 0x43, 0x1f, 0x90, 0x0d, 0xac, 0x16, 0x7b, + 0x54, 0xb4, 0xc3, 0x4d, 0x6d, 0x1f, 0x15, 0xc5, 0x27, 0x9f, 0x29, 0xaa, 0xbd, 0x45, 0x05, 0x6d, + 0x18, 0xc0, 0xbf, 0x28, 0x88, 0xb8, 0xe2, 0xd3, 0xcc, 0xb9, 0x3a, 0xc4, 0xb8, 0x6b, 0x51, 0x07, + 0x84, 0x0f, 0x6a, 0xe4, 0x0c, 0x56, 0x11, 0xce, 0x4b, 0xcc, 0xdd, 0x2e, 0xf1, 0x90, 0x3c, 0x49, + 0xcf, 0x98, 0xe8, 0xfc, 0x17, 0xd4, 0xb2, 0x60, 0x4e, 0x66, 0x2d, 0xd9, 0xec, 0xaf, 0xa3, 0xb6, + 0x14, 0x86, 0xb9, 0x2f, 0x27, 0xa8, 0x65, 0xc1, 0xbc, 0xbf, 0xd5, 0x12, 0xb1, 0xa6, 0xe4, 0x9a, + 0xb1, 0x36, 0x7f, 0x14, 0xc8, 0xfa, 0xa9, 0xec, 0xd3, 0x2b, 0x52, 0x4a, 0xf8, 0x80, 0x3c, 0x5b, + 0x7e, 0xf0, 0x89, 0x4f, 0xbc, 0xd2, 0xba, 0x07, 0x78, 0xde, 0x95, 0x2b, 0x52, 0x4a, 0x78, 0xfc, + 0xf1, 0xdc, 0xf1, 0xe0, 0x04, 0xee, 0xf4, 0x97, 0x1f, 0x70, 0x27, 0x3c, 0xfb, 0x78, 0xee, 0x78, + 0x70, 0x02, 0x77, 0xfa, 0x24, 0xd0, 0x6b, 0x8d, 0x3c, 0x4c, 0x9b, 0x83, 0xc6, 0x6a, 0x33, 0x17, + 0x23, 0x2a, 0x87, 0xf7, 0x8d, 0x58, 0xd0, 0x92, 0x36, 0x07, 0x8d, 0xd5, 0xe6, 0x66, 0xd2, 0x92, + 0x61, 0x12, 0x50, 0x4b, 0xda, 0x1c, 0x34, 0x56, 0x9b, 0x9d, 0x49, 0x4b, 0x86, 0xf9, 0x78, 0x73, + 0xf2, 0x73, 0x62, 0x68, 0x37, 0x13, 0x43, 0xfb, 0x3d, 0x31, 0xb4, 0xef, 0x53, 0x63, 0xed, 0x66, + 0x6a, 0xac, 0xfd, 0x9a, 0x1a, 0x6b, 0x9f, 0x1a, 0x7d, 0x57, 0x9d, 0x8f, 0xba, 0x66, 0x8f, 0x0f, + 0xad, 0x20, 0xfb, 0x0b, 0x0f, 0xd4, 0x05, 0x17, 0x5f, 0x71, 0x63, 0x5d, 0x2e, 0xff, 0xce, 0xbb, + 0x05, 0xfc, 0x5f, 0xb7, 0xfe, 0x04, 0x00, 0x00, 0xff, 0xff, 0x9b, 0xda, 0x05, 0x62, 0x1c, 0x08, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -50,6 +707,12 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type MsgClient interface { + CreatePendingSpotOrder(ctx context.Context, in *MsgCreatePendingSpotOrder, opts ...grpc.CallOption) (*MsgCreatePendingSpotOrderResponse, error) + UpdatePendingSpotOrder(ctx context.Context, in *MsgUpdatePendingSpotOrder, opts ...grpc.CallOption) (*MsgUpdatePendingSpotOrderResponse, error) + DeletePendingSpotOrder(ctx context.Context, in *MsgDeletePendingSpotOrder, opts ...grpc.CallOption) (*MsgDeletePendingSpotOrderResponse, error) + CreatePendingPerpetualOrder(ctx context.Context, in *MsgCreatePendingPerpetualOrder, opts ...grpc.CallOption) (*MsgCreatePendingPerpetualOrderResponse, error) + UpdatePendingPerpetualOrder(ctx context.Context, in *MsgUpdatePendingPerpetualOrder, opts ...grpc.CallOption) (*MsgUpdatePendingPerpetualOrderResponse, error) + DeletePendingPerpetualOrder(ctx context.Context, in *MsgDeletePendingPerpetualOrder, opts ...grpc.CallOption) (*MsgDeletePendingPerpetualOrderResponse, error) } type msgClient struct { @@ -60,22 +723,2122 @@ func NewMsgClient(cc grpc1.ClientConn) MsgClient { return &msgClient{cc} } +func (c *msgClient) CreatePendingSpotOrder(ctx context.Context, in *MsgCreatePendingSpotOrder, opts ...grpc.CallOption) (*MsgCreatePendingSpotOrderResponse, error) { + out := new(MsgCreatePendingSpotOrderResponse) + err := c.cc.Invoke(ctx, "/elys.tradeshield.Msg/CreatePendingSpotOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) UpdatePendingSpotOrder(ctx context.Context, in *MsgUpdatePendingSpotOrder, opts ...grpc.CallOption) (*MsgUpdatePendingSpotOrderResponse, error) { + out := new(MsgUpdatePendingSpotOrderResponse) + err := c.cc.Invoke(ctx, "/elys.tradeshield.Msg/UpdatePendingSpotOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) DeletePendingSpotOrder(ctx context.Context, in *MsgDeletePendingSpotOrder, opts ...grpc.CallOption) (*MsgDeletePendingSpotOrderResponse, error) { + out := new(MsgDeletePendingSpotOrderResponse) + err := c.cc.Invoke(ctx, "/elys.tradeshield.Msg/DeletePendingSpotOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) CreatePendingPerpetualOrder(ctx context.Context, in *MsgCreatePendingPerpetualOrder, opts ...grpc.CallOption) (*MsgCreatePendingPerpetualOrderResponse, error) { + out := new(MsgCreatePendingPerpetualOrderResponse) + err := c.cc.Invoke(ctx, "/elys.tradeshield.Msg/CreatePendingPerpetualOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) UpdatePendingPerpetualOrder(ctx context.Context, in *MsgUpdatePendingPerpetualOrder, opts ...grpc.CallOption) (*MsgUpdatePendingPerpetualOrderResponse, error) { + out := new(MsgUpdatePendingPerpetualOrderResponse) + err := c.cc.Invoke(ctx, "/elys.tradeshield.Msg/UpdatePendingPerpetualOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) DeletePendingPerpetualOrder(ctx context.Context, in *MsgDeletePendingPerpetualOrder, opts ...grpc.CallOption) (*MsgDeletePendingPerpetualOrderResponse, error) { + out := new(MsgDeletePendingPerpetualOrderResponse) + err := c.cc.Invoke(ctx, "/elys.tradeshield.Msg/DeletePendingPerpetualOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { + CreatePendingSpotOrder(context.Context, *MsgCreatePendingSpotOrder) (*MsgCreatePendingSpotOrderResponse, error) + UpdatePendingSpotOrder(context.Context, *MsgUpdatePendingSpotOrder) (*MsgUpdatePendingSpotOrderResponse, error) + DeletePendingSpotOrder(context.Context, *MsgDeletePendingSpotOrder) (*MsgDeletePendingSpotOrderResponse, error) + CreatePendingPerpetualOrder(context.Context, *MsgCreatePendingPerpetualOrder) (*MsgCreatePendingPerpetualOrderResponse, error) + UpdatePendingPerpetualOrder(context.Context, *MsgUpdatePendingPerpetualOrder) (*MsgUpdatePendingPerpetualOrderResponse, error) + DeletePendingPerpetualOrder(context.Context, *MsgDeletePendingPerpetualOrder) (*MsgDeletePendingPerpetualOrderResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. type UnimplementedMsgServer struct { } +func (*UnimplementedMsgServer) CreatePendingSpotOrder(ctx context.Context, req *MsgCreatePendingSpotOrder) (*MsgCreatePendingSpotOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePendingSpotOrder not implemented") +} +func (*UnimplementedMsgServer) UpdatePendingSpotOrder(ctx context.Context, req *MsgUpdatePendingSpotOrder) (*MsgUpdatePendingSpotOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePendingSpotOrder not implemented") +} +func (*UnimplementedMsgServer) DeletePendingSpotOrder(ctx context.Context, req *MsgDeletePendingSpotOrder) (*MsgDeletePendingSpotOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePendingSpotOrder not implemented") +} +func (*UnimplementedMsgServer) CreatePendingPerpetualOrder(ctx context.Context, req *MsgCreatePendingPerpetualOrder) (*MsgCreatePendingPerpetualOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePendingPerpetualOrder not implemented") +} +func (*UnimplementedMsgServer) UpdatePendingPerpetualOrder(ctx context.Context, req *MsgUpdatePendingPerpetualOrder) (*MsgUpdatePendingPerpetualOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePendingPerpetualOrder not implemented") +} +func (*UnimplementedMsgServer) DeletePendingPerpetualOrder(ctx context.Context, req *MsgDeletePendingPerpetualOrder) (*MsgDeletePendingPerpetualOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePendingPerpetualOrder not implemented") +} + func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) } +func _Msg_CreatePendingSpotOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgCreatePendingSpotOrder) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).CreatePendingSpotOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/elys.tradeshield.Msg/CreatePendingSpotOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).CreatePendingSpotOrder(ctx, req.(*MsgCreatePendingSpotOrder)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_UpdatePendingSpotOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdatePendingSpotOrder) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdatePendingSpotOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/elys.tradeshield.Msg/UpdatePendingSpotOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdatePendingSpotOrder(ctx, req.(*MsgUpdatePendingSpotOrder)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_DeletePendingSpotOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgDeletePendingSpotOrder) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).DeletePendingSpotOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/elys.tradeshield.Msg/DeletePendingSpotOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).DeletePendingSpotOrder(ctx, req.(*MsgDeletePendingSpotOrder)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_CreatePendingPerpetualOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgCreatePendingPerpetualOrder) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).CreatePendingPerpetualOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/elys.tradeshield.Msg/CreatePendingPerpetualOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).CreatePendingPerpetualOrder(ctx, req.(*MsgCreatePendingPerpetualOrder)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_UpdatePendingPerpetualOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdatePendingPerpetualOrder) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdatePendingPerpetualOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/elys.tradeshield.Msg/UpdatePendingPerpetualOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdatePendingPerpetualOrder(ctx, req.(*MsgUpdatePendingPerpetualOrder)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_DeletePendingPerpetualOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgDeletePendingPerpetualOrder) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).DeletePendingPerpetualOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/elys.tradeshield.Msg/DeletePendingPerpetualOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).DeletePendingPerpetualOrder(ctx, req.(*MsgDeletePendingPerpetualOrder)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "elys.tradeshield.Msg", HandlerType: (*MsgServer)(nil), - Methods: []grpc.MethodDesc{}, - Streams: []grpc.StreamDesc{}, - Metadata: "elys/tradeshield/tx.proto", + Methods: []grpc.MethodDesc{ + { + MethodName: "CreatePendingSpotOrder", + Handler: _Msg_CreatePendingSpotOrder_Handler, + }, + { + MethodName: "UpdatePendingSpotOrder", + Handler: _Msg_UpdatePendingSpotOrder_Handler, + }, + { + MethodName: "DeletePendingSpotOrder", + Handler: _Msg_DeletePendingSpotOrder_Handler, + }, + { + MethodName: "CreatePendingPerpetualOrder", + Handler: _Msg_CreatePendingPerpetualOrder_Handler, + }, + { + MethodName: "UpdatePendingPerpetualOrder", + Handler: _Msg_UpdatePendingPerpetualOrder_Handler, + }, + { + MethodName: "DeletePendingPerpetualOrder", + Handler: _Msg_DeletePendingPerpetualOrder_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "elys/tradeshield/tx.proto", +} + +func (m *MsgCreatePendingSpotOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreatePendingSpotOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreatePendingSpotOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Date != nil { + { + size, err := m.Date.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.Status != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x38 + } + if len(m.OrderTargetDenom) > 0 { + i -= len(m.OrderTargetDenom) + copy(dAtA[i:], m.OrderTargetDenom) + i = encodeVarintTx(dAtA, i, uint64(len(m.OrderTargetDenom))) + i-- + dAtA[i] = 0x32 + } + if len(m.OwnerAddress) > 0 { + i -= len(m.OwnerAddress) + copy(dAtA[i:], m.OwnerAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.OwnerAddress))) + i-- + dAtA[i] = 0x2a + } + if m.OrderAmount != nil { + { + size, err := m.OrderAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.OrderPrice != nil { + { + size, err := m.OrderPrice.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.OrderType != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.OrderType)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MsgCreatePendingSpotOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreatePendingSpotOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreatePendingSpotOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdatePendingSpotOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdatePendingSpotOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdatePendingSpotOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Order) > 0 { + i -= len(m.Order) + copy(dAtA[i:], m.Order) + i = encodeVarintTx(dAtA, i, uint64(len(m.Order))) + i-- + dAtA[i] = 0x1a + } + if m.Id != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x10 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdatePendingSpotOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdatePendingSpotOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdatePendingSpotOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgDeletePendingSpotOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgDeletePendingSpotOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgDeletePendingSpotOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x10 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgDeletePendingSpotOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgDeletePendingSpotOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgDeletePendingSpotOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgCreatePendingPerpetualOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreatePendingPerpetualOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreatePendingPerpetualOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Order) > 0 { + i -= len(m.Order) + copy(dAtA[i:], m.Order) + i = encodeVarintTx(dAtA, i, uint64(len(m.Order))) + i-- + dAtA[i] = 0x12 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgCreatePendingPerpetualOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreatePendingPerpetualOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) } + +func (m *MsgCreatePendingPerpetualOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdatePendingPerpetualOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdatePendingPerpetualOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdatePendingPerpetualOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Order) > 0 { + i -= len(m.Order) + copy(dAtA[i:], m.Order) + i = encodeVarintTx(dAtA, i, uint64(len(m.Order))) + i-- + dAtA[i] = 0x1a + } + if m.Id != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x10 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdatePendingPerpetualOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdatePendingPerpetualOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdatePendingPerpetualOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgDeletePendingPerpetualOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgDeletePendingPerpetualOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgDeletePendingPerpetualOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x10 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgDeletePendingPerpetualOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgDeletePendingPerpetualOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgDeletePendingPerpetualOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func encodeVarintTx(dAtA []byte, offset int, v uint64) int { + offset -= sovTx(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *MsgCreatePendingSpotOrder) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.OrderType != 0 { + n += 1 + sovTx(uint64(m.OrderType)) + } + if m.OrderPrice != nil { + l = m.OrderPrice.Size() + n += 1 + l + sovTx(uint64(l)) + } + if m.OrderAmount != nil { + l = m.OrderAmount.Size() + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.OwnerAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.OrderTargetDenom) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.Status != 0 { + n += 1 + sovTx(uint64(m.Status)) + } + if m.Date != nil { + l = m.Date.Size() + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgCreatePendingSpotOrderResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovTx(uint64(m.Id)) + } + return n +} + +func (m *MsgUpdatePendingSpotOrder) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.Id != 0 { + n += 1 + sovTx(uint64(m.Id)) + } + l = len(m.Order) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgUpdatePendingSpotOrderResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgDeletePendingSpotOrder) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.Id != 0 { + n += 1 + sovTx(uint64(m.Id)) + } + return n +} + +func (m *MsgDeletePendingSpotOrderResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgCreatePendingPerpetualOrder) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Order) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgCreatePendingPerpetualOrderResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovTx(uint64(m.Id)) + } + return n +} + +func (m *MsgUpdatePendingPerpetualOrder) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.Id != 0 { + n += 1 + sovTx(uint64(m.Id)) + } + l = len(m.Order) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgUpdatePendingPerpetualOrderResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgDeletePendingPerpetualOrder) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.Id != 0 { + n += 1 + sovTx(uint64(m.Id)) + } + return n +} + +func (m *MsgDeletePendingPerpetualOrderResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func sovTx(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozTx(x uint64) (n int) { + return sovTx(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *MsgCreatePendingSpotOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgCreatePendingSpotOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreatePendingSpotOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderType", wireType) + } + m.OrderType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OrderType |= SpotOrderType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderPrice", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OrderPrice == nil { + m.OrderPrice = &OrderPrice{} + } + if err := m.OrderPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OrderAmount == nil { + m.OrderAmount = &types.Coin{} + } + if err := m.OrderAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OwnerAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OwnerAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderTargetDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderTargetDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= Status(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Date", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Date == nil { + m.Date = &Date{} + } + if err := m.Date.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgCreatePendingSpotOrderResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgCreatePendingSpotOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreatePendingSpotOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgUpdatePendingSpotOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgUpdatePendingSpotOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdatePendingSpotOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Order = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgUpdatePendingSpotOrderResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgUpdatePendingSpotOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdatePendingSpotOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgDeletePendingSpotOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgDeletePendingSpotOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgDeletePendingSpotOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgDeletePendingSpotOrderResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgDeletePendingSpotOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgDeletePendingSpotOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgCreatePendingPerpetualOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgCreatePendingPerpetualOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreatePendingPerpetualOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Order = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgCreatePendingPerpetualOrderResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgCreatePendingPerpetualOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreatePendingPerpetualOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgUpdatePendingPerpetualOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgUpdatePendingPerpetualOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdatePendingPerpetualOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Order = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgUpdatePendingPerpetualOrderResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgUpdatePendingPerpetualOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdatePendingPerpetualOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgDeletePendingPerpetualOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgDeletePendingPerpetualOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgDeletePendingPerpetualOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgDeletePendingPerpetualOrderResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgDeletePendingPerpetualOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgDeletePendingPerpetualOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTx(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTx + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTx + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTx + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthTx + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupTx + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthTx + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthTx = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTx = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupTx = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/tradeshield/types/types.pb.go b/x/tradeshield/types/types.pb.go new file mode 100644 index 000000000..0edbe97d3 --- /dev/null +++ b/x/tradeshield/types/types.pb.go @@ -0,0 +1,1876 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: elys/tradeshield/types.proto + +package types + +import ( + fmt "fmt" + github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" + types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// Spot order +type SpotOrderType int32 + +const ( + SpotOrderType_STOPLOSS SpotOrderType = 0 + SpotOrderType_LIMITSELL SpotOrderType = 1 + SpotOrderType_LIMITBUY SpotOrderType = 2 + SpotOrderType_MARKETBUY SpotOrderType = 3 +) + +var SpotOrderType_name = map[int32]string{ + 0: "STOPLOSS", + 1: "LIMITSELL", + 2: "LIMITBUY", + 3: "MARKETBUY", +} + +var SpotOrderType_value = map[string]int32{ + "STOPLOSS": 0, + "LIMITSELL": 1, + "LIMITBUY": 2, + "MARKETBUY": 3, +} + +func (x SpotOrderType) String() string { + return proto.EnumName(SpotOrderType_name, int32(x)) +} + +func (SpotOrderType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_f02c7f96dfee8f75, []int{0} +} + +type Status int32 + +const ( + Status_PENDING Status = 0 + Status_EXECUTED Status = 1 + Status_CANCLED Status = 2 +) + +var Status_name = map[int32]string{ + 0: "PENDING", + 1: "EXECUTED", + 2: "CANCLED", +} + +var Status_value = map[string]int32{ + "PENDING": 0, + "EXECUTED": 1, + "CANCLED": 2, +} + +func (x Status) String() string { + return proto.EnumName(Status_name, int32(x)) +} + +func (Status) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_f02c7f96dfee8f75, []int{1} +} + +// Perpetual Order +type PerpetualOrderType int32 + +const ( + PerpetualOrderType_LIMITOPEN PerpetualOrderType = 0 + PerpetualOrderType_LIMITCLOSE PerpetualOrderType = 1 + PerpetualOrderType_MARKETOPEN PerpetualOrderType = 2 + PerpetualOrderType_MARKETCLOSE PerpetualOrderType = 3 + PerpetualOrderType_STOPLOSSPERP PerpetualOrderType = 4 +) + +var PerpetualOrderType_name = map[int32]string{ + 0: "LIMITOPEN", + 1: "LIMITCLOSE", + 2: "MARKETOPEN", + 3: "MARKETCLOSE", + 4: "STOPLOSSPERP", +} + +var PerpetualOrderType_value = map[string]int32{ + "LIMITOPEN": 0, + "LIMITCLOSE": 1, + "MARKETOPEN": 2, + "MARKETCLOSE": 3, + "STOPLOSSPERP": 4, +} + +func (x PerpetualOrderType) String() string { + return proto.EnumName(PerpetualOrderType_name, int32(x)) +} + +func (PerpetualOrderType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_f02c7f96dfee8f75, []int{2} +} + +type PerpetualPosition int32 + +const ( + PerpetualPosition_UNSPECIFIED PerpetualPosition = 0 + PerpetualPosition_LONG PerpetualPosition = 1 + PerpetualPosition_SHORT PerpetualPosition = 2 +) + +var PerpetualPosition_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "LONG", + 2: "SHORT", +} + +var PerpetualPosition_value = map[string]int32{ + "UNSPECIFIED": 0, + "LONG": 1, + "SHORT": 2, +} + +func (x PerpetualPosition) String() string { + return proto.EnumName(PerpetualPosition_name, int32(x)) +} + +func (PerpetualPosition) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_f02c7f96dfee8f75, []int{3} +} + +type OrderPrice struct { + BaseDenom string `protobuf:"bytes,1,opt,name=base_denom,json=baseDenom,proto3" json:"base_denom,omitempty"` + QuoteDenom string `protobuf:"bytes,2,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` + Rate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=rate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"rate"` +} + +func (m *OrderPrice) Reset() { *m = OrderPrice{} } +func (m *OrderPrice) String() string { return proto.CompactTextString(m) } +func (*OrderPrice) ProtoMessage() {} +func (*OrderPrice) Descriptor() ([]byte, []int) { + return fileDescriptor_f02c7f96dfee8f75, []int{0} +} +func (m *OrderPrice) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OrderPrice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OrderPrice.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OrderPrice) XXX_Merge(src proto.Message) { + xxx_messageInfo_OrderPrice.Merge(m, src) +} +func (m *OrderPrice) XXX_Size() int { + return m.Size() +} +func (m *OrderPrice) XXX_DiscardUnknown() { + xxx_messageInfo_OrderPrice.DiscardUnknown(m) +} + +var xxx_messageInfo_OrderPrice proto.InternalMessageInfo + +func (m *OrderPrice) GetBaseDenom() string { + if m != nil { + return m.BaseDenom + } + return "" +} + +func (m *OrderPrice) GetQuoteDenom() string { + if m != nil { + return m.QuoteDenom + } + return "" +} + +type Date struct { + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (m *Date) Reset() { *m = Date{} } +func (m *Date) String() string { return proto.CompactTextString(m) } +func (*Date) ProtoMessage() {} +func (*Date) Descriptor() ([]byte, []int) { + return fileDescriptor_f02c7f96dfee8f75, []int{1} +} +func (m *Date) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Date) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Date.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Date) XXX_Merge(src proto.Message) { + xxx_messageInfo_Date.Merge(m, src) +} +func (m *Date) XXX_Size() int { + return m.Size() +} +func (m *Date) XXX_DiscardUnknown() { + xxx_messageInfo_Date.DiscardUnknown(m) +} + +var xxx_messageInfo_Date proto.InternalMessageInfo + +func (m *Date) GetHeight() uint64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *Date) GetTimestamp() uint64 { + if m != nil { + return m.Timestamp + } + return 0 +} + +type SpotOrder struct { + OrderType SpotOrderType `protobuf:"varint,1,opt,name=order_type,json=orderType,proto3,enum=elys.tradeshield.SpotOrderType" json:"order_type,omitempty"` + OrderId uint64 `protobuf:"varint,2,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + OrderPrice *OrderPrice `protobuf:"bytes,3,opt,name=order_price,json=orderPrice,proto3" json:"order_price,omitempty"` + OrderAmount types.Coin `protobuf:"bytes,4,opt,name=order_amount,json=orderAmount,proto3" json:"order_amount"` + OwnerAddress string `protobuf:"bytes,5,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` + OrderTargetDenom string `protobuf:"bytes,6,opt,name=order_target_denom,json=orderTargetDenom,proto3" json:"order_target_denom,omitempty"` + Status Status `protobuf:"varint,7,opt,name=status,proto3,enum=elys.tradeshield.Status" json:"status,omitempty"` + Date *Date `protobuf:"bytes,8,opt,name=date,proto3" json:"date,omitempty"` +} + +func (m *SpotOrder) Reset() { *m = SpotOrder{} } +func (m *SpotOrder) String() string { return proto.CompactTextString(m) } +func (*SpotOrder) ProtoMessage() {} +func (*SpotOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_f02c7f96dfee8f75, []int{2} +} +func (m *SpotOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SpotOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SpotOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SpotOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpotOrder.Merge(m, src) +} +func (m *SpotOrder) XXX_Size() int { + return m.Size() +} +func (m *SpotOrder) XXX_DiscardUnknown() { + xxx_messageInfo_SpotOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_SpotOrder proto.InternalMessageInfo + +func (m *SpotOrder) GetOrderType() SpotOrderType { + if m != nil { + return m.OrderType + } + return SpotOrderType_STOPLOSS +} + +func (m *SpotOrder) GetOrderId() uint64 { + if m != nil { + return m.OrderId + } + return 0 +} + +func (m *SpotOrder) GetOrderPrice() *OrderPrice { + if m != nil { + return m.OrderPrice + } + return nil +} + +func (m *SpotOrder) GetOrderAmount() types.Coin { + if m != nil { + return m.OrderAmount + } + return types.Coin{} +} + +func (m *SpotOrder) GetOwnerAddress() string { + if m != nil { + return m.OwnerAddress + } + return "" +} + +func (m *SpotOrder) GetOrderTargetDenom() string { + if m != nil { + return m.OrderTargetDenom + } + return "" +} + +func (m *SpotOrder) GetStatus() Status { + if m != nil { + return m.Status + } + return Status_PENDING +} + +func (m *SpotOrder) GetDate() *Date { + if m != nil { + return m.Date + } + return nil +} + +type PerpetualOrder struct { + OrderId uint64 `protobuf:"varint,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + OwnerAddress string `protobuf:"bytes,2,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` + PerpetualOrderType PerpetualOrderType `protobuf:"varint,3,opt,name=perpetual_order_type,json=perpetualOrderType,proto3,enum=elys.tradeshield.PerpetualOrderType" json:"perpetual_order_type,omitempty"` + Position PerpetualPosition `protobuf:"varint,4,opt,name=position,proto3,enum=elys.tradeshield.PerpetualPosition" json:"position,omitempty"` + TriggerPrice *OrderPrice `protobuf:"bytes,5,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` + Collateral types.Coin `protobuf:"bytes,6,opt,name=collateral,proto3" json:"collateral"` + TradingAsset string `protobuf:"bytes,7,opt,name=trading_asset,json=tradingAsset,proto3" json:"trading_asset,omitempty"` + Leverage github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,8,opt,name=leverage,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"leverage"` + TakeProfitPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,9,opt,name=take_profit_price,json=takeProfitPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"take_profit_price"` + PositionId uint64 `protobuf:"varint,10,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + Status Status `protobuf:"varint,11,opt,name=status,proto3,enum=elys.tradeshield.Status" json:"status,omitempty"` +} + +func (m *PerpetualOrder) Reset() { *m = PerpetualOrder{} } +func (m *PerpetualOrder) String() string { return proto.CompactTextString(m) } +func (*PerpetualOrder) ProtoMessage() {} +func (*PerpetualOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_f02c7f96dfee8f75, []int{3} +} +func (m *PerpetualOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PerpetualOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PerpetualOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PerpetualOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_PerpetualOrder.Merge(m, src) +} +func (m *PerpetualOrder) XXX_Size() int { + return m.Size() +} +func (m *PerpetualOrder) XXX_DiscardUnknown() { + xxx_messageInfo_PerpetualOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_PerpetualOrder proto.InternalMessageInfo + +func (m *PerpetualOrder) GetOrderId() uint64 { + if m != nil { + return m.OrderId + } + return 0 +} + +func (m *PerpetualOrder) GetOwnerAddress() string { + if m != nil { + return m.OwnerAddress + } + return "" +} + +func (m *PerpetualOrder) GetPerpetualOrderType() PerpetualOrderType { + if m != nil { + return m.PerpetualOrderType + } + return PerpetualOrderType_LIMITOPEN +} + +func (m *PerpetualOrder) GetPosition() PerpetualPosition { + if m != nil { + return m.Position + } + return PerpetualPosition_UNSPECIFIED +} + +func (m *PerpetualOrder) GetTriggerPrice() *OrderPrice { + if m != nil { + return m.TriggerPrice + } + return nil +} + +func (m *PerpetualOrder) GetCollateral() types.Coin { + if m != nil { + return m.Collateral + } + return types.Coin{} +} + +func (m *PerpetualOrder) GetTradingAsset() string { + if m != nil { + return m.TradingAsset + } + return "" +} + +func (m *PerpetualOrder) GetPositionId() uint64 { + if m != nil { + return m.PositionId + } + return 0 +} + +func (m *PerpetualOrder) GetStatus() Status { + if m != nil { + return m.Status + } + return Status_PENDING +} + +func init() { + proto.RegisterEnum("elys.tradeshield.SpotOrderType", SpotOrderType_name, SpotOrderType_value) + proto.RegisterEnum("elys.tradeshield.Status", Status_name, Status_value) + proto.RegisterEnum("elys.tradeshield.PerpetualOrderType", PerpetualOrderType_name, PerpetualOrderType_value) + proto.RegisterEnum("elys.tradeshield.PerpetualPosition", PerpetualPosition_name, PerpetualPosition_value) + proto.RegisterType((*OrderPrice)(nil), "elys.tradeshield.OrderPrice") + proto.RegisterType((*Date)(nil), "elys.tradeshield.Date") + proto.RegisterType((*SpotOrder)(nil), "elys.tradeshield.SpotOrder") + proto.RegisterType((*PerpetualOrder)(nil), "elys.tradeshield.PerpetualOrder") +} + +func init() { proto.RegisterFile("elys/tradeshield/types.proto", fileDescriptor_f02c7f96dfee8f75) } + +var fileDescriptor_f02c7f96dfee8f75 = []byte{ + // 843 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x5f, 0x6f, 0xdb, 0x54, + 0x14, 0xb7, 0x13, 0x37, 0x8d, 0x4f, 0xd2, 0xce, 0xbb, 0x9a, 0xa6, 0x6c, 0x2a, 0x09, 0xea, 0x10, + 0x42, 0x11, 0xb3, 0xbb, 0xf2, 0x84, 0x04, 0x4c, 0xf9, 0x63, 0x86, 0x47, 0x96, 0x58, 0x76, 0x8a, + 0x60, 0x2f, 0x91, 0x1b, 0xdf, 0xb9, 0x56, 0x13, 0x5f, 0x63, 0xdf, 0x6c, 0xf4, 0x43, 0x20, 0xed, + 0x99, 0x4f, 0xb4, 0xc7, 0x3d, 0x22, 0x1e, 0x26, 0xd4, 0x7e, 0x11, 0x74, 0xcf, 0x75, 0xb2, 0x14, + 0x4f, 0xa8, 0xec, 0x29, 0xf7, 0x9c, 0xdf, 0xf9, 0xfb, 0xfb, 0x9d, 0xc8, 0x70, 0x40, 0x17, 0x17, + 0xb9, 0xc5, 0xb3, 0x20, 0xa4, 0xf9, 0x59, 0x4c, 0x17, 0xa1, 0xc5, 0x2f, 0x52, 0x9a, 0x9b, 0x69, + 0xc6, 0x38, 0x23, 0x86, 0x40, 0xcd, 0x2d, 0xf4, 0xfe, 0x9d, 0x88, 0x45, 0x0c, 0x41, 0x4b, 0xbc, + 0x64, 0xdc, 0xfd, 0xf6, 0x9c, 0xe5, 0x4b, 0x96, 0x5b, 0xa7, 0x41, 0x4e, 0xad, 0x97, 0x8f, 0x4e, + 0x29, 0x0f, 0x1e, 0x59, 0x73, 0x16, 0x27, 0x12, 0x3f, 0x7c, 0xad, 0x02, 0x4c, 0xb2, 0x90, 0x66, + 0x6e, 0x16, 0xcf, 0x29, 0xf9, 0x04, 0x40, 0x44, 0xce, 0x42, 0x9a, 0xb0, 0x65, 0x4b, 0xfd, 0x54, + 0xfd, 0x42, 0xf7, 0x74, 0xe1, 0x19, 0x0a, 0x07, 0xe9, 0x40, 0xe3, 0xd7, 0x15, 0xe3, 0x6b, 0xbc, + 0x82, 0x38, 0xa0, 0x4b, 0x06, 0xf4, 0x41, 0xcb, 0x02, 0x4e, 0x5b, 0x55, 0x81, 0xf4, 0xcd, 0x37, + 0xef, 0x3a, 0xca, 0x5f, 0xef, 0x3a, 0x9f, 0x47, 0x31, 0x3f, 0x5b, 0x9d, 0x9a, 0x73, 0xb6, 0xb4, + 0x8a, 0x79, 0xe4, 0xcf, 0xc3, 0x3c, 0x3c, 0x2f, 0xd6, 0x1a, 0xd2, 0xb9, 0x87, 0xb9, 0x87, 0xdf, + 0x80, 0x36, 0x0c, 0x38, 0x25, 0x77, 0xa1, 0x76, 0x46, 0xe3, 0xe8, 0x8c, 0xe3, 0x1c, 0x9a, 0x57, + 0x58, 0xe4, 0x00, 0x74, 0x1e, 0x2f, 0x69, 0xce, 0x83, 0x65, 0x8a, 0x23, 0x68, 0xde, 0x7b, 0xc7, + 0xe1, 0x1f, 0x55, 0xd0, 0xfd, 0x94, 0x71, 0x5c, 0x8a, 0x7c, 0x07, 0xc0, 0xc4, 0x63, 0x26, 0x9a, + 0x60, 0x9d, 0xfd, 0xe3, 0x8e, 0xf9, 0x6f, 0xee, 0xcc, 0x4d, 0xc2, 0xf4, 0x22, 0xa5, 0x9e, 0xce, + 0xd6, 0x4f, 0x72, 0x0f, 0xea, 0x32, 0x3f, 0x0e, 0x8b, 0x56, 0xbb, 0x68, 0x3b, 0x21, 0xf9, 0x16, + 0x1a, 0x12, 0x4a, 0x05, 0x73, 0xb8, 0x71, 0xe3, 0xf8, 0xa0, 0x5c, 0xfb, 0x3d, 0xbb, 0x9e, 0x9c, + 0x45, 0x32, 0xdd, 0x87, 0xa6, 0x4c, 0x0f, 0x96, 0x6c, 0x95, 0xf0, 0x96, 0x86, 0xf9, 0xf7, 0x4c, + 0x49, 0x8c, 0x29, 0x38, 0x37, 0x0b, 0xbd, 0xcc, 0x01, 0x8b, 0x93, 0xbe, 0x26, 0xc8, 0xf4, 0x64, + 0xcf, 0x1e, 0xe6, 0x90, 0x07, 0xb0, 0xc7, 0x5e, 0x25, 0xa2, 0x46, 0x18, 0x66, 0x34, 0xcf, 0x5b, + 0x3b, 0x28, 0x48, 0x13, 0x9d, 0x3d, 0xe9, 0x23, 0x5f, 0x02, 0x29, 0x28, 0x08, 0xb2, 0x88, 0xf2, + 0x42, 0xba, 0x1a, 0x46, 0x1a, 0x72, 0x53, 0x04, 0xa4, 0x80, 0x47, 0x50, 0xcb, 0x79, 0xc0, 0x57, + 0x79, 0x6b, 0x17, 0xc9, 0x6a, 0x7d, 0x80, 0x2c, 0xc4, 0xbd, 0x22, 0x8e, 0x74, 0x41, 0x0b, 0x85, + 0xe4, 0x75, 0x5c, 0xe0, 0x6e, 0x39, 0x5e, 0x88, 0xe9, 0x61, 0xcc, 0xe1, 0xef, 0x3b, 0xb0, 0xef, + 0xd2, 0x2c, 0xa5, 0x7c, 0x15, 0x2c, 0xa4, 0x42, 0xdb, 0x0c, 0xab, 0xd7, 0x19, 0x2e, 0xad, 0x57, + 0xf9, 0xc0, 0x7a, 0x3f, 0xc1, 0x9d, 0x74, 0x5d, 0x71, 0xb6, 0xa5, 0x75, 0x15, 0xc7, 0xff, 0xac, + 0x3c, 0xce, 0xf5, 0xfe, 0x28, 0x38, 0x49, 0x4b, 0x3e, 0xf2, 0x18, 0xea, 0x29, 0xcb, 0x63, 0x1e, + 0xb3, 0x04, 0xb5, 0xd9, 0x3f, 0x7e, 0xf0, 0x1f, 0xb5, 0xdc, 0x22, 0xd4, 0xdb, 0x24, 0x91, 0x1e, + 0xec, 0xf1, 0x2c, 0x8e, 0xa2, 0xcd, 0x85, 0xec, 0xdc, 0xe0, 0x42, 0x9a, 0x45, 0x8a, 0xbc, 0x91, + 0xc7, 0x00, 0x73, 0xb6, 0x58, 0x04, 0x9c, 0x66, 0xc1, 0x02, 0x25, 0xbb, 0xc1, 0x85, 0x6c, 0xa5, + 0x08, 0x06, 0x45, 0xa3, 0x38, 0x89, 0x66, 0x41, 0x9e, 0x53, 0x8e, 0xa2, 0xea, 0xa2, 0x0b, 0x3a, + 0x7b, 0xc2, 0x47, 0x9e, 0x42, 0x7d, 0x41, 0x5f, 0xd2, 0x2c, 0x88, 0xa4, 0x88, 0xff, 0xff, 0x7f, + 0xbb, 0xc9, 0x27, 0xcf, 0xe1, 0x36, 0x0f, 0xce, 0xe9, 0x2c, 0xcd, 0xd8, 0x8b, 0x98, 0x17, 0x8b, + 0xeb, 0x1f, 0x55, 0xf4, 0x96, 0x28, 0xe4, 0x62, 0x1d, 0xc9, 0x46, 0x07, 0x1a, 0x6b, 0x72, 0xc5, + 0xb1, 0x00, 0x1e, 0x0b, 0xac, 0x5d, 0x4e, 0xb8, 0x75, 0xbb, 0x8d, 0x9b, 0xdd, 0x6e, 0xd7, 0x81, + 0xbd, 0x6b, 0x7f, 0x7d, 0xd2, 0x84, 0xba, 0x3f, 0x9d, 0xb8, 0xa3, 0x89, 0xef, 0x1b, 0x0a, 0xd9, + 0x03, 0x7d, 0xe4, 0x3c, 0x73, 0xa6, 0xbe, 0x3d, 0x1a, 0x19, 0xaa, 0x00, 0xd1, 0xec, 0x9f, 0xfc, + 0x62, 0x54, 0x04, 0xf8, 0xac, 0xe7, 0xfd, 0x68, 0xa3, 0x59, 0xed, 0x1e, 0x41, 0x4d, 0x16, 0x27, + 0x0d, 0xd8, 0x75, 0xed, 0xf1, 0xd0, 0x19, 0x3f, 0x31, 0x14, 0x91, 0x63, 0xff, 0x6c, 0x0f, 0x4e, + 0xa6, 0xf6, 0xd0, 0x50, 0x05, 0x34, 0xe8, 0x8d, 0x07, 0x23, 0x7b, 0x68, 0x54, 0xba, 0x2f, 0x80, + 0x94, 0x6f, 0x71, 0xd3, 0x73, 0xe2, 0xda, 0x63, 0x43, 0x21, 0xfb, 0x00, 0x68, 0x0e, 0x46, 0x13, + 0xdf, 0x36, 0x54, 0x61, 0xcb, 0xae, 0x88, 0x57, 0xc8, 0x2d, 0x68, 0x48, 0x5b, 0x06, 0x54, 0x89, + 0x01, 0xcd, 0xf5, 0x06, 0xae, 0xed, 0xb9, 0x86, 0xd6, 0xfd, 0x1a, 0x6e, 0x97, 0xee, 0x54, 0xe4, + 0x9d, 0x8c, 0x7d, 0xd7, 0x1e, 0x38, 0xdf, 0x3b, 0xf6, 0xd0, 0x50, 0x48, 0x1d, 0xb4, 0xd1, 0x64, + 0xfc, 0xc4, 0x50, 0x89, 0x0e, 0x3b, 0xfe, 0x0f, 0x13, 0x6f, 0x6a, 0x54, 0xfa, 0x4f, 0xdf, 0x5c, + 0xb6, 0xd5, 0xb7, 0x97, 0x6d, 0xf5, 0xef, 0xcb, 0xb6, 0xfa, 0xfa, 0xaa, 0xad, 0xbc, 0xbd, 0x6a, + 0x2b, 0x7f, 0x5e, 0xb5, 0x95, 0xe7, 0x47, 0x5b, 0x2a, 0x0a, 0x96, 0x1f, 0x26, 0x94, 0xbf, 0x62, + 0xd9, 0x39, 0x1a, 0xd6, 0x6f, 0xe5, 0xef, 0xd6, 0x69, 0x0d, 0x3f, 0x38, 0x5f, 0xfd, 0x13, 0x00, + 0x00, 0xff, 0xff, 0x59, 0x45, 0x45, 0x7d, 0xd8, 0x06, 0x00, 0x00, +} + +func (m *OrderPrice) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OrderPrice) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OrderPrice) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Rate.Size() + i -= size + if _, err := m.Rate.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.QuoteDenom) > 0 { + i -= len(m.QuoteDenom) + copy(dAtA[i:], m.QuoteDenom) + i = encodeVarintTypes(dAtA, i, uint64(len(m.QuoteDenom))) + i-- + dAtA[i] = 0x12 + } + if len(m.BaseDenom) > 0 { + i -= len(m.BaseDenom) + copy(dAtA[i:], m.BaseDenom) + i = encodeVarintTypes(dAtA, i, uint64(len(m.BaseDenom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Date) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Date) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Date) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Timestamp != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp)) + i-- + dAtA[i] = 0x10 + } + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *SpotOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SpotOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SpotOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Date != nil { + { + size, err := m.Date.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.Status != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x38 + } + if len(m.OrderTargetDenom) > 0 { + i -= len(m.OrderTargetDenom) + copy(dAtA[i:], m.OrderTargetDenom) + i = encodeVarintTypes(dAtA, i, uint64(len(m.OrderTargetDenom))) + i-- + dAtA[i] = 0x32 + } + if len(m.OwnerAddress) > 0 { + i -= len(m.OwnerAddress) + copy(dAtA[i:], m.OwnerAddress) + i = encodeVarintTypes(dAtA, i, uint64(len(m.OwnerAddress))) + i-- + dAtA[i] = 0x2a + } + { + size, err := m.OrderAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if m.OrderPrice != nil { + { + size, err := m.OrderPrice.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.OrderId != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.OrderId)) + i-- + dAtA[i] = 0x10 + } + if m.OrderType != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.OrderType)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *PerpetualOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PerpetualOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PerpetualOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Status != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x58 + } + if m.PositionId != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.PositionId)) + i-- + dAtA[i] = 0x50 + } + { + size := m.TakeProfitPrice.Size() + i -= size + if _, err := m.TakeProfitPrice.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + { + size := m.Leverage.Size() + i -= size + if _, err := m.Leverage.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + if len(m.TradingAsset) > 0 { + i -= len(m.TradingAsset) + copy(dAtA[i:], m.TradingAsset) + i = encodeVarintTypes(dAtA, i, uint64(len(m.TradingAsset))) + i-- + dAtA[i] = 0x3a + } + { + size, err := m.Collateral.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + if m.TriggerPrice != nil { + { + size, err := m.TriggerPrice.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Position != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Position)) + i-- + dAtA[i] = 0x20 + } + if m.PerpetualOrderType != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.PerpetualOrderType)) + i-- + dAtA[i] = 0x18 + } + if len(m.OwnerAddress) > 0 { + i -= len(m.OwnerAddress) + copy(dAtA[i:], m.OwnerAddress) + i = encodeVarintTypes(dAtA, i, uint64(len(m.OwnerAddress))) + i-- + dAtA[i] = 0x12 + } + if m.OrderId != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.OrderId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { + offset -= sovTypes(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *OrderPrice) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.BaseDenom) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.QuoteDenom) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Rate.Size() + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *Date) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + if m.Timestamp != 0 { + n += 1 + sovTypes(uint64(m.Timestamp)) + } + return n +} + +func (m *SpotOrder) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.OrderType != 0 { + n += 1 + sovTypes(uint64(m.OrderType)) + } + if m.OrderId != 0 { + n += 1 + sovTypes(uint64(m.OrderId)) + } + if m.OrderPrice != nil { + l = m.OrderPrice.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = m.OrderAmount.Size() + n += 1 + l + sovTypes(uint64(l)) + l = len(m.OwnerAddress) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.OrderTargetDenom) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Status != 0 { + n += 1 + sovTypes(uint64(m.Status)) + } + if m.Date != nil { + l = m.Date.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *PerpetualOrder) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.OrderId != 0 { + n += 1 + sovTypes(uint64(m.OrderId)) + } + l = len(m.OwnerAddress) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.PerpetualOrderType != 0 { + n += 1 + sovTypes(uint64(m.PerpetualOrderType)) + } + if m.Position != 0 { + n += 1 + sovTypes(uint64(m.Position)) + } + if m.TriggerPrice != nil { + l = m.TriggerPrice.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Collateral.Size() + n += 1 + l + sovTypes(uint64(l)) + l = len(m.TradingAsset) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Leverage.Size() + n += 1 + l + sovTypes(uint64(l)) + l = m.TakeProfitPrice.Size() + n += 1 + l + sovTypes(uint64(l)) + if m.PositionId != 0 { + n += 1 + sovTypes(uint64(m.PositionId)) + } + if m.Status != 0 { + n += 1 + sovTypes(uint64(m.Status)) + } + return n +} + +func sovTypes(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozTypes(x uint64) (n int) { + return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *OrderPrice) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OrderPrice: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OrderPrice: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BaseDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.QuoteDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Rate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Date) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Date: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Date: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + m.Timestamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Timestamp |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SpotOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SpotOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpotOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderType", wireType) + } + m.OrderType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OrderType |= SpotOrderType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderId", wireType) + } + m.OrderId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OrderId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderPrice", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OrderPrice == nil { + m.OrderPrice = &OrderPrice{} + } + if err := m.OrderPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OrderAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OwnerAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OwnerAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderTargetDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderTargetDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= Status(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Date", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Date == nil { + m.Date = &Date{} + } + if err := m.Date.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PerpetualOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PerpetualOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PerpetualOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderId", wireType) + } + m.OrderId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OrderId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OwnerAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OwnerAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PerpetualOrderType", wireType) + } + m.PerpetualOrderType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PerpetualOrderType |= PerpetualOrderType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Position", wireType) + } + m.Position = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Position |= PerpetualPosition(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TriggerPrice", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TriggerPrice == nil { + m.TriggerPrice = &OrderPrice{} + } + if err := m.TriggerPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Collateral", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Collateral.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TradingAsset", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TradingAsset = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Leverage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Leverage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TakeProfitPrice", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TakeProfitPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionId", wireType) + } + m.PositionId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PositionId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= Status(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTypes(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthTypes + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupTypes + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthTypes + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupTypes = fmt.Errorf("proto: unexpected end of group") +)