Exemple #1
0
        public BeneficiarySession(
            VaspContractInfo beneficiaryVaspContractInfo,
            VaspInformation beneficiaryVasp,
            string sessionId,
            string counterpartyTopic,
            string counterPartyPubSigningKey,
            string sharedKey,
            string privateSigningKey,
            IWhisperRpc whisperRpc,
            IVaspMessageHandler vaspMessageHandler,
            ITransportClient transportClient,
            ISignService signService)
            : base(
                beneficiaryVaspContractInfo,
                beneficiaryVasp,
                counterPartyPubSigningKey,
                sharedKey,
                privateSigningKey,
                whisperRpc,
                transportClient,
                signService)
        {
            this.SessionId           = sessionId;
            this.CounterPartyTopic   = counterpartyTopic;
            this._vaspMessageHandler = vaspMessageHandler;

            _messageHandlerResolverBuilder.AddHandler(typeof(TransferRequestMessage), new TransferRequestMessageHandler(
                                                          async(message, cancellationToken) =>
            {
                await _vaspMessageHandler.TransferRequestHandlerAsync(message, this);
            }));

            _messageHandlerResolverBuilder.AddHandler(typeof(TransferDispatchMessage), new TransferDispatchMessageHandler(
                                                          async(message, cancellationToken) =>
            {
                await _vaspMessageHandler.TransferDispatchHandlerAsync(message, this);
            }));

            _messageHandlerResolverBuilder.AddHandler(typeof(TerminationMessage),
                                                      new TerminationMessageHandler(async(message, token) =>
            {
                _hasReceivedTerminationMessage = true;
                await TerminateAsync(message.GetMessageCode());
            }));
        }
 public VaspSession(
     VaspContractInfo vaspContractInfo,
     VaspInformation vaspInfo,
     string counterPartyPubSigningKey,
     string sharedEncryptionKey,
     string privateSigningKey,
     IWhisperRpc whisperRpc,
     ITransportClient transportClient,
     ISignService signService)
 {
     this._vaspInfo                      = vaspInfo;
     this._vaspContractInfo              = vaspContractInfo;
     this._sessionTopic                  = TopicGenerator.GenerateSessionTopic();
     this._cancellationTokenSource       = new CancellationTokenSource();
     this._whisperRpc                    = whisperRpc;
     this._sharedKey                     = sharedEncryptionKey;
     this._privateSigningKey             = privateSigningKey;
     this._counterPartyPubSigningKey     = counterPartyPubSigningKey;
     this._messageHandlerResolverBuilder = new MessageHandlerResolverBuilder();
     this._transportClient               = transportClient;
     this._signService                   = signService;
 }
Exemple #3
0
        public OriginatorSession(
            Originator originator,
            VaspContractInfo originatorVaspContractInfo,
            VaspInformation originatorVasp,
            VirtualAssetsAccountNumber beneficiaryVaan,
            string beneficiaryPubSigningKey,
            string beneficiaryPubHandshakeKey,
            string sharedEncryptionKey,
            string pubEncryptionKey,
            string privateSigningKey,
            IWhisperRpc whisperRpc,
            ITransportClient transportClient,
            ISignService signService,
            IOriginatorVaspCallbacks originatorVaspCallbacks)
        //IEnsProvider ensProvider)
            : base(
                originatorVaspContractInfo,
                originatorVasp,
                beneficiaryPubSigningKey,
                sharedEncryptionKey,
                privateSigningKey,
                whisperRpc,
                transportClient,
                signService)
        {
            this._beneficiaryVaan            = beneficiaryVaan;
            this.SessionId                   = Guid.NewGuid().ToString();
            this._beneficiaryPubHandshakeKey = beneficiaryPubHandshakeKey;
            this._pubEncryptionKey           = pubEncryptionKey;
            this._originatorVaspCallbacks    = originatorVaspCallbacks;
            //this._ensProvider = ensProvider;
            this._originator = originator;

            _messageHandlerResolverBuilder.AddHandler(typeof(SessionReplyMessage),
                                                      new SessionReplyMessageHandler((sessionReplyMessage, token) =>
            {
                this.CounterPartyTopic = sessionReplyMessage.HandShake.TopicB;
                return(_originatorVaspCallbacks.SessionReplyMessageHandlerAsync(sessionReplyMessage, this));
            }));

            _messageHandlerResolverBuilder.AddHandler(typeof(TransferReplyMessage),
                                                      new TransferReplyMessageHandler((transferReplyMessage, token) =>
            {
                return(_originatorVaspCallbacks.TransferReplyMessageHandlerAsync(transferReplyMessage, this));
            }));

            _messageHandlerResolverBuilder.AddHandler(typeof(TransferConfirmationMessage),
                                                      new TransferConfirmationMessageHandler((transferDispatchMessage, token) =>
            {
                return(_originatorVaspCallbacks.TransferConfirmationMessageHandlerAsync(transferDispatchMessage,
                                                                                        this));
            }));

            _messageHandlerResolverBuilder.AddHandler(typeof(TerminationMessage),
                                                      new TerminationMessageHandler(async(message, token) =>
            {
                _hasReceivedTerminationMessage = true;

                await TerminateAsync(message.GetMessageCode());
            }));
        }