Skip to content

Commit

Permalink
Merge pull request #1 from Terran-One/feature/new-cosmwasm-vm-version
Browse files Browse the repository at this point in the history
New cosmwasm-vm-js version
  • Loading branch information
Bunchhieng authored Sep 10, 2022
2 parents bd71130 + 4341ea1 commit ee9504b
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 25 deletions.
9 changes: 6 additions & 3 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
module.exports = {
testEnvironment: 'node',
preset: 'ts-jest',
roots: ['<rootDir>/src'],
preset: 'ts-jest',
testEnvironment: 'node',
transform: {
'^.+\\.ts?$': 'ts-jest',
},
transformIgnorePatterns: ['<rootDir>/node_modules/'],
};
34 changes: 23 additions & 11 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"@cosmjs/amino": "^0.28.13",
"@cosmjs/crypto": "^0.28.13",
"@cosmjs/encoding": "^0.28.13",
"@terran-one/cosmwasm-vm-js": "^0.1.11",
"@terran-one/cosmwasm-vm-js": "^0.1.12",
"@types/lodash": "^4.14.184",
"lobyte": "^0.0.3",
"lodash": "^4.17.21"
Expand Down
8 changes: 3 additions & 5 deletions src/contract.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
import {
BasicKVIterStorage,
VMInstance,
BasicBackendApi,
BasicKVIterStorage,
BasicQuerier,
IBackend,
IStorage,
IIterStorage,
Region,
VMInstance,
} from '@terran-one/cosmwasm-vm-js';

import { CWChain } from './chain';
import { clone, cloneDeep } from 'lodash';
import { cloneDeep } from 'lodash';

export class CWContractCode {
constructor(
Expand Down
45 changes: 40 additions & 5 deletions src/engine.spec.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { CWSimulateEnv } from './engine';
import { readFileSync } from 'fs';
import { fromAscii, toAscii, fromBase64, toBase64 } from '@cosmjs/encoding';

const wasmBytecode = readFileSync('testing/hello_world-aarch64.wasm');

Expand All @@ -19,10 +18,46 @@ describe('CWSimulateEnv', () => {

let code = chain.storeCode(wasmBytecode);
let instance = await chain.instantiateContract(code.codeId);
instance.instantiate(info, { count: 0 });
instance.instantiate(info, {count: 0});

let result = instance.execute(info, { increment: {} });
instance.execute(info, { increment: {} });
instance.execute(info, { increment: {} });
let result = instance.execute(info, {increment: {}});
instance.execute(info, {increment: {}});
instance.execute(info, {increment: {}});
});

it('works with multiple chains and contracts', async () => {
let env = new CWSimulateEnv();
let chain1 = env.createChain({
chainId: 'phoenix-1',
bech32Prefix: 'terra',
});

let chain2 = env.createChain({
chainId: 'cosmoshub-2',
bech32Prefix: 'cosmos',
});

let info = {
sender: 'terra1hgm0p7khfk85zpz5v0j8wnej3a90w709vhkdfu',
funds: [],
};

expect(Object.keys(env.chains).length).toBe(2);
expect(env.chains['phoenix-1']).toEqual(JSON.parse(JSON.stringify(chain1)));
expect(env.chains['cosmoshub-2']).toEqual(JSON.parse(JSON.stringify(chain2)));
let code = chain1.storeCode(wasmBytecode);
let instance = await chain1.instantiateContract(code.codeId);
instance.instantiate(info, {count: 0});

let result = instance.execute(info, {increment: {}});

let code2 = chain2.storeCode(wasmBytecode);
let instance2 = await chain2.instantiateContract(code2.codeId);
instance2.instantiate(info, {count: 0});

let result2 = instance2.execute(info, {increment: {}});

instance.execute(info, {increment: {}});
instance.execute(info, {increment: {}});
});
});

0 comments on commit ee9504b

Please sign in to comment.