public async Task <ActionResult <TransactionReturnInfo> > Post([FromBody] QuorumTransactionInput input) { if (input.functionName == null || String.IsNullOrEmpty(input.contractAddress)) { return(new BadRequestObjectResult("You must supply a contract address and function name")); } var contractInfo = new ContractInfo(); var client = new HttpClient(); var filejson = await client.GetStringAsync(Environment.GetEnvironmentVariable("CONTRACT_JSON_BLOB_URL", EnvironmentVariableTarget.Process)); dynamic _file = JsonConvert.DeserializeObject(filejson); var abi = _file?.abi; var byteCode = _file?.bytecode?.Value; contractInfo.ContractABI = JsonConvert.SerializeObject(abi); contractInfo.ContractByteCode = byteCode; var keyVaultURI = Environment.GetEnvironmentVariable("KEYVAULT_PRIVATEKEY_URI", EnvironmentVariableTarget.Process); var RPC = Environment.GetEnvironmentVariable("RPC", EnvironmentVariableTarget.Process); QuorumContractHelper.Instance.SetWeb3Handler(RPC); var appID = Environment.GetEnvironmentVariable("APP_ID", EnvironmentVariableTarget.Process); var appSecret = Environment.GetEnvironmentVariable("APP_SECRET", EnvironmentVariableTarget.Process); var externalAccount = await AccountHelper.BuildExternalSigner(this.logger, keyVaultURI); //var externalAccount = AccountHelper.BuildExternalSignerWithToken(log,keyVaultURI,appID,appSecret); var res = await QuorumContractHelper.Instance.CreateTransactionWithExternalAccountAsync(input.contractAddress, contractInfo, input.functionName, externalAccount, input.inputParams, input.privateFor); return(CreatedAtAction(nameof(Get), new { hashCode = res.TransactionHash }, res)); }
public async Task <ActionResult <GetRecordByIndexResponse> > Post([FromBody] QuorumTransactionInput input) { Console.WriteLine("C# HTTP trigger function processed a request."); if (input.functionName == null || (String.IsNullOrEmpty(input.contractAddress))) { return(new BadRequestObjectResult("You must supply a contract address and function name")); } var contractInfo = new ContractInfo(); var client = new HttpClient(); var filejson = await client.GetStringAsync(Environment.GetEnvironmentVariable("CONTRACT_JSON_BLOB_URL", EnvironmentVariableTarget.Process)); dynamic _file = JsonConvert.DeserializeObject(filejson); var abi = _file?.abi; var byteCode = _file?.bytecode?.Value; contractInfo.ContractABI = JsonConvert.SerializeObject(abi); contractInfo.ContractByteCode = byteCode; var accountJSON = Environment.GetEnvironmentVariable("KEYVAULT_ACCOUNT1_URL", EnvironmentVariableTarget.Process); var pwd = Environment.GetEnvironmentVariable("KEYVAULT_ETH_PASSWORD", EnvironmentVariableTarget.Process); var RPC = Environment.GetEnvironmentVariable("RPC", EnvironmentVariableTarget.Process); QuorumContractHelper.Instance.SetWeb3Handler(RPC); //var res = await QuorumContractHelper.Instance.CallContractFunctionAsync<int>(address, contractInfo, functionName, AccountHelper.DecryptAccount(accountJSON,pwd),functionParams); var keyVaultURI = Environment.GetEnvironmentVariable("KEYVAULT_PRIVATEKEY_URI", EnvironmentVariableTarget.Process); var appID = Environment.GetEnvironmentVariable("APP_ID", EnvironmentVariableTarget.Process); var appSecret = Environment.GetEnvironmentVariable("APP_SECRET", EnvironmentVariableTarget.Process); //var externalAccount = AccountHelper.BuildExternalSignerWithToken(this.logger,keyVaultURI,appID,appSecret); var externalAccount = await AccountHelper.BuildExternalSigner(this.logger, keyVaultURI); //var res = await QuorumContractHelper.Instance.CallContractFunctionAsync<int>(input.contractAddress, contractInfo, input.functionName, externalAccount.Address, input.inputParams); var res = await QuorumContractHelper.Instance.CallContractFunctionAsync <GetRecordByIndexResponse>(input.contractAddress, contractInfo, input.functionName, externalAccount.Address, input.inputParams); //return new GetRecordByIndexResponse { SensorId = res.SensorId} return(res); }
public async Task <ActionResult <TransactionReturnInfo> > Post([FromBody] QuorumTransactionInput input) { Console.WriteLine("Received request to create new contract"); var contractInfo = await GetContractInfo(); var keyVaultURI = Environment.GetEnvironmentVariable("KEYVAULT_PRIVATEKEY_URI", EnvironmentVariableTarget.Process); var RPC = Environment.GetEnvironmentVariable("RPC", EnvironmentVariableTarget.Process); Console.WriteLine("Retrieved the keyvault uri and RPC endpoint from environment variables - {0}, {1}", keyVaultURI, RPC); QuorumContractHelper.Instance.SetWeb3Handler(RPC); var appID = Environment.GetEnvironmentVariable("APP_ID", EnvironmentVariableTarget.Process); var appSecret = Environment.GetEnvironmentVariable("APP_SECRET", EnvironmentVariableTarget.Process); Console.WriteLine("Retrieved the APP_ID and APP_SECRET from environment variables - {0}, {1}", appID, appSecret); var externalAccount = await AccountHelper.BuildExternalSigner(this.logger, keyVaultURI); var transactionReturnInfo = await QuorumContractHelper.Instance.CreateContractWithExternalAccountAsync(contractInfo, externalAccount, input.inputParams, input.privateFor); return(CreatedAtAction(nameof(Get), new { hashCode = transactionReturnInfo.TransactionHash }, transactionReturnInfo)); }