Skip to content

Add UInt256, serialization methods and CLR updates#365

Merged
fassadlr merged 43 commits intostratisproject:masterfrom
quantumagi:updscforuint256
Feb 3, 2021
Merged

Add UInt256, serialization methods and CLR updates#365
fassadlr merged 43 commits intostratisproject:masterfrom
quantumagi:updscforuint256

Conversation

@quantumagi
Copy link
Contributor

No description provided.

@fassadlr
Copy link
Contributor

@quantumagi the solution doesnt build :)

@quantumagi
Copy link
Contributor Author

@fassadlr , yes we're going to have to re-build some of the smart contract NuGet packages before this works.

@quantumagi quantumagi changed the title Add UInt256 serialization methods Add UInt256, serialization methods and CLR updates Jan 14, 2021
@YakupIpek
Copy link
Contributor

@quantumagi Is this ready to review ?

@quantumagi
Copy link
Contributor Author

quantumagi commented Jan 19, 2021

@YakupIpek @fassadlr , this should be good to merge once the SmartContract package references have been updated to 1.4.1-alpha (and the workaround code, mentioned above, removed):

@quantumagi quantumagi requested a review from fassadlr January 19, 2021 07:24
@quantumagi
Copy link
Contributor Author

quantumagi commented Jan 19, 2021

@YakupIpek , I got this error while syncing using CirrusD:
image

      An error occurred: 'System.AggregateException: One or more errors occurred. (Method 'get_TotalSupply' in type 'StandardToken' from assembly 'SmartContract, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.)
       ---> System.TypeLoadException: Method 'get_TotalSupply' in type 'StandardToken' from assembly 'SmartContract, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
         at System.Reflection.RuntimeAssembly.GetExportedTypes()
         at System.Reflection.Assembly.get_ExportedTypes()
         at Stratis.SmartContracts.CLR.Loader.ContractAssembly.GetDeployedType() in E:\Public\StratisFullNode-1\src\Stratis.SmartContracts.CLR\Loader\ContractAssembly.cs:line 44
         at Stratis.SmartContracts.CLR.Loader.ContractAssembly..ctor(Assembly assembly) in E:\Public\StratisFullNode-1\src\Stratis.SmartContracts.CLR\Loader\ContractAssembly.cs:line 19
         at Stratis.SmartContracts.CLR.Loader.ContractAssemblyLoader.Load(ContractByteCode bytes) in E:\Public\StratisFullNode-1\src\Stratis.SmartContracts.CLR\Loader\ContractAssemblyLoader.cs:line 26
         at Stratis.SmartContracts.CLR.ReflectionVirtualMachine.Load(ContractByteCode byteCode, String typeName, uint160 address, ISmartContractState contractState) in E:\Public\StratisFullNode-1\src\Stratis.SmartContracts.CLR\ReflectionVirtualMachine.cs:line 291
         at Stratis.SmartContracts.CLR.ReflectionVirtualMachine.ExecuteMethod(ISmartContractState contractState, ExecutionContext executionContext, MethodCall methodCall, Byte[] contractCode, String typeName) in E:\Public\StratisFullNode-1\src\Stratis.SmartContracts.CLR\ReflectionVirtualMachine.cs:line 226
         at Stratis.SmartContracts.CLR.StateProcessor.ApplyCall(IState state, CallMessage message, Byte[] contractCode, ExecutionContext executionContext) in E:\Public\StratisFullNode-1\src\Stratis.SmartContracts.CLR\StateProcessor.cs:line 113
         at Stratis.SmartContracts.CLR.StateProcessor.Apply(IState state, ExternalCallMessage message) in E:\Public\StratisFullNode-1\src\Stratis.SmartContracts.CLR\StateProcessor.cs:line 185
         at Stratis.SmartContracts.CLR.ContractExecutor.Execute(IContractTransactionContext transactionContext) in E:\Public\StratisFullNode-1\src\Stratis.SmartContracts.CLR\ContractExecutor.cs:line 85
         at Stratis.Bitcoin.Features.SmartContracts.Rules.SmartContractCoinViewRuleLogic.ExecuteContractTransaction(RuleContext context, Transaction transaction) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin.Features.SmartContracts\Rules\SmartContractCoinViewRuleLogic.cs:line 220
         at Stratis.Bitcoin.Features.SmartContracts.Rules.SmartContractCoinViewRuleLogic.UpdateCoinView(Action`2 baseUpdateUTXOSet, RuleContext context, Transaction transaction) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin.Features.SmartContracts\Rules\SmartContractCoinViewRuleLogic.cs:line 159
         at Stratis.Bitcoin.Features.SmartContracts.PoA.Rules.SmartContractPoACoinviewRule.UpdateCoinView(RuleContext context, Transaction transaction) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin.Features.SmartContracts\PoA\Rules\SmartContractPoACoinviewRule.cs:line 76
         at Stratis.Bitcoin.Features.Consensus.Rules.CommonRules.CoinViewRule.RunAsync(RuleContext context) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin.Features.Consensus\Rules\CommonRules\CoinviewRule.cs:line 105
         at Stratis.Bitcoin.Features.SmartContracts.Rules.SmartContractCoinViewRuleLogic.RunAsync(Func`2 baseRunAsync, RuleContext context) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin.Features.SmartContracts\Rules\SmartContractCoinViewRuleLogic.cs:line 105
         at Stratis.Bitcoin.Features.SmartContracts.PoA.Rules.SmartContractPoACoinviewRule.RunAsync(RuleContext context) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin.Features.SmartContracts\PoA\Rules\SmartContractPoACoinviewRule.cs:line 61
         at Stratis.Bitcoin.Consensus.ConsensusRuleEngine.ExecuteRulesAsync(IEnumerable`1 asyncRules, RuleContext ruleContext) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Consensus\ConsensusRuleEngine.cs:line 227
         at Stratis.Bitcoin.Consensus.ConsensusRuleEngine.FullValidationAsync(ChainedHeader header, Block block) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Consensus\ConsensusRuleEngine.cs:line 186
         at Stratis.Bitcoin.Features.Consensus.Rules.PowConsensusRuleEngine.FullValidationAsync(ChainedHeader header, Block block) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin.Features.Consensus\Rules\PowConsensusRuleEngine.cs:line 92
         at Stratis.Bitcoin.Consensus.Validators.FullValidator.ValidateAsync(ChainedHeader header, Block block) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Consensus\Validators\BlockValidator.cs:line 218
         at Stratis.Bitcoin.Consensus.ConsensusManager.ConnectBlockAsync(ChainedHeaderBlock blockToConnect) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Consensus\ConsensusManager.cs:line 898
         at Stratis.Bitcoin.Consensus.ConsensusManager.ConnectChainAsync(List`1 blocksToConnect, Boolean blockMined) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Consensus\ConsensusManager.cs:line 778
         at Stratis.Bitcoin.Consensus.ConsensusManager.FullyValidateLockedAsync(ChainedHeader newTip, Boolean blockMined) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Consensus\ConsensusManager.cs:line 649
         at Stratis.Bitcoin.Consensus.ConsensusManager.OnPartialValidationSucceededAsync(ChainedHeader chainedHeader) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Consensus\ConsensusManager.cs:line 519
         at Stratis.Bitcoin.Consensus.ConsensusManager.OnPartialValidationCompletedCallbackAsync(ValidationContext validationContext) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Consensus\ConsensusManager.cs:line 457
         at Stratis.Bitcoin.Consensus.Validators.PartialValidator.OnEnqueueAsync(PartialValidationItem item, CancellationToken cancellationtoken) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Consensus\Validators\BlockValidator.cs:line 153
         at Stratis.Bitcoin.Utilities.AsyncQueue`1.ConsumerAsync() in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\AsyncWork\AsyncQueue.cs:line 151
         --- End of inner exception stack trace ---
         at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
         at System.Threading.Tasks.Task.Wait()
         at Stratis.Bitcoin.Utilities.AsyncQueue`1.DisposeInternal(Boolean calledFromConsumerTask) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\AsyncWork\AsyncQueue.cs:line 264
         at Stratis.Bitcoin.Utilities.AsyncQueue`1.Dispose() in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\AsyncWork\AsyncQueue.cs:line 250
         at Stratis.Bitcoin.Consensus.Validators.PartialValidator.Dispose() in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Consensus\Validators\BlockValidator.cs:line 144
         at Stratis.Bitcoin.Base.BaseFeature.Dispose() in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Base\BaseFeature.cs:line 331
         at Stratis.Bitcoin.Builder.FullNodeFeatureExecutor.<>c.<Dispose>b__4_0(IFullNodeFeature feature) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Builder\FullNodeFeatureExecutor.cs:line 76
         at Stratis.Bitcoin.Builder.FullNodeFeatureExecutor.Execute(Action`1 callback, Boolean disposing) in E:\Public\StratisFullNode-1\src\Stratis.Bitcoin\Builder\FullNodeFeatureExecutor.cs:line 111'

