public static void Encode(XdrDataOutputStream stream, SCPHistoryEntryV0 encodedSCPHistoryEntryV0)
        {
            var quorumSetssize = encodedSCPHistoryEntryV0.QuorumSets.Length;

            stream.WriteInt(quorumSetssize);
            for (var i = 0; i < quorumSetssize; i++)
            {
                SCPQuorumSet.Encode(stream, encodedSCPHistoryEntryV0.QuorumSets[i]);
            }
            LedgerSCPMessages.Encode(stream, encodedSCPHistoryEntryV0.LedgerMessages);
        }
예제 #2
0
        public static void Encode(IByteWriter stream, SCPHistoryEntryV0 encodedSCPHistoryEntryV0)
        {
            int quorumSetssize = encodedSCPHistoryEntryV0.QuorumSets.Length;

            XdrEncoding.EncodeInt32(quorumSetssize, stream);
            for (int i = 0; i < quorumSetssize; i++)
            {
                SCPQuorumSet.Encode(stream, encodedSCPHistoryEntryV0.QuorumSets[i]);
            }
            LedgerSCPMessages.Encode(stream, encodedSCPHistoryEntryV0.LedgerMessages);
        }
예제 #3
0
        public static void Encode(IByteWriter stream, SCPQuorumSet encodedSCPQuorumSet)
        {
            Uint32.Encode(stream, encodedSCPQuorumSet.Threshold);
            int validatorssize = encodedSCPQuorumSet.Validators.Length;

            XdrEncoding.EncodeInt32(validatorssize, stream);
            for (int i = 0; i < validatorssize; i++)
            {
                PublicKey.Encode(stream, encodedSCPQuorumSet.Validators[i]);
            }
            int innerSetssize = encodedSCPQuorumSet.InnerSets.Length;

            XdrEncoding.EncodeInt32(innerSetssize, stream);
            for (int i = 0; i < innerSetssize; i++)
            {
                SCPQuorumSet.Encode(stream, encodedSCPQuorumSet.InnerSets[i]);
            }
        }
예제 #4
0
        public static void Encode(XdrDataOutputStream stream, SCPQuorumSet encodedSCPQuorumSet)
        {
            Uint32.Encode(stream, encodedSCPQuorumSet.Threshold);
            int validatorssize = encodedSCPQuorumSet.Validators.Length;

            stream.WriteInt(validatorssize);
            for (int i = 0; i < validatorssize; i++)
            {
                PublicKey.Encode(stream, encodedSCPQuorumSet.Validators[i]);
            }
            int innerSetssize = encodedSCPQuorumSet.InnerSets.Length;

            stream.WriteInt(innerSetssize);
            for (int i = 0; i < innerSetssize; i++)
            {
                SCPQuorumSet.Encode(stream, encodedSCPQuorumSet.InnerSets[i]);
            }
        }
예제 #5
0
        public static void Encode(XdrDataOutputStream stream, StellarMessage encodedStellarMessage)
        {
            stream.WriteInt((int)encodedStellarMessage.Discriminant.InnerValue);

            switch (encodedStellarMessage.Discriminant.InnerValue)
            {
            case MessageType.MessageTypeEnum.ERROR_MSG:
                Error.Encode(stream, encodedStellarMessage.Error);
                break;

            case MessageType.MessageTypeEnum.HELLO:
                Hello.Encode(stream, encodedStellarMessage.Hello);
                break;

            case MessageType.MessageTypeEnum.AUTH:
                Auth.Encode(stream, encodedStellarMessage.Auth);
                break;

            case MessageType.MessageTypeEnum.DONT_HAVE:
                DontHave.Encode(stream, encodedStellarMessage.DontHave);
                break;

            case MessageType.MessageTypeEnum.GET_PEERS:
                break;

            case MessageType.MessageTypeEnum.PEERS:
                int peerssize = encodedStellarMessage.Peers.Length;
                stream.WriteInt(peerssize);

                for (int i = 0; i < peerssize; i++)
                {
                    PeerAddress.Encode(stream, encodedStellarMessage.Peers[i]);
                }

                break;

            case MessageType.MessageTypeEnum.GET_TX_SET:
                Uint256.Encode(stream, encodedStellarMessage.TxSetHash);
                break;

            case MessageType.MessageTypeEnum.TX_SET:
                TransactionSet.Encode(stream, encodedStellarMessage.TxSet);
                break;

            case MessageType.MessageTypeEnum.TRANSACTION:
                TransactionEnvelope.Encode(stream, encodedStellarMessage.Transaction);
                break;

            case MessageType.MessageTypeEnum.GET_SCP_QUORUMSET:
                Uint256.Encode(stream, encodedStellarMessage.QSetHash);
                break;

            case MessageType.MessageTypeEnum.SCP_QUORUMSET:
                SCPQuorumSet.Encode(stream, encodedStellarMessage.QSet);
                break;

            case MessageType.MessageTypeEnum.SCP_MESSAGE:
                SCPEnvelope.Encode(stream, encodedStellarMessage.Envelope);
                break;

            case MessageType.MessageTypeEnum.GET_SCP_STATE:
                Uint32.Encode(stream, encodedStellarMessage.GetSCPLedgerSeq);
                break;
            }
        }