コード例 #1
0
ファイル: Program.cs プロジェクト: shanegrueling/RPC
        static void Main(string[] args)
        {
            RPC rpc = new RPC();

            Console.WriteLine(rpc.route("Test", "hello", new object[] { "World" }));
            Console.WriteLine(rpc.route("Test", "multiply", new object[] { 10, 20 }));
            Console.WriteLine(rpc.route("Test", "callable", new object[] { }));
            Console.WriteLine(rpc.route("Test2", "classAsParameter", new object[] { new TestClass() }));
            Console.WriteLine(rpc.route("Test2", "classAsReturnValue", new object[] { "blub" }));
            foreach(object a in (int[])rpc.route("Test2", "returnAnArray", new object[] { }))
            {
                Console.WriteLine(a);
            }

            foreach (object a in (int[])rpc.route("Test2", "arrayAsParameter", new object[] { new object[] {1, 2, 3, 4, 5} }))
            {
                Console.WriteLine(a);
            }

            foreach (object a in (TestClass[])rpc.route("Test2", "classArrayAsParameter", new object[] { new object[] { new TestClass(), new TestClass() } }))
            {
                Console.WriteLine(a);
            }

            List<TestClass> l = new List<TestClass>();
            l.Add(new TestClass());
            l.Add(new TestClass());

            foreach (object a in (TestClass[])rpc.route("Test2", "genericAsParameter", new object[] { l }))
            {
                Console.WriteLine(a);
            }

            Console.ReadKey();
        }
コード例 #2
0
ファイル: MethodReturnArgs.cs プロジェクト: qcjxberin/ec
        public void Import(RPC.MethodResult result)
        {
            mMethodResult = result;
            if (MethodResult.Status == ResultStatus.Error)
            {
                Status = InvokeStatus.Completed;
            }
            else
            {
                Status = InvokeStatus.Return;
                if (result.Parameters != null)
                    foreach (string p in result.Parameters)
                    {
                        if (!string.IsNullOrEmpty(p))
                            ParameterNames.Add(p);
                    }

                if (result.IsVoid && ParameterNames.Count == 0)
                    Status = InvokeStatus.Completed;
                else if (result.IsVoid && ParameterNames.Count > 0)
                    Status = InvokeStatus.Parameter;
                else
                    Status = InvokeStatus.Return;
            }


        }
コード例 #3
0
 public static uint GetRPCHash(RPC rpc_hash)
 {
     if (isFinished == true)
     {
         return rpc[Enum.GetName(typeof(RPC),rpc_hash)];
     }
     else
     {
         return 0x0;
     }
 }
コード例 #4
0
ファイル: RemoteInvokeArgs.cs プロジェクト: qcjxberin/ec
 public RemoteInvokeArgs(RPC.MethodCall call)
 {
     CallID = call.ID;
     if (call.Parameters.Count > 0)
     {
         Parameters = new object[call.Parameters.Count];
     }
     else
     {
         Parameters = new object[0];
         mHasCompleted = true;
     }
     mCall = call;
     ParameterTypes = call.Parameters;
 }
コード例 #5
0
ファイル: LoginHandler.cs プロジェクト: Lobo-Prix/TeraTale
 void MessageHandler.RPCHandler(RPC rpc)
 {
     throw new NotImplementedException();
 }
 /// <exception cref="System.IO.IOException"/>
 public virtual bool IsMethodSupported(string methodName)
 {
     return(RpcClientUtil.IsMethodSupported(rpcProxy, typeof(HSAdminRefreshProtocolPB)
                                            , RPC.RpcKind.RpcProtocolBuffer, RPC.GetProtocolVersion(typeof(HSAdminRefreshProtocolPB
                                                                                                           )), methodName));
 }
 /// <exception cref="System.IO.IOException"/>
 public virtual void Close()
 {
     RPC.StopProxy(rpcProxy);
 }
コード例 #8
0
ファイル: FrmMain.cs プロジェクト: gtapwn/GTA5-Native-Caller
 private void btnAttach_Click(object sender, EventArgs e)
 {
     btnAttach.ForeColor = (EnableMods = PS4.AttachProcess()) ? Color.Green : Color.Red;
     RPC.Enable(PS4);
 }
コード例 #9
0
ファイル: Common.cs プロジェクト: gtapwn/GTA5-Native-Caller
 public static T Call <T>(ulong address, params object[] parameters)
 {
     return(RPC.Call <T>(address, parameters));
 }
コード例 #10
0
 public Helper(string ip, int port)
 {
     this.rpc = new RPC(ip, port);
 }
コード例 #11
0
 public virtual IPEndPoint GetConnectAddress()
 {
     return(RPC.GetServerAddress(proxy));
 }
