cardano-serialization-lib
cardano-serialization-lib copied to clipboard
TransactionMetadatum.as_* methods: wrong type annotation
declare export class TransactionMetadatum {
free(): void;
/**
* @returns {Uint8Array}
*/
to_bytes(): Uint8Array;
/**
* @param {Uint8Array} bytes
* @returns {TransactionMetadatum}
*/
static from_bytes(bytes: Uint8Array): TransactionMetadatum;
/**
* @returns {string}
*/
to_hex(): string;
/**
* @param {string} hex_str
* @returns {TransactionMetadatum}
*/
static from_hex(hex_str: string): TransactionMetadatum;
/**
* @param {MetadataMap} map
* @returns {TransactionMetadatum}
*/
static new_map(map: MetadataMap): TransactionMetadatum;
/**
* @param {MetadataList} list
* @returns {TransactionMetadatum}
*/
static new_list(list: MetadataList): TransactionMetadatum;
/**
* @param {Int} int
* @returns {TransactionMetadatum}
*/
static new_int(int: Int): TransactionMetadatum;
/**
* @param {Uint8Array} bytes
* @returns {TransactionMetadatum}
*/
static new_bytes(bytes: Uint8Array): TransactionMetadatum;
/**
* @param {string} text
* @returns {TransactionMetadatum}
*/
static new_text(text: string): TransactionMetadatum;
/**
* @returns {number}
*/
kind(): number;
/**
* @returns {MetadataMap}
*/
as_map(): MetadataMap;
/**
* @returns {MetadataList}
*/
as_list(): MetadataList;
/**
* @returns {Int}
*/
as_int(): Int;
/**
* @returns {Uint8Array}
*/
as_bytes(): Uint8Array;
/**
* @returns {string}
*/
as_text(): string;
}
as_* methods should return X | void (they are all partial)
Hi @klntsky ! From wasm bingen side it is correct behavior, because as_* functions returns Result type it means you always get a non-nullable value or get an exception. In other words Result means for bingen return value or throw an exception.
Yes it is not the best logic for an as_* function but it is open source project and you can contribute. But changing from Result to Option leads API breaking changes and we can accept this change only for the next major version