diff --git a/CHANGELOG.md b/CHANGELOG.md index 205db0658..d5f53ba4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Release Date: _unreleased_ - `vm_type`, `code_hash_hex` and `code_hex` are returned as collection (it's allowed after protocol update to have multiple codes per package). Previous properties will return empty strings to keep contract compatibility. - Created new `package_blueprint_aggregate_history` table which will hold pointers to all package blueprints. - Created new `package_code_aggregate_history` table which will hold pointers to all package codes. +- Extended well known addresses returned from `/status/network-configuration` with transaction tracker address. ## 1.2.4 Release Date: 4.01.2024 diff --git a/apps/GatewayApi/Controllers/StatusController.cs b/apps/GatewayApi/Controllers/StatusController.cs index 4398c9c03..d582428a4 100644 --- a/apps/GatewayApi/Controllers/StatusController.cs +++ b/apps/GatewayApi/Controllers/StatusController.cs @@ -124,7 +124,8 @@ public GatewayModel.NetworkConfigurationResponse NetworkConfiguration() consensusManager: wellKnownAddresses.ConsensusManager, genesisHelper: wellKnownAddresses.GenesisHelper, faucet: wellKnownAddresses.Faucet, - poolPackage: wellKnownAddresses.PoolPackage + poolPackage: wellKnownAddresses.PoolPackage, + transactionTracker: wellKnownAddresses.TransactionTracker ) ); } diff --git a/src/RadixDlt.CoreApiSdk/core-api-spec-copy.yaml b/src/RadixDlt.CoreApiSdk/core-api-spec-copy.yaml index 8249c9cb8..264e03011 100644 --- a/src/RadixDlt.CoreApiSdk/core-api-spec-copy.yaml +++ b/src/RadixDlt.CoreApiSdk/core-api-spec-copy.yaml @@ -5850,7 +5850,7 @@ components: total_fee: type: string description: | - The string-encoded decimal representing the total amount of XRD payed as fee (execution, validator tip and royalties). + The string-encoded decimal representing the total amount of XRD paid as fee (execution, validator tip and royalties). A decimal is formed of some signed integer `m` of attos (`10^(-18)`) units, where `-2^(192 - 1) <= m < 2^(192 - 1)`. LtsEntityFungibleBalanceChanges: type: object @@ -6110,6 +6110,7 @@ components: - consensus_manager - genesis_helper - faucet + - transaction_tracker properties: xrd: type: string @@ -6163,6 +6164,8 @@ components: type: string faucet: type: string + transaction_tracker: + type: string AddressType: type: object required: @@ -7413,8 +7416,12 @@ components: - $ref: "#/components/schemas/LedgerTransaction" - type: object required: + - name - flashed_state_updates properties: + name: + type: string + description: Human-readable identifier of the flash transaction. flashed_state_updates: $ref: "#/components/schemas/FlashedStateUpdates" RoundUpdateTransaction: diff --git a/src/RadixDlt.CoreApiSdk/generated/Model/FlashLedgerTransaction.cs b/src/RadixDlt.CoreApiSdk/generated/Model/FlashLedgerTransaction.cs index 61c9a9639..70bfdb666 100644 --- a/src/RadixDlt.CoreApiSdk/generated/Model/FlashLedgerTransaction.cs +++ b/src/RadixDlt.CoreApiSdk/generated/Model/FlashLedgerTransaction.cs @@ -109,11 +109,18 @@ protected FlashLedgerTransaction() { } /// /// Initializes a new instance of the class. /// + /// Human-readable identifier of the flash transaction. (required). /// flashedStateUpdates (required). /// type (required) (default to LedgerTransactionType.Flash). /// The hex-encoded full ledger transaction payload. Only returned if enabled in TransactionFormatOptions on your request.. - public FlashLedgerTransaction(FlashedStateUpdates flashedStateUpdates = default(FlashedStateUpdates), LedgerTransactionType type = LedgerTransactionType.Flash, string payloadHex = default(string)) : base(type, payloadHex) + public FlashLedgerTransaction(string name = default(string), FlashedStateUpdates flashedStateUpdates = default(FlashedStateUpdates), LedgerTransactionType type = LedgerTransactionType.Flash, string payloadHex = default(string)) : base(type, payloadHex) { + // to ensure "name" is required (not null) + if (name == null) + { + throw new ArgumentNullException("name is a required property for FlashLedgerTransaction and cannot be null"); + } + this.Name = name; // to ensure "flashedStateUpdates" is required (not null) if (flashedStateUpdates == null) { @@ -122,6 +129,13 @@ protected FlashLedgerTransaction() { } this.FlashedStateUpdates = flashedStateUpdates; } + /// + /// Human-readable identifier of the flash transaction. + /// + /// Human-readable identifier of the flash transaction. + [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)] + public string Name { get; set; } + /// /// Gets or Sets FlashedStateUpdates /// @@ -137,6 +151,7 @@ public override string ToString() StringBuilder sb = new StringBuilder(); sb.Append("class FlashLedgerTransaction {\n"); sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n"); + sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" FlashedStateUpdates: ").Append(FlashedStateUpdates).Append("\n"); sb.Append("}\n"); return sb.ToString(); @@ -173,6 +188,11 @@ public bool Equals(FlashLedgerTransaction input) return false; } return base.Equals(input) && + ( + this.Name == input.Name || + (this.Name != null && + this.Name.Equals(input.Name)) + ) && base.Equals(input) && ( this.FlashedStateUpdates == input.FlashedStateUpdates || (this.FlashedStateUpdates != null && @@ -189,6 +209,10 @@ public override int GetHashCode() unchecked // Overflow is fine, just wrap { int hashCode = base.GetHashCode(); + if (this.Name != null) + { + hashCode = (hashCode * 59) + this.Name.GetHashCode(); + } if (this.FlashedStateUpdates != null) { hashCode = (hashCode * 59) + this.FlashedStateUpdates.GetHashCode(); diff --git a/src/RadixDlt.CoreApiSdk/generated/Model/FlashLedgerTransactionAllOf.cs b/src/RadixDlt.CoreApiSdk/generated/Model/FlashLedgerTransactionAllOf.cs index d6a828da7..56154c41d 100644 --- a/src/RadixDlt.CoreApiSdk/generated/Model/FlashLedgerTransactionAllOf.cs +++ b/src/RadixDlt.CoreApiSdk/generated/Model/FlashLedgerTransactionAllOf.cs @@ -103,9 +103,16 @@ protected FlashLedgerTransactionAllOf() { } /// /// Initializes a new instance of the class. /// + /// Human-readable identifier of the flash transaction. (required). /// flashedStateUpdates (required). - public FlashLedgerTransactionAllOf(FlashedStateUpdates flashedStateUpdates = default(FlashedStateUpdates)) + public FlashLedgerTransactionAllOf(string name = default(string), FlashedStateUpdates flashedStateUpdates = default(FlashedStateUpdates)) { + // to ensure "name" is required (not null) + if (name == null) + { + throw new ArgumentNullException("name is a required property for FlashLedgerTransactionAllOf and cannot be null"); + } + this.Name = name; // to ensure "flashedStateUpdates" is required (not null) if (flashedStateUpdates == null) { @@ -114,6 +121,13 @@ protected FlashLedgerTransactionAllOf() { } this.FlashedStateUpdates = flashedStateUpdates; } + /// + /// Human-readable identifier of the flash transaction. + /// + /// Human-readable identifier of the flash transaction. + [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)] + public string Name { get; set; } + /// /// Gets or Sets FlashedStateUpdates /// @@ -128,6 +142,7 @@ public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append("class FlashLedgerTransactionAllOf {\n"); + sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" FlashedStateUpdates: ").Append(FlashedStateUpdates).Append("\n"); sb.Append("}\n"); return sb.ToString(); @@ -164,6 +179,11 @@ public bool Equals(FlashLedgerTransactionAllOf input) return false; } return + ( + this.Name == input.Name || + (this.Name != null && + this.Name.Equals(input.Name)) + ) && ( this.FlashedStateUpdates == input.FlashedStateUpdates || (this.FlashedStateUpdates != null && @@ -180,6 +200,10 @@ public override int GetHashCode() unchecked // Overflow is fine, just wrap { int hashCode = 41; + if (this.Name != null) + { + hashCode = (hashCode * 59) + this.Name.GetHashCode(); + } if (this.FlashedStateUpdates != null) { hashCode = (hashCode * 59) + this.FlashedStateUpdates.GetHashCode(); diff --git a/src/RadixDlt.CoreApiSdk/generated/Model/LtsCommittedTransactionOutcome.cs b/src/RadixDlt.CoreApiSdk/generated/Model/LtsCommittedTransactionOutcome.cs index 3ada3c222..a3c4b28f9 100644 --- a/src/RadixDlt.CoreApiSdk/generated/Model/LtsCommittedTransactionOutcome.cs +++ b/src/RadixDlt.CoreApiSdk/generated/Model/LtsCommittedTransactionOutcome.cs @@ -117,7 +117,7 @@ protected LtsCommittedTransactionOutcome() { } /// A list of all fungible balance updates which occurred in this transaction, aggregated by the global entity (such as account) which owns the vaults which were updated. (required). /// Non fungible changes per entity and resource (required). /// A list of the resultant fungible account balances for any balances which changed in this transaction. Only balances for accounts are returned, not any other kind of entity. (required). - /// The string-encoded decimal representing the total amount of XRD payed as fee (execution, validator tip and royalties). A decimal is formed of some signed integer `m` of attos (`10^(-18)`) units, where `-2^(192 - 1) <= m < 2^(192 - 1)`. (required). + /// The string-encoded decimal representing the total amount of XRD paid as fee (execution, validator tip and royalties). A decimal is formed of some signed integer `m` of attos (`10^(-18)`) units, where `-2^(192 - 1) <= m < 2^(192 - 1)`. (required). public LtsCommittedTransactionOutcome(long stateVersion = default(long), long proposerTimestampMs = default(long), string accumulatorHash = default(string), TransactionIdentifiers userTransactionIdentifiers = default(TransactionIdentifiers), LtsCommittedTransactionStatus status = default(LtsCommittedTransactionStatus), List fungibleEntityBalanceChanges = default(List), List nonFungibleEntityBalanceChanges = default(List), List resultantAccountFungibleBalances = default(List), string totalFee = default(string)) { this.StateVersion = stateVersion; @@ -204,9 +204,9 @@ protected LtsCommittedTransactionOutcome() { } public List ResultantAccountFungibleBalances { get; set; } /// - /// The string-encoded decimal representing the total amount of XRD payed as fee (execution, validator tip and royalties). A decimal is formed of some signed integer `m` of attos (`10^(-18)`) units, where `-2^(192 - 1) <= m < 2^(192 - 1)`. + /// The string-encoded decimal representing the total amount of XRD paid as fee (execution, validator tip and royalties). A decimal is formed of some signed integer `m` of attos (`10^(-18)`) units, where `-2^(192 - 1) <= m < 2^(192 - 1)`. /// - /// The string-encoded decimal representing the total amount of XRD payed as fee (execution, validator tip and royalties). A decimal is formed of some signed integer `m` of attos (`10^(-18)`) units, where `-2^(192 - 1) <= m < 2^(192 - 1)`. + /// The string-encoded decimal representing the total amount of XRD paid as fee (execution, validator tip and royalties). A decimal is formed of some signed integer `m` of attos (`10^(-18)`) units, where `-2^(192 - 1) <= m < 2^(192 - 1)`. [DataMember(Name = "total_fee", IsRequired = true, EmitDefaultValue = true)] public string TotalFee { get; set; } diff --git a/src/RadixDlt.CoreApiSdk/generated/Model/NetworkConfigurationResponseWellKnownAddresses.cs b/src/RadixDlt.CoreApiSdk/generated/Model/NetworkConfigurationResponseWellKnownAddresses.cs index 0e1535071..3d2c90417 100644 --- a/src/RadixDlt.CoreApiSdk/generated/Model/NetworkConfigurationResponseWellKnownAddresses.cs +++ b/src/RadixDlt.CoreApiSdk/generated/Model/NetworkConfigurationResponseWellKnownAddresses.cs @@ -129,7 +129,8 @@ protected NetworkConfigurationResponseWellKnownAddresses() { } /// consensusManager (required). /// genesisHelper (required). /// faucet (required). - public NetworkConfigurationResponseWellKnownAddresses(string xrd = default(string), string secp256k1SignatureVirtualBadge = default(string), string ed25519SignatureVirtualBadge = default(string), string packageOfDirectCallerVirtualBadge = default(string), string globalCallerVirtualBadge = default(string), string systemTransactionBadge = default(string), string packageOwnerBadge = default(string), string validatorOwnerBadge = default(string), string accountOwnerBadge = default(string), string identityOwnerBadge = default(string), string packagePackage = default(string), string resourcePackage = default(string), string accountPackage = default(string), string identityPackage = default(string), string consensusManagerPackage = default(string), string accessControllerPackage = default(string), string transactionProcessorPackage = default(string), string metadataModulePackage = default(string), string royaltyModulePackage = default(string), string roleAssignmentModulePackage = default(string), string genesisHelperPackage = default(string), string faucetPackage = default(string), string poolPackage = default(string), string consensusManager = default(string), string genesisHelper = default(string), string faucet = default(string)) + /// transactionTracker (required). + public NetworkConfigurationResponseWellKnownAddresses(string xrd = default(string), string secp256k1SignatureVirtualBadge = default(string), string ed25519SignatureVirtualBadge = default(string), string packageOfDirectCallerVirtualBadge = default(string), string globalCallerVirtualBadge = default(string), string systemTransactionBadge = default(string), string packageOwnerBadge = default(string), string validatorOwnerBadge = default(string), string accountOwnerBadge = default(string), string identityOwnerBadge = default(string), string packagePackage = default(string), string resourcePackage = default(string), string accountPackage = default(string), string identityPackage = default(string), string consensusManagerPackage = default(string), string accessControllerPackage = default(string), string transactionProcessorPackage = default(string), string metadataModulePackage = default(string), string royaltyModulePackage = default(string), string roleAssignmentModulePackage = default(string), string genesisHelperPackage = default(string), string faucetPackage = default(string), string poolPackage = default(string), string consensusManager = default(string), string genesisHelper = default(string), string faucet = default(string), string transactionTracker = default(string)) { // to ensure "xrd" is required (not null) if (xrd == null) @@ -287,6 +288,12 @@ protected NetworkConfigurationResponseWellKnownAddresses() { } throw new ArgumentNullException("faucet is a required property for NetworkConfigurationResponseWellKnownAddresses and cannot be null"); } this.Faucet = faucet; + // to ensure "transactionTracker" is required (not null) + if (transactionTracker == null) + { + throw new ArgumentNullException("transactionTracker is a required property for NetworkConfigurationResponseWellKnownAddresses and cannot be null"); + } + this.TransactionTracker = transactionTracker; } /// @@ -445,6 +452,12 @@ protected NetworkConfigurationResponseWellKnownAddresses() { } [DataMember(Name = "faucet", IsRequired = true, EmitDefaultValue = true)] public string Faucet { get; set; } + /// + /// Gets or Sets TransactionTracker + /// + [DataMember(Name = "transaction_tracker", IsRequired = true, EmitDefaultValue = true)] + public string TransactionTracker { get; set; } + /// /// Returns the string presentation of the object /// @@ -479,6 +492,7 @@ public override string ToString() sb.Append(" ConsensusManager: ").Append(ConsensusManager).Append("\n"); sb.Append(" GenesisHelper: ").Append(GenesisHelper).Append("\n"); sb.Append(" Faucet: ").Append(Faucet).Append("\n"); + sb.Append(" TransactionTracker: ").Append(TransactionTracker).Append("\n"); sb.Append("}\n"); return sb.ToString(); } @@ -643,6 +657,11 @@ public bool Equals(NetworkConfigurationResponseWellKnownAddresses input) this.Faucet == input.Faucet || (this.Faucet != null && this.Faucet.Equals(input.Faucet)) + ) && + ( + this.TransactionTracker == input.TransactionTracker || + (this.TransactionTracker != null && + this.TransactionTracker.Equals(input.TransactionTracker)) ); } @@ -759,6 +778,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.Faucet.GetHashCode(); } + if (this.TransactionTracker != null) + { + hashCode = (hashCode * 59) + this.TransactionTracker.GetHashCode(); + } return hashCode; } } diff --git a/src/RadixDlt.NetworkGateway.Abstractions/Addressing/Records.cs b/src/RadixDlt.NetworkGateway.Abstractions/Addressing/Records.cs index 18f685a8e..39be02863 100644 --- a/src/RadixDlt.NetworkGateway.Abstractions/Addressing/Records.cs +++ b/src/RadixDlt.NetworkGateway.Abstractions/Addressing/Records.cs @@ -110,7 +110,8 @@ public sealed record WellKnownAddresses( string ConsensusManager, string GenesisHelper, string Faucet, - string PoolPackage + string PoolPackage, + string TransactionTracker ); public enum AddressEntityType diff --git a/src/RadixDlt.NetworkGateway.GatewayApi/gateway-api-schema.yaml b/src/RadixDlt.NetworkGateway.GatewayApi/gateway-api-schema.yaml index 6ec729a9d..52eccdeb5 100644 --- a/src/RadixDlt.NetworkGateway.GatewayApi/gateway-api-schema.yaml +++ b/src/RadixDlt.NetworkGateway.GatewayApi/gateway-api-schema.yaml @@ -1177,7 +1177,7 @@ paths: /state/entity/page/fungibles/: post: operationId: EntityFungiblesPage - summary: Get Entity Fungible Resource Totals Page aggregated globally + summary: Get page of Global Entity Fungible Resource Balances description: | Returns the total amount of each fungible resource owned by a given global entity. Result can be aggregated globally or per vault. @@ -1203,7 +1203,7 @@ paths: /state/entity/page/fungible-vaults/: post: operationId: EntityFungibleResourceVaultPage - summary: Get vault page of Entity Fungible resource aggregated per vault + summary: Get page of Global Entity Fungible Resource Vaults description: | Returns vaults for fungible resource owned by a given global entity. The returned response is in a paginated format, ordered by the resource's first appearance on the ledger. @@ -1228,7 +1228,7 @@ paths: /state/entity/page/non-fungibles/: post: operationId: EntityNonFungiblesPage - summary: Get Entity Non-Fungible Resource Totals Page aggregated globally + summary: Get page of Global Entity Non-Fungible Resource Balances description: | Returns the total amount of each non-fungible resource owned by a given global entity. Result can be aggregated globally or per vault. @@ -1254,7 +1254,7 @@ paths: /state/entity/page/non-fungible-vaults/: post: operationId: EntityNonFungibleResourceVaultPage - summary: Get vault page of Entity Non Fungible aggregated per vault + summary: Get page of Global Entity Non-Fungible Resource Vaults description: | Returns vaults for non fungible resource owned by a given global entity. The returned response is in a paginated format, ordered by the resource's first appearance on the ledger. @@ -1279,7 +1279,7 @@ paths: /state/entity/page/non-fungible-vault/ids: post: operationId: EntityNonFungibleIdsPage - summary: Get Entity Non-Fungible IDs + summary: Get page of Non-Fungibles in Vault description: | Returns all non-fungible IDs of a given non-fungible resource owned by a given entity. The returned response is in a paginated format, ordered by the resource's first appearence on the ledger. @@ -1304,7 +1304,7 @@ paths: /state/non-fungible/ids: post: operationId: NonFungibleIds - summary: Get Non-Fungible Collection + summary: Get page of Non-Fungible Ids in Resource Collection description: | Returns the non-fungible IDs of a given non-fungible resource. Returned response is in a paginated format, ordered by their first appearance on the ledger. @@ -2360,6 +2360,7 @@ components: - genesis_helper - faucet - pool_package + - transaction_tracker properties: xrd: $ref: "#/components/schemas/Address" @@ -2413,6 +2414,8 @@ components: $ref: "#/components/schemas/Address" pool_package: $ref: "#/components/schemas/Address" + transaction_tracker: + $ref: "#/components/schemas/Address" GatewayStatusResponse: allOf: diff --git a/src/RadixDlt.NetworkGateway.GatewayApiSdk/generated/Model/NetworkConfigurationResponseWellKnownAddresses.cs b/src/RadixDlt.NetworkGateway.GatewayApiSdk/generated/Model/NetworkConfigurationResponseWellKnownAddresses.cs index 68d2e69f1..6d64bc4e6 100644 --- a/src/RadixDlt.NetworkGateway.GatewayApiSdk/generated/Model/NetworkConfigurationResponseWellKnownAddresses.cs +++ b/src/RadixDlt.NetworkGateway.GatewayApiSdk/generated/Model/NetworkConfigurationResponseWellKnownAddresses.cs @@ -129,7 +129,8 @@ protected NetworkConfigurationResponseWellKnownAddresses() { } /// Bech32m-encoded human readable version of the address. (required). /// Bech32m-encoded human readable version of the address. (required). /// Bech32m-encoded human readable version of the address. (required). - public NetworkConfigurationResponseWellKnownAddresses(string xrd = default(string), string secp256k1SignatureVirtualBadge = default(string), string ed25519SignatureVirtualBadge = default(string), string packageOfDirectCallerVirtualBadge = default(string), string globalCallerVirtualBadge = default(string), string systemTransactionBadge = default(string), string packageOwnerBadge = default(string), string validatorOwnerBadge = default(string), string accountOwnerBadge = default(string), string identityOwnerBadge = default(string), string packagePackage = default(string), string resourcePackage = default(string), string accountPackage = default(string), string identityPackage = default(string), string consensusManagerPackage = default(string), string accessControllerPackage = default(string), string transactionProcessorPackage = default(string), string metadataModulePackage = default(string), string royaltyModulePackage = default(string), string accessRulesPackage = default(string), string genesisHelperPackage = default(string), string faucetPackage = default(string), string consensusManager = default(string), string genesisHelper = default(string), string faucet = default(string), string poolPackage = default(string)) + /// Bech32m-encoded human readable version of the address. (required). + public NetworkConfigurationResponseWellKnownAddresses(string xrd = default(string), string secp256k1SignatureVirtualBadge = default(string), string ed25519SignatureVirtualBadge = default(string), string packageOfDirectCallerVirtualBadge = default(string), string globalCallerVirtualBadge = default(string), string systemTransactionBadge = default(string), string packageOwnerBadge = default(string), string validatorOwnerBadge = default(string), string accountOwnerBadge = default(string), string identityOwnerBadge = default(string), string packagePackage = default(string), string resourcePackage = default(string), string accountPackage = default(string), string identityPackage = default(string), string consensusManagerPackage = default(string), string accessControllerPackage = default(string), string transactionProcessorPackage = default(string), string metadataModulePackage = default(string), string royaltyModulePackage = default(string), string accessRulesPackage = default(string), string genesisHelperPackage = default(string), string faucetPackage = default(string), string consensusManager = default(string), string genesisHelper = default(string), string faucet = default(string), string poolPackage = default(string), string transactionTracker = default(string)) { // to ensure "xrd" is required (not null) if (xrd == null) @@ -287,6 +288,12 @@ protected NetworkConfigurationResponseWellKnownAddresses() { } throw new ArgumentNullException("poolPackage is a required property for NetworkConfigurationResponseWellKnownAddresses and cannot be null"); } this.PoolPackage = poolPackage; + // to ensure "transactionTracker" is required (not null) + if (transactionTracker == null) + { + throw new ArgumentNullException("transactionTracker is a required property for NetworkConfigurationResponseWellKnownAddresses and cannot be null"); + } + this.TransactionTracker = transactionTracker; } /// @@ -471,6 +478,13 @@ protected NetworkConfigurationResponseWellKnownAddresses() { } [DataMember(Name = "pool_package", IsRequired = true, EmitDefaultValue = true)] public string PoolPackage { get; set; } + /// + /// Bech32m-encoded human readable version of the address. + /// + /// Bech32m-encoded human readable version of the address. + [DataMember(Name = "transaction_tracker", IsRequired = true, EmitDefaultValue = true)] + public string TransactionTracker { get; set; } + /// /// Returns the string presentation of the object /// @@ -505,6 +519,7 @@ public override string ToString() sb.Append(" GenesisHelper: ").Append(GenesisHelper).Append("\n"); sb.Append(" Faucet: ").Append(Faucet).Append("\n"); sb.Append(" PoolPackage: ").Append(PoolPackage).Append("\n"); + sb.Append(" TransactionTracker: ").Append(TransactionTracker).Append("\n"); sb.Append("}\n"); return sb.ToString(); } @@ -669,6 +684,11 @@ public bool Equals(NetworkConfigurationResponseWellKnownAddresses input) this.PoolPackage == input.PoolPackage || (this.PoolPackage != null && this.PoolPackage.Equals(input.PoolPackage)) + ) && + ( + this.TransactionTracker == input.TransactionTracker || + (this.TransactionTracker != null && + this.TransactionTracker.Equals(input.TransactionTracker)) ); } @@ -785,6 +805,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.PoolPackage.GetHashCode(); } + if (this.TransactionTracker != null) + { + hashCode = (hashCode * 59) + this.TransactionTracker.GetHashCode(); + } return hashCode; } } diff --git a/src/RadixDlt.NetworkGateway.PostgresIntegration/Migrations/20240119095226_SupportProtocolUpdate.cs b/src/RadixDlt.NetworkGateway.PostgresIntegration/Migrations/20240119095226_SupportProtocolUpdate.cs index a0cd37ab0..58a0a2421 100644 --- a/src/RadixDlt.NetworkGateway.PostgresIntegration/Migrations/20240119095226_SupportProtocolUpdate.cs +++ b/src/RadixDlt.NetworkGateway.PostgresIntegration/Migrations/20240119095226_SupportProtocolUpdate.cs @@ -77,6 +77,10 @@ public partial class SupportProtocolUpdate : Migration /// protected override void Up(MigrationBuilder migrationBuilder) { + // Add transaction_trakcer to well known addresses. + migrationBuilder.Sql(@"UPDATE network_configuration SET well_known_addresses = well_known_addresses || '{""TransactionTracker"": ""transactiontracker_tdx_2_1stxxxxxxxxxxtxtrakxxxxxxxxx006844685494xxxxxxxxxxzw7jp""}'::jsonb WHERE network_name = 'stokenet'"); + migrationBuilder.Sql(@"UPDATE network_configuration SET well_known_addresses = well_known_addresses || '{""TransactionTracker"": ""transactiontracker_rdx1stxxxxxxxxxxtxtrakxxxxxxxxx006844685494xxxxxxxxxtxtrak""}'::jsonb WHERE network_name = 'mainnet'"); + // Support flash transaction type. migrationBuilder.AlterDatabase() .Annotation("Npgsql:Enum:ledger_transaction_type", "genesis,user,round_update,flash") diff --git a/src/RadixDlt.NetworkGateway.PostgresIntegration/Services/NetworkConfigurationProvider.cs b/src/RadixDlt.NetworkGateway.PostgresIntegration/Services/NetworkConfigurationProvider.cs index 747e7b2fa..0083543ca 100644 --- a/src/RadixDlt.NetworkGateway.PostgresIntegration/Services/NetworkConfigurationProvider.cs +++ b/src/RadixDlt.NetworkGateway.PostgresIntegration/Services/NetworkConfigurationProvider.cs @@ -246,7 +246,8 @@ private static NetworkConfiguration Map(CoreModel.NetworkConfigurationResponse n ConsensusManager: wka.ConsensusManager, GenesisHelper: wka.GenesisHelper, Faucet: wka.Faucet, - PoolPackage: wka.PoolPackage + PoolPackage: wka.PoolPackage, + TransactionTracker: wka.TransactionTracker ), AddressTypeDefinitions = at, GenesisEpoch = networkStatus.GenesisEpochRound.Epoch,