コード例 #12
0
        public TumblerConfiguration LoadArgs(String[] args)
        {
            ConfigurationFile = args.Where(a => a.StartsWith("-conf=", StringComparison.Ordinal)).Select(a => a.Substring("-conf=".Length).Replace("\"", "")).FirstOrDefault();
            DataDir           = args.Where(a => a.StartsWith("-datadir=", StringComparison.Ordinal)).Select(a => a.Substring("-datadir=".Length).Replace("\"", "")).FirstOrDefault();
            if (DataDir != null && ConfigurationFile != null)
            {
                var isRelativePath = Path.GetFullPath(ConfigurationFile).Length > ConfigurationFile.Length;
                if (isRelativePath)
                {
                    ConfigurationFile = Path.Combine(DataDir, ConfigurationFile);
                }
            }

            Network = args.Contains("-testnet", StringComparer.OrdinalIgnoreCase) ? Network.TestNet :
                      args.Contains("-regtest", StringComparer.OrdinalIgnoreCase) ? Network.RegTest :
                      Network.Main;

            if (ConfigurationFile != null)
            {
                AssetConfigFileExists();
                var configTemp = TextFileConfiguration.Parse(File.ReadAllText(ConfigurationFile));

                Network = configTemp.GetOrDefault <bool>("testnet", false) ? Network.TestNet :
                          configTemp.GetOrDefault <bool>("regtest", false) ? Network.RegTest :
                          Network.Main;
            }
            if (DataDir == null)
            {
                DataDir = DefaultDataDirectory.GetDefaultDirectory("NTumbleBitServer", Network);
            }

            if (ConfigurationFile == null)
            {
                ConfigurationFile = GetDefaultConfigurationFile(Network);
            }
            Logs.Configuration.LogInformation("Network: " + Network);

            Logs.Configuration.LogInformation("Data directory set to " + DataDir);
            Logs.Configuration.LogInformation("Configuration file set to " + ConfigurationFile);

            if (!Directory.Exists(DataDir))
            {
                throw new ConfigurationException("Data directory does not exists");
            }

            var consoleConfig = new TextFileConfiguration(args);
            var config        = TextFileConfiguration.Parse(File.ReadAllText(ConfigurationFile));

            consoleConfig.MergeInto(config, true);

            if (config.Contains("help"))
            {
                Console.WriteLine("Details on the wiki page :  https://github.com/NTumbleBit/NTumbleBit/wiki/Server-Config");
                OpenBrowser("https://github.com/NTumbleBit/NTumbleBit/wiki/Server-Config");
                Environment.Exit(0);
            }

            var standardCycles = new StandardCycles(Network);
            var cycleName      = "kotori";        //config.GetOrDefault<string>("cycle", standardCycles.Debug ? "shorty2x" : "shorty2x");

            Logs.Configuration.LogInformation($"Using cycle {cycleName}");

            var standardCycle = standardCycles.GetStandardCycle(cycleName);

            if (standardCycle == null)
            {
                throw new ConfigException($"Invalid cycle name, choose among {String.Join(",", standardCycles.ToEnumerable().Select(c => c.FriendlyName).ToArray())}");
            }

            ClassicTumblerParameters.CycleGenerator = standardCycle.Generator;
            ClassicTumblerParameters.Denomination   = standardCycle.Denomination;
            var torEnabled = config.GetOrDefault <bool>("tor.enabled", true);

            if (torEnabled)
            {
                TorSettings = TorConnectionSettings.ParseConnectionSettings("tor", config);
            }

            Cooperative = config.GetOrDefault <bool>("cooperative", true);

            var defaultPort = config.GetOrDefault <int>("port", 37123);

            OnlyMonitor = config.GetOrDefault <bool>("onlymonitor", false);
            Listen      = new IPEndPoint(IPAddress.Parse("127.0.0.1"), defaultPort);

            RPC               = RPCArgs.Parse(config, Network);
            TorPath           = config.GetOrDefault <string>("torpath", "tor");
            DBreezeRepository = new DBreezeRepository(Path.Combine(DataDir, "db2"));
            Tracker           = new Tracker(DBreezeRepository, Network);

            // 1% fee by default (desired value should be set in configuration anyway)
            var defaultFee = Money.Satoshis((decimal)ClassicTumblerParameters.Denomination.Satoshi * 0.01m);

            ClassicTumblerParameters.Fee = config.GetOrDefault <Money>("tumbler.fee", defaultFee);

            RPCClient rpc = null;

            try
            {
                rpc = RPC.ConfigureRPCClient(Network);
            }
            catch
            {
                throw new ConfigException("Please, fix rpc settings in " + ConfigurationFile);
            }

            Services = ExternalServices.CreateFromRPCClient(rpc, DBreezeRepository, Tracker, true);
            return(this);
        }