Пример #1
0
        private bool CheckStellarVIsValidVote(TransactionResponse rec)
        {
            try
            {
                var bytes      = rec.EnvelopeXdr.ToCharArray();
                var txEnvelope = stellar_dotnet_sdk.xdr.TransactionEnvelope
                                 .Decode(new stellar_dotnet_sdk.xdr.XdrDataInputStream(Convert.FromBase64CharArray(bytes, 0, bytes.Length)));
                var feeBumpTx = FeeBumpTransaction.FromEnvelopeXdr(txEnvelope);
                var ops       = feeBumpTx.InnerTransaction.Operations;
                foreach (PaymentOperation op in ops)
                {
                    var asset = op.Asset as AssetTypeCreditAlphaNum12;
                    var code  = asset?.Code;
                    if (code == this.VoteToken)
                    {
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                return(false);
            }

            return(false);
        }
 public TransactionResponse(string hash, uint ledger, string createdAt, string sourceAccount, string feeAccount, bool successful,
                            string pagingToken, long sourceAccountSequence, long maxFee, long feeCharged, int operationCount, string envelopeXdr,
                            string resultXdr, string resultMetaXdr, Memo memo, List <String> signatures,
                            FeeBumpTransaction feeBumpTransaction, InnerTransaction innerTransaction, TransactionResponseLinks links)
 {
     Hash                  = hash;
     Ledger                = ledger;
     CreatedAt             = createdAt;
     SourceAccount         = sourceAccount;
     FeeAccount            = feeAccount;
     Successful            = successful;
     PagingToken           = pagingToken;
     SourceAccountSequence = sourceAccountSequence;
     MaxFee                = maxFee;
     FeeCharged            = feeCharged;
     OperationCount        = operationCount;
     EnvelopeXdr           = envelopeXdr;
     ResultXdr             = resultXdr;
     ResultMetaXdr         = resultMetaXdr;
     Memo                  = memo;
     Signatures            = signatures;
     FeeBumpTx             = feeBumpTransaction;
     InnerTx               = innerTransaction;
     Links                 = links;
 }
 public static void Encode(XdrDataOutputStream stream, FeeBumpTransaction encodedFeeBumpTransaction)
 {
     MuxedAccount.Encode(stream, encodedFeeBumpTransaction.FeeSource);
     Int64.Encode(stream, encodedFeeBumpTransaction.Fee);
     FeeBumpTransactionInnerTx.Encode(stream, encodedFeeBumpTransaction.InnerTx);
     FeeBumpTransactionExt.Encode(stream, encodedFeeBumpTransaction.Ext);
 }
        public static FeeBumpTransaction Decode(XdrDataInputStream stream)
        {
            FeeBumpTransaction decodedFeeBumpTransaction = new FeeBumpTransaction();

            decodedFeeBumpTransaction.FeeSource = MuxedAccount.Decode(stream);
            decodedFeeBumpTransaction.Fee       = Int64.Decode(stream);
            decodedFeeBumpTransaction.InnerTx   = FeeBumpTransactionInnerTx.Decode(stream);
            decodedFeeBumpTransaction.Ext       = FeeBumpTransactionExt.Decode(stream);
            return(decodedFeeBumpTransaction);
        }
Пример #5
0
        public static void Encode(XdrDataOutputStream stream, FeeBumpTransactionEnvelope encodedFeeBumpTransactionEnvelope)
        {
            FeeBumpTransaction.Encode(stream, encodedFeeBumpTransactionEnvelope.Tx);
            int signaturessize = encodedFeeBumpTransactionEnvelope.Signatures.Length;

            stream.WriteInt(signaturessize);
            for (int i = 0; i < signaturessize; i++)
            {
                DecoratedSignature.Encode(stream, encodedFeeBumpTransactionEnvelope.Signatures[i]);
            }
        }
Пример #6
0
            public static void Encode(XdrDataOutputStream stream, TransactionSignaturePayloadTaggedTransaction encodedTransactionSignaturePayloadTaggedTransaction)
            {
                stream.WriteInt((int)encodedTransactionSignaturePayloadTaggedTransaction.Discriminant.InnerValue);
                switch (encodedTransactionSignaturePayloadTaggedTransaction.Discriminant.InnerValue)
                {
                case EnvelopeType.EnvelopeTypeEnum.ENVELOPE_TYPE_TX:
                    Transaction.Encode(stream, encodedTransactionSignaturePayloadTaggedTransaction.Tx);
                    break;

                case EnvelopeType.EnvelopeTypeEnum.ENVELOPE_TYPE_TX_FEE_BUMP:
                    FeeBumpTransaction.Encode(stream, encodedTransactionSignaturePayloadTaggedTransaction.FeeBump);
                    break;
                }
            }
Пример #7
0
        public static FeeBumpTransactionEnvelope Decode(XdrDataInputStream stream)
        {
            FeeBumpTransactionEnvelope decodedFeeBumpTransactionEnvelope = new FeeBumpTransactionEnvelope();

            decodedFeeBumpTransactionEnvelope.Tx = FeeBumpTransaction.Decode(stream);
            int signaturessize = stream.ReadInt();

            decodedFeeBumpTransactionEnvelope.Signatures = new DecoratedSignature[signaturessize];
            for (int i = 0; i < signaturessize; i++)
            {
                decodedFeeBumpTransactionEnvelope.Signatures[i] = DecoratedSignature.Decode(stream);
            }
            return(decodedFeeBumpTransactionEnvelope);
        }
Пример #8
0
            public static TransactionSignaturePayloadTaggedTransaction Decode(XdrDataInputStream stream)
            {
                TransactionSignaturePayloadTaggedTransaction decodedTransactionSignaturePayloadTaggedTransaction = new TransactionSignaturePayloadTaggedTransaction();
                EnvelopeType discriminant = EnvelopeType.Decode(stream);

                decodedTransactionSignaturePayloadTaggedTransaction.Discriminant = discriminant;
                switch (decodedTransactionSignaturePayloadTaggedTransaction.Discriminant.InnerValue)
                {
                case EnvelopeType.EnvelopeTypeEnum.ENVELOPE_TYPE_TX:
                    decodedTransactionSignaturePayloadTaggedTransaction.Tx = Transaction.Decode(stream);
                    break;

                case EnvelopeType.EnvelopeTypeEnum.ENVELOPE_TYPE_TX_FEE_BUMP:
                    decodedTransactionSignaturePayloadTaggedTransaction.FeeBump = FeeBumpTransaction.Decode(stream);
                    break;
                }
                return(decodedTransactionSignaturePayloadTaggedTransaction);
            }
 public void Initialize()
 {
     BaseFee           = 100;
     NetworkPassphrase = "Standalone Network ; February 2017";
     Network           = new Network(NetworkPassphrase);
     InnerSource       = KeyPair.FromSecretSeed(Network.NetworkId);
     InnerAccount      = new Account(InnerSource.AccountId, 7);
     Destination       = KeyPair.FromAccountId("GDQERENWDDSQZS7R7WKHZI3BSOYMV3FSWR7TFUYFTKQ447PIX6NREOJM");
     Amount            = "2000.0000000";
     Asset             = new AssetTypeNative();
     InnerTransaction  = new TransactionBuilder(InnerAccount)
                         .SetFee(100)
                         .AddTimeBounds(new TimeBounds(0, 0))
                         .AddOperation(
         new PaymentOperation.Builder(Destination, Asset, Amount)
         .Build())
                         .AddMemo(new MemoText("Happy birthday!"))
                         .Build();
     InnerTransaction.Sign(InnerSource, Network);
     FeeSource   = KeyPair.FromSecretSeed("SB7ZMPZB3YMMK5CUWENXVLZWBK4KYX4YU5JBXQNZSK2DP2Q7V3LVTO5V");
     Transaction = TransactionBuilder.BuildFeeBumpTransaction(FeeSource, InnerTransaction, 100);
 }