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,