diff --git a/Runtime/CareBoo.AlgoSdk/Blockchain/BlockHeader.cs b/Runtime/CareBoo.AlgoSdk/Blockchain/BlockHeader.cs
index 5dae2fa65..b9aa713da 100644
--- a/Runtime/CareBoo.AlgoSdk/Blockchain/BlockHeader.cs
+++ b/Runtime/CareBoo.AlgoSdk/Blockchain/BlockHeader.cs
@@ -100,6 +100,13 @@ public partial struct BlockHeader
[AlgoApiField("cc")]
public AlgoApiObject Cc;
+ ///
+ /// StateProofTracking tracks the status of the state proofs, potentially
+ /// for multiple types of ASPs (Algorand's State Proofs).
+ ///
+ [AlgoApiField("spt")]
+ public StateProofTrackingDataMap StateProofTracking;
+
///
[AlgoApiField("fees")]
public Address FeeSink
diff --git a/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs.meta b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs.meta
new file mode 100644
index 000000000..a7d6dcc18
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 804c3c38579324b93ab6fbe0658babe4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingData.cs b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingData.cs
new file mode 100644
index 000000000..420e1e79b
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingData.cs
@@ -0,0 +1,92 @@
+using System;
+using UnityEngine;
+
+namespace AlgoSdk
+{
+ public interface IStateProofTrackingData
+ {
+ ///
+ /// StateProofVotersCommitment is the root of a vector commitment containing the
+ /// online accounts that will help sign a state proof. The
+ /// VC root, and the state proof, happen on blocks that
+ /// are a multiple of ConsensusParams.StateProofRounds. For blocks
+ /// that are not a multiple of ConsensusParams.StateProofRounds,
+ /// this value is zero.
+ ///
+ byte[] StateProofVotersCommitment { get; set; }
+
+ ///
+ /// StateProofOnlineTotalWeight is the total number of microalgos held by the online accounts
+ /// during the StateProof round (or zero, if the merkle root is zero - no commitment for StateProof voters).
+ /// This is intended for computing the threshold of votes to expect from StateProofVotersCommitment.
+ ///
+ MicroAlgos StateProofOnlineTotalWeight { get; set; }
+
+ ///
+ /// StateProofNextRound is the next round for which we will accept
+ /// a StateProof transaction.
+ ///
+ ulong StateProofNextRound { get; set; }
+ }
+
+ ///
+ /// StateProofTrackingData tracks the status of state proofs.
+ ///
+ [AlgoApiObject]
+ [Serializable]
+ public partial struct StateProofTrackingData
+ : IStateProofTrackingData
+ , IEquatable
+ {
+ [SerializeField]
+ [Tooltip("StateProofVotersCommitment is the root of a vector commitment containing the " +
+ "online accounts that will help sign a state proof. The " +
+ "VC root, and the state proof, happen on blocks that " +
+ "are a multiple of ConsensusParams.StateProofRounds. For blocks " +
+ "that are not a multiple of ConsensusParams.StateProofRounds, " +
+ "this value is zero.")]
+ private byte[] stateProofVotersCommitment;
+
+ [SerializeField]
+ [Tooltip("StateProofOnlineTotalWeight is the total number of microalgos held by the online accounts " +
+ "during the StateProof round (or zero, if the merkle root is zero - no commitment for StateProof voters). " +
+ "This is intended for computing the threshold of votes to expect from StateProofVotersCommitment.")]
+ private MicroAlgos stateProofOnlineTotalWeight;
+
+ [SerializeField]
+ [Tooltip("StateProofNextRound is the next round for which we will accept a StateProof transaction.")]
+ private ulong stateProofNextRound;
+
+ ///
+ [AlgoApiField("v")]
+ public byte[] StateProofVotersCommitment
+ {
+ get => stateProofVotersCommitment;
+ set => stateProofVotersCommitment = value;
+ }
+
+ ///
+ [AlgoApiField("t")]
+ public MicroAlgos StateProofOnlineTotalWeight
+ {
+ get => stateProofOnlineTotalWeight;
+ set => stateProofOnlineTotalWeight = value;
+ }
+
+ ///
+ [AlgoApiField("n")]
+ public ulong StateProofNextRound
+ {
+ get => stateProofNextRound;
+ set => stateProofNextRound = value;
+ }
+
+ public bool Equals(StateProofTrackingData other)
+ {
+ return ArrayComparer.Equals(StateProofVotersCommitment, other.StateProofVotersCommitment)
+ && StateProofOnlineTotalWeight.Equals(other.StateProofOnlineTotalWeight)
+ && StateProofNextRound.Equals(other.StateProofNextRound)
+ ;
+ }
+ }
+}
diff --git a/Runtime/CareBoo.AlgoSdk/Formatters.gen/Multisig.Formatters.gen.cs.meta b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingData.cs.meta
similarity index 83%
rename from Runtime/CareBoo.AlgoSdk/Formatters.gen/Multisig.Formatters.gen.cs.meta
rename to Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingData.cs.meta
index 0f2d86ad0..7ec337da7 100644
--- a/Runtime/CareBoo.AlgoSdk/Formatters.gen/Multisig.Formatters.gen.cs.meta
+++ b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingData.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 783169bb059f94d42a467bacd0cd7fa1
+guid: f17d52c7539ad450097610b5a9701856
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingDataMap.cs b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingDataMap.cs
new file mode 100644
index 000000000..1c8e54e6d
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingDataMap.cs
@@ -0,0 +1,43 @@
+using System;
+
+namespace AlgoSdk
+{
+ [AlgoApiObject]
+ [Serializable]
+ public partial struct StateProofTrackingDataMap
+ : IEquatable
+ {
+ [AlgoApiField("0")]
+ public StateProofTrackingData StateProofBasicData;
+
+ public StateProofTrackingData this[StateProofType type]
+ {
+ get
+ {
+ switch (type)
+ {
+ case StateProofType.StateProofBasic:
+ return StateProofBasicData;
+ default:
+ throw new System.NotSupportedException(type.ToString());
+ }
+ }
+ set
+ {
+ switch (type)
+ {
+ case StateProofType.StateProofBasic:
+ StateProofBasicData = value;
+ break;
+ default:
+ throw new System.NotSupportedException(type.ToString());
+ }
+ }
+ }
+
+ public bool Equals(StateProofTrackingDataMap other)
+ {
+ return StateProofBasicData.Equals(other.StateProofBasicData);
+ }
+ }
+}
diff --git a/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingDataMap.cs.meta b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingDataMap.cs.meta
new file mode 100644
index 000000000..3704491e2
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofTrackingDataMap.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7de6eb47f02e742e194800645b1c7790
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofType.cs b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofType.cs
new file mode 100644
index 000000000..2bb23dd30
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofType.cs
@@ -0,0 +1,8 @@
+namespace AlgoSdk
+{
+ public enum StateProofType : byte
+ {
+ StateProofBasic = 0,
+ NumStateProofTypes = 1,
+ }
+}
diff --git a/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofType.cs.meta b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofType.cs.meta
new file mode 100644
index 000000000..365d59496
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Blockchain/StateProofs/StateProofType.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c2cbc441175524bc9b3002ba2c6bd423
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/CareBoo.AlgoSdk/Formatters.gen/BlockHeader.Formatters.gen.cs b/Runtime/CareBoo.AlgoSdk/Formatters.gen/BlockHeader.Formatters.gen.cs
index 7703a663e..6bdc344ff 100644
--- a/Runtime/CareBoo.AlgoSdk/Formatters.gen/BlockHeader.Formatters.gen.cs
+++ b/Runtime/CareBoo.AlgoSdk/Formatters.gen/BlockHeader.Formatters.gen.cs
@@ -19,7 +19,7 @@ public partial struct BlockHeader
private static bool @__generated__InitializeAlgoApiFormatters()
{
- AlgoSdk.AlgoApiFormatterLookup.Add(new AlgoSdk.AlgoApiObjectFormatter(false).Assign("gh", (AlgoSdk.BlockHeader x) => x.GenesisHash, (ref AlgoSdk.BlockHeader x, AlgoSdk.GenesisHash value) => x.GenesisHash = value).Assign("gen", (AlgoSdk.BlockHeader x) => x.GenesisId, (ref AlgoSdk.BlockHeader x, Unity.Collections.FixedString64Bytes value) => x.GenesisId = value).Assign("prev", (AlgoSdk.BlockHeader x) => x.PreviousBlockHash, (ref AlgoSdk.BlockHeader x, AlgoSdk.BlockHash value) => x.PreviousBlockHash = value).Assign("rewards", (AlgoSdk.BlockHeader x) => x.Rewards, (ref AlgoSdk.BlockHeader x, AlgoSdk.BlockRewards value) => x.Rewards = value).Assign("rnd", (AlgoSdk.BlockHeader x) => x.Round, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.Round = value).Assign("seed", (AlgoSdk.BlockHeader x) => x.Seed, (ref AlgoSdk.BlockHeader x, AlgoSdk.Crypto.Sha512_256_Hash value) => x.Seed = value).Assign("ts", (AlgoSdk.BlockHeader x) => x.Timestamp, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.Timestamp = value).Assign("txns", (AlgoSdk.BlockHeader x) => x.Transactions, (ref AlgoSdk.BlockHeader x, AlgoSdk.BlockTransaction[] value) => x.Transactions = value, AlgoSdk.ArrayComparer.Instance).Assign("tc", (AlgoSdk.BlockHeader x) => x.TransactionCounter, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.TransactionCounter = value).Assign("upgrade-state", (AlgoSdk.BlockHeader x) => x.UpgradeState, (ref AlgoSdk.BlockHeader x, AlgoSdk.BlockUpgradeState value) => x.UpgradeState = value).Assign("upgrade-vote", (AlgoSdk.BlockHeader x) => x.UpgradeVote, (ref AlgoSdk.BlockHeader x, AlgoSdk.BlockUpgradeVote value) => x.UpgradeVote = value).Assign("cc", (AlgoSdk.BlockHeader x) => x.Cc, (ref AlgoSdk.BlockHeader x, AlgoSdk.AlgoApiObject value) => x.Cc = value).Assign("fees", (AlgoSdk.BlockHeader x) => x.FeeSink, (ref AlgoSdk.BlockHeader x, AlgoSdk.Address value) => x.FeeSink = value).Assign("rwcalr", (AlgoSdk.BlockHeader x) => x.RewardsCalculationRound, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.RewardsCalculationRound = value).Assign("earn", (AlgoSdk.BlockHeader x) => x.RewardsLevel, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.RewardsLevel = value).Assign("rwd", (AlgoSdk.BlockHeader x) => x.RewardsPool, (ref AlgoSdk.BlockHeader x, AlgoSdk.Address value) => x.RewardsPool = value).Assign("rate", (AlgoSdk.BlockHeader x) => x.RewardsRate, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.RewardsRate = value).Assign("frac", (AlgoSdk.BlockHeader x) => x.RewardsResidue, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.RewardsResidue = value).Assign("proto", (AlgoSdk.BlockHeader x) => x.CurrentProtocol, (ref AlgoSdk.BlockHeader x, Unity.Collections.FixedString128Bytes value) => x.CurrentProtocol = value).Assign("nextproto", (AlgoSdk.BlockHeader x) => x.NextProtocol, (ref AlgoSdk.BlockHeader x, Unity.Collections.FixedString128Bytes value) => x.NextProtocol = value).Assign("nextyes", (AlgoSdk.BlockHeader x) => x.NextProtocolApprovals, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.NextProtocolApprovals = value).Assign("nextswitch", (AlgoSdk.BlockHeader x) => x.NextProtocolSwitchOn, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.NextProtocolSwitchOn = value).Assign("nextbefore", (AlgoSdk.BlockHeader x) => x.NextProtocolVoteBefore, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.NextProtocolVoteBefore = value).Assign("upgradeyes", (AlgoSdk.BlockHeader x) => x.UpgradeApprove, (ref AlgoSdk.BlockHeader x, AlgoSdk.Optional value) => x.UpgradeApprove = value).Assign("upgradedelay", (AlgoSdk.BlockHeader x) => x.UpgradeDelay, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.UpgradeDelay = value).Assign("upgradeprop", (AlgoSdk.BlockHeader x) => x.UpgradePropose, (ref AlgoSdk.BlockHeader x, AlgoSdk.Address value) => x.UpgradePropose = value).Assign("txn", (AlgoSdk.BlockHeader x) => x.NativeSha512_256Commitment, (ref AlgoSdk.BlockHeader x, AlgoSdk.Digest value) => x.NativeSha512_256Commitment = value).Assign("txn256", (AlgoSdk.BlockHeader x) => x.Sha256Commitment, (ref AlgoSdk.BlockHeader x, AlgoSdk.Digest value) => x.Sha256Commitment = value));
+ AlgoSdk.AlgoApiFormatterLookup.Add(new AlgoSdk.AlgoApiObjectFormatter(false).Assign("gh", (AlgoSdk.BlockHeader x) => x.GenesisHash, (ref AlgoSdk.BlockHeader x, AlgoSdk.GenesisHash value) => x.GenesisHash = value).Assign("gen", (AlgoSdk.BlockHeader x) => x.GenesisId, (ref AlgoSdk.BlockHeader x, Unity.Collections.FixedString64Bytes value) => x.GenesisId = value).Assign("prev", (AlgoSdk.BlockHeader x) => x.PreviousBlockHash, (ref AlgoSdk.BlockHeader x, AlgoSdk.BlockHash value) => x.PreviousBlockHash = value).Assign("rewards", (AlgoSdk.BlockHeader x) => x.Rewards, (ref AlgoSdk.BlockHeader x, AlgoSdk.BlockRewards value) => x.Rewards = value).Assign("rnd", (AlgoSdk.BlockHeader x) => x.Round, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.Round = value).Assign("seed", (AlgoSdk.BlockHeader x) => x.Seed, (ref AlgoSdk.BlockHeader x, AlgoSdk.Crypto.Sha512_256_Hash value) => x.Seed = value).Assign("ts", (AlgoSdk.BlockHeader x) => x.Timestamp, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.Timestamp = value).Assign("txns", (AlgoSdk.BlockHeader x) => x.Transactions, (ref AlgoSdk.BlockHeader x, AlgoSdk.BlockTransaction[] value) => x.Transactions = value, AlgoSdk.ArrayComparer.Instance).Assign("tc", (AlgoSdk.BlockHeader x) => x.TransactionCounter, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.TransactionCounter = value).Assign("upgrade-state", (AlgoSdk.BlockHeader x) => x.UpgradeState, (ref AlgoSdk.BlockHeader x, AlgoSdk.BlockUpgradeState value) => x.UpgradeState = value).Assign("upgrade-vote", (AlgoSdk.BlockHeader x) => x.UpgradeVote, (ref AlgoSdk.BlockHeader x, AlgoSdk.BlockUpgradeVote value) => x.UpgradeVote = value).Assign("cc", (AlgoSdk.BlockHeader x) => x.Cc, (ref AlgoSdk.BlockHeader x, AlgoSdk.AlgoApiObject value) => x.Cc = value).Assign("spt", (AlgoSdk.BlockHeader x) => x.StateProofTracking, (ref AlgoSdk.BlockHeader x, AlgoSdk.StateProofTrackingDataMap value) => x.StateProofTracking = value).Assign("fees", (AlgoSdk.BlockHeader x) => x.FeeSink, (ref AlgoSdk.BlockHeader x, AlgoSdk.Address value) => x.FeeSink = value).Assign("rwcalr", (AlgoSdk.BlockHeader x) => x.RewardsCalculationRound, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.RewardsCalculationRound = value).Assign("earn", (AlgoSdk.BlockHeader x) => x.RewardsLevel, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.RewardsLevel = value).Assign("rwd", (AlgoSdk.BlockHeader x) => x.RewardsPool, (ref AlgoSdk.BlockHeader x, AlgoSdk.Address value) => x.RewardsPool = value).Assign("rate", (AlgoSdk.BlockHeader x) => x.RewardsRate, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.RewardsRate = value).Assign("frac", (AlgoSdk.BlockHeader x) => x.RewardsResidue, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.RewardsResidue = value).Assign("proto", (AlgoSdk.BlockHeader x) => x.CurrentProtocol, (ref AlgoSdk.BlockHeader x, Unity.Collections.FixedString128Bytes value) => x.CurrentProtocol = value).Assign("nextproto", (AlgoSdk.BlockHeader x) => x.NextProtocol, (ref AlgoSdk.BlockHeader x, Unity.Collections.FixedString128Bytes value) => x.NextProtocol = value).Assign("nextyes", (AlgoSdk.BlockHeader x) => x.NextProtocolApprovals, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.NextProtocolApprovals = value).Assign("nextswitch", (AlgoSdk.BlockHeader x) => x.NextProtocolSwitchOn, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.NextProtocolSwitchOn = value).Assign("nextbefore", (AlgoSdk.BlockHeader x) => x.NextProtocolVoteBefore, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.NextProtocolVoteBefore = value).Assign("upgradeyes", (AlgoSdk.BlockHeader x) => x.UpgradeApprove, (ref AlgoSdk.BlockHeader x, AlgoSdk.Optional value) => x.UpgradeApprove = value).Assign("upgradedelay", (AlgoSdk.BlockHeader x) => x.UpgradeDelay, (ref AlgoSdk.BlockHeader x, System.UInt64 value) => x.UpgradeDelay = value).Assign("upgradeprop", (AlgoSdk.BlockHeader x) => x.UpgradePropose, (ref AlgoSdk.BlockHeader x, AlgoSdk.Address value) => x.UpgradePropose = value).Assign("txn", (AlgoSdk.BlockHeader x) => x.NativeSha512_256Commitment, (ref AlgoSdk.BlockHeader x, AlgoSdk.Digest value) => x.NativeSha512_256Commitment = value).Assign("txn256", (AlgoSdk.BlockHeader x) => x.Sha256Commitment, (ref AlgoSdk.BlockHeader x, AlgoSdk.Digest value) => x.Sha256Commitment = value));
return true;
}
}
diff --git a/Runtime/CareBoo.AlgoSdk/Formatters.gen/Multisig.Formatters.gen.cs b/Runtime/CareBoo.AlgoSdk/Formatters.gen/MultisigSig.Formatters.gen.cs
similarity index 100%
rename from Runtime/CareBoo.AlgoSdk/Formatters.gen/Multisig.Formatters.gen.cs
rename to Runtime/CareBoo.AlgoSdk/Formatters.gen/MultisigSig.Formatters.gen.cs
diff --git a/Runtime/CareBoo.AlgoSdk/Formatters.gen/MultisigSig.Formatters.gen.cs.meta b/Runtime/CareBoo.AlgoSdk/Formatters.gen/MultisigSig.Formatters.gen.cs.meta
new file mode 100644
index 000000000..3e45a48b4
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Formatters.gen/MultisigSig.Formatters.gen.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 53f35f37454664bc39019773bf0336de
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingData.Formatters.gen.cs b/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingData.Formatters.gen.cs
new file mode 100644
index 000000000..ac49b66fa
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingData.Formatters.gen.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace AlgoSdk
+{
+
+
+ public partial struct StateProofTrackingData
+ {
+
+ private static bool @__generated__IsValid = StateProofTrackingData.@__generated__InitializeAlgoApiFormatters();
+
+ private static bool @__generated__InitializeAlgoApiFormatters()
+ {
+ AlgoSdk.AlgoApiFormatterLookup.Add(new AlgoSdk.AlgoApiObjectFormatter(false).Assign("v", (AlgoSdk.StateProofTrackingData x) => x.StateProofVotersCommitment, (ref AlgoSdk.StateProofTrackingData x, System.Byte[] value) => x.StateProofVotersCommitment = value, AlgoSdk.ArrayComparer.Instance).Assign("t", (AlgoSdk.StateProofTrackingData x) => x.StateProofOnlineTotalWeight, (ref AlgoSdk.StateProofTrackingData x, AlgoSdk.MicroAlgos value) => x.StateProofOnlineTotalWeight = value).Assign("n", (AlgoSdk.StateProofTrackingData x) => x.StateProofNextRound, (ref AlgoSdk.StateProofTrackingData x, System.UInt64 value) => x.StateProofNextRound = value));
+ return true;
+ }
+ }
+}
diff --git a/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingData.Formatters.gen.cs.meta b/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingData.Formatters.gen.cs.meta
new file mode 100644
index 000000000..74dfe6bd7
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingData.Formatters.gen.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 37f62fbd0966d436fa0e827f805b93b0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingDataMap.Formatters.gen.cs b/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingDataMap.Formatters.gen.cs
new file mode 100644
index 000000000..6ed7f0e63
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingDataMap.Formatters.gen.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace AlgoSdk
+{
+
+
+ public partial struct StateProofTrackingDataMap
+ {
+
+ private static bool @__generated__IsValid = StateProofTrackingDataMap.@__generated__InitializeAlgoApiFormatters();
+
+ private static bool @__generated__InitializeAlgoApiFormatters()
+ {
+ AlgoSdk.AlgoApiFormatterLookup.Add(new AlgoSdk.AlgoApiObjectFormatter(false).Assign("0", (AlgoSdk.StateProofTrackingDataMap x) => x.StateProofBasicData, (ref AlgoSdk.StateProofTrackingDataMap x, AlgoSdk.StateProofTrackingData value) => x.StateProofBasicData = value));
+ return true;
+ }
+ }
+}
diff --git a/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingDataMap.Formatters.gen.cs.meta b/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingDataMap.Formatters.gen.cs.meta
new file mode 100644
index 000000000..2945b293f
--- /dev/null
+++ b/Runtime/CareBoo.AlgoSdk/Formatters.gen/StateProofTrackingDataMap.Formatters.gen.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 88380a51468d84ca7858746d2121ec37
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tests/Runtime/CareBoo.AlgoSdk.IntegrationTests/DotnetSdk/UnityHttpMessageHandler.cs b/Tests/Runtime/CareBoo.AlgoSdk.IntegrationTests/DotnetSdk/UnityHttpMessageHandler.cs
index 5d30c1435..a1937038b 100644
--- a/Tests/Runtime/CareBoo.AlgoSdk.IntegrationTests/DotnetSdk/UnityHttpMessageHandler.cs
+++ b/Tests/Runtime/CareBoo.AlgoSdk.IntegrationTests/DotnetSdk/UnityHttpMessageHandler.cs
@@ -53,9 +53,10 @@ CancellationToken cancellationToken
else
responseMessage.Headers.Add(header.Key, header.Value);
}
- catch
+ catch (System.Exception ex)
{
Debug.LogError($"Issue with header: {header}");
+ Debug.LogException(ex);
throw;
}
}
@@ -65,6 +66,6 @@ CancellationToken cancellationToken
private static bool IsContentHeader(KeyValuePair header)
{
var headerKeyLower = header.Key.ToLower();
- return headerKeyLower == "content-type" || headerKeyLower == "content-Length";
+ return headerKeyLower == "content-type" || headerKeyLower == "content-length";
}
}