public void TestCreatePassiveOfferOperation() { // GC5SIC4E3V56VOHJ3OZAX5SJDTWY52JYI2AFK6PUGSXFVRJQYQXXZBZF var source = KeyPair.FromSecretSeed("SC4CGETADVYTCR5HEAVZRB3DZQY5Y4J7RFNJTRA6ESMHIPEZUSTE2QDK"); // GBCP5W2VS7AEWV2HFRN7YYC623LTSV7VSTGIHFXDEJU7S5BAGVCSETRR var issuer = KeyPair.FromSecretSeed("SA64U7C5C7BS5IHWEPA7YWFN3Z6FE5L6KAMYUIT4AQ7KVTVLD23C6HEZ"); Asset selling = new AssetTypeNative(); var buying = Asset.CreateNonNativeAsset("USD", issuer); var amount = "0.00001"; var price = "2.93850088"; // n=36731261 d=12500000 var priceObj = Price.FromString(price); var operation = new CreatePassiveOfferOperation.Builder(selling, buying, amount, price) .SetSourceAccount(source) .Build(); var xdr = operation.ToXdr(); var parsedOperation = (CreatePassiveOfferOperation)Operation.FromXdr(xdr); Assert.AreEqual(100L, xdr.Body.CreatePassiveOfferOp.Amount.InnerValue); Assert.IsTrue(parsedOperation.Selling is AssetTypeNative); Assert.IsTrue(parsedOperation.Buying is AssetTypeCreditAlphaNum4); Assert.IsTrue(parsedOperation.Buying.Equals(buying)); Assert.AreEqual(amount, parsedOperation.Amount); Assert.AreEqual(price, parsedOperation.Price); Assert.AreEqual(priceObj.Numerator, 36731261); Assert.AreEqual(priceObj.Denominator, 12500000); Assert.AreEqual( "AAAAAQAAAAC7JAuE3XvquOnbsgv2SRztjuk4RoBVefQ0rlrFMMQvfAAAAAQAAAAAAAAAAVVTRAAAAAAARP7bVZfAS1dHLFv8YF7W1zlX9ZTMg5bjImn5dCA1RSIAAAAAAAAAZAIweX0Avrwg", operation.ToXdrBase64()); }
/// <summary> /// Create an asset base on the parameters. /// </summary> /// <param name="type"></param> /// <param name="code"></param> /// <param name="issuer"></param> /// <returns>Asset</returns> public static Asset Create(String type, String code, String issuer) { if (type == "native") { return(new AssetTypeNative()); } else { return(Asset.CreateNonNativeAsset(code, issuer)); } }