import { System, Protobuf, StringBytes } from "@koinos/sdk-as"; import { common, nft } from "@koinosbox/contracts"; import { nicknames } from "./proto/nicknames"; import { INft as Nft } from "@koinosbox/contracts"; export class Nicknames extends Nft { /** * Verify if a new name is valid * @external * @readonly */ verify_valid_name(args: common.str): common.str { const argsBuffer = Protobuf.encode(args, common.str.encode); const callRes = System.call(this._contractId, 0x5ad33d9a, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.verify_valid_name': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } if (!callRes.res.object) return new common.str(); return Protobuf.decode(callRes.res.object, common.str.decode); } /** * Get TABI * @external * @readonly */ get_tabi(args: nft.token): nicknames.get_tabi_result { const argsBuffer = Protobuf.encode(args, nft.token.encode); const callRes = System.call(this._contractId, 0x653c5618, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.get_tabi': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } if (!callRes.res.object) return new nicknames.get_tabi_result(); return Protobuf.decode(callRes.res.object, nicknames.get_tabi_result.decode); } /** * Get main token of an account * @external * @readonly */ get_main_token(args: common.address): nft.token { const argsBuffer = Protobuf.encode(args, common.address.encode); const callRes = System.call(this._contractId, 0x3ecda7bf, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.get_main_token': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } if (!callRes.res.object) return new nft.token(); return Protobuf.decode(callRes.res.object, nft.token.decode); } /** * Get extended metadata * @external * @readonly */ get_extended_metadata(args: nft.token): nicknames.extended_metadata { const argsBuffer = Protobuf.encode(args, nft.token.encode); const callRes = System.call(this._contractId, 0x0327b375, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.get_extended_metadata': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } if (!callRes.res.object) return new nicknames.extended_metadata(); return Protobuf.decode(callRes.res.object, nicknames.extended_metadata.decode); } /** * Resolve the address of a nickname by providing the token id * @external * @readonly */ get_address_by_token_id(args: nft.token): nicknames.address_data { const argsBuffer = Protobuf.encode(args, nft.token.encode); const callRes = System.call(this._contractId, 0x1d5eac7d, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.get_address_by_token_id': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } if (!callRes.res.object) return new nicknames.address_data(); return Protobuf.decode(callRes.res.object, nicknames.address_data.decode); } /** * Resolve the address of a nickname * @external * @readonly */ get_address(args: common.str): nicknames.address_data { const argsBuffer = Protobuf.encode(args, common.str.encode); const callRes = System.call(this._contractId, 0xa61ae5e8, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.get_address': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } if (!callRes.res.object) return new nicknames.address_data(); return Protobuf.decode(callRes.res.object, nicknames.address_data.decode); } /** * Get tokens owned by an address * @external * @readonly */ get_tokens_by_address(args: nicknames.get_tokens_by_address_args): nft.token_ids { const argsBuffer = Protobuf.encode(args, nicknames.get_tokens_by_address_args.encode); const callRes = System.call(this._contractId, 0x606f788b, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.get_tokens_by_address': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } if (!callRes.res.object) return new nft.token_ids(); return Protobuf.decode(callRes.res.object, nft.token_ids.decode); } /** * Create new name * @external * @event collections.mint_event nft.mint_args */ mint(args: nft.mint_args): void { const argsBuffer = Protobuf.encode(args, nft.mint_args.encode); const callRes = System.call(this._contractId, 0xdc6f17bb, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.mint': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } return; } /** * Delete a name * @external * @event collections.burn_event nft.burn_args */ burn(args: nft.burn_args): void { const argsBuffer = Protobuf.encode(args, nft.burn_args.encode); const callRes = System.call(this._contractId, 0x859facc5, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.burn': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } return; } /** * Transfer Name * @external * @event collections.transfer_event nft.transfer_args */ transfer(args: nft.transfer_args): void { const argsBuffer = Protobuf.encode(args, nft.transfer_args.encode); const callRes = System.call(this._contractId, 0x27f576ca, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.transfer': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } return; } /** * Set Text ABI for a token * @external * @event nicknames.set_tabi nicknames.set_tabi_args */ set_tabi(args: nicknames.set_tabi_args): void { const argsBuffer = Protobuf.encode(args, nicknames.set_tabi_args.encode); const callRes = System.call(this._contractId, 0xb2b70965, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.set_tabi': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } return; } /** * Set metadata * @external * @event collections.set_metadata_event nft.metadata_args */ set_metadata(args: nft.metadata_args): void { const argsBuffer = Protobuf.encode(args, nft.metadata_args.encode); const callRes = System.call(this._contractId, 0x3d59af19, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.set_metadata': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } return; } /** * Set main token * @external * @evetn set_main_token nft.token */ set_main_token(args: nft.token): void { const argsBuffer = Protobuf.encode(args, nft.token.encode); const callRes = System.call(this._contractId, 0x0b6adde6, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.set_main_token': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } return; } /** * Set address * @external * @event address_updated nicknames.set_address_args */ set_address(args: nicknames.set_address_args): void { const argsBuffer = Protobuf.encode(args, nicknames.set_address_args.encode); const callRes = System.call(this._contractId, 0x5cffdf33, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.set_address': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } return; } /** * Set extended metadata (including the address to which the name resolves) * @external * @event extended_metadata_updated nicknames.extended_metadata */ set_extended_metadata(args: nicknames.set_extended_metadata_args): void { const argsBuffer = Protobuf.encode(args, nicknames.set_extended_metadata_args.encode); const callRes = System.call(this._contractId, 0xef128ca3, argsBuffer); if (callRes.code != 0) { const errorMessage = `failed to call 'Nicknames.set_extended_metadata': ${callRes.res.error && callRes.res.error!.message ? callRes.res.error!.message : "unknown error"}`; System.exit(callRes.code, StringBytes.stringToBytes(errorMessage)); } return; } }