Skip to content

Commit dffa320

Browse files
authored
Merge pull request #516 from onflow/improvement/secure-cadence
2 parents 9b004d0 + 7c99b5e commit dffa320

28 files changed

+221
-183
lines changed

go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ require (
99
github.com/gosuri/uilive v0.0.4
1010
github.com/joho/godotenv v1.4.0
1111
github.com/manifoldco/promptui v0.9.0
12-
github.com/onflow/cadence v0.21.3-0.20220601002855-8b113c539a2c
13-
github.com/onflow/cadence/languageserver v0.23.5-0.20220520080030-2a9ba4e0aae7
12+
github.com/onflow/cadence v0.24.1
13+
github.com/onflow/cadence/languageserver v0.24.0
1414
github.com/onflow/fcl-dev-wallet v0.4.2
1515
github.com/onflow/flow-core-contracts/lib/go/templates v0.11.2-0.20220513155751-c4c1f8d59f83
16-
github.com/onflow/flow-emulator v0.32.0
17-
github.com/onflow/flow-go v0.26.2
18-
github.com/onflow/flow-go-sdk v0.24.1-0.20220513205729-d1f58d47c4e3
16+
github.com/onflow/flow-emulator v0.33.1
17+
github.com/onflow/flow-go v0.26.3
18+
github.com/onflow/flow-go-sdk v0.26.1
1919
github.com/psiemens/sconfig v0.1.0
2020
github.com/sirupsen/logrus v1.8.1
2121
github.com/spf13/afero v1.8.2

go.sum

Lines changed: 28 additions & 21 deletions
Large diffs are not rendered by default.

internal/blocks/blocks.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"github.com/onflow/flow-cli/internal/command"
2626

2727
"github.com/onflow/flow-go-sdk"
28-
"github.com/onflow/flow-go-sdk/client"
2928
"github.com/spf13/cobra"
3029

3130
"github.com/onflow/flow-cli/internal/events"
@@ -44,7 +43,7 @@ func init() {
4443

4544
type BlockResult struct {
4645
block *flow.Block
47-
events []client.BlockEvents
46+
events []flow.BlockEvents
4847
collections []*flow.Collection
4948
included []string
5049
}

internal/command/result.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
"os"
2626
"strings"
2727

28-
"github.com/onflow/flow-go-sdk/client"
28+
"github.com/onflow/flow-go-sdk/access/grpc"
2929
"github.com/spf13/afero"
3030

3131
"github.com/onflow/flow-cli/pkg/flowkit/config"
@@ -137,7 +137,7 @@ func handleError(description string, err error) {
137137
// TODO(sideninja): refactor this to better handle errors not by string matching
138138
// handle rpc error
139139
switch t := err.(type) {
140-
case *client.RPCError:
140+
case *grpc.RPCError:
141141
_, _ = fmt.Fprintf(os.Stderr, "%s Grpc Error: %s \n", output.ErrorEmoji(), t.GRPCStatus().Err().Error())
142142
default:
143143
if errors.Is(err, config.ErrOutdatedFormat) {

internal/events/events.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import (
2929
"github.com/onflow/cadence"
3030
jsoncdc "github.com/onflow/cadence/encoding/json"
3131
"github.com/onflow/flow-go-sdk"
32-
"github.com/onflow/flow-go-sdk/client"
3332
"github.com/spf13/cobra"
3433
)
3534

@@ -44,7 +43,7 @@ func init() {
4443
}
4544

4645
type EventResult struct {
47-
BlockEvents []client.BlockEvents
46+
BlockEvents []flow.BlockEvents
4847
Events []flow.Event
4948
}
5049

pkg/flowkit/arguments_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func TestArguments(t *testing.T) {
5757
[]string{sample.String()},
5858
)
5959
assert.NoError(t, err)
60-
assert.Equal(t, 1, len(args))
60+
assert.Len(t, args, 1)
6161
assert.Equal(t, []cadence.Value{sample}, args)
6262
}
6363
}

pkg/flowkit/config/config_test.go

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -145,55 +145,58 @@ func Test_GetContractsForNetworkComplex(t *testing.T) {
145145
market, err := conf.Contracts.ByName("KittyItemsMarket")
146146
assert.NoError(t, err)
147147

148-
assert.Equal(t, kitty.Name, "KittyItems")
149-
assert.Equal(t, market.Source, "./cadence/kittyItemsMarket/contracts/KittyItemsMarket.cdc")
148+
assert.Equal(t, "KittyItems", kitty.Name)
149+
assert.Equal(t, "./cadence/kittyItemsMarket/contracts/KittyItemsMarket.cdc", market.Source)
150150
}
151151

152152
func Test_GetContractsByNameAndNetworkComplex(t *testing.T) {
153153
conf := generateComplexConfig()
154154
market, err := conf.Contracts.ByNameAndNetwork("KittyItemsMarket", "testnet")
155155
assert.NoError(t, err)
156156

157-
assert.Equal(t, market.Source, "0x123123123")
157+
assert.Equal(t, "0x123123123", market.Source)
158158
}
159159

160160
func Test_GetContractsByNetworkComplex(t *testing.T) {
161161
conf := generateComplexConfig()
162162
contracts := conf.Contracts.ByNetwork("emulator")
163163

164-
assert.Equal(t, 5, len(contracts))
165-
assert.Equal(t, contracts[0].Name, "NonFungibleToken")
166-
assert.Equal(t, contracts[1].Name, "FungibleToken")
167-
assert.Equal(t, contracts[2].Name, "Kibble")
168-
assert.Equal(t, contracts[3].Name, "KittyItems")
169-
assert.Equal(t, contracts[4].Name, "KittyItemsMarket")
164+
assert.Len(t, contracts, 5)
165+
assert.Equal(t, "NonFungibleToken", contracts[0].Name)
166+
assert.Equal(t, "FungibleToken", contracts[1].Name)
167+
assert.Equal(t, "Kibble", contracts[2].Name)
168+
assert.Equal(t, "KittyItems", contracts[3].Name)
169+
assert.Equal(t, "KittyItemsMarket", contracts[4].Name)
170170
}
171171

172172
func Test_GetAccountByNameComplex(t *testing.T) {
173173
conf := generateComplexConfig()
174174
acc, err := conf.Accounts.ByName("account-4")
175175
assert.NoError(t, err)
176176

177-
assert.Equal(t, acc.Address.String(), "f8d6e0586b0a20c1")
177+
assert.Equal(t, "f8d6e0586b0a20c1", acc.Address.String())
178178
}
179179

180180
func Test_GetDeploymentsByNetworkComplex(t *testing.T) {
181181
conf := generateComplexConfig()
182182
deployments := conf.Deployments.ByAccountAndNetwork("account-2", "testnet")
183183

184-
assert.Equal(t, deployments[0].Contracts, []config.ContractDeployment{
185-
{Name: "FungibleToken", Args: []cadence.Value{}},
186-
{Name: "NonFungibleToken", Args: []cadence.Value{}},
187-
{Name: "Kibble", Args: []cadence.Value{}},
188-
{Name: "KittyItems", Args: []cadence.Value{}},
189-
})
184+
assert.Equal(t,
185+
[]config.ContractDeployment{
186+
{Name: "FungibleToken", Args: []cadence.Value{}},
187+
{Name: "NonFungibleToken", Args: []cadence.Value{}},
188+
{Name: "Kibble", Args: []cadence.Value{}},
189+
{Name: "KittyItems", Args: []cadence.Value{}},
190+
},
191+
deployments[0].Contracts,
192+
)
190193
}
191194

192195
func Test_GetNetworkByNameComplex(t *testing.T) {
193196
conf := generateComplexConfig()
194197
network, err := conf.Networks.ByName("emulator")
195198
assert.NoError(t, err)
196-
assert.Equal(t, network.Host, "127.0.0.1.3569")
199+
assert.Equal(t, "127.0.0.1.3569", network.Host)
197200

198201
network, err = conf.Networks.ByName("testnet")
199202
assert.NoError(t, err)

pkg/flowkit/config/json/account_test.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ func Test_ConfigAccountKeysSimple(t *testing.T) {
4343
assert.NoError(t, err)
4444
key := account.Key
4545

46-
assert.Equal(t, account.Address.String(), "f8d6e0586b0a20c7")
47-
assert.Equal(t, key.HashAlgo.String(), "SHA3_256")
48-
assert.Equal(t, key.Index, 0)
49-
assert.Equal(t, key.SigAlgo.String(), "ECDSA_P256")
50-
assert.Equal(t, key.PrivateKey.String(), "0x1fae488ce86422698f1c13468b137d62de488e7e978d7090396f7883a60abdcf")
46+
assert.Equal(t, "f8d6e0586b0a20c7", account.Address.String())
47+
assert.Equal(t, "SHA3_256", key.HashAlgo.String())
48+
assert.Equal(t, 0, key.Index)
49+
assert.Equal(t, "ECDSA_P256", key.SigAlgo.String())
50+
assert.Equal(t, "0x1fae488ce86422698f1c13468b137d62de488e7e978d7090396f7883a60abdcf", key.PrivateKey.String())
5151
}
5252

5353
func Test_ConfigAccountKeysAdvancedHex(t *testing.T) {
@@ -75,12 +75,12 @@ func Test_ConfigAccountKeysAdvancedHex(t *testing.T) {
7575
assert.NoError(t, err)
7676
key := account.Key
7777

78-
assert.Equal(t, account.Address.String(), "f8d6e0586b0a20c7")
79-
assert.Equal(t, key.HashAlgo.String(), "SHA2_256")
80-
assert.Equal(t, key.Index, 1)
81-
assert.Equal(t, key.SigAlgo.String(), "ECDSA_P256")
82-
assert.Equal(t, key.PrivateKey.String(), "0x271cec6bb5221d12713759188166bdfa00079db5789c36b54dcf1d794d8d8cdf")
83-
assert.Equal(t, key.ResourceID, "")
78+
assert.Equal(t, "f8d6e0586b0a20c7", account.Address.String())
79+
assert.Equal(t, "SHA2_256", key.HashAlgo.String())
80+
assert.Equal(t, 1, key.Index)
81+
assert.Equal(t, "ECDSA_P256", key.SigAlgo.String())
82+
assert.Equal(t, "0x271cec6bb5221d12713759188166bdfa00079db5789c36b54dcf1d794d8d8cdf", key.PrivateKey.String())
83+
assert.Equal(t, "", key.ResourceID)
8484
}
8585

8686
func Test_ConfigAccountKeysAdvancedKMS(t *testing.T) {
@@ -108,11 +108,11 @@ func Test_ConfigAccountKeysAdvancedKMS(t *testing.T) {
108108
assert.NoError(t, err)
109109
key := account.Key
110110

111-
assert.Equal(t, account.Address.String(), "f8d6e0586b0a20c7")
112-
assert.Equal(t, key.HashAlgo.String(), "SHA3_256")
113-
assert.Equal(t, key.Index, 1)
114-
assert.Equal(t, key.SigAlgo.String(), "ECDSA_P256")
115-
assert.Equal(t, key.ResourceID, "projects/flow/locations/us/keyRings/foo/bar/cryptoKeyVersions/1")
111+
assert.Equal(t, "f8d6e0586b0a20c7", account.Address.String())
112+
assert.Equal(t, "SHA3_256", key.HashAlgo.String())
113+
assert.Equal(t, 1, key.Index)
114+
assert.Equal(t, "ECDSA_P256", key.SigAlgo.String())
115+
assert.Equal(t, "projects/flow/locations/us/keyRings/foo/bar/cryptoKeyVersions/1", key.ResourceID)
116116
assert.Nil(t, key.PrivateKey)
117117
}
118118

pkg/flowkit/config/json/config_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func Test_SimpleJSONConfig(t *testing.T) {
4848
conf, err := parser.Deserialize(b)
4949

5050
assert.NoError(t, err)
51-
assert.Equal(t, 1, len(conf.Accounts))
51+
assert.Len(t, conf.Accounts, 1)
5252
assert.Equal(t, "emulator-account", conf.Accounts[0].Name)
5353
assert.Equal(t, "0x11c5dfdeb0ff03a7a73ef39788563b62c89adea67bbb21ab95e5f710bd1d40b7", conf.Accounts[0].Key.PrivateKey.String())
5454
network, err := conf.Networks.ByName("emulator")
@@ -80,7 +80,7 @@ func Test_NonExistingContractForDeployment(t *testing.T) {
8080
assert.NoError(t, err)
8181

8282
err = config.Validate()
83-
assert.Equal(t, err.Error(), "deployment contains nonexisting contract FungibleToken")
83+
assert.Equal(t, "deployment contains nonexisting contract FungibleToken", err.Error())
8484
}
8585

8686
func Test_NonExistingAccountForDeployment(t *testing.T) {
@@ -109,7 +109,7 @@ func Test_NonExistingAccountForDeployment(t *testing.T) {
109109
assert.NoError(t, err)
110110

111111
err = conf.Validate()
112-
assert.Equal(t, err.Error(), "deployment contains nonexisting account test-1")
112+
assert.Equal(t, "deployment contains nonexisting account test-1", err.Error())
113113
}
114114

115115
func Test_NonExistingNetworkForDeployment(t *testing.T) {
@@ -136,7 +136,7 @@ func Test_NonExistingNetworkForDeployment(t *testing.T) {
136136
assert.NoError(t, err)
137137

138138
err = conf.Validate()
139-
assert.Equal(t, err.Error(), "deployment contains nonexisting network foo")
139+
assert.Equal(t, "deployment contains nonexisting network foo", err.Error())
140140
}
141141

142142
func Test_NonExistingAccountForEmulator(t *testing.T) {
@@ -154,5 +154,5 @@ func Test_NonExistingAccountForEmulator(t *testing.T) {
154154
assert.NoError(t, err)
155155

156156
err = conf.Validate()
157-
assert.Equal(t, err.Error(), "emulator default contains nonexisting service account emulator-account")
157+
assert.Equal(t, "emulator default contains nonexisting service account emulator-account", err.Error())
158158
}

pkg/flowkit/config/json/contract_test.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func Test_ConfigContractsComplex(t *testing.T) {
6565
contracts, err := jsonContracts.transformToConfig()
6666
assert.NoError(t, err)
6767

68-
assert.Equal(t, len(contracts), 2)
68+
assert.Len(t, contracts, 2)
6969

7070
contract, err := contracts.ByName("KittyItems")
7171
assert.NoError(t, err)
@@ -75,21 +75,21 @@ func Test_ConfigContractsComplex(t *testing.T) {
7575
kittyItemsMarketTestnet, err := contracts.ByNameAndNetwork("KittyItemsMarket", "testnet")
7676
assert.NoError(t, err)
7777

78-
assert.Equal(t, contract.Source, "./cadence/kittyItems/contracts/KittyItems.cdc")
79-
assert.Equal(t, kittyItemsMarketEmulator.Source, "./cadence/kittyItemsMarket/contracts/KittyItemsMarket.cdc")
80-
assert.Equal(t, kittyItemsMarketTestnet.Source, "./cadence/kittyItemsMarket/contracts/KittyItemsMarket.cdc")
78+
assert.Equal(t, "./cadence/kittyItems/contracts/KittyItems.cdc", contract.Source)
79+
assert.Equal(t, "./cadence/kittyItemsMarket/contracts/KittyItemsMarket.cdc", kittyItemsMarketEmulator.Source)
80+
assert.Equal(t, "./cadence/kittyItemsMarket/contracts/KittyItemsMarket.cdc", kittyItemsMarketTestnet.Source)
8181

8282
kittyItemsEmulator, err := contracts.ByNameAndNetwork("KittyItems", "emulator")
8383
assert.NoError(t, err)
8484

8585
kittyItemsTestnet, err := contracts.ByNameAndNetwork("KittyItems", "testnet")
8686
assert.NoError(t, err)
8787

88-
assert.Equal(t, kittyItemsEmulator.Alias, "")
89-
assert.Equal(t, kittyItemsTestnet.Alias, "")
88+
assert.Equal(t, "", kittyItemsEmulator.Alias)
89+
assert.Equal(t, "", kittyItemsTestnet.Alias)
9090

91-
assert.Equal(t, kittyItemsMarketTestnet.Alias, "f8d6e0586b0a20c7")
92-
assert.Equal(t, kittyItemsMarketEmulator.Alias, "")
91+
assert.Equal(t, "f8d6e0586b0a20c7", kittyItemsMarketTestnet.Alias)
92+
assert.Equal(t, "", kittyItemsMarketEmulator.Alias)
9393
}
9494

9595
func Test_ConfigContractsAliases(t *testing.T) {
@@ -125,14 +125,14 @@ func Test_ConfigContractsAliases(t *testing.T) {
125125
fungibleTokenTestnet, err := contracts.ByNameAndNetwork("FungibleToken", "testnet")
126126
assert.NoError(t, err)
127127

128-
assert.Equal(t, fungibleToken.Network, "emulator")
129-
assert.Equal(t, fungibleToken.Alias, "e5a8b7f23e8b548f")
130-
assert.Equal(t, fungibleToken.Source, "../hungry-kitties/cadence/contracts/FungibleToken.cdc")
131-
assert.Equal(t, fungibleTokenEmulator.Alias, "e5a8b7f23e8b548f")
132-
assert.Equal(t, fungibleTokenTestnet.Alias, "")
133-
assert.Equal(t, fungibleTokenTestnet.Network, "testnet")
134-
assert.Equal(t, fungibleTokenTestnet.Source, "../hungry-kitties/cadence/contracts/FungibleToken.cdc")
135-
assert.Equal(t, fungibleTokenEmulator.Source, "../hungry-kitties/cadence/contracts/FungibleToken.cdc")
128+
assert.Equal(t, "emulator", fungibleToken.Network)
129+
assert.Equal(t, "e5a8b7f23e8b548f", fungibleToken.Alias)
130+
assert.Equal(t, "../hungry-kitties/cadence/contracts/FungibleToken.cdc", fungibleToken.Source)
131+
assert.Equal(t, "e5a8b7f23e8b548f", fungibleTokenEmulator.Alias)
132+
assert.Equal(t, "", fungibleTokenTestnet.Alias)
133+
assert.Equal(t, "testnet", fungibleTokenTestnet.Network)
134+
assert.Equal(t, "../hungry-kitties/cadence/contracts/FungibleToken.cdc", fungibleTokenTestnet.Source)
135+
assert.Equal(t, "../hungry-kitties/cadence/contracts/FungibleToken.cdc", fungibleTokenEmulator.Source)
136136

137137
kibbleTestnet, err := contracts.ByNameAndNetwork("Kibble", "testnet")
138138
assert.NoError(t, err)

0 commit comments

Comments
 (0)