toOperationBody method

  1. @override
XdrOperationBody toOperationBody ()
override

Generates OperationBody XDR object.

Implementation

@override
XdrOperationBody toOperationBody() {
  XdrAllowTrustOp op = new XdrAllowTrustOp();

  // trustor
  XdrAccountID trustor = new XdrAccountID();
  trustor.accountID = KeyPair.fromAccountId(this._trustor).xdrPublicKey;
  op.trustor = trustor;
  // asset
  XdrAllowTrustOpAsset asset = new XdrAllowTrustOpAsset();
  if (_assetCode.length <= 4) {
    asset.discriminant = XdrAssetType.ASSET_TYPE_CREDIT_ALPHANUM4;
    asset.assetCode4 = Util.paddedByteArray(utf8.encode(_assetCode), 4);
  } else {
    asset.discriminant = XdrAssetType.ASSET_TYPE_CREDIT_ALPHANUM12;
    asset.assetCode12 = Util.paddedByteArray(utf8.encode(_assetCode), 12);
  }
  op.asset = asset;

  // authorize
  if (authorize) {
    op.authorize = XdrTrustLineFlags.AUTHORIZED_FLAG.value;
  } else if (authorizeToMaintainLiabilities) {
    op.authorize =
        XdrTrustLineFlags.AUTHORIZED_TO_MAINTAIN_LIABILITIES_FLAG.value;
  } else {
    op.authorize = 0;
  }

  XdrOperationBody body = new XdrOperationBody();
  body.discriminant = XdrOperationType.ALLOW_TRUST;
  body.allowTrustOp = op;
  return body;
}