record
Objects created by the CandidType
function Record
correspond to the Candid record type, are inferred to be TypeScript Object
s, and will be decoded into JavaScript Objects at runtime.
The shape of the object will match the object literal passed to the Record
function.
TypeScript or JavaScript:
import { Canister, Principal, query, Record, text } from 'azle/experimental';
const User = Record({
id: Principal,
username: text
});
export default Canister({
getUser: query([], User, () => {
return {
id: Principal.fromUint8Array(Uint8Array.from([0])),
username: 'lastmjs'
};
}),
printUser: query([User], User, (user) => {
console.log(typeof user);
return user;
})
});
Candid:
type User = record { id : principal; username : text };
service : () -> {
getUser : () -> (User) query;
printUser : (User) -> (User) query;
}
dfx:
dfx canister call candid_canister printUser '(record { id = principal "2ibo7-dia"; username = "lastmjs" })'
(record { id = principal "2ibo7-dia"; username = "lastmjs" })