forked from block-vision/sui-go-sdk
/
read_name_service_api.go
40 lines (34 loc) · 1.5 KB
/
read_name_service_api.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package sui
import (
"context"
"errors"
"github.com/yasir7ca/sui-go-sdk/common/httpconn"
"github.com/yasir7ca/sui-go-sdk/models"
)
type IReadNameServiceFromSuiAPI interface {
SuiXResolveNameServiceAddress(ctx context.Context, req models.SuiXResolveNameServiceAddressRequest) (string, error)
SuiXResolveNameServiceNames(ctx context.Context, req models.SuiXResolveNameServiceNamesRequest) (models.SuiXResolveNameServiceNamesResponse, error)
}
type suiReadNameServiceFromSuiImpl struct {
conn *httpconn.HttpConn
}
// SuiXResolveNameServiceAddress implements the method `suix_resolveNameServiceAddress`, get the resolved address given resolver and name.
func (s *suiReadNameServiceFromSuiImpl) SuiXResolveNameServiceAddress(ctx context.Context, req models.SuiXResolveNameServiceAddressRequest) (string, error) {
return "", errors.New("not implemented")
}
// SuiXResolveNameServiceNames implements the method `suix_resolveNameServiceNames`, return the resolved names given address, if multiple names are resolved, the first one is the primary name.
func (s *suiReadNameServiceFromSuiImpl) SuiXResolveNameServiceNames(ctx context.Context, req models.SuiXResolveNameServiceNamesRequest) (models.SuiXResolveNameServiceNamesResponse, error) {
var rsp models.SuiXResolveNameServiceNamesResponse
err := s.conn.CallContext(ctx, &rsp, httpconn.Operation{
Method: "suix_resolveNameServiceNames",
Params: []interface{}{
req.Address,
req.Cursor,
req.Limit,
},
})
if err != nil {
return rsp, err
}
return rsp, nil
}