diff --git a/clients/claim_client.go b/clients/claim_client.go index 8ad9dcc..72b01ef 100644 --- a/clients/claim_client.go +++ b/clients/claim_client.go @@ -1,128 +1,30 @@ package clients import ( - "bytes" "context" - "encoding/json" - "io" "net/http" - "strconv" "github.com/planetmint/planetmint-go/config" + "github.com/rddl-network/rddl-claim-service/client" + "github.com/rddl-network/rddl-claim-service/types" ) -// TODO: revert to actual rddl-claim-service client after CosmosSDK upgrade to v0.50.x -// see https://github.com/planetmint/planetmint-go/issues/384 +var ClaimServiceClient client.IRCClient -var ClaimServiceClient IRCClient - -func lazyLoad() IRCClient { +func lazyLoad() client.IRCClient { if ClaimServiceClient != nil { return ClaimServiceClient } cfg := config.GetConfig() - ClaimServiceClient = NewRCClient(cfg.ClaimHost, &http.Client{}) + ClaimServiceClient = client.NewRCClient(cfg.ClaimHost, &http.Client{}) return ClaimServiceClient } func PostClaim(ctx context.Context, beneficiary string, amount uint64, id uint64) (txID string, err error) { client := lazyLoad() - res, err := client.PostClaim(ctx, PostClaimRequest{Beneficiary: beneficiary, Amount: amount, ClaimID: int(id)}) + res, err := client.PostClaim(ctx, types.PostClaimRequest{Beneficiary: beneficiary, Amount: amount, ClaimID: int(id)}) if err != nil { return } return res.TxID, nil } - -type PostClaimRequest struct { - Beneficiary string `binding:"required" json:"beneficiary"` - Amount uint64 `binding:"required" json:"amount"` - ClaimID int `binding:"required" json:"claim-id"` -} - -type PostClaimResponse struct { - ID int `binding:"required" json:"id"` - TxID string `binding:"required" json:"tx-id"` -} - -type GetClaimResponse struct { - ID int `binding:"required" json:"id"` - Beneficiary string `binding:"required" json:"beneficiary"` - Amount uint64 `binding:"required" json:"amount"` - LiquidTXHash string `binding:"required" json:"liquid-tx-hash"` - ClaimID int `binding:"required" json:"claim-id"` -} - -type IRCClient interface { - GetClaim(ctx context.Context, id int) (res GetClaimResponse, err error) - PostClaim(ctx context.Context, req PostClaimRequest) (res PostClaimResponse, err error) -} - -type RCClient struct { - baseURL string - client *http.Client -} - -func NewRCClient(baseURL string, client *http.Client) *RCClient { - if client == nil { - client = &http.Client{} - } - return &RCClient{ - baseURL: baseURL, - client: client, - } -} - -func (rcc *RCClient) GetClaim(ctx context.Context, id int) (res GetClaimResponse, err error) { - err = rcc.doRequest(ctx, http.MethodGet, rcc.baseURL+"/claim/"+strconv.Itoa(id), nil, &res) - return -} - -func (rcc *RCClient) PostClaim(ctx context.Context, req PostClaimRequest) (res PostClaimResponse, err error) { - err = rcc.doRequest(ctx, http.MethodPost, rcc.baseURL+"/claim", req, &res) - return -} - -func (rcc *RCClient) doRequest(ctx context.Context, method, url string, body interface{}, response interface{}) (err error) { - var bodyReader io.Reader - if body != nil { - bodyBytes, err := json.Marshal(body) - if err != nil { - return err - } - bodyReader = bytes.NewBuffer(bodyBytes) - } - - req, err := http.NewRequestWithContext(ctx, method, url, bodyReader) - if err != nil { - return err - } - - if body != nil { - req.Header.Set("Content-Type", "application/json") - } - - resp, err := rcc.client.Do(req) - if err != nil { - return err - } - defer resp.Body.Close() - - if resp.StatusCode >= 400 { - return &httpError{StatusCode: resp.StatusCode} - } - - if response != nil { - return json.NewDecoder(resp.Body).Decode(response) - } - - return -} - -type httpError struct { - StatusCode int -} - -func (e *httpError) Error() string { - return http.StatusText(e.StatusCode) -} diff --git a/clients/shamir_coordinator_client.go b/clients/shamir_coordinator_client.go index 6183e96..0cb360e 100644 --- a/clients/shamir_coordinator_client.go +++ b/clients/shamir_coordinator_client.go @@ -1,25 +1,17 @@ package clients import ( - "bytes" "context" - "encoding/json" - "io" "log" - "net/http" - "net/url" - "strings" "github.com/planetmint/planetmint-go/config" "github.com/rddl-network/go-utils/tls" + "github.com/rddl-network/shamir-coordinator-service/client" ) -// TODO: revert to actual rddl-claim-service client after CosmosSDK upgrade to v0.50.x -// see https://github.com/planetmint/planetmint-go/issues/384 +var ShamirCoordinatorServiceClient client.IShamirCoordinatorClient -var ShamirCoordinatorServiceClient IShamirCoordinatorClient - -func lazyLoadShamirCoordinatorClient() IShamirCoordinatorClient { +func lazyLoadShamirCoordinatorClient() client.IShamirCoordinatorClient { if ShamirCoordinatorServiceClient != nil { return ShamirCoordinatorServiceClient } @@ -28,7 +20,7 @@ func lazyLoadShamirCoordinatorClient() IShamirCoordinatorClient { if err != nil { defer log.Fatal("fatal error setting up mutual tls client for shamir coordinator") } - ShamirCoordinatorServiceClient = NewShamirCoordinatorClient(cfg.IssuerHost, httpsClient) + ShamirCoordinatorServiceClient = client.NewShamirCoordinatorClient(cfg.IssuerHost, httpsClient) return ShamirCoordinatorServiceClient } @@ -58,146 +50,3 @@ func IssueNFTAsset(ctx context.Context, name string, machineAddress string, doma } return res.Asset, res.Contract, res.HexTX, nil } - -type IShamirCoordinatorClient interface { - GetMnemonics(ctx context.Context) (res MnemonicsResponse, err error) - PostMnemonics(ctx context.Context, secret string) (err error) - SendTokens(ctx context.Context, recipient string, amount string, asset string) (res SendTokensResponse, err error) - ReIssueAsset(ctx context.Context, asset string, amount string) (res ReIssueResponse, err error) - IssueMachineNFT(ctx context.Context, name string, machineAddress string, domain string) (res IssueMachineNFTResponse, err error) -} - -type SendTokensRequest struct { - Recipient string `binding:"required" json:"recipient"` - Amount string `binding:"required" json:"amount"` - Asset string `binding:"required" json:"asset"` -} - -type SendTokensResponse struct { - TxID string `binding:"required" json:"tx-id"` -} - -type ReIssueRequest struct { - Asset string `binding:"required" json:"asset"` - Amount string `binding:"required" json:"amount"` -} - -type ReIssueResponse struct { - TxID string `binding:"required" json:"tx-id"` -} - -type MnemonicsResponse struct { - Mnemonics []string `binding:"required" json:"mnemonics"` - Seed string `binding:"required" json:"seed"` -} - -type IssueMachineNFTRequest struct { - Name string `binding:"required" json:"name"` - MachineAddress string `binding:"required" json:"machine-address"` - Domain string `binding:"required" json:"domain"` -} - -type IssueMachineNFTResponse struct { - Asset string `binding:"required" json:"asset"` - Contract string `binding:"required" json:"contract"` - HexTX string `binding:"required" json:"hex-tx"` -} - -type ShamirCoordinatorClient struct { - baseURL string - client *http.Client -} - -func NewShamirCoordinatorClient(baseURL string, client *http.Client) *ShamirCoordinatorClient { - if client == nil { - client = &http.Client{} - } - return &ShamirCoordinatorClient{ - baseURL: baseURL, - client: client, - } -} - -func (scc *ShamirCoordinatorClient) GetMnemonics(ctx context.Context) (res MnemonicsResponse, err error) { - err = scc.doRequest(ctx, http.MethodGet, scc.baseURL+"/mnemonics", nil, &res) - return -} - -func (scc *ShamirCoordinatorClient) PostMnemonics(ctx context.Context, secret string) (err error) { - err = scc.doRequest(ctx, http.MethodPost, scc.baseURL+"/mnemonics/"+url.PathEscape(secret), nil, nil) - return -} - -func (scc *ShamirCoordinatorClient) SendTokens(ctx context.Context, recipient string, amount string, asset string) (res SendTokensResponse, err error) { - requestBody := SendTokensRequest{ - Recipient: recipient, - Amount: amount, - Asset: asset, - } - err = scc.doRequest(ctx, http.MethodPost, scc.baseURL+"/send", &requestBody, &res) - return -} - -func (scc *ShamirCoordinatorClient) ReIssueAsset(ctx context.Context, asset string, amount string) (res ReIssueResponse, err error) { - requestBody := ReIssueRequest{ - Asset: asset, - Amount: amount, - } - err = scc.doRequest(ctx, http.MethodPost, scc.baseURL+"/reissue", &requestBody, &res) - return -} - -func (scc *ShamirCoordinatorClient) IssueMachineNFT(ctx context.Context, name string, machineAddress string, domain string) (res IssueMachineNFTResponse, err error) { - requestBody := IssueMachineNFTRequest{ - Name: name, - MachineAddress: machineAddress, - Domain: domain, - } - err = scc.doRequest(ctx, http.MethodPost, scc.baseURL+"/issue-machine-nft", &requestBody, &res) - return -} - -func (scc *ShamirCoordinatorClient) doRequest(ctx context.Context, method, url string, body interface{}, response interface{}) (err error) { - var bodyReader io.Reader - if body != nil { - bodyBytes, err := json.Marshal(body) - if err != nil { - return err - } - bodyReader = bytes.NewBuffer(bodyBytes) - } - - req, err := http.NewRequestWithContext(ctx, method, url, bodyReader) - if err != nil { - return err - } - - if body != nil { - req.Header.Set("Content-Type", "application/json") - } - - resp, err := scc.client.Do(req) - if err != nil { - return err - } - defer resp.Body.Close() - - if resp.StatusCode >= 400 { - return &sccHTTPError{StatusCode: resp.StatusCode, Msg: strings.Join(resp.Header["Error"], "\n")} - } - - if response != nil { - return json.NewDecoder(resp.Body).Decode(response) - } - - return -} - -type sccHTTPError struct { - StatusCode int - Msg string -} - -func (e *sccHTTPError) Error() string { - return http.StatusText(e.StatusCode) + ": " + e.Msg -} diff --git a/go.mod b/go.mod index 4e32c8a..108af8a 100644 --- a/go.mod +++ b/go.mod @@ -23,9 +23,13 @@ require ( github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 - github.com/planetmint/planetmint-go/lib v0.5.0 + github.com/planetmint/planetmint-go/lib v0.6.0 github.com/rddl-network/elements-rpc v1.2.1 github.com/rddl-network/go-utils v0.2.3 + github.com/rddl-network/rddl-claim-service v0.3.2 + github.com/rddl-network/rddl-claim-service/client v0.0.6 + github.com/rddl-network/shamir-coordinator-service v0.7.7 + github.com/rddl-network/shamir-coordinator-service/client v0.0.10 github.com/spf13/cast v1.6.0 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index d5f14d1..b861322 100644 --- a/go.sum +++ b/go.sum @@ -287,6 +287,8 @@ github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtE github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= +github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= +github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -300,6 +302,8 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= @@ -446,6 +450,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= @@ -453,8 +459,8 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= -github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= @@ -479,14 +485,14 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= -github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= -github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= -github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= +github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= +github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= @@ -495,8 +501,8 @@ github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -745,6 +751,8 @@ github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8 github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -756,8 +764,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= -github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= @@ -929,6 +937,14 @@ github.com/rddl-network/elements-rpc v1.2.1 h1:clE3daxNPJJ1EDiAkTSlXUM2+gakmLHxW github.com/rddl-network/elements-rpc v1.2.1/go.mod h1:9a71Z7xja4rFMXa+ssUMLAF9VIZVPz2jZRB1hTS9Ey4= github.com/rddl-network/go-utils v0.2.3 h1:STiiyZVkFjovjMAyKK1IsqvVED14mRHoXFIDVbwxlFQ= github.com/rddl-network/go-utils v0.2.3/go.mod h1:jLOkVBK/xjfVyY0d4gs1pkafTXF3mYA7ZIE68QXau5o= +github.com/rddl-network/rddl-claim-service v0.3.2 h1:Cp8FV40y9mwTbjVNlFrZ02QT+HZWD1pSsWaE5MLYAmc= +github.com/rddl-network/rddl-claim-service v0.3.2/go.mod h1:RLg6AcNL790WuAl3AYoxFGkuuwKP3t3IiBfhOYOcwdo= +github.com/rddl-network/rddl-claim-service/client v0.0.6 h1:GLqj8RMozFPVUvPQGRLBH2yGV+VHRuUCXTWaf+4wxFo= +github.com/rddl-network/rddl-claim-service/client v0.0.6/go.mod h1:CFAfupB5XogWqVsb6ndsLU97feGs4oUqlGI4WRff3zU= +github.com/rddl-network/shamir-coordinator-service v0.7.7 h1:hszDZZnqBdeiOEBWlnSK2lKIJEbWclX6cchYDazpvIU= +github.com/rddl-network/shamir-coordinator-service v0.7.7/go.mod h1:g3JnQlzKQWtnp4ZA7VtD/4N0GKpFWrW0ANHqged7M/g= +github.com/rddl-network/shamir-coordinator-service/client v0.0.10 h1:M1lxVprsfyCLK+1LLGhAW4mne129ey23n3VpA9Xz2Kg= +github.com/rddl-network/shamir-coordinator-service/client v0.0.10/go.mod h1:dhxYyhmU71iv32WqS6S+6Pm/Lsb5/d0KVn2MVTq5Jfk= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -1014,12 +1030,14 @@ github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= -github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= +github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= +github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= @@ -1071,6 +1089,8 @@ go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= +golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= +golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= diff --git a/testutil/mocks/rddl_claim_service_client_mock.go b/testutil/mocks/rddl_claim_service_client_mock.go index 6a87b9b..fd9d8da 100644 --- a/testutil/mocks/rddl_claim_service_client_mock.go +++ b/testutil/mocks/rddl_claim_service_client_mock.go @@ -9,7 +9,7 @@ import ( reflect "reflect" gomock "github.com/golang/mock/gomock" - clients "github.com/planetmint/planetmint-go/clients" + "github.com/rddl-network/rddl-claim-service/types" ) // MockIRCClient is a mock of IRCClient interface. @@ -36,10 +36,10 @@ func (m *MockIRCClient) EXPECT() *MockIRCClientMockRecorder { } // GetClaim mocks base method. -func (m *MockIRCClient) GetClaim(ctx context.Context, id int) (clients.GetClaimResponse, error) { +func (m *MockIRCClient) GetClaim(ctx context.Context, id int) (types.GetClaimResponse, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetClaim", ctx, id) - ret0, _ := ret[0].(clients.GetClaimResponse) + ret0, _ := ret[0].(types.GetClaimResponse) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -51,10 +51,10 @@ func (mr *MockIRCClientMockRecorder) GetClaim(ctx, id interface{}) *gomock.Call } // PostClaim mocks base method. -func (m *MockIRCClient) PostClaim(ctx context.Context, req clients.PostClaimRequest) (clients.PostClaimResponse, error) { +func (m *MockIRCClient) PostClaim(ctx context.Context, req types.PostClaimRequest) (types.PostClaimResponse, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PostClaim", ctx, req) - ret0, _ := ret[0].(clients.PostClaimResponse) + ret0, _ := ret[0].(types.PostClaimResponse) ret1, _ := ret[1].(error) return ret0, ret1 } diff --git a/testutil/mocks/shamir_coordinator_client_mock.go b/testutil/mocks/shamir_coordinator_client_mock.go index d98db8b..5283fa9 100644 --- a/testutil/mocks/shamir_coordinator_client_mock.go +++ b/testutil/mocks/shamir_coordinator_client_mock.go @@ -9,7 +9,7 @@ import ( reflect "reflect" gomock "github.com/golang/mock/gomock" - clients "github.com/planetmint/planetmint-go/clients" + "github.com/rddl-network/shamir-coordinator-service/types" ) // MockIShamirCoordinatorClient is a mock of IShamirCoordinatorClient interface. @@ -36,10 +36,10 @@ func (m *MockIShamirCoordinatorClient) EXPECT() *MockIShamirCoordinatorClientMoc } // GetMnemonics mocks base method. -func (m *MockIShamirCoordinatorClient) GetMnemonics(ctx context.Context) (clients.MnemonicsResponse, error) { +func (m *MockIShamirCoordinatorClient) GetMnemonics(ctx context.Context) (types.MnemonicsResponse, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetMnemonics", ctx) - ret0, _ := ret[0].(clients.MnemonicsResponse) + ret0, _ := ret[0].(types.MnemonicsResponse) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -51,10 +51,10 @@ func (mr *MockIShamirCoordinatorClientMockRecorder) GetMnemonics(ctx interface{} } // IssueMachineNFT mocks base method. -func (m *MockIShamirCoordinatorClient) IssueMachineNFT(ctx context.Context, name, machineAddress, domain string) (clients.IssueMachineNFTResponse, error) { +func (m *MockIShamirCoordinatorClient) IssueMachineNFT(ctx context.Context, name, machineAddress, domain string) (types.IssueMachineNFTResponse, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "IssueMachineNFT", ctx, name, machineAddress, domain) - ret0, _ := ret[0].(clients.IssueMachineNFTResponse) + ret0, _ := ret[0].(types.IssueMachineNFTResponse) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -80,10 +80,10 @@ func (mr *MockIShamirCoordinatorClientMockRecorder) PostMnemonics(ctx, secret in } // ReIssueAsset mocks base method. -func (m *MockIShamirCoordinatorClient) ReIssueAsset(ctx context.Context, asset, amount string) (clients.ReIssueResponse, error) { +func (m *MockIShamirCoordinatorClient) ReIssueAsset(ctx context.Context, asset, amount string) (types.ReIssueResponse, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ReIssueAsset", ctx, asset, amount) - ret0, _ := ret[0].(clients.ReIssueResponse) + ret0, _ := ret[0].(types.ReIssueResponse) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -95,10 +95,10 @@ func (mr *MockIShamirCoordinatorClientMockRecorder) ReIssueAsset(ctx, asset, amo } // SendTokens mocks base method. -func (m *MockIShamirCoordinatorClient) SendTokens(ctx context.Context, recipient, amount, asset string) (clients.SendTokensResponse, error) { +func (m *MockIShamirCoordinatorClient) SendTokens(ctx context.Context, recipient, amount, asset string) (types.SendTokensResponse, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "SendTokens", ctx, recipient, amount, asset) - ret0, _ := ret[0].(clients.SendTokensResponse) + ret0, _ := ret[0].(types.SendTokensResponse) ret1, _ := ret[1].(error) return ret0, ret1 } diff --git a/testutil/network/loader.go b/testutil/network/loader.go index 5e9db82..f51eee6 100644 --- a/testutil/network/loader.go +++ b/testutil/network/loader.go @@ -25,6 +25,8 @@ import ( "github.com/planetmint/planetmint-go/util/mocks" elements "github.com/rddl-network/elements-rpc" elementsmocks "github.com/rddl-network/elements-rpc/utils/mocks" + rcctypes "github.com/rddl-network/rddl-claim-service/types" + scctypes "github.com/rddl-network/shamir-coordinator-service/types" "github.com/stretchr/testify/require" ) @@ -50,19 +52,19 @@ func Load(t *testing.T, configs ...Config) *Network { util.RegisterAssetServiceHTTPClient = &mocks.MockClient{} ctrl := gomock.NewController(t) claimMock := clientmocks.NewMockIRCClient(ctrl) - claimMock.EXPECT().PostClaim(gomock.Any(), gomock.Any()).AnyTimes().Return(clients.PostClaimResponse{ + claimMock.EXPECT().PostClaim(gomock.Any(), gomock.Any()).AnyTimes().Return(rcctypes.PostClaimResponse{ TxID: "0000000000000000000000000000000000000000000000000000000000000000", }, nil) clients.ClaimServiceClient = claimMock shamirMock := clientmocks.NewMockIShamirCoordinatorClient(ctrl) - shamirMock.EXPECT().SendTokens(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(clients.SendTokensResponse{ + shamirMock.EXPECT().SendTokens(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(scctypes.SendTokensResponse{ TxID: "7add40beb27df701e02ee85089c5bc0021bc813823fedb5f1dcb5debda7f3da9", }, nil) - shamirMock.EXPECT().ReIssueAsset(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(clients.ReIssueResponse{ + shamirMock.EXPECT().ReIssueAsset(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(scctypes.ReIssueResponse{ TxID: "7add40beb27df701e02ee85089c5bc0021bc813823fedb5f1dcb5debda7f3da9", }, nil) - shamirMock.EXPECT().IssueMachineNFT(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(clients.IssueMachineNFTResponse{ + shamirMock.EXPECT().IssueMachineNFT(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(scctypes.IssueMachineNFTResponse{ HexTX: "0000000000000000000000000000000000000000000000000000000000000000", Contract: `{"entity":{"domain":"testnet-assets.rddl.io"}, "issuer_pubkey":"02", "machine_addr":"addr","name":"machine","precicion":8,"version":1}`, Asset: "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/util/machine_nft_test.go b/util/machine_nft_test.go index 1d4b950..0f7ea76 100644 --- a/util/machine_nft_test.go +++ b/util/machine_nft_test.go @@ -21,6 +21,7 @@ import ( "github.com/planetmint/planetmint-go/x/machine/types" elements "github.com/rddl-network/elements-rpc" elementsmocks "github.com/rddl-network/elements-rpc/utils/mocks" + scctypes "github.com/rddl-network/shamir-coordinator-service/types" "github.com/stretchr/testify/assert" ) @@ -55,7 +56,7 @@ func TestMachineNFTIssuance(t *testing.T) { ctrl := gomock.NewController(t) elements.Client = &elementsmocks.MockClient{} shamirMock := clientmocks.NewMockIShamirCoordinatorClient(ctrl) - shamirMock.EXPECT().IssueMachineNFT(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(clients.IssueMachineNFTResponse{ + shamirMock.EXPECT().IssueMachineNFT(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(scctypes.IssueMachineNFTResponse{ HexTX: "0000000000000000000000000000000000000000000000000000000000000000", Contract: `{"entity":{"domain":"testnet-assets.rddl.io"}, "issuer_pubkey":"02", "machine_addr":"addr","name":"machine","precicion":8,"version":1}`, Asset: "0000000000000000000000000000000000000000000000000000000000000000",