public TransferRequest(
     VirtualAssetType virtualAssetType,
     TransferType transferType,
     string amount)
 {
     VirtualAssetType = virtualAssetType;
     TransferType     = transferType;
     Amount           = amount;
 }
Ejemplo n.º 2
0
 public TransferReply(
     VirtualAssetType virtualAssetType,
     TransferType transferType,
     string amount,
     string destinationAddress)
 {
     VirtualAssetType   = virtualAssetType;
     TransferType       = transferType;
     Amount             = amount;
     DestinationAddress = destinationAddress;
 }
        public Transaction GenerateTransactionData(
            string originatorFullName,
            string originatorVaan,
            PlaceOfBirth originatorPlaceOfBirth,
            PostalAddress originatorPostalAddress,
            string beneficiaryFullName,
            string beneficiaryVaan,
            VirtualAssetType asset,
            decimal amount,
            NaturalPersonId[] naturalPersonIds,
            JuridicalPersonId[] juridicalPersonIds,
            string bic,
            TransactionType type)
        {
            var sanitizedBeneficiaryVaan = beneficiaryVaan.Replace(" ", "");
            var sanitizedOriginatorVaan  = originatorVaan.Replace(" ", "");

            var transaction = new Transaction
            {
                Status = TransactionStatus.Created,
                OriginatorPostalAddress = originatorPostalAddress,
                OriginatorPlaceOfBirth  = originatorPlaceOfBirth,
                Amount                       = amount,
                Asset                        = asset,
                Id                           = Guid.NewGuid().ToString(),
                CreationDateTime             = DateTime.UtcNow,
                BeneficiaryVaan              = sanitizedBeneficiaryVaan,
                OriginatorVaan               = sanitizedOriginatorVaan,
                OriginatorFullName           = originatorFullName,
                BeneficiaryFullName          = beneficiaryFullName,
                OriginatorJuridicalPersonIds = juridicalPersonIds,
                OriginatorBic                = bic,
                OriginatorNaturalPersonIds   = naturalPersonIds,
                Type                         = type
            };

            return(transaction);
        }
Ejemplo n.º 4
0
        public void CreateSessionRequest(
            string beneficiaryName,
            string originatorName,
            PostalAddress originatorPostalAddress,
            PlaceOfBirth placeOfBirth,
            VirtualAssetType assetType,
            decimal transferAmount)
        {
            (VaspInformation vaspInfoPerson, VaspContractInfo vaspContractInfoPerson) = VaspInformationBuilder.CreateForNaturalPersonAsync(
                _ethereumRpc,
                _vaspSmartContractAddressPerson,
                _naturalPersonIds,
                placeOfBirth)
                                                                                        .GetAwaiter()
                                                                                        .GetResult();

            VaspClient originator = VaspClient.Create(
                vaspInfoPerson,
                vaspContractInfoPerson,
                _personHandshakePrivateKeyHex,
                _personSignaturePrivateKeyHex,
                _ethereumRpc,
                _whisperRpc,
                _fakeEnsProvider,
                _signService,
                _transportClient);

            (VaspInformation vaspInfoJuridical, VaspContractInfo vaspContractInfoJuridical) = VaspInformationBuilder.CreateForJuridicalPersonAsync(
                _ethereumRpc,
                _vaspSmartContractAddressJuridical,
                _juridicalPersonIds)
                                                                                              .GetAwaiter()
                                                                                              .GetResult();

            VaspClient beneficiary = VaspClient.Create(
                vaspInfoJuridical,
                vaspContractInfoJuridical,
                _juridicalHandshakePrivateKeyHex,
                _juridicalSignaturePrivateKeyHex,
                _ethereumRpc,
                _whisperRpc,
                _fakeEnsProvider,
                _signService,
                _transportClient);

            var originatorVaan  = VirtualAssetssAccountNumber.Create(vaspInfoPerson.GetVaspCode(), "524ee3fb082809");
            var beneficiaryVaan = VirtualAssetssAccountNumber.Create(vaspInfoJuridical.GetVaspCode(), "524ee3fb082809");

            var vaspSession = new VaspSessionWrapper(
                beneficiaryName,
                originator,
                beneficiary);

            VaspSessions[vaspSession.Id] = vaspSession;

            var originatorDoc = Originator.CreateOriginatorForNaturalPerson(
                originatorName,
                originatorVaan,
                originatorPostalAddress,
                placeOfBirth,
                new NaturalPersonId[]
            {
                new NaturalPersonId("Id", NaturalIdentificationType.NationalIdentityNumber, Country.List["DE"]),
            });

            vaspSession.StartSession(originatorDoc, beneficiaryVaan, assetType, transferAmount);
        }
