diff --git a/lib/modules/gva/resources/schema.gql b/lib/modules/gva/resources/schema.gql index e77a208f7a66f18037a5b5b71b9a8c4577f18c8d..a57118e06ff7a083b79b5aaa64fc49092fddeb6e 100644 --- a/lib/modules/gva/resources/schema.gql +++ b/lib/modules/gva/resources/schema.gql @@ -81,6 +81,7 @@ type Block { currency: String! issuer: String! issuerName: String, + issuersCount: Int! number: Int! hash: String!, commonTime: DateTimeUtc! diff --git a/lib/modules/gva/src/schema/entities/block.rs b/lib/modules/gva/src/schema/entities/block.rs index 1d8b8d6071f38925b02897005a4108902b087de3..9162d34efeb3cd8a4c5975c01822fd2bb61d7247 100644 --- a/lib/modules/gva/src/schema/entities/block.rs +++ b/lib/modules/gva/src/schema/entities/block.rs @@ -31,6 +31,7 @@ pub struct Block { currency: String, issuer: String, issuer_name: Option<String>, + issuers_count: i32, number: i32, hash: String, common_time: NaiveDateTime, @@ -57,6 +58,7 @@ impl Block { } else { None }, + issuers_count: block_db.block.issuers_count() as i32, number: block_db.block.number().0 as i32, hash: block_db .block @@ -108,4 +110,8 @@ impl super::super::BlockFields for Block { fn field_pow_min(&self, _executor: &Executor<'_, QueryContext>) -> FieldResult<&i32> { Ok(&self.pow_min) } + #[inline] + fn field_issuers_count(&self, _executor: &Executor<'_, QueryContext>) -> FieldResult<&i32> { + Ok(&self.issuers_count) + } } diff --git a/lib/modules/gva/src/schema/queries/block.rs b/lib/modules/gva/src/schema/queries/block.rs index 8f6ad8e4758c66e1e21f653be07b5a87b71aa440..cc6bcd983dd38404dda1bcdad44c89d7f2275f09 100644 --- a/lib/modules/gva/src/schema/queries/block.rs +++ b/lib/modules/gva/src/schema/queries/block.rs @@ -69,6 +69,7 @@ mod tests { Hash::default(), ); block.issuers = vec![pubkey('B')]; + block.issuers_count = 3; block.pow_min = 70; Ok(Some(BlockDb { block: BlockDocument::V10(block), @@ -99,7 +100,7 @@ mod tests { tests::test_gql_query( schema, - "{ block(number: 42) { commonTime, currency, hash, issuer, issuerName, number, powMin, version } }", + "{ block(number: 42) { commonTime, currency, hash, issuer, issuerName, issuersCount, number, powMin, version } }", json!({ "data": { "block": { @@ -108,6 +109,7 @@ mod tests { "hash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "issuer": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB", "issuerName": "issuerName", + "issuersCount": 3, "number": 42, "powMin": 70, "version": 10