Skip to content

Commit d4d83ab

Browse files
authored
Merge pull request #215 from CosmWasm/upgrade-to-beta5
Upgrade CosmWasm to beta5
2 parents fe0c97b + 1e4cc2c commit d4d83ab

File tree

13 files changed

+206
-52
lines changed

13 files changed

+206
-52
lines changed

Cargo.lock

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ default = []
2626
backtraces = []
2727

2828
[dependencies]
29-
cosmwasm-std = { git = "https://github.com/CosmWasm/cosmwasm", rev = "v0.14.0-beta4", features = ["iterator", "staking", "stargate"] }
30-
cosmwasm-vm = { git = "https://github.com/CosmWasm/cosmwasm", rev = "v0.14.0-beta4", features = ["iterator", "staking", "stargate"] }
29+
cosmwasm-std = { git = "https://github.com/CosmWasm/cosmwasm", rev = "v0.14.0-beta5", features = ["iterator", "staking", "stargate"] }
30+
cosmwasm-vm = { git = "https://github.com/CosmWasm/cosmwasm", rev = "v0.14.0-beta5", features = ["iterator", "staking", "stargate"] }
3131
errno = "0.2"
3232
serde_json = "1.0"
3333
thiserror = "1.0"

api/lib_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ func TestGetMetrics(t *testing.T) {
208208
assert.Equal(t, &types.Metrics{
209209
HitsFsCache: 1,
210210
ElementsMemoryCache: 1,
211-
SizeMemoryCache: 3417886,
211+
SizeMemoryCache: 3428923,
212212
}, metrics)
213213

214214
// Instantiate 2
@@ -223,7 +223,7 @@ func TestGetMetrics(t *testing.T) {
223223
HitsMemoryCache: 1,
224224
HitsFsCache: 1,
225225
ElementsMemoryCache: 1,
226-
SizeMemoryCache: 3417886,
226+
SizeMemoryCache: 3428923,
227227
}, metrics)
228228

229229
// Pin
@@ -238,8 +238,8 @@ func TestGetMetrics(t *testing.T) {
238238
HitsFsCache: 1,
239239
ElementsPinnedMemoryCache: 1,
240240
ElementsMemoryCache: 1,
241-
SizePinnedMemoryCache: 3417886,
242-
SizeMemoryCache: 3417886,
241+
SizePinnedMemoryCache: 3428923,
242+
SizeMemoryCache: 3428923,
243243
}, metrics)
244244

245245
// Instantiate 3
@@ -256,8 +256,8 @@ func TestGetMetrics(t *testing.T) {
256256
HitsFsCache: 1,
257257
ElementsPinnedMemoryCache: 1,
258258
ElementsMemoryCache: 1,
259-
SizePinnedMemoryCache: 3417886,
260-
SizeMemoryCache: 3417886,
259+
SizePinnedMemoryCache: 3428923,
260+
SizeMemoryCache: 3428923,
261261
}, metrics)
262262

263263
// Unpin
@@ -274,7 +274,7 @@ func TestGetMetrics(t *testing.T) {
274274
ElementsPinnedMemoryCache: 0,
275275
ElementsMemoryCache: 1,
276276
SizePinnedMemoryCache: 0,
277-
SizeMemoryCache: 3417886,
277+
SizeMemoryCache: 3428923,
278278
}, metrics)
279279

280280
// Instantiate 4
@@ -292,7 +292,7 @@ func TestGetMetrics(t *testing.T) {
292292
ElementsPinnedMemoryCache: 0,
293293
ElementsMemoryCache: 1,
294294
SizePinnedMemoryCache: 0,
295-
SizeMemoryCache: 3417886,
295+
SizeMemoryCache: 3428923,
296296
}, metrics)
297297
}
298298

