public async Task <bool> Init() { bool bResult = true; using (var client = new System.Net.Http.HttpClient()) { string sIpfsUrl = String.Format("{0}/{1}", CONST_INFURA_IPFS_GATEWAY_URL, "QmXcsGDQthxbGW8C3Sx9r4tV9PGSj4MxJmtXF7dnXN5XUT"); msRulesContents = await client.GetStringAsync(sIpfsUrl).ConfigureAwait(false); } // By setting the addresses to NULL, we indicates that we want the API to deploy the contracts for us if (msContractAddress == null) { msEngineContractAddress = null; msRegistryContractAddress = null; msTestContractAddress = null; } // By using the indicator "DEPLOY" here, we will manually deploy the contracts ourselves else if (msContractAddress == "DEPLOY") { msEngineContractAddress = await DeployWonka().ConfigureAwait(false); } // Else, we will use existing contracts on the test chain else { if (msContractAddress == "") { msEngineContractAddress = "0xfB419DEA1f28283edAD89103fc1f1272f7573E6A"; } else { msEngineContractAddress = msContractAddress; } msRegistryContractAddress = "0x7E618a3948F6a5D2EA6b92D8Ce6723a468540CaA"; msTestContractAddress = "0x4092bc250ef6c384804af2f871Af9c679b672d0B"; } if (String.IsNullOrEmpty(msChronoLogAddress)) { var web3 = GetWeb3(); var ChronoLogDeployment = new Wonka.Eth.Autogen.ChronoLog.ChronoLogDeployment(); Nethereum.Hex.HexTypes.HexBigInteger nDefaultGas = new Nethereum.Hex.HexTypes.HexBigInteger(1000000); msChronoLogAddress = await ChronoLogDeployment.DeployContractAsync(web3, msAbiChronoLog, msSenderAddress, nDefaultGas, CONST_ONLINE_TEST_CHAIN_URL).ConfigureAwait(false); } await InitEngineAsync(mbInitChainEnv).ConfigureAwait(false); Wonka.BizRulesEngine.Writers.WonkaBizRulesXmlWriter Writer = new Wonka.BizRulesEngine.Writers.WonkaBizRulesXmlWriter(moEthEngineInit.Engine.RulesEngine); string sOutputRules = Writer.ExportXmlString(); return(bResult); }
public async Task <string> DeployWonka() { var web3 = GetWeb3(); var EngineDeployment = new Wonka.Eth.Autogen.WonkaEngine.WonkaEngineDeploymentClassic(); var RegistryDeployment = new Wonka.Eth.Autogen.WonkaRegistry.WonkaRegistryDeployment(); var TestCntDeployment = new Wonka.Eth.Autogen.WonkaTestContract.WonkaTestContractDeployment(); var ChronoLogDeployment = new Wonka.Eth.Autogen.ChronoLog.ChronoLogDeployment(); Nethereum.Hex.HexTypes.HexBigInteger nEngineGas = new Nethereum.Hex.HexTypes.HexBigInteger(8388608); Nethereum.Hex.HexTypes.HexBigInteger nDefaultGas = new Nethereum.Hex.HexTypes.HexBigInteger(1000000); msEngineContractAddress = await EngineDeployment.DeployContractAsync(web3, msAbiWonka, msSenderAddress, nEngineGas, CONST_ONLINE_TEST_CHAIN_URL).ConfigureAwait(false); msRegistryContractAddress = await RegistryDeployment.DeployContractAsync(web3, msAbiRegistry, msSenderAddress, nDefaultGas, CONST_ONLINE_TEST_CHAIN_URL).ConfigureAwait(false); msTestContractAddress = await TestCntDeployment.DeployContractAsync(web3, msAbiOrchTest, msSenderAddress, nDefaultGas, CONST_ONLINE_TEST_CHAIN_URL).ConfigureAwait(false); msChronoLogAddress = await ChronoLogDeployment.DeployContractAsync(web3, msAbiChronoLog, msSenderAddress, nDefaultGas, CONST_ONLINE_TEST_CHAIN_URL).ConfigureAwait(false); return(msEngineContractAddress); }