@cosmwasm/ts-codegen 0.30.0 → 0.31.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +5 -2
- package/main/builder/builder.js +41 -4
- package/main/generators/create-helpers.js +38 -0
- package/main/helpers/contractContextBase.js +8 -0
- package/main/helpers/contractsContextTSX.js +8 -0
- package/main/helpers/index.js +31 -0
- package/main/plugins/client.js +11 -6
- package/main/plugins/message-composer.js +10 -6
- package/main/plugins/msg-builder.js +1 -1
- package/main/plugins/plugin-base.js +9 -2
- package/main/plugins/provider-bundle.js +146 -0
- package/main/plugins/provider.js +170 -0
- package/main/plugins/react-query.js +1 -1
- package/main/plugins/recoil.js +1 -1
- package/main/plugins/types.js +1 -1
- package/main/utils/files.js +77 -0
- package/main/utils/schemas.js +1 -2
- package/main/utils/unused.js +68 -0
- package/module/builder/builder.js +28 -2
- package/module/generators/create-helpers.js +25 -0
- package/module/helpers/contractContextBase.js +92 -0
- package/module/helpers/contractsContextTSX.js +73 -0
- package/module/helpers/index.js +2 -0
- package/module/plugins/client.js +13 -10
- package/module/plugins/message-composer.js +12 -10
- package/module/plugins/msg-builder.js +1 -1
- package/module/plugins/plugin-base.js +15 -8
- package/module/plugins/provider-bundle.js +65 -0
- package/module/plugins/provider.js +81 -0
- package/module/plugins/react-query.js +1 -1
- package/module/plugins/recoil.js +1 -1
- package/module/plugins/types.js +1 -1
- package/module/utils/files.js +44 -0
- package/module/utils/schemas.js +1 -2
- package/module/utils/unused.js +45 -0
- package/package.json +3 -3
- package/src/builder/builder.ts +36 -1
- package/src/generators/create-helpers.ts +28 -0
- package/src/helpers/contractContextBase.ts +92 -0
- package/src/helpers/contractsContextTSX.ts +73 -0
- package/src/helpers/index.ts +2 -0
- package/src/plugins/client.ts +30 -14
- package/src/plugins/message-composer.ts +23 -14
- package/src/plugins/msg-builder.ts +1 -1
- package/src/plugins/plugin-base.ts +30 -20
- package/src/plugins/provider-bundle.ts +97 -0
- package/src/plugins/provider.ts +114 -0
- package/src/plugins/react-query.ts +1 -1
- package/src/plugins/recoil.ts +1 -1
- package/src/plugins/types.ts +1 -1
- package/src/utils/files.ts +73 -0
- package/src/utils/schemas.ts +1 -3
- package/src/utils/unused.ts +52 -0
- package/types/src/builder/builder.d.ts +7 -1
- package/types/src/generators/create-helpers.d.ts +3 -0
- package/types/src/helpers/contractContextBase.d.ts +1 -0
- package/types/src/helpers/contractsContextTSX.d.ts +1 -0
- package/types/src/helpers/index.d.ts +2 -0
- package/types/src/plugins/client.d.ts +4 -3
- package/types/src/plugins/message-composer.d.ts +4 -3
- package/types/src/plugins/plugin-base.d.ts +7 -3
- package/types/src/plugins/provider-bundle.d.ts +13 -0
- package/types/src/plugins/provider.d.ts +15 -0
- package/types/src/plugins/use-contracts.d.ts +12 -0
- package/types/src/utils/files.d.ts +3 -0
- package/types/src/utils/unused.d.ts +5 -0
package/README.md
CHANGED
@@ -507,8 +507,11 @@ See the [docs](https://github.com/CosmWasm/ts-codegen/blob/main/packages/wasm-as
|
|
507
507
|
Checkout these related projects:
|
508
508
|
|
509
509
|
* [@osmonauts/telescope](https://github.com/osmosis-labs/telescope) a "babel for the Cosmos", Telescope is a TypeScript Transpiler for Cosmos Protobufs.
|
510
|
-
* [chain-registry](https://github.com/cosmology-tech/chain-registry)
|
511
|
-
* [cosmos-kit](https://github.com/cosmology-tech/cosmos-kit) A wallet connector for the Cosmos
|
510
|
+
* [chain-registry](https://github.com/cosmology-tech/chain-registry) an npm module for the official Cosmos chain-registry.
|
511
|
+
* [cosmos-kit](https://github.com/cosmology-tech/cosmos-kit) A wallet connector for the Cosmos ⚛️
|
512
|
+
* [create-cosmos-app](https://github.com/cosmology-tech/create-cosmos-app) set up a modern Cosmos app by running one command.
|
513
|
+
* [starship](https://github.com/cosmology-tech/starship) a k8s-based unified development environment for Cosmos Ecosystem
|
514
|
+
|
512
515
|
## Credits
|
513
516
|
|
514
517
|
🛠 Built by Cosmology — if you like our tools, please consider delegating to [our validator ⚛️](https://cosmology.tech/validator)
|
package/main/builder/builder.js
CHANGED
@@ -55,6 +55,12 @@ var _client = require("../plugins/client");
|
|
55
55
|
|
56
56
|
var _types2 = require("../plugins/types");
|
57
57
|
|
58
|
+
var _provider = require("../plugins/provider");
|
59
|
+
|
60
|
+
var _createHelpers = require("../generators/create-helpers");
|
61
|
+
|
62
|
+
var _providerBundle = require("../plugins/provider-bundle");
|
63
|
+
|
58
64
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
59
65
|
|
60
66
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
@@ -75,6 +81,7 @@ var defaultOpts = {
|
|
75
81
|
;
|
76
82
|
;
|
77
83
|
;
|
84
|
+
;
|
78
85
|
|
79
86
|
function getContract(contractOpt) {
|
80
87
|
if (typeof contractOpt === 'string') {
|
@@ -94,6 +101,8 @@ function getContract(contractOpt) {
|
|
94
101
|
|
95
102
|
var TSBuilder = /*#__PURE__*/function () {
|
96
103
|
function TSBuilder(_ref) {
|
104
|
+
var _this = this;
|
105
|
+
|
97
106
|
var contracts = _ref.contracts,
|
98
107
|
outPath = _ref.outPath,
|
99
108
|
options = _ref.options,
|
@@ -103,6 +112,7 @@ var TSBuilder = /*#__PURE__*/function () {
|
|
103
112
|
(0, _defineProperty2["default"])(this, "outPath", void 0);
|
104
113
|
(0, _defineProperty2["default"])(this, "options", void 0);
|
105
114
|
(0, _defineProperty2["default"])(this, "plugins", []);
|
115
|
+
(0, _defineProperty2["default"])(this, "builderContext", new _wasmAstTypes.BuilderContext());
|
106
116
|
(0, _defineProperty2["default"])(this, "files", []);
|
107
117
|
this.contracts = contracts;
|
108
118
|
this.outPath = outPath;
|
@@ -112,12 +122,16 @@ var TSBuilder = /*#__PURE__*/function () {
|
|
112
122
|
if (plugins && plugins.length) {
|
113
123
|
[].push.apply(this.plugins, plugins);
|
114
124
|
}
|
125
|
+
|
126
|
+
this.plugins.forEach(function (plugin) {
|
127
|
+
return plugin.setBuilder(_this);
|
128
|
+
});
|
115
129
|
}
|
116
130
|
|
117
131
|
(0, _createClass2["default"])(TSBuilder, [{
|
118
132
|
key: "loadDefaultPlugins",
|
119
133
|
value: function loadDefaultPlugins() {
|
120
|
-
[].push.apply(this.plugins, [new _types2.TypesPlugin(this.options), new _client.ClientPlugin(this.options), new _messageComposer.MessageComposerPlugin(this.options), new _reactQuery.ReactQueryPlugin(this.options), new _recoil.RecoilPlugin(this.options), new _msgBuilder.MsgBuilderPlugin(this.options)]);
|
134
|
+
[].push.apply(this.plugins, [new _types2.TypesPlugin(this.options), new _client.ClientPlugin(this.options), new _messageComposer.MessageComposerPlugin(this.options), new _reactQuery.ReactQueryPlugin(this.options), new _recoil.RecoilPlugin(this.options), new _msgBuilder.MsgBuilderPlugin(this.options), new _provider.ContractsContextProviderPlugin(this.options)]);
|
121
135
|
}
|
122
136
|
}, {
|
123
137
|
key: "build",
|
@@ -289,15 +303,38 @@ var TSBuilder = /*#__PURE__*/function () {
|
|
289
303
|
key: "after",
|
290
304
|
value: function () {
|
291
305
|
var _after = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
306
|
+
var contractsProviderBundlePlugin, files;
|
292
307
|
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
293
308
|
while (1) {
|
294
309
|
switch (_context4.prev = _context4.next) {
|
295
310
|
case 0:
|
296
311
|
if (this.options.bundle.enabled) {
|
297
312
|
this.bundle();
|
313
|
+
} //create useContracts bundle file
|
314
|
+
|
315
|
+
|
316
|
+
contractsProviderBundlePlugin = new _providerBundle.ContractsProviderBundlePlugin(this.options);
|
317
|
+
contractsProviderBundlePlugin.setBuilder(this);
|
318
|
+
_context4.next = 5;
|
319
|
+
return contractsProviderBundlePlugin.render("", {
|
320
|
+
schemas: []
|
321
|
+
}, this.outPath);
|
322
|
+
|
323
|
+
case 5:
|
324
|
+
files = _context4.sent;
|
325
|
+
|
326
|
+
if (files && files.length) {
|
327
|
+
[].push.apply(this.files, files);
|
298
328
|
}
|
299
329
|
|
300
|
-
|
330
|
+
(0, _createHelpers.createHelpers)({
|
331
|
+
outPath: this.outPath,
|
332
|
+
contracts: this.contracts,
|
333
|
+
options: this.options,
|
334
|
+
plugins: this.plugins
|
335
|
+
}, this.builderContext);
|
336
|
+
|
337
|
+
case 8:
|
301
338
|
case "end":
|
302
339
|
return _context4.stop();
|
303
340
|
}
|
@@ -318,7 +355,7 @@ var TSBuilder = /*#__PURE__*/function () {
|
|
318
355
|
var _this$options$bundle$,
|
319
356
|
_this$options,
|
320
357
|
_this$options$bundle,
|
321
|
-
|
358
|
+
_this2 = this,
|
322
359
|
_this$options2,
|
323
360
|
_this$options2$bundle;
|
324
361
|
|
@@ -334,7 +371,7 @@ var TSBuilder = /*#__PURE__*/function () {
|
|
334
371
|
bundleVariables = {};
|
335
372
|
importPaths = [];
|
336
373
|
allFiles.forEach(function (file) {
|
337
|
-
(0, _bundler.createFileBundle)("".concat(
|
374
|
+
(0, _bundler.createFileBundle)("".concat(_this2.options.bundle.scope, ".").concat(file.contract), file.filename, bundlePath, importPaths, bundleVariables);
|
338
375
|
});
|
339
376
|
ast = (0, _bundler.recursiveModuleBundle)(bundleVariables);
|
340
377
|
code = (0, _generator["default"])(t.program([].concat(importPaths, (0, _toConsumableArray2["default"])(ast)))).code;
|
@@ -0,0 +1,38 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.createHelpers = void 0;
|
9
|
+
|
10
|
+
var _path = require("path");
|
11
|
+
|
12
|
+
var _mkdirp = require("mkdirp");
|
13
|
+
|
14
|
+
var _package = _interopRequireDefault(require("../../package.json"));
|
15
|
+
|
16
|
+
var _files = require("../utils/files");
|
17
|
+
|
18
|
+
var _helpers = require("../helpers");
|
19
|
+
|
20
|
+
var version = process.env.NODE_ENV === "test" ? "latest" : _package["default"].version;
|
21
|
+
var header = "/**\n* This file and any referenced files were automatically generated by ".concat(_package["default"].name, "@").concat(version, "\n* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain\n* and run the transpile command or yarn proto command to regenerate this bundle.\n*/\n\n");
|
22
|
+
|
23
|
+
var write = function write(outPath, file, content) {
|
24
|
+
var outFile = (0, _path.join)(outPath, file);
|
25
|
+
(0, _mkdirp.sync)((0, _path.dirname)(outFile));
|
26
|
+
(0, _files.writeContentToFile)(outPath, header + content, outFile);
|
27
|
+
};
|
28
|
+
|
29
|
+
var createHelpers = function createHelpers(input, builderContext) {
|
30
|
+
var _input$options, _input$options$useCon, _Object$keys;
|
31
|
+
|
32
|
+
if ((_input$options = input.options) !== null && _input$options !== void 0 && (_input$options$useCon = _input$options.useContracts) !== null && _input$options$useCon !== void 0 && _input$options$useCon.enabled && (_Object$keys = Object.keys(builderContext.providers)) !== null && _Object$keys !== void 0 && _Object$keys.length) {
|
33
|
+
write(input.outPath, "contractContextBase.ts", _helpers.contractContextBase);
|
34
|
+
write(input.outPath, "contracts-context.tsx", _helpers.contractsContextTSX);
|
35
|
+
}
|
36
|
+
};
|
37
|
+
|
38
|
+
exports.createHelpers = createHelpers;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.contractContextBase = void 0;
|
7
|
+
var contractContextBase = "\nimport {\n CosmWasmClient,\n SigningCosmWasmClient,\n} from '@cosmjs/cosmwasm-stargate';\n\nexport interface IContractConstructor {\n address: string | undefined;\n cosmWasmClient: CosmWasmClient | undefined;\n signingCosmWasmClient: SigningCosmWasmClient | undefined;\n}\n\nexport const NO_SINGING_ERROR_MESSAGE = 'signingCosmWasmClient not connected';\n\nexport const NO_COSMWASW_CLIENT_ERROR_MESSAGE = 'cosmWasmClient not connected';\n\nexport const NO_ADDRESS_ERROR_MESSAGE = \"address doesn't exist\";\n\nexport const NO_SIGNING_CLIENT_ERROR_MESSAGE =\n 'Signing client is not generated. Please check ts-codegen config';\n\nexport const NO_QUERY_CLIENT_ERROR_MESSAGE =\n 'Query client is not generated. Please check ts-codegen config';\n\nexport const NO_MESSAGE_COMPOSER_ERROR_MESSAGE =\n 'Message composer client is not generated. Please check ts-codegen config';\n\n/**\n * a placeholder for non-generated classes\n */\nexport interface IEmptyClient {}\n\nexport interface ISigningClientProvider<T> {\n getSigningClient(contractAddr: string): T;\n}\n\nexport interface IQueryClientProvider<T> {\n getQueryClient(contractAddr: string): T;\n}\n\nexport interface IMessageComposerProvider<T> {\n getMessageComposer(contractAddr: string): T;\n}\n\nexport class ContractBase<\n TSign = IEmptyClient,\n TQuery = IEmptyClient,\n TMsgComposer = IEmptyClient\n> {\n constructor(\n protected address: string | undefined,\n protected cosmWasmClient: CosmWasmClient | undefined,\n protected signingCosmWasmClient: SigningCosmWasmClient | undefined,\n private TSign?: new (\n client: SigningCosmWasmClient,\n sender: string,\n contractAddress: string\n ) => TSign,\n private TQuery?: new (\n client: CosmWasmClient,\n contractAddress: string\n ) => TQuery,\n private TMsgComposer?: new (\n sender: string,\n contractAddress: string\n ) => TMsgComposer\n ) {}\n\n public getSigningClient(contractAddr: string): TSign {\n if (!this.signingCosmWasmClient) throw new Error(NO_SINGING_ERROR_MESSAGE);\n if (!this.address) throw new Error(NO_ADDRESS_ERROR_MESSAGE);\n if (!this.TSign) throw new Error(NO_SIGNING_CLIENT_ERROR_MESSAGE);\n return new this.TSign(\n this.signingCosmWasmClient,\n this.address,\n contractAddr\n );\n }\n\n public getQueryClient(contractAddr: string): TQuery {\n if (!this.cosmWasmClient) throw new Error(NO_COSMWASW_CLIENT_ERROR_MESSAGE);\n if (!this.TQuery) throw new Error(NO_QUERY_CLIENT_ERROR_MESSAGE);\n return new this.TQuery(this.cosmWasmClient, contractAddr);\n }\n\n public getMessageComposer(contractAddr: string): TMsgComposer {\n if (!this.address) throw new Error(NO_ADDRESS_ERROR_MESSAGE);\n if (!this.TMsgComposer) throw new Error(NO_MESSAGE_COMPOSER_ERROR_MESSAGE);\n return new this.TMsgComposer(this.address, contractAddr);\n }\n}\n";
|
8
|
+
exports.contractContextBase = contractContextBase;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
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 = useContext(ContractsContext);\n if (contracts === null) {\n throw new Error('useContracts must be used within a ContractsProvider');\n }\n return contracts;\n};\n";
|
8
|
+
exports.contractsContextTSX = contractsContextTSX;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
|
7
|
+
var _contractContextBase = require("./contractContextBase");
|
8
|
+
|
9
|
+
Object.keys(_contractContextBase).forEach(function (key) {
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
11
|
+
if (key in exports && exports[key] === _contractContextBase[key]) return;
|
12
|
+
Object.defineProperty(exports, key, {
|
13
|
+
enumerable: true,
|
14
|
+
get: function get() {
|
15
|
+
return _contractContextBase[key];
|
16
|
+
}
|
17
|
+
});
|
18
|
+
});
|
19
|
+
|
20
|
+
var _contractsContextTSX = require("./contractsContextTSX");
|
21
|
+
|
22
|
+
Object.keys(_contractsContextTSX).forEach(function (key) {
|
23
|
+
if (key === "default" || key === "__esModule") return;
|
24
|
+
if (key in exports && exports[key] === _contractsContextTSX[key]) return;
|
25
|
+
Object.defineProperty(exports, key, {
|
26
|
+
enumerable: true,
|
27
|
+
get: function get() {
|
28
|
+
return _contractsContextTSX[key];
|
29
|
+
}
|
30
|
+
});
|
31
|
+
});
|
package/main/plugins/client.js
CHANGED
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
8
8
|
value: true
|
9
9
|
});
|
10
|
-
exports.ClientPlugin = void 0;
|
10
|
+
exports.TYPE = exports.ClientPlugin = void 0;
|
11
11
|
|
12
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
13
13
|
|
@@ -39,6 +39,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
39
39
|
|
40
40
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
41
41
|
|
42
|
+
var TYPE = "client";
|
43
|
+
exports.TYPE = TYPE;
|
44
|
+
|
42
45
|
var ClientPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
43
46
|
(0, _inherits2["default"])(ClientPlugin, _BuilderPluginBase);
|
44
47
|
|
@@ -52,7 +55,7 @@ var ClientPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
|
52
55
|
(0, _createClass2["default"])(ClientPlugin, [{
|
53
56
|
key: "initContext",
|
54
57
|
value: function initContext(contract, options) {
|
55
|
-
return new w.RenderContext(contract, options);
|
58
|
+
return new w.RenderContext(contract, options, this.builder.builderContext);
|
56
59
|
}
|
57
60
|
}, {
|
58
61
|
key: "doRender",
|
@@ -74,8 +77,8 @@ var ClientPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
|
74
77
|
|
75
78
|
case 3:
|
76
79
|
schemas = context.contract.schemas;
|
77
|
-
localname = (0, _case.pascal)(name) +
|
78
|
-
TypesFile = (0, _case.pascal)(name) +
|
80
|
+
localname = (0, _case.pascal)(name) + ".client.ts";
|
81
|
+
TypesFile = (0, _case.pascal)(name) + ".types";
|
79
82
|
QueryMsg = (0, _utils.findQueryMsg)(schemas);
|
80
83
|
ExecuteMsg = (0, _utils.findExecuteMsg)(schemas);
|
81
84
|
_context.next = 10;
|
@@ -95,6 +98,7 @@ var ClientPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
|
95
98
|
ReadOnlyInstance = (0, _case.pascal)("".concat(name, "ReadOnlyInterface"));
|
96
99
|
body.push(w.createQueryInterface(context, ReadOnlyInstance, QueryMsg));
|
97
100
|
body.push(w.createQueryClass(context, QueryClient, ReadOnlyInstance, QueryMsg));
|
101
|
+
context.addProviderInfo(name, w.PROVIDER_TYPES.QUERY_CLIENT_TYPE, QueryClient, localname);
|
98
102
|
} // execute messages
|
99
103
|
|
100
104
|
|
@@ -106,16 +110,17 @@ var ClientPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
|
106
110
|
Instance = (0, _case.pascal)("".concat(name, "Interface"));
|
107
111
|
body.push(w.createExecuteInterface(context, Instance, this.option.client.execExtendsQuery ? ReadOnlyInstance : null, ExecuteMsg));
|
108
112
|
body.push(w.createExecuteClass(context, Client, Instance, this.option.client.execExtendsQuery ? QueryClient : null, ExecuteMsg));
|
113
|
+
context.addProviderInfo(name, w.PROVIDER_TYPES.SIGNING_CLIENT_TYPE, Client, localname);
|
109
114
|
}
|
110
115
|
}
|
111
116
|
|
112
|
-
if (typeHash.hasOwnProperty(
|
117
|
+
if (typeHash.hasOwnProperty("Coin")) {
|
113
118
|
// @ts-ignore
|
114
119
|
delete context.utils.Coin;
|
115
120
|
}
|
116
121
|
|
117
122
|
return _context.abrupt("return", [{
|
118
|
-
type:
|
123
|
+
type: TYPE,
|
119
124
|
localname: localname,
|
120
125
|
body: body
|
121
126
|
}]);
|
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
8
8
|
value: true
|
9
9
|
});
|
10
|
-
exports.MessageComposerPlugin = void 0;
|
10
|
+
exports.TYPE = exports.MessageComposerPlugin = void 0;
|
11
11
|
|
12
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
13
13
|
|
@@ -39,6 +39,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
39
39
|
|
40
40
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
41
41
|
|
42
|
+
var TYPE = "message-composer";
|
43
|
+
exports.TYPE = TYPE;
|
44
|
+
|
42
45
|
var MessageComposerPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
43
46
|
(0, _inherits2["default"])(MessageComposerPlugin, _BuilderPluginBase);
|
44
47
|
|
@@ -52,7 +55,7 @@ var MessageComposerPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
|
52
55
|
(0, _createClass2["default"])(MessageComposerPlugin, [{
|
53
56
|
key: "initContext",
|
54
57
|
value: function initContext(contract, options) {
|
55
|
-
return new w.RenderContext(contract, options);
|
58
|
+
return new w.RenderContext(contract, options, this.builder.builderContext);
|
56
59
|
}
|
57
60
|
}, {
|
58
61
|
key: "doRender",
|
@@ -74,8 +77,8 @@ var MessageComposerPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
|
74
77
|
|
75
78
|
case 3:
|
76
79
|
schemas = context.contract.schemas;
|
77
|
-
localname = (0, _case.pascal)(name) +
|
78
|
-
TypesFile = (0, _case.pascal)(name) +
|
80
|
+
localname = (0, _case.pascal)(name) + ".message-composer.ts";
|
81
|
+
TypesFile = (0, _case.pascal)(name) + ".types";
|
79
82
|
ExecuteMsg = (0, _utils.findExecuteMsg)(schemas);
|
80
83
|
_context.next = 9;
|
81
84
|
return (0, _utils.findAndParseTypes)(schemas);
|
@@ -93,16 +96,17 @@ var MessageComposerPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
|
93
96
|
Interface = (0, _case.pascal)("".concat(name, "Message"));
|
94
97
|
body.push(w.createMessageComposerInterface(context, Interface, ExecuteMsg));
|
95
98
|
body.push(w.createMessageComposerClass(context, TheClass, Interface, ExecuteMsg));
|
99
|
+
context.addProviderInfo(name, w.PROVIDER_TYPES.MESSAGE_COMPOSER_TYPE, TheClass, localname);
|
96
100
|
}
|
97
101
|
}
|
98
102
|
|
99
|
-
if (typeHash.hasOwnProperty(
|
103
|
+
if (typeHash.hasOwnProperty("Coin")) {
|
100
104
|
// @ts-ignore
|
101
105
|
delete context.utils.Coin;
|
102
106
|
}
|
103
107
|
|
104
108
|
return _context.abrupt("return", [{
|
105
|
-
type:
|
109
|
+
type: TYPE,
|
106
110
|
localname: localname,
|
107
111
|
body: body
|
108
112
|
}]);
|
@@ -52,7 +52,7 @@ var MsgBuilderPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
|
52
52
|
(0, _createClass2["default"])(MsgBuilderPlugin, [{
|
53
53
|
key: "initContext",
|
54
54
|
value: function initContext(contract, options) {
|
55
|
-
return new w.RenderContext(contract, options);
|
55
|
+
return new w.RenderContext(contract, options, this.builder.builderContext);
|
56
56
|
}
|
57
57
|
}, {
|
58
58
|
key: "doRender",
|
@@ -41,14 +41,21 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
41
41
|
* BuilderPluginBase enable ts-codegen users implement their own plugins by only implement a few functions.
|
42
42
|
*/
|
43
43
|
var BuilderPluginBase = /*#__PURE__*/function () {
|
44
|
-
function BuilderPluginBase(opt) {
|
44
|
+
function BuilderPluginBase(opt, builder) {
|
45
45
|
(0, _classCallCheck2["default"])(this, BuilderPluginBase);
|
46
|
+
(0, _defineProperty2["default"])(this, "builder", void 0);
|
46
47
|
(0, _defineProperty2["default"])(this, "option", void 0);
|
47
48
|
(0, _defineProperty2["default"])(this, "utils", void 0);
|
48
49
|
this.option = opt;
|
50
|
+
this.builder = builder;
|
49
51
|
}
|
50
52
|
|
51
53
|
(0, _createClass2["default"])(BuilderPluginBase, [{
|
54
|
+
key: "setBuilder",
|
55
|
+
value: function setBuilder(builder) {
|
56
|
+
this.builder = builder;
|
57
|
+
}
|
58
|
+
}, {
|
52
59
|
key: "render",
|
53
60
|
value: function () {
|
54
61
|
var _render = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, contractInfo, outPath) {
|
@@ -85,7 +92,7 @@ var BuilderPluginBase = /*#__PURE__*/function () {
|
|
85
92
|
|
86
93
|
case 9:
|
87
94
|
return _context.abrupt("return", results.map(function (result) {
|
88
|
-
var imports = context.getImports(_this.utils);
|
95
|
+
var imports = context.getImports(_this.utils, result.localname);
|
89
96
|
var code = _header.header + (0, _generator["default"])(t.program([].concat((0, _toConsumableArray2["default"])(imports), (0, _toConsumableArray2["default"])(result.body)))).code;
|
90
97
|
(0, _mkdirp.sync)(outPath);
|
91
98
|
var filename = (0, _path.join)(outPath, result.localname);
|
@@ -0,0 +1,146 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
6
|
+
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
8
|
+
value: true
|
9
|
+
});
|
10
|
+
exports.ContractsProviderBundlePlugin = void 0;
|
11
|
+
|
12
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
13
|
+
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
15
|
+
|
16
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
17
|
+
|
18
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
19
|
+
|
20
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
21
|
+
|
22
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
23
|
+
|
24
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
25
|
+
|
26
|
+
var _case = require("case");
|
27
|
+
|
28
|
+
var w = _interopRequireWildcard(require("wasm-ast-types"));
|
29
|
+
|
30
|
+
var _pluginBase = require("./plugin-base");
|
31
|
+
|
32
|
+
var _provider = require("./provider");
|
33
|
+
|
34
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
35
|
+
|
36
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
37
|
+
|
38
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
39
|
+
|
40
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
41
|
+
|
42
|
+
var ContractsProviderBundlePlugin = /*#__PURE__*/function (_BuilderPluginBase) {
|
43
|
+
(0, _inherits2["default"])(ContractsProviderBundlePlugin, _BuilderPluginBase);
|
44
|
+
|
45
|
+
var _super = _createSuper(ContractsProviderBundlePlugin);
|
46
|
+
|
47
|
+
function ContractsProviderBundlePlugin(opt) {
|
48
|
+
var _this;
|
49
|
+
|
50
|
+
(0, _classCallCheck2["default"])(this, ContractsProviderBundlePlugin);
|
51
|
+
_this = _super.call(this, opt);
|
52
|
+
_this.utils = {
|
53
|
+
CosmWasmClient: "@cosmjs/cosmwasm-stargate",
|
54
|
+
SigningCosmWasmClient: "@cosmjs/cosmwasm-stargate",
|
55
|
+
IQueryClientProvider: "__contractContextBase__",
|
56
|
+
ISigningClientProvider: "__contractContextBase__",
|
57
|
+
IMessageComposerProvider: "__contractContextBase__"
|
58
|
+
};
|
59
|
+
return _this;
|
60
|
+
}
|
61
|
+
|
62
|
+
(0, _createClass2["default"])(ContractsProviderBundlePlugin, [{
|
63
|
+
key: "initContext",
|
64
|
+
value: function initContext(contract, options) {
|
65
|
+
return new w.RenderContext(contract, options, this.builder.builderContext);
|
66
|
+
}
|
67
|
+
}, {
|
68
|
+
key: "doRender",
|
69
|
+
value: function () {
|
70
|
+
var _doRender = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, context) {
|
71
|
+
var _this$option, _this$option$useContr, _Object$keys;
|
72
|
+
|
73
|
+
var providerInfos, localname, body, _name, providerInfo, key, info;
|
74
|
+
|
75
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
76
|
+
while (1) {
|
77
|
+
switch (_context.prev = _context.next) {
|
78
|
+
case 0:
|
79
|
+
if ((_this$option = this.option) !== null && _this$option !== void 0 && (_this$option$useContr = _this$option.useContracts) !== null && _this$option$useContr !== void 0 && _this$option$useContr.enabled) {
|
80
|
+
_context.next = 2;
|
81
|
+
break;
|
82
|
+
}
|
83
|
+
|
84
|
+
return _context.abrupt("return");
|
85
|
+
|
86
|
+
case 2:
|
87
|
+
providerInfos = context.getProviderInfos();
|
88
|
+
|
89
|
+
if ((_Object$keys = Object.keys(providerInfos)) !== null && _Object$keys !== void 0 && _Object$keys.length) {
|
90
|
+
_context.next = 5;
|
91
|
+
break;
|
92
|
+
}
|
93
|
+
|
94
|
+
return _context.abrupt("return");
|
95
|
+
|
96
|
+
case 5:
|
97
|
+
localname = "contractContextProviders.ts";
|
98
|
+
body = [];
|
99
|
+
context.addUtil("CosmWasmClient");
|
100
|
+
context.addUtil("SigningCosmWasmClient");
|
101
|
+
context.addUtil("IQueryClientProvider");
|
102
|
+
context.addUtil("ISigningClientProvider");
|
103
|
+
context.addUtil("IMessageComposerProvider");
|
104
|
+
|
105
|
+
for (_name in providerInfos) {
|
106
|
+
if (Object.prototype.hasOwnProperty.call(providerInfos, _name)) {
|
107
|
+
providerInfo = providerInfos[_name];
|
108
|
+
|
109
|
+
for (key in providerInfo) {
|
110
|
+
if (Object.prototype.hasOwnProperty.call(providerInfo, key)) {
|
111
|
+
info = providerInfo[key];
|
112
|
+
body.push(w.importStmt([info.classname], "./".concat(info.basename)));
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
body.push(w.importStmt([(0, _case.pascal)(_name)], "./".concat((0, _provider.GetLocalBaseNameByContractName)(_name))));
|
117
|
+
}
|
118
|
+
}
|
119
|
+
|
120
|
+
body.push(w.createIContractsContext(providerInfos));
|
121
|
+
body.push(w.createGettingProviders(providerInfos));
|
122
|
+
return _context.abrupt("return", [{
|
123
|
+
type: "plugin",
|
124
|
+
localname: localname,
|
125
|
+
body: body
|
126
|
+
}]);
|
127
|
+
|
128
|
+
case 16:
|
129
|
+
case "end":
|
130
|
+
return _context.stop();
|
131
|
+
}
|
132
|
+
}
|
133
|
+
}, _callee, this);
|
134
|
+
}));
|
135
|
+
|
136
|
+
function doRender(_x, _x2) {
|
137
|
+
return _doRender.apply(this, arguments);
|
138
|
+
}
|
139
|
+
|
140
|
+
return doRender;
|
141
|
+
}()
|
142
|
+
}]);
|
143
|
+
return ContractsProviderBundlePlugin;
|
144
|
+
}(_pluginBase.BuilderPluginBase);
|
145
|
+
|
146
|
+
exports.ContractsProviderBundlePlugin = ContractsProviderBundlePlugin;
|