Print functions are the XPR Network equivalent of console.log
and will be visible in console when you run tests with LOG_LEVEL=debug
function print(value: string): void
function prints(value: string): void
function printString(value: string): void
All these functions are aliases.
Prints value as a string.
Example:
@action('act')
doAction(): void {
print('Hello! I am print');
prints('Hello! I am prints');
printString('Hello! I am printString');
// Output:
// DEBUG: prints_l Hello! I am print
// DEBUG: prints_l Hello! I am prints
// DEBUG: prints_l Hello! I am printString
}
# printui
function printui(value: u64): void
Prints value as a 64 bit unsigned integer.
Example:
@action('act')
doAction(): void {
// NOTE: You need to define type of value explicitly. Otherwise you'll get an error during compilation
printui(<u64>1e+18);
printui(<i64>-10);
// Output:
// DEBUG: printui 1000000000000000000
// DEBUG: printui 18446744073709551606
}
# printi
function printi(value: i64): void
Prints value as a 64 bit signed integer.
Example:
@action('act')
doAction(): void {
// NOTE: You need to define type of value explicitly. Otherwise you'll get an error during compilation
printi(<i64>-1e+18);
printi(<i64>10);
printi(<i64>-10);
// Output:
// DEBUG: printi -1000000000000000000
// DEBUG: printi 10
// DEBUG: printi -10
}
# printI128
function printI128(value: I128): void
Prints value as a 128 bit signed integer
Example:
// ...
@action('act')
doAction(): void {
// NOTE: You need to define type of value explicitly. Otherwise you'll get an error during compilation
printI128(I128.from(100000));
printI128(I128.from(10));
printI128(I128.from(-10));
// Output:
// DEBUG: printi128 100000
// DEBUG: printi128 10
// DEBUG: printi128 18446744073709551606
}
# printU128
function printU128(value: U128): void
Prints value as a 128 bit unsigned integer
Example:
@action('act')
doAction(): void {
// NOTE: You need to define type of value explicitly. Otherwise you'll get an error during compilation
printU128(I128.from(100000));
printU128(I128.from(10));
printU128(I128.from(-10));
// Output:
// DEBUG: printi128 100000
// DEBUG: printi128 10
// DEBUG: printi128 18446744073709551606
}
# printsf
function printsf(value: f32): void
Prints value as single-precision floating point number
Note that floats are imprecise due to precision loss.
Example:
// ...
@action('act')
doAction(): void {
printsf(123.4);
printsf(123.45);
printsf(123.456);
// Output
// DEBUG: printsf 123.4000015258789
// DEBUG: printsf 123.44999694824219
// DEBUG: printsf 123.45600128173828
}
# printdf
function printdf(value: f64): void
Prints value as double-precision floating point number
Note that floats are imprecise due to precision loss.
Example:
// ...
@action('act')
doAction(): void {
printdf(123.456789);
printdf(123.45678912345679);
// Output
// DEBUG: printsdf 123.456789
// DEBUG: printsdf 123.45678912345679
}
# printqf
function printqf(value: Float128): void
Prints value as quadruple-precision floating point number
Example:
// ...
@action('act')
doAction(): void {
printqf(new Float128(1000, 70));
printqf(new Float128(4000, 30));
// Output
// DEBUG: printsqf 12096
// DEBUG: printsqf 12272
}
# printn
function printn(value: Name): void
Prints a 64 bit names as base32 encoded string
Example:
// ...
@action('act')
doAction(): void {
printn(Name.fromString('contract'))
// Output
// DEBUG: printn contract
}
# printArray
function printArray(data: u8[]): void
Prints byte array as string.
Example:
// ...
@action('act')
doAction(): void {
printArray([
0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64
])
// Output:
// DEBUG: prints Hello world
}
# printHex
function printHex(data: u8[]): void
Prints bytes array as hex
Example:
// ...
@action('act')
doAction(): void {
printHex([
0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64
])
// Output
// DEBUG: printhex 48656c6c6f20776f726c64
}