dequanto 0.1.25 → 0.1.27

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.
@@ -1,9 +1,12 @@
1
+ import alot from 'alot';
1
2
  import { $contract } from '../../../utils/$contract.mjs';
2
3
  import { $require } from '../../../utils/$require.mjs';
3
4
  import { $address } from '../../../utils/$address.mjs';
4
5
  import { $logger, l } from '../../../utils/$logger.mjs';
5
6
  import { ContractWriter } from '../../ContractWriter.mjs';
6
7
  import { $proxyDeploy } from './$proxyDeploy.mjs';
8
+ import { File } from 'atma-io';
9
+ import { HardhatProvider } from '../../../hardhat/HardhatProvider.mjs';
7
10
  // Supports OpenZeppelin proxy deployments
8
11
  export class ProxyDeployment {
9
12
  constructor(store, opts) {
@@ -28,6 +31,11 @@ export class ProxyDeployment {
28
31
  let { client } = deployments;
29
32
  let { address: implAddress, initData } = ctx.implementation;
30
33
  let { Proxy, ProxyAdmin, } = ctx.TransparentProxy ?? this.opts.TransparentProxy;
34
+ if (Proxy == null) {
35
+ let internal = await this.getOpenzeppelinUpgradable({ beacon: false, proxy: true });
36
+ Proxy = internal.TransparentUpgradeableProxy;
37
+ ProxyAdmin = internal.ProxyAdmin;
38
+ }
31
39
  $require.notNull(Proxy, 'TransparentProxy.Proxy is required');
32
40
  $require.notNull(ProxyAdmin, 'TransparentProxy.ProxyAdmin is required');
33
41
  let proxyOpts = {
@@ -99,6 +107,68 @@ export class ProxyDeployment {
99
107
  contractProxyAdmin,
100
108
  };
101
109
  }
110
+ async getOpenzeppelinUpgradable(opts) {
111
+ // We can't compile OpenZeppelin's contracts directly from node_modules folder, so create the wrappers
112
+ const baseSource = `./node_modules/@openzeppelin/contracts/proxy`;
113
+ const baseOutput = `./contracts/oz`;
114
+ const deps = {
115
+ TransparentUpgradeableProxy: `@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol`,
116
+ ProxyAdmin: `@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol`,
117
+ Beacon: `@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol`,
118
+ BeaconProxy: `@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol`,
119
+ };
120
+ const paths = {
121
+ TransparentUpgradeableProxy: {
122
+ source: `${baseSource}/transparent/TransparentUpgradeableProxy.sol`,
123
+ output: `${baseOutput}/Proxy.sol`,
124
+ template: `
125
+ import \"${deps.TransparentUpgradeableProxy}\";
126
+ `,
127
+ //install: `TransparentUpgradeableProxy,ProxyAdmin`,
128
+ contracts: [`TransparentUpgradeableProxy`, `ProxyAdmin`]
129
+ },
130
+ Beacon: {
131
+ source: `${baseSource}/beacon/UpgradeableBeacon.sol`,
132
+ output: `${baseOutput}/Beacon.sol`,
133
+ template: `
134
+ import \"${deps.Beacon}\";
135
+ `,
136
+ //install: `UpgradeableBeacon,BeaconProxy`,
137
+ contracts: [`UpgradeableBeacon`, `BeaconProxy`],
138
+ }
139
+ };
140
+ if (opts?.beacon === false) {
141
+ delete paths.Beacon;
142
+ }
143
+ if (opts?.proxy === false) {
144
+ delete paths.TransparentUpgradeableProxy;
145
+ }
146
+ function fmt(template) {
147
+ let match = /^ +/m.exec(template);
148
+ return template.trim().replace(new RegExp(`^${match[0]}`, 'gm'), '');
149
+ }
150
+ let provider = new HardhatProvider();
151
+ let contracts = await alot.fromObject(paths).mapMany(async (entry) => {
152
+ let info = entry.value;
153
+ let code = fmt(info.template);
154
+ if (await File.existsAsync(info.output) === false) {
155
+ await File.writeAsync(info.output, code);
156
+ }
157
+ await provider.compileSol(info.output, {
158
+ tsgen: false,
159
+ });
160
+ return await alot(info.contracts)
161
+ .mapAsync(async (key) => {
162
+ let compilation = await provider.getContractFromSolPath(deps[key]);
163
+ return {
164
+ key: key,
165
+ Ctor: compilation.ContractCtor
166
+ };
167
+ })
168
+ .toArrayAsync();
169
+ }).toArrayAsync({ threads: 1 });
170
+ return alot(contracts).toDictionary(x => x.key, x => x.Ctor);
171
+ }
102
172
  async ensureBeaconInner(ctx) {
103
173
  let { beaconId, beaconProxyId, deployer, deployments, ImplementationContract } = ctx;
104
174
  let { client } = deployments;
@@ -1 +1 @@
1
- {"version":3,"file":"GeneratorFromAbi.js","sourceRoot":"","sources":["../../../src/gen/GeneratorFromAbi.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,qCAAoC;AACpC,2CAAuC;AACvC,uDAAoD;AACpD,iDAA8C;AAC9C,iDAA8C;AAC9C,yDAAsD;AAEtD,qDAAkD;AAClD,qDAAkD;AAClD,qEAAkE;AAElE,qCAAkC;AAClC,uCAAoC;AAKpC,MAAa,gBAAgB;IAEzB,MAAM,KAAK,GAAG;QACV,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAmB,EAAE,IAkBnC;QACG,IAAI,QAAQ,GAAG,iBAAO,CAAC,GAAG,CAAuC,mBAAmB,CAAC,CAAC;QACtF,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC;QACrD,IAAI,gBAAgB,GAAG;YACnB,GAAG,EAAE,IAAI;SACZ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;QAEpB,IAAI,aAAa,GAAG,IAAI,EAAE,aAAa,IAAI,gBAAgB,CAAC;QAE5D,IAAI,UAAU,GAAG,IAAA,cAAI,EAAC,OAAO,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;aAC9D,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACpB,GAAG,CAAC,KAAK,CAAC,EAAE;YACT,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;aACtC;YACD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;gBACzB,OAAO,GAAG,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;aAChD;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;aACf,OAAO,CAAC,GAAG,CAAC,EAAE;YACX,OAAO;gBACH,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACjD,CAAA;QACL,CAAC,CAAC,CAAC;QAGP,IAAI,aAAa,GAAG,IAAA,cAAI,EAAC,OAAO,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;aAClC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACpB,GAAG,CAAC,KAAK,CAAC,EAAE;YACT,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;aACf,OAAO,EAAE,CAAC;QAEf,IAAI,SAAS,GAAG,IAAA,cAAI,EAAC,OAAO,CAAC;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;aAC/B,MAAM,CAAC,OAAO,CAAC;aACf,OAAO,CAAC,GAAG,CAAC,EAAE;YACX,OAAO;gBACH,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACjD,CAAA;QACL,CAAC,CAAC,CAAA;QAEN,IAAI,UAAU,GAAG,IAAA,cAAI,EAAC,OAAO,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;aAC/B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACpB,GAAG,CAAC,KAAK,CAAC,EAAE;YACT,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;aACf,OAAO,EAAE,CAAC;QAGf,uGAAuG;QAEvG,IAAI,mBAAmB,GAAG,IAAA,cAAI,EAAC,OAAO,CAAC;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;aACxC,MAAM,CAAC,OAAO,CAAC;aACf,OAAO,CAAC,GAAG,CAAC,EAAE;YACX,OAAO;gBACH,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACjD,CAAA;QACL,CAAC,CAAC,CAAC;QAEP,IAAI,iBAAiB,GAAG,IAAA,cAAI,EAAC,OAAO,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;aACtC,MAAM,CAAC,OAAO,CAAC;aACf,OAAO,CAAC,GAAG,CAAC,EAAE;YACX,OAAO;gBACH,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACjD,CAAA;QACL,CAAC,CAAC,CAAC;QAEP,gCAAgC;QAChC,uCAAuC;QACvC,gDAAgD;QAChD,uBAAuB;QACvB,8BAA8B;QAE9B,IAAI,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,uBAAuB,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErE,IAAI,cAAc,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtE,IAAI,qBAAqB,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,YAAY,GAAG,aAAK,CAAC,OAAO,CAAC,uCAAwC,gBAAiB,OAAO,CAAC,CAAC;QACnG,IAAI,QAAQ,GAAG,MAAM,cAAI,CAAC,SAAS,CAAS,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,IAAI,eAAe,GAAG,aAAK,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;QACrF,IAAI,WAAW,GAAG,MAAM,cAAI,CAAC,SAAS,CAAS,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAErF,IAAI,YAAY,CAAC;QACjB,IAAI,gBAAgB,CAAC;QACrB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,SAAiB,CAAC;QACtB,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;QAC7D,QAAQ,IAAI,CAAC,OAAO,EAAE;YAClB,KAAK,SAAS;gBACV,YAAY,GAAG,WAAW,CAAC;gBAC3B,gBAAgB,GAAG,mBAAmB,CAAC;gBACvC,OAAO,GAAG;oBACN,8BAA8B,SAAS,sBAAsB;oBAC7D,sCAAsC,SAAS,6BAA6B;iBAC/E,CAAC;gBACF,SAAS,GAAG,EAAE,CAAC;gBACf,MAAM;YACV,OAAO,CAAC,CAAC;gBACL,IAAI,UAAU,GAAG,iBAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrD,IAAI,UAAU,EAAE;oBACZ,YAAY,GAAG,SAAS,CAAC;oBACzB,gBAAgB,GAAG,eAAe,CAAC;oBACnC,OAAO,GAAG;wBACN,4BAA4B,SAAS,oBAAoB;wBACzD,kCAAkC,SAAS,yBAAyB;qBACvE,CAAC;oBACF,iBAAiB,GAAG,gBAAgB,IAAI,CAAC,OAAO,KAAK,CAAC;oBACtD,cAAc,GAAG,gBAAgB,IAAI,CAAC,OAAO,KAAK,CAAC;oBAEnD,SAAS,GAAG,EAAE,CAAC;oBACf,IAAI,OAAO,GAAG,iBAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;oBAC/D,IAAI,OAAO,EAAE,GAAG,EAAE;wBACd,SAAS,GAAG,GAAG,OAAO,CAAC,GAAG,YAAY,IAAI,CAAC,OAAO,OAAO,CAAC;qBAC7D;oBACD,MAAM;iBACT;gBAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,OAAO,iDAAiD,CAAC,CAAC;aACrG;SACJ;QAGD,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,UAAU,GAAG,aAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,MAAM;YACb,CAAC,CAAC,sBAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,IAAI,aAAa,EAAE,CAAC,CAAC;QAE5F,IAAI,IAAI,GAAG;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACnB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACrC,CAAC,CAAC,KAAK,CAAC;YACZ,MAAM,EAAE,IAAI,CAAC,UAAU;gBACnB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;gBACvC,CAAC,CAAC,KAAK,CAAC;YACZ,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;SAC1C,CAAC;QACF,IAAI,YAAY,GAAG,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAG9D,IAAI,wBAAwB,GAAG,EAAE,CAAC;QAClC,IAAI,qBAAqB,GAAG,EAAE,CAAC;QAC/B,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,yBAAyB,GAAG,EAAE,CAAC;QACnC,IAAI;YACA,IAAI,sBAAsB,GAAG,IAAI,+CAAsB,EAAE,CAAC;YAC1D,IAAI,MAAM,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAE1F,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;gBACnD,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;aACvD;YACD,IAAI,MAAM,CAAC,SAAS,EAAE;gBAClB,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC;gBACjC,yBAAyB,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzC,qBAAqB,GAAG,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,oBAAoB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChG,wBAAwB,GAAG,sBAAsB,MAAM,CAAC,SAAS,6CAA6C,CAAC;gBAC/G,iBAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;aACrD;iBAAM;gBACH,iBAAO,CAAC,GAAG,CAAC,4CAA4C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;aACpF;SACJ;QAAC,OAAO,KAAK,EAAE;YACZ,iBAAO,CAAC,KAAK,CAAC,+CAA+C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACjF;QAED,IAAI,SAAS,GAAG,WAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,IAAI,GAAG,QAAQ;aACd,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC;aACvC,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;aAC/C,OAAO,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;aACpD,OAAO,CAAC,qBAAqB,EAAE,cAAc,CAAC;aAE9C,OAAO,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,SAAG,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;aACtE,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClD,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACtE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC;aAC/B,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;aACjE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC;aACjC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;aAC/B,OAAO,CAAC,yBAAyB,EAAE,gBAAgB,CAAC;aACpD,OAAO,CAAC,uBAAuB,EAAE,cAAc,CAAC;aAChD,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;aAC/C,OAAO,CAAC,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAC;aAC/D,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC;YACrC,oHAAoH;aAEnH,OAAO,CAAC,kCAAkC,EAAE,wBAAwB,CAAC;aACrE,OAAO,CAAC,+BAA+B,EAAE,qBAAqB,CAAC;aAC/D,OAAO,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC;aAC/D,OAAO,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC;aAC5G,OAAO,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC;aAGxG,OAAO,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,SAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;aACpG,OAAO,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,SAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAExG;QAEL,IAAI,OAAO,GAAG,WAAW;aAEpB,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClD,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACtE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC;aAC/B,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;aACjE,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC;aACxC,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC;aACtC,OAAO,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;aAC3D,OAAO,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;aACvD,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;aAC/C,OAAO,CAAC,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAC;aAC/D,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC;YACrC,oHAAoH;aAEnH,OAAO,CAAC,kCAAkC,EAAE,wBAAwB,CAAC;aACrE,OAAO,CAAC,+BAA+B,EAAE,qBAAqB,CAAC;aAC/D,OAAO,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC;aACtE,OAAO,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC;aAC5G,OAAO,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC;aAGxG,OAAO,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,SAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;aACpG,OAAO,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,SAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CACxG;QAGL,MAAM,cAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAI,gBAAgB,KAAK,IAAI,EAAE;YAC3B,IAAI,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM,cAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SACtE;QAGD,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,IAAI,GAAG,sBAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,UAAU,CAAC,CAAC;YACxF,MAAM,cAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACxC;QAED,iBAAO,CAAC,GAAG,CAAC,cAAc,SAAS,sCAAsC,UAAU,GAAG,CAAC,CAAC;QAExF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;YACvC,WAAW,GAAG,MAAM,cAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBAChE,IAAI,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAI,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;gBAC3B,IAAI,GAAG,GAAG,aAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;gBAClD,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBAC1C,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACrD;gBACD,6DAA6D;gBAC7D,oCAAoC;gBACpC,qDAAqD;gBACrD,mDAAmD;gBACnD,IAAI;gBACJ,IAAI,IAAI,GAAG,sBAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;gBACvF,MAAM,cAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEtE,iBAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;gBAC1C,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;SACrB;QACD,OAAO;YACH,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC;IACN,CAAC;IAGO,eAAe,CAAC,IAAY;QAChC,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,OAAO,IAAI,CAAC;SACf;QACD,IAAI,GAAG,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE;YAClB,OAAO,IAAI,CAAC;SACf;QACD,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACrD,CAAC;CACJ;AApVD,4CAoVC;AAGD,IAAU,GAAG,CA+fZ;AA/fD,WAAU,GAAG;IAET,SAAgB,iBAAiB,CAAC,GAAa;QAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE;YAC5B,OAAO,4BAA4B,CAAC,GAAG,CAAC,CAAC;SAC5C;QACD,IAAI,MAAM,GAAG,qBAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,MAAM,EAAE;YACR,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;SACrC;QACD,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IATe,qBAAiB,oBAShC,CAAA;IACD,SAAgB,0BAA0B,CAAC,IAAgB;QACvD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,qBAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,EAAE;YACR,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC;SAC/C;QACD,OAAO,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IANe,8BAA0B,6BAMzC,CAAA;IAED,yCAAyC;IACzC,SAAgB,2BAA2B,CAAC,IAAY,EAAE,IAAgB;QACtE,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,EAAE,uBAAuB,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC5D,OAAO,KAAK,uBAAuB,CAAC,EAAE,IAAI,CAAC;QAC/C,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEf,IAAI,KAAK,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,IAAI,IAAI,GAAG;YACP,aAAa,KAAK,IAAI;YACtB,cAAc,IAAI,GAAG;YACrB,gBAAgB,IAAI,EAAE;YACtB,GAAG;SACN,CAAC;QACF,OAAO;YACH,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,CAAC;IACN,CAAC;IAlBe,+BAA2B,8BAkB1C,CAAA;IAED,SAAgB,wBAAwB,CAAC,IAAY,EAAE,IAAgB;QACnE,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,EAAE,uBAAuB,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC5D,OAAO,KAAK,uBAAuB,CAAC,EAAE,IAAI,CAAC;QAC/C,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEf,IAAI,KAAK,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,IAAI,IAAI,GAAG;YACP,GAAG,IAAI,KAAK;YACZ,cAAc,IAAI,GAAG;YACrB,gBAAgB,IAAI,EAAE;YACtB,GAAG;SACN,CAAC;QACF,OAAO;YACH,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,CAAC;IACN,CAAC;IAlBe,4BAAwB,2BAkBvC,CAAA;IAED,SAAgB,8BAA8B,CAAC,OAAgD;QAC3F,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC9B,OAAO,KAAK,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,GAAG;YACP,sBAAsB;YACtB,GAAG,MAAM;YACT,8CAA8C;YAC9C,GAAG;SACN,CAAC;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,CAAC;IACN,CAAC;IAbe,kCAA8B,iCAa7C,CAAA;IACD,SAAgB,8BAA8B,CAAC,MAAkB;QAC7D,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO,KAAK,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,YAAY,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,GAAG;YACP,qBAAqB;YACrB,GAAG,MAAM;YACT,eAAe;YACf,GAAG;SACN,CAAC;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,CAAC;IACN,CAAC;IAbe,kCAA8B,iCAa7C,CAAA;IACD,SAAgB,kBAAkB,CAAC,KAAe;QAC9C,IAAI,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5F,IAAI,YAAY,GAAG,KAAK,uBAAuB,CAAC,EAAE,IAAI,CAAC;QACvD,IAAI,UAAU,GAAG,KAAK,uBAAuB,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;QACvE,IAAI,IAAI,GAAG;YACP,GAAG,KAAK,CAAC,IAAI,KAAK;YAClB,qBAAqB,YAAY,GAAG;YACpC,qBAAqB,UAAU,GAAG;YAClC,GAAG;SACN,CAAC;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,CAAC;IACN,CAAC;IAbe,sBAAkB,qBAajC,CAAA;IAED,SAAgB,cAAc,CAAC,GAAa;QACxC,IAAI,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1F,OAAO;YACH,EAAE,EAAE;oBACI,GAAG,CAAC,IAAI,2DAA2D,GAAG,CAAC,IAAI,8EAA8E,GAAG,CAAC,IAAI;0CAC3I,GAAG,CAAC,IAAI;;aAErC;YACD,KAAK,EAAE;oBACC,GAAG,CAAC,IAAI,2DAA2D,GAAG,CAAC,IAAI,8EAA8E,GAAG,CAAC,IAAI;aACxK;YACD,EAAE,EAAE;oBACI,GAAG,CAAC,IAAI;0CACc,GAAG,CAAC,IAAI;;aAErC;SACJ,CAAC;IACN,CAAC;IAjBe,kBAAc,iBAiB7B,CAAA;IACD,SAAgB,uBAAuB,CAAC,GAAa;QACjD,OAAO;YACH,EAAE,EAAE;6BACa,GAAG,CAAC,IAAI,mDAAmD,GAAG,CAAC,IAAI;2DACrC,GAAG,CAAC,IAAI;2FACwB,GAAG,CAAC,IAAI;;aAEtF;YACD,KAAK,EAAE;6BACU,GAAG,CAAC,IAAI,mDAAmD,GAAG,CAAC,IAAI;aACnF;YACD,EAAE,EAAE;6BACa,GAAG,CAAC,IAAI;2DACsB,GAAG,CAAC,IAAI;;;aAGtD;SACJ,CAAC;IACN,CAAC;IAlBe,2BAAuB,0BAkBtC,CAAA;IACD,SAAgB,qBAAqB,CAAC,GAAa;QAC/C,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACxB,IAAI,OAAO,GAAG,IAAA,cAAI,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/D,IAAI,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,MAAM,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QACpG,OAAO;YACH,EAAE,EAAE;mCACmB,GAAG,CAAC,IAAI;;;iCAGV,aAAa;uDACS,GAAG,CAAC,IAAI;4DACH,GAAG,CAAC,IAAI;;aAEvD;YACD,KAAK,EAAE;6BACU,GAAG,CAAC,IAAI;;;iCAGJ,aAAa;uDACS,GAAG,CAAC,IAAI;aAClD;YACD,EAAE,EAAE;mCACmB,GAAG,CAAC,IAAI;4DACiB,GAAG,CAAC,IAAI;;aAEvD;SACJ,CAAA;IACL,CAAC;IA3Be,yBAAqB,wBA2BpC,CAAA;IACD,4DAA4D;IAC5D,0FAA0F;IAC1F,eAAe;IACf,mCAAmC;IACnC,kCAAkC;IAClC,aAAa;IACb,sFAAsF;IACtF,SAAS;IACT,IAAI;IAEJ,SAAgB,kBAAkB,CAAC,GAAa,EAAE,YAAsB;QACpE,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;YAC7B,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,IAAI,YAAY,IAAI,CAAC,CAAC,IAAI,EAAE;gBACxB,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;aACzB;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,OAAO,GAAG,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC;SAC5B;QACD,IAAI,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,YAAY,GAAG,CAAC,IAAI,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;IAClE,CAAC;IAde,sBAAkB,qBAcjC,CAAA;IAED,SAAS,qBAAqB,CAAC,GAAa;QACxC,IAAI,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1F,IAAI,kBAAkB,EAAE;YACpB,kBAAkB,GAAG,KAAK,kBAAkB,EAAE,CAAC;SAClD;QACD,OAAO;YACH,EAAE,EAAE;qBACK,qBAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;wBAC9B,GAAG,CAAC,IAAI,KAAK,uBAAuB,CAAC,EAAE,MAAM,QAAQ;sEACP,GAAG,CAAC,IAAI,KAAK,kBAAkB;;aAExF;YACD,KAAK,EAAE;qBACE,qBAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;kBACpC,GAAG,CAAC,IAAI,KAAK,uBAAuB,CAAC,EAAE,MAAM,QAAQ;aAC1D;YACD,EAAE,EAAE;qBACK,qBAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;wBAC9B,GAAG,CAAC,IAAI,KAAK,uBAAuB,CAAC,EAAE;sEACO,GAAG,CAAC,IAAI,KAAK,kBAAkB;;aAExF;SACJ,CAAC;IACN,CAAC;IACD,SAAS,8BAA8B,CAAC,IAAgB;QACpD,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YACtE,OAAO;iBACF,qBAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;oBAC9B,GAAG,CAAC,IAAI,KAAK,uBAAuB,CAAC,EAAE,MAAM,QAAQ;aAC5D,CAAC;QACN,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,OAAO;YACH,EAAE,EAAE;kBACE,SAAS;wBACH,GAAG,CAAC,IAAI,eAAe,QAAQ;2DACI,IAAI;;;aAGlD;YACD,KAAK,EAAE;kBACD,SAAS;kBACT,GAAG,CAAC,IAAI,eAAe,QAAQ;aACpC;YACD,EAAE,EAAE;wBACQ,GAAG,CAAC,IAAI;2DAC2B,IAAI;;;aAGlD;SACJ,CAAC;IACN,CAAC;IAED,SAAS,sBAAsB,CAAC,GAAa;QACzC,IAAI,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAChF,IAAI,kBAAkB,EAAE;YACpB,kBAAkB,GAAG,KAAK,kBAAkB,EAAE,CAAC;SAClD;QAED,OAAO;YACH,EAAE,EAAE;qBACK,qBAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;wBAC9B,GAAG,CAAC,IAAI,sBAAsB,uBAAuB,CAAC,EAAE;uEACT,GAAG,CAAC,IAAI,aAAa,kBAAkB;;aAEjG;YACD,KAAK,EAAE;qBACE,qBAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;kBACpC,GAAG,CAAC,IAAI,sBAAsB,uBAAuB,CAAC,EAAE;aAC7D;YACD,EAAE,EAAE;qBACK,qBAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;wBAC9B,GAAG,CAAC,IAAI,aAAa,uBAAuB,CAAC,EAAE;uEACA,GAAG,CAAC,IAAI,aAAa,kBAAkB;;aAEjG;SACJ,CAAC;IACN,CAAC;IACD,SAAS,4BAA4B,CAAC,GAAa;QAC/C,IAAI,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAChF,IAAI,kBAAkB,EAAE;YACpB,kBAAkB,GAAG,KAAK,kBAAkB,EAAE,CAAC;SAClD;QACD,OAAO;YACH,EAAE,EAAE;yDACyC,uBAAuB,CAAC,EAAE;;;aAGtE;YACD,KAAK,EAAE;mDACgC,uBAAuB,CAAC,EAAE;aAChE;YACD,EAAE,EAAE;gDACgC,uBAAuB,CAAC,EAAE;;;aAG7D;SACJ,CAAC;IACN,CAAC;IACD,SAAS,+BAA+B,CAAC,IAAgB;QACrD,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YACtE,OAAO;iBACF,qBAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;oBAC9B,GAAG,CAAC,IAAI,sBAAsB,uBAAuB,CAAC,EAAE;aAC/D,CAAC;QACN,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,OAAO;YACH,EAAE,EAAE;kBACE,SAAS;wBACH,GAAG,CAAC,IAAI;2DAC2B,IAAI;;;aAGlD;YACD,KAAK,EAAE;kBACD,SAAS;kBACT,GAAG,CAAC,IAAI;aACb;YACD,EAAE,EAAE;wBACQ,GAAG,CAAC,IAAI;2DAC2B,IAAI;;;aAGlD;SACJ,CAAC;IACN,CAAC;IAED,SAAS,oBAAoB,CAAC,GAAa;QACvC,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE;gBAC3C,MAAM,CAAC,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;aAC7B;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC1B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;aAC3B;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,mBAAmB,GAAG,MAAM;YAChC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,IAAI,MAAM,GAAG,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,MAAM,IAAI,IAAI,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;aACnE;YACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC9C,CAAC,CAAC,IAAI,EAAE,CAAC;QAET,IAAI,kBAAkB,GAAG,mBAAmB;aACvC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACX,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1C,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhB,IAAI,kBAAkB,GAAG,mBAAmB;aACvC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACX,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhB,IAAI,kBAAkB,GAAG,MAAM;YAC3B,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;YACV,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC,CAAC;YACF,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAGvB,IAAI,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO;YACH,uBAAuB,EAAE;gBACrB,EAAE,EAAE,kBAAkB;gBACtB,EAAE,EAAE,kBAAkB;aACzB;YACD,kBAAkB;YAClB,QAAQ;SACX,CAAC;IACN,CAAC;IAED,SAAS,cAAc,CAAC,MAAyB;QAC7C,OAAO,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,SAAS,yBAAyB,CAAC,MAAqC;QACpE,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,OAAO,EAAE,CAAC;SACb;QACD,gCAAgC;QAChC,4EAA4E;QAC5E,IAAI;QACJ,OAAO,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,SAAS,+BAA+B,CAAC,KAAkC;QACvE,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACf;QACD,IAAI,KAAK,CAAC,UAAU,EAAE;YAClB,iBAAiB;YACjB,IAAI,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzD,OAAO,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC/D;QACD,kCAAkC;QAClC,4CAA4C;QAC5C,IAAI;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC;IACtB,CAAC;IACD,SAAS,wBAAwB,CAAC,MAAyB;QACvD,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;SAC5C;QAED,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC7B,IAAI,MAAM,GAAG,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,MAAM,IAAI,IAAI,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;aACtE;YACD,OAAO;gBACH,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,MAAM;aACf,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE;YAC7C,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,OAAO,aAAa,SAAS,KAAK,CAAC;SACtC;QAED,IAAI,QAAQ,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,QAAQ,GAAG,KAAK,QAAQ,IAAI,CAAA;SAC/B;QACD,OAAO,WAAW,QAAQ,GAAG,CAAC;IAClC,CAAC;IAID,SAAgB,eAAe,CAAC,SAAiB,EAAE,OAAmB;QAClE,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAS,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,EAAE,CAAC;SACb;QACD,IAAI,KAAK,GAAG;YACR,oBAAoB,SAAS,UAAU;SAC1C,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,KAAK,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAvBe,mBAAe,kBAuB9B,CAAA;IAED,SAAgB,wBAAwB,CAAC,SAAiB,EAAE,OAAmB;QAC3E,IAAI,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACzD,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,qBAAS,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;QAChF,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SACtC,CAAC;QAGF,SAAS,iBAAiB,CAAC,GAAa;YACpC,IAAI,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC1F,IAAI,kBAAkB,EAAE;gBACpB,kBAAkB,GAAG,KAAK,kBAAkB,EAAE,CAAC;aAClD;YACD,OAAO;gBACH,EAAE,EAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,uBAAuB,CAAC,EAAE,8EAA8E;gBACjJ,EAAE,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,uBAAuB,CAAC,EAAE,GAAG;aAChE,CAAC;QACN,CAAC;IACL,CAAC;IAvBe,4BAAwB,2BAuBvC,CAAA;IAED,SAAgB,sBAAsB,CAAC,SAAiB,EAAE,OAAmB;QACzE,IAAI,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACzD,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,qBAAS,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;QAChF,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SACtC,CAAA;QAGD,SAAS,0BAA0B,CAAC,GAAa;YAC7C,IAAI,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC1F,IAAI,kBAAkB,EAAE;gBACpB,kBAAkB,GAAG,KAAK,kBAAkB,EAAE,CAAC;aAClD;YACD,OAAO;gBACH,EAAE,EAAE,OAAO,GAAG,CAAC,IAAI,sBAAsB,uBAAuB,CAAC,EAAE,yBAAyB;gBAC5F,EAAE,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,uBAAuB,CAAC,EAAE,GAAG;aAChE,CAAA;QACL,CAAC;IACL,CAAC;IAvBe,0BAAsB,yBAuBrC,CAAA;AACL,CAAC,EA/fS,GAAG,KAAH,GAAG,QA+fZ"}
1
+ {"version":3,"file":"GeneratorFromAbi.js","sourceRoot":"","sources":["../../../src/gen/GeneratorFromAbi.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,15 @@ export class GeneratorFromAbi {
19
19
  let target = opts.target ?? settings?.target ?? 'ts';
20
20
  let outputSourceType = {
21
21
  mjs: 'js',
22
+ cjs: 'js',
22
23
  }[target] ?? target;
23
- let outputFileExt = opts?.outputFileExt ?? outputSourceType;
24
+ let outputModuleType = target === 'cjs' ? 'cjs' : 'esm';
25
+ let outputFileExt = opts?.outputFileExt ?? {
26
+ mjs: 'mjs',
27
+ cjs: 'js',
28
+ ts: 'ts',
29
+ js: 'js',
30
+ }[target];
24
31
  let methodsArr = alot(abiJson)
25
32
  .filter(x => x.type === 'function' || x.type === 'constructor')
26
33
  .groupBy(x => x.name)
@@ -109,7 +116,8 @@ export class GeneratorFromAbi {
109
116
  let eventsFetchers = eventsFetchersArr[outputSourceType].join('\n\n');
110
117
  let eventsFetchersTypings = eventsFetchersArr.types.join('\n\n');
111
118
  let name = opts.name;
112
- let templatePath = $path.resolve(`/src/gen/templates/ContractTemplate.${outputSourceType}.tmpl`);
119
+ let contractTemplateSuffix = outputModuleType === 'cjs' ? 'cjs' : outputSourceType;
120
+ let templatePath = $path.resolve(`/src/gen/templates/ContractTemplate.${contractTemplateSuffix}.tmpl`);
113
121
  let template = await File.readAsync(templatePath, { skipHooks: true });
114
122
  let templateDtsPath = $path.resolve(`/src/gen/templates/ContractTemplate.d.ts.tmpl`);
115
123
  let templateDts = await File.readAsync(templateDtsPath, { skipHooks: true });
@@ -124,10 +132,16 @@ export class GeneratorFromAbi {
124
132
  case 'hardhat':
125
133
  EtherscanStr = 'Etherscan';
126
134
  EthWeb3ClientStr = 'HardhatWeb3Client';
127
- imports = [
128
- `import { Etherscan } from '${importPfx}/explorer/Etherscan'`,
129
- `import { HardhatWeb3Client } from '${importPfx}/hardhat/HardhatWeb3Client'`,
130
- ];
135
+ imports = {
136
+ esm: [
137
+ `import { Etherscan } from '${importPfx}/explorer/Etherscan';`,
138
+ `import { HardhatWeb3Client } from '${importPfx}/hardhat/HardhatWeb3Client';`,
139
+ ],
140
+ cjs: [
141
+ `const { Etherscan } = require('${importPfx}/explorer/Etherscan');`,
142
+ `const { HardhatWeb3Client } = require('${importPfx}/hardhat/HardhatWeb3Client');`,
143
+ ],
144
+ }[outputModuleType];
131
145
  sourceUri = ``;
132
146
  break;
133
147
  default: {
@@ -135,10 +149,16 @@ export class GeneratorFromAbi {
135
149
  if (web3Config) {
136
150
  EtherscanStr = 'Evmscan';
137
151
  EthWeb3ClientStr = 'EvmWeb3Client';
138
- imports = [
139
- `import { Evmscan } from '${importPfx}/explorer/Evmscan'`,
140
- `import { EvmWeb3Client } from '${importPfx}/clients/EvmWeb3Client'`,
141
- ];
152
+ imports = {
153
+ esm: [
154
+ `import { Evmscan } from '${importPfx}/explorer/Evmscan';`,
155
+ `import { EvmWeb3Client } from '${importPfx}/clients/EvmWeb3Client';`,
156
+ ],
157
+ cjs: [
158
+ `const { Evmscan } = require('${importPfx}/explorer/Evmscan');`,
159
+ `const { EvmWeb3Client } = require('${importPfx}/clients/EvmWeb3Client');`,
160
+ ]
161
+ }[outputModuleType];
142
162
  Web3ClientOptions = `{ platform: '${opts.network}' }`;
143
163
  EvmScanOptions = `{ platform: '${opts.network}' }`;
144
164
  sourceUri = '';
@@ -1 +1 @@
1
- {"version":3,"file":"$dependency.js","sourceRoot":"","sources":["../../../src/utils/$dependency.ts"],"names":[],"mappings":";AAAA,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzB,IAAiB,WAAW,CAe3B;AAfD,WAAiB,WAAW;IAEjB,KAAK,UAAU,IAAI,CAAW,IAAY;;QAC7C,WAAW;QACX,MAAM,CAAC,GAAG,OAAO,CAAC;QAClB,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,QAAQ;QAER,WAAW;QACX,iCAAiC;QACjC,MAAM,GAAG,GAAG,YAAa,IAAI,0DAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;QACX,QAAQ;IACZ,CAAC;IAXqB,gBAAI,OAWzB,CAAA;AAEL,CAAC,EAfgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAe3B"}
1
+ {"version":3,"file":"$dependency.js","sourceRoot":"","sources":["../../../src/utils/$dependency.ts"],"names":[],"mappings":";AAAA,yBAAyB;;;AAEzB,IAAiB,WAAW,CAW3B;AAXD,WAAiB,WAAW;IAEjB,KAAK,UAAU,IAAI,CAAW,IAAY;QAC7C,WAAW;QACX,MAAM,CAAC,GAAG,OAAO,CAAC;QAClB,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,QAAQ;IAGZ,CAAC;IAPqB,gBAAI,OAOzB,CAAA;AAEL,CAAC,EAXgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAW3B"}
@@ -2,10 +2,6 @@
2
2
  export var $dependency;
3
3
  (function ($dependency) {
4
4
  async function load(name) {
5
- //#if (CJS)
6
- const r = require;
7
- return Promise.resolve(require(name));
8
- //#endif
9
5
  //#if (ESM)
10
6
  // @ts-ignore: Conditional import
11
7
  const exp = await import(name);
@@ -7,6 +7,7 @@ export type TConfigParamsNode = TConfigParamsBase & {
7
7
  pin?: string;
8
8
  configAccounts?: string;
9
9
  configGlobal?: string;
10
+ isLocal?: boolean;
10
11
  };
11
12
  export type TConfigParamsBrowser = TConfigParamsBase & {};
12
13
  export type TConfigParams = TConfigParamsNode | TConfigParamsBrowser;
@@ -79,6 +79,7 @@ export declare class ProxyDeployment {
79
79
  contractProxyDeployment: import("../storage/DeploymentsStorage").IDeployment;
80
80
  contractProxyAdmin: IProxyAdmin;
81
81
  }>;
82
+ private getOpenzeppelinUpgradable;
82
83
  protected ensureBeaconInner(ctx: IBeaconDeploymentCtx): Promise<{
83
84
  contractBeacon: IBeacon;
84
85
  contractBeaconDeployment: import("../storage/DeploymentsStorage").IDeployment;
@@ -6,7 +6,7 @@ import { Web3Client } from '../clients/Web3Client';
6
6
  import { TEth } from '../models/TEth';
7
7
  export interface IGenerateOptions {
8
8
  platform: TPlatform;
9
- target?: 'js' | 'ts';
9
+ target?: 'js' | 'ts' | 'mjs' | 'cjs';
10
10
  name: string;
11
11
  contractName?: string;
12
12
  defaultAddress?: TAddress;
@@ -5,7 +5,7 @@ import { Web3Client } from '../clients/Web3Client';
5
5
  export declare class GeneratorFromAbi {
6
6
  static get Gen(): typeof Gen;
7
7
  generate(abiJson: TAbiItem[], opts: {
8
- target?: 'js' | 'mjs' | 'ts';
8
+ target?: 'js' | 'mjs' | 'ts' | 'cjs';
9
9
  network: TPlatform;
10
10
  name: string;
11
11
  contractName: string;
@@ -2,7 +2,6 @@
2
2
  "apps": {
3
3
  "cjs": {
4
4
  "file": "**.ts",
5
- "//file": "blocks/**.ts",
6
5
  "ignore": [
7
6
  "bridges/.+",
8
7
  "config/dequanto.d.ts",
@@ -59,7 +58,6 @@
59
58
  },
60
59
  "esm": {
61
60
  "file": "**.ts",
62
- "//file": "blocks/**.ts",
63
61
  "ignore": [
64
62
  "bridges/.+",
65
63
  "config/dequanto.d.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dequanto",
3
- "version": "0.1.25",
3
+ "version": "0.1.27",
4
4
  "author": {
5
5
  "name": "Alex Kit",
6
6
  "email": "alex.kit@atmajs.com"
@@ -41,6 +41,7 @@
41
41
  "app-bundler": "^0.2.13",
42
42
  "atma": "^0.15.22",
43
43
  "atma-io-middleware-base": "^1.0.51",
44
+ "atma-io-middleware-condcomments": "^1.2.8",
44
45
  "atma-io-middleware-importer": "^1.1.38",
45
46
  "atma-io-middleware-uglify": "^1.1.25",
46
47
  "atma-loader-ts": "^1.2.6",
@@ -10,6 +10,7 @@ export type TConfigParamsNode = TConfigParamsBase & {
10
10
  pin?: string
11
11
  configAccounts?: string
12
12
  configGlobal?: string
13
+ isLocal?: boolean
13
14
  }
14
15
 
15
16
  export type TConfigParamsBrowser = TConfigParamsBase & {
@@ -9,6 +9,17 @@ import { $require } from '@dequanto/utils/$require';
9
9
  import { is_BROWSER } from '@dequanto/utils/$const';
10
10
  import { ConfigDefaults } from './ConfigDefaults';
11
11
 
12
+ const DEFAULT_PATHS = {
13
+ ACCOUNTS: {
14
+ local: `./0xc/config/accounts.json`,
15
+ global: `%APPDATA%/.dequanto/accounts.json`
16
+ },
17
+ CONFIG: {
18
+ local: `./0xc/config/config.yml`,
19
+ global: `%APPDATA%/.dequanto/config.yml`
20
+ }
21
+ };
22
+
12
23
 
13
24
  export class ConfigProvider implements IConfigProvider {
14
25
 
@@ -39,9 +50,14 @@ export class ConfigProvider implements IConfigProvider {
39
50
 
40
51
 
41
52
  private async getSourcesNode (parameters: TConfigParamsNode) {
53
+ let isLocal = parameters?.isLocal ?? false;
54
+ let PATH_KEY: 'local' | 'global' = isLocal ? 'local' : 'global';
55
+
42
56
  let unlockedAccountsKey = await $secret.getPin(parameters);
43
- let configPathAccounts = $cli.getParamValue('config-accounts', parameters) ?? '%APPDATA%/.dequanto/accounts.json';
44
- let configPathGlobal = $cli.getParamValue('config-global', parameters) ?? '%APPDATA%/.dequanto/config.yml';
57
+ let configPathAccounts = $cli.getParamValue('config-accounts', parameters)
58
+ ?? DEFAULT_PATHS.ACCOUNTS[ PATH_KEY ];
59
+ let configPathMain = $cli.getParamValue('config-global', parameters)
60
+ ?? DEFAULT_PATHS.CONFIG[ PATH_KEY ];
45
61
 
46
62
  return [
47
63
  {
@@ -56,7 +72,8 @@ export class ConfigProvider implements IConfigProvider {
56
72
  optional: true,
57
73
  },
58
74
  {
59
- path: configPathGlobal,
75
+ name: 'main',
76
+ path: configPathMain,
60
77
  writable: true,
61
78
  optional: true,
62
79
  extendArrays: false,
@@ -1,3 +1,4 @@
1
+ import alot from 'alot';
1
2
  import type { Deployments } from '../Deployments';
2
3
  import { TAddress } from '@dequanto/models/TAddress';
3
4
  import { TEth } from '@dequanto/models/TEth';
@@ -11,7 +12,9 @@ import { $logger, l } from '@dequanto/utils/$logger';
11
12
  import { ContractWriter } from '@dequanto/contracts/ContractWriter';
12
13
  import { DeploymentsStorage } from '../storage/DeploymentsStorage';
13
14
  import { $proxyDeploy } from './$proxyDeploy';
14
-
15
+ import { File } from 'atma-io';
16
+ import { IContractWrapped } from '@dequanto/contracts/ContractClassFactory';
17
+ import { HardhatProvider } from '@dequanto/hardhat/HardhatProvider';
15
18
 
16
19
  export interface IProxy extends ContractBase {
17
20
  changeAdmin?
@@ -118,6 +121,13 @@ export class ProxyDeployment {
118
121
  Proxy,
119
122
  ProxyAdmin,
120
123
  } = ctx.TransparentProxy ?? this.opts.TransparentProxy;
124
+
125
+ if (Proxy == null) {
126
+ let internal = await this.getOpenzeppelinUpgradable({ beacon: false, proxy: true });
127
+ Proxy = internal.TransparentUpgradeableProxy;
128
+ ProxyAdmin = internal.ProxyAdmin as Constructor<IProxyAdmin>;
129
+ }
130
+
121
131
  $require.notNull(Proxy, 'TransparentProxy.Proxy is required');
122
132
  $require.notNull(ProxyAdmin, 'TransparentProxy.ProxyAdmin is required');
123
133
 
@@ -216,6 +226,77 @@ export class ProxyDeployment {
216
226
  }
217
227
  }
218
228
 
229
+ private async getOpenzeppelinUpgradable (opts?: { proxy?: boolean, beacon?: boolean }) {
230
+ // We can't compile OpenZeppelin's contracts directly from node_modules folder, so create the wrappers
231
+ const baseSource = `./node_modules/@openzeppelin/contracts/proxy`;
232
+ const baseOutput = `./contracts/oz`;
233
+ const deps = {
234
+ TransparentUpgradeableProxy: `@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol`,
235
+ ProxyAdmin: `@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol`,
236
+ Beacon: `@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol`,
237
+ BeaconProxy: `@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol`,
238
+ };
239
+ const paths = {
240
+ TransparentUpgradeableProxy: {
241
+ source: `${baseSource}/transparent/TransparentUpgradeableProxy.sol`,
242
+ output: `${baseOutput}/Proxy.sol`,
243
+ template: `
244
+ import \"${deps.TransparentUpgradeableProxy}\";
245
+ `,
246
+ //install: `TransparentUpgradeableProxy,ProxyAdmin`,
247
+ contracts: [`TransparentUpgradeableProxy`,`ProxyAdmin`]
248
+ },
249
+ Beacon: {
250
+ source: `${baseSource}/beacon/UpgradeableBeacon.sol`,
251
+ output: `${baseOutput}/Beacon.sol`,
252
+ template: `
253
+ import \"${deps.Beacon}\";
254
+ `,
255
+ //install: `UpgradeableBeacon,BeaconProxy`,
256
+ contracts: [`UpgradeableBeacon`,`BeaconProxy`],
257
+ }
258
+ };
259
+
260
+ if (opts?.beacon === false) {
261
+ delete paths.Beacon;
262
+ }
263
+ if (opts?.proxy === false) {
264
+ delete paths.TransparentUpgradeableProxy;
265
+ }
266
+
267
+ function fmt (template: string) {
268
+ let match = /^ +/m.exec(template);
269
+ return template.trim().replace(new RegExp(`^${match[0]}`, 'gm'), '');
270
+ }
271
+
272
+ let provider = new HardhatProvider();
273
+ let contracts = await alot.fromObject(paths).mapMany(async entry => {
274
+ let info = entry.value;
275
+ let code = fmt(info.template);
276
+
277
+ if (await File.existsAsync(info.output) === false) {
278
+ await File.writeAsync(info.output, code);
279
+ }
280
+ await provider.compileSol(info.output, {
281
+ tsgen: false,
282
+ });
283
+
284
+ return await alot(info.contracts)
285
+ .mapAsync(async key => {
286
+ let compilation = await provider.getContractFromSolPath(deps[key]);
287
+ return {
288
+ key: key,
289
+ Ctor: compilation.ContractCtor
290
+ };
291
+ })
292
+ .toArrayAsync();
293
+ }).toArrayAsync({ threads: 1 });
294
+
295
+ return alot(contracts).toDictionary(x => x.key, x => x.Ctor) as {
296
+ [K in keyof typeof deps]: Constructor<IContractWrapped>
297
+ };
298
+ }
299
+
219
300
  protected async ensureBeaconInner(ctx: IBeaconDeploymentCtx) {
220
301
  let {
221
302
  beaconId,
@@ -23,7 +23,7 @@ import { SolidityParser } from '@dequanto/solidity/SolidityParser';
23
23
  export interface IGenerateOptions {
24
24
  platform: TPlatform
25
25
 
26
- target?: 'js' | 'ts'
26
+ target?: 'js' | 'ts' | 'mjs' | 'cjs'
27
27
 
28
28
  // Class name to create
29
29
  name: string
@@ -25,7 +25,7 @@ export class GeneratorFromAbi {
25
25
  }
26
26
 
27
27
  async generate(abiJson: TAbiItem[], opts: {
28
- target?: 'js' | 'mjs' | 'ts'
28
+ target?: 'js' | 'mjs' | 'ts' | 'cjs'
29
29
  network: TPlatform
30
30
  name: string
31
31
  contractName: string
@@ -47,9 +47,16 @@ export class GeneratorFromAbi {
47
47
  let target = opts.target ?? settings?.target ?? 'ts';
48
48
  let outputSourceType = {
49
49
  mjs: 'js',
50
+ cjs: 'js',
50
51
  }[target] ?? target;
51
52
 
52
- let outputFileExt = opts?.outputFileExt ?? outputSourceType;
53
+ let outputModuleType = target === 'cjs' ? 'cjs' : 'esm';
54
+ let outputFileExt = opts?.outputFileExt ?? {
55
+ mjs: 'mjs',
56
+ cjs: 'js',
57
+ ts: 'ts',
58
+ js: 'js',
59
+ }[target];
53
60
 
54
61
  let methodsArr = alot(abiJson)
55
62
  .filter(x => x.type === 'function' || x.type === 'constructor')
@@ -152,7 +159,8 @@ export class GeneratorFromAbi {
152
159
  let eventsFetchersTypings = eventsFetchersArr.types.join('\n\n');
153
160
 
154
161
  let name = opts.name;
155
- let templatePath = $path.resolve(`/src/gen/templates/ContractTemplate.${ outputSourceType }.tmpl`);
162
+ let contractTemplateSuffix = outputModuleType === 'cjs' ? 'cjs' : outputSourceType;
163
+ let templatePath = $path.resolve(`/src/gen/templates/ContractTemplate.${ contractTemplateSuffix }.tmpl`);
156
164
  let template = await File.readAsync<string>(templatePath, { skipHooks: true });
157
165
  let templateDtsPath = $path.resolve(`/src/gen/templates/ContractTemplate.d.ts.tmpl`);
158
166
  let templateDts = await File.readAsync<string>(templateDtsPath, { skipHooks: true });
@@ -168,10 +176,16 @@ export class GeneratorFromAbi {
168
176
  case 'hardhat':
169
177
  EtherscanStr = 'Etherscan';
170
178
  EthWeb3ClientStr = 'HardhatWeb3Client';
171
- imports = [
172
- `import { Etherscan } from '${importPfx}/explorer/Etherscan'`,
173
- `import { HardhatWeb3Client } from '${importPfx}/hardhat/HardhatWeb3Client'`,
174
- ];
179
+ imports = {
180
+ esm: [
181
+ `import { Etherscan } from '${importPfx}/explorer/Etherscan';`,
182
+ `import { HardhatWeb3Client } from '${importPfx}/hardhat/HardhatWeb3Client';`,
183
+ ],
184
+ cjs: [
185
+ `const { Etherscan } = require('${importPfx}/explorer/Etherscan');`,
186
+ `const { HardhatWeb3Client } = require('${importPfx}/hardhat/HardhatWeb3Client');`,
187
+ ],
188
+ }[outputModuleType];
175
189
  sourceUri = ``;
176
190
  break;
177
191
  default: {
@@ -179,10 +193,16 @@ export class GeneratorFromAbi {
179
193
  if (web3Config) {
180
194
  EtherscanStr = 'Evmscan';
181
195
  EthWeb3ClientStr = 'EvmWeb3Client';
182
- imports = [
183
- `import { Evmscan } from '${importPfx}/explorer/Evmscan'`,
184
- `import { EvmWeb3Client } from '${importPfx}/clients/EvmWeb3Client'`,
185
- ];
196
+ imports = {
197
+ esm: [
198
+ `import { Evmscan } from '${importPfx}/explorer/Evmscan';`,
199
+ `import { EvmWeb3Client } from '${importPfx}/clients/EvmWeb3Client';`,
200
+ ],
201
+ cjs: [
202
+ `const { Evmscan } = require('${importPfx}/explorer/Evmscan');`,
203
+ `const { EvmWeb3Client } = require('${importPfx}/clients/EvmWeb3Client');`,
204
+ ]
205
+ }[outputModuleType];
186
206
  Web3ClientOptions = `{ platform: '${opts.network}' }`;
187
207
  EvmScanOptions = `{ platform: '${opts.network}' }`;
188
208