public override xdr.Asset ToXdr() { var thisXdr = new xdr.Asset(); thisXdr.Discriminant = AssetType.Create(AssetType.AssetTypeEnum.ASSET_TYPE_NATIVE); return(thisXdr); }
public override sdkxdr.Operation.OperationBody ToOperationBody() { var op = new sdkxdr.PathPaymentStrictReceiveOp(); // sendAsset op.SendAsset = SendAsset.ToXdr(); // sendMax var sendMax = new sdkxdr.Int64(); sendMax.InnerValue = ToXdrAmount(SendMax); op.SendMax = sendMax; // destination op.Destination = Destination.MuxedAccount; // destAsset op.DestAsset = DestAsset.ToXdr(); // destAmount var destAmount = new sdkxdr.Int64(); destAmount.InnerValue = ToXdrAmount(DestAmount); op.DestAmount = destAmount; // path var path = new sdkxdr.Asset[Path.Length]; for (var i = 0; i < Path.Length; i++) { path[i] = Path[i].ToXdr(); } op.Path = path; var body = new sdkxdr.Operation.OperationBody(); body.Discriminant = sdkxdr.OperationType.Create(sdkxdr.OperationType.OperationTypeEnum.PATH_PAYMENT_STRICT_RECEIVE); body.PathPaymentStrictReceiveOp = op; return(body); }
public override xdr.Asset ToXdr() { var thisXdr = new xdr.Asset(); thisXdr.Discriminant = AssetType.Create(AssetType.AssetTypeEnum.ASSET_TYPE_CREDIT_ALPHANUM12); var credit = new xdr.Asset.AssetAlphaNum12(); credit.AssetCode = new AssetCode12(Util.PaddedByteArray(Code, 12)); var accountID = new AccountID(); accountID.InnerValue = KeyPair.FromAccountId(Issuer).XdrPublicKey; credit.Issuer = accountID; thisXdr.AlphaNum12 = credit; return(thisXdr); }
/// <summary> /// Generates Asset object from a given XDR object /// </summary> /// <param name="thisXdr"></param> public static Asset FromXdr(xdr.Asset thisXdr) { switch (thisXdr.Discriminant.InnerValue) { case AssetType.AssetTypeEnum.ASSET_TYPE_NATIVE: return(new AssetTypeNative()); case AssetType.AssetTypeEnum.ASSET_TYPE_CREDIT_ALPHANUM4: var assetCode4 = Util.PaddedByteArrayToString(thisXdr.AlphaNum4.AssetCode.InnerValue); var issuer4 = KeyPair.FromXdrPublicKey(thisXdr.AlphaNum4.Issuer.InnerValue); return(new AssetTypeCreditAlphaNum4(assetCode4, issuer4.AccountId)); case AssetType.AssetTypeEnum.ASSET_TYPE_CREDIT_ALPHANUM12: var assetCode12 = Util.PaddedByteArrayToString(thisXdr.AlphaNum12.AssetCode.InnerValue); var issuer12 = KeyPair.FromXdrPublicKey(thisXdr.AlphaNum12.Issuer.InnerValue); return(new AssetTypeCreditAlphaNum12(assetCode12, issuer12.AccountId)); default: throw new ArgumentException("Unknown asset type " + thisXdr.Discriminant.InnerValue); } }
public override sdkxdr.Operation.OperationBody ToOperationBody() { var op = new sdkxdr.PathPaymentStrictSendOp(); // sendAsset op.SendAsset = SendAsset.ToXdr(); // sendAmount var sendAmount = new sdkxdr.Int64(); sendAmount.InnerValue = ToXdrAmount(SendAmount); op.SendAmount = sendAmount; // destination var destination = new sdkxdr.AccountID(); destination.InnerValue = Destination.XdrPublicKey; op.Destination = destination; // destAsset op.DestAsset = DestAsset.ToXdr(); // destMin var destMin = new sdkxdr.Int64(); destMin.InnerValue = ToXdrAmount(DestMin); op.DestMin = destMin; // path var path = new sdkxdr.Asset[Path.Length]; for (var i = 0; i < Path.Length; i++) { path[i] = Path[i].ToXdr(); } op.Path = path; var body = new sdkxdr.Operation.OperationBody(); body.Discriminant = sdkxdr.OperationType.Create(sdkxdr.OperationType.OperationTypeEnum.PATH_PAYMENT_STRICT_SEND); body.PathPaymentStrictSendOp = op; return(body); }
public static void Encode(XdrDataOutputStream stream, ChangeTrustOp encodedChangeTrustOp) { Asset.Encode(stream, encodedChangeTrustOp.Line); Int64.Encode(stream, encodedChangeTrustOp.Limit); }