From 53c315e5c2d2baef16f8a6dc7cba18f2c55c55ae Mon Sep 17 00:00:00 2001 From: "Ching-Hua (Vivian) Lin" <jkrvivian@gmail.com> Date: Mon, 15 Jun 2020 21:17:41 +0800 Subject: [PATCH] feat: Add inclusion states to webapis (#476) * feat: Add inclusion states to weapis * refactor: Rename Conflict to Rejected --- .../webapi/value/gettransactionbyid/handler.go | 16 ++++++++++++---- plugins/webapi/value/unspentoutputs/handler.go | 8 ++++---- .../webapi/value/utils/transaction_handler.go | 3 ++- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/plugins/webapi/value/gettransactionbyid/handler.go b/plugins/webapi/value/gettransactionbyid/handler.go index ba4d9248..df4791ab 100644 --- a/plugins/webapi/value/gettransactionbyid/handler.go +++ b/plugins/webapi/value/gettransactionbyid/handler.go @@ -26,13 +26,21 @@ func Handler(c echo.Context) error { } txn := utils.ParseTransaction(txnObj.Unwrap()) - // TODO: get inclusion state + // get txn metadata + txnMetadataObj := valuetransfers.Tangle.TransactionMetadata(txnID) + defer txnMetadataObj.Release() + if !txnMetadataObj.Exists() { + return c.JSON(http.StatusNotFound, Response{Error: "Transaction Metadata not found"}) + } + txnMetadata := txnMetadataObj.Unwrap() + return c.JSON(http.StatusOK, Response{ Transaction: txn, InclusionState: utils.InclusionState{ - Confirmed: true, - Conflict: false, - Liked: true, + Solid: txnMetadata.Solid(), + Confirmed: txnMetadata.Confirmed(), + Rejected: txnMetadata.Rejected(), + Liked: txnMetadata.Liked(), }, }) } diff --git a/plugins/webapi/value/unspentoutputs/handler.go b/plugins/webapi/value/unspentoutputs/handler.go index e22c9b0a..738c278f 100644 --- a/plugins/webapi/value/unspentoutputs/handler.go +++ b/plugins/webapi/value/unspentoutputs/handler.go @@ -32,7 +32,6 @@ func Handler(c echo.Context) error { defer outputObj.Release() output := outputObj.Unwrap() - // TODO: get inclusion state if output.ConsumerCount() == 0 { // iterate balances var b []utils.Balance @@ -47,9 +46,10 @@ func Handler(c echo.Context) error { ID: id.String(), Balances: b, InclusionState: utils.InclusionState{ - Confirmed: true, - Conflict: false, - Liked: true, + Solid: output.Solid(), + Confirmed: output.Confirmed(), + Rejected: output.Rejected(), + Liked: output.Liked(), }, }) } diff --git a/plugins/webapi/value/utils/transaction_handler.go b/plugins/webapi/value/utils/transaction_handler.go index 308904d5..359446a2 100644 --- a/plugins/webapi/value/utils/transaction_handler.go +++ b/plugins/webapi/value/utils/transaction_handler.go @@ -64,7 +64,8 @@ type Balance struct { // InclusionState represents the different states of an OutputID type InclusionState struct { + Solid bool `json:"solid,omitempty"` Confirmed bool `json:"confirmed,omitempty"` - Conflict bool `json:"conflict,omitempty"` + Rejected bool `json:"rejected,omitempty"` Liked bool `json:"liked,omitempty"` } -- GitLab