You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@milagro.apache.org by cm...@apache.org on 2019/10/09 12:49:10 UTC
[incubator-milagro-dta] branch tendermint updated (2932457 ->
b1a85e3)
This is an automated email from the ASF dual-hosted git repository.
cmorris pushed a change to branch tendermint
in repository https://gitbox.apache.org/repos/asf/incubator-milagro-dta.git.
from 2932457 Rename HTTP endpoints /order1 to /order and /order/secret1 to /order/secret
new bf75aaf Add fishhook
new 93c4966 Merge branch 'tendermint' into fishhook
new 7268634 in progress
new 7e811ee Update fishhook
new f9c7a03 Complete fishhook and update tests
new b1a85e3 Merge branch 'fishhook' into tendermint
The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
cmd/servicetester/e2e_test.sh | 209 ++++++++-------------
cmd/servicetester/{e2e_test.sh => e2e_test.sh.old} | 0
cmd/servicetester/{main => fishhook} | Bin 23390004 -> 29288396 bytes
cmd/servicetester/main.go | 2 +-
cmd/servicetester/ref | 1 +
go.sum | 14 ++
p | 4 +-
pkg/defaultservice/orderTX.go | 3 +-
pkg/endpoints/endpoints.go | 2 +-
pkg/tendermint/cmd/tmget.go | 110 -----------
pkg/tendermint/fishhook/build | 2 +
.../main => pkg/tendermint/fishhook/fishhook | Bin 23390004 -> 29288396 bytes
pkg/tendermint/fishhook/main.go | 186 ++++++++++++++++++
pkg/tendermint/{cmd => }/transactions.go | 10 +-
14 files changed, 292 insertions(+), 251 deletions(-)
copy cmd/servicetester/{e2e_test.sh => e2e_test.sh.old} (100%)
copy cmd/servicetester/{main => fishhook} (65%)
create mode 100644 cmd/servicetester/ref
delete mode 100644 pkg/tendermint/cmd/tmget.go
create mode 100755 pkg/tendermint/fishhook/build
copy cmd/servicetester/main => pkg/tendermint/fishhook/fishhook (65%)
create mode 100644 pkg/tendermint/fishhook/main.go
rename pkg/tendermint/{cmd => }/transactions.go (89%)
[incubator-milagro-dta] 06/06: Merge branch 'fishhook' into
tendermint
Posted by cm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cmorris pushed a commit to branch tendermint
in repository https://gitbox.apache.org/repos/asf/incubator-milagro-dta.git
commit b1a85e3d03c3f6a6797978871ff505d6b048ff1c
Merge: 2932457 f9c7a03
Author: Christopher Morris <ch...@morris.net>
AuthorDate: Wed Oct 9 13:48:03 2019 +0100
Merge branch 'fishhook' into tendermint
cmd/servicetester/e2e_test.sh | 209 ++++++++-------------
cmd/servicetester/{e2e_test.sh => e2e_test.sh.old} | 0
cmd/servicetester/fishhook | Bin 0 -> 29288396 bytes
cmd/servicetester/main.go | 2 +-
cmd/servicetester/ref | 1 +
go.sum | 14 ++
p | 4 +-
pkg/defaultservice/orderTX.go | 3 +-
pkg/endpoints/endpoints.go | 2 +-
pkg/tendermint/cmd/tmget.go | 110 -----------
pkg/tendermint/fishhook/build | 2 +
pkg/tendermint/fishhook/fishhook | Bin 0 -> 29288396 bytes
pkg/tendermint/fishhook/main.go | 186 ++++++++++++++++++
pkg/tendermint/{cmd => }/transactions.go | 10 +-
14 files changed, 292 insertions(+), 251 deletions(-)
[incubator-milagro-dta] 03/06: in progress
Posted by cm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cmorris pushed a commit to branch tendermint
in repository https://gitbox.apache.org/repos/asf/incubator-milagro-dta.git
commit 726863453d48e88d0ed377c4ac1df7dd72337c01
Author: Christopher Morris <ch...@morris.net>
AuthorDate: Wed Oct 9 09:06:43 2019 +0100
in progress
---
pkg/tendermint/cmd/{tmget => fishhook} | Bin 28468644 -> 24169060 bytes
pkg/tendermint/cmd/fishhook.go | 19 ++++++-----
pkg/tendermint/cmd/transactions.go | 60 ---------------------------------
3 files changed, 10 insertions(+), 69 deletions(-)
diff --git a/pkg/tendermint/cmd/tmget b/pkg/tendermint/cmd/fishhook
similarity index 68%
rename from pkg/tendermint/cmd/tmget
rename to pkg/tendermint/cmd/fishhook
index 27ede0c..854a652 100755
Binary files a/pkg/tendermint/cmd/tmget and b/pkg/tendermint/cmd/fishhook differ
diff --git a/pkg/tendermint/cmd/fishhook.go b/pkg/tendermint/cmd/fishhook.go
index 7971666..b3344a1 100644
--- a/pkg/tendermint/cmd/fishhook.go
+++ b/pkg/tendermint/cmd/fishhook.go
@@ -12,6 +12,7 @@ import (
"time"
"github.com/TylerBrock/colorjson"
+ "github.com/apache/incubator-milagro-dta/pkg/tendermint"
"github.com/urfave/cli"
)
@@ -52,10 +53,10 @@ Qredo DT-A uses:
if url == "" {
url = "localhost:26657"
}
- if len(c.Args()) == 0 {
- print(app.UsageText)
- return nil
- }
+ // if len(c.Args()) == 0 {
+ // print(app.UsageText)
+ // return nil
+ // }
fullUrl := "http://" + url + "/tx_search?query=\"" + tag + "=" + lookup + "\""
print(fullUrl)
@@ -67,19 +68,19 @@ Qredo DT-A uses:
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
- txResponse, err := UnmarshalFetchTxResponse([]byte(body))
+ txResponse, err := tendermint.UnmarshalFetchTxResponse([]byte(body))
- txs := txResponse.Result.Txs
+ txs := txResponse.TResult.Txs
for r1, v := range txs {
for r2, v1 := range v.TxResult.Events {
for r3, v2 := range v1.Attributes {
newkey, _ := base64.StdEncoding.DecodeString(v2.Key)
- txResponse.Result.Txs[r1].TxResult.Events[r2].Attributes[r3].Key = string(newkey)
+ txResponse.TResult.Txs[r1].TxResult.Events[r2].Attributes[r3].Key = string(newkey)
newval, _ := base64.StdEncoding.DecodeString(v2.Value)
- txResponse.Result.Txs[r1].TxResult.Events[r2].Attributes[r3].Value = string(newval)
+ txResponse.TResult.Txs[r1].TxResult.Events[r2].Attributes[r3].Value = string(newval)
if string(newkey) == "key" {
- txResponse.Result.Txs[r1].TxResult.Events[r2].Attributes[r3].Value = hex.EncodeToString(newval)
+ txResponse.TResult.Txs[r1].TxResult.Events[r2].Attributes[r3].Value = hex.EncodeToString(newval)
}
}
}
diff --git a/pkg/tendermint/cmd/transactions.go b/pkg/tendermint/cmd/transactions.go
deleted file mode 100644
index 2b68658..0000000
--- a/pkg/tendermint/cmd/transactions.go
+++ /dev/null
@@ -1,60 +0,0 @@
-package main
-
-import "encoding/json"
-
-func UnmarshalFetchTxResponse(data []byte) (FetchTxResponse, error) {
- var r FetchTxResponse
- err := json.Unmarshal(data, &r)
- return r, err
-}
-
-func (r *FetchTxResponse) Marshal() ([]byte, error) {
- return json.Marshal(r)
-}
-
-func UnmarshalAttribute(data []byte) (Attribute, error) {
- var r Attribute
- print("hello")
- err := json.Unmarshal(data, &r)
- return r, err
-}
-
-type FetchTxResponse struct {
- ID string `json:"id"`
- Jsonrpc string `json:"jsonrpc"`
- Result Result `json:"result"`
-}
-
-type Result struct {
- TotalCount string `json:"total_count"`
- Txs []Tx `json:"txs"`
-}
-
-type Tx struct {
- Hash string `json:"hash"`
- Height string `json:"height"`
- Index int64 `json:"index"`
- Tx string `json:"tx"`
- TxResult TxResult `json:"tx_result"`
-}
-
-type TxResult struct {
- Code int64 `json:"code"`
- Codespace string `json:"codespace"`
- Data interface{} `json:"data"`
- Events []Event `json:"events"`
- GasUsed string `json:"gasUsed"`
- GasWanted string `json:"gasWanted"`
- Info string `json:"info"`
- Log string `json:"log"`
-}
-
-type Event struct {
- Attributes []Attribute `json:"attributes"`
- Type string `json:"type"`
-}
-
-type Attribute struct {
- Key string `json:"key"`
- Value string `json:"value"`
-}
[incubator-milagro-dta] 05/06: Complete fishhook and update tests
Posted by cm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cmorris pushed a commit to branch tendermint
in repository https://gitbox.apache.org/repos/asf/incubator-milagro-dta.git
commit f9c7a03a365815ed6f0bbb9cf5e801967012d601
Author: Christopher Morris <ch...@morris.net>
AuthorDate: Wed Oct 9 13:44:59 2019 +0100
Complete fishhook and update tests
---
cmd/servicetester/e2e_test.sh | 209 ++++++++-------------
cmd/servicetester/{e2e_test.sh => e2e_test.sh.old} | 0
.../fishhook => cmd/servicetester}/fishhook | Bin 29288396 -> 29288396 bytes
cmd/servicetester/main.go | 2 +-
cmd/servicetester/ref | 1 +
pkg/defaultservice/orderTX.go | 3 +-
pkg/tendermint/fishhook/fishhook | Bin 29288396 -> 29288396 bytes
pkg/tendermint/fishhook/main.go | 41 ++--
pkg/tendermint/fishhook/run | 2 -
9 files changed, 109 insertions(+), 149 deletions(-)
diff --git a/cmd/servicetester/e2e_test.sh b/cmd/servicetester/e2e_test.sh
index a0f7f0d..2c3ca87 100755
--- a/cmd/servicetester/e2e_test.sh
+++ b/cmd/servicetester/e2e_test.sh
@@ -22,13 +22,14 @@
apiVersion="v1"
defaultURL="http://localhost:5556"
apiURL="${1:-$defaultURL}"
-
+configdir="/Users/chris/.milagro"
+host="34.246.173.153:26657"
status () {
#Determine if an extension is running
statusOutput=$(curl -s -X GET "$apiURL/$apiVersion/status" -H "accept: */*" -H "Content-Type: application/json")
-echo "$apiURL/$apiVersion/status"
+ echo "$apiURL/$apiVersion/status"
identity=$(echo $statusOutput | jq .nodeCID)
extensionVendor=$(echo $statusOutput | jq -r .extensionVendor)
@@ -45,144 +46,93 @@ echo "$apiURL/$apiVersion/status"
execute_bitcoin () {
# #Run 4 Tests against the Bitcoin Extension
- echo "Bitcoin Plugin Tests [4 Tests]"
- output1=$(curl -s -X POST "$apiURL/$apiVersion/order1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}")
- #echo $output1
- op1=$(echo $output1 | jq .orderReference)
- commitment1=$(echo $output1 | jq .commitment)
- address1=$(echo $output1 | jq .extension.address)
- output2=$(curl -s -X POST "$apiURL/$apiVersion/order/secret1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op1,\"beneficiaryIDDocumentCID\":$identity}")
- address2=$(echo $output2 | jq .extension.address)
- commitment2=$(echo $output2 | jq .commitment)
-
- echo "Committment1 $commitment1 $address1"
- echo "Committment2 $commitment2 $address2"
-
+ echo "Bitcoin Plugin Tests [2 Tests]"
+
+
+ ( sleep 1; curl -s -X POST "$apiURL/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}" > ref ) &
+ output1=$(fishhook $configdir $host "self" 2)
+ ref=$(cat ref)
+ commitment1=$(echo $output1 | jq .OrderPart2.CommitmentPublicKey)
+ address1=$(echo $output1 | jq .OrderPart2.Extension.address)
+ (sleep 1; curl -s -X POST "$apiURL/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$ref,\"beneficiaryIDDocumentCID\":$identity}" > /dev/null ) &
+ output2=$(fishhook $configdir $host "self" 2)
+ address2=$(echo $output2 | jq .OrderPart4.Extension.address)
+ commitment2=$(echo $output2 | jq .OrderPart4.Extension.FinalPublicKey)
+ #echo "Committment1 $commitment1 $address1"
+ #echo "Committment2 $commitment2 $address2"
if [ -z $commitment2 ]; then
echo "Failed Commitment is empty"
exit 1
fi
-
- if [ $commitment1 == $commitment2 ]; then
- echo "Pass - Id, Order & OrderSecret(Beneficiary)"
- else
+ if [ $commitment1 != $commitment2 ]; then
echo "Fail"
exit 1
fi
-
- output3=$(curl -s -X POST "$apiURL/$apiVersion/order1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":$identity,\"extension\":{\"coin\":\"0\"}}")
-
- op3=$(echo $output3 | jq .orderReference)
- commitment3=$(echo $output3 | jq .commitment)
- address3=$(echo $output3 | jq .extension.address)
- output4=$(curl -s -X POST "$apiURL/$apiVersion/order/secret1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op3}")
- commitment4=$(echo $output4 | jq .commitment)
- address4=$(echo $output4 | jq .extension.address)
- orderReference=$(echo $output4 | jq .orderReference)
- orderIndex=1
-
- echo "Committment3 $commitment3 $address3"
- echo "Committment4 $commitment4 $address4"
-
- if [ -z $commitment4 ]; then
+ if [ $address2 != $address2 ]; then
+ echo "Fail"
+ exit 1
+ fi
+ echo "Pass - Id, Order & OrderSecret(Beneficiary)"
+
+
+ ( sleep 1; curl -s -X POST "$apiURL/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":$identity,\"extension\":{\"coin\":\"0\"}}" > ref ) &
+ output1=$(fishhook $configdir $host "self" 2)
+ ref=$(cat ref)
+ commitment1=$(echo $output1 | jq .OrderPart2.CommitmentPublicKey)
+ address1=$(echo $output1 | jq .OrderPart2.Extension.address)
+ (sleep 1; curl -s -X POST "$apiURL/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$ref}" > /dev/null ) &
+ output2=$(fishhook $configdir $host "self" 2)
+ address2=$(echo $output2 | jq .OrderPart4.Extension.address)
+ commitment2=$(echo $output2 | jq .OrderPart4.Extension.FinalPublicKey)
+ #echo "Committment1 $commitment1 $address1"
+ #echo "Committment2 $commitment2 $address2"
+ if [ -z $commitment2 ]; then
echo "Failed Commitment is empty"
exit 1
fi
-
- if [ $commitment3 == $commitment4 ]; then
- echo "Pass - Id, Order(Beneficiary) & OrderSecret"
- else
- echo "Fail"
- exit 1
+ if [ $commitment1 != $commitment2 ]; then
+ echo "Fail"
+ exit 1
fi
-
-
- #make another BeneficiaryID
- # output5=$(curl -s -X POST "http://localhost:5556/$apiVersion/identity" -H "accept: */*" -H "Content-Type: application/json" -d "{\"Name\":\"AA\"}")
- # benid=$(echo $output5 | jq -r .idDocumentCID)
-
- # #Tests against the Bitcoin Extension - different befificary
- # output6=$(curl -s -X POST "http://localhost:5556/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}")
- # #echo $output6
- # op6=$(echo $output6 | jq .orderReference)
- # commitment6=$(echo $output6 | jq .commitment)
- # address6=$(echo $output6 | jq .extension.address)
-
- # output7=$(curl -s -X POST "http://localhost:5556/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op6,\"beneficiaryIDDocumentCID\":\"$benid\"}")
- # address7=$(echo $output7 | jq .extension.address)
- # commitment7=$(echo $output7 | jq .commitment)
-
- # echo "Committment5 $commitment6 $address6"
- # echo "Committment6 $commitment7 $address7"
-
- # if [ -z $commitment7 ]; then
- # echo "Failed Commitment is empty"
- # exit 1
- # fi
-
- # if [ $commitment6 == $commitment7 ]; then
- # echo "Pass - Id, Order & OrderSecret(Beneficiary)"
- # else
- # echo "Fail"
- # exit 1
- # fi
-
- # output8=$(curl -s -X POST "http://localhost:5556/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"$benid\",\"extension\":{\"coin\":\"0\"}}")
- # op8=$(echo $output8 | jq .orderReference)
- # commitment8=$(echo $output8 | jq .commitment)
- # address8=$(echo $output8 | jq .extension.address)
-
-
- # output9=$(curl -s -X POST "http://localhost:5556/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op8}")
- # commitment9=$(echo $output9 | jq .commitment)
- # address9=$(echo $output9 | jq .extension.address)
- # orderReference=$(echo $output9 | jq .orderReference)
- # orderIndex=1
-
- # echo "Committment7 $commitment8 $address8"
- # echo "Committment8 $commitment9 $address9"
-
- # if [ -z $commitment9 ]; then
- # echo "Failed Commitment is empty"
- # exit 1
- # fi
-
- # if [ $commitment8 == $commitment9 ]; then
- # echo "Pass - Id, Order(Beneficiary) & OrderSecret"
- # else
- # echo "Fail"
- # exit 1
- # fi
-
+ if [ $address2 != $address2 ]; then
+ echo "Fail"
+ exit 1
+ fi
+ echo "Pass - Id, Order(Beneficiary) & OrderSecret"
}
###############################################################################################################################
execute_safeguardsecret () {
+
inputString="This is some random test text 1234567890!"
echo "Encrypt a String [1 Test]"
- echo $output1
- output1=$(curl -s -X POST "$apiURL/$apiVersion/order1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":$identity,\"extension\":{\"plainText\":\"$inputString\"}}")
- echo $output1
- op1=$(echo $output1 | jq .orderReference)
- cipherText=$(echo $output1 | jq .extension.cypherText)
- tvalue=$(echo $output1 | jq .extension.t)
- vvalue=$(echo $output1 | jq .extension.v)
- commitment1=$(echo $output1 | jq .commitment)
- output2=$(curl -s -X POST "$apiURL/$apiVersion/order/secret1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op1,\"beneficiaryIDDocumentCID\":$identity,\"extension\":{\"cypherText\":$cipherText,\"t\":$tvalue,\"v\":$vvalue}}")
- result=$(echo $output2 | jq -r .extension.plainText)
-
- orderReference=$(echo $output2 | jq .orderReference)
- orderIndex=0
- if [ "$inputString" == "$result" ]; then
- echo "Pass"
+ ( sleep 1; curl -s -X POST "$apiURL/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":$identity,\"extension\":{\"plainText\":\"$inputString\"}}" > ref ) &
+ output1=$(fishhook $configdir $host "self" 2)
+ ref=$(cat ref)
+ cipherText=$(echo $output1 | jq .OrderPart2.Extension.cypherText)
+
+ #echo $cipherText
+ ( sleep 1; curl -s -X POST "$apiURL/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$ref,\"beneficiaryIDDocumentCID\":$identity,\"extension\":{\"cypherText\":$cipherText}}" > /dev/null) &
+ output2=$(fishhook $configdir $host "self" 2)
+ plaintext=$(echo $output2 | jq -r .OrderPart4.Extension.plainText)
+
+
+ if [ -z "$plaintext" ]; then
+ echo "Failed Commitment is empty"
+ exit 1
+ fi
+
+ if [ "$inputString" == "$plaintext" ]; then
+ echo "Order Create/Retrieve Pass"
else
- echo "Fail"
+ echo "Order Create/Retrieve Fail"
exit 1
fi
+
}
# #############################################################################
@@ -190,21 +140,18 @@ execute_safeguardsecret () {
execute_milagro () {
echo "Milagro Tests [1 Test]"
- output1=$(curl -s -X POST "$apiURL/$apiVersion/order1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":$identity}")
- echo $output1
- op1=$(echo $output1 | jq .orderReference)
-
-
- commitment1=$(echo $output1 | jq .commitment)
- output2=$(curl -s -X POST "$apiURL/$apiVersion/order/secret1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$op1,\"beneficiaryIDDocumentCID\":$identity}")
- commitment2=$(echo $output2 | jq .commitment)
-
- orderReference=$(echo $output2 | jq .orderReference)
+ ( sleep 1; curl -s -X POST "$apiURL/$apiVersion/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":$identity}" > ref ) &
+ output1=$(fishhook $configdir $host "self" 1)
+ ref=$(cat ref)
+ commitment1=$(echo $output1 | jq .OrderPart2.CommitmentPublicKey)
+ #echo "Committment1 $commitment1"
+
+ ( sleep 1; curl -s -X POST "$apiURL/$apiVersion/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$ref,\"beneficiaryIDDocumentCID\":$identity}" > /dev/null) &
+ output2=$(fishhook $configdir $host "self" 3)
+ commitment2=$(echo $output2 | jq .OrderPart4.Extension.FinalPublicKey)
orderIndex=0
-
-
- echo "Committment1 $commitment1"
- echo "Committment2 $commitment2"
+ #echo "Committment1 $commitment1"
+ #echo "Committment2 $commitment2"
if [ -z $commitment2 ]; then
echo "Failed Commitment is empty"
@@ -263,5 +210,5 @@ fi
if [ $plugin == "safeguardsecret" ]; then
execute_safeguardsecret
fi
-execute_orderlist
+#execute_orderlist
diff --git a/cmd/servicetester/e2e_test.sh b/cmd/servicetester/e2e_test.sh.old
similarity index 100%
copy from cmd/servicetester/e2e_test.sh
copy to cmd/servicetester/e2e_test.sh.old
diff --git a/pkg/tendermint/fishhook/fishhook b/cmd/servicetester/fishhook
similarity index 80%
copy from pkg/tendermint/fishhook/fishhook
copy to cmd/servicetester/fishhook
index be3a244..6353907 100755
Binary files a/pkg/tendermint/fishhook/fishhook and b/cmd/servicetester/fishhook differ
diff --git a/cmd/servicetester/main.go b/cmd/servicetester/main.go
index fc55432..700645c 100644
--- a/cmd/servicetester/main.go
+++ b/cmd/servicetester/main.go
@@ -84,7 +84,7 @@ func Dump(tx *BlockChainTX) error {
}
order := &documents.OrderDoc{}
- err = documents.DecodeOrderDocument(tx.Payload, txHashString, order, sikeSK, nodeID, localIDDoc.BLSPublicKey)
+ err = documents.FinalPrivateKey(tx.Payload, txHashString, order, sikeSK, nodeID, localIDDoc.BLSPublicKey)
pp, _ := prettyjson.Marshal(order)
fmt.Println(string(pp))
diff --git a/cmd/servicetester/ref b/cmd/servicetester/ref
new file mode 100644
index 0000000..7bb74c7
--- /dev/null
+++ b/cmd/servicetester/ref
@@ -0,0 +1 @@
+"83568372-ea91-11e9-888f-acde48001122"
diff --git a/pkg/defaultservice/orderTX.go b/pkg/defaultservice/orderTX.go
index 02ff5f5..ad07ea6 100644
--- a/pkg/defaultservice/orderTX.go
+++ b/pkg/defaultservice/orderTX.go
@@ -126,7 +126,7 @@ func (s *Service) OrderSecret2(tx *api.BlockChainTX) (string, error) {
return "", errors.New("Invalid Processor")
}
- finalPrivateKey, _, extension, err := s.Plugin.ProduceFinalSecret(keyseed, sikeSK, order, order, nodeID)
+ finalPrivateKey, finalPublicKey, extension, err := s.Plugin.ProduceFinalSecret(keyseed, sikeSK, order, order, nodeID)
if err != nil {
return "", err
}
@@ -143,6 +143,7 @@ func (s *Service) OrderSecret2(tx *api.BlockChainTX) (string, error) {
order.OrderPart4.Extension[key] = value
}
order.OrderPart4.Extension["FinalPrivateKey"] = finalPrivateKey
+ order.OrderPart4.Extension["FinalPublicKey"] = finalPublicKey
//Output Only to self for autoviewing
recipientList, err := common.BuildRecipientList(s.Tendermint, nodeID)
diff --git a/pkg/tendermint/fishhook/fishhook b/pkg/tendermint/fishhook/fishhook
index be3a244..24ad43f 100755
Binary files a/pkg/tendermint/fishhook/fishhook and b/pkg/tendermint/fishhook/fishhook differ
diff --git a/pkg/tendermint/fishhook/main.go b/pkg/tendermint/fishhook/main.go
index 3f4dd4c..9ad860d 100644
--- a/pkg/tendermint/fishhook/main.go
+++ b/pkg/tendermint/fishhook/main.go
@@ -41,13 +41,23 @@ func main() {
},
}
app.Copyright = "(c) 2019 Chris Morris"
- app.UsageText = `fishhook configdir nodeurl query skip
-eg. fishhook /Users/john/.milagro 10.10,10,10:26657 "tag.recipient='Au1WipqVeTx9i2PV4UcCxmY6iQvA9RZXy88xJLRzafwc'" 3
-
-configdir - the local directory where the DT-A configuration (eg. config.yaml, keys) are stored
-nodeurl - the host:port of a member Node of the Tendermint Network
-query - A query to filter the results by (enclosed query in double quotes and values in single quotes)
-skip - number of matches to skip before showing match and terminating
+ app.UsageText = `USAGE:
+ fishhook configdir nodeurl query skip
+
+DESCRIPTION:
+ fishhook attaches to the specified Tendermint Node via web sockets, and waits for a
+ query to be matches skip times, oncer complete it uses the local keys stored in configdir
+ to decode the Transaction and dump it to stdout
+
+EXAMPLE:
+ fishhook /Users/john/.milagro 10.10,10,10:26657 "tag.recipient='Au1WipqVeTx9i2PV4UcCxmY6iQvA9RZXy88xJLRzafwc'" 3
+
+PARAMETERS: (all mandatory)
+ configdir - the local directory where the DT-A configuration (eg. config.yaml, keys) are stored
+ nodeurl - the host:port of a member Node of the Tendermint Network
+ query - A query to filter the results by (enclosed query in double quotes and values in single quotes)
+ - if query is 'self', query auto generated to match itself as recipient.
+ skip - number of matches to skip before showing match and terminating
`
app.Usage = `retrieve and parse a transaction in the Qredo DT-A Format from a Tendermint Blockchain
Note tags are case sensistive
@@ -59,23 +69,27 @@ Note tags are case sensistive
query := c.Args().Get(2)
skip, err := strconv.Atoi(c.Args().Get(3))
- if err != nil {
- print("Invalid skip value\n")
- os.Exit(1)
- }
-
if len(c.Args()) != 4 {
print(app.UsageText)
os.Exit(1)
return nil
}
+ if err != nil {
+ print("Invalid skip value\n")
+ os.Exit(1)
+ }
+
cfg, err := parseConfig(folder)
if err != nil {
print("Failed to open config")
os.Exit(1)
}
+ if query == "self" {
+ query = "tag.recipient='" + cfg.Node.NodeID + "'"
+ }
+
keyStore, err := keystore.NewFileStore(filepath.Join(folder, keysFile))
if err != nil {
print("Fail to open keystore")
@@ -116,12 +130,11 @@ Note tags are case sensistive
for {
select {
case result := <-out:
- matchCount++
if matchCount != skip {
+ matchCount++
continue
}
- print("result")
tx := result.Data.(tmtypes.EventDataTx).Tx
nodeID := cfg.Node.NodeID
payload := &api.BlockChainTX{}
diff --git a/pkg/tendermint/fishhook/run b/pkg/tendermint/fishhook/run
deleted file mode 100755
index 1e44661..0000000
--- a/pkg/tendermint/fishhook/run
+++ /dev/null
@@ -1,2 +0,0 @@
-./fishhook /Users/chris/.milagro 34.246.173.153:26657 "tag.recipient='Au1WipqVeTx9i2PV4UcCxmY6iQvA9RZXy88xJLRzafwc'" 1
-
[incubator-milagro-dta] 02/06: Merge branch 'tendermint' into
fishhook
Posted by cm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cmorris pushed a commit to branch tendermint
in repository https://gitbox.apache.org/repos/asf/incubator-milagro-dta.git
commit 93c4966cfc816da6c984a56527d2ee19b4b59b34
Merge: bf75aaf 2932457
Author: Christopher Morris <ch...@morris.net>
AuthorDate: Wed Oct 9 08:56:54 2019 +0100
Merge branch 'tendermint' into fishhook
pkg/api/client.go | 117 ++++++++++++++++++++++++++++++++++++++++++++
pkg/defaultservice/order.go | 10 ++--
pkg/endpoints/endpoints.go | 20 ++++----
pkg/service/service.go | 4 +-
4 files changed, 133 insertions(+), 18 deletions(-)
[incubator-milagro-dta] 04/06: Update fishhook
Posted by cm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cmorris pushed a commit to branch tendermint
in repository https://gitbox.apache.org/repos/asf/incubator-milagro-dta.git
commit 7e811ee9389319b58ac94b02a3bd1242e858c5d7
Author: Christopher Morris <ch...@morris.net>
AuthorDate: Wed Oct 9 11:09:54 2019 +0100
Update fishhook
---
go.sum | 9 ++
p | 4 +-
pkg/endpoints/endpoints.go | 2 +-
pkg/tendermint/cmd/fishhook.go | 111 -------------------
pkg/tendermint/fishhook/build | 2 +
pkg/tendermint/{cmd => fishhook}/fishhook | Bin 24169060 -> 29288396 bytes
pkg/tendermint/fishhook/main.go | 173 ++++++++++++++++++++++++++++++
pkg/tendermint/fishhook/run | 2 +
8 files changed, 189 insertions(+), 114 deletions(-)
diff --git a/go.sum b/go.sum
index 46b42dc..58723e7 100644
--- a/go.sum
+++ b/go.sum
@@ -61,6 +61,7 @@ github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3yg
github.com/go-playground/universal-translator v0.16.0 h1:X++omBR/4cE2MNg91AoC3rmGrCjJ8eAeUP/K/EKx4DM=
github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/go-test/deep v1.0.2 h1:onZX1rnHT3Wv6cqNgYyFOOlgVKJrksuCMCRvJStbMYw=
github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
github.com/go-yaml/yaml v2.1.0+incompatible h1:RYi2hDdss1u4YE7GwixGzWwVo47T8UQwnTLB6vQiq+o=
github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0=
@@ -122,10 +123,14 @@ github.com/mattn/go-isatty v0.0.9 h1:d5US/mDsogSGW37IV293h//ZFaeajb69h+EHFsv2xGg
github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g=
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ=
+github.com/minio/sha256-simd v0.0.0-20190328051042-05b4dd3047e5 h1:l16XLUUJ34wIz+RIvLhSwGvLvKyy+W598b135bJN6mg=
github.com/minio/sha256-simd v0.0.0-20190328051042-05b4dd3047e5/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+github.com/mr-tron/base58 v1.1.2 h1:ZEw4I2EgPKDJ2iEw0cNmLB3ROrEmkOtXIkaG7wZg+78=
github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
+github.com/multiformats/go-multihash v0.0.5 h1:1wxmCvTXAifAepIMyF39vZinRw5sbqjPs/UIi93+uik=
github.com/multiformats/go-multihash v0.0.5/go.mod h1:lt/HCbqlQwlPBz7lv0sQCdtfcMtlJvakRUn/0Ual8po=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-proto-validators v0.1.0 h1:2Org0/cGKUUUDzoLSRSsGJDqyLWrb5lG57o5+QdRr8M=
@@ -138,6 +143,7 @@ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU=
github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
@@ -170,6 +176,7 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx
github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4=
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
+github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
@@ -181,6 +188,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stumble/gorocksdb v0.0.3/go.mod h1:v6IHdFBXk5DJ1K4FZ0xi+eY737quiiBxYtSWXadLybY=
github.com/syndtr/goleveldb v1.0.1-0.20190318030020-c3a204f8e965 h1:1oFLiOyVl+W7bnBzGhf7BbIv9loSFQcieWWYIjLqcAw=
@@ -269,6 +277,7 @@ gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
diff --git a/p b/p
index 4d94421..320be46 100755
--- a/p
+++ b/p
@@ -1,6 +1,6 @@
#!/bin/bash
-export ref=$(curl -s -X POST "127.0.0.1:5556/v1/order1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}")
+export ref=$(curl -s -X POST "127.0.0.1:5556/v1/order" -H "accept: */*" -H "Content-Type: application/json" -d "{\"beneficiaryIDDocumentCID\":\"\",\"extension\":{\"coin\":\"0\"}}")
sleep 4
-curl -X POST "127.0.0.1:5556/v1/order/secret1" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$ref,\"beneficiaryIDDocumentCID\":\"$1\"}"
+curl -X POST "127.0.0.1:5556/v1/order/secret" -H "accept: */*" -H "Content-Type: application/json" -d "{\"orderReference\":$ref,\"beneficiaryIDDocumentCID\":\"$1\"}"
diff --git a/pkg/endpoints/endpoints.go b/pkg/endpoints/endpoints.go
index e046d83..1465c56 100644
--- a/pkg/endpoints/endpoints.go
+++ b/pkg/endpoints/endpoints.go
@@ -238,7 +238,7 @@ func MakeStatusEndpoint(m service.Service, log *logger.Logger, nodeType string)
func validateRequest(req interface{}) error {
validate := validator.New()
- validate.RegisterAlias("hashID", "min=40,max=64")
+ validate.RegisterAlias("hashID", "min=0,max=64")
if err := validate.Struct(req); err != nil {
return errors.Wrap(transport.ErrInvalidRequest, err.Error())
}
diff --git a/pkg/tendermint/cmd/fishhook.go b/pkg/tendermint/cmd/fishhook.go
deleted file mode 100644
index b3344a1..0000000
--- a/pkg/tendermint/cmd/fishhook.go
+++ /dev/null
@@ -1,111 +0,0 @@
-package main
-
-import (
- "encoding/base64"
- "encoding/hex"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
- "os"
- "time"
-
- "github.com/TylerBrock/colorjson"
- "github.com/apache/incubator-milagro-dta/pkg/tendermint"
- "github.com/urfave/cli"
-)
-
-func main() {
- app := cli.NewApp()
- app.Name = "tmget"
- app.Version = "0.1.0"
- app.Compiled = time.Now()
- app.Authors = []cli.Author{
- cli.Author{
- Name: "Chris Morris",
- Email: "chris@morris.net",
- },
- }
- app.Copyright = "(c) 2019 Chris Morris"
- app.UsageText = `tmget tag search [url]
-eg. tmget tag.recipient=Nzw3127EaxPiiZahOH592sGhPnCPaYkzOSqEk 127.0.0.1:5556
- tmget tx Nzw3127EaxPiiZahOH592sGhPnCPaYkzOSqEk`
-
- app.Usage = `retrieve and parse a transaction in the Qredo DT-A Format from a Tendermint Blockchain
-Note tags are case sensistive
-Qredo DT-A uses:
- tag.recipient
- tag.senderid
- tag.reference
- tx
-
-`
-
- app.ArgsUsage = "tx"
-
- app.Action = func(c *cli.Context) error {
- tag := c.Args().Get(0)
- lookup := "'" + c.Args().Get(1) + "'"
-
- url := c.Args().Get(2)
- //curl "localhost:26657/tx_search?query=\"tag.name='matts'\"&prove=true"
- if url == "" {
- url = "localhost:26657"
- }
- // if len(c.Args()) == 0 {
- // print(app.UsageText)
- // return nil
- // }
-
- fullUrl := "http://" + url + "/tx_search?query=\"" + tag + "=" + lookup + "\""
- print(fullUrl)
-
- resp, err := http.Get(fullUrl)
- if err != nil {
- // handle error
- }
- defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
-
- txResponse, err := tendermint.UnmarshalFetchTxResponse([]byte(body))
-
- txs := txResponse.TResult.Txs
- for r1, v := range txs {
- for r2, v1 := range v.TxResult.Events {
- for r3, v2 := range v1.Attributes {
- newkey, _ := base64.StdEncoding.DecodeString(v2.Key)
- txResponse.TResult.Txs[r1].TxResult.Events[r2].Attributes[r3].Key = string(newkey)
- newval, _ := base64.StdEncoding.DecodeString(v2.Value)
- txResponse.TResult.Txs[r1].TxResult.Events[r2].Attributes[r3].Value = string(newval)
-
- if string(newkey) == "key" {
- txResponse.TResult.Txs[r1].TxResult.Events[r2].Attributes[r3].Value = hex.EncodeToString(newval)
- }
- }
- }
- }
-
- x, err := txResponse.Marshal()
-
- var obj map[string]interface{}
- json.Unmarshal(x, &obj)
-
- //print(string(x))
-
- // Make a custom formatter with indent set
- f := colorjson.NewFormatter()
- f.Indent = 4
-
- // Marshall the Colorized JSON
- s, _ := f.Marshal(obj)
- fmt.Println(string(s))
-
- return nil
- }
-
- err := app.Run(os.Args)
- if err != nil {
- log.Fatal(err)
- }
-}
diff --git a/pkg/tendermint/fishhook/build b/pkg/tendermint/fishhook/build
new file mode 100755
index 0000000..f590499
--- /dev/null
+++ b/pkg/tendermint/fishhook/build
@@ -0,0 +1,2 @@
+go build -o fishhook main.go
+
diff --git a/pkg/tendermint/cmd/fishhook b/pkg/tendermint/fishhook/fishhook
similarity index 67%
rename from pkg/tendermint/cmd/fishhook
rename to pkg/tendermint/fishhook/fishhook
index 854a652..be3a244 100755
Binary files a/pkg/tendermint/cmd/fishhook and b/pkg/tendermint/fishhook/fishhook differ
diff --git a/pkg/tendermint/fishhook/main.go b/pkg/tendermint/fishhook/main.go
new file mode 100644
index 0000000..3f4dd4c
--- /dev/null
+++ b/pkg/tendermint/fishhook/main.go
@@ -0,0 +1,173 @@
+package main
+
+import (
+ "context"
+ "encoding/json"
+ "fmt"
+ "log"
+ "os"
+ "path/filepath"
+ "strconv"
+ "time"
+
+ "github.com/apache/incubator-milagro-dta/libs/documents"
+ "github.com/apache/incubator-milagro-dta/libs/keystore"
+ "github.com/apache/incubator-milagro-dta/pkg/api"
+ "github.com/apache/incubator-milagro-dta/pkg/config"
+ "github.com/apache/incubator-milagro-dta/pkg/identity"
+ "github.com/hokaccha/go-prettyjson"
+ tmclient "github.com/tendermint/tendermint/rpc/client"
+ tmtypes "github.com/tendermint/tendermint/types"
+ "github.com/urfave/cli"
+)
+
+const (
+ envMilagroHome = "MILAGRO_HOME"
+ keysFile = "keys"
+
+ cmdInit = "init"
+ cmdDaemon = "daemon"
+)
+
+func main() {
+ app := cli.NewApp()
+ app.Name = "tmget"
+ app.Version = "0.1.0"
+ app.Compiled = time.Now()
+ app.Authors = []cli.Author{
+ cli.Author{
+ Name: "Chris Morris",
+ Email: "chris@morris.net",
+ },
+ }
+ app.Copyright = "(c) 2019 Chris Morris"
+ app.UsageText = `fishhook configdir nodeurl query skip
+eg. fishhook /Users/john/.milagro 10.10,10,10:26657 "tag.recipient='Au1WipqVeTx9i2PV4UcCxmY6iQvA9RZXy88xJLRzafwc'" 3
+
+configdir - the local directory where the DT-A configuration (eg. config.yaml, keys) are stored
+nodeurl - the host:port of a member Node of the Tendermint Network
+query - A query to filter the results by (enclosed query in double quotes and values in single quotes)
+skip - number of matches to skip before showing match and terminating
+`
+ app.Usage = `retrieve and parse a transaction in the Qredo DT-A Format from a Tendermint Blockchain
+Note tags are case sensistive
+`
+
+ app.Action = func(c *cli.Context) error {
+ folder := c.Args().Get(0)
+ host := c.Args().Get(1)
+ query := c.Args().Get(2)
+ skip, err := strconv.Atoi(c.Args().Get(3))
+
+ if err != nil {
+ print("Invalid skip value\n")
+ os.Exit(1)
+ }
+
+ if len(c.Args()) != 4 {
+ print(app.UsageText)
+ os.Exit(1)
+ return nil
+ }
+
+ cfg, err := parseConfig(folder)
+ if err != nil {
+ print("Failed to open config")
+ os.Exit(1)
+ }
+
+ keyStore, err := keystore.NewFileStore(filepath.Join(folder, keysFile))
+ if err != nil {
+ print("Fail to open keystore")
+ os.Exit(1)
+ }
+
+ keyseed, err := keyStore.Get("seed")
+ if err != nil {
+ print("Fail to retrieve keyseed")
+ os.Exit(1)
+ }
+
+ _, sikeSK, err := identity.GenerateSIKEKeys(keyseed)
+ if err != nil {
+ print("Fail to retrieve sikeSK")
+ os.Exit(1)
+ }
+ blsPk, _, err := identity.GenerateBLSKeys(keyseed)
+ if err != nil {
+ print("Fail to retrieve blsSK")
+ os.Exit(1)
+ }
+
+ //connect to Node
+ tmClient := tmclient.NewHTTP(fmt.Sprintf("tcp://%s", host), "/websocket")
+ if err := tmClient.Start(); err != nil {
+ print("Failed to open websocket")
+ os.Exit(1)
+ }
+
+ out, err := tmClient.Subscribe(context.Background(), "", query, 1000)
+ if err != nil {
+ print("Failed to subscribe to node")
+ os.Exit(1)
+ }
+
+ matchCount := 0
+ for {
+ select {
+ case result := <-out:
+ matchCount++
+ if matchCount != skip {
+ continue
+ }
+
+ print("result")
+ tx := result.Data.(tmtypes.EventDataTx).Tx
+ nodeID := cfg.Node.NodeID
+ payload := &api.BlockChainTX{}
+ err := json.Unmarshal(tx, payload)
+ if err != nil {
+ print("Invalid Transaction received")
+ os.Exit(1)
+ }
+
+ //dump
+ order := &documents.OrderDoc{}
+ err = documents.DecodeOrderDocument(payload.Payload, "", order, sikeSK, nodeID, blsPk)
+
+ pp, _ := prettyjson.Marshal(order)
+ fmt.Println(string(pp))
+ os.Exit(0)
+ }
+ }
+ }
+
+ err := app.Run(os.Args)
+ if err != nil {
+ log.Fatal(err)
+ }
+}
+
+func getEnv(name, defaultValue string) string {
+ v, ok := os.LookupEnv(name)
+ if !ok {
+ return defaultValue
+ }
+
+ return v
+}
+
+func parseConfig(folder string) (*config.Config, error) {
+ cfg, err := config.ParseConfig(folder)
+ if err != nil {
+ return nil, err
+ }
+ return cfg, nil
+}
+
+//Use - helper to remove warnings
+func Use(vals ...interface{}) {
+ for _, val := range vals {
+ _ = val
+ }
+}
diff --git a/pkg/tendermint/fishhook/run b/pkg/tendermint/fishhook/run
new file mode 100755
index 0000000..1e44661
--- /dev/null
+++ b/pkg/tendermint/fishhook/run
@@ -0,0 +1,2 @@
+./fishhook /Users/chris/.milagro 34.246.173.153:26657 "tag.recipient='Au1WipqVeTx9i2PV4UcCxmY6iQvA9RZXy88xJLRzafwc'" 1
+
[incubator-milagro-dta] 01/06: Add fishhook
Posted by cm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cmorris pushed a commit to branch tendermint
in repository https://gitbox.apache.org/repos/asf/incubator-milagro-dta.git
commit bf75aaf87d4437594687e1766dd11d09c23f1076
Author: Christopher Morris <ch...@morris.net>
AuthorDate: Wed Oct 9 08:55:54 2019 +0100
Add fishhook
---
go.sum | 5 +++
pkg/tendermint/cmd/{tmget.go => fishhook.go} | 0
pkg/tendermint/cmd/tmget | Bin 0 -> 28468644 bytes
pkg/tendermint/transactions.go | 60 +++++++++++++++++++++++++++
4 files changed, 65 insertions(+)
diff --git a/go.sum b/go.sum
index 2dc56bc..46b42dc 100644
--- a/go.sum
+++ b/go.sum
@@ -1,6 +1,7 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
+github.com/TylerBrock/colorjson v0.0.0-20180527164720-95ec53f28296 h1:JYWTroLXcNzSCgu66NMgdjwoMHQRbv2SoOVNFb4kRkE=
github.com/TylerBrock/colorjson v0.0.0-20180527164720-95ec53f28296/go.mod h1:VSw57q4QFiWDbRnjdX8Cb3Ow0SFncRw+bA/ofY6Q83w=
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
github.com/Workiva/go-datastructures v1.0.50/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA=
@@ -32,6 +33,7 @@ github.com/coreos/go-oidc v2.0.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHo
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
+github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -160,7 +162,9 @@ github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
github.com/rs/zerolog v1.15.0 h1:uPRuwkWF4J6fGsJ2R0Gn2jB1EQiav9k3S6CSdygQJXY=
github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
+github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4=
@@ -191,6 +195,7 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1
github.com/tyler-smith/go-bip39 v1.0.0 h1:FOHg9gaQLeBBRbHE/QrTLfEiBHy5pQ/yXzf9JG5pYFM=
github.com/tyler-smith/go-bip39 v1.0.0/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs=
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
+github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY=
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
diff --git a/pkg/tendermint/cmd/tmget.go b/pkg/tendermint/cmd/fishhook.go
similarity index 100%
rename from pkg/tendermint/cmd/tmget.go
rename to pkg/tendermint/cmd/fishhook.go
diff --git a/pkg/tendermint/cmd/tmget b/pkg/tendermint/cmd/tmget
new file mode 100755
index 0000000..27ede0c
Binary files /dev/null and b/pkg/tendermint/cmd/tmget differ
diff --git a/pkg/tendermint/transactions.go b/pkg/tendermint/transactions.go
new file mode 100644
index 0000000..c4d8233
--- /dev/null
+++ b/pkg/tendermint/transactions.go
@@ -0,0 +1,60 @@
+package tendermint
+
+import "encoding/json"
+
+func UnmarshalFetchTxResponse(data []byte) (FetchTxResponse, error) {
+ var r FetchTxResponse
+ err := json.Unmarshal(data, &r)
+ return r, err
+}
+
+func (r *FetchTxResponse) Marshal() ([]byte, error) {
+ return json.Marshal(r)
+}
+
+func UnmarshalAttribute(data []byte) (Attribute, error) {
+ var r Attribute
+ print("hello")
+ err := json.Unmarshal(data, &r)
+ return r, err
+}
+
+type FetchTxResponse struct {
+ ID string `json:"id"`
+ Jsonrpc string `json:"jsonrpc"`
+ TResult TResult `json:"result"`
+}
+
+type TResult struct {
+ TotalCount string `json:"total_count"`
+ Txs []Tx `json:"txs"`
+}
+
+type Tx struct {
+ Hash string `json:"hash"`
+ Height string `json:"height"`
+ Index int64 `json:"index"`
+ Tx string `json:"tx"`
+ TxResult TxResult `json:"tx_result"`
+}
+
+type TxResult struct {
+ Code int64 `json:"code"`
+ Codespace string `json:"codespace"`
+ Data interface{} `json:"data"`
+ Events []Event `json:"events"`
+ GasUsed string `json:"gasUsed"`
+ GasWanted string `json:"gasWanted"`
+ Info string `json:"info"`
+ Log string `json:"log"`
+}
+
+type Event struct {
+ Attributes []Attribute `json:"attributes"`
+ Type string `json:"type"`
+}
+
+type Attribute struct {
+ Key string `json:"key"`
+ Value string `json:"value"`
+}