@openzeppelin/wizard 0.5.3 → 0.5.5
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 +13 -3
- package/dist/account.d.ts +20 -0
- package/dist/account.d.ts.map +1 -0
- package/dist/account.js +252 -0
- package/dist/account.js.map +1 -0
- package/dist/api.d.ts +12 -7
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +6 -1
- package/dist/api.js.map +1 -1
- package/dist/build-generic.d.ts +4 -0
- package/dist/build-generic.d.ts.map +1 -1
- package/dist/build-generic.js +3 -0
- package/dist/build-generic.js.map +1 -1
- package/dist/environments/hardhat/package-lock.json +3 -3
- package/dist/environments/hardhat/upgradeable/package-lock.json +7 -7
- package/dist/erc20.d.ts +1 -0
- package/dist/erc20.d.ts.map +1 -1
- package/dist/erc20.js +46 -6
- package/dist/erc20.js.map +1 -1
- package/dist/generate/account.d.ts +3 -0
- package/dist/generate/account.d.ts.map +1 -0
- package/dist/generate/account.js +21 -0
- package/dist/generate/account.js.map +1 -0
- package/dist/generate/erc20.d.ts.map +1 -1
- package/dist/generate/erc20.js +1 -0
- package/dist/generate/erc20.js.map +1 -1
- package/dist/generate/sources.d.ts.map +1 -1
- package/dist/generate/sources.js +6 -0
- package/dist/generate/sources.js.map +1 -1
- package/dist/generate/stablecoin.d.ts.map +1 -1
- package/dist/generate/stablecoin.js +2 -0
- package/dist/generate/stablecoin.js.map +1 -1
- package/dist/governor.d.ts.map +1 -1
- package/dist/governor.js +7 -7
- package/dist/governor.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/kind.js +2 -1
- package/dist/kind.js.map +1 -1
- package/dist/print.d.ts.map +1 -1
- package/dist/print.js +2 -1
- package/dist/print.js.map +1 -1
- package/dist/signer.d.ts +39 -0
- package/dist/signer.d.ts.map +1 -0
- package/dist/signer.js +115 -0
- package/dist/signer.js.map +1 -0
- package/dist/solidity-version.json +1 -1
- package/dist/stablecoin.js +2 -2
- package/dist/stablecoin.js.map +1 -1
- package/dist/test.js +17 -6
- package/dist/test.js.map +1 -1
- package/dist/utils/convert-strings.d.ts +11 -0
- package/dist/utils/convert-strings.d.ts.map +1 -0
- package/dist/utils/convert-strings.js +30 -0
- package/dist/utils/convert-strings.js.map +1 -0
- package/dist/utils/sanitize.d.ts +2 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +9 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/zip-foundry.js +4 -4
- package/package.json +5 -6
- package/src/account.ts +292 -0
- package/src/api.ts +16 -7
- package/src/build-generic.ts +6 -0
- package/src/environments/hardhat/package-lock.json +3 -3
- package/src/environments/hardhat/upgradeable/package-lock.json +7 -7
- package/src/erc20.ts +47 -1
- package/src/generate/account.ts +20 -0
- package/src/generate/erc20.ts +1 -0
- package/src/generate/sources.ts +7 -0
- package/src/generate/stablecoin.ts +2 -0
- package/src/governor.ts +9 -8
- package/src/index.ts +1 -1
- package/src/kind.ts +2 -1
- package/src/print.ts +2 -1
- package/src/signer.ts +124 -0
- package/src/solidity-version.json +1 -1
- package/src/stablecoin.ts +2 -2
- package/src/test.ts +17 -5
- package/src/utils/convert-strings.ts +27 -0
- package/src/utils/sanitize.ts +6 -0
- package/src/zip-foundry.ts +4 -4
package/README.md
CHANGED
|
@@ -18,10 +18,11 @@ The following contract types are supported:
|
|
|
18
18
|
- `erc1155`
|
|
19
19
|
- `stablecoin`
|
|
20
20
|
- `realWorldAsset`
|
|
21
|
+
- `account`
|
|
21
22
|
- `governor`
|
|
22
23
|
- `custom`
|
|
23
24
|
|
|
24
|
-
Note that `stablecoin` and `
|
|
25
|
+
Note that `stablecoin`, `realWorldAsset`, and `account` are experimental and may be subject to change.
|
|
25
26
|
|
|
26
27
|
Each contract type has functions/constants as defined below.
|
|
27
28
|
|
|
@@ -41,6 +42,9 @@ function print(opts?: ERC1155Options): string
|
|
|
41
42
|
function print(opts?: StablecoinOptions): string
|
|
42
43
|
```
|
|
43
44
|
```js
|
|
45
|
+
function print(opts?: AccountOptions): string
|
|
46
|
+
```
|
|
47
|
+
```js
|
|
44
48
|
function print(opts?: GovernorOptions): string
|
|
45
49
|
```
|
|
46
50
|
```js
|
|
@@ -62,6 +66,9 @@ const defaults: Required<ERC1155Options>
|
|
|
62
66
|
const defaults: Required<StablecoinOptions>
|
|
63
67
|
```
|
|
64
68
|
```js
|
|
69
|
+
const defaults: Required<AccountOptions>
|
|
70
|
+
```
|
|
71
|
+
```js
|
|
65
72
|
const defaults: Required<GovernorOptions>
|
|
66
73
|
```
|
|
67
74
|
```js
|
|
@@ -88,7 +95,10 @@ function isAccessControlRequired(opts: Partial<GovernorOptions>): boolean
|
|
|
88
95
|
```js
|
|
89
96
|
function isAccessControlRequired(opts: Partial<CustomOptions>): boolean
|
|
90
97
|
```
|
|
91
|
-
Whether any of the provided options require access control to be enabled. If this returns `true`, then calling `print` with the same options would cause the `access` option to default to `'ownable'` if it was `undefined` or `false`.
|
|
98
|
+
Whether any of the provided options require access control to be enabled. If this returns `true`, then calling `print` with the same options would cause the `access` option to default to `'ownable'` if it was `undefined` or `false`.
|
|
99
|
+
|
|
100
|
+
> Note that contracts such as `account`, have its own way of handling permissions and do not support the `access` option.
|
|
101
|
+
Thus, that type does not include `isAccessControlRequired`.
|
|
92
102
|
|
|
93
103
|
### Examples
|
|
94
104
|
|
|
@@ -119,4 +129,4 @@ const contract = erc20.print({
|
|
|
119
129
|
...erc20.defaults,
|
|
120
130
|
upgradeable: 'uups',
|
|
121
131
|
});
|
|
122
|
-
```
|
|
132
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Contract } from './contract';
|
|
2
|
+
import { type CommonOptions } from './common-options';
|
|
3
|
+
import { type SignerOptions } from './signer';
|
|
4
|
+
export declare const defaults: Required<AccountOptions>;
|
|
5
|
+
export declare const SignatureValidationOptions: readonly [false, "ERC1271", "ERC7739"];
|
|
6
|
+
export type SignatureValidationOptions = (typeof SignatureValidationOptions)[number];
|
|
7
|
+
export declare const ERC7579ModulesOptions: readonly [false, "AccountERC7579", "AccountERC7579Hooked"];
|
|
8
|
+
export type ERC7579ModulesOptions = (typeof ERC7579ModulesOptions)[number];
|
|
9
|
+
export interface AccountOptions extends CommonOptions {
|
|
10
|
+
name: string;
|
|
11
|
+
signatureValidation?: SignatureValidationOptions;
|
|
12
|
+
ERC721Holder?: boolean;
|
|
13
|
+
ERC1155Holder?: boolean;
|
|
14
|
+
signer?: SignerOptions;
|
|
15
|
+
batchedExecution?: boolean;
|
|
16
|
+
ERC7579Modules?: ERC7579ModulesOptions;
|
|
17
|
+
}
|
|
18
|
+
export declare function printAccount(opts?: AccountOptions): string;
|
|
19
|
+
export declare function buildAccount(opts: AccountOptions): Contract;
|
|
20
|
+
//# sourceMappingURL=account.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtG,OAAO,EAAuC,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAEnF,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,cAAc,CASpC,CAAC;AAEX,eAAO,MAAM,0BAA0B,wCAAyC,CAAC;AACjF,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAErF,eAAO,MAAM,qBAAqB,4DAA6D,CAAC;AAChG,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;IACjD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAeD,wBAAgB,YAAY,CAAC,IAAI,GAAE,cAAyB,GAAG,MAAM,CAEpE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,CAoB3D"}
|
package/dist/account.js
ADDED
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ERC7579ModulesOptions = exports.SignatureValidationOptions = exports.defaults = void 0;
|
|
4
|
+
exports.printAccount = printAccount;
|
|
5
|
+
exports.buildAccount = buildAccount;
|
|
6
|
+
const contract_1 = require("./contract");
|
|
7
|
+
const define_functions_1 = require("./utils/define-functions");
|
|
8
|
+
const print_1 = require("./print");
|
|
9
|
+
const common_options_1 = require("./common-options");
|
|
10
|
+
const set_info_1 = require("./set-info");
|
|
11
|
+
const signer_1 = require("./signer");
|
|
12
|
+
exports.defaults = {
|
|
13
|
+
...common_options_1.defaults,
|
|
14
|
+
name: 'MyAccount',
|
|
15
|
+
signatureValidation: 'ERC7739',
|
|
16
|
+
ERC721Holder: true,
|
|
17
|
+
ERC1155Holder: true,
|
|
18
|
+
signer: 'ECDSA',
|
|
19
|
+
batchedExecution: false,
|
|
20
|
+
ERC7579Modules: false,
|
|
21
|
+
};
|
|
22
|
+
exports.SignatureValidationOptions = [false, 'ERC1271', 'ERC7739'];
|
|
23
|
+
exports.ERC7579ModulesOptions = [false, 'AccountERC7579', 'AccountERC7579Hooked'];
|
|
24
|
+
function withDefaults(opts) {
|
|
25
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
26
|
+
return {
|
|
27
|
+
...(0, common_options_1.withCommonDefaults)(opts),
|
|
28
|
+
name: (_a = opts.name) !== null && _a !== void 0 ? _a : exports.defaults.name,
|
|
29
|
+
signatureValidation: (_b = opts.signatureValidation) !== null && _b !== void 0 ? _b : exports.defaults.signatureValidation,
|
|
30
|
+
ERC721Holder: (_c = opts.ERC721Holder) !== null && _c !== void 0 ? _c : exports.defaults.ERC721Holder,
|
|
31
|
+
ERC1155Holder: (_d = opts.ERC1155Holder) !== null && _d !== void 0 ? _d : exports.defaults.ERC1155Holder,
|
|
32
|
+
signer: (_e = opts.signer) !== null && _e !== void 0 ? _e : exports.defaults.signer,
|
|
33
|
+
batchedExecution: (_f = opts.batchedExecution) !== null && _f !== void 0 ? _f : exports.defaults.batchedExecution,
|
|
34
|
+
ERC7579Modules: (_g = opts.ERC7579Modules) !== null && _g !== void 0 ? _g : exports.defaults.ERC7579Modules,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function printAccount(opts = exports.defaults) {
|
|
38
|
+
return (0, print_1.printContract)(buildAccount(opts));
|
|
39
|
+
}
|
|
40
|
+
function buildAccount(opts) {
|
|
41
|
+
const allOpts = withDefaults(opts);
|
|
42
|
+
allOpts.upgradeable = false; // Upgradeability is not yet available for the community contracts
|
|
43
|
+
allOpts.access = false; // Access control options are not used for Account
|
|
44
|
+
const c = new contract_1.ContractBuilder(allOpts.name);
|
|
45
|
+
addParents(c, allOpts);
|
|
46
|
+
overrideRawSignatureValidation(c, allOpts);
|
|
47
|
+
(0, set_info_1.setInfo)(c, allOpts.info);
|
|
48
|
+
if (opts.ERC7579Modules) {
|
|
49
|
+
c.addImportOnly({
|
|
50
|
+
name: 'PackedUserOperation',
|
|
51
|
+
path: '@openzeppelin/contracts/interfaces/draft-IERC4337.sol',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return c;
|
|
55
|
+
}
|
|
56
|
+
function addParents(c, opts) {
|
|
57
|
+
var _a;
|
|
58
|
+
// Base
|
|
59
|
+
c.addParent({
|
|
60
|
+
name: 'Account',
|
|
61
|
+
path: `@openzeppelin/community-contracts/account/Account.sol`,
|
|
62
|
+
});
|
|
63
|
+
c.addOverride({ name: 'Account' }, functions._validateUserOp);
|
|
64
|
+
if (opts.signatureValidation === 'ERC7739')
|
|
65
|
+
addEIP712(c, opts);
|
|
66
|
+
// Extensions
|
|
67
|
+
addSignatureValidation(c, opts);
|
|
68
|
+
addERC7579Modules(c, opts);
|
|
69
|
+
(0, signer_1.addSigner)(c, (_a = opts.signer) !== null && _a !== void 0 ? _a : false);
|
|
70
|
+
addMultisigFunctions(c, opts);
|
|
71
|
+
addBatchedExecution(c, opts);
|
|
72
|
+
addERC721Holder(c, opts);
|
|
73
|
+
addERC1155Holder(c, opts);
|
|
74
|
+
}
|
|
75
|
+
function addSignatureValidation(c, opts) {
|
|
76
|
+
switch (opts.signatureValidation) {
|
|
77
|
+
case 'ERC7739':
|
|
78
|
+
c.addParent({
|
|
79
|
+
name: 'ERC7739',
|
|
80
|
+
path: '@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol',
|
|
81
|
+
});
|
|
82
|
+
break;
|
|
83
|
+
case 'ERC1271':
|
|
84
|
+
c.addParent({
|
|
85
|
+
name: 'IERC1271',
|
|
86
|
+
path: '@openzeppelin/contracts/interfaces/IERC1271.sol',
|
|
87
|
+
});
|
|
88
|
+
c.addOverride({ name: 'IERC1271' }, functions.isValidSignature);
|
|
89
|
+
if (!opts.ERC7579Modules) {
|
|
90
|
+
c.setFunctionBody([
|
|
91
|
+
'return _rawSignatureValidation(hash, signature) ? IERC1271.isValidSignature.selector : bytes4(0xffffffff);',
|
|
92
|
+
], functions.isValidSignature);
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function addERC721Holder(c, opts) {
|
|
98
|
+
if (!opts.ERC721Holder)
|
|
99
|
+
return;
|
|
100
|
+
c.addParent({
|
|
101
|
+
name: 'ERC721Holder',
|
|
102
|
+
path: '@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol',
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function addERC1155Holder(c, opts) {
|
|
106
|
+
if (!opts.ERC1155Holder)
|
|
107
|
+
return;
|
|
108
|
+
c.addParent({
|
|
109
|
+
name: 'ERC1155Holder',
|
|
110
|
+
path: '@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol',
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function addBatchedExecution(c, opts) {
|
|
114
|
+
// ERC-7579 is a superset of ERC-7821
|
|
115
|
+
if (!opts.batchedExecution || !!opts.ERC7579Modules)
|
|
116
|
+
return;
|
|
117
|
+
c.addParent({
|
|
118
|
+
name: 'ERC7821',
|
|
119
|
+
path: '@openzeppelin/community-contracts/account/extensions/ERC7821.sol',
|
|
120
|
+
});
|
|
121
|
+
c.addOverride({ name: 'ERC7821' }, functions._erc7821AuthorizedExecutor);
|
|
122
|
+
c.setFunctionBody(['return caller == address(entryPoint()) || super._erc7821AuthorizedExecutor(caller, mode, executionData);'], functions._erc7821AuthorizedExecutor);
|
|
123
|
+
}
|
|
124
|
+
function addERC7579Modules(c, opts) {
|
|
125
|
+
if (!opts.ERC7579Modules)
|
|
126
|
+
return;
|
|
127
|
+
c.addParent({
|
|
128
|
+
name: opts.ERC7579Modules,
|
|
129
|
+
path: `@openzeppelin/community-contracts/account/extensions/${opts.ERC7579Modules}.sol`,
|
|
130
|
+
});
|
|
131
|
+
if (opts.ERC7579Modules !== 'AccountERC7579') {
|
|
132
|
+
c.addImportOnly({
|
|
133
|
+
name: 'AccountERC7579',
|
|
134
|
+
path: `@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol`,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
c.addOverride({ name: 'AccountERC7579' }, functions.isValidSignature);
|
|
138
|
+
c.addOverride({ name: 'AccountERC7579' }, functions._validateUserOp);
|
|
139
|
+
if (opts.signatureValidation !== 'ERC7739')
|
|
140
|
+
return;
|
|
141
|
+
c.addOverride({ name: 'ERC7739' }, functions.isValidSignature);
|
|
142
|
+
c.setFunctionBody([
|
|
143
|
+
'// ERC-7739 can return the ERC-1271 magic value, 0xffffffff (invalid) or 0x77390001 (detection).',
|
|
144
|
+
'// If the returned value is 0xffffffff, fallback to ERC-7579 validation.',
|
|
145
|
+
'bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);',
|
|
146
|
+
'return erc7739magic == bytes4(0xffffffff) ? AccountERC7579.isValidSignature(hash, signature) : erc7739magic;',
|
|
147
|
+
], functions.isValidSignature);
|
|
148
|
+
}
|
|
149
|
+
function addMultisigFunctions(c, opts) {
|
|
150
|
+
switch (opts.signer) {
|
|
151
|
+
case 'MultisigWeighted':
|
|
152
|
+
c.addFunctionCode(`_setSignerWeights(${functions.setSignerWeights.args.map(({ name }) => name).join(', ')});`, functions.setSignerWeights);
|
|
153
|
+
// eslint-disable-next-line no-fallthrough
|
|
154
|
+
case 'Multisig':
|
|
155
|
+
c.addFunctionCode(`_addSigners(${functions.addSigners.args[0].name});`, functions.addSigners);
|
|
156
|
+
c.addFunctionCode(`_removeSigners(${functions.removeSigners.args[0].name});`, functions.removeSigners);
|
|
157
|
+
c.addFunctionCode(`_setThreshold(${functions.setThreshold.args[0].name});`, functions.setThreshold);
|
|
158
|
+
break;
|
|
159
|
+
default:
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
function addEIP712(c, opts) {
|
|
163
|
+
if (opts.signatureValidation != 'ERC7739')
|
|
164
|
+
return;
|
|
165
|
+
c.addParent({
|
|
166
|
+
name: 'EIP712',
|
|
167
|
+
path: '@openzeppelin/contracts/utils/cryptography/EIP712.sol',
|
|
168
|
+
}, [opts.name, '1']);
|
|
169
|
+
}
|
|
170
|
+
function overrideRawSignatureValidation(c, opts) {
|
|
171
|
+
if (opts.signer && !opts.ERC7579Modules)
|
|
172
|
+
return; // Signer implements _rawSignatureValidation alone
|
|
173
|
+
if (!opts.signer && opts.ERC7579Modules)
|
|
174
|
+
return; // AccountERC7579 implements _rawSignatureValidation alone
|
|
175
|
+
// If no signer or ERC-7579 is used, we need to override the _rawSignatureValidation function
|
|
176
|
+
// to provide a custom validation logic
|
|
177
|
+
if (!opts.signer && !opts.ERC7579Modules) {
|
|
178
|
+
// Custom validation logic
|
|
179
|
+
c.addOverride({ name: 'Account' }, signer_1.signerFunctions._rawSignatureValidation);
|
|
180
|
+
c.setFunctionBody(['// Custom validation logic', 'return false;'], signer_1.signerFunctions._rawSignatureValidation);
|
|
181
|
+
}
|
|
182
|
+
// Dissambiguate between Signer and AccountERC7579
|
|
183
|
+
if (opts.signer && opts.ERC7579Modules) {
|
|
184
|
+
c.addImportOnly({
|
|
185
|
+
name: 'AbstractSigner',
|
|
186
|
+
path: '@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol',
|
|
187
|
+
});
|
|
188
|
+
c.addOverride({ name: 'AbstractSigner' }, signer_1.signerFunctions._rawSignatureValidation);
|
|
189
|
+
c.addOverride({ name: 'AccountERC7579' }, signer_1.signerFunctions._rawSignatureValidation);
|
|
190
|
+
c.setFunctionComments([
|
|
191
|
+
`// IMPORTANT: Make sure Signer${opts.signer} is most derived than AccountERC7579`,
|
|
192
|
+
`// in the inheritance chain (i.e. contract ... is AccountERC7579, ..., Signer${opts.signer})`,
|
|
193
|
+
'// to ensure the correct order of function resolution.',
|
|
194
|
+
'// AccountERC7579 returns false for `_rawSignatureValidation`',
|
|
195
|
+
], signer_1.signerFunctions._rawSignatureValidation);
|
|
196
|
+
// Base override for `_rawSignatureValidation` given MultiSignerERC7913Weighted is MultiSignerERC7913
|
|
197
|
+
if (opts.signer === 'MultisigWeighted') {
|
|
198
|
+
c.addImportOnly(signer_1.signers.Multisig);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const functions = {
|
|
203
|
+
...(0, define_functions_1.defineFunctions)({
|
|
204
|
+
isValidSignature: {
|
|
205
|
+
kind: 'public',
|
|
206
|
+
mutability: 'view',
|
|
207
|
+
args: [
|
|
208
|
+
{ name: 'hash', type: 'bytes32' },
|
|
209
|
+
{ name: 'signature', type: 'bytes calldata' },
|
|
210
|
+
],
|
|
211
|
+
returns: ['bytes4'],
|
|
212
|
+
},
|
|
213
|
+
_validateUserOp: {
|
|
214
|
+
kind: 'internal',
|
|
215
|
+
args: [
|
|
216
|
+
{ name: 'userOp', type: 'PackedUserOperation calldata' },
|
|
217
|
+
{ name: 'userOpHash', type: 'bytes32' },
|
|
218
|
+
],
|
|
219
|
+
returns: ['uint256'],
|
|
220
|
+
},
|
|
221
|
+
_erc7821AuthorizedExecutor: {
|
|
222
|
+
kind: 'internal',
|
|
223
|
+
args: [
|
|
224
|
+
{ name: 'caller', type: 'address' },
|
|
225
|
+
{ name: 'mode', type: 'bytes32' },
|
|
226
|
+
{ name: 'executionData', type: 'bytes calldata' },
|
|
227
|
+
],
|
|
228
|
+
returns: ['bool'],
|
|
229
|
+
mutability: 'view',
|
|
230
|
+
},
|
|
231
|
+
addSigners: {
|
|
232
|
+
kind: 'public',
|
|
233
|
+
args: [{ name: 'signers', type: 'bytes[] memory' }],
|
|
234
|
+
},
|
|
235
|
+
removeSigners: {
|
|
236
|
+
kind: 'public',
|
|
237
|
+
args: [{ name: 'signers', type: 'bytes[] memory' }],
|
|
238
|
+
},
|
|
239
|
+
setThreshold: {
|
|
240
|
+
kind: 'public',
|
|
241
|
+
args: [{ name: 'threshold', type: 'uint256' }],
|
|
242
|
+
},
|
|
243
|
+
setSignerWeights: {
|
|
244
|
+
kind: 'public',
|
|
245
|
+
args: [
|
|
246
|
+
{ name: 'signers', type: 'bytes[] memory' },
|
|
247
|
+
{ name: 'weights', type: 'uint256[] memory' },
|
|
248
|
+
],
|
|
249
|
+
},
|
|
250
|
+
}),
|
|
251
|
+
};
|
|
252
|
+
//# sourceMappingURL=account.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"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"}
|
package/dist/api.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { ERC20Options } from './erc20';
|
|
|
3
3
|
import type { ERC721Options } from './erc721';
|
|
4
4
|
import type { ERC1155Options } from './erc1155';
|
|
5
5
|
import type { StablecoinOptions } from './stablecoin';
|
|
6
|
+
import type { AccountOptions } from './account';
|
|
6
7
|
import type { GovernorOptions } from './governor';
|
|
7
8
|
import type { CustomOptions } from './custom';
|
|
8
9
|
export interface WizardContractAPI<Options extends CommonOptions> {
|
|
@@ -14,23 +15,27 @@ export interface WizardContractAPI<Options extends CommonOptions> {
|
|
|
14
15
|
* The default options that are used for `print`.
|
|
15
16
|
*/
|
|
16
17
|
defaults: Required<Options>;
|
|
18
|
+
}
|
|
19
|
+
export interface AccessControlAPI<Options extends CommonOptions> {
|
|
17
20
|
/**
|
|
18
21
|
* Whether any of the provided options require access control to be enabled. If this returns `true`, then calling `print` with the
|
|
19
22
|
* same options would cause the `access` option to default to `'ownable'` if it was `undefined` or `false`.
|
|
20
23
|
*/
|
|
21
24
|
isAccessControlRequired: (opts: Partial<Options>) => boolean;
|
|
22
25
|
}
|
|
23
|
-
export type ERC20 = WizardContractAPI<ERC20Options>;
|
|
24
|
-
export type ERC721 = WizardContractAPI<ERC721Options>;
|
|
25
|
-
export type ERC1155 = WizardContractAPI<ERC1155Options>;
|
|
26
|
-
export type Stablecoin = WizardContractAPI<StablecoinOptions>;
|
|
27
|
-
export type RealWorldAsset = WizardContractAPI<StablecoinOptions>;
|
|
28
|
-
export type
|
|
29
|
-
export type
|
|
26
|
+
export type ERC20 = WizardContractAPI<ERC20Options> & AccessControlAPI<ERC20Options>;
|
|
27
|
+
export type ERC721 = WizardContractAPI<ERC721Options> & AccessControlAPI<ERC721Options>;
|
|
28
|
+
export type ERC1155 = WizardContractAPI<ERC1155Options> & AccessControlAPI<ERC1155Options>;
|
|
29
|
+
export type Stablecoin = WizardContractAPI<StablecoinOptions> & AccessControlAPI<StablecoinOptions>;
|
|
30
|
+
export type RealWorldAsset = WizardContractAPI<StablecoinOptions> & AccessControlAPI<StablecoinOptions>;
|
|
31
|
+
export type Account = WizardContractAPI<AccountOptions>;
|
|
32
|
+
export type Governor = WizardContractAPI<GovernorOptions> & AccessControlAPI<GovernorOptions>;
|
|
33
|
+
export type Custom = WizardContractAPI<CustomOptions> & AccessControlAPI<CustomOptions>;
|
|
30
34
|
export declare const erc20: ERC20;
|
|
31
35
|
export declare const erc721: ERC721;
|
|
32
36
|
export declare const erc1155: ERC1155;
|
|
33
37
|
export declare const stablecoin: Stablecoin;
|
|
38
|
+
export declare const account: Account;
|
|
34
39
|
export declare const realWorldAsset: RealWorldAsset;
|
|
35
40
|
export declare const governor: Governor;
|
|
36
41
|
export declare const custom: Custom;
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAM5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAM9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,aAAa;IAC9D;;OAEG;IACH,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAM5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAM9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,aAAa;IAC9D;;OAEG;IACH,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,aAAa;IAC7D;;;OAGG;IACH,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;CAC9D;AAED,MAAM,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACrF,MAAM,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxF,MAAM,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAC3F,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AACpG,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AACxG,MAAM,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAC9F,MAAM,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAExF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AACF,eAAO,MAAM,MAAM,EAAE,MAIpB,CAAC;AACF,eAAO,MAAM,OAAO,EAAE,OAIrB,CAAC;AACF,eAAO,MAAM,UAAU,EAAE,UAIxB,CAAC;AACF,eAAO,MAAM,OAAO,EAAE,OAGrB,CAAC;AACF,eAAO,MAAM,cAAc,EAAE,cAI5B,CAAC;AACF,eAAO,MAAM,QAAQ,EAAE,QAItB,CAAC;AACF,eAAO,MAAM,MAAM,EAAE,MAIpB,CAAC"}
|
package/dist/api.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.custom = exports.governor = exports.realWorldAsset = exports.stablecoin = exports.erc1155 = exports.erc721 = exports.erc20 = void 0;
|
|
3
|
+
exports.custom = exports.governor = exports.realWorldAsset = exports.account = exports.stablecoin = exports.erc1155 = exports.erc721 = exports.erc20 = void 0;
|
|
4
4
|
const erc20_1 = require("./erc20");
|
|
5
5
|
const erc721_1 = require("./erc721");
|
|
6
6
|
const erc1155_1 = require("./erc1155");
|
|
7
7
|
const stablecoin_1 = require("./stablecoin");
|
|
8
|
+
const account_1 = require("./account");
|
|
8
9
|
const governor_1 = require("./governor");
|
|
9
10
|
const custom_1 = require("./custom");
|
|
10
11
|
exports.erc20 = {
|
|
@@ -27,6 +28,10 @@ exports.stablecoin = {
|
|
|
27
28
|
defaults: stablecoin_1.defaults,
|
|
28
29
|
isAccessControlRequired: stablecoin_1.isAccessControlRequired,
|
|
29
30
|
};
|
|
31
|
+
exports.account = {
|
|
32
|
+
print: account_1.printAccount,
|
|
33
|
+
defaults: account_1.defaults,
|
|
34
|
+
};
|
|
30
35
|
exports.realWorldAsset = {
|
|
31
36
|
print: stablecoin_1.printStablecoin,
|
|
32
37
|
defaults: stablecoin_1.defaults,
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;AAEA,mCAIiB;AAEjB,qCAIkB;AAElB,uCAImB;AAEnB,6CAIsB;AAEtB,yCAIoB;AAEpB,qCAIkB;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;AAEA,mCAIiB;AAEjB,qCAIkB;AAElB,uCAImB;AAEnB,6CAIsB;AAEtB,uCAAsE;AAEtE,yCAIoB;AAEpB,qCAIkB;AA+BL,QAAA,KAAK,GAAU;IAC1B,KAAK,EAAE,kBAAU;IACjB,QAAQ,EAAE,gBAAa;IACvB,uBAAuB,EAAE,+BAA4B;CACtD,CAAC;AACW,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,oBAAW;IAClB,QAAQ,EAAE,iBAAc;IACxB,uBAAuB,EAAE,gCAA6B;CACvD,CAAC;AACW,QAAA,OAAO,GAAY;IAC9B,KAAK,EAAE,sBAAY;IACnB,QAAQ,EAAE,kBAAe;IACzB,uBAAuB,EAAE,iCAA8B;CACxD,CAAC;AACW,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,4BAAe;IACtB,QAAQ,EAAE,qBAAkB;IAC5B,uBAAuB,EAAE,oCAAiC;CAC3D,CAAC;AACW,QAAA,OAAO,GAAY;IAC9B,KAAK,EAAE,sBAAY;IACnB,QAAQ,EAAE,kBAAe;CAC1B,CAAC;AACW,QAAA,cAAc,GAAmB;IAC5C,KAAK,EAAE,4BAAe;IACtB,QAAQ,EAAE,qBAAkB;IAC5B,uBAAuB,EAAE,oCAAiC;CAC3D,CAAC;AACW,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,wBAAa;IACpB,QAAQ,EAAE,mBAAgB;IAC1B,uBAAuB,EAAE,kCAA+B;CACzD,CAAC;AACW,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,oBAAW;IAClB,QAAQ,EAAE,iBAAc;IACxB,uBAAuB,EAAE,gCAA6B;CACvD,CAAC"}
|
package/dist/build-generic.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { ERC1155Options } from './erc1155';
|
|
|
5
5
|
import type { StablecoinOptions } from './stablecoin';
|
|
6
6
|
import type { GovernorOptions } from './governor';
|
|
7
7
|
import type { Contract } from './contract';
|
|
8
|
+
import type { AccountOptions } from './account';
|
|
8
9
|
export interface KindedOptions {
|
|
9
10
|
ERC20: {
|
|
10
11
|
kind: 'ERC20';
|
|
@@ -21,6 +22,9 @@ export interface KindedOptions {
|
|
|
21
22
|
RealWorldAsset: {
|
|
22
23
|
kind: 'RealWorldAsset';
|
|
23
24
|
} & StablecoinOptions;
|
|
25
|
+
Account: {
|
|
26
|
+
kind: 'Account';
|
|
27
|
+
} & AccountOptions;
|
|
24
28
|
Governor: {
|
|
25
29
|
kind: 'Governor';
|
|
26
30
|
} & GovernorOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-generic.d.ts","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,YAAY,CAAC;IACxC,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG,aAAa,CAAC;IAC3C,OAAO,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,cAAc,CAAC;IAC9C,UAAU,EAAE;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,GAAG,iBAAiB,CAAC;IACvD,cAAc,EAAE;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,GAAG,iBAAiB,CAAC;IAC/D,QAAQ,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe,CAAC;IACjD,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG,aAAa,CAAC;CAC5C;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"build-generic.d.ts","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,YAAY,CAAC;IACxC,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG,aAAa,CAAC;IAC3C,OAAO,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,cAAc,CAAC;IAC9C,UAAU,EAAE;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,GAAG,iBAAiB,CAAC;IACvD,cAAc,EAAE;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,GAAG,iBAAiB,CAAC;IAC/D,OAAO,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,cAAc,CAAC;IAC9C,QAAQ,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe,CAAC;IACjD,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG,aAAa,CAAC;CAC5C;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,CA+B3D"}
|
package/dist/build-generic.js
CHANGED
|
@@ -7,6 +7,7 @@ const erc721_1 = require("./erc721");
|
|
|
7
7
|
const erc1155_1 = require("./erc1155");
|
|
8
8
|
const stablecoin_1 = require("./stablecoin");
|
|
9
9
|
const governor_1 = require("./governor");
|
|
10
|
+
const account_1 = require("./account");
|
|
10
11
|
function buildGeneric(opts) {
|
|
11
12
|
switch (opts.kind) {
|
|
12
13
|
case 'ERC20':
|
|
@@ -19,6 +20,8 @@ function buildGeneric(opts) {
|
|
|
19
20
|
return (0, stablecoin_1.buildStablecoin)(opts);
|
|
20
21
|
case 'RealWorldAsset':
|
|
21
22
|
return (0, stablecoin_1.buildStablecoin)(opts);
|
|
23
|
+
case 'Account':
|
|
24
|
+
return (0, account_1.buildAccount)(opts);
|
|
22
25
|
case 'Governor':
|
|
23
26
|
return (0, governor_1.buildGovernor)(opts);
|
|
24
27
|
case 'Custom':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-generic.js","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"build-generic.js","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":";;AA6BA,oCA+BC;AA3DD,qCAAuC;AAEvC,mCAAqC;AAErC,qCAAuC;AAEvC,uCAAyC;AAEzC,6CAA+C;AAE/C,yCAA2C;AAE3C,uCAAyC;AAgBzC,SAAgB,YAAY,CAAC,IAAoB;IAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;QAE1B,KAAK,QAAQ;YACX,OAAO,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAE3B,KAAK,SAAS;YACZ,OAAO,IAAA,sBAAY,EAAC,IAAI,CAAC,CAAC;QAE5B,KAAK,YAAY;YACf,OAAO,IAAA,4BAAe,EAAC,IAAI,CAAC,CAAC;QAE/B,KAAK,gBAAgB;YACnB,OAAO,IAAA,4BAAe,EAAC,IAAI,CAAC,CAAC;QAE/B,KAAK,SAAS;YACZ,OAAO,IAAA,sBAAY,EAAC,IAAI,CAAC,CAAC;QAE5B,KAAK,UAAU;YACb,OAAO,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC;QAE7B,KAAK,QAAQ;YACX,OAAO,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAE3B,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,IAAI,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1510,9 +1510,9 @@
|
|
|
1510
1510
|
}
|
|
1511
1511
|
},
|
|
1512
1512
|
"node_modules/@openzeppelin/contracts": {
|
|
1513
|
-
"version": "5.
|
|
1514
|
-
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.
|
|
1515
|
-
"integrity": "sha512-
|
|
1513
|
+
"version": "5.3.0",
|
|
1514
|
+
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.3.0.tgz",
|
|
1515
|
+
"integrity": "sha512-zj/KGoW7zxWUE8qOI++rUM18v+VeLTTzKs/DJFkSzHpQFPD/jKKF0TrMxBfGLl3kpdELCNccvB3zmofSzm4nlA==",
|
|
1516
1516
|
"dev": true,
|
|
1517
1517
|
"license": "MIT"
|
|
1518
1518
|
},
|
|
@@ -2195,20 +2195,20 @@
|
|
|
2195
2195
|
}
|
|
2196
2196
|
},
|
|
2197
2197
|
"node_modules/@openzeppelin/contracts": {
|
|
2198
|
-
"version": "5.
|
|
2199
|
-
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.
|
|
2200
|
-
"integrity": "sha512-
|
|
2198
|
+
"version": "5.3.0",
|
|
2199
|
+
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.3.0.tgz",
|
|
2200
|
+
"integrity": "sha512-zj/KGoW7zxWUE8qOI++rUM18v+VeLTTzKs/DJFkSzHpQFPD/jKKF0TrMxBfGLl3kpdELCNccvB3zmofSzm4nlA==",
|
|
2201
2201
|
"dev": true,
|
|
2202
2202
|
"license": "MIT"
|
|
2203
2203
|
},
|
|
2204
2204
|
"node_modules/@openzeppelin/contracts-upgradeable": {
|
|
2205
|
-
"version": "5.
|
|
2206
|
-
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.
|
|
2207
|
-
"integrity": "sha512-
|
|
2205
|
+
"version": "5.3.0",
|
|
2206
|
+
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.3.0.tgz",
|
|
2207
|
+
"integrity": "sha512-yVzSSyTMWO6rapGI5tuqkcLpcGGXA0UA1vScyV5EhE5yw8By3Ewex9rDUw8lfVw0iTkvR/egjfcW5vpk03lqZg==",
|
|
2208
2208
|
"dev": true,
|
|
2209
2209
|
"license": "MIT",
|
|
2210
2210
|
"peerDependencies": {
|
|
2211
|
-
"@openzeppelin/contracts": "5.
|
|
2211
|
+
"@openzeppelin/contracts": "5.3.0"
|
|
2212
2212
|
}
|
|
2213
2213
|
},
|
|
2214
2214
|
"node_modules/@openzeppelin/defender-sdk-base-client": {
|
package/dist/erc20.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export interface ERC20Options extends CommonOptions {
|
|
|
11
11
|
premint?: string;
|
|
12
12
|
premintChainId?: string;
|
|
13
13
|
mintable?: boolean;
|
|
14
|
+
callback?: boolean;
|
|
14
15
|
permit?: boolean;
|
|
15
16
|
/**
|
|
16
17
|
* Whether to keep track of historical balances for voting in on-chain governance, and optionally specify the clock mode.
|
package/dist/erc20.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAMlD,eAAO,MAAM,yBAAyB,0CAA2C,CAAC;AAClF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAgBlC,CAAC;AAEX,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAevE;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,YAAuB,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAE5E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,eAAe,CAoD9D;AA+BD,eAAO,MAAM,cAAc,QAAmC,CAAC;AAE/D,eAAO,MAAM,cAAc,QAAoB,CAAC;AAEhD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAmPD,eAAO,MAAM,SAAS,gJAsDpB,CAAC"}
|