@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 +9 -5
- package/main/helpers/contractsContextTSX.js +1 -1
- package/main/plugins/provider-bundle.js +1 -1
- package/main/plugins/provider.js +1 -1
- package/module/helpers/contractsContextTSX.js +1 -1
- package/module/plugins/provider-bundle.js +1 -1
- package/module/plugins/provider.js +1 -1
- package/package.json +3 -3
- package/src/helpers/contractsContextTSX.ts +1 -1
- package/src/plugins/provider-bundle.ts +1 -1
- package/src/plugins/provider.ts +1 -1
- package/types/src/builder/builder.d.ts +2 -2
- package/types/src/helpers/contractsContextTSX.d.ts +1 -1
package/README.md
CHANGED
@@ -317,16 +317,20 @@ export default function YourComponent() {
|
|
317
317
|
};
|
318
318
|
```
|
319
319
|
|
320
|
-
|
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
|
-
|
325
|
-
|
326
|
-
|
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\
|
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
|
}
|
package/main/plugins/provider.js
CHANGED
@@ -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.
|
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.
|
99
|
+
"wasm-ast-types": "^0.26.2"
|
100
100
|
},
|
101
|
-
"gitHead": "
|
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>;
|
package/src/plugins/provider.ts
CHANGED
@@ -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\
|
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";
|