corda - 在 Corda 中,如何获取交易发生时间的时间戳?
问题描述
我正在使用 Corda 3.2。给定 a SignedTransaction
,我如何确定它何时被记录?
解决方案
没有用于确定何时记录事务的直接 API。但是,您可以通过检查以下任一项来实现此目的:
当交易的输入之一被消耗时:
val inputStateRef = signedTx.inputs[0] val queryCriteria = QueryCriteria.VaultQueryCriteria(stateRefs = listOf(inputStateRef)) val results = serviceHub.vaultService.queryBy<ContractState>(queryCriteria) val consumedTime = results.statesMetadata.single().consumedTime!!
当交易的输出之一被记录时:
val ledgerTx = signedTx.toLedgerTransaction(serviceHub) val outputStateRef = StateRef(signedTx.id, 0) val queryCriteria = QueryCriteria.VaultQueryCriteria(stateRefs = listOf(outputStateRef)) val results = serviceHub.vaultService.queryBy<ContractState>(queryCriteria) val recordedTime = results.statesMetadata.single().recordedTime
推荐阅读
- html - 右面板底部有 div
- django - Django 两因素身份验证设置
- android - Android中的Xamarin Forms WebView:无法在WebView中打开HTML中的PDF链接
- python-3.x - 我无法安装底图包
- php - PHP/MYSQL 插入什么也不做
- sql - 如何将列中的 NULL 值换成最后一个非 NULL 值?
- amazon-s3 - 将本地文件夹结构同步到 s3 根结构
- css - 如何将 Angular 的模拟封装属性应用于动态添加到 Angular 组件的 HTML 元素?
- php - Google amp 页面:如何向 amp-image-lightbox 添加关闭按钮?
- r - na.omit 似乎正在删除我的数据框中的负值?