public void ChangeTrustOperation()
        {
            // GC5SIC4E3V56VOHJ3OZAX5SJDTWY52JYI2AFK6PUGSXFVRJQYQXXZBZF
            var source = KeyPair.FromSeed("SC4CGETADVYTCR5HEAVZRB3DZQY5Y4J7RFNJTRA6ESMHIPEZUSTE2QDK");
            var assetCode = "EUR";
            var asset = new Stellar.Generated.Asset
                        {
                            Discriminant = Stellar.Generated.AssetType.Create(
                                Stellar.Generated.AssetType.AssetTypeEnum.ASSET_TYPE_CREDIT_ALPHANUM4),
                            AlphaNum4 = new Stellar.Generated.Asset.AssetAlphaNum4
                            {
                                AssetCode = Encoding.ASCII.GetBytes(assetCode),
                                Issuer = source.AccountId
                            }
                        };

            long limit = 100;

            ChangeTrustOperation operation = new ChangeTrustOperation.Builder(asset, limit)
                .SetSourceAccount(source)
                .Build();

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

            Assert.AreEqual(source.Address, parsedOperation.SourceAccount.Address);
            Assert.AreEqual("EUR", Encoding.ASCII.GetString(parsedOperation.Asset.AlphaNum4.AssetCode));
            Assert.AreEqual(Stellar.Generated.AssetType.AssetTypeEnum.ASSET_TYPE_CREDIT_ALPHANUM4,
                            parsedOperation.Asset.Discriminant.InnerValue);
            Assert.AreEqual(limit, parsedOperation.Limit);
            Assert.AreEqual("AAAAAQAAAAC7JAuE3XvquOnbsgv2SRztjuk4RoBVefQ0rlrFMMQvfAAAAAYAAAABRVVSAAAAAAC7JAuE3XvquOnbsgv2SRztjuk4RoBVefQ0rlrFMMQvfAAAAAAAAABk",
                    operation.ToXdrBase64());
        }
Ejemplo n.º 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;
 }