@openzeppelin/wizard 0.5.3 → 0.5.4
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/dist/erc20.d.ts +1 -0
- package/dist/erc20.d.ts.map +1 -1
- package/dist/erc20.js +45 -5
- package/dist/erc20.js.map +1 -1
- 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/stablecoin.d.ts.map +1 -1
- package/dist/generate/stablecoin.js +2 -0
- package/dist/generate/stablecoin.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/package.json +2 -2
- package/src/erc20.ts +46 -0
- package/src/generate/erc20.ts +1 -0
- package/src/generate/stablecoin.ts +2 -0
- package/src/utils/convert-strings.ts +27 -0
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"}
|
package/dist/erc20.js
CHANGED
|
@@ -17,6 +17,7 @@ const print_1 = require("./print");
|
|
|
17
17
|
const set_clock_mode_1 = require("./set-clock-mode");
|
|
18
18
|
const common_functions_1 = require("./common-functions");
|
|
19
19
|
const error_1 = require("./error");
|
|
20
|
+
const convert_strings_1 = require("./utils/convert-strings");
|
|
20
21
|
exports.crossChainBridgingOptions = [false, 'custom', 'superchain'];
|
|
21
22
|
exports.defaults = {
|
|
22
23
|
name: 'MyToken',
|
|
@@ -26,6 +27,7 @@ exports.defaults = {
|
|
|
26
27
|
premint: '0',
|
|
27
28
|
premintChainId: '',
|
|
28
29
|
mintable: false,
|
|
30
|
+
callback: false,
|
|
29
31
|
permit: true,
|
|
30
32
|
votes: false,
|
|
31
33
|
flashmint: false,
|
|
@@ -35,7 +37,7 @@ exports.defaults = {
|
|
|
35
37
|
info: common_options_1.defaults.info,
|
|
36
38
|
};
|
|
37
39
|
function withDefaults(opts) {
|
|
38
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
40
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
39
41
|
return {
|
|
40
42
|
...opts,
|
|
41
43
|
...(0, common_options_1.withCommonDefaults)(opts),
|
|
@@ -44,10 +46,11 @@ function withDefaults(opts) {
|
|
|
44
46
|
premint: opts.premint || exports.defaults.premint,
|
|
45
47
|
premintChainId: opts.premintChainId || exports.defaults.premintChainId,
|
|
46
48
|
mintable: (_c = opts.mintable) !== null && _c !== void 0 ? _c : exports.defaults.mintable,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
callback: (_d = opts.callback) !== null && _d !== void 0 ? _d : exports.defaults.callback,
|
|
50
|
+
permit: (_e = opts.permit) !== null && _e !== void 0 ? _e : exports.defaults.permit,
|
|
51
|
+
votes: (_f = opts.votes) !== null && _f !== void 0 ? _f : exports.defaults.votes,
|
|
52
|
+
flashmint: (_g = opts.flashmint) !== null && _g !== void 0 ? _g : exports.defaults.flashmint,
|
|
53
|
+
crossChainBridging: (_h = opts.crossChainBridging) !== null && _h !== void 0 ? _h : exports.defaults.crossChainBridging,
|
|
51
54
|
};
|
|
52
55
|
}
|
|
53
56
|
function printERC20(opts = exports.defaults) {
|
|
@@ -76,6 +79,9 @@ function buildERC20(opts) {
|
|
|
76
79
|
if (allOpts.mintable) {
|
|
77
80
|
addMintable(c, access);
|
|
78
81
|
}
|
|
82
|
+
if (allOpts.callback) {
|
|
83
|
+
addCallback(c);
|
|
84
|
+
}
|
|
79
85
|
// Note: Votes requires Permit
|
|
80
86
|
if (allOpts.permit || allOpts.votes) {
|
|
81
87
|
addPermit(c, allOpts.name);
|
|
@@ -121,6 +127,14 @@ exports.chainIdPattern = /^(?!$)[1-9]\d*$/;
|
|
|
121
127
|
function isValidChainId(str) {
|
|
122
128
|
return exports.chainIdPattern.test(str);
|
|
123
129
|
}
|
|
130
|
+
function scaleByPowerOfTen(base, exponent) {
|
|
131
|
+
if (exponent < 0) {
|
|
132
|
+
return base / BigInt(10) ** BigInt(-exponent);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
return base * BigInt(10) ** BigInt(exponent);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
124
138
|
function addPremint(c, amount, premintChainId, crossChainBridging) {
|
|
125
139
|
var _a, _b, _c, _d, _e;
|
|
126
140
|
const m = amount.match(exports.premintPattern);
|
|
@@ -133,6 +147,8 @@ function addPremint(c, amount, premintChainId, crossChainBridging) {
|
|
|
133
147
|
const zeroes = new Array(Math.max(0, -decimalPlace)).fill('0').join('');
|
|
134
148
|
const units = integer + decimals + zeroes;
|
|
135
149
|
const exp = decimalPlace <= 0 ? 'decimals()' : `(decimals() - ${decimalPlace})`;
|
|
150
|
+
const validatedBaseUnits = (0, convert_strings_1.toUint256)(units, 'premint');
|
|
151
|
+
checkPotentialPremintOverflow(validatedBaseUnits, decimalPlace);
|
|
136
152
|
c.addConstructorArgument({ type: 'address', name: 'recipient' });
|
|
137
153
|
const mintLine = `_mint(recipient, ${units} * 10 ** ${exp});`;
|
|
138
154
|
if (crossChainBridging) {
|
|
@@ -161,10 +177,34 @@ function addPremint(c, amount, premintChainId, crossChainBridging) {
|
|
|
161
177
|
});
|
|
162
178
|
}
|
|
163
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* Check for potential premint overflow assuming the user's contract has decimals() = 18
|
|
182
|
+
*
|
|
183
|
+
* @param baseUnits The base units of the token, before applying power of 10
|
|
184
|
+
* @param decimalPlace If positive, the number of assumed decimal places in the least significant digits of `validatedBaseUnits`. Ignored if <= 0.
|
|
185
|
+
* @throws OptionsError if the calculated value would overflow uint256
|
|
186
|
+
*/
|
|
187
|
+
function checkPotentialPremintOverflow(baseUnits, decimalPlace) {
|
|
188
|
+
const assumedExp = decimalPlace <= 0 ? 18 : 18 - decimalPlace;
|
|
189
|
+
const calculatedValue = scaleByPowerOfTen(baseUnits, assumedExp);
|
|
190
|
+
if (calculatedValue > convert_strings_1.UINT256_MAX) {
|
|
191
|
+
throw new error_1.OptionsError({
|
|
192
|
+
premint: 'Amount would overflow uint256 after applying decimals',
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
164
196
|
function addMintable(c, access) {
|
|
165
197
|
(0, set_access_control_1.requireAccessControl)(c, exports.functions.mint, access, 'MINTER', 'minter');
|
|
166
198
|
c.addFunctionCode('_mint(to, amount);', exports.functions.mint);
|
|
167
199
|
}
|
|
200
|
+
function addCallback(c) {
|
|
201
|
+
const ERC1363 = {
|
|
202
|
+
name: 'ERC1363',
|
|
203
|
+
path: '@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol',
|
|
204
|
+
};
|
|
205
|
+
c.addParent(ERC1363);
|
|
206
|
+
c.addOverride(ERC1363, common_functions_1.supportsInterface);
|
|
207
|
+
}
|
|
168
208
|
function addPermit(c, name) {
|
|
169
209
|
const ERC20Permit = {
|
|
170
210
|
name: 'ERC20Permit',
|
package/dist/erc20.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20.js","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"erc20.js","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":";;;AAyDA,oCAeC;AAED,gCAEC;AAED,0DAEC;AAED,gCAoDC;AAmCD,wCAEC;AA3KD,yCAA6C;AAE7C,6DAA8E;AAC9E,iDAAmD;AACnD,+DAA2D;AAE3D,qDAAkF;AAElF,uDAAmD;AACnD,yCAAqC;AACrC,mCAAwC;AAExC,qDAAkE;AAClE,yDAAuD;AACvD,mCAAuC;AACvC,6DAAiE;AAEpD,QAAA,yBAAyB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAU,CAAC;AAsBrE,QAAA,QAAQ,GAA2B;IAC9C,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,GAAG;IACZ,cAAc,EAAE,EAAE;IAClB,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,KAAK;IAChB,kBAAkB,EAAE,KAAK;IACzB,MAAM,EAAE,yBAAc,CAAC,MAAM;IAC7B,WAAW,EAAE,yBAAc,CAAC,WAAW;IACvC,IAAI,EAAE,yBAAc,CAAC,IAAI;CACjB,CAAC;AAEX,SAAgB,YAAY,CAAC,IAAkB;;IAC7C,OAAO;QACL,GAAG,IAAI;QACP,GAAG,IAAA,mCAAkB,EAAC,IAAI,CAAC;QAC3B,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,mCAAI,gBAAQ,CAAC,QAAQ;QAC5C,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,mCAAI,gBAAQ,CAAC,QAAQ;QAC5C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,gBAAQ,CAAC,OAAO;QACzC,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,gBAAQ,CAAC,cAAc;QAC9D,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,mCAAI,gBAAQ,CAAC,QAAQ;QAC5C,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,mCAAI,gBAAQ,CAAC,QAAQ;QAC5C,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,gBAAQ,CAAC,MAAM;QACtC,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,gBAAQ,CAAC,KAAK;QACnC,SAAS,EAAE,MAAA,IAAI,CAAC,SAAS,mCAAI,gBAAQ,CAAC,SAAS;QAC/C,kBAAkB,EAAE,MAAA,IAAI,CAAC,kBAAkB,mCAAI,gBAAQ,CAAC,kBAAkB;KAC3E,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,OAAqB,gBAAQ;IACtD,OAAO,IAAA,qBAAa,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,uBAAuB,CAAC,IAA2B;IACjE,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC;AACvE,CAAC;AAED,SAAgB,UAAU,CAAC,IAAkB;IAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEnC,MAAM,CAAC,GAAG,IAAI,0BAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE9C,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,iCAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5E,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,YAAY,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAA,qCAAgB,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5B,IAAA,gCAAc,EAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACvC,IAAA,kBAAO,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEjB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,OAAO,CAAC,CAAkB,EAAE,IAAY,EAAE,MAAc;IAC/D,MAAM,KAAK,GAAG;QACZ,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,+CAA+C;KACtD,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAEnC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,iBAAS,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,iBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,kCAAkC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAkB,EAAE,MAAc;IAC9D,MAAM,aAAa,GAAG;QACpB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,kEAAkE;KACzE,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,iBAAS,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAA,gCAAiB,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,CAAkB;IACrC,CAAC,CAAC,SAAS,CAAC;QACV,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,kEAAkE;KACzE,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,cAAc,GAAG,gCAAgC,CAAC;AAElD,QAAA,cAAc,GAAG,iBAAiB,CAAC;AAEhD,SAAgB,cAAc,CAAC,GAAW;IACxC,OAAO,sBAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,QAAgB;IACvD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,CAAkB,EAClB,MAAc,EACd,cAAsB,EACtB,kBAAsC;;IAEtC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAc,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,CAAC;QACN,MAAM,OAAO,GAAG,MAAA,MAAA,CAAC,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,mCAAI,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAA,MAAA,CAAC,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,mCAAI,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAA,CAAC,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC;QAEnC,IAAI,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxE,MAAM,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;YAC1C,MAAM,GAAG,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,YAAY,GAAG,CAAC;YAEhF,MAAM,kBAAkB,GAAG,IAAA,2BAAS,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACvD,6BAA6B,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;YAEhE,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAEjE,MAAM,QAAQ,GAAG,oBAAoB,KAAK,YAAY,GAAG,IAAI,CAAC;YAE9D,IAAI,kBAAkB,EAAE,CAAC;gBACvB,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;oBAC1B,MAAM,IAAI,oBAAY,CAAC;wBACrB,cAAc,EAAE,mEAAmE;qBACpF,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;oBACpC,MAAM,IAAI,oBAAY,CAAC;wBACrB,cAAc,EAAE,sBAAsB;qBACvC,CAAC,CAAC;gBACL,CAAC;gBAED,CAAC,CAAC,kBAAkB,CAAC,wBAAwB,cAAc,KAAK,CAAC,CAAC;gBAClE,CAAC,CAAC,kBAAkB,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC;gBACxC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,oBAAY,CAAC;YACrB,OAAO,EAAE,oBAAoB;SAC9B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,6BAA6B,CAAC,SAAiB,EAAE,YAAoB;IAC5E,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC;IAC9D,MAAM,eAAe,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEjE,IAAI,eAAe,GAAG,6BAAW,EAAE,CAAC;QAClC,MAAM,IAAI,oBAAY,CAAC;YACrB,OAAO,EAAE,uDAAuD;SACjE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,CAAkB,EAAE,MAAc;IACrD,IAAA,yCAAoB,EAAC,CAAC,EAAE,iBAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC,CAAC,eAAe,CAAC,oBAAoB,EAAE,iBAAS,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,CAAkB;IACrC,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,4DAA4D;KACnE,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,oCAAiB,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,SAAS,CAAC,CAAkB,EAAE,IAAY;IACjD,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,gEAAgE;KACvE,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,iBAAS,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,QAAQ,CAAC,CAAkB,EAAE,SAAoB;IACxD,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,+DAA+D;KACtE,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,iBAAS,CAAC,OAAO,CAAC,CAAC;IAE7C,CAAC,CAAC,aAAa,CAAC;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,0CAA0C;KACjD,CAAC,CAAC;IACH,CAAC,CAAC,WAAW,CACX;QACE,IAAI,EAAE,QAAQ;KACf,EACD,iBAAS,CAAC,MAAM,CACjB,CAAC;IAEF,IAAA,6BAAY,EAAC,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,CAAkB;IACtC,CAAC,CAAC,SAAS,CAAC;QACV,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,mEAAmE;KAC1E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAC5B,CAAkB,EAClB,kBAA2C,EAC3C,WAAwB,EACxB,MAAc;IAEd,MAAM,eAAe,GAAG;QACtB,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,wFAAwF;KAC/F,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7B,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,oCAAiB,CAAC,CAAC;IAElD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,oBAAY,CAAC;YACrB,kBAAkB,EAAE,qEAAqE;SAC1F,CAAC,CAAC;IACL,CAAC;IAED,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,iBAAS,CAAC,iBAAiB,CAAC,CAAC;IAC5D,QAAQ,kBAAkB,EAAE,CAAC;QAC3B,KAAK,QAAQ;YACX,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM;QACR,KAAK,YAAY;YACf,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM;QACR,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,kBAAkB,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAkB,EAAE,MAAc;IAC3D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK,CAAC;QACX,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,wCAAwC,CAAC,CAAC;YACrF,IAAI,oBAAoB,EAAE,CAAC;gBACzB,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;gBACnE,CAAC,CAAC,kBAAkB,CAAC,qEAAqE,CAAC,CAAC;gBAC5F,CAAC,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,CAAC;YACtD,CAAC;YACD,CAAC,CAAC,eAAe,CAAC,CAAC,oDAAoD,CAAC,EAAE,iBAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAC/G,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAA,qCAAgB,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,aAAa,CAAC;YAChC,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACnC,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,2BAA2B,MAAM,iBAAiB,MAAM,KAAK,CAAC,CAAC;YACvG,IAAI,iBAAiB,EAAE,CAAC;gBACtB,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC/D,CAAC,CAAC,kBAAkB,CAAC,cAAc,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,CAAC,CAAC,eAAe,CACf,CAAC,gBAAgB,MAAM,mCAAmC,CAAC,EAC3D,iBAAS,CAAC,iBAAiB,EAC3B,MAAM,CACP,CAAC;YACF,MAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAA,qCAAgB,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5B,CAAC,CAAC,aAAa,CAAC;gBACd,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,2DAA2D;aAClE,CAAC,CAAC;YACH,CAAC,CAAC,eAAe,CACf;gBACE,mHAAmH;gBACnH,wCAAwC;aACzC,EACD,iBAAS,CAAC,iBAAiB,EAC3B,MAAM,CACP,CAAC;YACF,MAAM;QACR,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,MAAM,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAkB;IAC5C,CAAC,CAAC,WAAW,CAAC,iGAAiG,CAAC,CAAC;IACjH,CAAC,CAAC,eAAe,CACf,CAAC,+DAA+D,CAAC,EACjE,iBAAS,CAAC,iBAAiB,EAC3B,MAAM,CACP,CAAC;IACF,CAAC,CAAC,mBAAmB,CACnB;QACE,KAAK;QACL,2FAA2F;QAC3F,IAAI;QACJ,oGAAoG;QACpG,KAAK;KACN,EACD,iBAAS,CAAC,iBAAiB,CAC5B,CAAC;AACJ,CAAC;AAEY,QAAA,SAAS,GAAG,IAAA,kCAAe,EAAC;IACvC,OAAO,EAAE;QACP,IAAI,EAAE,UAAmB;QACzB,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;SACnC;KACF;IAED,QAAQ,EAAE;QACR,IAAI,EAAE,UAAmB;QACzB,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;KACF;IAED,IAAI,EAAE;QACJ,IAAI,EAAE,QAAiB;QACvB,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;SACpC;KACF;IAED,KAAK,EAAE;QACL,IAAI,EAAE,QAAiB;QACvB,IAAI,EAAE,EAAE;KACT;IAED,OAAO,EAAE;QACP,IAAI,EAAE,QAAiB;QACvB,IAAI,EAAE,EAAE;KACT;IAED,QAAQ,EAAE;QACR,IAAI,EAAE,QAAiB;QACvB,IAAI,EAAE,EAAE;KACT;IAED,MAAM,EAAE;QACN,IAAI,EAAE,QAAiB;QACvB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC,SAAS,CAAC;QACpB,UAAU,EAAE,MAAe;KAC5B;IAED,iBAAiB,EAAE;QACjB,IAAI,EAAE,UAAmB;QACzB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC5C;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../../src/generate/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../../src/generate/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AA2BxE,wBAAiB,oBAAoB,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAOzE"}
|
package/dist/generate/erc20.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../src/generate/erc20.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../src/generate/erc20.ts"],"names":[],"mappings":";;AA2BA,oDAOC;AAlCD,oCAAwE;AACxE,8DAAsD;AACtD,sDAAqD;AACrD,0CAA0C;AAC1C,wDAAwD;AACxD,iDAAsD;AAEtD,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAE/B,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,iCAAgB,CAAU;IAClD,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,cAAc,EAAE,CAAC,IAAI,CAAC;IACtB,kBAAkB,EAAE,iCAAyB;IAC7C,MAAM,EAAE,kCAAa;IACrB,WAAW,EAAE,oCAAkB;IAC/B,IAAI,EAAE,sBAAW;CAClB,CAAC;AAEF,QAAe,CAAC,CAAC,oBAAoB;IACnC,KAAK,MAAM,IAAI,IAAI,IAAA,mCAAoB,EAAC,SAAS,CAAC,EAAE,CAAC;QACnD,4DAA4D;QAC5D,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stablecoin.d.ts","sourceRoot":"","sources":["../../src/generate/stablecoin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"stablecoin.d.ts","sourceRoot":"","sources":["../../src/generate/stablecoin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA6CvD,wBAAiB,yBAAyB,IAAI,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAGnF"}
|
|
@@ -12,6 +12,7 @@ const erc20Basic = {
|
|
|
12
12
|
burnable: [false],
|
|
13
13
|
pausable: [false],
|
|
14
14
|
mintable: [false],
|
|
15
|
+
callback: [false],
|
|
15
16
|
permit: [false],
|
|
16
17
|
votes: [false],
|
|
17
18
|
flashmint: [false],
|
|
@@ -27,6 +28,7 @@ const erc20Full = {
|
|
|
27
28
|
burnable: [true],
|
|
28
29
|
pausable: [true],
|
|
29
30
|
mintable: [true],
|
|
31
|
+
callback: [true],
|
|
30
32
|
permit: [true],
|
|
31
33
|
votes: ['timestamp'],
|
|
32
34
|
flashmint: [true],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stablecoin.js","sourceRoot":"","sources":["../../src/generate/stablecoin.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"stablecoin.js","sourceRoot":"","sources":["../../src/generate/stablecoin.ts"],"names":[],"mappings":";;AAgDA,8DAGC;AAnDD,oCAAqD;AACrD,8DAAsD;AACtD,0CAA0C;AAE1C,iDAAsD;AAEtD,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAE/B,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,CAAC,cAAc,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,MAAM,EAAE,CAAC,KAAK,CAAU;IACxB,KAAK,EAAE,CAAC,KAAK,CAAU;IACvB,SAAS,EAAE,CAAC,KAAK,CAAU;IAC3B,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,cAAc,EAAE,CAAC,EAAE,CAAC;IACpB,kBAAkB,EAAE,CAAC,KAAK,CAAU;IACpC,MAAM,EAAE,CAAC,KAAK,CAAU;IACxB,IAAI,EAAE,CAAC,EAAE,CAAU;CACpB,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,CAAC,cAAc,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,MAAM,EAAE,CAAC,IAAI,CAAU;IACvB,KAAK,EAAE,CAAC,WAAW,CAAU;IAC7B,SAAS,EAAE,CAAC,IAAI,CAAU;IAC1B,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,cAAc,EAAE,CAAC,IAAI,CAAC;IACtB,kBAAkB,EAAE,iCAAyB;IAC7C,MAAM,EAAE,kCAAa;IACrB,IAAI,EAAE,sBAAW;CAClB,CAAC;AAEF,MAAM,oBAAoB,GAAG;IAC3B,WAAW,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAU;IACvD,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,CAAC,KAAK,CAAU;CAC9B,CAAC;AAEF,QAAe,CAAC,CAAC,yBAAyB;IACxC,KAAK,CAAC,CAAC,IAAA,mCAAoB,EAAC,EAAE,GAAG,UAAU,EAAE,GAAG,oBAAoB,EAAE,CAAC,CAAC;IACxE,KAAK,CAAC,CAAC,IAAA,mCAAoB,EAAC,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const UINT256_MAX: bigint;
|
|
2
|
+
/**
|
|
3
|
+
* Checks that a string is a valid `uint256` value and converts it to bigint.
|
|
4
|
+
*
|
|
5
|
+
* @param value The value to check.
|
|
6
|
+
* @param field The field name to use in the error if the value is invalid.
|
|
7
|
+
* @throws OptionsError if the value is not a valid number or is greater than the maximum value for `uint256`.
|
|
8
|
+
* @returns The value as a bigint.
|
|
9
|
+
*/
|
|
10
|
+
export declare function toUint256(value: string, field: string): bigint;
|
|
11
|
+
//# sourceMappingURL=convert-strings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-strings.d.ts","sourceRoot":"","sources":["../../src/utils/convert-strings.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAuC,CAAC;AAEhE;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAc9D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UINT256_MAX = void 0;
|
|
4
|
+
exports.toUint256 = toUint256;
|
|
5
|
+
const error_1 = require("../error");
|
|
6
|
+
exports.UINT256_MAX = BigInt(2) ** BigInt(256) - BigInt(1);
|
|
7
|
+
/**
|
|
8
|
+
* Checks that a string is a valid `uint256` value and converts it to bigint.
|
|
9
|
+
*
|
|
10
|
+
* @param value The value to check.
|
|
11
|
+
* @param field The field name to use in the error if the value is invalid.
|
|
12
|
+
* @throws OptionsError if the value is not a valid number or is greater than the maximum value for `uint256`.
|
|
13
|
+
* @returns The value as a bigint.
|
|
14
|
+
*/
|
|
15
|
+
function toUint256(value, field) {
|
|
16
|
+
const isValidNumber = /^\d+$/.test(value);
|
|
17
|
+
if (!isValidNumber) {
|
|
18
|
+
throw new error_1.OptionsError({
|
|
19
|
+
[field]: 'Not a valid number',
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const numValue = BigInt(value);
|
|
23
|
+
if (numValue > exports.UINT256_MAX) {
|
|
24
|
+
throw new error_1.OptionsError({
|
|
25
|
+
[field]: 'Value is greater than uint256 max value',
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return numValue;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=convert-strings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-strings.js","sourceRoot":"","sources":["../../src/utils/convert-strings.ts"],"names":[],"mappings":";;;AAYA,8BAcC;AA1BD,oCAAwC;AAE3B,QAAA,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,KAAa,EAAE,KAAa;IACpD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,oBAAY,CAAC;YACrB,CAAC,KAAK,CAAC,EAAE,oBAAoB;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,QAAQ,GAAG,mBAAW,EAAE,CAAC;QAC3B,MAAM,IAAI,oBAAY,CAAC;YACrB,CAAC,KAAK,CAAC,EAAE,yCAAyC;SACnD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openzeppelin/wizard",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"description": "A boilerplate generator to get started with OpenZeppelin Contracts",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"repository": "https://github.com/OpenZeppelin/contracts-wizard",
|
|
@@ -37,4 +37,4 @@
|
|
|
37
37
|
"ts-node": "^10.4.0",
|
|
38
38
|
"typescript": "^5.0.0"
|
|
39
39
|
}
|
|
40
|
-
}
|
|
40
|
+
}
|
package/src/erc20.ts
CHANGED
|
@@ -13,6 +13,7 @@ import type { ClockMode } from './set-clock-mode';
|
|
|
13
13
|
import { clockModeDefault, setClockMode } from './set-clock-mode';
|
|
14
14
|
import { supportsInterface } from './common-functions';
|
|
15
15
|
import { OptionsError } from './error';
|
|
16
|
+
import { toUint256, UINT256_MAX } from './utils/convert-strings';
|
|
16
17
|
|
|
17
18
|
export const crossChainBridgingOptions = [false, 'custom', 'superchain'] as const;
|
|
18
19
|
export type CrossChainBridging = (typeof crossChainBridgingOptions)[number];
|
|
@@ -25,6 +26,7 @@ export interface ERC20Options extends CommonOptions {
|
|
|
25
26
|
premint?: string;
|
|
26
27
|
premintChainId?: string;
|
|
27
28
|
mintable?: boolean;
|
|
29
|
+
callback?: boolean;
|
|
28
30
|
permit?: boolean;
|
|
29
31
|
/**
|
|
30
32
|
* Whether to keep track of historical balances for voting in on-chain governance, and optionally specify the clock mode.
|
|
@@ -43,6 +45,7 @@ export const defaults: Required<ERC20Options> = {
|
|
|
43
45
|
premint: '0',
|
|
44
46
|
premintChainId: '',
|
|
45
47
|
mintable: false,
|
|
48
|
+
callback: false,
|
|
46
49
|
permit: true,
|
|
47
50
|
votes: false,
|
|
48
51
|
flashmint: false,
|
|
@@ -61,6 +64,7 @@ export function withDefaults(opts: ERC20Options): Required<ERC20Options> {
|
|
|
61
64
|
premint: opts.premint || defaults.premint,
|
|
62
65
|
premintChainId: opts.premintChainId || defaults.premintChainId,
|
|
63
66
|
mintable: opts.mintable ?? defaults.mintable,
|
|
67
|
+
callback: opts.callback ?? defaults.callback,
|
|
64
68
|
permit: opts.permit ?? defaults.permit,
|
|
65
69
|
votes: opts.votes ?? defaults.votes,
|
|
66
70
|
flashmint: opts.flashmint ?? defaults.flashmint,
|
|
@@ -105,6 +109,10 @@ export function buildERC20(opts: ERC20Options): ContractBuilder {
|
|
|
105
109
|
addMintable(c, access);
|
|
106
110
|
}
|
|
107
111
|
|
|
112
|
+
if (allOpts.callback) {
|
|
113
|
+
addCallback(c);
|
|
114
|
+
}
|
|
115
|
+
|
|
108
116
|
// Note: Votes requires Permit
|
|
109
117
|
if (allOpts.permit || allOpts.votes) {
|
|
110
118
|
addPermit(c, allOpts.name);
|
|
@@ -163,6 +171,14 @@ export function isValidChainId(str: string): boolean {
|
|
|
163
171
|
return chainIdPattern.test(str);
|
|
164
172
|
}
|
|
165
173
|
|
|
174
|
+
function scaleByPowerOfTen(base: bigint, exponent: number): bigint {
|
|
175
|
+
if (exponent < 0) {
|
|
176
|
+
return base / BigInt(10) ** BigInt(-exponent);
|
|
177
|
+
} else {
|
|
178
|
+
return base * BigInt(10) ** BigInt(exponent);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
166
182
|
function addPremint(
|
|
167
183
|
c: ContractBuilder,
|
|
168
184
|
amount: string,
|
|
@@ -181,6 +197,9 @@ function addPremint(
|
|
|
181
197
|
const units = integer + decimals + zeroes;
|
|
182
198
|
const exp = decimalPlace <= 0 ? 'decimals()' : `(decimals() - ${decimalPlace})`;
|
|
183
199
|
|
|
200
|
+
const validatedBaseUnits = toUint256(units, 'premint');
|
|
201
|
+
checkPotentialPremintOverflow(validatedBaseUnits, decimalPlace);
|
|
202
|
+
|
|
184
203
|
c.addConstructorArgument({ type: 'address', name: 'recipient' });
|
|
185
204
|
|
|
186
205
|
const mintLine = `_mint(recipient, ${units} * 10 ** ${exp});`;
|
|
@@ -212,11 +231,38 @@ function addPremint(
|
|
|
212
231
|
}
|
|
213
232
|
}
|
|
214
233
|
|
|
234
|
+
/**
|
|
235
|
+
* Check for potential premint overflow assuming the user's contract has decimals() = 18
|
|
236
|
+
*
|
|
237
|
+
* @param baseUnits The base units of the token, before applying power of 10
|
|
238
|
+
* @param decimalPlace If positive, the number of assumed decimal places in the least significant digits of `validatedBaseUnits`. Ignored if <= 0.
|
|
239
|
+
* @throws OptionsError if the calculated value would overflow uint256
|
|
240
|
+
*/
|
|
241
|
+
function checkPotentialPremintOverflow(baseUnits: bigint, decimalPlace: number) {
|
|
242
|
+
const assumedExp = decimalPlace <= 0 ? 18 : 18 - decimalPlace;
|
|
243
|
+
const calculatedValue = scaleByPowerOfTen(baseUnits, assumedExp);
|
|
244
|
+
|
|
245
|
+
if (calculatedValue > UINT256_MAX) {
|
|
246
|
+
throw new OptionsError({
|
|
247
|
+
premint: 'Amount would overflow uint256 after applying decimals',
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
215
252
|
function addMintable(c: ContractBuilder, access: Access) {
|
|
216
253
|
requireAccessControl(c, functions.mint, access, 'MINTER', 'minter');
|
|
217
254
|
c.addFunctionCode('_mint(to, amount);', functions.mint);
|
|
218
255
|
}
|
|
219
256
|
|
|
257
|
+
function addCallback(c: ContractBuilder) {
|
|
258
|
+
const ERC1363 = {
|
|
259
|
+
name: 'ERC1363',
|
|
260
|
+
path: '@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol',
|
|
261
|
+
};
|
|
262
|
+
c.addParent(ERC1363);
|
|
263
|
+
c.addOverride(ERC1363, supportsInterface);
|
|
264
|
+
}
|
|
265
|
+
|
|
220
266
|
function addPermit(c: ContractBuilder, name: string) {
|
|
221
267
|
const ERC20Permit = {
|
|
222
268
|
name: 'ERC20Permit',
|
package/src/generate/erc20.ts
CHANGED
|
@@ -12,6 +12,7 @@ const erc20Basic = {
|
|
|
12
12
|
burnable: [false] as const,
|
|
13
13
|
pausable: [false] as const,
|
|
14
14
|
mintable: [false] as const,
|
|
15
|
+
callback: [false] as const,
|
|
15
16
|
permit: [false] as const,
|
|
16
17
|
votes: [false] as const,
|
|
17
18
|
flashmint: [false] as const,
|
|
@@ -28,6 +29,7 @@ const erc20Full = {
|
|
|
28
29
|
burnable: [true] as const,
|
|
29
30
|
pausable: [true] as const,
|
|
30
31
|
mintable: [true] as const,
|
|
32
|
+
callback: [true] as const,
|
|
31
33
|
permit: [true] as const,
|
|
32
34
|
votes: ['timestamp'] as const,
|
|
33
35
|
flashmint: [true] as const,
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { OptionsError } from '../error';
|
|
2
|
+
|
|
3
|
+
export const UINT256_MAX = BigInt(2) ** BigInt(256) - BigInt(1);
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Checks that a string is a valid `uint256` value and converts it to bigint.
|
|
7
|
+
*
|
|
8
|
+
* @param value The value to check.
|
|
9
|
+
* @param field The field name to use in the error if the value is invalid.
|
|
10
|
+
* @throws OptionsError if the value is not a valid number or is greater than the maximum value for `uint256`.
|
|
11
|
+
* @returns The value as a bigint.
|
|
12
|
+
*/
|
|
13
|
+
export function toUint256(value: string, field: string): bigint {
|
|
14
|
+
const isValidNumber = /^\d+$/.test(value);
|
|
15
|
+
if (!isValidNumber) {
|
|
16
|
+
throw new OptionsError({
|
|
17
|
+
[field]: 'Not a valid number',
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
const numValue = BigInt(value);
|
|
21
|
+
if (numValue > UINT256_MAX) {
|
|
22
|
+
throw new OptionsError({
|
|
23
|
+
[field]: 'Value is greater than uint256 max value',
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return numValue;
|
|
27
|
+
}
|