コード例 #1
0
    public static uint256 CalculateHash(
        DateTimeOffset inputRegistrationStart,
        TimeSpan inputRegistrationTimeout,
        TimeSpan connectionConfirmationTimeout,
        TimeSpan outputRegistrationTimeout,
        TimeSpan transactionSigningTimeout,
        MoneyRange allowedInputAmounts,
        ImmutableSortedSet <ScriptType> allowedInputTypes,
        MoneyRange allowedOutputAmounts,
        ImmutableSortedSet <ScriptType> allowedOutputTypes,
        Network network,
        long feePerK,
        CoordinationFeeRate coordinationFeeRate,
        int maxTransactionSize,
        long minRelayTxFeePerK,
        long maxAmountCredentialValue,
        long maxVsizeCredentialValue,
        long maxVsizeAllocationPerAlice,
        long maxSuggestedAmount,
        CredentialIssuerParameters amountCredentialIssuerParameters,
        CredentialIssuerParameters vsizeCredentialIssuerParameters)
    {
        var hash = StrobeHasher.Create(ProtocolConstants.RoundStrobeDomain)
                   .Append(ProtocolConstants.RoundInputRegistrationStartStrobeLabel, inputRegistrationStart)
                   .Append(ProtocolConstants.RoundInputRegistrationTimeoutStrobeLabel, inputRegistrationTimeout)
                   .Append(ProtocolConstants.RoundConnectionConfirmationTimeoutStrobeLabel, connectionConfirmationTimeout)
                   .Append(ProtocolConstants.RoundOutputRegistrationTimeoutStrobeLabel, outputRegistrationTimeout)
                   .Append(ProtocolConstants.RoundTransactionSigningTimeoutStrobeLabel, transactionSigningTimeout)
                   .Append(ProtocolConstants.RoundAllowedInputAmountsStrobeLabel, allowedInputAmounts)
                   .Append(ProtocolConstants.RoundAllowedInputTypesStrobeLabel, allowedInputTypes)
                   .Append(ProtocolConstants.RoundAllowedOutputAmountsStrobeLabel, allowedOutputAmounts)
                   .Append(ProtocolConstants.RoundAllowedOutputTypesStrobeLabel, allowedOutputTypes)
                   .Append(ProtocolConstants.RoundNetworkStrobeLabel, network.ToString())
                   .Append(ProtocolConstants.RoundFeeRateStrobeLabel, feePerK)
                   .Append(ProtocolConstants.RoundCoordinationFeeRateStrobeLabel, coordinationFeeRate)
                   .Append(ProtocolConstants.RoundMaxTransactionSizeStrobeLabel, maxTransactionSize)
                   .Append(ProtocolConstants.RoundMinRelayTxFeeStrobeLabel, minRelayTxFeePerK)
                   .Append(ProtocolConstants.RoundMaxAmountCredentialValueStrobeLabel, maxAmountCredentialValue)
                   .Append(ProtocolConstants.RoundMaxVsizeCredentialValueStrobeLabel, maxVsizeCredentialValue)
                   .Append(ProtocolConstants.RoundMaxVsizePerAliceStrobeLabel, maxVsizeAllocationPerAlice)
                   .Append(ProtocolConstants.RoundMaxSuggestedAmountLabel, maxSuggestedAmount)
                   .Append(ProtocolConstants.RoundAmountCredentialIssuerParametersStrobeLabel, amountCredentialIssuerParameters)
                   .Append(ProtocolConstants.RoundVsizeCredentialIssuerParametersStrobeLabel, vsizeCredentialIssuerParameters)
                   .GetHash();

        return(hash);
    }
コード例 #2
0
    public RoundParameters(
        WabiSabiConfig wabiSabiConfig,
        Network network,
        WasabiRandom random,
        FeeRate feeRate,
        CoordinationFeeRate coordinationFeeRate)
    {
        Network             = network;
        Random              = random;
        FeeRate             = feeRate;
        CoordinationFeeRate = coordinationFeeRate;

        MaxInputCountByRound = wabiSabiConfig.MaxInputCountByRound;
        MinInputCountByRound = wabiSabiConfig.MinInputCountByRound;
        MinRegistrableAmount = wabiSabiConfig.MinRegistrableAmount;
        MaxRegistrableAmount = wabiSabiConfig.MaxRegistrableAmount;

        // Note that input registration timeouts can be modified runtime.
        StandardInputRegistrationTimeout = wabiSabiConfig.StandardInputRegistrationTimeout;
        ConnectionConfirmationTimeout    = wabiSabiConfig.ConnectionConfirmationTimeout;
        OutputRegistrationTimeout        = wabiSabiConfig.OutputRegistrationTimeout;
        TransactionSigningTimeout        = wabiSabiConfig.TransactionSigningTimeout;
        BlameInputRegistrationTimeout    = wabiSabiConfig.BlameInputRegistrationTimeout;
    }
コード例 #3
0
 public Money CalculateRemainingAmountCredentials(FeeRate feeRate, CoordinationFeeRate coordinationFeeRate) =>
 Coin.EffectiveValue(feeRate, IsPayingZeroCoordinationFee ? CoordinationFeeRate.Zero : coordinationFeeRate);