完成国密版本部署、交易、Call操作代码优化 针对国密版本交易event解析等进行扩写 排查合约部署异常,原因是webase front 导出和合约面板bin不一致导致,使用合约面板bin可以完成sdk中合约部署 导出bin文件有问题,需要手动替换 构建TraceEvidenceContractTest.cs 完成全流程国密部署、交易、call等测试
FISCOBCOS 区块链 C# Sdk,目前是采用Json RPC API 接口和区块链底层(标准版本)进行适配。
作者:林宣名
B站教学视频:
FISCO BCOS C#Sdk之交易解析(上):https://www.bilibili.com/video/BV1av41147Lo
FISCO BCOS C#Sdk之交易解析(中):https://www.bilibili.com/video/BV19z4y167zv
FISCO BCOS C#Sdk之交易解析(下):https://www.bilibili.com/video/BV11K4y1L7SD
国密版本使用介绍和代码解析:https://www.bilibili.com/video/BV1tY4y137GN?vd_source=d13b0630d8f5bdd49b00820fee2bcbde#reply118116701616
有好的建议,请联系我! 我的邮箱:2594771947@qq.com
软件架构说明
FISCOBCOS C# Sdk 采用 net core 3.1,配套开发工具是vs Code 和 Visual Studio 2019。
备注:发送交易并同步返回交易回执测试,有一定几率为空,那是因为底层交易在打包,还没完成共识。目前最新代码新增轮询获取,优化交易回执方法,提高用户体验。
备注:也可以使用webase-front 区块链中间件导出合约获得abi和bin文件。
参考:
备注:通用的Json RPC API 相对简单,没有封装对应的DTO 实体,操作时候可以通过在线json 生成实体进行业务结合。
在BaseConfig.cs 文件中配置IsSMCrypt = true;采用国密签名及配套通信。
在BaseConfig.cs 文件中配置DefaultPrivateKeyPemPath 为默认用户私钥pem 文件【可选】。
生成国密用户账户等信息,可导入webase-front,查看单元测试。
/// <summary> /// 国密生成一对公私钥,生成的json可以copy 到txt文件,直接导入webase front 等组件中 /// </summary> [Fact] public void GMGeneratorAccountJsonTest() { var account = AccountUtils.GMGeneratorAccount("adminUser" + new Random().Next(100000, 1000000).ToString()); var accountString = account.ToJson(); // Debug.WriteLine(accountString); _testOutput.WriteLine(accountString); Assert.True(accountString.ToObject<AccountDto>().PublicKey.Length > 0); }
进行合约部署、交易等,查看单元测试GMContractTest.cs。
/// <summary> /// 异步调用合约方法,本测试调用合约set方法,可以解析input和event /// 遇到交易hash为空,生产环境采用定时服务/队列形式,先获取交易哈希,之后再去获取对应的数据 /// </summary> /// <returns></returns> [Fact] public async Task SendTranscationWithReceiptDecodeAsyncTest() { var contractService = new ContractService(BaseConfig.DefaultUrl, BaseConfig.DefaultRpcId, BaseConfig.DefaultChainId, BaseConfig.DefaultGroupId, privateKey); string contractAddress = "0x26cf8fcb783bbcc7b320a46b0d1dfff5fbb27feb";//上面测试部署合约得到合约地址 var inputsParameters = new[] { BuildParams.CreateParam("string", "n") }; var paramsValue = new object[] { "123" }; string functionName = "set";//调用合约方法 ReceiptResultDto receiptResultDto = await contractService.SendTranscationWithReceiptAsync(abi, contractAddress, functionName, inputsParameters, paramsValue); Assert.NotEmpty(receiptResultDto.Output); Assert.NotEmpty(receiptResultDto.Input); Assert.NotEmpty(receiptResultDto.Logs); var solidityAbi = new SolidityABI(abi); var inputList = solidityAbi.InputDecode(functionName, receiptResultDto.Input); Assert.True(inputList[0].Parameter.Name == "n" && inputList[0].Result.ToString() == "123"); string eventName = "SetEvent"; var eventList = solidityAbi.EventDecode(eventName, receiptResultDto.Logs); var eventpramas1 = eventList[0].Event.Find(x => x.Parameter.Name == "paramsStr"); var eventpramas2 = eventList[0].Event.Find(x => x.Parameter.Name == "operationTimeStamp"); Assert.True(eventpramas1.Result.ToString() == "123"); Assert.NotNull(eventpramas2.Result); }
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
FISCOBCOS C# Sdk
介绍
FISCOBCOS 区块链 C# Sdk,目前是采用Json RPC API 接口和区块链底层(标准版本)进行适配。
作者:林宣名
B站教学视频:
FISCO BCOS C#Sdk之交易解析(上):https://www.bilibili.com/video/BV1av41147Lo
FISCO BCOS C#Sdk之交易解析(中):https://www.bilibili.com/video/BV19z4y167zv
FISCO BCOS C#Sdk之交易解析(下):https://www.bilibili.com/video/BV11K4y1L7SD
国密版本使用介绍和代码解析:https://www.bilibili.com/video/BV1tY4y137GN?vd_source=d13b0630d8f5bdd49b00820fee2bcbde#reply118116701616
有好的建议,请联系我! 我的邮箱:2594771947@qq.com
软件架构
软件架构说明
FISCOBCOS C# Sdk 采用 net core 3.1,配套开发工具是vs Code 和 Visual Studio 2019。
功能介绍
备注:发送交易并同步返回交易回执测试,有一定几率为空,那是因为底层交易在打包,还没完成共识。目前最新代码新增轮询获取,优化交易回执方法,提高用户体验。
安装教程
备注:也可以使用webase-front 区块链中间件导出合约获得abi和bin文件。
参考:
使用说明
备注:通用的Json RPC API 相对简单,没有封装对应的DTO 实体,操作时候可以通过在线json 生成实体进行业务结合。
国密使用说明
在BaseConfig.cs 文件中配置IsSMCrypt = true;采用国密签名及配套通信。
在BaseConfig.cs 文件中配置DefaultPrivateKeyPemPath 为默认用户私钥pem 文件【可选】。
生成国密用户账户等信息,可导入webase-front,查看单元测试。
进行合约部署、交易等,查看单元测试GMContractTest.cs。
新增特性