示例#1
0
        public bool validateTransactionOptions(ITransactionOptions options)
        {
            IOutputAgent optionsAgent = options.agent;

            if (options.value < 0)
            {
                return(false);
            }

            bool isValidTronAddress = TronAddress.ValidateAddress(optionsAgent.address);

            if (!isValidTronAddress)
            {
                return(false);
            }

            byte[] primaryKeyBytes = StringHelper.GetBytesAdressFromString(optionsAgent.privateKey);
            try
            {
                KeyTriple keyTriple = new KeyTriple(primaryKeyBytes.ToHexString2());
            }
            catch (FormatException)
            {
                return(false);
            }

            bool isBelongsPublicKeyToPrivateKey =
                TronAddress.isBelongsPublicKeyToPrivateKey(optionsAgent.privateKey, optionsAgent.address);

            if (!isBelongsPublicKeyToPrivateKey)
            {
                return(false);
            }

            ITransactionCredentials credentials = options.credentials;
            bool isValidTronCredentialsAddress  = TronAddress.ValidateAddress(credentials.address);

            if (!isValidTronCredentialsAddress)
            {
                return(false);
            }

            if (!isValidateAmountInSatoshiByMax(options.value))
            {
                return(false);
            }

            long balanceAgent = balanceByAddress(optionsAgent.address);

            if (balanceAgent < options.value)
            {
                return(false);
            }

            return(true);
        }
 public TransactionOptionsModels(IOutputAgent agent, ITransactionCredentials credentials, long value)
 {
     this.agent       = agent;
     this.credentials = credentials;
     this.value       = value;
 }