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()); }
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); }