missing schema
This commit is contained in:
@@ -13,13 +13,13 @@ use cosmwasm_schema::cw_serde;
|
||||
use crate::{
|
||||
dealer::{
|
||||
DealerDetailsResponse, PagedDealerIndexResponse, PagedDealerResponse,
|
||||
RegisteredDealerDetails, StateAdvanceResponse,
|
||||
RegisteredDealerDetails,
|
||||
},
|
||||
dealing::{
|
||||
DealerDealingsStatusResponse, DealingChunkResponse, DealingChunkStatusResponse,
|
||||
DealingMetadataResponse, DealingStatusResponse,
|
||||
},
|
||||
types::{Epoch, State},
|
||||
types::{Epoch, State, StateAdvanceResponse},
|
||||
verification_key::{PagedVKSharesResponse, VkShareResponse},
|
||||
};
|
||||
#[cfg(feature = "schema")]
|
||||
|
||||
@@ -374,6 +374,19 @@
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"can_advance_state"
|
||||
],
|
||||
"properties": {
|
||||
"can_advance_state": {
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
@@ -741,6 +754,215 @@
|
||||
},
|
||||
"sudo": null,
|
||||
"responses": {
|
||||
"can_advance_state": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "StateAdvanceResponse",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"current_state",
|
||||
"is_complete",
|
||||
"progress",
|
||||
"reached_deadline"
|
||||
],
|
||||
"properties": {
|
||||
"current_state": {
|
||||
"$ref": "#/definitions/EpochState"
|
||||
},
|
||||
"deadline": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/Timestamp"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"is_complete": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"progress": {
|
||||
"$ref": "#/definitions/StateProgress"
|
||||
},
|
||||
"reached_deadline": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"definitions": {
|
||||
"EpochState": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"waiting_initialisation",
|
||||
"in_progress"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"public_key_submission"
|
||||
],
|
||||
"properties": {
|
||||
"public_key_submission": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"resharing"
|
||||
],
|
||||
"properties": {
|
||||
"resharing": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"dealing_exchange"
|
||||
],
|
||||
"properties": {
|
||||
"dealing_exchange": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"resharing"
|
||||
],
|
||||
"properties": {
|
||||
"resharing": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"verification_key_submission"
|
||||
],
|
||||
"properties": {
|
||||
"verification_key_submission": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"resharing"
|
||||
],
|
||||
"properties": {
|
||||
"resharing": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"verification_key_validation"
|
||||
],
|
||||
"properties": {
|
||||
"verification_key_validation": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"resharing"
|
||||
],
|
||||
"properties": {
|
||||
"resharing": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"verification_key_finalization"
|
||||
],
|
||||
"properties": {
|
||||
"verification_key_finalization": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"resharing"
|
||||
],
|
||||
"properties": {
|
||||
"resharing": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"StateProgress": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"registered_dealers",
|
||||
"registered_resharing_dealers",
|
||||
"submitted_dealings",
|
||||
"submitted_key_shares",
|
||||
"verified_keys"
|
||||
],
|
||||
"properties": {
|
||||
"registered_dealers": {
|
||||
"description": "Counts the number of dealers that have registered in this epoch.",
|
||||
"type": "integer",
|
||||
"format": "uint32",
|
||||
"minimum": 0.0
|
||||
},
|
||||
"registered_resharing_dealers": {
|
||||
"description": "Counts the number of resharing dealers that have registered in this epoch. This field is only populated during a resharing exchange. It is always <= registered_dealers.",
|
||||
"type": "integer",
|
||||
"format": "uint32",
|
||||
"minimum": 0.0
|
||||
},
|
||||
"submitted_dealings": {
|
||||
"description": "Counts the number of fully received dealings (i.e. full chunks) from all the allowed dealers.",
|
||||
"type": "integer",
|
||||
"format": "uint32",
|
||||
"minimum": 0.0
|
||||
},
|
||||
"submitted_key_shares": {
|
||||
"description": "Counts the number of submitted verification key shared from the dealers.",
|
||||
"type": "integer",
|
||||
"format": "uint32",
|
||||
"minimum": 0.0
|
||||
},
|
||||
"verified_keys": {
|
||||
"description": "Counts the number of verified key shares.",
|
||||
"type": "integer",
|
||||
"format": "uint32",
|
||||
"minimum": 0.0
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"Timestamp": {
|
||||
"description": "A point in time in nanosecond precision.\n\nThis type can represent times from 1970-01-01T00:00:00Z to 2554-07-21T23:34:33Z.\n\n## Examples\n\n``` # use cosmwasm_std::Timestamp; let ts = Timestamp::from_nanos(1_000_000_202); assert_eq!(ts.nanos(), 1_000_000_202); assert_eq!(ts.seconds(), 1); assert_eq!(ts.subsec_nanos(), 202);\n\nlet ts = ts.plus_seconds(2); assert_eq!(ts.nanos(), 3_000_000_202); assert_eq!(ts.seconds(), 3); assert_eq!(ts.subsec_nanos(), 202); ```",
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/Uint64"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Uint64": {
|
||||
"description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"get_c_w2_contract_version": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "ContractVersion",
|
||||
|
||||
@@ -41,6 +41,19 @@
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"can_advance_state"
|
||||
],
|
||||
"properties": {
|
||||
"can_advance_state": {
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
|
||||
@@ -0,0 +1,209 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "StateAdvanceResponse",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"current_state",
|
||||
"is_complete",
|
||||
"progress",
|
||||
"reached_deadline"
|
||||
],
|
||||
"properties": {
|
||||
"current_state": {
|
||||
"$ref": "#/definitions/EpochState"
|
||||
},
|
||||
"deadline": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/Timestamp"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"is_complete": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"progress": {
|
||||
"$ref": "#/definitions/StateProgress"
|
||||
},
|
||||
"reached_deadline": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"definitions": {
|
||||
"EpochState": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"waiting_initialisation",
|
||||
"in_progress"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"public_key_submission"
|
||||
],
|
||||
"properties": {
|
||||
"public_key_submission": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"resharing"
|
||||
],
|
||||
"properties": {
|
||||
"resharing": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"dealing_exchange"
|
||||
],
|
||||
"properties": {
|
||||
"dealing_exchange": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"resharing"
|
||||
],
|
||||
"properties": {
|
||||
"resharing": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"verification_key_submission"
|
||||
],
|
||||
"properties": {
|
||||
"verification_key_submission": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"resharing"
|
||||
],
|
||||
"properties": {
|
||||
"resharing": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"verification_key_validation"
|
||||
],
|
||||
"properties": {
|
||||
"verification_key_validation": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"resharing"
|
||||
],
|
||||
"properties": {
|
||||
"resharing": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"verification_key_finalization"
|
||||
],
|
||||
"properties": {
|
||||
"verification_key_finalization": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"resharing"
|
||||
],
|
||||
"properties": {
|
||||
"resharing": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"StateProgress": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"registered_dealers",
|
||||
"registered_resharing_dealers",
|
||||
"submitted_dealings",
|
||||
"submitted_key_shares",
|
||||
"verified_keys"
|
||||
],
|
||||
"properties": {
|
||||
"registered_dealers": {
|
||||
"description": "Counts the number of dealers that have registered in this epoch.",
|
||||
"type": "integer",
|
||||
"format": "uint32",
|
||||
"minimum": 0.0
|
||||
},
|
||||
"registered_resharing_dealers": {
|
||||
"description": "Counts the number of resharing dealers that have registered in this epoch. This field is only populated during a resharing exchange. It is always <= registered_dealers.",
|
||||
"type": "integer",
|
||||
"format": "uint32",
|
||||
"minimum": 0.0
|
||||
},
|
||||
"submitted_dealings": {
|
||||
"description": "Counts the number of fully received dealings (i.e. full chunks) from all the allowed dealers.",
|
||||
"type": "integer",
|
||||
"format": "uint32",
|
||||
"minimum": 0.0
|
||||
},
|
||||
"submitted_key_shares": {
|
||||
"description": "Counts the number of submitted verification key shared from the dealers.",
|
||||
"type": "integer",
|
||||
"format": "uint32",
|
||||
"minimum": 0.0
|
||||
},
|
||||
"verified_keys": {
|
||||
"description": "Counts the number of verified key shares.",
|
||||
"type": "integer",
|
||||
"format": "uint32",
|
||||
"minimum": 0.0
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"Timestamp": {
|
||||
"description": "A point in time in nanosecond precision.\n\nThis type can represent times from 1970-01-01T00:00:00Z to 2554-07-21T23:34:33Z.\n\n## Examples\n\n``` # use cosmwasm_std::Timestamp; let ts = Timestamp::from_nanos(1_000_000_202); assert_eq!(ts.nanos(), 1_000_000_202); assert_eq!(ts.seconds(), 1); assert_eq!(ts.subsec_nanos(), 202);\n\nlet ts = ts.plus_seconds(2); assert_eq!(ts.nanos(), 3_000_000_202); assert_eq!(ts.seconds(), 3); assert_eq!(ts.subsec_nanos(), 202); ```",
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/Uint64"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Uint64": {
|
||||
"description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
use crate::epoch_state::storage::{CURRENT_EPOCH, THRESHOLD};
|
||||
use crate::epoch_state::utils::check_state_completion;
|
||||
use crate::error::ContractError;
|
||||
use cosmwasm_std::{Env, StdResult, Storage};
|
||||
use cosmwasm_std::{Env, Storage};
|
||||
use nym_coconut_dkg_common::types::{Epoch, EpochState, StateAdvanceResponse};
|
||||
|
||||
pub(crate) fn query_can_advance_state(
|
||||
|
||||
Reference in New Issue
Block a user