public void PaymentOperation()
        {
            // GC5SIC4E3V56VOHJ3OZAX5SJDTWY52JYI2AFK6PUGSXFVRJQYQXXZBZF
            KeyPair source = KeyPair.FromSeed("SC4CGETADVYTCR5HEAVZRB3DZQY5Y4J7RFNJTRA6ESMHIPEZUSTE2QDK");
            // GDW6AUTBXTOC7FIKUO5BOO3OGLK4SF7ZPOBLMQHMZDI45J2Z6VXRB5NR
            KeyPair destination = KeyPair.FromSeed("SDHZGHURAYXKU2KMVHPOXI6JG2Q4BSQUQCEOY72O3QQTCLR2T455PMII");

            Stellar.Generated.Asset asset = Stellar.Asset.Native();
            long amount = 1000;

            PaymentOperation operation = new PaymentOperation.Builder(destination, asset, amount)
                .SetSourceAccount(source)
                .Build();

            Stellar.Generated.Operation xdr = operation.ToXdr();
            PaymentOperation parsedOperation = (PaymentOperation)Operation.FromXdr(xdr);

            Assert.AreEqual(source.Address, parsedOperation.SourceAccount.Address);
            Assert.AreEqual(destination.Address, parsedOperation.Destination.Address);
            //Assert.IsTrue(parsedOperation.Asset instanceof AssetTypeNative);
            Assert.AreEqual(amount, parsedOperation.Amount);

            Assert.AreEqual(
                    "AAAAAQAAAAC7JAuE3XvquOnbsgv2SRztjuk4RoBVefQ0rlrFMMQvfAAAAAEAAAAA7eBSYbzcL5UKo7oXO24y1ckX+XuCtkDsyNHOp1n1bxAAAAAAAAAAAAAAA+g=",
                    operation.ToXdrBase64());
        }
Exemple #2
0
        public static Operation FromXdr(Generated.Operation xdr)
        {
            var       body      = xdr.Body;
            Operation operation = null;

            switch (body.Discriminant.InnerValue)
            {
            case Generated.OperationType.OperationTypeEnum.CREATE_ACCOUNT:
                operation = new CreateAccountOperation.Builder(body.CreateAccountOp).Build();
                break;

            case Generated.OperationType.OperationTypeEnum.PAYMENT:
                operation = new PaymentOperation.Builder(body.PaymentOp).Build();
                break;

            case Generated.OperationType.OperationTypeEnum.PATH_PAYMENT:
                //operation = new PathPaymentOperation.Builder(body.getPathPaymentOp()).build();
                break;

            case Generated.OperationType.OperationTypeEnum.MANAGE_OFFER:
                //operation = new ManagerOfferOperation.Builder(body.getManageOfferOp()).build();
                break;

            case Generated.OperationType.OperationTypeEnum.CREATE_PASSIVE_OFFER:
                //operation = new CreatePassiveOfferOperation.Builder(body.getCreatePassiveOfferOp()).build();
                break;

            case Generated.OperationType.OperationTypeEnum.SET_OPTIONS:
                //operation = new SetOptionsOperation.Builder(body.getSetOptionsOp()).build();
                break;

            case Generated.OperationType.OperationTypeEnum.CHANGE_TRUST:
                operation = new ChangeTrustOperation.Builder(body.ChangeTrustOp).Build();
                break;

            case Generated.OperationType.OperationTypeEnum.ALLOW_TRUST:
                //operation = new AllowTrustOperation.Builder(body.getAllowTrustOp()).build();
                break;

            case Generated.OperationType.OperationTypeEnum.ACCOUNT_MERGE:
                //operation = new AccountMergeOperation.Builder(body).build();
                break;

            default:
                throw new Exception("Unknown operation body " + body.Discriminant.InnerValue);
            }
            if (xdr.SourceAccount != null)
            {
                operation.SourceAccount = KeyPair.FromXdrPublicKey(xdr.SourceAccount.InnerValue);
            }
            return(operation);
        }
 public static Operation FromXdr(Generated.Operation xdr)
 {
     var body = xdr.Body;
     Operation operation = null;
     switch (body.Discriminant.InnerValue)
     {
         case Generated.OperationType.OperationTypeEnum.CREATE_ACCOUNT:
             //operation = new CreateAccountOperation.Builder(body.CreateAccountOp).Build();
             break;
         case Generated.OperationType.OperationTypeEnum.PAYMENT:
             operation = new PaymentOperation.Builder(body.PaymentOp).Build();
             break;
         case Generated.OperationType.OperationTypeEnum.PATH_PAYMENT:
             //operation = new PathPaymentOperation.Builder(body.getPathPaymentOp()).build();
             break;
         case Generated.OperationType.OperationTypeEnum.MANAGE_OFFER:
             //operation = new ManagerOfferOperation.Builder(body.getManageOfferOp()).build();
             break;
         case Generated.OperationType.OperationTypeEnum.CREATE_PASSIVE_OFFER:
             //operation = new CreatePassiveOfferOperation.Builder(body.getCreatePassiveOfferOp()).build();
             break;
         case Generated.OperationType.OperationTypeEnum.SET_OPTIONS:
             //operation = new SetOptionsOperation.Builder(body.getSetOptionsOp()).build();
             break;
         case Generated.OperationType.OperationTypeEnum.CHANGE_TRUST:
             operation = new ChangeTrustOperation.Builder(body.ChangeTrustOp).Build();
             break;
         case Generated.OperationType.OperationTypeEnum.ALLOW_TRUST:
             //operation = new AllowTrustOperation.Builder(body.getAllowTrustOp()).build();
             break;
         case Generated.OperationType.OperationTypeEnum.ACCOUNT_MERGE:
             //operation = new AccountMergeOperation.Builder(body).build();
             break;
         default:
             throw new Exception("Unknown operation body " + body.Discriminant.InnerValue);
     }
     if (xdr.SourceAccount != null)
     {
         operation.SourceAccount = KeyPair.FromXdrPublicKey(xdr.SourceAccount.InnerValue);
     }
     return operation;
 }
        static void PaymentFromMaster(KeyPair kp, long amount)
        {
            // get master
            var master = KeyPair.Master();
            Account masterSource = new Account(master, 1);

            // load asset
            Stellar.Generated.Asset asset = Stellar.Asset.Native();

            var operation =
                new PaymentOperation.Builder(kp, asset, amount)
                .SetSourceAccount(masterSource.KeyPair)
                .Build();

            masterSource.IncrementSequenceNumber();

            Stellar.Transaction transaction =
                new Stellar.Transaction.Builder(masterSource)
                .AddOperation(operation)
                .Build();

            transaction.Sign(masterSource.KeyPair);

            string message = transaction.ToEnvelopeXdrBase64();

            string response = GetResult(message);

            Console.WriteLine(response);
        }