diff --git a/Netezos.Tests/Rpc/TestContextQueries.cs b/Netezos.Tests/Rpc/TestContextQueries.cs index 3c15e478..8ce514f8 100644 --- a/Netezos.Tests/Rpc/TestContextQueries.cs +++ b/Netezos.Tests/Rpc/TestContextQueries.cs @@ -228,6 +228,26 @@ public async Task TestContextContractStakedBalance() Assert.True(res is DJsonValue); } + [Fact] + public async Task TestContextContractSpendable() + { + var query = Rpc.Blocks.Head.Context.Contracts[TestContract].Spendable; + Assert.Equal($"chains/main/blocks/head/context/contracts/{TestContract}/spendable/", query.ToString()); + + var res = await query.GetAsync(); + Assert.True(res is DJsonValue); + } + + [Fact] + public async Task TestContextContractSpendableAndFrozenBonds() + { + var query = Rpc.Blocks.Head.Context.Contracts[TestContract].SpendableAndFrozenBonds; + Assert.Equal($"chains/main/blocks/head/context/contracts/{TestContract}/spendable_and_frozen_bonds/", query.ToString()); + + var res = await query.GetAsync(); + Assert.True(res is DJsonValue); + } + [Fact] public async Task TestContextContractStorage() { @@ -383,73 +403,73 @@ public async Task TestContextDelegateActiveStakingParameters() } [Fact] - public async Task TestContextDelegateConsensusKey() + public async Task TestContextDelegateBakingPower() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].ConsensusKey; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/consensus_key/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].BakingPower; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/baking_power/", query.ToString()); var res = await query.GetAsync(); - Assert.True(res is DJsonObject); + Assert.True(res is DJsonValue); } [Fact] - public async Task TestContextDelegateCurrentBakingPower() + public async Task TestContextDelegateDelegators() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].CurrentBakingPower; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/current_baking_power/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].Delegators; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/delegators/", query.ToString()); var res = await query.GetAsync(); - Assert.True(res is DJsonValue); + Assert.True(res is DJsonArray); } [Fact] - public async Task TestContextDelegateCurrentFrozenDeposits() + public async Task TestContextDelegateExternalDelegated() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].CurrentFrozenDeposits; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/current_frozen_deposits/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].ExternalDelegated; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/external_delegated/", query.ToString()); var res = await query.GetAsync(); Assert.True(res is DJsonValue); } [Fact] - public async Task TestContextDelegateCurrentVotingPower() + public async Task TestContextDelegateExternalStaked() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].CurrentVotingPower; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/current_voting_power/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].ExternalStaked; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/external_staked/", query.ToString()); var res = await query.GetAsync(); Assert.True(res is DJsonValue); } [Fact] - public async Task TestContextDelegateDeactivated() + public async Task TestContextDelegateConsensusKey() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].Deactivated; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/deactivated/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].ConsensusKey; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/consensus_key/", query.ToString()); var res = await query.GetAsync(); - Assert.True(res is DJsonValue); + Assert.True(res is DJsonObject); } [Fact] - public async Task TestContextDelegateDelegatedBalance() + public async Task TestContextDelegateCurrentVotingPower() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].DelegatedBalance; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/delegated_balance/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].CurrentVotingPower; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/current_voting_power/", query.ToString()); var res = await query.GetAsync(); Assert.True(res is DJsonValue); } [Fact] - public async Task TestContextDelegateDelegatedContracts() + public async Task TestContextDelegateDeactivated() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].DelegatedContracts; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/delegated_contracts/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].Deactivated; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/deactivated/", query.ToString()); var res = await query.GetAsync(); - Assert.True(res is DJsonArray); + Assert.True(res is DJsonValue); } [Fact] @@ -473,6 +493,16 @@ public async Task TestContextDelegateEstimatedSharedPendingSlashedAmount() Assert.True(res is DJsonValue); } + [Fact] + public async Task TestContextDelegateGracePeriod() + { + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].GracePeriod; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/grace_period/", query.ToString()); + + var res = await query.GetAsync(); + Assert.True(res is DJsonValue); + } + [Fact] public async Task TestContextDelegateIsForbidden() { @@ -495,30 +525,30 @@ public async Task TestContextDelegateMinDelegatedInCurrentCycle() } [Fact] - public async Task TestContextDelegateFrozenDeposits() + public async Task TestContextDelegateOwnDelegated() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].FrozenDeposits; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/frozen_deposits/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].OwnDelegated; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/own_delegated/", query.ToString()); var res = await query.GetAsync(); Assert.True(res is DJsonValue); } - + [Fact] - public async Task TestContextDelegateFullBalance() + public async Task TestContextDelegateOwnFullBalance() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].FullBalance; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/full_balance/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].OwnFullBalance; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/own_full_balance/", query.ToString()); var res = await query.GetAsync(); Assert.True(res is DJsonValue); } [Fact] - public async Task TestContextDelegateGracePeriod() + public async Task TestContextDelegateOwnStaked() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].GracePeriod; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/grace_period/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].OwnStaked; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/own_staked/", query.ToString()); var res = await query.GetAsync(); Assert.True(res is DJsonValue); @@ -555,10 +585,30 @@ public async Task TestContextDelegateStakingBalance() } [Fact] - public async Task TestContextDelegateUnstakedFrozenDeposits() + public async Task TestContextDelegateTotalDelegated() + { + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].TotalDelegated; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/total_delegated/", query.ToString()); + + var res = await query.GetAsync(); + Assert.True(res is DJsonValue); + } + + [Fact] + public async Task TestContextDelegateTotalStaked() { - var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].UnstakedFrozenDeposits; - Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/unstaked_frozen_deposits/", query.ToString()); + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].TotalStaked; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/total_staked/", query.ToString()); + + var res = await query.GetAsync(); + Assert.True(res is DJsonValue); + } + + [Fact] + public async Task TestContextDelegateTotalUnstakedPerCycle() + { + var query = Rpc.Blocks.Head.Context.Delegates[TestDelegate].TotalUnstakedPerCycle; + Assert.Equal($"chains/main/blocks/head/context/delegates/{TestDelegate}/total_unstaked_per_cycle/", query.ToString()); var res = await query.GetAsync(); Assert.True(res is DJsonArray); @@ -594,6 +644,16 @@ public async Task TestContextIssuanceCurrentYearlyRate() Assert.True(res is DJsonValue); } + [Fact] + public async Task TestContextIssuanceCurrentYearlyRateDetails() + { + var query = Rpc.Blocks.Head.Context.Issuance.CurrentYearlyRateDetails; + Assert.Equal($"chains/main/blocks/head/context/issuance/current_yearly_rate_details/", query.ToString()); + + var res = await query.GetAsync(); + Assert.True(res is DJsonObject); + } + [Fact] public async Task TestContextIssuanceCurrentYearlyRateExact() { @@ -697,6 +757,16 @@ public async Task TestContextSmartRollupStakers() Assert.True(res is DJsonArray); } + [Fact] + public async Task TestContextTotalCurrentlyStaked() + { + var query = Rpc.Blocks.Head.Context.TotalCurrentlyStaked; + Assert.Equal($"chains/main/blocks/head/context/total_currently_staked/", query.ToString()); + + var res = await query.GetAsync(); + Assert.True(res is DJsonObject); + } + [Fact] public async Task TestContextTotalFrozenStake() { diff --git a/Netezos.Tests/Rpc/settings_ithaca.json b/Netezos.Tests/Rpc/settings_ghostnet.json similarity index 87% rename from Netezos.Tests/Rpc/settings_ithaca.json rename to Netezos.Tests/Rpc/settings_ghostnet.json index 800c7ed8..4ca84323 100644 --- a/Netezos.Tests/Rpc/settings_ithaca.json +++ b/Netezos.Tests/Rpc/settings_ghostnet.json @@ -1,5 +1,5 @@ { - "node": "https://rpc.tzkt.io/ithacanet/", + "node": "https://rpc.tzkt.io/ghostnet/", "testContract": "KT1TxqZ8QtKvLu3V3JH7Gx58n7Co8pgtpQU5", "testEntrypoint": "default", "testDelegate": "tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9", diff --git a/Netezos/Rpc/Queries/ContextQuery.cs b/Netezos/Rpc/Queries/ContextQuery.cs index 6656f189..c8df056e 100644 --- a/Netezos/Rpc/Queries/ContextQuery.cs +++ b/Netezos/Rpc/Queries/ContextQuery.cs @@ -63,6 +63,11 @@ public class ContextQuery : RpcQuery /// public SmartRollupsQuery SmartRollups => new(this, "smart_rollups/"); + /// + /// Returns the amount of staked tez by delegates, delegators or overstaked. + /// + public RpcObject TotalCurrentlyStaked => new(this, "total_currently_staked/"); + /// /// Returns the total stake (in mutez) frozen on the chain. /// diff --git a/Netezos/Rpc/Queries/ContractQuery.cs b/Netezos/Rpc/Queries/ContractQuery.cs index c454907f..6e196faa 100644 --- a/Netezos/Rpc/Queries/ContractQuery.cs +++ b/Netezos/Rpc/Queries/ContractQuery.cs @@ -13,12 +13,16 @@ public class ContractQuery : RpcObject public RpcObject AllTicketBalances => new(this, "all_ticket_balances/"); /// - /// Gets the query to the balance of a contract + /// Gets the query to the spendable balance of a contract (in mutez), also known as liquid balance. Corresponds + /// to tez owned by the contract that are neither staked, nor in unstaked requests, nor in frozen bonds. + /// Identical to the 'spendable' RPC. /// public RpcObject Balance => new(this, "balance/"); /// - /// Gets the query to the sum of the spendable balance and frozen bonds of a contract. + /// Gets the query to the sum (in mutez) of the spendable balance and frozen bonds of a contract. Corresponds + /// to the contract's full balance from which staked funds and unstake requests have been excluded. Identical + /// to the 'spendable_and_frozen_bonds' RPC. /// public RpcObject BalanceAndFrozenBonds => new(this, "balance_and_frozen_bonds/"); @@ -60,7 +64,9 @@ public class ContractQuery : RpcObject public RpcObject FrozenBonds => new(this, "frozen_bonds/"); /// - /// Gets the query to the full balance of a contract, including frozen bonds and stake. + /// Gets the query to the full balance (in mutez) of the contract. Includes its spendable balance, staked tez, + /// unstake requests, and frozen bonds. Even if the contract is a delegate, it does not include any staked or + /// delegated tez owned by external delegators. /// public RpcObject FullBalance => new(this, "full_balance/"); @@ -81,15 +87,24 @@ public class ContractQuery : RpcObject public ScriptQuery Script => new(this, "script/"); /// - /// Gets the query to the staked balance of a contract. Returns None if the contract is originated, or neither delegated nor a delegate. + /// Gets the query to the staked balance of a contract (in mutez). Returns None if the contract is originated, + /// or neither delegated nor a delegate. /// public RpcObject StakedBalance => new(this, "staked_balance/"); /// - /// Gets the query to the flag, indicating if the contract tokens can be spent by the manager + /// Gets the query to the spendable balance of a contract (in mutez), also known as liquid balance. Corresponds + /// to tez owned by the contract that are neither staked, nor in unstaked requests, nor in frozen bonds. + /// Identical to the 'balance' RPC. /// - [Obsolete("This RPC query was removed. Use it on early protocols only.")] public RpcObject Spendable => new(this, "spendable/"); + + /// + /// Gets the query to the sum (in mutez) of the spendable balance and frozen bonds of a contract. Corresponds + /// to the contract's full balance from which staked funds and unstake requests have been excluded. Identical + /// to the 'balance_and_frozen_bonds' RPC. + /// + public RpcObject SpendableAndFrozenBonds => new(this, "spendable_and_frozen_bonds/"); /// /// Gets the query to the data of the contract's storage diff --git a/Netezos/Rpc/Queries/DelegateQuery.cs b/Netezos/Rpc/Queries/DelegateQuery.cs index 2ed4340e..a6821ec3 100644 --- a/Netezos/Rpc/Queries/DelegateQuery.cs +++ b/Netezos/Rpc/Queries/DelegateQuery.cs @@ -9,34 +9,43 @@ public class DelegateQuery : RpcObject /// Returns the currently active staking parameters for the given delegate. /// public RpcObject ActiveStakingParameters => new(this, "active_staking_parameters/"); - + + /// + /// Returns the current baking power of a delegate, using the current staked and delegated balances of the baker + /// and its delegators. In other words, the baking rights that the baker would get for a future cycle if the + /// current cycle ended right at the current block. + /// + public RpcObject BakingPower => new(this, "baking_power/"); + /// /// Gets the query to the full balance of a given delegate, including the frozen balances /// [Obsolete("This RPC query was removed. Use it on early protocols only.")] public RpcObject Balance => new(this, "balance/"); - + /// /// The active consensus key for a given delegate and the pending consensus keys. /// public RpcObject ConsensusKey => new(this, "consensus_key/"); - + /// /// The baking power of a delegate, as computed from its current stake. This value is not used for computing baking /// rights but only reflects the baking power that the delegate would have if the cycle ended at the current block. /// + [Obsolete("This RPC query was removed. Use it on early protocols only.")] public RpcObject CurrentBakingPower => new(this, "current_baking_power/"); - + /// /// Returns the current amount of the frozen deposits (in mutez). /// + [Obsolete("This RPC query was removed. Use it on early protocols only.")] public RpcObject CurrentFrozenDeposits => new(this, "current_frozen_deposits/"); - + /// /// The voting power of a given delegate, as computed from its current stake. /// public RpcObject CurrentVotingPower => new(this, "current_voting_power/"); - + /// /// Gets the query to the flag, indicating whether the delegate is currently tagged as deactivated or not /// @@ -45,12 +54,20 @@ public class DelegateQuery : RpcObject /// /// Gets the query to the balances of all the contracts that delegate to a given delegate. This excludes the delegate's own balance and its frozen balances /// + [Obsolete("This RPC query was removed. Use it on early protocols only.")] public RpcObject DelegatedBalance => new(this, "delegated_balance/"); /// /// Gets the query to the list of contracts that delegate to a given delegate /// + [Obsolete("This RPC query was removed. Use it on early protocols only.")] public RpcObject DelegatedContracts => new(this, "delegated_contracts/"); + + /// + /// Gets the query to the list of all contracts that are currently delegating to the delegate. Includes both + /// user accounts and smart contracts. Includes the delegate itself. + /// + public RpcObject Delegators => new(this, "delegators/"); /// /// Gets the query to the pending denunciations for the given delegate. @@ -61,6 +78,23 @@ public class DelegateQuery : RpcObject /// Gets the query to the estimated shared pending slashed amount (in mutez) of a given delegate. /// public RpcObject EstimatedSharedPendingSlashedAmount => new(this, "estimated_shared_pending_slashed_amount/"); + + /// + /// Gets the query to the sum (in mutez) of non-staked tokens that currently count as delegated to the baker, + /// excluding those owned by the baker iself. Does not take limits such as overstaking or overdelegation into + /// account. This includes the spendable balances and frozen bonds of all the baker's external delegators. It + /// also includes unstake requests of contracts other than the baker, on the condition that the contract was + /// delegating to the baker at the time of the unstake operation. So this includes most but not all unstake + /// requests from current delegators, and might include some unstake requests from old delegators. Limits such + /// as overstaking and overdelegation have not been applied yet. + /// + public RpcObject ExternalDelegated => new(this, "external_delegated/"); + + /// + /// Gets the query to the sum (in mutez) of all tokens currently staked by the baker's external delegators. This + /// excludes the baker's own staked tokens. + /// + public RpcObject ExternalStaked => new(this, "external_staked/"); /// /// Gets the query to the total frozen balances of a given delegate, this includes the frozen deposits, rewards and fees @@ -75,8 +109,10 @@ public class DelegateQuery : RpcObject public RpcObject FrozenBalanceByCycle => new(this, "frozen_balance_by_cycle/"); /// - /// Returns the initial amount (that is, at the beginning of a cycle) of the frozen deposits (in mutez). This amount is the same as the current amount of the frozen deposits, unless the delegate has been punished. + /// Returns the initial amount (that is, at the beginning of a cycle) of the frozen deposits (in mutez). This + /// amount is the same as the current amount of the frozen deposits, unless the delegate has been punished. /// + [Obsolete("This RPC query was removed. Use it on early protocols only.")] public RpcObject FrozenDeposits => new(this, "frozen_deposits/"); /// @@ -88,8 +124,9 @@ public class DelegateQuery : RpcObject /// /// Gets the query to the full balance of a given delegate, including the frozen balances /// + [Obsolete("This RPC query was removed. Use it on early protocols only.")] public RpcObject FullBalance => new(this, "full_balance/"); - + /// /// Gets the query to the cycle by the end of which the delegate might be deactivated if he fails to execute any delegate action /// @@ -105,6 +142,31 @@ public class DelegateQuery : RpcObject /// this value was last updated. /// public RpcObject MinDelegatedInCurrentCycle => new(this, "min_delegated_in_current_cycle/"); + + /// + /// Gets the query to the amount (in mutez) currently owned by the baker itself and counting as delegated for + /// the purpose of baking rights. This corresponds to all non-staked tokens owned by the baker: spendable + /// balance, frozen bonds, and unstake requests. (Note: There is one exception: if the baker still has unstake + /// requests created at a time when it was delegating to a different delegate, then these unstake requests still + /// count as delegated to the former delegate. Any such unstake requests are excluded from the amount returned + /// by the present RPC, despite being non-staked tokens owned by the baker.) + /// + public RpcObject OwnDelegated => new(this, "own_delegated/"); + + /// + /// Gets the query to the full balance (in mutez) of tokens owned by the delegate itself. Includes its spendable + /// balance, staked tez, unstake requests, and frozen bonds. Does not include any tokens owned by external + /// delegators. This RPC fails when the pkh is not a delegate. When it is a delegate, this RPC outputs the same + /// amount as ../:block_id/context/contracts/:delegate_contract_id/full_balance. + /// + public RpcObject OwnFullBalance => new(this, "own_full_balance/"); + + /// + /// Gets the query to the amount (in mutez) currently owned and staked by the baker itself. Returns the same + /// value as ../:block_id/context/contracts/:delegate_contract_id/staked_balance (except for the fact that the + /// present RPC fails if the public_key_hash in the path is not a delegate). + /// + public RpcObject OwnStaked => new(this, "own_staked/"); /// /// Returns cycle and level participation information. In particular this indicates, in the field 'expected_cycle_activity', @@ -124,22 +186,50 @@ public class DelegateQuery : RpcObject /// Gets the query to the total amount of tokens delegated to a given delegate, including the balance of the delegate itself and its frozen fees and deposits /// public RpcObject StakingBalance => new(this, "staking_balance/"); + + /// + /// Gets the query to the all tokens (in mutez) that currently count as delegated for the purpose of computing + /// the baker's rights; they weigh half as much as staked tez in the rights. Limits such as overstaking and + /// overdelegation have not been applied yet. This corresponds to all non-staked tez owned by the baker's + /// delegators (including the baker itself): spendable balances, frozen bonds, and unstaked requests, except for + /// any unstake requests that have been created before the delegator changed its delegate to the current baker + /// (because they still count as delegated for the old delegate instead). + /// + public RpcObject TotalDelegated => new(this, "total_delegated/"); + + /// + /// Gets the query to the total amount (in mutez) currently staked for the baker, both by the baker itself and + /// by external stakers. This is the staked amount before applying the baker's 'limit_of_staking_over_baking'; + /// in other words, it includes overstaked tez if there are any. + /// + public RpcObject TotalStaked => new(this, "total_staked/"); + + /// + /// Gets the query that returns for each cycle the total amount (in mutez) contained in all unstake requests + /// created during this cycle by all delegators, including the baker itself. Note that these tokens count as + /// delegated to the baker for the purpose of computing baking rights, and are included in the amount returned + /// by the total_delegated RPC. + /// + public RpcObject TotalUnstakedPerCycle => new(this, "total_unstaked_per_cycle/"); /// /// Returns, for each cycle, the sum of unstaked-but-frozen deposits for this cycle. Cycles go from the last unslashable cycle to the current cycle. /// + [Obsolete("This RPC query was removed. Use it on early protocols only.")] public RpcObject UnstakedFrozenDeposits => new(this, "unstaked_frozen_deposits/"); /// /// The number of rolls in the vote listings for a given delegate /// public RpcObject VotingInfo => new(this, "voting_info/"); - + /// /// The number of rolls in the vote listings for a given delegate /// public RpcObject VotingPower => new(this, "voting_power/"); - internal DelegateQuery(RpcQuery baseQuery, string append) : base(baseQuery, append) { } + internal DelegateQuery(RpcQuery baseQuery, string append) : base(baseQuery, append) + { + } } -} +} \ No newline at end of file diff --git a/Netezos/Rpc/Queries/IssuanceQuery.cs b/Netezos/Rpc/Queries/IssuanceQuery.cs index 68a02c1c..a1dee448 100644 --- a/Netezos/Rpc/Queries/IssuanceQuery.cs +++ b/Netezos/Rpc/Queries/IssuanceQuery.cs @@ -6,22 +6,31 @@ public class IssuanceQuery : RpcQuery { /// - /// Returns the current expected maximum yearly issuance rate (in %). + /// Returns the current expected maximum yearly issuance rate (in %). The value only includes participation rewards + /// (and does not include liquidity baking) /// public RpcObject CurrentYearlyRate => new(this, "current_yearly_rate/"); + + /// + /// Returns the static and dynamic parts of the current expected maximum yearly issuance rate (in %). The value only + /// includes participation rewards (and does not include liquidity baking) + /// + public RpcObject CurrentYearlyRateDetails => new(this, "current_yearly_rate_details/"); /// - /// Returns the current expected maximum yearly issuance rate (exact quotient). + /// Returns the current expected maximum yearly issuance rate (exact quotient) (in %). The value only includes + /// participation rewards (and does not include liquidity baking) /// public RpcObject CurrentYearlyRateExact => new(this, "current_yearly_rate_exact/"); /// - /// Returns the expected issued tez for the provided block and the next 'consensus_rights_delay' cycles. + /// Returns the expected issued tez for the provided block and the next 'consensus_rights_delay' cycles (in mutez) /// public RpcObject ExpectedIssuance => new(this, "expected_issuance/"); /// - /// Returns the current expected maximum issuance per minute (in mutez). + /// Returns the current expected maximum issuance per minute (in mutez). The value only includes participation + /// rewards (and does not include liquidity baking) /// public RpcObject IssuancePerMinute => new(this, "issuance_per_minute/");