import { Nft } from "./Nft"; import { System, Protobuf } from "@koinos/sdk-as"; import { common } from "@koinosbox/contracts"; import { nft } from "./proto/nft"; const contract = new Nft(); contract.callArgs = System.getArguments(); let returnBuffer = new Uint8Array(1024); switch (contract.callArgs!.entry_point) { /* 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; } // set_metadata case 0x3d59af19: { const args = Protobuf.decode(contract.callArgs!.args, nft.metadata_args.decode); contract.set_metadata(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; } // transfer case 0x27f576ca: { const args = Protobuf.decode(contract.callArgs!.args, nft.transfer_args.decode); contract.transfer(args); returnBuffer = new Uint8Array(0); break; } // mint case 0xdc6f17bb: { const args = Protobuf.decode(contract.callArgs!.args, nft.mint_args.decode); contract.mint(args); returnBuffer = new Uint8Array(0); break; } default: { System.exit(1); break; } } System.exit(0, returnBuffer);