@cosmwasm/ts-codegen 0.35.1 → 0.35.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -317,16 +317,20 @@ export default function YourComponent() {
317
317
  };
318
318
  ```
319
319
 
320
- If you're using Babel, please make sure include '@babel/preset-react' in devDeps and presets in .babelrc.js:
320
+ #### Use Contracts Provider Babel/TSC config
321
+
322
+ If you're using Babel, please make sure include `'@babel/preset-react'` in devDeps and presets in `.babelrc.js`:
321
323
 
322
324
  ```js
323
325
  presets: [
324
- '@babel/typescript',
325
- '@babel/env',
326
- '@babel/preset-react',
327
- ]
326
+ '@babel/typescript',
327
+ '@babel/env',
328
+ '@babel/preset-react',
329
+ ]
328
330
  ```
329
331
 
332
+ For `tsc`, you should set the `jsx` option to `'react'` in your `tsconfig.json`.
333
+
330
334
  #### Use Contracts Hooks Usage
331
335
 
332
336
  Once enabled, you can get contracts very simply:
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.contractsContextTSX = void 0;
7
- var contractsContextTSX = "\nimport React, { useEffect, useMemo, useRef, useState, useContext } from 'react';\nimport {\n CosmWasmClient,\n SigningCosmWasmClient,\n} from '@cosmjs/cosmwasm-stargate';\n\nimport { IContractsContext, getProviders } from './contractContextProviders';\n\ninterface ContractsConfig {\n address: string | undefined;\n getCosmWasmClient: () => Promise<CosmWasmClient>;\n getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;\n}\n\nconst ContractsContext = React.createContext<IContractsContext | null>(null);\n\nexport const ContractsProvider = ({\n children,\n contractsConfig,\n}: {\n children: React.ReactNode;\n contractsConfig: ContractsConfig;\n}) => {\n const [cosmWasmClient, setCosmWasmClient] = useState<CosmWasmClient>();\n const [signingCosmWasmClient, setSigningCosmWasmClient] =\n useState<SigningCosmWasmClient>();\n\n const { address, getCosmWasmClient, getSigningCosmWasmClient } =\n contractsConfig;\n\n const prevAddressRef = useRef<string | undefined>(address);\n\n const contracts: IContractsContext = useMemo(() => {\n return getProviders(address, cosmWasmClient, signingCosmWasmClient);\n }, [address, cosmWasmClient, signingCosmWasmClient]);\n\n useEffect(() => {\n const connectSigningCwClient = async () => {\n if (address && prevAddressRef.current !== address) {\n const signingCosmWasmClient = await getSigningCosmWasmClient();\n setSigningCosmWasmClient(signingCosmWasmClient);\n } else if (!address) {\n setSigningCosmWasmClient(undefined);\n }\n prevAddressRef.current = address;\n };\n connectSigningCwClient();\n }, [address, getSigningCosmWasmClient]);\n\n useEffect(() => {\n const connectCosmWasmClient = async () => {\n const cosmWasmClient = await getCosmWasmClient();\n setCosmWasmClient(cosmWasmClient);\n };\n connectCosmWasmClient();\n }, [getCosmWasmClient]);\n\n return (\n <ContractsContext.Provider value={contracts}>\n {children}\n </ContractsContext.Provider>\n );\n};\n\nexport const useContracts = () => {\n const contracts: IContractsContext = useContext(ContractsContext);\n if (contracts === null) {\n throw new Error('useContracts must be used within a ContractsProvider');\n }\n return contracts;\n};\n";
7
+ var contractsContextTSX = "\nimport React, { useEffect, useMemo, useRef, useState, useContext } from 'react';\nimport {\n CosmWasmClient,\n SigningCosmWasmClient,\n} from '@cosmjs/cosmwasm-stargate';\n\nimport { IContractsContext, getProviders } from './contractContextProviders';\n\nexport interface ContractsConfig {\n address: string | undefined;\n getCosmWasmClient: () => Promise<CosmWasmClient>;\n getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;\n}\n\nconst ContractsContext = React.createContext<IContractsContext | null>(null);\n\nexport const ContractsProvider = ({\n children,\n contractsConfig,\n}: {\n children: React.ReactNode;\n contractsConfig: ContractsConfig;\n}) => {\n const [cosmWasmClient, setCosmWasmClient] = useState<CosmWasmClient>();\n const [signingCosmWasmClient, setSigningCosmWasmClient] =\n useState<SigningCosmWasmClient>();\n\n const { address, getCosmWasmClient, getSigningCosmWasmClient } =\n contractsConfig;\n\n const prevAddressRef = useRef<string | undefined>(address);\n\n const contracts: IContractsContext = useMemo(() => {\n return getProviders(address, cosmWasmClient, signingCosmWasmClient);\n }, [address, cosmWasmClient, signingCosmWasmClient]);\n\n useEffect(() => {\n const connectSigningCwClient = async () => {\n if (address && prevAddressRef.current !== address) {\n const signingCosmWasmClient = await getSigningCosmWasmClient();\n setSigningCosmWasmClient(signingCosmWasmClient);\n } else if (!address) {\n setSigningCosmWasmClient(undefined);\n }\n prevAddressRef.current = address;\n };\n connectSigningCwClient();\n }, [address, getSigningCosmWasmClient]);\n\n useEffect(() => {\n const connectCosmWasmClient = async () => {\n const cosmWasmClient = await getCosmWasmClient();\n setCosmWasmClient(cosmWasmClient);\n };\n connectCosmWasmClient();\n }, [getCosmWasmClient]);\n\n return (\n <ContractsContext.Provider value={contracts}>\n {children}\n </ContractsContext.Provider>\n );\n};\n\nexport const useContracts = () => {\n const contracts: IContractsContext = useContext(ContractsContext);\n if (contracts === null) {\n throw new Error('useContracts must be used within a ContractsProvider');\n }\n return contracts;\n};\n";
8
8
  exports.contractsContextTSX = contractsContextTSX;
@@ -58,7 +58,7 @@ var ContractsProviderBundlePlugin = /*#__PURE__*/function (_BuilderPluginBase) {
58
58
  return _context.abrupt("return");
59
59
  case 2:
60
60
  providerInfos = context.getProviderInfos();
61
- if ((_Object$keys = Object.keys(providerInfos)) !== null && _Object$keys !== void 0 && _Object$keys.length) {
61
+ if ((_Object$keys = Object.keys(providerInfos || {})) !== null && _Object$keys !== void 0 && _Object$keys.length) {
62
62
  _context.next = 5;
63
63
  break;
64
64
  }
@@ -63,7 +63,7 @@ var ContractsContextProviderPlugin = /*#__PURE__*/function (_BuilderPluginBase)
63
63
  return _context.abrupt("return");
64
64
  case 2:
65
65
  providerInfo = context.getProviderInfos()[name];
66
- if ((_Object$keys = Object.keys(providerInfo)) !== null && _Object$keys !== void 0 && _Object$keys.length) {
66
+ if ((_Object$keys = Object.keys(providerInfo || {})) !== null && _Object$keys !== void 0 && _Object$keys.length) {
67
67
  _context.next = 5;
68
68
  break;
69
69
  }
@@ -7,7 +7,7 @@ import {
7
7
 
8
8
  import { IContractsContext, getProviders } from './contractContextProviders';
9
9
 
10
- interface ContractsConfig {
10
+ export interface ContractsConfig {
11
11
  address: string | undefined;
12
12
  getCosmWasmClient: () => Promise<CosmWasmClient>;
13
13
  getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;
@@ -22,7 +22,7 @@ export class ContractsProviderBundlePlugin extends BuilderPluginBase {
22
22
  return;
23
23
  }
24
24
  const providerInfos = context.getProviderInfos();
25
- if (!Object.keys(providerInfos)?.length) {
25
+ if (!Object.keys(providerInfos || {})?.length) {
26
26
  return;
27
27
  }
28
28
  const localname = "contractContextProviders.ts";
@@ -21,7 +21,7 @@ export class ContractsContextProviderPlugin extends BuilderPluginBase {
21
21
  return;
22
22
  }
23
23
  const providerInfo = context.getProviderInfos()[name];
24
- if (!Object.keys(providerInfo)?.length) {
24
+ if (!Object.keys(providerInfo || {})?.length) {
25
25
  return;
26
26
  }
27
27
  context.addUtil("ContractBase");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmwasm/ts-codegen",
3
- "version": "0.35.1",
3
+ "version": "0.35.3",
4
4
  "description": "@cosmwasm/ts-codegen converts your CosmWasm smart contracts into dev-friendly TypeScript classes so you can focus on shipping code.",
5
5
  "author": "Dan Lynch <pyramation@gmail.com>",
6
6
  "homepage": "https://github.com/cosmwasm/ts-codegen",
@@ -96,7 +96,7 @@
96
96
  "parse-package-name": "1.0.0",
97
97
  "rimraf": "3.0.2",
98
98
  "shelljs": "0.8.5",
99
- "wasm-ast-types": "^0.26.1"
99
+ "wasm-ast-types": "^0.26.2"
100
100
  },
101
- "gitHead": "0cad0afb48264cc726c06a6ff7a1453e7cabb4b5"
101
+ "gitHead": "0d12e6ff8339a16ab021c172fc91a31d95fb2c66"
102
102
  }
@@ -7,7 +7,7 @@ import {
7
7
 
8
8
  import { IContractsContext, getProviders } from './contractContextProviders';
9
9
 
10
- interface ContractsConfig {
10
+ export interface ContractsConfig {
11
11
  address: string | undefined;
12
12
  getCosmWasmClient: () => Promise<CosmWasmClient>;
13
13
  getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;
@@ -42,7 +42,7 @@ export class ContractsProviderBundlePlugin extends BuilderPluginBase<TSBuilderOp
42
42
 
43
43
  const providerInfos = context.getProviderInfos();
44
44
 
45
- if (!Object.keys(providerInfos)?.length) {
45
+ if (!Object.keys(providerInfos || {})?.length) {
46
46
  return;
47
47
  }
48
48
 
@@ -45,7 +45,7 @@ export class ContractsContextProviderPlugin extends BuilderPluginBase<TSBuilderO
45
45
 
46
46
  const providerInfo = context.getProviderInfos()[name];
47
47
 
48
- if (!Object.keys(providerInfo)?.length) {
48
+ if (!Object.keys(providerInfo || {})?.length) {
49
49
  return;
50
50
  }
51
51
 
@@ -15,7 +15,7 @@ export interface BundleOptions {
15
15
  export interface UseContractsOptions {
16
16
  enabled?: boolean;
17
17
  }
18
- export type TSBuilderOptions = {
18
+ export declare type TSBuilderOptions = {
19
19
  bundle?: BundleOptions;
20
20
  /**
21
21
  * Enable using shorthand constructor.
@@ -24,7 +24,7 @@ export type TSBuilderOptions = {
24
24
  useShorthandCtor?: boolean;
25
25
  useContractsHooks?: UseContractsOptions;
26
26
  } & RenderOptions;
27
- export type BuilderFileType = 'type' | 'client' | 'recoil' | 'react-query' | 'message-composer' | 'message-builder' | 'plugin';
27
+ export declare type BuilderFileType = 'type' | 'client' | 'recoil' | 'react-query' | 'message-composer' | 'message-builder' | 'plugin';
28
28
  export interface BuilderFile {
29
29
  type: BuilderFileType;
30
30
  pluginType?: string;
@@ -1 +1 @@
1
- export declare const contractsContextTSX = "\nimport React, { useEffect, useMemo, useRef, useState, useContext } from 'react';\nimport {\n CosmWasmClient,\n SigningCosmWasmClient,\n} from '@cosmjs/cosmwasm-stargate';\n\nimport { IContractsContext, getProviders } from './contractContextProviders';\n\ninterface ContractsConfig {\n address: string | undefined;\n getCosmWasmClient: () => Promise<CosmWasmClient>;\n getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;\n}\n\nconst ContractsContext = React.createContext<IContractsContext | null>(null);\n\nexport const ContractsProvider = ({\n children,\n contractsConfig,\n}: {\n children: React.ReactNode;\n contractsConfig: ContractsConfig;\n}) => {\n const [cosmWasmClient, setCosmWasmClient] = useState<CosmWasmClient>();\n const [signingCosmWasmClient, setSigningCosmWasmClient] =\n useState<SigningCosmWasmClient>();\n\n const { address, getCosmWasmClient, getSigningCosmWasmClient } =\n contractsConfig;\n\n const prevAddressRef = useRef<string | undefined>(address);\n\n const contracts: IContractsContext = useMemo(() => {\n return getProviders(address, cosmWasmClient, signingCosmWasmClient);\n }, [address, cosmWasmClient, signingCosmWasmClient]);\n\n useEffect(() => {\n const connectSigningCwClient = async () => {\n if (address && prevAddressRef.current !== address) {\n const signingCosmWasmClient = await getSigningCosmWasmClient();\n setSigningCosmWasmClient(signingCosmWasmClient);\n } else if (!address) {\n setSigningCosmWasmClient(undefined);\n }\n prevAddressRef.current = address;\n };\n connectSigningCwClient();\n }, [address, getSigningCosmWasmClient]);\n\n useEffect(() => {\n const connectCosmWasmClient = async () => {\n const cosmWasmClient = await getCosmWasmClient();\n setCosmWasmClient(cosmWasmClient);\n };\n connectCosmWasmClient();\n }, [getCosmWasmClient]);\n\n return (\n <ContractsContext.Provider value={contracts}>\n {children}\n </ContractsContext.Provider>\n );\n};\n\nexport const useContracts = () => {\n const contracts: IContractsContext = useContext(ContractsContext);\n if (contracts === null) {\n throw new Error('useContracts must be used within a ContractsProvider');\n }\n return contracts;\n};\n";
1
+ export declare const contractsContextTSX = "\nimport React, { useEffect, useMemo, useRef, useState, useContext } from 'react';\nimport {\n CosmWasmClient,\n SigningCosmWasmClient,\n} from '@cosmjs/cosmwasm-stargate';\n\nimport { IContractsContext, getProviders } from './contractContextProviders';\n\nexport interface ContractsConfig {\n address: string | undefined;\n getCosmWasmClient: () => Promise<CosmWasmClient>;\n getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;\n}\n\nconst ContractsContext = React.createContext<IContractsContext | null>(null);\n\nexport const ContractsProvider = ({\n children,\n contractsConfig,\n}: {\n children: React.ReactNode;\n contractsConfig: ContractsConfig;\n}) => {\n const [cosmWasmClient, setCosmWasmClient] = useState<CosmWasmClient>();\n const [signingCosmWasmClient, setSigningCosmWasmClient] =\n useState<SigningCosmWasmClient>();\n\n const { address, getCosmWasmClient, getSigningCosmWasmClient } =\n contractsConfig;\n\n const prevAddressRef = useRef<string | undefined>(address);\n\n const contracts: IContractsContext = useMemo(() => {\n return getProviders(address, cosmWasmClient, signingCosmWasmClient);\n }, [address, cosmWasmClient, signingCosmWasmClient]);\n\n useEffect(() => {\n const connectSigningCwClient = async () => {\n if (address && prevAddressRef.current !== address) {\n const signingCosmWasmClient = await getSigningCosmWasmClient();\n setSigningCosmWasmClient(signingCosmWasmClient);\n } else if (!address) {\n setSigningCosmWasmClient(undefined);\n }\n prevAddressRef.current = address;\n };\n connectSigningCwClient();\n }, [address, getSigningCosmWasmClient]);\n\n useEffect(() => {\n const connectCosmWasmClient = async () => {\n const cosmWasmClient = await getCosmWasmClient();\n setCosmWasmClient(cosmWasmClient);\n };\n connectCosmWasmClient();\n }, [getCosmWasmClient]);\n\n return (\n <ContractsContext.Provider value={contracts}>\n {children}\n </ContractsContext.Provider>\n );\n};\n\nexport const useContracts = () => {\n const contracts: IContractsContext = useContext(ContractsContext);\n if (contracts === null) {\n throw new Error('useContracts must be used within a ContractsProvider');\n }\n return contracts;\n};\n";