Skip to content

Commit 446ed71

Browse files
committed
Merge Model and ModelVersion into single module
1 parent 6f3ff87 commit 446ed71

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1147
-2461
lines changed

app.go

+3-18
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import (
3535
"github.com/zigbee-alliance/distributed-compliance-ledger/x/compliancetest"
3636
"github.com/zigbee-alliance/distributed-compliance-ledger/x/genutil"
3737
"github.com/zigbee-alliance/distributed-compliance-ledger/x/model"
38-
"github.com/zigbee-alliance/distributed-compliance-ledger/x/modelversion"
3938
"github.com/zigbee-alliance/distributed-compliance-ledger/x/pki"
4039
"github.com/zigbee-alliance/distributed-compliance-ledger/x/validator"
4140
"github.com/zigbee-alliance/distributed-compliance-ledger/x/vendorinfo"
@@ -57,7 +56,6 @@ var ModuleBasics = module.NewBasicManager(
5756
validator.AppModuleBasic{},
5857
genutil.AppModuleBasic{},
5958
model.AppModuleBasic{},
60-
modelversion.AppModuleBasic{},
6159
compliance.AppModuleBasic{},
6260
compliancetest.AppModuleBasic{},
6361
pki.AppModuleBasic{},
@@ -87,7 +85,6 @@ type dcLedgerApp struct {
8785
authKeeper auth.Keeper
8886
validatorKeeper validator.Keeper
8987
modelKeeper model.Keeper
90-
modelversionKeeper modelversion.Keeper
9188
pkiKeeper pki.Keeper
9289
complianceKeeper compliance.Keeper
9390
compliancetestKeeper compliancetest.Keeper
@@ -108,7 +105,7 @@ func NewDcLedgerApp(logger log.Logger, db dbm.DB, baseAppOptions ...func(*bam.Ba
108105
bApp.SetAppVersion(version.Version)
109106

110107
keys := sdk.NewKVStoreKeys(bam.MainStoreKey, auth.StoreKey, validator.StoreKey,
111-
model.StoreKey, modelversion.StoreKey, compliance.StoreKey, compliancetest.StoreKey, pki.StoreKey, vendorinfo.StoreKey)
108+
model.StoreKey, compliance.StoreKey, compliancetest.StoreKey, pki.StoreKey, vendorinfo.StoreKey)
112109

113110
tkeys := sdk.NewTransientStoreKeys(params.TStoreKey)
114111

@@ -155,9 +152,8 @@ func InitModuleManager(app *dcLedgerApp) {
155152
auth.NewAppModule(app.authKeeper),
156153
validator.NewAppModule(app.validatorKeeper, app.authKeeper),
157154
model.NewAppModule(app.modelKeeper, app.authKeeper),
158-
modelversion.NewAppModule(app.modelversionKeeper, app.authKeeper, app.modelKeeper),
159-
compliance.NewAppModule(app.complianceKeeper, app.modelversionKeeper, app.compliancetestKeeper, app.authKeeper),
160-
compliancetest.NewAppModule(app.compliancetestKeeper, app.authKeeper, app.modelversionKeeper),
155+
compliance.NewAppModule(app.complianceKeeper, app.modelKeeper, app.compliancetestKeeper, app.authKeeper),
156+
compliancetest.NewAppModule(app.compliancetestKeeper, app.authKeeper, app.modelKeeper),
161157
pki.NewAppModule(app.pkiKeeper, app.authKeeper),
162158
vendorinfo.NewAppModule(app.vendorinfoKeeper, app.authKeeper),
163159
)
@@ -169,7 +165,6 @@ func InitModuleManager(app *dcLedgerApp) {
169165
auth.ModuleName,
170166
validator.ModuleName,
171167
model.ModuleName,
172-
modelversion.ModuleName,
173168
compliance.ModuleName,
174169
compliancetest.ModuleName,
175170
pki.ModuleName,
@@ -188,9 +183,6 @@ func InitKeepers(app *dcLedgerApp, keys map[string]*sdk.KVStoreKey) {
188183
// The ModelKeeper keeper
189184
app.modelKeeper = MakeModelKeeper(keys, app)
190185

191-
// The ModelversionKeeper keeper
192-
app.modelversionKeeper = MakeModelversionKeeper(keys, app)
193-
194186
// The ComplianceKeeper keeper
195187
app.complianceKeeper = MakeComplianceKeeper(keys, app)
196188

@@ -221,13 +213,6 @@ func MakeModelKeeper(keys map[string]*sdk.KVStoreKey, app *dcLedgerApp) model.Ke
221213
)
222214
}
223215

224-
func MakeModelversionKeeper(keys map[string]*sdk.KVStoreKey, app *dcLedgerApp) modelversion.Keeper {
225-
return modelversion.NewKeeper(
226-
keys[modelversion.StoreKey],
227-
app.cdc,
228-
)
229-
}
230-
231216
func MakeVendorInfoKeeper(keys map[string]*sdk.KVStoreKey, app *dcLedgerApp) vendorinfo.Keeper {
232217
return vendorinfo.NewKeeper(
233218
keys[vendorinfo.StoreKey],

docs/cli-help.md

+16-3
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ Roles:
9494
- roles: `optional(string)` - comma-separated list of roles (supported roles: Vendor, TestHouse, CertificationCenter, Trustee, NodeAdmin)
9595
- from: `string` - name or address of private key with which to sign
9696

97-
Example: `dclcli tx auth propose-add-account --address=cosmos15ljvz60tfekhstz8lcyy0c9l8dys5qa2nnx4d7 --pubkey=cosmospub1addwnpepqtrnrp93hswlsrzvltc3n8z7hjg9dxuh3n4rkp2w2verwfr8yg27c95l4k3 --roles=Vendor,NodeAdmin --from=jack`
97+
Example: `dclcli tx auth propose-add-account --address=cosmos15ljvz60tfekhstz8lcyy0c9l8dys5qa2nnx4d7 --pubkey=cosmospub1addwnpepqtrnrp93hswlsrzvltc3n8z7hjg9dxuh3n4rkp2w2verwfr8yg27c95l4k3 --roles=Trustee,NodeAdmin --from=jack`
9898

9999
- Approve a proposed account.
100100

@@ -132,7 +132,20 @@ Roles:
132132

133133
Example: `dclcli tx auth approve-revoke-account --address=cosmos15ljvz60tfekhstz8lcyy0c9l8dys5qa2nnx4d7 --from=jack`
134134

135+
- Propose a new account (Vendor Role). A vendor role is tied to a Vendor ID, hence while proposing a Vendor Role vid is a required field.
135136

137+
Role: `Trustee`
138+
139+
Command: `dclcli tx auth propose-add-account --address=<string> --pubkey=<string> --roles=<roles> --vid=<vendorID> --from=<account>`
140+
141+
Flags:
142+
- address: `string` - bench32 encoded account address
143+
- pubkey: `string` - bench32 encoded public key
144+
- roles: `optional(string)` - comma-separated list of roles (supported roles: Vendor, TestHouse, CertificationCenter, Trustee, NodeAdmin)
145+
- vid: `string` - Vendor ID associated with this account. Required only for Vendor Roles
146+
- from: `string` - name or address of private key with which to sign
147+
148+
Example: `dclcli tx auth propose-add-account --address=cosmos15ljvz60tfekhstz8lcyy0c9l8dys5qa2nnx4d7 --pubkey=cosmospub1addwnpepqtrnrp93hswlsrzvltc3n8z7hjg9dxuh3n4rkp2w2verwfr8yg27c95l4k3 --roles=Vendor,NodeAdmin --vid=123 --from=jack`
136149
##### Queries
137150

138151
- Get a single account. Revoked accounts are not returned.
@@ -386,10 +399,10 @@ The set of commands that allows you to manage X.509 certificates.
386399

387400
### Model Info
388401

389-
The set of commands that allows you to manage model infos.
402+
The set of commands that allows you to manage model and model versions.
390403

391404
##### Transactions
392-
- Add a new model info.
405+
- Add a new model.
393406

394407
Role: `Vendor`
395408

integration_tests/cli/common.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ create_model_and_version() {
118118
_user_address=$4
119119
result=$(echo 'test1234' | dclcli tx model add-model --vid=$_vid --pid=$_pid --deviceTypeID=1 --productName=TestProduct --productLabel=TestingProductLabel --partNumber=1 --commissioningCustomFlow=0 --from=$_user_address --yes)
120120
check_response "$result" "\"success\": true"
121-
result=$(echo 'test1234' | dclcli tx modelversion add-model-version --cdVersionNumber=1 --maxApplicableSoftwareVersion=10 --minApplicableSoftwareVersion=1 --vid=$_vid --pid=$_pid --softwareVersion=$_softwareVersion --softwareVersionString=1 --from=$_user_address --yes)
121+
result=$(echo 'test1234' | dclcli tx model add-model-version --cdVersionNumber=1 --maxApplicableSoftwareVersion=10 --minApplicableSoftwareVersion=1 --vid=$_vid --pid=$_pid --softwareVersion=$_softwareVersion --softwareVersionString=1 --from=$_user_address --yes)
122122
check_response "$result" "\"success\": true"
123123
}
124124

integration_tests/cli/compliance-demo.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ test_divider
5353

5454
sv=$RANDOM
5555
echo "Add Model Version with VID: $vid PID: $pid SV: $sv"
56-
result=$(echo 'test1234' | dclcli tx modelversion add-model-version --cdVersionNumber=1 --maxApplicableSoftwareVersion=10 --minApplicableSoftwareVersion=1 --vid=$vid --pid=$pid --softwareVersion=$sv --softwareVersionString=1 --from=$vendor_account --yes)
56+
result=$(echo 'test1234' | dclcli tx model add-model-version --cdVersionNumber=1 --maxApplicableSoftwareVersion=10 --minApplicableSoftwareVersion=1 --vid=$vid --pid=$pid --softwareVersion=$sv --softwareVersionString=1 --from=$vendor_account --yes)
5757
echo $result
5858
check_response "$result" "\"success\": true"
5959

integration_tests/cli/modelversion-demo.sh

+7-7
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ test_divider
3636

3737
sv=$RANDOM
3838
echo "Create a Device Model Version with VID: $vid PID: $pid SV: $sv"
39-
result=$(echo 'test1234' | dclcli tx modelversion add-model-version --cdVersionNumber=1 --maxApplicableSoftwareVersion=10 --minApplicableSoftwareVersion=1 --vid=$vid --pid=$pid --softwareVersion=$sv --softwareVersionString=1 --from=$vendor_account --yes)
39+
result=$(echo 'test1234' | dclcli tx model add-model-version --cdVersionNumber=1 --maxApplicableSoftwareVersion=10 --minApplicableSoftwareVersion=1 --vid=$vid --pid=$pid --softwareVersion=$sv --softwareVersionString=1 --from=$vendor_account --yes)
4040
echo "$result"
4141
check_response "$result" "\"success\": true"
4242

4343
test_divider
4444

4545
# Query the model version
4646
echo "Query Device Model Version with VID: $vid PID: $pid SV: $sv"
47-
result=$(dclcli query modelversion get-model-version --vid=$vid --pid=$pid --softwareVersion=$sv)
47+
result=$(dclcli query model get-model-version --vid=$vid --pid=$pid --softwareVersion=$sv)
4848
echo "$result"
4949

5050
check_response "$result" "\"vid\": $vid"
@@ -60,21 +60,21 @@ test_divider
6060

6161
# Query non existant model version
6262
echo "Query Device Model Version with VID: $vid PID: $pid SV: 123456"
63-
result=$(dclcli query modelversion get-model-version --vid=$vid --pid=$pid --softwareVersion=123456 2>&1) || true
63+
result=$(dclcli query model get-model-version --vid=$vid --pid=$pid --softwareVersion=123456 2>&1) || true
6464
check_response_and_report "$result" "No model version associated with vid=$vid, pid=$pid and softwareVersion=123456 exist on the ledger"
6565

6666
test_divider
6767

6868
# Update the existing model version
6969
echo "Update Device Model Version with VID: $vid PID: $pid SV: $sv"
70-
result=$(echo 'test1234' | dclcli tx modelversion update-model-version --vid=$vid --pid=$pid --minApplicableSoftwareVersion=2 --softwareVersion=$sv --softwareVersionValid=false --from=$vendor_account --yes)
70+
result=$(echo 'test1234' | dclcli tx model update-model-version --vid=$vid --pid=$pid --minApplicableSoftwareVersion=2 --softwareVersion=$sv --softwareVersionValid=false --from=$vendor_account --yes)
7171
check_response "$result" "\"success\": true"
7272

7373
test_divider
7474

7575
# Query Updated model version
7676
echo "Query updated Device Model Version with VID: $vid PID: $pid SV: $sv"
77-
result=$(dclcli query modelversion get-model-version --vid=$vid --pid=$pid --softwareVersion=$sv)
77+
result=$(dclcli query model get-model-version --vid=$vid --pid=$pid --softwareVersion=$sv)
7878
echo "$result"
7979
check_response "$result" "\"vid\": $vid"
8080
check_response "$result" "\"pid\": $pid"
@@ -92,15 +92,15 @@ echo "Create a Device Model Version with VID: $vid PID: $pid SV: $sv from a diff
9292
newvid=$RANDOM
9393
different_vendor_account=vendor_account_$newvid
9494
create_new_vendor_account $different_vendor_account $newvid
95-
result=$(echo 'test1234' | dclcli tx modelversion add-model-version --cdVersionNumber=1 --maxApplicableSoftwareVersion=10 --minApplicableSoftwareVersion=1 --vid=$vid --pid=$pid --softwareVersion=$sv --softwareVersionString=1 --from=$different_vendor_account --yes)
95+
result=$(echo 'test1234' | dclcli tx model add-model-version --cdVersionNumber=1 --maxApplicableSoftwareVersion=10 --minApplicableSoftwareVersion=1 --vid=$vid --pid=$pid --softwareVersion=$sv --softwareVersionString=1 --from=$different_vendor_account --yes)
9696
check_response "$result" "\"success\": false"
9797
check_response_and_report "$result" "ModelVersion Add/Update transaction should be signed by an vendor account containing the vendorId $vid"
9898

9999
test_divider
100100

101101
# Update model version with vid belonging to another vendor
102102
echo "Update a Device Model Version with VID: $vid PID: $pid SV: $sv from a different vendor account"
103-
result=$(echo 'test1234' | dclcli tx modelversion update-model-version --vid=$vid --pid=$pid --minApplicableSoftwareVersion=2 --softwareVersion=$sv --softwareVersionValid=false --from=$different_vendor_account --yes)
103+
result=$(echo 'test1234' | dclcli tx model update-model-version --vid=$vid --pid=$pid --minApplicableSoftwareVersion=2 --softwareVersion=$sv --softwareVersionValid=false --from=$different_vendor_account --yes)
104104
check_response "$result" "\"success\": false"
105105
check_response_and_report "$result" "ModelVersion Add/Update transaction should be signed by an vendor account containing the vendorId $vid"
106106

integration_tests/utils/requests.go

+20-22
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ import (
3939
compliancetestRest "github.com/zigbee-alliance/distributed-compliance-ledger/x/compliancetest/client/rest"
4040
"github.com/zigbee-alliance/distributed-compliance-ledger/x/model"
4141
modelRest "github.com/zigbee-alliance/distributed-compliance-ledger/x/model/client/rest"
42-
"github.com/zigbee-alliance/distributed-compliance-ledger/x/modelversion"
43-
modelVersionRest "github.com/zigbee-alliance/distributed-compliance-ledger/x/modelversion/client/rest"
4442
"github.com/zigbee-alliance/distributed-compliance-ledger/x/pki"
4543
pkiRest "github.com/zigbee-alliance/distributed-compliance-ledger/x/pki/client/rest"
4644
)
@@ -279,7 +277,7 @@ func AddModel(model model.MsgAddModel, sender KeyInfo) (TxnResponse, int) {
279277
return parseWriteTxnResponse(response, code)
280278
}
281279

282-
func AddModelVersion(modelVersion modelversion.MsgAddModelVersion, sender KeyInfo) (TxnResponse, int) {
280+
func AddModelVersion(modelVersion model.MsgAddModelVersion, sender KeyInfo) (TxnResponse, int) {
283281
println("Add Model Version")
284282

285283
response, code := SendAddModelVersionRequest(modelVersion, sender.Name)
@@ -295,7 +293,7 @@ func PrepareAddModelTransaction(model model.MsgAddModel) (types.StdTx, int) {
295293
return parseStdTxn(response, code)
296294
}
297295

298-
func PrepareAddModelVersionTransaction(modelVersion modelversion.MsgAddModelVersion) (types.StdTx, int) {
296+
func PrepareAddModelVersionTransaction(modelVersion model.MsgAddModelVersion) (types.StdTx, int) {
299297
println("Prepare Add Model Version Transaction")
300298

301299
response, code := SendAddModelVersionRequest(modelVersion, "")
@@ -319,8 +317,8 @@ func SendAddModelRequest(msgAddModel model.MsgAddModel, account string) ([]byte,
319317
return SendPostRequest(uri, body, account, constants.Passphrase)
320318
}
321319

322-
func SendAddModelVersionRequest(msgAddModelVersion modelversion.MsgAddModelVersion, account string) ([]byte, int) {
323-
request := modelVersionRest.AddModelVersionRequest{
320+
func SendAddModelVersionRequest(msgAddModelVersion model.MsgAddModelVersion, account string) ([]byte, int) {
321+
request := modelRest.AddModelVersionRequest{
324322
ModelVersion: msgAddModelVersion.ModelVersion,
325323
BaseReq: restTypes.BaseReq{
326324
ChainID: constants.ChainID,
@@ -330,7 +328,7 @@ func SendAddModelVersionRequest(msgAddModelVersion modelversion.MsgAddModelVersi
330328

331329
body, _ := codec.MarshalJSONIndent(app.MakeCodec(), request)
332330

333-
uri := fmt.Sprintf("%s/%s", modelversion.RouterKey, "version")
331+
uri := fmt.Sprintf("%s/%s", model.RouterKey, "version")
334332

335333
return SendPostRequest(uri, body, account, constants.Passphrase)
336334
}
@@ -343,7 +341,7 @@ func UpdateModel(model model.MsgUpdateModel, sender KeyInfo) (TxnResponse, int)
343341
return parseWriteTxnResponse(response, code)
344342
}
345343

346-
func UpdateModelVersion(modelVersion modelversion.MsgUpdateModelVersion, sender KeyInfo) (TxnResponse, int) {
344+
func UpdateModelVersion(modelVersion model.MsgUpdateModelVersion, sender KeyInfo) (TxnResponse, int) {
347345
println("Update Model Version")
348346

349347
response, code := SendUpdateModelVersionRequest(modelVersion, sender.Name)
@@ -359,7 +357,7 @@ func PrepareUpdateModelTransaction(model model.MsgUpdateModel) (types.StdTx, int
359357
return parseStdTxn(response, code)
360358
}
361359

362-
func PrepareUpdateModelVersionTransaction(modelVersion modelversion.MsgUpdateModelVersion) (types.StdTx, int) {
360+
func PrepareUpdateModelVersionTransaction(modelVersion model.MsgUpdateModelVersion) (types.StdTx, int) {
363361
println("Prepare Update Model Version Transaction")
364362

365363
response, code := SendUpdateModelVersionRequest(modelVersion, "")
@@ -383,8 +381,8 @@ func SendUpdateModelRequest(msgUpdateModel model.MsgUpdateModel, account string)
383381
return SendPutRequest(uri, body, account, constants.Passphrase)
384382
}
385383

386-
func SendUpdateModelVersionRequest(msgUpdateModelVersion modelversion.MsgUpdateModelVersion, account string) ([]byte, int) {
387-
request := modelVersionRest.UpdateModelVersionRequest{
384+
func SendUpdateModelVersionRequest(msgUpdateModelVersion model.MsgUpdateModelVersion, account string) ([]byte, int) {
385+
request := modelRest.UpdateModelVersionRequest{
388386
ModelVersion: msgUpdateModelVersion.ModelVersion,
389387
BaseReq: restTypes.BaseReq{
390388
ChainID: constants.ChainID,
@@ -394,7 +392,7 @@ func SendUpdateModelVersionRequest(msgUpdateModelVersion modelversion.MsgUpdateM
394392

395393
body, _ := codec.MarshalJSONIndent(app.MakeCodec(), request)
396394

397-
uri := fmt.Sprintf("%s/%s", modelversion.RouterKey, "version")
395+
uri := fmt.Sprintf("%s/%s", model.RouterKey, "version")
398396

399397
return SendPutRequest(uri, body, account, constants.Passphrase)
400398
}
@@ -412,13 +410,13 @@ func GetModel(vid uint16, pid uint16) (model.Model, int) {
412410
return result, code
413411
}
414412

415-
func GetModelVersion(vid uint16, pid uint16, softwareVersion uint32) (modelversion.ModelVersion, int) {
413+
func GetModelVersion(vid uint16, pid uint16, softwareVersion uint32) (model.ModelVersion, int) {
416414
println(fmt.Sprintf("Get Model Version with VID:%v PID:%v SV:%v", vid, pid, softwareVersion))
417415

418-
uri := fmt.Sprintf("%s/%s/%v/%v/%v", modelversion.RouterKey, "version", vid, pid, softwareVersion)
416+
uri := fmt.Sprintf("%s/%s/%v/%v/%v", model.RouterKey, "version", vid, pid, softwareVersion)
419417
response, code := SendGetRequest(uri)
420418

421-
var result modelversion.ModelVersion
419+
var result model.ModelVersion
422420

423421
parseGetReqResponse(removeResponseWrapper(response), &result, code)
424422

@@ -1030,8 +1028,8 @@ func NewMsgUpdateModel(vid uint16, pid uint16, owner sdk.AccAddress) model.MsgUp
10301028
}
10311029

10321030
func NewMsgAddModelVersion(vid uint16, pid uint16,
1033-
softwareVersion uint32, softwareVersionString string, owner sdk.AccAddress) modelversion.MsgAddModelVersion {
1034-
newModelVersion := modelversion.ModelVersion{
1031+
softwareVersion uint32, softwareVersionString string, owner sdk.AccAddress) model.MsgAddModelVersion {
1032+
newModelVersion := model.ModelVersion{
10351033

10361034
VID: vid,
10371035
PID: pid,
@@ -1048,23 +1046,23 @@ func NewMsgAddModelVersion(vid uint16, pid uint16,
10481046
ReleaseNotesURL: constants.ReleaseNotesURL,
10491047
}
10501048

1051-
return modelversion.NewMsgAddModelVersion(
1049+
return model.NewMsgAddModelVersion(
10521050
newModelVersion,
10531051
owner,
10541052
)
10551053
}
10561054

10571055
func NewMsgUpdateModelVersion(vid uint16, pid uint16,
1058-
softwareVersion uint32, softwareVersionString string, owner sdk.AccAddress) modelversion.MsgUpdateModelVersion {
1059-
updateModelVersion := modelversion.ModelVersion{
1056+
softwareVersion uint32, softwareVersionString string, owner sdk.AccAddress) model.MsgUpdateModelVersion {
1057+
updateModelVersion := model.ModelVersion{
10601058
VID: vid,
10611059
PID: pid,
10621060
SoftwareVersion: softwareVersion,
10631061
OtaURL: constants.OtaURL + "/new",
10641062
ReleaseNotesURL: constants.ReleaseNotesURL + "/new",
10651063
}
10661064

1067-
return modelversion.NewMsgUpdateModelVersion(
1065+
return model.NewMsgUpdateModelVersion(
10681066
updateModelVersion,
10691067
owner,
10701068
)
@@ -1119,7 +1117,7 @@ func parseGetReqResponse(response []byte, entity interface{}, code int) {
11191117
}
11201118
}
11211119

1122-
func InitStartData() (KeyInfo, KeyInfo, model.MsgAddModel, modelversion.MsgAddModelVersion,
1120+
func InitStartData() (KeyInfo, KeyInfo, model.MsgAddModel, model.MsgAddModelVersion,
11231121
ComplianceInfosHeadersResult, ComplianceInfosHeadersResult) {
11241122
// Register new Vendor account
11251123
vendor := CreateNewAccount(auth.AccountRoles{auth.Vendor}, constants.VID)

0 commit comments

Comments
 (0)