diff --git a/config/json/deploy.go b/config/json/deploy.go index 9d91e1c7..d13897e8 100644 --- a/config/json/deploy.go +++ b/config/json/deploy.go @@ -20,7 +20,6 @@ package json import ( "encoding/json" - "fmt" "github.com/invopop/jsonschema" "github.com/onflow/cadence" @@ -101,20 +100,9 @@ func transformDeploymentsToJSON(configDeployments config.Deployments) jsonDeploy simple: c.Name, }) } else { - args := make([]map[string]any, 0) + args := make([]any, 0) for _, arg := range c.Args { - switch arg.Type().ID() { - case "Bool": - args = append(args, map[string]any{ - "type": arg.Type().ID(), - "value": arg.ToGoValue(), - }) - default: - args = append(args, map[string]any{ - "type": arg.Type().ID(), - "value": fmt.Sprintf("%v", arg.ToGoValue()), - }) - } + args = append(args, jsoncdc.Prepare(arg)) } deployments = append(deployments, deployment{ @@ -140,8 +128,8 @@ func transformDeploymentsToJSON(configDeployments config.Deployments) jsonDeploy } type contractDeployment struct { - Name string `json:"name"` - Args []map[string]any `json:"args"` + Name string `json:"name"` + Args []any `json:"args"` } type deployment struct { diff --git a/config/json/deploy_test.go b/config/json/deploy_test.go index 41b0c880..7af5bad2 100644 --- a/config/json/deploy_test.go +++ b/config/json/deploy_test.go @@ -102,17 +102,23 @@ func Test_TransformDeployToJSON(t *testing.T) { } }`) - var jsonDeployments jsonDeployments - err := json.Unmarshal(b, &jsonDeployments) + var original jsonDeployments + err := json.Unmarshal(b, &original) assert.NoError(t, err) - deployments, err := jsonDeployments.transformToConfig() + deployments, err := original.transformToConfig() assert.NoError(t, err) j := transformDeploymentsToJSON(deployments) x, _ := json.Marshal(j) - assert.Equal(t, cleanSpecialChars(b), cleanSpecialChars(x)) + // Unmarshal the config again to compare against the original + var result jsonDeployments + err = json.Unmarshal(x, &result) + assert.NoError(t, err) + + // Check that result is same as original after transformation + assert.Equal(t, original, result) } func Test_DeploymentAdvanced(t *testing.T) { diff --git a/schema.json b/schema.json index 7a0281ef..478fee70 100644 --- a/schema.json +++ b/schema.json @@ -120,9 +120,7 @@ "type": "string" }, "args": { - "items": { - "type": "object" - }, + "items": true, "type": "array" } },