/// <summary> /// Returns the Allow Trust XDR Operation Body /// </summary> /// <returns></returns> public override sdkxdr.Operation.OperationBody ToOperationBody() { var op = new sdkxdr.AllowTrustOp(); // trustor var trustor = new sdkxdr.AccountID(); trustor.InnerValue = Trustor.XdrPublicKey; op.Trustor = trustor; // asset var asset = new sdkxdr.AllowTrustOp.AllowTrustOpAsset(); if (AssetCode.Length <= 4) { asset.Discriminant = sdkxdr.AssetType.Create(sdkxdr.AssetType.AssetTypeEnum.ASSET_TYPE_CREDIT_ALPHANUM4); asset.AssetCode4 = Util.PaddedByteArray(AssetCode, 4); } else { asset.Discriminant = sdkxdr.AssetType.Create(sdkxdr.AssetType.AssetTypeEnum.ASSET_TYPE_CREDIT_ALPHANUM12); asset.AssetCode12 = Util.PaddedByteArray(AssetCode, 12); } op.Asset = asset; // authorize op.Authorize = Authorize; var body = new sdkxdr.Operation.OperationBody(); body.Discriminant = sdkxdr.OperationType.Create(sdkxdr.OperationType.OperationTypeEnum.ALLOW_TRUST); body.AllowTrustOp = op; return(body); }
public static AllowTrustOp Decode(XdrDataInputStream stream) { AllowTrustOp decodedAllowTrustOp = new AllowTrustOp(); decodedAllowTrustOp.Trustor = AccountID.Decode(stream); decodedAllowTrustOp.Asset = AssetCode.Decode(stream); decodedAllowTrustOp.Authorize = Uint32.Decode(stream); return(decodedAllowTrustOp); }
public static AllowTrustOp Decode(XdrDataInputStream stream) { AllowTrustOp decodedAllowTrustOp = new AllowTrustOp(); decodedAllowTrustOp.Trustor = AccountID.Decode(stream); decodedAllowTrustOp.Asset = AllowTrustOpAsset.Decode(stream); decodedAllowTrustOp.Authorize = stream.ReadInt() == 1 ? true : false; return(decodedAllowTrustOp); }
public static OperationBody Decode(XdrDataInputStream stream) { OperationBody decodedOperationBody = new OperationBody(); OperationType discriminant = OperationType.Decode(stream); decodedOperationBody.Discriminant = discriminant; switch (decodedOperationBody.Discriminant.InnerValue) { case OperationType.OperationTypeEnum.CREATE_ACCOUNT: decodedOperationBody.CreateAccountOp = CreateAccountOp.Decode(stream); break; case OperationType.OperationTypeEnum.PAYMENT: decodedOperationBody.PaymentOp = PaymentOp.Decode(stream); break; case OperationType.OperationTypeEnum.PATH_PAYMENT: decodedOperationBody.PathPaymentOp = PathPaymentOp.Decode(stream); break; case OperationType.OperationTypeEnum.MANAGE_OFFER: decodedOperationBody.ManageOfferOp = ManageOfferOp.Decode(stream); break; case OperationType.OperationTypeEnum.CREATE_PASSIVE_OFFER: decodedOperationBody.CreatePassiveOfferOp = CreatePassiveOfferOp.Decode(stream); break; case OperationType.OperationTypeEnum.SET_OPTIONS: decodedOperationBody.SetOptionsOp = SetOptionsOp.Decode(stream); break; case OperationType.OperationTypeEnum.CHANGE_TRUST: decodedOperationBody.ChangeTrustOp = ChangeTrustOp.Decode(stream); break; case OperationType.OperationTypeEnum.ALLOW_TRUST: decodedOperationBody.AllowTrustOp = AllowTrustOp.Decode(stream); break; case OperationType.OperationTypeEnum.ACCOUNT_MERGE: decodedOperationBody.Destination = AccountID.Decode(stream); break; case OperationType.OperationTypeEnum.INFLATION: break; case OperationType.OperationTypeEnum.MANAGE_DATA: decodedOperationBody.ManageDataOp = ManageDataOp.Decode(stream); break; case OperationType.OperationTypeEnum.BUMP_SEQUENCE: decodedOperationBody.BumpSequenceOp = BumpSequenceOp.Decode(stream); break; } return(decodedOperationBody); }
public static void Encode(XdrDataOutputStream stream, OperationBody encodedOperationBody) { stream.WriteInt((int)encodedOperationBody.Discriminant.InnerValue); switch (encodedOperationBody.Discriminant.InnerValue) { case OperationType.OperationTypeEnum.CREATE_ACCOUNT: CreateAccountOp.Encode(stream, encodedOperationBody.CreateAccountOp); break; case OperationType.OperationTypeEnum.PAYMENT: PaymentOp.Encode(stream, encodedOperationBody.PaymentOp); break; case OperationType.OperationTypeEnum.PATH_PAYMENT: PathPaymentOp.Encode(stream, encodedOperationBody.PathPaymentOp); break; case OperationType.OperationTypeEnum.MANAGE_SELL_OFFER: ManageSellOfferOp.Encode(stream, encodedOperationBody.ManageSellOfferOp); break; case OperationType.OperationTypeEnum.CREATE_PASSIVE_SELL_OFFER: CreatePassiveSellOfferOp.Encode(stream, encodedOperationBody.CreatePassiveSellOfferOp); break; case OperationType.OperationTypeEnum.SET_OPTIONS: SetOptionsOp.Encode(stream, encodedOperationBody.SetOptionsOp); break; case OperationType.OperationTypeEnum.CHANGE_TRUST: ChangeTrustOp.Encode(stream, encodedOperationBody.ChangeTrustOp); break; case OperationType.OperationTypeEnum.ALLOW_TRUST: AllowTrustOp.Encode(stream, encodedOperationBody.AllowTrustOp); break; case OperationType.OperationTypeEnum.ACCOUNT_MERGE: AccountID.Encode(stream, encodedOperationBody.Destination); break; case OperationType.OperationTypeEnum.INFLATION: break; case OperationType.OperationTypeEnum.MANAGE_DATA: ManageDataOp.Encode(stream, encodedOperationBody.ManageDataOp); break; case OperationType.OperationTypeEnum.BUMP_SEQUENCE: BumpSequenceOp.Encode(stream, encodedOperationBody.BumpSequenceOp); break; case OperationType.OperationTypeEnum.MANAGE_BUY_OFFER: ManageBuyOfferOp.Encode(stream, encodedOperationBody.ManageBuyOfferOp); break; } }
/// <summary> /// Builder to build the AllowTrust Operation given an XDR AllowTrustOp /// </summary> /// <param name="op"></param> /// <exception cref="Exception"></exception> public Builder(sdkxdr.AllowTrustOp op) { _trustor = KeyPair.FromXdrPublicKey(op.Trustor.InnerValue); switch (op.Asset.Discriminant.InnerValue) { case sdkxdr.AssetType.AssetTypeEnum.ASSET_TYPE_CREDIT_ALPHANUM4: _assetCode = Encoding.UTF8.GetString(op.Asset.AssetCode4); break; case sdkxdr.AssetType.AssetTypeEnum.ASSET_TYPE_CREDIT_ALPHANUM12: _assetCode = Encoding.UTF8.GetString(op.Asset.AssetCode12); break; case sdkxdr.AssetType.AssetTypeEnum.ASSET_TYPE_NATIVE: break; default: throw new Exception("Unknown asset code"); } _authorize = op.Authorize; }
public static OperationBody Decode(XdrDataInputStream stream) { OperationBody decodedOperationBody = new OperationBody(); OperationType discriminant = OperationType.Decode(stream); decodedOperationBody.Discriminant = discriminant; switch (decodedOperationBody.Discriminant.InnerValue) { case OperationType.OperationTypeEnum.CREATE_ACCOUNT: decodedOperationBody.CreateAccountOp = CreateAccountOp.Decode(stream); break; case OperationType.OperationTypeEnum.PAYMENT: decodedOperationBody.PaymentOp = PaymentOp.Decode(stream); break; case OperationType.OperationTypeEnum.PATH_PAYMENT_STRICT_RECEIVE: decodedOperationBody.PathPaymentStrictReceiveOp = PathPaymentStrictReceiveOp.Decode(stream); break; case OperationType.OperationTypeEnum.MANAGE_SELL_OFFER: decodedOperationBody.ManageSellOfferOp = ManageSellOfferOp.Decode(stream); break; case OperationType.OperationTypeEnum.CREATE_PASSIVE_SELL_OFFER: decodedOperationBody.CreatePassiveSellOfferOp = CreatePassiveSellOfferOp.Decode(stream); break; case OperationType.OperationTypeEnum.SET_OPTIONS: decodedOperationBody.SetOptionsOp = SetOptionsOp.Decode(stream); break; case OperationType.OperationTypeEnum.CHANGE_TRUST: decodedOperationBody.ChangeTrustOp = ChangeTrustOp.Decode(stream); break; case OperationType.OperationTypeEnum.ALLOW_TRUST: decodedOperationBody.AllowTrustOp = AllowTrustOp.Decode(stream); break; case OperationType.OperationTypeEnum.ACCOUNT_MERGE: decodedOperationBody.Destination = MuxedAccount.Decode(stream); break; case OperationType.OperationTypeEnum.INFLATION: break; case OperationType.OperationTypeEnum.MANAGE_DATA: decodedOperationBody.ManageDataOp = ManageDataOp.Decode(stream); break; case OperationType.OperationTypeEnum.BUMP_SEQUENCE: decodedOperationBody.BumpSequenceOp = BumpSequenceOp.Decode(stream); break; case OperationType.OperationTypeEnum.MANAGE_BUY_OFFER: decodedOperationBody.ManageBuyOfferOp = ManageBuyOfferOp.Decode(stream); break; case OperationType.OperationTypeEnum.PATH_PAYMENT_STRICT_SEND: decodedOperationBody.PathPaymentStrictSendOp = PathPaymentStrictSendOp.Decode(stream); break; case OperationType.OperationTypeEnum.CREATE_CLAIMABLE_BALANCE: decodedOperationBody.CreateClaimableBalanceOp = CreateClaimableBalanceOp.Decode(stream); break; case OperationType.OperationTypeEnum.CLAIM_CLAIMABLE_BALANCE: decodedOperationBody.ClaimClaimableBalanceOp = ClaimClaimableBalanceOp.Decode(stream); break; case OperationType.OperationTypeEnum.BEGIN_SPONSORING_FUTURE_RESERVES: decodedOperationBody.BeginSponsoringFutureReservesOp = BeginSponsoringFutureReservesOp.Decode(stream); break; case OperationType.OperationTypeEnum.END_SPONSORING_FUTURE_RESERVES: break; case OperationType.OperationTypeEnum.REVOKE_SPONSORSHIP: decodedOperationBody.RevokeSponsorshipOp = RevokeSponsorshipOp.Decode(stream); break; case OperationType.OperationTypeEnum.CLAWBACK: decodedOperationBody.ClawbackOp = ClawbackOp.Decode(stream); break; case OperationType.OperationTypeEnum.CLAWBACK_CLAIMABLE_BALANCE: decodedOperationBody.ClawbackClaimableBalanceOp = ClawbackClaimableBalanceOp.Decode(stream); break; case OperationType.OperationTypeEnum.SET_TRUST_LINE_FLAGS: decodedOperationBody.SetTrustLineFlagsOp = SetTrustLineFlagsOp.Decode(stream); break; } return(decodedOperationBody); }
public static void Encode(XdrDataOutputStream stream, OperationBody encodedOperationBody) { stream.WriteInt((int)encodedOperationBody.Discriminant.InnerValue); switch (encodedOperationBody.Discriminant.InnerValue) { case OperationType.OperationTypeEnum.CREATE_ACCOUNT: CreateAccountOp.Encode(stream, encodedOperationBody.CreateAccountOp); break; case OperationType.OperationTypeEnum.PAYMENT: PaymentOp.Encode(stream, encodedOperationBody.PaymentOp); break; case OperationType.OperationTypeEnum.PATH_PAYMENT_STRICT_RECEIVE: PathPaymentStrictReceiveOp.Encode(stream, encodedOperationBody.PathPaymentStrictReceiveOp); break; case OperationType.OperationTypeEnum.MANAGE_SELL_OFFER: ManageSellOfferOp.Encode(stream, encodedOperationBody.ManageSellOfferOp); break; case OperationType.OperationTypeEnum.CREATE_PASSIVE_SELL_OFFER: CreatePassiveSellOfferOp.Encode(stream, encodedOperationBody.CreatePassiveSellOfferOp); break; case OperationType.OperationTypeEnum.SET_OPTIONS: SetOptionsOp.Encode(stream, encodedOperationBody.SetOptionsOp); break; case OperationType.OperationTypeEnum.CHANGE_TRUST: ChangeTrustOp.Encode(stream, encodedOperationBody.ChangeTrustOp); break; case OperationType.OperationTypeEnum.ALLOW_TRUST: AllowTrustOp.Encode(stream, encodedOperationBody.AllowTrustOp); break; case OperationType.OperationTypeEnum.ACCOUNT_MERGE: MuxedAccount.Encode(stream, encodedOperationBody.Destination); break; case OperationType.OperationTypeEnum.INFLATION: break; case OperationType.OperationTypeEnum.MANAGE_DATA: ManageDataOp.Encode(stream, encodedOperationBody.ManageDataOp); break; case OperationType.OperationTypeEnum.BUMP_SEQUENCE: BumpSequenceOp.Encode(stream, encodedOperationBody.BumpSequenceOp); break; case OperationType.OperationTypeEnum.MANAGE_BUY_OFFER: ManageBuyOfferOp.Encode(stream, encodedOperationBody.ManageBuyOfferOp); break; case OperationType.OperationTypeEnum.PATH_PAYMENT_STRICT_SEND: PathPaymentStrictSendOp.Encode(stream, encodedOperationBody.PathPaymentStrictSendOp); break; case OperationType.OperationTypeEnum.CREATE_CLAIMABLE_BALANCE: CreateClaimableBalanceOp.Encode(stream, encodedOperationBody.CreateClaimableBalanceOp); break; case OperationType.OperationTypeEnum.CLAIM_CLAIMABLE_BALANCE: ClaimClaimableBalanceOp.Encode(stream, encodedOperationBody.ClaimClaimableBalanceOp); break; case OperationType.OperationTypeEnum.BEGIN_SPONSORING_FUTURE_RESERVES: BeginSponsoringFutureReservesOp.Encode(stream, encodedOperationBody.BeginSponsoringFutureReservesOp); break; case OperationType.OperationTypeEnum.END_SPONSORING_FUTURE_RESERVES: break; case OperationType.OperationTypeEnum.REVOKE_SPONSORSHIP: RevokeSponsorshipOp.Encode(stream, encodedOperationBody.RevokeSponsorshipOp); break; case OperationType.OperationTypeEnum.CLAWBACK: ClawbackOp.Encode(stream, encodedOperationBody.ClawbackOp); break; case OperationType.OperationTypeEnum.CLAWBACK_CLAIMABLE_BALANCE: ClawbackClaimableBalanceOp.Encode(stream, encodedOperationBody.ClawbackClaimableBalanceOp); break; case OperationType.OperationTypeEnum.SET_TRUST_LINE_FLAGS: SetTrustLineFlagsOp.Encode(stream, encodedOperationBody.SetTrustLineFlagsOp); break; } }
public static void Encode(XdrDataOutputStream stream, AllowTrustOp encodedAllowTrustOp) { AccountID.Encode(stream, encodedAllowTrustOp.Trustor); AssetCode.Encode(stream, encodedAllowTrustOp.Asset); Uint32.Encode(stream, encodedAllowTrustOp.Authorize); }
public static void Encode(XdrDataOutputStream stream, AllowTrustOp encodedAllowTrustOp) { AccountID.Encode(stream, encodedAllowTrustOp.Trustor); AllowTrustOpAsset.Encode(stream, encodedAllowTrustOp.Asset); stream.WriteInt(encodedAllowTrustOp.Authorize ? 1 : 0); }