我正在测试Corda 4 Cordapp,并设置了一个Spring Web服务器来对我的cordapps进行api调用。我有一个名为```get-all-contract1-states''的api,它的功能与它所说的完全一样。它使我的所有contract1状态都在保管库中。
当我调用此函数时,它会返回状态,但还会返回大量重复的元数据,从而使1个状态的输出超过600k行。
@GetMapping(value = "/get-contract1-states", produces = arrayOf(MediaType.APPLICATION_JSON_VALUE))
fun getContract1s() = rpcOps.vaultQueryBy(criteria = VaultQueryCriteria(status = Vault.StateStatus.ALL), paging = PageSpecification(DEFAULT_PAGE_NUM, 200), sorting = Sort(emptySet()), contractStateType = contract1State::class.java).states
关于"zero":false,"one":false,"fieldSize":256,"fieldName":"SecP256R1Field"
,大多数重复元数据(约占60万行的85%)位于Json的末尾。是否有任何标志,选项或只是任何方法来获取没有太多多余数据的干净合同版本。我只关心合同中的变量,仅此而已。
答案 0 :(得分:0)
您当前拥有的物品将为您返回以下物品的集合:
@GetMapping(value = "/get-contract1-states", produces = arrayOf(MediaType.APPLICATION_JSON_VALUE))
fun getContract1s() = proxy.vaultQueryBy(criteria = QueryCriteria.VaultQueryCriteria(status =
Vault.StateStatus.ALL), paging = PageSpecification(DEFAULT_PAGE_NUM, 200),
sorting = Sort(emptySet()), contractStateType = IOUState::class.java).states.map { it.state.data }
为什么要获取所有元数据。您在该数据对象中所追求的是状态(实际上返回StateAndRef),然后仅在每个状态之内。
下面的代码应该可以帮助您:
Gtk::OffscreenWindow
注意:这里的关键是到 state.data
的映射