import { Nicknames } from "./Nicknames"; import { System, Protobuf } from "@koinos/sdk-as"; import { common, nft } from "@koinosbox/contracts"; import { nicknames } from "./proto/nicknames"; const contract = new Nicknames(); contract.callArgs = System.getArguments(); let returnBuffer = new Uint8Array(1024); switch (contract.callArgs!.entry_point) { /* class Nicknames */ // verify_valid_name case 0x5ad33d9a: { const args = Protobuf.decode(contract.callArgs!.args, common.str.decode); const result = contract.verify_valid_name(args); returnBuffer = Protobuf.encode(result, common.str.encode); break; } // get_tabi case 0x653c5618: { const args = Protobuf.decode(contract.callArgs!.args, nft.token.decode); const result = contract.get_tabi(args); returnBuffer = Protobuf.encode(result, nicknames.get_tabi_result.encode); break; } // get_main_token case 0x3ecda7bf: { const args = Protobuf.decode(contract.callArgs!.args, common.address.decode); const result = contract.get_main_token(args); returnBuffer = Protobuf.encode(result, nft.token.encode); break; } // get_extended_metadata case 0x0327b375: { const args = Protobuf.decode(contract.callArgs!.args, nft.token.decode); const result = contract.get_extended_metadata(args); returnBuffer = Protobuf.encode(result, nicknames.extended_metadata.encode); break; } // get_address_by_token_id case 0x1d5eac7d: { const args = Protobuf.decode(contract.callArgs!.args, nft.token.decode); const result = contract.get_address_by_token_id(args); returnBuffer = Protobuf.encode(result, nicknames.address_data.encode); break; } // get_address case 0xa61ae5e8: { const args = Protobuf.decode(contract.callArgs!.args, common.str.decode); const result = contract.get_address(args); returnBuffer = Protobuf.encode(result, nicknames.address_data.encode); break; } // get_tokens_by_address case 0x606f788b: { const args = Protobuf.decode(contract.callArgs!.args, nicknames.get_tokens_by_address_args.decode); const result = contract.get_tokens_by_address(args); returnBuffer = Protobuf.encode(result, nft.token_ids.encode); break; } // mint case 0xdc6f17bb: { const args = Protobuf.decode(contract.callArgs!.args, nft.mint_args.decode); contract.mint(args); returnBuffer = new Uint8Array(0); break; } // burn case 0x859facc5: { const args = Protobuf.decode(contract.callArgs!.args, nft.burn_args.decode); contract.burn(args); returnBuffer = new Uint8Array(0); break; } // transfer case 0x27f576ca: { const args = Protobuf.decode(contract.callArgs!.args, nft.transfer_args.decode); contract.transfer(args); returnBuffer = new Uint8Array(0); break; } // set_tabi case 0xb2b70965: { const args = Protobuf.decode(contract.callArgs!.args, nicknames.set_tabi_args.decode); contract.set_tabi(args); returnBuffer = new Uint8Array(0); break; } // set_metadata case 0x3d59af19: { const args = Protobuf.decode(contract.callArgs!.args, nft.metadata_args.decode); contract.set_metadata(args); returnBuffer = new Uint8Array(0); break; } // set_main_token case 0x0b6adde6: { const args = Protobuf.decode(contract.callArgs!.args, nft.token.decode); contract.set_main_token(args); returnBuffer = new Uint8Array(0); break; } // set_address case 0x5cffdf33: { const args = Protobuf.decode(contract.callArgs!.args, nicknames.set_address_args.decode); contract.set_address(args); returnBuffer = new Uint8Array(0); break; } // set_extended_metadata case 0xef128ca3: { const args = Protobuf.decode(contract.callArgs!.args, nicknames.set_extended_metadata_args.decode); contract.set_extended_metadata(args); returnBuffer = new Uint8Array(0); break; } /* class Nft */ // name case 0x82a3537f: { const result = contract.name(); returnBuffer = Protobuf.encode(result, common.str.encode); break; } // symbol case 0xb76a7ca1: { const result = contract.symbol(); returnBuffer = Protobuf.encode(result, common.str.encode); break; } // uri case 0x70e5d7b6: { const result = contract.uri(); returnBuffer = Protobuf.encode(result, common.str.encode); break; } // get_info case 0xbd7f6850: { const result = contract.get_info(); returnBuffer = Protobuf.encode(result, nft.info.encode); break; } // owner case 0x4c102969: { const result = contract.owner(); returnBuffer = Protobuf.encode(result, common.address.encode); break; } // total_supply case 0xb0da3934: { const result = contract.total_supply(); returnBuffer = Protobuf.encode(result, common.uint64.encode); break; } // royalties case 0x36e90cd0: { const result = contract.royalties(); returnBuffer = Protobuf.encode(result, nft.royalties.encode); break; } // balance_of case 0x5c721497: { const args = Protobuf.decode(contract.callArgs!.args, nft.balance_of_args.decode); const result = contract.balance_of(args); returnBuffer = Protobuf.encode(result, common.uint64.encode); break; } // owner_of case 0xed61c847: { const args = Protobuf.decode(contract.callArgs!.args, nft.token.decode); const result = contract.owner_of(args); returnBuffer = Protobuf.encode(result, common.address.encode); break; } // metadata_of case 0x176c8f7f: { const args = Protobuf.decode(contract.callArgs!.args, nft.token.decode); const result = contract.metadata_of(args); returnBuffer = Protobuf.encode(result, common.str.encode); break; } // get_tokens case 0x7d5b5ed7: { const args = Protobuf.decode(contract.callArgs!.args, nft.get_tokens_args.decode); const result = contract.get_tokens(args); returnBuffer = Protobuf.encode(result, nft.token_ids.encode); break; } // get_tokens_by_owner case 0xfc13eb75: { const args = Protobuf.decode(contract.callArgs!.args, nft.get_tokens_by_owner_args.decode); const result = contract.get_tokens_by_owner(args); returnBuffer = Protobuf.encode(result, nft.token_ids.encode); break; } // get_approved case 0x4c731020: { const args = Protobuf.decode(contract.callArgs!.args, nft.token.decode); const result = contract.get_approved(args); returnBuffer = Protobuf.encode(result, common.address.encode); break; } // is_approved_for_all case 0xe7ab8ce5: { const args = Protobuf.decode(contract.callArgs!.args, nft.is_approved_for_all_args.decode); const result = contract.is_approved_for_all(args); returnBuffer = Protobuf.encode(result, common.boole.encode); break; } // get_operator_approvals case 0xdb1bf60e: { const args = Protobuf.decode(contract.callArgs!.args, nft.get_operators_args.decode); const result = contract.get_operator_approvals(args); returnBuffer = Protobuf.encode(result, nft.get_operators_return.encode); break; } // transfer_ownership case 0x394be702: { const args = Protobuf.decode(contract.callArgs!.args, common.address.decode); contract.transfer_ownership(args); returnBuffer = new Uint8Array(0); break; } // set_royalties case 0x3b5bb56b: { const args = Protobuf.decode(contract.callArgs!.args, nft.royalties.decode); contract.set_royalties(args); returnBuffer = new Uint8Array(0); break; } // approve case 0x74e21680: { const args = Protobuf.decode(contract.callArgs!.args, nft.approve_args.decode); contract.approve(args); returnBuffer = new Uint8Array(0); break; } // set_approval_for_all case 0x20442216: { const args = Protobuf.decode(contract.callArgs!.args, nft.set_approval_for_all_args.decode); contract.set_approval_for_all(args); returnBuffer = new Uint8Array(0); break; } default: { System.exit(1); break; } } System.exit(0, returnBuffer);