Ejemplo n.º 5
0
        public async Task <Core.Models.Transaction> CreateOutgoingTransactionAsync(
            string originatorFullName,
            string originatorVaan,
            Core.Models.PlaceOfBirth originatorPlaceOfBirth,
            Core.Models.PostalAddress originatorPostalAddress,
            string beneficiaryFullName,
            string beneficiaryVaan,
            VirtualAssetType asset,
            decimal amount)
        {
            var sanitizedBeneficiaryVaan          = beneficiaryVaan.Replace(" ", "");
            var sanitizedOriginatorVaan           = originatorVaan.Replace(" ", "");
            var beneficiaryVaspCode               = sanitizedBeneficiaryVaan.Substring(0, 8);
            var beneficiaryCustomerSpecificNumber = sanitizedBeneficiaryVaan.Substring(8, 14);

            var transaction = new Core.Models.Transaction
            {
                Status = TransactionStatus.Created,
                OriginatorPostalAddress = originatorPostalAddress,
                OriginatorPlaceOfBirth  = originatorPlaceOfBirth,
                Amount              = amount,
                Asset               = asset,
                Id                  = Guid.NewGuid().ToString(),
                CreationDateTime    = DateTime.UtcNow,
                BeneficiaryVaan     = sanitizedBeneficiaryVaan,
                OriginatorVaan      = sanitizedOriginatorVaan,
                OriginatorFullName  = originatorFullName,
                BeneficiaryFullName = beneficiaryFullName,
                SessionId           = await _vaspSessionsManager.CreateSessionAsync(
                    new Originator(
                        originatorFullName,
                        originatorVaan,
                        new OpenVASP.Messaging.Messages.Entities.PostalAddress
                        (
                            originatorPostalAddress.Street,
                            originatorPostalAddress.Building,
                            originatorPostalAddress.AddressLine,
                            originatorPostalAddress.PostCode,
                            originatorPostalAddress.Town,
                            originatorPostalAddress.Country
                        ),
                        new OpenVASP.Messaging.Messages.Entities.PlaceOfBirth
                        (
                            originatorPlaceOfBirth.Date,
                            originatorPlaceOfBirth.Town,
                            originatorPlaceOfBirth.Country
                        ),
                        null,
                        null,
                        null
                        ),
                    VirtualAssetsAccountNumber.Create(beneficiaryVaspCode, beneficiaryCustomerSpecificNumber))
            };

            transaction.Status = TransactionStatus.SessionRequested;

            lock (_outgoingTransactions)
            {
                _outgoingTransactions.Add(transaction);
            }

            return(transaction);
        }
 public async Task TransferRequestAsync(string sessionId, string beneficiaryName, VirtualAssetType type, decimal amount)
 {
     await _originatorSessions[sessionId]
     .TransferRequestAsync(
         new TransferInstruction
     {
         VirtualAssetTransfer = new VirtualAssetTransfer
         {
             TransferType     = TransferType.BlockchainTransfer,
             VirtualAssetType = type,
             TransferAmount   = amount.ToString(CultureInfo.InvariantCulture)
         },
         BeneficiaryName = beneficiaryName
     });
 }