@@ -363,7 +363,7 @@ func TestExecute(t *testing.T) {
363363
res, cost, err = Execute(cache, checksum, env, info, []byte(`{"release":{}}`), &igasMeter2, store, api, &querier, TESTING_GAS_LIMIT, TESTING_PRINT_DEBUG)
364364
diff = time.Now().Sub(start)
365365
require.NoError(t, err)
366-
assert.Equal(t, uint64(0xf363), cost)
366+
assert.Equal(t, uint64(0xf364), cost)
367367
t.Logf("Time (%d gas): %s\n", cost, diff)
368368

369369
// make sure it read the balance properly and we got 250 atoms
@@ -574,7 +574,7 @@ func TestMultipleInstances(t *testing.T) {
574574
require.Equal(t, "Unauthorized", resp.Err)
575575

576576
// succeed to execute store1 with fred
577-
resp = exec(t, cache, checksum, "fred", store1, api, querier, 0xf2ef)
577+
resp = exec(t, cache, checksum, "fred", store1, api, querier, 0xf2f0)
578578
require.Equal(t, "", resp.Err)
579579
require.Equal(t, 1, len(resp.Ok.Messages))
580580
attributes := resp.Ok.Attributes
@@ -583,7 +583,7 @@ func TestMultipleInstances(t *testing.T) {
583583
require.Equal(t, "bob", attributes[1].Value)
584584

585585
// succeed to execute store2 with mary
586-
resp = exec(t, cache, checksum, "mary", store2, api, querier, 0xf329)
586+
resp = exec(t, cache, checksum, "mary", store2, api, querier, 0xf32a)
587587
require.Equal(t, "", resp.Err)
588588
require.Equal(t, 1, len(resp.Ok.Messages))
589589
attributes = resp.Ok.Attributes

api/mocks.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,12 @@ func MockIBCPacket(myChannel string, data []byte) types.IBCPacket {
8888
ChannelID: myChannel,
8989
},
9090
Sequence: 15,
91-
TimeoutBlock: &types.IBCTimeoutBlock{
92-
Revision: 1,
93-
Height: 123456,
91+
Timeout: types.IBCTimeout{
92+
Block: &types.IBCTimeoutBlock{
93+
Revision: 1,
94+
Height: 123456,
95+
},
9496
},
95-
TimeoutTimestamp: nil,
9697
}
9798
}
9899

api/testdata/hackatom.wasm

565 Bytes
Binary file not shown.

api/testdata/ibc_reflect.wasm

8.13 KB
Binary file not shown.

api/testdata/queue.wasm

574 Bytes
Binary file not shown.

api/testdata/reflect.wasm

8.63 KB
Binary file not shown.

lib.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ func (vm *VM) AnalyzeCode(checksum Checksum) (*types.AnalysisReport, error) {
101101
return api.AnalyzeCode(vm.cache, checksum)
102102
}
103103

104+
// GetMetrics some internal metrics for monitoring purposes.
105+
func (vm *VM) GetMetrics() (*types.Metrics, error) {
106+
return api.GetMetrics(vm.cache)
107+
}
108+
104109
// Instantiate will create a new contract based on the given Checksum.
105110
// We can set the initMsg (contract "genesis") here, and it then receives
106111
// an account and address and can be invoked (Execute) many times.

lib_test.go

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,131 @@ func TestHappyPath(t *testing.T) {
9292
expectedData := []byte{0xF0, 0x0B, 0xAA}
9393
assert.Equal(t, expectedData, hres.Data)
9494
}
95+
96+
func TestGetMetrics(t *testing.T) {
97+
vm := withVM(t)
98+
99+
// GetMetrics 1
100+
metrics, err := vm.GetMetrics()
101+
require.NoError(t, err)
102+
assert.Equal(t, &types.Metrics{}, metrics)
103+
104+
// Create contract
105+
checksum := createTestContract(t, vm, HACKATOM_TEST_CONTRACT)
106+
107+
// GetMetrics 2
108+
metrics, err = vm.GetMetrics()
109+
require.NoError(t, err)
110+
assert.Equal(t, &types.Metrics{}, metrics)
111+
112+
// Instantiate 1
113+
gasMeter1 := api.NewMockGasMeter(TESTING_GAS_LIMIT)
114+
// instantiate it with this store
115+
store := api.NewLookup(gasMeter1)
116+
goapi := api.NewMockAPI()
117+
balance := types.Coins{types.NewCoin(250, "ATOM")}
118+
querier := api.DefaultQuerier(api.MOCK_CONTRACT_ADDR, balance)
119+
120+
env := api.MockEnv()
121+
info := api.MockInfo("creator", nil)
122+
msg1 := []byte(`{"verifier": "fred", "beneficiary": "bob"}`)
123+
ires, _, err := vm.Instantiate(checksum, env, info, msg1, store, *goapi, querier, gasMeter1, TESTING_GAS_LIMIT)
124+
require.NoError(t, err)
125+
require.Equal(t, 0, len(ires.Messages))
126+
127+
// GetMetrics 3
128+
metrics, err = vm.GetMetrics()
129+
require.NoError(t, err)
130+
assert.Equal(t, &types.Metrics{
131+
HitsFsCache: 1,
132+
ElementsMemoryCache: 1,
133+
SizeMemoryCache: 3428923,
134+
}, metrics)
135+
136+
// Instantiate 2
137+
msg2 := []byte(`{"verifier": "fred", "beneficiary": "susi"}`)
138+
ires, _, err = vm.Instantiate(checksum, env, info, msg2, store, *goapi, querier, gasMeter1, TESTING_GAS_LIMIT)
139+
require.NoError(t, err)
140+
require.Equal(t, 0, len(ires.Messages))
141+
142+
// GetMetrics 4
143+
metrics, err = vm.GetMetrics()
144+
require.NoError(t, err)
145+
assert.Equal(t, &types.Metrics{
146+
HitsMemoryCache: 1,
147+
HitsFsCache: 1,
148+
ElementsMemoryCache: 1,
149+
SizeMemoryCache: 3428923,
150+
}, metrics)
151+
152+
// Pin
153+
err = vm.Pin(checksum)
154+
require.NoError(t, err)
155+
156+
// GetMetrics 5
157+
metrics, err = vm.GetMetrics()
158+
require.NoError(t, err)
159+
assert.Equal(t, &types.Metrics{
160+
HitsMemoryCache: 2,
161+
HitsFsCache: 1,
162+
ElementsPinnedMemoryCache: 1,
163+
ElementsMemoryCache: 1,
164+
SizePinnedMemoryCache: 3428923,
165+
SizeMemoryCache: 3428923,
166+
}, metrics)
167+
168+
// Instantiate 3
169+
msg3 := []byte(`{"verifier": "fred", "beneficiary": "bert"}`)
170+
ires, _, err = vm.Instantiate(checksum, env, info, msg3, store, *goapi, querier, gasMeter1, TESTING_GAS_LIMIT)
171+
require.NoError(t, err)
172+
require.Equal(t, 0, len(ires.Messages))
173+
174+
// GetMetrics 6
175+
metrics, err = vm.GetMetrics()
176+
require.NoError(t, err)
177+
assert.Equal(t, &types.Metrics{
178+
HitsPinnedMemoryCache: 1,
179+
HitsMemoryCache: 2,
180+
HitsFsCache: 1,
181+
ElementsPinnedMemoryCache: 1,
182+
ElementsMemoryCache: 1,
183+
SizePinnedMemoryCache: 3428923,
184+
SizeMemoryCache: 3428923,
185+
}, metrics)
186+
187+
// Unpin
188+
err = vm.Unpin(checksum)
189+
require.NoError(t, err)
190+
191+
// GetMetrics 7
192+
metrics, err = vm.GetMetrics()
193+
require.NoError(t, err)
194+
assert.Equal(t, &types.Metrics{
195+
HitsPinnedMemoryCache: 1,
196+
HitsMemoryCache: 2,
197+
HitsFsCache: 1,
198+
ElementsPinnedMemoryCache: 0,
199+
ElementsMemoryCache: 1,
200+
SizePinnedMemoryCache: 0,
201+
SizeMemoryCache: 3428923,
202+
}, metrics)
203+
204+
// Instantiate 4
205+
msg4 := []byte(`{"verifier": "fred", "beneficiary": "jeff"}`)
206+
ires, _, err = vm.Instantiate(checksum, env, info, msg4, store, *goapi, querier, gasMeter1, TESTING_GAS_LIMIT)
207+
require.NoError(t, err)
208+
require.Equal(t, 0, len(ires.Messages))
209+
210+
// GetMetrics 8
211+
metrics, err = vm.GetMetrics()
212+
require.NoError(t, err)
213+
assert.Equal(t, &types.Metrics{
214+
HitsPinnedMemoryCache: 1,
215+
HitsMemoryCache: 3,
216+
HitsFsCache: 1,
217+
ElementsPinnedMemoryCache: 0,
218+
ElementsMemoryCache: 1,
219+
SizePinnedMemoryCache: 0,
220+
SizeMemoryCache: 3428923,
221+
}, metrics)
222+
}

0 commit comments

Comments
 (0)