It seems we need an old 64-bit-amounts version of Stratis.SmartContracts.Standards for legacy contracts to use.

@quantumagi quantumagi requested a review from zeptin January 19, 2021 10:19
@quantumagi
Copy link
Contributor Author

Fixed.

protected override Assembly Load(AssemblyName assemblyName)
{
// Ensure that an exact compatible version is used.
if (assemblyName.Name == "Stratis.SmartContracts.Standards" && assemblyName.Version.Major == 1 && assemblyName.Version.Minor < 4)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as i understand these type of changes will cause conflicts between new and old nodes

Copy link
Contributor

@YakupIpek YakupIpek Jan 19, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the conflicts will be resolved if we can still provide same IStandardToken interface as old and add new ones with suffix 256.

But still this is going to be issue between new and old nodes whenever new contract submited with uint256 and uint128 types so hard fork seems unavoidable in any case

Copy link
Contributor Author

@quantumagi quantumagi Jan 20, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When loading legacy smart contracts the default assembly resolver would use the new interface if the old interface can't be found - which of course, will not work. Hence the change which specifically resolves to the old interface if that's what's being looked for. For this purpose the project now includes an old compiled version of the interface.

The only "issue", as you mention, and being unrelated to this code fragment, is that old nodes will not understand contracts based off the new datatypes. We may need to add BIP9 activation mechanism to only allow new version smart contracts once most nodes support it. @zeptin @fassadlr what do you guys think?

{
Directory.CreateDirectory(assemblyFolder);

string downloadLink = $"https://www.nuget.org/api/v2/package/{assemblyName.Name.ToLower()}/{version}";
Copy link
Contributor

@YakupIpek YakupIpek Jan 23, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Downloading assembly packages from a central resource is not safe. It is a single point of failure and also it is a security issue.

Copy link
Contributor Author

@quantumagi quantumagi Jan 25, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The smart contract approval process should somehow take care of any concerns as the byte code would include the versions of package referenced. Contact me on chat so that we can discuss any shortcomings that may exist.

I'm investigating if using the hash of referenced assemblies could help verify the code being obtained remotely: https://stackoverflow.com/questions/3449512/how-does-the-reference-assembly-is-verfied-to-check-whether-it-is-tampered

Copy link
Contributor Author

@quantumagi quantumagi Jan 27, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added some code to limit what can be done in the standards package - similar to what we do for the smart contracts

Copy link
Contributor Author

@quantumagi quantumagi Jan 27, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since there is an approval process involved with smart contracts another approach would be to release the upgraded standards package and simply not approve new contracts based on it until a sufficient number of nodes have upgraded. In fact, if we can delay upgrading the tool until then. This way the nodes don't have to pull any package on demand and can simply use the appropriate package from the LegacyStandardsDLLs folder.

@quantumagi
Copy link
Contributor Author

quantumagi commented Jan 29, 2021

Versions should perhaps be bumped before merging this - similar to #389...

Copy link
Contributor

@fassadlr fassadlr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to fix versions so long.

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="Stratis.SmartContracts" Version="1.2.1" />
<PackageReference Include="Stratis.SmartContracts" Version="1.4.1-alpha" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These version needs to be inline with FN (1.0.6.4)

Copy link
Contributor Author

@quantumagi quantumagi Jan 29, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fassadlr , Previously it seems the SCs had their own version sequence. Even Stratis.SmartContracts and Stratis.SmartContracts.Standads had different versions. I guess the advantage was the ability to release an update of just one module and not worry about the others being different. Are you sure the extra effort and constraints of keeping the versions in step is worth the trouble?

The SC versions are already at 1.2.1. Do you think it should be rewound or FN advanced further?

<PackageReference Include="CSharpFunctionalExtensions" Version="1.10.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="3.0.1" />
<PackageReference Include="Stratis.SmartContracts" Version="1.2.1" />
<PackageReference Include="Stratis.SmartContracts" Version="1.4.1-alpha" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These version needs to be inline with FN (1.0.6.4)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See above.

<ItemGroup>
<PackageReference Include="Mono.Cecil" Version="0.10.1" />
<PackageReference Include="Stratis.SmartContracts" Version="1.2.1" />
<PackageReference Include="Stratis.SmartContracts" Version="1.4.1-alpha" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These version needs to be inline with FN (1.0.6.4)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See above.

@YakupIpek
Copy link
Contributor

@quantumagi LGTM

@fassadlr fassadlr merged commit 5ddf8d6 into stratisproject:master Feb 3, 2021
zeptin added a commit that referenced this pull request Feb 10, 2021
* Initial InterFlux version

* Update NBitcoin.csproj (#391)

* Pass along height information for OP_FEDERATION (#379)

* Pass along height information for OP_FEDERATION

* Add defaults

* Add defaults

* Filter Transaction History by Transaction Id (#393)

* Update WalletService.cs

* Add Filter

* Fix Test

* Perform check for cold staking txs

* Refactor

* Modify DI sequence

* Add mainnet check points (#400)

* Add MainNet check points

* Fix Tests

* Change gas limit upper bound to 250,000 (#399)

* Add UInt256, serialization methods and CLR updates (#365)

* Add UInt256 serialization methods

* Refactor

* Use UInt256 in InternalExecutor

* Undo unrelated change

* Update TestMessage

* Revert type updates to InternalExecutor

* Update Serializer and PersistentState

* Update package versions

* Update SC packages to version 1.4.0-alpha

* Add serializers and enums

* Add primitive serializer

* Update StandardToken.cs

* Revert change

* Update integration tests

* Use switch/case in Serialize/Deserialize

* Update package versions and remove workaround

* Ensure the right Stratis.SmartContracts.Standards is used by contracts

* Changes based on feedback

* Fix primitive deserialize

* Update standards dll name

* Fix legacy standards dll path

* Don't upgrade standards package of node

* Don't upgrade StandardToken of node

* Don't upgrade standards package of node

* Add Standards forwards compatibility

* Add test case for futuristic contracts

* Fix Token_Standards_Test

* Update RPC_GetReceipt_Returns_Value test

* Cleanup non-required changes

* Validate standards assembly

* Disable automatic downloads

* Add LegacyStandardsDLLs

* Update test

* Bump package versions for Core and Networks

* Bump observer version

* Update package versions

* Refactor

* Revert gitignore

* Revert unnecessary changes

* Revert unnecessary changes

* Update Stratis.SmartContracts.xxx to 2.0.0.0

* Update package version for Stratis.SmartContracts.Tests.Common

* Add TestNet checkpoints (#402)

* Update StraxTest.cs

* Add testnet checkpoints

* Fix Tests

* Update Nuget Scripts and Collateral/FederatedPeg versions

* Bump Version (#403)

* Update some test projects PackageIds and versions

* Update PushNuget.ps1

* Update MaxStandardSigOpsCost and CCTS Max Partials Txs (#404)

* Update Stratis.SmartContracts.CLR.Validation's allowed primitive types (#405)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions (#406)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions

* Bump Stratis.Bicoin.Features.SmartContracts as well

* Bump Stratis.SmartContracts.Networks

* Update PushSCNuget.ps1

* Fix Finality Bug (#407)

* Fix Finalized Bug

* Fix Build

* Trigger CI

* Fix Tests

* Comments

* Console Cleanup (#408)

* Suppress bench logs

* Done

* Update NodeStats.cs

* Fix Test

* Bump version prior to fixing NuGet dependencies for  Stratis.SmartContracts.Tests.Common (#409)

* Rocks DB (#401)

* WIP

* Fix DB connections

* Update CirrusD

* Add RocksDbNative

* Update Stratis.CirrusD.csproj

* Add Snappy

* Fix BlockStoreQueue

* Add switch to program.cs

* Fix Logger

* Cleanup Console Logs

* Add RocksDbChainStore

* Update BlockPuller.cs

* Implement RocksDb KeyValueStore

* Add dbtype switch to StraxD

* NodeStats changes

* KeyValue fix

* Fix Build

* Voting / Wallet Log

* Update ConnectionManager.cs

* Hide bench stats

* Update VersionProvider.cs

* Self Review

* Fix Test

* Update ConnectionManager.cs

* Fix Locks in StakeDB

* Create RocksDbProvenBlockHeaderRepository

* Update RocksDbProvenBlockHeaderRepository.cs

* Add network type to console

* Fix Test

* Update NodeStats.cs

* Add datafolder to nodestats

* Fix Merge

* Revert

* Revert launchsettings

* Add ColdStaking to PushNuGet script (#410)

* Add ColdStaking to PushNuGet script

* Bump Stratis.Bitcoin.IntegrationTests.Common to 1.0.7

* Bump Stratis.Core.Tests.Common to 1.0.7

* Update NEthereum and Stratis.Patricia

* SLN changes

* Clean up commits

* Remove launchSettings change

Co-authored-by: Francois de la Rouviere <fassadlr@gmail.com>
Co-authored-by: quantumagi <someguy.fromafrica@gmail.com>
zeptin added a commit that referenced this pull request Feb 10, 2021
* Initial InterFlux version

* Update NBitcoin.csproj (#391)

* Pass along height information for OP_FEDERATION (#379)

* Pass along height information for OP_FEDERATION

* Add defaults

* Add defaults

* Filter Transaction History by Transaction Id (#393)

* Update WalletService.cs

* Add Filter

* Fix Test

* Perform check for cold staking txs

* Refactor

* Modify DI sequence

* Add mainnet check points (#400)

* Add MainNet check points

* Fix Tests

* Change gas limit upper bound to 250,000 (#399)

* Add UInt256, serialization methods and CLR updates (#365)

* Add UInt256 serialization methods

* Refactor

* Use UInt256 in InternalExecutor

* Undo unrelated change

* Update TestMessage

* Revert type updates to InternalExecutor

* Update Serializer and PersistentState

* Update package versions

* Update SC packages to version 1.4.0-alpha

* Add serializers and enums

* Add primitive serializer

* Update StandardToken.cs

* Revert change

* Update integration tests

* Use switch/case in Serialize/Deserialize

* Update package versions and remove workaround

* Ensure the right Stratis.SmartContracts.Standards is used by contracts

* Changes based on feedback

* Fix primitive deserialize

* Update standards dll name

* Fix legacy standards dll path

* Don't upgrade standards package of node

* Don't upgrade StandardToken of node

* Don't upgrade standards package of node

* Add Standards forwards compatibility

* Add test case for futuristic contracts

* Fix Token_Standards_Test

* Update RPC_GetReceipt_Returns_Value test

* Cleanup non-required changes

* Validate standards assembly

* Disable automatic downloads

* Add LegacyStandardsDLLs

* Update test

* Bump package versions for Core and Networks

* Bump observer version

* Update package versions

* Refactor

* Revert gitignore

* Revert unnecessary changes

* Revert unnecessary changes

* Update Stratis.SmartContracts.xxx to 2.0.0.0

* Update package version for Stratis.SmartContracts.Tests.Common

* Add TestNet checkpoints (#402)

* Update StraxTest.cs

* Add testnet checkpoints

* Fix Tests

* Update Nuget Scripts and Collateral/FederatedPeg versions

* Bump Version (#403)

* Update some test projects PackageIds and versions

* Update PushNuget.ps1

* Update MaxStandardSigOpsCost and CCTS Max Partials Txs (#404)

* Update Stratis.SmartContracts.CLR.Validation's allowed primitive types (#405)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions (#406)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions

* Bump Stratis.Bicoin.Features.SmartContracts as well

* Bump Stratis.SmartContracts.Networks

* Update PushSCNuget.ps1

* Fix Finality Bug (#407)

* Fix Finalized Bug

* Fix Build

* Trigger CI

* Fix Tests

* Comments

* Console Cleanup (#408)

* Suppress bench logs

* Done

* Update NodeStats.cs

* Fix Test

* Bump version prior to fixing NuGet dependencies for  Stratis.SmartContracts.Tests.Common (#409)

* Rocks DB (#401)

* WIP

* Fix DB connections

* Update CirrusD

* Add RocksDbNative

* Update Stratis.CirrusD.csproj

* Add Snappy

* Fix BlockStoreQueue

* Add switch to program.cs

* Fix Logger

* Cleanup Console Logs

* Add RocksDbChainStore

* Update BlockPuller.cs

* Implement RocksDb KeyValueStore

* Add dbtype switch to StraxD

* NodeStats changes

* KeyValue fix

* Fix Build

* Voting / Wallet Log

* Update ConnectionManager.cs

* Hide bench stats

* Update VersionProvider.cs

* Self Review

* Fix Test

* Update ConnectionManager.cs

* Fix Locks in StakeDB

* Create RocksDbProvenBlockHeaderRepository

* Update RocksDbProvenBlockHeaderRepository.cs

* Add network type to console

* Fix Test

* Update NodeStats.cs

* Add datafolder to nodestats

* Fix Merge

* Revert

* Revert launchsettings

* Add ColdStaking to PushNuGet script (#410)

* Add ColdStaking to PushNuGet script

* Bump Stratis.Bitcoin.IntegrationTests.Common to 1.0.7

* Bump Stratis.Core.Tests.Common to 1.0.7

* Update NEthereum and Stratis.Patricia

* SLN changes

* Clean up commits

* Remove launchSettings change

* Add references

Co-authored-by: Francois de la Rouviere <fassadlr@gmail.com>
Co-authored-by: quantumagi <someguy.fromafrica@gmail.com>
zeptin added a commit that referenced this pull request Feb 16, 2021
* Update NBitcoin.csproj (#391)

* Pass along height information for OP_FEDERATION (#379)

* Pass along height information for OP_FEDERATION

* Add defaults

* Add defaults

* Filter Transaction History by Transaction Id (#393)

* Update WalletService.cs

* Add Filter

* Fix Test

* Perform check for cold staking txs

* Add mainnet check points (#400)

* Add MainNet check points

* Fix Tests

* Change gas limit upper bound to 250,000 (#399)

* Add UInt256, serialization methods and CLR updates (#365)

* Add UInt256 serialization methods

* Refactor

* Use UInt256 in InternalExecutor

* Undo unrelated change

* Update TestMessage

* Revert type updates to InternalExecutor

* Update Serializer and PersistentState

* Update package versions

* Update SC packages to version 1.4.0-alpha

* Add serializers and enums

* Add primitive serializer

* Update StandardToken.cs

* Revert change

* Update integration tests

* Use switch/case in Serialize/Deserialize

* Update package versions and remove workaround

* Ensure the right Stratis.SmartContracts.Standards is used by contracts

* Changes based on feedback

* Fix primitive deserialize

* Update standards dll name

* Fix legacy standards dll path

* Don't upgrade standards package of node

* Don't upgrade StandardToken of node

* Don't upgrade standards package of node

* Add Standards forwards compatibility

* Add test case for futuristic contracts

* Fix Token_Standards_Test

* Update RPC_GetReceipt_Returns_Value test

* Cleanup non-required changes

* Validate standards assembly

* Disable automatic downloads

* Add LegacyStandardsDLLs

* Update test

* Bump package versions for Core and Networks

* Bump observer version

* Update package versions

* Refactor

* Revert gitignore

* Revert unnecessary changes

* Revert unnecessary changes

* Update Stratis.SmartContracts.xxx to 2.0.0.0

* Update package version for Stratis.SmartContracts.Tests.Common

* Add TestNet checkpoints (#402)

* Update StraxTest.cs

* Add testnet checkpoints

* Fix Tests

* Update Nuget Scripts and Collateral/FederatedPeg versions

* Bump Version (#403)

* Update some test projects PackageIds and versions

* Update PushNuget.ps1

* Update MaxStandardSigOpsCost and CCTS Max Partials Txs (#404)

* Update Stratis.SmartContracts.CLR.Validation's allowed primitive types (#405)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions (#406)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions

* Bump Stratis.Bicoin.Features.SmartContracts as well

* Bump Stratis.SmartContracts.Networks

* Update PushSCNuget.ps1

* Fix Finality Bug (#407)

* Fix Finalized Bug

* Fix Build

* Trigger CI

* Fix Tests

* Comments

* Console Cleanup (#408)

* Suppress bench logs

* Done

* Update NodeStats.cs

* Fix Test

* Bump version prior to fixing NuGet dependencies for  Stratis.SmartContracts.Tests.Common (#409)

* Rocks DB (#401)

* WIP

* Fix DB connections

* Update CirrusD

* Add RocksDbNative

* Update Stratis.CirrusD.csproj

* Add Snappy

* Fix BlockStoreQueue

* Add switch to program.cs

* Fix Logger

* Cleanup Console Logs

* Add RocksDbChainStore

* Update BlockPuller.cs

* Implement RocksDb KeyValueStore

* Add dbtype switch to StraxD

* NodeStats changes

* KeyValue fix

* Fix Build

* Voting / Wallet Log

* Update ConnectionManager.cs

* Hide bench stats

* Update VersionProvider.cs

* Self Review

* Fix Test

* Update ConnectionManager.cs

* Fix Locks in StakeDB

* Create RocksDbProvenBlockHeaderRepository

* Update RocksDbProvenBlockHeaderRepository.cs

* Add network type to console

* Fix Test

* Update NodeStats.cs

* Add datafolder to nodestats

* Fix Merge

* Revert

* Revert launchsettings

* Add ColdStaking to PushNuGet script (#410)

* Add ColdStaking to PushNuGet script

* Bump Stratis.Bitcoin.IntegrationTests.Common to 1.0.7

* Bump Stratis.Core.Tests.Common to 1.0.7

* Update to Stratis.RocksDb (#415)

* Prevent changing published packages w/o bumping local version (#411)

* Prevent changing package code of published version - must bump version

* Update comments

* Small refactor

* Ensure Release folder exists

* Check version changes related to project references

* Bump versions

* Refactor

* Refactor

* Fix wallet feature vesion

* Update RocksDb dylibs (#417)

* Update to Stratis.RocksDb

* Update to version 0.0.9.1

* Update RocksDb Nugets

* Update Rocksdb (#418)

* Revert "Dont fetch/process deposits until the CCTS has cleared its suspended transfers (#367)"

This reverts commit 334b4f0.

* Update Nuget

* Update CirrusMain.cs (#422)

* Consolidate outstanding console changes for the MS/Miner (#423)

* update RocksDb Nuget (#424)

* Update Stratis.Bitcoin Assembly info to version 1.0.7.2

* Fix Seeder (#425)

* Fix AddressIndexer Console (#426)

* Update ConnectionManager.cs (#427)

* Fix merge conflicts

Co-authored-by: Francois de la Rouviere <fassadlr@gmail.com>
Co-authored-by: quantumagi <someguy.fromafrica@gmail.com>
zeptin pushed a commit that referenced this pull request Mar 31, 2021
* Update NBitcoin.csproj (#391)

* Interflux (#397)

* Initial InterFlux version

* Refactor

* Modify DI sequence (#398)

* Modify DI sequence

* Update NEthereum and Stratis.Patricia (#412)

* Initial InterFlux version

* Update NBitcoin.csproj (#391)

* Pass along height information for OP_FEDERATION (#379)

* Pass along height information for OP_FEDERATION

* Add defaults

* Add defaults

* Filter Transaction History by Transaction Id (#393)

* Update WalletService.cs

* Add Filter

* Fix Test

* Perform check for cold staking txs

* Refactor

* Modify DI sequence

* Add mainnet check points (#400)

* Add MainNet check points

* Fix Tests

* Change gas limit upper bound to 250,000 (#399)

* Add UInt256, serialization methods and CLR updates (#365)

* Add UInt256 serialization methods

* Refactor

* Use UInt256 in InternalExecutor

* Undo unrelated change

* Update TestMessage

* Revert type updates to InternalExecutor

* Update Serializer and PersistentState

* Update package versions

* Update SC packages to version 1.4.0-alpha

* Add serializers and enums

* Add primitive serializer

* Update StandardToken.cs

* Revert change

* Update integration tests

* Use switch/case in Serialize/Deserialize

* Update package versions and remove workaround

* Ensure the right Stratis.SmartContracts.Standards is used by contracts

* Changes based on feedback

* Fix primitive deserialize

* Update standards dll name

* Fix legacy standards dll path

* Don't upgrade standards package of node

* Don't upgrade StandardToken of node

* Don't upgrade standards package of node

* Add Standards forwards compatibility

* Add test case for futuristic contracts

* Fix Token_Standards_Test

* Update RPC_GetReceipt_Returns_Value test

* Cleanup non-required changes

* Validate standards assembly

* Disable automatic downloads

* Add LegacyStandardsDLLs

* Update test

* Bump package versions for Core and Networks

* Bump observer version

* Update package versions

* Refactor

* Revert gitignore

* Revert unnecessary changes

* Revert unnecessary changes

* Update Stratis.SmartContracts.xxx to 2.0.0.0

* Update package version for Stratis.SmartContracts.Tests.Common

* Add TestNet checkpoints (#402)

* Update StraxTest.cs

* Add testnet checkpoints

* Fix Tests

* Update Nuget Scripts and Collateral/FederatedPeg versions

* Bump Version (#403)

* Update some test projects PackageIds and versions

* Update PushNuget.ps1

* Update MaxStandardSigOpsCost and CCTS Max Partials Txs (#404)

* Update Stratis.SmartContracts.CLR.Validation's allowed primitive types (#405)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions (#406)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions

* Bump Stratis.Bicoin.Features.SmartContracts as well

* Bump Stratis.SmartContracts.Networks

* Update PushSCNuget.ps1

* Fix Finality Bug (#407)

* Fix Finalized Bug

* Fix Build

* Trigger CI

* Fix Tests

* Comments

* Console Cleanup (#408)

* Suppress bench logs

* Done

* Update NodeStats.cs

* Fix Test

* Bump version prior to fixing NuGet dependencies for  Stratis.SmartContracts.Tests.Common (#409)

* Rocks DB (#401)

* WIP

* Fix DB connections

* Update CirrusD

* Add RocksDbNative

* Update Stratis.CirrusD.csproj

* Add Snappy

* Fix BlockStoreQueue

* Add switch to program.cs

* Fix Logger

* Cleanup Console Logs

* Add RocksDbChainStore

* Update BlockPuller.cs

* Implement RocksDb KeyValueStore

* Add dbtype switch to StraxD

* NodeStats changes

* KeyValue fix

* Fix Build

* Voting / Wallet Log

* Update ConnectionManager.cs

* Hide bench stats

* Update VersionProvider.cs

* Self Review

* Fix Test

* Update ConnectionManager.cs

* Fix Locks in StakeDB

* Create RocksDbProvenBlockHeaderRepository

* Update RocksDbProvenBlockHeaderRepository.cs

* Add network type to console

* Fix Test

* Update NodeStats.cs

* Add datafolder to nodestats

* Fix Merge

* Revert

* Revert launchsettings

* Add ColdStaking to PushNuGet script (#410)

* Add ColdStaking to PushNuGet script

* Bump Stratis.Bitcoin.IntegrationTests.Common to 1.0.7

* Bump Stratis.Core.Tests.Common to 1.0.7

* Update NEthereum and Stratis.Patricia

* SLN changes

* Clean up commits

* Remove launchSettings change

Co-authored-by: Francois de la Rouviere <fassadlr@gmail.com>
Co-authored-by: quantumagi <someguy.fromafrica@gmail.com>

* Add references (#413)

* Initial InterFlux version

* Update NBitcoin.csproj (#391)

* Pass along height information for OP_FEDERATION (#379)

* Pass along height information for OP_FEDERATION

* Add defaults

* Add defaults

* Filter Transaction History by Transaction Id (#393)

* Update WalletService.cs

* Add Filter

* Fix Test

* Perform check for cold staking txs

* Refactor

* Modify DI sequence

* Add mainnet check points (#400)

* Add MainNet check points

* Fix Tests

* Change gas limit upper bound to 250,000 (#399)

* Add UInt256, serialization methods and CLR updates (#365)

* Add UInt256 serialization methods

* Refactor

* Use UInt256 in InternalExecutor

* Undo unrelated change

* Update TestMessage

* Revert type updates to InternalExecutor

* Update Serializer and PersistentState

* Update package versions

* Update SC packages to version 1.4.0-alpha

* Add serializers and enums

* Add primitive serializer

* Update StandardToken.cs

* Revert change

* Update integration tests

* Use switch/case in Serialize/Deserialize

* Update package versions and remove workaround

* Ensure the right Stratis.SmartContracts.Standards is used by contracts

* Changes based on feedback

* Fix primitive deserialize

* Update standards dll name

* Fix legacy standards dll path

* Don't upgrade standards package of node

* Don't upgrade StandardToken of node

* Don't upgrade standards package of node

* Add Standards forwards compatibility

* Add test case for futuristic contracts

* Fix Token_Standards_Test

* Update RPC_GetReceipt_Returns_Value test

* Cleanup non-required changes

* Validate standards assembly

* Disable automatic downloads

* Add LegacyStandardsDLLs

* Update test

* Bump package versions for Core and Networks

* Bump observer version

* Update package versions

* Refactor

* Revert gitignore

* Revert unnecessary changes

* Revert unnecessary changes

* Update Stratis.SmartContracts.xxx to 2.0.0.0

* Update package version for Stratis.SmartContracts.Tests.Common

* Add TestNet checkpoints (#402)

* Update StraxTest.cs

* Add testnet checkpoints

* Fix Tests

* Update Nuget Scripts and Collateral/FederatedPeg versions

* Bump Version (#403)

* Update some test projects PackageIds and versions

* Update PushNuget.ps1

* Update MaxStandardSigOpsCost and CCTS Max Partials Txs (#404)

* Update Stratis.SmartContracts.CLR.Validation's allowed primitive types (#405)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions (#406)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions

* Bump Stratis.Bicoin.Features.SmartContracts as well

* Bump Stratis.SmartContracts.Networks

* Update PushSCNuget.ps1

* Fix Finality Bug (#407)

* Fix Finalized Bug

* Fix Build

* Trigger CI

* Fix Tests

* Comments

* Console Cleanup (#408)

* Suppress bench logs

* Done

* Update NodeStats.cs

* Fix Test

* Bump version prior to fixing NuGet dependencies for  Stratis.SmartContracts.Tests.Common (#409)

* Rocks DB (#401)

* WIP

* Fix DB connections

* Update CirrusD

* Add RocksDbNative

* Update Stratis.CirrusD.csproj

* Add Snappy

* Fix BlockStoreQueue

* Add switch to program.cs

* Fix Logger

* Cleanup Console Logs

* Add RocksDbChainStore

* Update BlockPuller.cs

* Implement RocksDb KeyValueStore

* Add dbtype switch to StraxD

* NodeStats changes

* KeyValue fix

* Fix Build

* Voting / Wallet Log

* Update ConnectionManager.cs

* Hide bench stats

* Update VersionProvider.cs

* Self Review

* Fix Test

* Update ConnectionManager.cs

* Fix Locks in StakeDB

* Create RocksDbProvenBlockHeaderRepository

* Update RocksDbProvenBlockHeaderRepository.cs

* Add network type to console

* Fix Test

* Update NodeStats.cs

* Add datafolder to nodestats

* Fix Merge

* Revert

* Revert launchsettings

* Add ColdStaking to PushNuGet script (#410)

* Add ColdStaking to PushNuGet script

* Bump Stratis.Bitcoin.IntegrationTests.Common to 1.0.7

* Bump Stratis.Core.Tests.Common to 1.0.7

* Update NEthereum and Stratis.Patricia

* SLN changes

* Clean up commits

* Remove launchSettings change

* Add references

Co-authored-by: Francois de la Rouviere <fassadlr@gmail.com>
Co-authored-by: quantumagi <someguy.fromafrica@gmail.com>

* Conditional invocation (#419)

* Update LaunchSidechainMasternode.ps1 (#420)

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Move interflux namespace (#428)

* Fix null reference (#429)

* Update to 1.0.7.2 (#430)

* Update NBitcoin.csproj (#391)

* Pass along height information for OP_FEDERATION (#379)

* Pass along height information for OP_FEDERATION

* Add defaults

* Add defaults

* Filter Transaction History by Transaction Id (#393)

* Update WalletService.cs

* Add Filter

* Fix Test

* Perform check for cold staking txs

* Add mainnet check points (#400)

* Add MainNet check points

* Fix Tests

* Change gas limit upper bound to 250,000 (#399)

* Add UInt256, serialization methods and CLR updates (#365)

* Add UInt256 serialization methods

* Refactor

* Use UInt256 in InternalExecutor

* Undo unrelated change

* Update TestMessage

* Revert type updates to InternalExecutor

* Update Serializer and PersistentState

* Update package versions

* Update SC packages to version 1.4.0-alpha

* Add serializers and enums

* Add primitive serializer

* Update StandardToken.cs

* Revert change

* Update integration tests

* Use switch/case in Serialize/Deserialize

* Update package versions and remove workaround

* Ensure the right Stratis.SmartContracts.Standards is used by contracts

* Changes based on feedback

* Fix primitive deserialize

* Update standards dll name

* Fix legacy standards dll path

* Don't upgrade standards package of node

* Don't upgrade StandardToken of node

* Don't upgrade standards package of node

* Add Standards forwards compatibility

* Add test case for futuristic contracts

* Fix Token_Standards_Test

* Update RPC_GetReceipt_Returns_Value test

* Cleanup non-required changes

* Validate standards assembly

* Disable automatic downloads

* Add LegacyStandardsDLLs

* Update test

* Bump package versions for Core and Networks

* Bump observer version

* Update package versions

* Refactor

* Revert gitignore

* Revert unnecessary changes

* Revert unnecessary changes

* Update Stratis.SmartContracts.xxx to 2.0.0.0

* Update package version for Stratis.SmartContracts.Tests.Common

* Add TestNet checkpoints (#402)

* Update StraxTest.cs

* Add testnet checkpoints

* Fix Tests

* Update Nuget Scripts and Collateral/FederatedPeg versions

* Bump Version (#403)

* Update some test projects PackageIds and versions

* Update PushNuget.ps1

* Update MaxStandardSigOpsCost and CCTS Max Partials Txs (#404)

* Update Stratis.SmartContracts.CLR.Validation's allowed primitive types (#405)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions (#406)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions

* Bump Stratis.Bicoin.Features.SmartContracts as well

* Bump Stratis.SmartContracts.Networks

* Update PushSCNuget.ps1

* Fix Finality Bug (#407)

* Fix Finalized Bug

* Fix Build

* Trigger CI

* Fix Tests

* Comments

* Console Cleanup (#408)

* Suppress bench logs

* Done

* Update NodeStats.cs

* Fix Test

* Bump version prior to fixing NuGet dependencies for  Stratis.SmartContracts.Tests.Common (#409)

* Rocks DB (#401)

* WIP

* Fix DB connections

* Update CirrusD

* Add RocksDbNative

* Update Stratis.CirrusD.csproj

* Add Snappy

* Fix BlockStoreQueue

* Add switch to program.cs

* Fix Logger

* Cleanup Console Logs

* Add RocksDbChainStore

* Update BlockPuller.cs

* Implement RocksDb KeyValueStore

* Add dbtype switch to StraxD

* NodeStats changes

* KeyValue fix

* Fix Build

* Voting / Wallet Log

* Update ConnectionManager.cs

* Hide bench stats

* Update VersionProvider.cs

* Self Review

* Fix Test

* Update ConnectionManager.cs

* Fix Locks in StakeDB

* Create RocksDbProvenBlockHeaderRepository

* Update RocksDbProvenBlockHeaderRepository.cs

* Add network type to console

* Fix Test

* Update NodeStats.cs

* Add datafolder to nodestats

* Fix Merge

* Revert

* Revert launchsettings

* Add ColdStaking to PushNuGet script (#410)

* Add ColdStaking to PushNuGet script

* Bump Stratis.Bitcoin.IntegrationTests.Common to 1.0.7

* Bump Stratis.Core.Tests.Common to 1.0.7

* Update to Stratis.RocksDb (#415)

* Prevent changing published packages w/o bumping local version (#411)

* Prevent changing package code of published version - must bump version

* Update comments

* Small refactor

* Ensure Release folder exists

* Check version changes related to project references

* Bump versions

* Refactor

* Refactor

* Fix wallet feature vesion

* Update RocksDb dylibs (#417)

* Update to Stratis.RocksDb

* Update to version 0.0.9.1

* Update RocksDb Nugets

* Update Rocksdb (#418)

* Revert "Dont fetch/process deposits until the CCTS has cleared its suspended transfers (#367)"

This reverts commit 334b4f0.

* Update Nuget

* Update CirrusMain.cs (#422)

* Consolidate outstanding console changes for the MS/Miner (#423)

* update RocksDb Nuget (#424)

* Update Stratis.Bitcoin Assembly info to version 1.0.7.2

* Fix Seeder (#425)

* Fix AddressIndexer Console (#426)

* Update ConnectionManager.cs (#427)

* Fix merge conflicts

Co-authored-by: Francois de la Rouviere <fassadlr@gmail.com>
Co-authored-by: quantumagi <someguy.fromafrica@gmail.com>

* Add signature to coordination payload and improve logging (#432)

* Fix constructor (#433)

* Configurable gas limit and price (#434)

* Recreate event filter on RPC exception

* Clean up

* Fixes & updated deposit confirmation intervals

* Asyncify

* Remove unused

* Add minimum threshold

* Update LaunchSidechainMasternode.ps1

* Add documentation and refactor transaction manager

* Register message type

* comment ETH Height check

* return loaded eth account

* Refactor transaction originator logic

* Default gas price

* Add status endpoint

* Fix data type

* Pass the calculated fee to the builder (#455)

* Add initial Gnosis Safe interface (#466)

* Add reserve balance logic

* Initial Gnosis Safe interface classes

* Filter (#467)

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update ethGasLimit

* Refactor conversion transaction state machine (#473)

* Make existing state numbers the same as previous version

* Fix transfer destination

* Increment agent version

* Fix quorum

* Trap invalid transactionId

* Adjust threshold and agent string

* Fix withdrawalAddresses return type

* Comments, creating logger the new way

* clean usings

* htmldoc for IConversionRequestRepository

* more htmldocs

* Fix tests

* Bump CI

* remove unused InteropRequestRepository

* Update CirrusTest.cs (#491)

* Removed InteropRequestKeyValueStore and InteropRequest bc unused

* fix namespaces

* Move IConversionRequestKeyValueStore and IConversionRequestRepository to the files with implementation

* Move interface and fix namespace
zeptin added a commit that referenced this pull request Apr 6, 2021
* Dynamic fee computation

* Dynamic fee

* Interflux  (#481)

* Update NBitcoin.csproj (#391)

* Interflux (#397)

* Initial InterFlux version

* Refactor

* Modify DI sequence (#398)

* Modify DI sequence

* Update NEthereum and Stratis.Patricia (#412)

* Initial InterFlux version

* Update NBitcoin.csproj (#391)

* Pass along height information for OP_FEDERATION (#379)

* Pass along height information for OP_FEDERATION

* Add defaults

* Add defaults

* Filter Transaction History by Transaction Id (#393)

* Update WalletService.cs

* Add Filter

* Fix Test

* Perform check for cold staking txs

* Refactor

* Modify DI sequence

* Add mainnet check points (#400)

* Add MainNet check points

* Fix Tests

* Change gas limit upper bound to 250,000 (#399)

* Add UInt256, serialization methods and CLR updates (#365)

* Add UInt256 serialization methods

* Refactor

* Use UInt256 in InternalExecutor

* Undo unrelated change

* Update TestMessage

* Revert type updates to InternalExecutor

* Update Serializer and PersistentState

* Update package versions

* Update SC packages to version 1.4.0-alpha

* Add serializers and enums

* Add primitive serializer

* Update StandardToken.cs

* Revert change

* Update integration tests

* Use switch/case in Serialize/Deserialize

* Update package versions and remove workaround

* Ensure the right Stratis.SmartContracts.Standards is used by contracts

* Changes based on feedback

* Fix primitive deserialize

* Update standards dll name

* Fix legacy standards dll path

* Don't upgrade standards package of node

* Don't upgrade StandardToken of node

* Don't upgrade standards package of node

* Add Standards forwards compatibility

* Add test case for futuristic contracts

* Fix Token_Standards_Test

* Update RPC_GetReceipt_Returns_Value test

* Cleanup non-required changes

* Validate standards assembly

* Disable automatic downloads

* Add LegacyStandardsDLLs

* Update test

* Bump package versions for Core and Networks

* Bump observer version

* Update package versions

* Refactor

* Revert gitignore

* Revert unnecessary changes

* Revert unnecessary changes

* Update Stratis.SmartContracts.xxx to 2.0.0.0

* Update package version for Stratis.SmartContracts.Tests.Common

* Add TestNet checkpoints (#402)

* Update StraxTest.cs

* Add testnet checkpoints

* Fix Tests

* Update Nuget Scripts and Collateral/FederatedPeg versions

* Bump Version (#403)

* Update some test projects PackageIds and versions

* Update PushNuget.ps1

* Update MaxStandardSigOpsCost and CCTS Max Partials Txs (#404)

* Update Stratis.SmartContracts.CLR.Validation's allowed primitive types (#405)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions (#406)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions

* Bump Stratis.Bicoin.Features.SmartContracts as well

* Bump Stratis.SmartContracts.Networks

* Update PushSCNuget.ps1

* Fix Finality Bug (#407)

* Fix Finalized Bug

* Fix Build

* Trigger CI

* Fix Tests

* Comments

* Console Cleanup (#408)

* Suppress bench logs

* Done

* Update NodeStats.cs

* Fix Test

* Bump version prior to fixing NuGet dependencies for  Stratis.SmartContracts.Tests.Common (#409)

* Rocks DB (#401)

* WIP

* Fix DB connections

* Update CirrusD

* Add RocksDbNative

* Update Stratis.CirrusD.csproj

* Add Snappy

* Fix BlockStoreQueue

* Add switch to program.cs

* Fix Logger

* Cleanup Console Logs

* Add RocksDbChainStore

* Update BlockPuller.cs

* Implement RocksDb KeyValueStore

* Add dbtype switch to StraxD

* NodeStats changes

* KeyValue fix

* Fix Build

* Voting / Wallet Log

* Update ConnectionManager.cs

* Hide bench stats

* Update VersionProvider.cs

* Self Review

* Fix Test

* Update ConnectionManager.cs

* Fix Locks in StakeDB

* Create RocksDbProvenBlockHeaderRepository

* Update RocksDbProvenBlockHeaderRepository.cs

* Add network type to console

* Fix Test

* Update NodeStats.cs

* Add datafolder to nodestats

* Fix Merge

* Revert

* Revert launchsettings

* Add ColdStaking to PushNuGet script (#410)

* Add ColdStaking to PushNuGet script

* Bump Stratis.Bitcoin.IntegrationTests.Common to 1.0.7

* Bump Stratis.Core.Tests.Common to 1.0.7

* Update NEthereum and Stratis.Patricia

* SLN changes

* Clean up commits

* Remove launchSettings change

Co-authored-by: Francois de la Rouviere <fassadlr@gmail.com>
Co-authored-by: quantumagi <someguy.fromafrica@gmail.com>

* Add references (#413)

* Initial InterFlux version

* Update NBitcoin.csproj (#391)

* Pass along height information for OP_FEDERATION (#379)

* Pass along height information for OP_FEDERATION

* Add defaults

* Add defaults

* Filter Transaction History by Transaction Id (#393)

* Update WalletService.cs

* Add Filter

* Fix Test

* Perform check for cold staking txs

* Refactor

* Modify DI sequence

* Add mainnet check points (#400)

* Add MainNet check points

* Fix Tests

* Change gas limit upper bound to 250,000 (#399)

* Add UInt256, serialization methods and CLR updates (#365)

* Add UInt256 serialization methods

* Refactor

* Use UInt256 in InternalExecutor

* Undo unrelated change

* Update TestMessage

* Revert type updates to InternalExecutor

* Update Serializer and PersistentState

* Update package versions

* Update SC packages to version 1.4.0-alpha

* Add serializers and enums

* Add primitive serializer

* Update StandardToken.cs

* Revert change

* Update integration tests

* Use switch/case in Serialize/Deserialize

* Update package versions and remove workaround

* Ensure the right Stratis.SmartContracts.Standards is used by contracts

* Changes based on feedback

* Fix primitive deserialize

* Update standards dll name

* Fix legacy standards dll path

* Don't upgrade standards package of node

* Don't upgrade StandardToken of node

* Don't upgrade standards package of node

* Add Standards forwards compatibility

* Add test case for futuristic contracts

* Fix Token_Standards_Test

* Update RPC_GetReceipt_Returns_Value test

* Cleanup non-required changes

* Validate standards assembly

* Disable automatic downloads

* Add LegacyStandardsDLLs

* Update test

* Bump package versions for Core and Networks

* Bump observer version

* Update package versions

* Refactor

* Revert gitignore

* Revert unnecessary changes

* Revert unnecessary changes

* Update Stratis.SmartContracts.xxx to 2.0.0.0

* Update package version for Stratis.SmartContracts.Tests.Common

* Add TestNet checkpoints (#402)

* Update StraxTest.cs

* Add testnet checkpoints

* Fix Tests

* Update Nuget Scripts and Collateral/FederatedPeg versions

* Bump Version (#403)

* Update some test projects PackageIds and versions

* Update PushNuget.ps1

* Update MaxStandardSigOpsCost and CCTS Max Partials Txs (#404)

* Update Stratis.SmartContracts.CLR.Validation's allowed primitive types (#405)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions (#406)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions

* Bump Stratis.Bicoin.Features.SmartContracts as well

* Bump Stratis.SmartContracts.Networks

* Update PushSCNuget.ps1

* Fix Finality Bug (#407)

* Fix Finalized Bug

* Fix Build

* Trigger CI

* Fix Tests

* Comments

* Console Cleanup (#408)

* Suppress bench logs

* Done

* Update NodeStats.cs

* Fix Test

* Bump version prior to fixing NuGet dependencies for  Stratis.SmartContracts.Tests.Common (#409)

* Rocks DB (#401)

* WIP

* Fix DB connections

* Update CirrusD

* Add RocksDbNative

* Update Stratis.CirrusD.csproj

* Add Snappy

* Fix BlockStoreQueue

* Add switch to program.cs

* Fix Logger

* Cleanup Console Logs

* Add RocksDbChainStore

* Update BlockPuller.cs

* Implement RocksDb KeyValueStore

* Add dbtype switch to StraxD

* NodeStats changes

* KeyValue fix

* Fix Build

* Voting / Wallet Log

* Update ConnectionManager.cs

* Hide bench stats

* Update VersionProvider.cs

* Self Review

* Fix Test

* Update ConnectionManager.cs

* Fix Locks in StakeDB

* Create RocksDbProvenBlockHeaderRepository

* Update RocksDbProvenBlockHeaderRepository.cs

* Add network type to console

* Fix Test

* Update NodeStats.cs

* Add datafolder to nodestats

* Fix Merge

* Revert

* Revert launchsettings

* Add ColdStaking to PushNuGet script (#410)

* Add ColdStaking to PushNuGet script

* Bump Stratis.Bitcoin.IntegrationTests.Common to 1.0.7

* Bump Stratis.Core.Tests.Common to 1.0.7

* Update NEthereum and Stratis.Patricia

* SLN changes

* Clean up commits

* Remove launchSettings change

* Add references

Co-authored-by: Francois de la Rouviere <fassadlr@gmail.com>
Co-authored-by: quantumagi <someguy.fromafrica@gmail.com>

* Conditional invocation (#419)

* Update LaunchSidechainMasternode.ps1 (#420)

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Move interflux namespace (#428)

* Fix null reference (#429)

* Update to 1.0.7.2 (#430)

* Update NBitcoin.csproj (#391)

* Pass along height information for OP_FEDERATION (#379)

* Pass along height information for OP_FEDERATION

* Add defaults

* Add defaults

* Filter Transaction History by Transaction Id (#393)

* Update WalletService.cs

* Add Filter

* Fix Test

* Perform check for cold staking txs

* Add mainnet check points (#400)

* Add MainNet check points

* Fix Tests

* Change gas limit upper bound to 250,000 (#399)

* Add UInt256, serialization methods and CLR updates (#365)

* Add UInt256 serialization methods

* Refactor

* Use UInt256 in InternalExecutor

* Undo unrelated change

* Update TestMessage

* Revert type updates to InternalExecutor

* Update Serializer and PersistentState

* Update package versions

* Update SC packages to version 1.4.0-alpha

* Add serializers and enums

* Add primitive serializer

* Update StandardToken.cs

* Revert change

* Update integration tests

* Use switch/case in Serialize/Deserialize

* Update package versions and remove workaround

* Ensure the right Stratis.SmartContracts.Standards is used by contracts

* Changes based on feedback

* Fix primitive deserialize

* Update standards dll name

* Fix legacy standards dll path

* Don't upgrade standards package of node

* Don't upgrade StandardToken of node

* Don't upgrade standards package of node

* Add Standards forwards compatibility

* Add test case for futuristic contracts

* Fix Token_Standards_Test

* Update RPC_GetReceipt_Returns_Value test

* Cleanup non-required changes

* Validate standards assembly

* Disable automatic downloads

* Add LegacyStandardsDLLs

* Update test

* Bump package versions for Core and Networks

* Bump observer version

* Update package versions

* Refactor

* Revert gitignore

* Revert unnecessary changes

* Revert unnecessary changes

* Update Stratis.SmartContracts.xxx to 2.0.0.0

* Update package version for Stratis.SmartContracts.Tests.Common

* Add TestNet checkpoints (#402)

* Update StraxTest.cs

* Add testnet checkpoints

* Fix Tests

* Update Nuget Scripts and Collateral/FederatedPeg versions

* Bump Version (#403)

* Update some test projects PackageIds and versions

* Update PushNuget.ps1

* Update MaxStandardSigOpsCost and CCTS Max Partials Txs (#404)

* Update Stratis.SmartContracts.CLR.Validation's allowed primitive types (#405)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions (#406)

* Update validator's primitives

* Bump package version

* Bump Stratis.SmartContracts.Core and Stratis.SmartContracts.CLR versions

* Bump Stratis.Bicoin.Features.SmartContracts as well

* Bump Stratis.SmartContracts.Networks

* Update PushSCNuget.ps1

* Fix Finality Bug (#407)

* Fix Finalized Bug

* Fix Build

* Trigger CI

* Fix Tests

* Comments

* Console Cleanup (#408)

* Suppress bench logs

* Done

* Update NodeStats.cs

* Fix Test

* Bump version prior to fixing NuGet dependencies for  Stratis.SmartContracts.Tests.Common (#409)

* Rocks DB (#401)

* WIP

* Fix DB connections

* Update CirrusD

* Add RocksDbNative

* Update Stratis.CirrusD.csproj

* Add Snappy

* Fix BlockStoreQueue

* Add switch to program.cs

* Fix Logger

* Cleanup Console Logs

* Add RocksDbChainStore

* Update BlockPuller.cs

* Implement RocksDb KeyValueStore

* Add dbtype switch to StraxD

* NodeStats changes

* KeyValue fix

* Fix Build

* Voting / Wallet Log

* Update ConnectionManager.cs

* Hide bench stats

* Update VersionProvider.cs

* Self Review

* Fix Test

* Update ConnectionManager.cs

* Fix Locks in StakeDB

* Create RocksDbProvenBlockHeaderRepository

* Update RocksDbProvenBlockHeaderRepository.cs

* Add network type to console

* Fix Test

* Update NodeStats.cs

* Add datafolder to nodestats

* Fix Merge

* Revert

* Revert launchsettings

* Add ColdStaking to PushNuGet script (#410)

* Add ColdStaking to PushNuGet script

* Bump Stratis.Bitcoin.IntegrationTests.Common to 1.0.7

* Bump Stratis.Core.Tests.Common to 1.0.7

* Update to Stratis.RocksDb (#415)

* Prevent changing published packages w/o bumping local version (#411)

* Prevent changing package code of published version - must bump version

* Update comments

* Small refactor

* Ensure Release folder exists

* Check version changes related to project references

* Bump versions

* Refactor

* Refactor

* Fix wallet feature vesion

* Update RocksDb dylibs (#417)

* Update to Stratis.RocksDb

* Update to version 0.0.9.1

* Update RocksDb Nugets

* Update Rocksdb (#418)

* Revert "Dont fetch/process deposits until the CCTS has cleared its suspended transfers (#367)"

This reverts commit 334b4f0.

* Update Nuget

* Update CirrusMain.cs (#422)

* Consolidate outstanding console changes for the MS/Miner (#423)

* update RocksDb Nuget (#424)

* Update Stratis.Bitcoin Assembly info to version 1.0.7.2

* Fix Seeder (#425)

* Fix AddressIndexer Console (#426)

* Update ConnectionManager.cs (#427)

* Fix merge conflicts

Co-authored-by: Francois de la Rouviere <fassadlr@gmail.com>
Co-authored-by: quantumagi <someguy.fromafrica@gmail.com>

* Add signature to coordination payload and improve logging (#432)

* Fix constructor (#433)

* Configurable gas limit and price (#434)

* Recreate event filter on RPC exception

* Clean up

* Fixes & updated deposit confirmation intervals

* Asyncify

* Remove unused

* Add minimum threshold

* Update LaunchSidechainMasternode.ps1

* Add documentation and refactor transaction manager

* Register message type

* comment ETH Height check

* return loaded eth account

* Refactor transaction originator logic

* Default gas price

* Add status endpoint

* Fix data type

* Pass the calculated fee to the builder (#455)

* Add initial Gnosis Safe interface (#466)

* Add reserve balance logic

* Initial Gnosis Safe interface classes

* Filter (#467)

* Update LaunchSidechainMasternode.ps1

* Update LaunchSidechainMasternode.ps1

* Update ethGasLimit

* Refactor conversion transaction state machine (#473)

* Make existing state numbers the same as previous version

* Fix transfer destination

* Increment agent version

* Fix quorum

* Trap invalid transactionId

* Adjust threshold and agent string

* Fix withdrawalAddresses return type

* Comments, creating logger the new way

* clean usings

* htmldoc for IConversionRequestRepository

* more htmldocs

* Fix tests

* Bump CI

* remove unused InteropRequestRepository

* Update CirrusTest.cs (#491)

* Removed InteropRequestKeyValueStore and InteropRequest bc unused

* fix namespaces

* Move IConversionRequestKeyValueStore and IConversionRequestRepository to the files with implementation

* Move interface and fix namespace

* Post-merge fixes

* [Masternode] Migrate Powershell Script to .NET Console app (#488)

* Add project

* Start and initialize main chain node

* Add main net sync check

* Update NodeController.cs

* Add main and side chain start up checks

* Add collateral wallet checks

* Add wallet fee checks for both chains

* Testing

* Tested up to both nodes syncing and wallet gen

* Add federation key check/generation

* Add monitoring

* Self Review

* Self Review

* Changes based on review

* Fix Tests

* Fixes for PJ (#498)

* [Cirrus] Add ability to have a non-miner join the devmode network (#497)

* Add ability to have a non-miner join devmode network

* Review

* Fix full node event publishing (#499)

* Fix event publishing

* Update FullNode.cs

* Wire in fee distribution

* Fix GetSigOpCount and revert earlier workaround (#493)

* Fix GetSigOpCount and revert earlier workaround

* Add network argument

* Add network argument

* Update FederationWalletManager.cs (#500)

* Bump version

* Fix
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants