protected override void Load(ContainerBuilder builder) { _fakeEnsProvider = new FakeEnsProvider(); _signService = new WhisperSignService(); _whisperRpc = new WhisperRpc(new Web3(_appSettings.WhisperRpcUri), new WhisperMessageFormatter()); _ethereumRpc = new EthereumRpc(new Web3(_appSettings.EthereumRpcUri)); _transportClient = new TransportClient(_whisperRpc, _signService, new WhisperMessageFormatter()); var vaspInformationBuilder = new VaspInformationBuilder(_ethereumRpc); var(vaspInfo, vaspContractInfo) = vaspInformationBuilder.Create( _appSettings.VaspSmartContractAddress); var originator = VaspClient.Create( vaspInfo, vaspContractInfo, _appSettings.HandshakePrivateKeyHex, _appSettings.SignaturePrivateKeyHex, _ethereumRpc, _whisperRpc, _fakeEnsProvider, _signService, _transportClient); builder.RegisterInstance(vaspInfo); builder.RegisterInstance(vaspContractInfo); builder.RegisterInstance(originator); builder.RegisterType <TransactionsManager>() .SingleInstance() .AsSelf() .AutoActivate(); base.Load(builder); }
public static VaspClient Create( VaspInformation vaspInfo, VaspContractInfo vaspContractInfo, string handshakePrivateKeyHex, string signaturePrivateKeyHex, IEthereumRpc nodeClientEthereumRpc, IWhisperRpc nodeClientWhisperRpc, IEnsProvider ensProvider, ISignService signService, ITransportClient transportClient) { var handshakeKey = ECDH_Key.ImportKey(handshakePrivateKeyHex); var vaspClient = new VaspClient( handshakeKey, signaturePrivateKeyHex, vaspContractInfo, vaspInfo, nodeClientEthereumRpc, nodeClientWhisperRpc, ensProvider, transportClient, signService); return(vaspClient); }
public VaspSessionService() { _fakeEnsProvider = new FakeEnsProvider(); _signService = new WhisperSignService(); _whisperRpc = new WhisperRpc(new Web3(_whisperRpcUrl), new WhisperMessageFormatter()); _ethereumRpc = new EthereumRpc(new Web3(_ethereumRpcUrl)); _transportClient = new TransportClient(_whisperRpc, _signService, new WhisperMessageFormatter()); }
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; }
//TODO: Get rid of Whisper completely private VaspClient( ECDH_Key handshakeKey, string signatureHexKey, VaspContractInfo vaspContractInfo, VaspInformation vaspInfo, IEthereumRpc nodeClientEthereumRpc, IWhisperRpc nodeClientWhisperRpc, IEnsProvider ensProvider, ITransportClient transportClient, ISignService signService) { this._handshakeKey = handshakeKey; this._signatureKey = signatureHexKey; this._vaspContractInfo = vaspContractInfo; this.VaspInfo = vaspInfo; this._ethereumRpc = nodeClientEthereumRpc; this._whisperRpc = nodeClientWhisperRpc; this._cancellationTokenSource = new CancellationTokenSource(); this._ensProvider = ensProvider; this._transportClient = transportClient; this._signService = signService; }
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()); })); }
public TransportClient(IWhisperRpc whisper, ISignService signService, IMessageFormatter messageFormatter) { _whisper = whisper; _signService = signService; _messageFormatter = messageFormatter; }