package bin.ns; import kernel.KernelSettings; import macros.rpc.RPCBase; import kernel.net.Package.NetworkID; using tink.CoreApi; interface INameSystemRPC { function setIDRecord(name:String, id:NetworkID):Noise; function getIDRecord(name:String):Null; function removeIDRecord(name:String):Noise; function listIDRecords():Array<{name:String, id:NetworkID}>; } @:build(macros.rpc.RPC.buildRPC(INameSystemRPC)) class NameSystemRPC extends RPCBase { public static function getDefault():NameSystemRPC { return new NameSystemRPC(KernelSettings.nameServer, "ns"); } public static function resolve(input:String):Promise> { if (input == "12345") { return Promise.resolve(Std.parseInt(input)); } var ns = getDefault(); return ns.getIDRecord(input); } }