Skip to content

Commit 46322b6

Browse files
committed
fix an issue where empty lists & maps would point to the same shared mutable data
1 parent fa7aa92 commit 46322b6

File tree

3 files changed

+6
-1
lines changed

3 files changed

+6
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@terran-one/cw-simulate",
3-
"version": "2.8.0-rc.2",
3+
"version": "2.8.0-rc.3",
44
"description": "Mock blockchain environment for simulating CosmWasm interactions",
55
"main": "dist/index.js",
66
"typings": "dist/index.d.ts",

src/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
export * from './CWSimulateApp';
22
export * from './types';
33
export * from './store';
4+
5+
import { save, load } from './persist';
6+
export const persist = { save, load };

src/persist.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export const serde = SerdeProtocol.standard()
1717
};
1818
},
1919
({ data, mutable }, deref) => {
20+
if (!data.length) return List();
2021
const list = List().asMutable();
2122
Reference.all(deref, data, values => {
2223
for (const value of values) {
@@ -38,6 +39,7 @@ export const serde = SerdeProtocol.standard()
3839
({ data, mutable }, deref) => {
3940
const map = Map().asMutable();
4041
const keys = Object.keys(data);
42+
if (!keys.length) return Map();
4143
Reference.all(deref, keys.map(k => data[k]), values => {
4244
values.forEach((value, i) => {
4345
const key = keys[i];

0 commit comments

Comments
 (0)