import { Token } from "./Token"; import { System, Protobuf } from "@koinos/sdk-as"; import { token } from "./proto/token"; const contract = new Token(); contract.callArgs = System.getArguments(); let returnBuffer = new Uint8Array(1024); switch (contract.callArgs!.entry_point) { /* class Token */ // name case 0x82a3537f: { const result = contract.name(); returnBuffer = Protobuf.encode(result, token.str.encode); break; } // symbol case 0xb76a7ca1: { const result = contract.symbol(); returnBuffer = Protobuf.encode(result, token.str.encode); break; } // decimals case 0xee80fd2f: { const result = contract.decimals(); returnBuffer = Protobuf.encode(result, token.uint32.encode); break; } // get_info case 0xbd7f6850: { const result = contract.get_info(); returnBuffer = Protobuf.encode(result, token.info.encode); break; } // total_supply case 0xb0da3934: { const result = contract.total_supply(); returnBuffer = Protobuf.encode(result, token.uint64.encode); break; } // balance_of case 0x5c721497: { const args = Protobuf.decode(contract.callArgs!.args, token.balance_of_args.decode); const result = contract.balance_of(args); returnBuffer = Protobuf.encode(result, token.uint64.encode); break; } // allowance case 0x32f09fa1: { const args = Protobuf.decode(contract.callArgs!.args, token.allowance_args.decode); const result = contract.allowance(args); returnBuffer = Protobuf.encode(result, token.uint64.encode); break; } // get_allowances case 0x8fa16456: { const args = Protobuf.decode(contract.callArgs!.args, token.get_allowances_args.decode); const result = contract.get_allowances(args); returnBuffer = Protobuf.encode(result, token.get_allowances_return.encode); break; } // approve case 0x74e21680: { const args = Protobuf.decode(contract.callArgs!.args, token.approve_args.decode); contract.approve(args); returnBuffer = new Uint8Array(0); break; } // transfer case 0x27f576ca: { const args = Protobuf.decode(contract.callArgs!.args, token.transfer_args.decode); contract.transfer(args); returnBuffer = new Uint8Array(0); break; } // mint case 0xdc6f17bb: { const args = Protobuf.decode(contract.callArgs!.args, token.mint_args.decode); contract.mint(args); returnBuffer = new Uint8Array(0); break; } default: { System.exit(1); break; } } System.exit(0, returnBuffer);