Implementation
static void encode(XdrDataOutputStream stream, XdrHashIDPreimage encoded) {
stream.writeInt(encoded.discriminant.value);
switch (encoded.discriminant) {
case XdrEnvelopeType.ENVELOPE_TYPE_OP_ID:
XdrHashIDPreimageOperationID.encode(stream, encoded.operationID!);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_POOL_REVOKE_OP_ID:
XdrHashIDPreimageRevokeID.encode(stream, encoded.revokeID!);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CONTRACT_ID_FROM_ED25519:
XdrHashIDPreimageEd25519ContractID.encode(
stream, encoded.ed25519ContractID!);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CONTRACT_ID_FROM_CONTRACT:
XdrHashIDPreimageContractID.encode(stream, encoded.contractID!);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CONTRACT_ID_FROM_ASSET:
XdrHashIDPreimageFromAsset.encode(stream, encoded.fromAsset!);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CONTRACT_ID_FROM_SOURCE_ACCOUNT:
XdrHashIDPreimageSourceAccountContractID.encode(
stream, encoded.sourceAccountContractID!);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CREATE_CONTRACT_ARGS:
XdrHashIDPreimageCreateContractArgs.encode(
stream, encoded.createContractArgs!);
break;
case XdrEnvelopeType.ENVELOPE_TYPE_CONTRACT_AUTH:
XdrHashIDPreimageContractAuth.encode(stream, encoded.contractAuth!);
break;
}
}