Exemplo n.º 1
0
        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());
        }
        public void ChangeTrustOperation()
        {
            // GC5SIC4E3V56VOHJ3OZAX5SJDTWY52JYI2AFK6PUGSXFVRJQYQXXZBZF
            KeyPair source    = KeyPair.FromSeed("SC4CGETADVYTCR5HEAVZRB3DZQY5Y4J7RFNJTRA6ESMHIPEZUSTE2QDK");
            var     assetCode = "EUR";
            var     asset     = new Asset(assetCode, source);

            long limit = 100;

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

            Assert.AreEqual(source.Address, operation.SourceAccount.Address);
            Assert.AreEqual(assetCode, operation.Asset.Code);
            Assert.AreEqual(asset.Issuer.Address, operation.Asset.Issuer.Address);
            Assert.AreEqual(asset.Type, operation.Asset.Type);
            Assert.AreEqual(limit, operation.Limit);
            Assert.AreEqual("AAAAAQAAAAC7JAuE3XvquOnbsgv2SRztjuk4RoBVefQ0rlrFMMQvfAAAAAYAAAABRVVSAAAAAAC7JAuE3XvquOnbsgv2SRztjuk4RoBVefQ0rlrFMMQvfAAAAAAAAABk",
                            operation.ToXdrBase64());

            Stellar.Generated.Operation xdr             = operation.ToXDR();
            ChangeTrustOperation        parsedOperation = Stellar.ChangeTrustOperation.FromXDR(xdr);

            Assert.AreEqual(source.Address, parsedOperation.SourceAccount.Address);
            Assert.AreEqual("EUR", parsedOperation.Asset.Code);
            Assert.AreEqual(source.Address, parsedOperation.Asset.Issuer.Address);
            Assert.AreEqual(limit, parsedOperation.Limit);
        }
Exemplo n.º 3
0
        private static async Task <SubmitTransactionResponse> SendAllowKinTrustOperation(KeyPair account, AccountResponse accountResponse)
        {
            ChangeTrustOperation.Builder changeTrustOperationBuilder = new ChangeTrustOperation.Builder((AssetTypeCreditAlphaNum)KinAsset,
                                                                                                        TRUST_NO_LIMIT_VALUE).SetSourceAccount(account);

            ChangeTrustOperation changeTrustOperation = changeTrustOperationBuilder.Build();

            Transaction.Builder allowKinTrustTransaction =
                new Transaction.Builder(new Account(account, accountResponse.SequenceNumber)).AddOperation(changeTrustOperation);

            Transaction transaction = allowKinTrustTransaction.Build();

            transaction.Sign(account);
            return(await Server.SubmitTransaction(transaction).ConfigureAwait(false));
        }