diff --git a/packages/sdk/src/cosmwasmclient.spec.ts b/packages/sdk/src/cosmwasmclient.spec.ts index e9b450d1..3efb45cb 100644 --- a/packages/sdk/src/cosmwasmclient.spec.ts +++ b/packages/sdk/src/cosmwasmclient.spec.ts @@ -406,7 +406,7 @@ describe("CosmWasmClient", () => { const [first] = result; expect(first).toEqual({ id: 1, - checksum: "b26861a6aa9858585ed905a590272735bd4fe8177c708940236224e8c9ff73ca", + checksum: "aff8c8873d79d2153a8b9066a0683fec3c903669267eb806ffa831dcd4b3daae", source: undefined, builder: undefined, creator: faucet.address, @@ -420,7 +420,7 @@ describe("CosmWasmClient", () => { const client = new CosmWasmClient(httpUrl); const result = await client.getCodeDetails(1); const checksum = new Sha256(result.wasm).digest(); - expect(checksum).toEqual(fromHex("b26861a6aa9858585ed905a590272735bd4fe8177c708940236224e8c9ff73ca")); + expect(checksum).toEqual(fromHex("aff8c8873d79d2153a8b9066a0683fec3c903669267eb806ffa831dcd4b3daae")); }); }); @@ -432,65 +432,19 @@ describe("CosmWasmClient", () => { expect(result.length).toBeGreaterThanOrEqual(3); const [jade, hash, isa] = result; expect(hash).toEqual({ + address: "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", codeId: 1, creator: faucet.address, - initMsg: { - decimals: 5, - name: "Hash token", - symbol: "HASH", - initial_balances: [ - { - address: faucet.address, - amount: "11", - }, - { - address: unused.address, - amount: "12812345", - }, - { - address: guest.address, - amount: "22004000000", - }, - ], - }, }); expect(isa).toEqual({ + address: "cosmos1hqrdl6wstt8qzshwc6mrumpjk9338k0lr4dqxd", codeId: 1, creator: faucet.address, - initMsg: { - decimals: 0, - name: "Isa Token", - symbol: "ISA", - initial_balances: [ - { - address: faucet.address, - amount: "999999999", - }, - { - address: unused.address, - amount: "42", - }, - ], - }, }); expect(jade).toEqual({ + address: "cosmos18r5szma8hm93pvx6lwpjwyxruw27e0k5uw835c", codeId: 1, creator: faucet.address, - initMsg: { - decimals: 18, - name: "Jade Token", - symbol: "JADE", - initial_balances: [ - { - address: faucet.address, - amount: "189189189000000000000000000", // 189189189 JADE - }, - { - address: guest.address, - amount: "189500000000000000000", // 189.5 JADE - }, - ], - }, }); }); }); @@ -501,6 +455,7 @@ describe("CosmWasmClient", () => { const client = new CosmWasmClient(httpUrl); const hash = await client.getContract("cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5"); expect(hash).toEqual({ + address: "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", codeId: 1, creator: faucet.address, initMsg: { diff --git a/packages/sdk/src/cosmwasmclient.ts b/packages/sdk/src/cosmwasmclient.ts index 650fd606..4aa21619 100644 --- a/packages/sdk/src/cosmwasmclient.ts +++ b/packages/sdk/src/cosmwasmclient.ts @@ -64,10 +64,13 @@ export interface CodeDetails { } export interface Contract { - // TODO: add contract address (https://github.com/cosmwasm/wasmd/issues/75) + readonly address: string; readonly codeId: number; /** Bech32 account address */ readonly creator: string; +} + +export interface ContractDetails extends Contract { /** Argument passed on initialization of the contract */ readonly initMsg: object; } @@ -210,16 +213,17 @@ export class CosmWasmClient { public async getContracts(codeId: number): Promise { const result = await this.restClient.listContractsByCodeId(codeId); - return result.map(r => ({ - codeId: r.code_id, - creator: r.creator, - initMsg: r.init_msg, + return result.map(entry => ({ + address: entry.address, + codeId: entry.code_id, + creator: entry.creator, })); } - public async getContract(address: string): Promise { + public async getContract(address: string): Promise { const result = await this.restClient.getContractInfo(address); return { + address: result.address, codeId: result.code_id, creator: result.creator, initMsg: result.init_msg, diff --git a/packages/sdk/src/restclient.ts b/packages/sdk/src/restclient.ts index a62a4cfe..16fb31a0 100644 --- a/packages/sdk/src/restclient.ts +++ b/packages/sdk/src/restclient.ts @@ -134,6 +134,7 @@ export interface CodeInfo { } export interface ContractInfo { + readonly address: string; readonly code_id: number; /** Bech32 account address */ readonly creator: string; diff --git a/packages/sdk/types/cosmwasmclient.d.ts b/packages/sdk/types/cosmwasmclient.d.ts index f6ff12e5..6ff632dc 100644 --- a/packages/sdk/types/cosmwasmclient.d.ts +++ b/packages/sdk/types/cosmwasmclient.d.ts @@ -39,9 +39,12 @@ export interface CodeDetails { readonly wasm: Uint8Array; } export interface Contract { + readonly address: string; readonly codeId: number; /** Bech32 account address */ readonly creator: string; +} +export interface ContractDetails extends Contract { /** Argument passed on initialization of the contract */ readonly initMsg: object; } @@ -73,7 +76,7 @@ export declare class CosmWasmClient { getCodes(): Promise; getCodeDetails(codeId: number): Promise; getContracts(codeId: number): Promise; - getContract(address: string): Promise; + getContract(address: string): Promise; /** * Returns the data at the key if present (raw contract dependent storage data) * or null if no data at this key. diff --git a/packages/sdk/types/restclient.d.ts b/packages/sdk/types/restclient.d.ts index 9c9ac63d..5279f08d 100644 --- a/packages/sdk/types/restclient.d.ts +++ b/packages/sdk/types/restclient.d.ts @@ -102,6 +102,7 @@ export interface CodeInfo { readonly builder?: string; } export interface ContractInfo { + readonly address: string; readonly code_id: number; /** Bech32 account address */ readonly creator: string;