diff --git a/packages/cosmwasm/src/lcdapi/wasm.ts b/packages/cosmwasm/src/lcdapi/wasm.ts index 0a2c041c..173249f0 100644 --- a/packages/cosmwasm/src/lcdapi/wasm.ts +++ b/packages/cosmwasm/src/lcdapi/wasm.ts @@ -158,9 +158,15 @@ export function setupWasmExtension(base: LcdClient): WasmExtension { queryContractRaw: async (address: string, key: Uint8Array) => { const hexKey = toHex(key); const path = `/wasm/contract/${address}/raw/${hexKey}?encoding=hex`; - const responseData = (await base.get(path)) as WasmResponse; + const responseData = (await base.get(path)) as WasmResponse; const data = unwrapWasmResponse(responseData); - return data === null || data.length === 0 || data[0] === undefined ? null : fromBase64(data[0].val); + if (Array.isArray(data)) { + // The CosmWasm 0.10 interface + return data.length === 0 ? null : fromBase64(data[0].val); + } else { + // The CosmWasm 0.11 interface + return !data ? null : fromBase64(data); // Yes, we cannot differentiate empty fields from non-existent fields :( + } }, queryContractSmart: async (address: string, query: Record) => { const encoded = toHex(toUtf8(JSON.stringify(query)));