Compare commits

...
Author SHA1 Message Date
roysc e173f0a321 rm confusing comments 2023-11-28 08:34:09 +08:00
roysc 9bb3dc4216 type rename
this matches the change in follow up PR branch `graphql-to-ipld`
2023-11-26 18:28:46 +08:00
8 changed files with 40 additions and 45 deletions
+2 -2
View File
@@ -163,7 +163,7 @@ func GetGQLAuction(auction *auctiontypes.Auction, bids []*auctiontypes.Bid) (*Au
return &gqlAuction, nil
}
func getReferences(ctx context.Context, resolver QueryResolver, r *registrytypes.RecordEncodable) ([]*Record, error) {
func getReferences(ctx context.Context, resolver QueryResolver, r *registrytypes.ReadableRecord) ([]*Record, error) {
var ids []string
// #nosec G705
@@ -184,7 +184,7 @@ func getReferences(ctx context.Context, resolver QueryResolver, r *registrytypes
return resolver.GetRecordsByIds(ctx, ids)
}
func getAttributes(r *registrytypes.RecordEncodable) ([]*KeyValue, error) {
func getAttributes(r *registrytypes.ReadableRecord) ([]*KeyValue, error) {
return mapToKeyValuePairs(r.Attributes)
}
+1 -1
View File
@@ -161,7 +161,7 @@ $ %s query %s list
}
recordsList := res.GetRecords()
records := make([]types.RecordEncodable, len(recordsList))
records := make([]types.ReadableRecord, len(recordsList))
for i, record := range res.GetRecords() {
records[i] = record.ToReadableRecord()
}
+2 -2
View File
@@ -370,8 +370,8 @@ $ %s tx %s delete-name [crn]
}
// GetPayloadFromFile Load payload object from YAML file.
func GetPayloadFromFile(filePath string) (*types.PayloadEncodable, error) {
var payload types.PayloadEncodable
func GetPayloadFromFile(filePath string) (*types.ReadablePayload, error) {
var payload types.ReadablePayload
data, err := os.ReadFile(filePath) // #nosec G304
if err != nil {
+5 -5
View File
@@ -60,7 +60,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryParams() {
}
}
//nolint: all
// nolint: all
func (s *IntegrationTestSuite) TestGRPCQueryWhoIs() {
val := s.network.Validators[0]
sr := s.Require()
@@ -180,7 +180,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryLookup() {
}
}
//nolint: all
// nolint: all
func (s *IntegrationTestSuite) TestGRPCQueryRecordExpiryQueue() {
val := s.network.Validators[0]
sr := s.Require()
@@ -252,7 +252,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryRecordExpiryQueue() {
}
}
//nolint: all
// nolint: all
func (s *IntegrationTestSuite) TestGRPCQueryAuthorityExpiryQueue() {
val := s.network.Validators[0]
sr := s.Require()
@@ -324,7 +324,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryAuthorityExpiryQueue() {
}
}
//nolint: all
// nolint: all
func (s *IntegrationTestSuite) TestGRPCQueryListRecords() {
val := s.network.Validators[0]
sr := s.Require()
@@ -433,7 +433,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryGetRecordByID() {
}
out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, args)
sr.NoError(err)
var records []nstypes.RecordEncodable
var records []nstypes.ReadableRecord
err = json.Unmarshal(out.Bytes(), &records)
sr.NoError(err)
return records[0].ID
+1 -1
View File
@@ -114,7 +114,7 @@ func (s *IntegrationTestSuite) TestGetCmdQueryForRecords() {
sr.Error(err)
} else {
sr.NoError(err)
var records []types.RecordEncodable
var records []types.ReadableRecord
err := json.Unmarshal(out.Bytes(), &records)
sr.NoError(err)
sr.Equal(tc.noOfRecords, len(records))
+2 -2
View File
@@ -606,7 +606,7 @@ func (s *IntegrationTestSuite) TestGetCmdDissociateBond() {
cmd = cli.GetCmdList()
out, err = clitestutil.ExecTestCLICmd(clientCtx, cmd, args)
sr.NoError(err)
var records []nstypes.RecordEncodable
var records []nstypes.ReadableRecord
err = json.Unmarshal(out.Bytes(), &records)
sr.NoError(err)
return records[0].ID
@@ -848,7 +848,7 @@ func (s *IntegrationTestSuite) TestGetCmdAssociateBond() {
cmd = cli.GetCmdList()
out, err = clitestutil.ExecTestCLICmd(clientCtx, cmd, args)
sr.NoError(err)
var records []nstypes.RecordEncodable
var records []nstypes.ReadableRecord
err = json.Unmarshal(out.Bytes(), &records)
sr.NoError(err)
+4 -5
View File
@@ -236,9 +236,9 @@ func (k Keeper) GetRecordExpiryQueue(ctx sdk.Context) []*types.ExpiryQueueRecord
}
// ProcessSetRecord creates a record.
func (k Keeper) ProcessSetRecord(ctx sdk.Context, msg types.MsgSetRecord) (*types.RecordEncodable, error) {
func (k Keeper) ProcessSetRecord(ctx sdk.Context, msg types.MsgSetRecord) (*types.ReadableRecord, error) {
payload := msg.Payload.ToReadablePayload()
record := types.RecordEncodable{Attributes: payload.Record, BondID: msg.BondId}
record := types.ReadableRecord{Attributes: payload.Record, BondID: msg.BondId}
// Check signatures.
resourceSignBytes, _ := record.GetSignBytes()
@@ -279,7 +279,7 @@ func (k Keeper) ProcessSetRecord(ctx sdk.Context, msg types.MsgSetRecord) (*type
return &record, nil
}
func (k Keeper) processRecord(ctx sdk.Context, record *types.RecordEncodable, isRenewal bool) error {
func (k Keeper) processRecord(ctx sdk.Context, record *types.ReadableRecord, isRenewal bool) error {
params := k.GetParams(ctx)
rent := params.RecordRent
@@ -300,8 +300,7 @@ func (k Keeper) processRecord(ctx sdk.Context, record *types.RecordEncodable, is
}
k.PutRecord(ctx, recordObj)
// TODO process type here
// recordType, ok := record.Attributes["type"].(string)
// TODO look up/validate record type here
if err := k.processAttributes(ctx, record.Attributes, record.ID, ""); err != nil {
return err
+23 -27
View File
@@ -13,19 +13,27 @@ const (
AuthorityUnderAuction = "auction"
)
// TODO if schema records are to be more permissive than allowing a map of fields, this type will
// become specific to content records. schema records will either occupy a new message or have new
// more general purpose helper types.
// PayloadEncodable represents a signed record payload that can be serialized from/to YAML.
type PayloadEncodable struct {
// ReadablePayload represents a signed record payload that can be serialized from/to YAML.
type ReadablePayload struct {
Record map[string]interface{} `json:"record"`
Signatures []Signature `json:"signatures"`
}
// ReadableRecord represents a WNS record.
type ReadableRecord struct {
ID string `json:"id,omitempty"`
Names []string `json:"names,omitempty"`
BondID string `json:"bondId,omitempty"`
CreateTime string `json:"createTime,omitempty"`
ExpiryTime string `json:"expiryTime,omitempty"`
Deleted bool `json:"deleted,omitempty"`
Owners []string `json:"owners,omitempty"`
Attributes map[string]interface{} `json:"attributes,omitempty"`
}
// ToPayload converts PayloadEncodable to Payload object.
// Why? Because go-amino can't handle maps: https://github.com/tendermint/go-amino/issues/4.
func (payloadObj *PayloadEncodable) ToPayload() Payload {
func (payloadObj *ReadablePayload) ToPayload() Payload {
// Note: record directly contains the attributes here
attributes := helpers.MarshalMapToJSONBytes(payloadObj.Record)
payload := Payload{
@@ -41,8 +49,8 @@ func (payloadObj *PayloadEncodable) ToPayload() Payload {
}
// ToReadablePayload converts Payload to a serializable object
func (payload Payload) ToReadablePayload() PayloadEncodable {
var encodable PayloadEncodable
func (payload Payload) ToReadablePayload() ReadablePayload {
var encodable ReadablePayload
encodable.Record = helpers.UnMarshalMapFromJSONBytes(payload.Record.Attributes)
encodable.Signatures = payload.Signatures
@@ -51,8 +59,8 @@ func (payload Payload) ToReadablePayload() PayloadEncodable {
}
// ToReadableRecord converts Record to a serializable object
func (r *Record) ToReadableRecord() RecordEncodable {
var resourceObj RecordEncodable
func (r *Record) ToReadableRecord() ReadableRecord {
var resourceObj ReadableRecord
resourceObj.ID = r.Id
resourceObj.BondID = r.BondId
@@ -66,21 +74,9 @@ func (r *Record) ToReadableRecord() RecordEncodable {
return resourceObj
}
// RecordEncodable represents a WNS record.
type RecordEncodable struct {
ID string `json:"id,omitempty"`
Names []string `json:"names,omitempty"`
BondID string `json:"bondId,omitempty"`
CreateTime string `json:"createTime,omitempty"`
ExpiryTime string `json:"expiryTime,omitempty"`
Deleted bool `json:"deleted,omitempty"`
Owners []string `json:"owners,omitempty"`
Attributes map[string]interface{} `json:"attributes,omitempty"`
}
// ToRecordObj converts Record to RecordObj.
// Why? Because go-amino can't handle maps: https://github.com/tendermint/go-amino/issues/4.
func (r *RecordEncodable) ToRecordObj() (Record, error) {
func (r *ReadableRecord) ToRecordObj() (Record, error) {
attributes := helpers.MarshalMapToJSONBytes(r.Attributes)
var resourceObj Record
@@ -97,7 +93,7 @@ func (r *RecordEncodable) ToRecordObj() (Record, error) {
}
// CanonicalJSON returns the canonical JSON representation of the record.
func (r *RecordEncodable) CanonicalJSON() []byte {
func (r *ReadableRecord) CanonicalJSON() []byte {
bytes, err := canonicalJson.Marshal(r.Attributes)
if err != nil {
panic("Record marshal error.")
@@ -107,7 +103,7 @@ func (r *RecordEncodable) CanonicalJSON() []byte {
}
// GetSignBytes generates a record hash to be signed.
func (r *RecordEncodable) GetSignBytes() ([]byte, []byte) {
func (r *ReadableRecord) GetSignBytes() ([]byte, []byte) {
// Double SHA256 hash.
// Input to the first round of hashing.
@@ -127,7 +123,7 @@ func (r *RecordEncodable) GetSignBytes() ([]byte, []byte) {
}
// GetCID gets the record CID.
func (r *RecordEncodable) GetCID() (string, error) {
func (r *ReadableRecord) GetCID() (string, error) {
id, err := helpers.GetCid(r.CanonicalJSON())
if err != nil {
return "", err