@openzeppelin/wizard 0.1.1 → 0.2.1
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/CHANGELOG.md +18 -0
- package/README.md +2 -0
- package/dist/api.d.ts +5 -5
- package/dist/api.d.ts.map +1 -1
- package/dist/build-generic.d.ts +1 -1
- package/dist/build-generic.d.ts.map +1 -1
- package/dist/contract.d.ts +3 -3
- package/dist/contract.d.ts.map +1 -1
- package/dist/environments/hardhat/package-lock.json +15204 -0
- package/dist/environments/hardhat/package.json +34 -0
- package/dist/environments/hardhat/upgradeable/package-lock.json +15588 -0
- package/dist/environments/hardhat/upgradeable/package.json +35 -0
- package/dist/erc1155.js +1 -1
- package/dist/erc1155.js.map +1 -1
- package/dist/erc721.js +2 -0
- package/dist/erc721.js.map +1 -1
- package/dist/error.d.ts +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/generate/alternatives.d.ts +2 -2
- package/dist/generate/alternatives.d.ts.map +1 -1
- package/dist/generate/sources.d.ts +1 -1
- package/dist/generate/sources.d.ts.map +1 -1
- package/dist/governor.d.ts +2 -2
- package/dist/governor.d.ts.map +1 -1
- package/dist/governor.js +1 -1
- package/dist/governor.js.map +1 -1
- package/dist/kind.d.ts +1 -1
- package/dist/kind.d.ts.map +1 -1
- package/dist/print-versioned.js +5 -2
- package/dist/print-versioned.js.map +1 -1
- package/dist/print.d.ts.map +1 -1
- package/dist/print.js +5 -2
- package/dist/print.js.map +1 -1
- package/dist/set-access-control.d.ts +1 -1
- package/dist/set-access-control.d.ts.map +1 -1
- package/dist/set-info.d.ts +1 -1
- package/dist/set-info.d.ts.map +1 -1
- package/dist/set-upgradeable.d.ts +1 -1
- package/dist/set-upgradeable.d.ts.map +1 -1
- package/dist/solidity-version.json +1 -0
- package/dist/utils/define-functions.d.ts +1 -1
- package/dist/utils/define-functions.d.ts.map +1 -1
- package/dist/utils/format-lines.d.ts +2 -1
- package/dist/utils/format-lines.d.ts.map +1 -1
- package/dist/utils/format-lines.js +9 -5
- package/dist/utils/format-lines.js.map +1 -1
- package/dist/utils/transitive-closure.d.ts +1 -1
- package/dist/utils/transitive-closure.d.ts.map +1 -1
- package/dist/zip-hardhat.d.ts +5 -0
- package/dist/zip-hardhat.d.ts.map +1 -0
- package/dist/zip-hardhat.js +187 -0
- package/dist/zip-hardhat.js.map +1 -0
- package/dist/zip.js +1 -1
- package/dist/zip.js.map +1 -1
- package/package.json +9 -7
- package/src/.DS_Store +0 -0
- package/src/environments/.DS_Store +0 -0
- package/src/environments/hardhat/.DS_Store +0 -0
- package/src/environments/hardhat/package-lock.json +15204 -0
- package/src/environments/hardhat/package.json +34 -0
- package/src/environments/hardhat/upgradeable/package-lock.json +15588 -0
- package/src/environments/hardhat/upgradeable/package.json +35 -0
- package/src/erc1155.ts +1 -1
- package/src/erc721.ts +2 -0
- package/src/governor.ts +1 -1
- package/src/print-versioned.ts +2 -2
- package/src/print.ts +1 -2
- package/src/solidity-version.json +1 -0
- package/src/utils/format-lines.ts +8 -3
- package/src/zip-hardhat.ts +186 -0
- package/src/zip.ts +1 -1
- package/dist/contract.test.d.ts +0 -2
- package/dist/contract.test.d.ts.map +0 -1
- package/dist/contract.test.js +0 -147
- package/dist/contract.test.js.map +0 -1
- package/dist/custom.test.d.ts +0 -2
- package/dist/custom.test.d.ts.map +0 -1
- package/dist/custom.test.js +0 -70
- package/dist/custom.test.js.map +0 -1
- package/dist/erc1155.test.d.ts +0 -2
- package/dist/erc1155.test.d.ts.map +0 -1
- package/dist/erc1155.test.js +0 -91
- package/dist/erc1155.test.js.map +0 -1
- package/dist/erc20.test.d.ts +0 -2
- package/dist/erc20.test.d.ts.map +0 -1
- package/dist/erc20.test.js +0 -133
- package/dist/erc20.test.js.map +0 -1
- package/dist/erc721.test.d.ts +0 -2
- package/dist/erc721.test.d.ts.map +0 -1
- package/dist/erc721.test.js +0 -112
- package/dist/erc721.test.js.map +0 -1
- package/dist/governor.test.d.ts +0 -2
- package/dist/governor.test.d.ts.map +0 -1
- package/dist/governor.test.js +0 -108
- package/dist/governor.test.js.map +0 -1
- package/dist/utils/to-identifier.test.d.ts +0 -2
- package/dist/utils/to-identifier.test.d.ts.map +0 -1
- package/dist/utils/to-identifier.test.js +0 -21
- package/dist/utils/to-identifier.test.js.map +0 -1
- package/dist/zip.test.d.ts +0 -2
- package/dist/zip.test.d.ts.map +0 -1
- package/dist/zip.test.js +0 -37
- package/dist/zip.test.js.map +0 -1
- package/src/contract.test.ts +0 -164
- package/src/contract.test.ts.md +0 -272
- package/src/contract.test.ts.snap +0 -0
- package/src/custom.test.ts +0 -80
- package/src/custom.test.ts.md +0 -154
- package/src/custom.test.ts.snap +0 -0
- package/src/erc1155.test.ts +0 -103
- package/src/erc1155.test.ts.md +0 -432
- package/src/erc1155.test.ts.snap +0 -0
- package/src/erc20.test.ts +0 -152
- package/src/erc20.test.ts.md +0 -571
- package/src/erc20.test.ts.snap +0 -0
- package/src/erc721.test.ts +0 -129
- package/src/erc721.test.ts.md +0 -517
- package/src/erc721.test.ts.snap +0 -0
- package/src/governor.test.ts +0 -125
- package/src/governor.test.ts.md +0 -1419
- package/src/governor.test.ts.snap +0 -0
- package/src/utils/to-identifier.test.ts +0 -20
- package/src/zip.test.ts +0 -35
package/src/erc721.test.ts.md
DELETED
|
@@ -1,517 +0,0 @@
|
|
|
1
|
-
# Snapshot report for `src/erc721.test.ts`
|
|
2
|
-
|
|
3
|
-
The actual snapshot is saved in `erc721.test.ts.snap`.
|
|
4
|
-
|
|
5
|
-
Generated by [AVA](https://avajs.dev).
|
|
6
|
-
|
|
7
|
-
## basic
|
|
8
|
-
|
|
9
|
-
> Snapshot 1
|
|
10
|
-
|
|
11
|
-
`// SPDX-License-Identifier: MIT␊
|
|
12
|
-
pragma solidity ^0.8.4;␊
|
|
13
|
-
␊
|
|
14
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
15
|
-
␊
|
|
16
|
-
contract MyToken is ERC721 {␊
|
|
17
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
18
|
-
}␊
|
|
19
|
-
`
|
|
20
|
-
|
|
21
|
-
## base uri
|
|
22
|
-
|
|
23
|
-
> Snapshot 1
|
|
24
|
-
|
|
25
|
-
`// SPDX-License-Identifier: MIT␊
|
|
26
|
-
pragma solidity ^0.8.4;␊
|
|
27
|
-
␊
|
|
28
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
29
|
-
␊
|
|
30
|
-
contract MyToken is ERC721 {␊
|
|
31
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
32
|
-
␊
|
|
33
|
-
function _baseURI() internal pure override returns (string memory) {␊
|
|
34
|
-
return "https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/";␊
|
|
35
|
-
}␊
|
|
36
|
-
}␊
|
|
37
|
-
`
|
|
38
|
-
|
|
39
|
-
## enumerable
|
|
40
|
-
|
|
41
|
-
> Snapshot 1
|
|
42
|
-
|
|
43
|
-
`// SPDX-License-Identifier: MIT␊
|
|
44
|
-
pragma solidity ^0.8.4;␊
|
|
45
|
-
␊
|
|
46
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
47
|
-
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";␊
|
|
48
|
-
␊
|
|
49
|
-
contract MyToken is ERC721, ERC721Enumerable {␊
|
|
50
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
51
|
-
␊
|
|
52
|
-
// The following functions are overrides required by Solidity.␊
|
|
53
|
-
␊
|
|
54
|
-
function _beforeTokenTransfer(address from, address to, uint256 tokenId)␊
|
|
55
|
-
internal␊
|
|
56
|
-
override(ERC721, ERC721Enumerable)␊
|
|
57
|
-
{␊
|
|
58
|
-
super._beforeTokenTransfer(from, to, tokenId);␊
|
|
59
|
-
}␊
|
|
60
|
-
␊
|
|
61
|
-
function supportsInterface(bytes4 interfaceId)␊
|
|
62
|
-
public␊
|
|
63
|
-
view␊
|
|
64
|
-
override(ERC721, ERC721Enumerable)␊
|
|
65
|
-
returns (bool)␊
|
|
66
|
-
{␊
|
|
67
|
-
return super.supportsInterface(interfaceId);␊
|
|
68
|
-
}␊
|
|
69
|
-
}␊
|
|
70
|
-
`
|
|
71
|
-
|
|
72
|
-
## uri storage
|
|
73
|
-
|
|
74
|
-
> Snapshot 1
|
|
75
|
-
|
|
76
|
-
`// SPDX-License-Identifier: MIT␊
|
|
77
|
-
pragma solidity ^0.8.4;␊
|
|
78
|
-
␊
|
|
79
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
80
|
-
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";␊
|
|
81
|
-
␊
|
|
82
|
-
contract MyToken is ERC721, ERC721URIStorage {␊
|
|
83
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
84
|
-
␊
|
|
85
|
-
// The following functions are overrides required by Solidity.␊
|
|
86
|
-
␊
|
|
87
|
-
function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {␊
|
|
88
|
-
super._burn(tokenId);␊
|
|
89
|
-
}␊
|
|
90
|
-
␊
|
|
91
|
-
function tokenURI(uint256 tokenId)␊
|
|
92
|
-
public␊
|
|
93
|
-
view␊
|
|
94
|
-
override(ERC721, ERC721URIStorage)␊
|
|
95
|
-
returns (string memory)␊
|
|
96
|
-
{␊
|
|
97
|
-
return super.tokenURI(tokenId);␊
|
|
98
|
-
}␊
|
|
99
|
-
}␊
|
|
100
|
-
`
|
|
101
|
-
|
|
102
|
-
## mintable + uri storage
|
|
103
|
-
|
|
104
|
-
> Snapshot 1
|
|
105
|
-
|
|
106
|
-
`// SPDX-License-Identifier: MIT␊
|
|
107
|
-
pragma solidity ^0.8.4;␊
|
|
108
|
-
␊
|
|
109
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
110
|
-
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";␊
|
|
111
|
-
import "@openzeppelin/contracts/access/Ownable.sol";␊
|
|
112
|
-
␊
|
|
113
|
-
contract MyToken is ERC721, ERC721URIStorage, Ownable {␊
|
|
114
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
115
|
-
␊
|
|
116
|
-
function safeMint(address to, uint256 tokenId, string memory uri)␊
|
|
117
|
-
public␊
|
|
118
|
-
onlyOwner␊
|
|
119
|
-
{␊
|
|
120
|
-
_safeMint(to, tokenId);␊
|
|
121
|
-
_setTokenURI(tokenId, uri);␊
|
|
122
|
-
}␊
|
|
123
|
-
␊
|
|
124
|
-
// The following functions are overrides required by Solidity.␊
|
|
125
|
-
␊
|
|
126
|
-
function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {␊
|
|
127
|
-
super._burn(tokenId);␊
|
|
128
|
-
}␊
|
|
129
|
-
␊
|
|
130
|
-
function tokenURI(uint256 tokenId)␊
|
|
131
|
-
public␊
|
|
132
|
-
view␊
|
|
133
|
-
override(ERC721, ERC721URIStorage)␊
|
|
134
|
-
returns (string memory)␊
|
|
135
|
-
{␊
|
|
136
|
-
return super.tokenURI(tokenId);␊
|
|
137
|
-
}␊
|
|
138
|
-
}␊
|
|
139
|
-
`
|
|
140
|
-
|
|
141
|
-
## mintable + uri storage + incremental
|
|
142
|
-
|
|
143
|
-
> Snapshot 1
|
|
144
|
-
|
|
145
|
-
`// SPDX-License-Identifier: MIT␊
|
|
146
|
-
pragma solidity ^0.8.4;␊
|
|
147
|
-
␊
|
|
148
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
149
|
-
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";␊
|
|
150
|
-
import "@openzeppelin/contracts/access/Ownable.sol";␊
|
|
151
|
-
import "@openzeppelin/contracts/utils/Counters.sol";␊
|
|
152
|
-
␊
|
|
153
|
-
contract MyToken is ERC721, ERC721URIStorage, Ownable {␊
|
|
154
|
-
using Counters for Counters.Counter;␊
|
|
155
|
-
␊
|
|
156
|
-
Counters.Counter private _tokenIdCounter;␊
|
|
157
|
-
␊
|
|
158
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
159
|
-
␊
|
|
160
|
-
function safeMint(address to, string memory uri) public onlyOwner {␊
|
|
161
|
-
uint256 tokenId = _tokenIdCounter.current();␊
|
|
162
|
-
_tokenIdCounter.increment();␊
|
|
163
|
-
_safeMint(to, tokenId);␊
|
|
164
|
-
_setTokenURI(tokenId, uri);␊
|
|
165
|
-
}␊
|
|
166
|
-
␊
|
|
167
|
-
// The following functions are overrides required by Solidity.␊
|
|
168
|
-
␊
|
|
169
|
-
function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {␊
|
|
170
|
-
super._burn(tokenId);␊
|
|
171
|
-
}␊
|
|
172
|
-
␊
|
|
173
|
-
function tokenURI(uint256 tokenId)␊
|
|
174
|
-
public␊
|
|
175
|
-
view␊
|
|
176
|
-
override(ERC721, ERC721URIStorage)␊
|
|
177
|
-
returns (string memory)␊
|
|
178
|
-
{␊
|
|
179
|
-
return super.tokenURI(tokenId);␊
|
|
180
|
-
}␊
|
|
181
|
-
}␊
|
|
182
|
-
`
|
|
183
|
-
|
|
184
|
-
## burnable
|
|
185
|
-
|
|
186
|
-
> Snapshot 1
|
|
187
|
-
|
|
188
|
-
`// SPDX-License-Identifier: MIT␊
|
|
189
|
-
pragma solidity ^0.8.4;␊
|
|
190
|
-
␊
|
|
191
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
192
|
-
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol";␊
|
|
193
|
-
␊
|
|
194
|
-
contract MyToken is ERC721, ERC721Burnable {␊
|
|
195
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
196
|
-
}␊
|
|
197
|
-
`
|
|
198
|
-
|
|
199
|
-
## burnable + uri storage
|
|
200
|
-
|
|
201
|
-
> Snapshot 1
|
|
202
|
-
|
|
203
|
-
`// SPDX-License-Identifier: MIT␊
|
|
204
|
-
pragma solidity ^0.8.4;␊
|
|
205
|
-
␊
|
|
206
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
207
|
-
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";␊
|
|
208
|
-
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol";␊
|
|
209
|
-
␊
|
|
210
|
-
contract MyToken is ERC721, ERC721URIStorage, ERC721Burnable {␊
|
|
211
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
212
|
-
␊
|
|
213
|
-
// The following functions are overrides required by Solidity.␊
|
|
214
|
-
␊
|
|
215
|
-
function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {␊
|
|
216
|
-
super._burn(tokenId);␊
|
|
217
|
-
}␊
|
|
218
|
-
␊
|
|
219
|
-
function tokenURI(uint256 tokenId)␊
|
|
220
|
-
public␊
|
|
221
|
-
view␊
|
|
222
|
-
override(ERC721, ERC721URIStorage)␊
|
|
223
|
-
returns (string memory)␊
|
|
224
|
-
{␊
|
|
225
|
-
return super.tokenURI(tokenId);␊
|
|
226
|
-
}␊
|
|
227
|
-
}␊
|
|
228
|
-
`
|
|
229
|
-
|
|
230
|
-
## pausable
|
|
231
|
-
|
|
232
|
-
> Snapshot 1
|
|
233
|
-
|
|
234
|
-
`// SPDX-License-Identifier: MIT␊
|
|
235
|
-
pragma solidity ^0.8.4;␊
|
|
236
|
-
␊
|
|
237
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
238
|
-
import "@openzeppelin/contracts/security/Pausable.sol";␊
|
|
239
|
-
import "@openzeppelin/contracts/access/Ownable.sol";␊
|
|
240
|
-
␊
|
|
241
|
-
contract MyToken is ERC721, Pausable, Ownable {␊
|
|
242
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
243
|
-
␊
|
|
244
|
-
function pause() public onlyOwner {␊
|
|
245
|
-
_pause();␊
|
|
246
|
-
}␊
|
|
247
|
-
␊
|
|
248
|
-
function unpause() public onlyOwner {␊
|
|
249
|
-
_unpause();␊
|
|
250
|
-
}␊
|
|
251
|
-
␊
|
|
252
|
-
function _beforeTokenTransfer(address from, address to, uint256 tokenId)␊
|
|
253
|
-
internal␊
|
|
254
|
-
whenNotPaused␊
|
|
255
|
-
override␊
|
|
256
|
-
{␊
|
|
257
|
-
super._beforeTokenTransfer(from, to, tokenId);␊
|
|
258
|
-
}␊
|
|
259
|
-
}␊
|
|
260
|
-
`
|
|
261
|
-
|
|
262
|
-
## mintable
|
|
263
|
-
|
|
264
|
-
> Snapshot 1
|
|
265
|
-
|
|
266
|
-
`// SPDX-License-Identifier: MIT␊
|
|
267
|
-
pragma solidity ^0.8.4;␊
|
|
268
|
-
␊
|
|
269
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
270
|
-
import "@openzeppelin/contracts/access/Ownable.sol";␊
|
|
271
|
-
␊
|
|
272
|
-
contract MyToken is ERC721, Ownable {␊
|
|
273
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
274
|
-
␊
|
|
275
|
-
function safeMint(address to, uint256 tokenId) public onlyOwner {␊
|
|
276
|
-
_safeMint(to, tokenId);␊
|
|
277
|
-
}␊
|
|
278
|
-
}␊
|
|
279
|
-
`
|
|
280
|
-
|
|
281
|
-
## mintable + roles
|
|
282
|
-
|
|
283
|
-
> Snapshot 1
|
|
284
|
-
|
|
285
|
-
`// SPDX-License-Identifier: MIT␊
|
|
286
|
-
pragma solidity ^0.8.4;␊
|
|
287
|
-
␊
|
|
288
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
289
|
-
import "@openzeppelin/contracts/access/AccessControl.sol";␊
|
|
290
|
-
␊
|
|
291
|
-
contract MyToken is ERC721, AccessControl {␊
|
|
292
|
-
bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");␊
|
|
293
|
-
␊
|
|
294
|
-
constructor() ERC721("MyToken", "MTK") {␊
|
|
295
|
-
_grantRole(DEFAULT_ADMIN_ROLE, msg.sender);␊
|
|
296
|
-
_grantRole(MINTER_ROLE, msg.sender);␊
|
|
297
|
-
}␊
|
|
298
|
-
␊
|
|
299
|
-
function safeMint(address to, uint256 tokenId) public onlyRole(MINTER_ROLE) {␊
|
|
300
|
-
_safeMint(to, tokenId);␊
|
|
301
|
-
}␊
|
|
302
|
-
␊
|
|
303
|
-
// The following functions are overrides required by Solidity.␊
|
|
304
|
-
␊
|
|
305
|
-
function supportsInterface(bytes4 interfaceId)␊
|
|
306
|
-
public␊
|
|
307
|
-
view␊
|
|
308
|
-
override(ERC721, AccessControl)␊
|
|
309
|
-
returns (bool)␊
|
|
310
|
-
{␊
|
|
311
|
-
return super.supportsInterface(interfaceId);␊
|
|
312
|
-
}␊
|
|
313
|
-
}␊
|
|
314
|
-
`
|
|
315
|
-
|
|
316
|
-
## mintable + incremental
|
|
317
|
-
|
|
318
|
-
> Snapshot 1
|
|
319
|
-
|
|
320
|
-
`// SPDX-License-Identifier: MIT␊
|
|
321
|
-
pragma solidity ^0.8.4;␊
|
|
322
|
-
␊
|
|
323
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
324
|
-
import "@openzeppelin/contracts/access/Ownable.sol";␊
|
|
325
|
-
import "@openzeppelin/contracts/utils/Counters.sol";␊
|
|
326
|
-
␊
|
|
327
|
-
contract MyToken is ERC721, Ownable {␊
|
|
328
|
-
using Counters for Counters.Counter;␊
|
|
329
|
-
␊
|
|
330
|
-
Counters.Counter private _tokenIdCounter;␊
|
|
331
|
-
␊
|
|
332
|
-
constructor() ERC721("MyToken", "MTK") {}␊
|
|
333
|
-
␊
|
|
334
|
-
function safeMint(address to) public onlyOwner {␊
|
|
335
|
-
uint256 tokenId = _tokenIdCounter.current();␊
|
|
336
|
-
_tokenIdCounter.increment();␊
|
|
337
|
-
_safeMint(to, tokenId);␊
|
|
338
|
-
}␊
|
|
339
|
-
}␊
|
|
340
|
-
`
|
|
341
|
-
|
|
342
|
-
## votes
|
|
343
|
-
|
|
344
|
-
> Snapshot 1
|
|
345
|
-
|
|
346
|
-
`// SPDX-License-Identifier: MIT␊
|
|
347
|
-
pragma solidity ^0.8.4;␊
|
|
348
|
-
␊
|
|
349
|
-
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊
|
|
350
|
-
import "@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol";␊
|
|
351
|
-
import "@openzeppelin/contracts/token/ERC721/extensions/draft-ERC721Votes.sol";␊
|
|
352
|
-
␊
|
|
353
|
-
contract MyToken is ERC721, EIP712, ERC721Votes {␊
|
|
354
|
-
constructor() ERC721("MyToken", "MTK") EIP712("MyToken", "1") {}␊
|
|
355
|
-
␊
|
|
356
|
-
// The following functions are overrides required by Solidity.␊
|
|
357
|
-
␊
|
|
358
|
-
function _afterTokenTransfer(address from, address to, uint256 tokenId)␊
|
|
359
|
-
internal␊
|
|
360
|
-
override(ERC721, ERC721Votes)␊
|
|
361
|
-
{␊
|
|
362
|
-
super._afterTokenTransfer(from, to, tokenId);␊
|
|
363
|
-
}␊
|
|
364
|
-
}␊
|
|
365
|
-
`
|
|
366
|
-
|
|
367
|
-
## full upgradeable transparent
|
|
368
|
-
|
|
369
|
-
> Snapshot 1
|
|
370
|
-
|
|
371
|
-
`// SPDX-License-Identifier: MIT␊
|
|
372
|
-
pragma solidity ^0.8.4;␊
|
|
373
|
-
␊
|
|
374
|
-
import "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊
|
|
375
|
-
import "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol";␊
|
|
376
|
-
import "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";␊
|
|
377
|
-
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊
|
|
378
|
-
import "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol";␊
|
|
379
|
-
import "@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol";␊
|
|
380
|
-
import "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/draft-ERC721VotesUpgradeable.sol";␊
|
|
381
|
-
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊
|
|
382
|
-
␊
|
|
383
|
-
contract MyToken is Initializable, ERC721Upgradeable, ERC721EnumerableUpgradeable, PausableUpgradeable, OwnableUpgradeable, ERC721BurnableUpgradeable, EIP712Upgradeable, ERC721VotesUpgradeable {␊
|
|
384
|
-
/// @custom:oz-upgrades-unsafe-allow constructor␊
|
|
385
|
-
constructor() {␊
|
|
386
|
-
_disableInitializers();␊
|
|
387
|
-
}␊
|
|
388
|
-
␊
|
|
389
|
-
function initialize() initializer public {␊
|
|
390
|
-
__ERC721_init("MyToken", "MTK");␊
|
|
391
|
-
__ERC721Enumerable_init();␊
|
|
392
|
-
__Pausable_init();␊
|
|
393
|
-
__Ownable_init();␊
|
|
394
|
-
__ERC721Burnable_init();␊
|
|
395
|
-
__EIP712_init("MyToken", "1");␊
|
|
396
|
-
__ERC721Votes_init();␊
|
|
397
|
-
}␊
|
|
398
|
-
␊
|
|
399
|
-
function pause() public onlyOwner {␊
|
|
400
|
-
_pause();␊
|
|
401
|
-
}␊
|
|
402
|
-
␊
|
|
403
|
-
function unpause() public onlyOwner {␊
|
|
404
|
-
_unpause();␊
|
|
405
|
-
}␊
|
|
406
|
-
␊
|
|
407
|
-
function safeMint(address to, uint256 tokenId) public onlyOwner {␊
|
|
408
|
-
_safeMint(to, tokenId);␊
|
|
409
|
-
}␊
|
|
410
|
-
␊
|
|
411
|
-
function _beforeTokenTransfer(address from, address to, uint256 tokenId)␊
|
|
412
|
-
internal␊
|
|
413
|
-
whenNotPaused␊
|
|
414
|
-
override(ERC721Upgradeable, ERC721EnumerableUpgradeable)␊
|
|
415
|
-
{␊
|
|
416
|
-
super._beforeTokenTransfer(from, to, tokenId);␊
|
|
417
|
-
}␊
|
|
418
|
-
␊
|
|
419
|
-
// The following functions are overrides required by Solidity.␊
|
|
420
|
-
␊
|
|
421
|
-
function _afterTokenTransfer(address from, address to, uint256 tokenId)␊
|
|
422
|
-
internal␊
|
|
423
|
-
override(ERC721Upgradeable, ERC721VotesUpgradeable)␊
|
|
424
|
-
{␊
|
|
425
|
-
super._afterTokenTransfer(from, to, tokenId);␊
|
|
426
|
-
}␊
|
|
427
|
-
␊
|
|
428
|
-
function supportsInterface(bytes4 interfaceId)␊
|
|
429
|
-
public␊
|
|
430
|
-
view␊
|
|
431
|
-
override(ERC721Upgradeable, ERC721EnumerableUpgradeable)␊
|
|
432
|
-
returns (bool)␊
|
|
433
|
-
{␊
|
|
434
|
-
return super.supportsInterface(interfaceId);␊
|
|
435
|
-
}␊
|
|
436
|
-
}␊
|
|
437
|
-
`
|
|
438
|
-
|
|
439
|
-
## full upgradeable uups
|
|
440
|
-
|
|
441
|
-
> Snapshot 1
|
|
442
|
-
|
|
443
|
-
`// SPDX-License-Identifier: MIT␊
|
|
444
|
-
pragma solidity ^0.8.4;␊
|
|
445
|
-
␊
|
|
446
|
-
import "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊
|
|
447
|
-
import "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol";␊
|
|
448
|
-
import "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";␊
|
|
449
|
-
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊
|
|
450
|
-
import "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol";␊
|
|
451
|
-
import "@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol";␊
|
|
452
|
-
import "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/draft-ERC721VotesUpgradeable.sol";␊
|
|
453
|
-
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊
|
|
454
|
-
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊
|
|
455
|
-
␊
|
|
456
|
-
contract MyToken is Initializable, ERC721Upgradeable, ERC721EnumerableUpgradeable, PausableUpgradeable, OwnableUpgradeable, ERC721BurnableUpgradeable, EIP712Upgradeable, ERC721VotesUpgradeable, UUPSUpgradeable {␊
|
|
457
|
-
/// @custom:oz-upgrades-unsafe-allow constructor␊
|
|
458
|
-
constructor() {␊
|
|
459
|
-
_disableInitializers();␊
|
|
460
|
-
}␊
|
|
461
|
-
␊
|
|
462
|
-
function initialize() initializer public {␊
|
|
463
|
-
__ERC721_init("MyToken", "MTK");␊
|
|
464
|
-
__ERC721Enumerable_init();␊
|
|
465
|
-
__Pausable_init();␊
|
|
466
|
-
__Ownable_init();␊
|
|
467
|
-
__ERC721Burnable_init();␊
|
|
468
|
-
__EIP712_init("MyToken", "1");␊
|
|
469
|
-
__ERC721Votes_init();␊
|
|
470
|
-
__UUPSUpgradeable_init();␊
|
|
471
|
-
}␊
|
|
472
|
-
␊
|
|
473
|
-
function pause() public onlyOwner {␊
|
|
474
|
-
_pause();␊
|
|
475
|
-
}␊
|
|
476
|
-
␊
|
|
477
|
-
function unpause() public onlyOwner {␊
|
|
478
|
-
_unpause();␊
|
|
479
|
-
}␊
|
|
480
|
-
␊
|
|
481
|
-
function safeMint(address to, uint256 tokenId) public onlyOwner {␊
|
|
482
|
-
_safeMint(to, tokenId);␊
|
|
483
|
-
}␊
|
|
484
|
-
␊
|
|
485
|
-
function _beforeTokenTransfer(address from, address to, uint256 tokenId)␊
|
|
486
|
-
internal␊
|
|
487
|
-
whenNotPaused␊
|
|
488
|
-
override(ERC721Upgradeable, ERC721EnumerableUpgradeable)␊
|
|
489
|
-
{␊
|
|
490
|
-
super._beforeTokenTransfer(from, to, tokenId);␊
|
|
491
|
-
}␊
|
|
492
|
-
␊
|
|
493
|
-
function _authorizeUpgrade(address newImplementation)␊
|
|
494
|
-
internal␊
|
|
495
|
-
onlyOwner␊
|
|
496
|
-
override␊
|
|
497
|
-
{}␊
|
|
498
|
-
␊
|
|
499
|
-
// The following functions are overrides required by Solidity.␊
|
|
500
|
-
␊
|
|
501
|
-
function _afterTokenTransfer(address from, address to, uint256 tokenId)␊
|
|
502
|
-
internal␊
|
|
503
|
-
override(ERC721Upgradeable, ERC721VotesUpgradeable)␊
|
|
504
|
-
{␊
|
|
505
|
-
super._afterTokenTransfer(from, to, tokenId);␊
|
|
506
|
-
}␊
|
|
507
|
-
␊
|
|
508
|
-
function supportsInterface(bytes4 interfaceId)␊
|
|
509
|
-
public␊
|
|
510
|
-
view␊
|
|
511
|
-
override(ERC721Upgradeable, ERC721EnumerableUpgradeable)␊
|
|
512
|
-
returns (bool)␊
|
|
513
|
-
{␊
|
|
514
|
-
return super.supportsInterface(interfaceId);␊
|
|
515
|
-
}␊
|
|
516
|
-
}␊
|
|
517
|
-
`
|
package/src/erc721.test.ts.snap
DELETED
|
Binary file
|
package/src/governor.test.ts
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import test from 'ava';
|
|
2
|
-
import { governor } from '.';
|
|
3
|
-
|
|
4
|
-
import { buildGovernor, GovernorOptions } from './governor';
|
|
5
|
-
import { printContract } from './print';
|
|
6
|
-
|
|
7
|
-
function testGovernor(title: string, opts: Partial<GovernorOptions>) {
|
|
8
|
-
test(title, t => {
|
|
9
|
-
const c = buildGovernor({
|
|
10
|
-
name: 'MyGovernor',
|
|
11
|
-
delay: '1 week',
|
|
12
|
-
period: '1 week',
|
|
13
|
-
settings: false,
|
|
14
|
-
...opts,
|
|
15
|
-
});
|
|
16
|
-
t.snapshot(printContract(c));
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Tests external API for equivalence with internal API
|
|
22
|
-
*/
|
|
23
|
-
function testAPIEquivalence(title: string, opts?: GovernorOptions) {
|
|
24
|
-
test(title, t => {
|
|
25
|
-
t.is(governor.print(opts), printContract(buildGovernor({
|
|
26
|
-
name: 'MyGovernor',
|
|
27
|
-
delay: '1 block',
|
|
28
|
-
period: '1 week',
|
|
29
|
-
...opts,
|
|
30
|
-
})));
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
testGovernor('governor with proposal threshold', {
|
|
35
|
-
proposalThreshold: '1',
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
testGovernor('governor with custom block time', {
|
|
39
|
-
blockTime: 6,
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
testGovernor('governor with custom decimals', {
|
|
43
|
-
decimals: 6,
|
|
44
|
-
proposalThreshold: '1',
|
|
45
|
-
quorumMode: 'absolute',
|
|
46
|
-
quorumAbsolute: '1',
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
testGovernor('governor with 0 decimals', {
|
|
50
|
-
decimals: 0,
|
|
51
|
-
proposalThreshold: '1',
|
|
52
|
-
quorumMode: 'absolute',
|
|
53
|
-
quorumAbsolute: '1',
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
testGovernor('governor with settings', {
|
|
57
|
-
settings: true,
|
|
58
|
-
proposalThreshold: '1',
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
testGovernor('governor with bravo', {
|
|
62
|
-
bravo: true,
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
testGovernor('governor with erc20votes', {
|
|
66
|
-
votes: 'erc20votes',
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
testGovernor('governor with erc721votes', {
|
|
70
|
-
votes: 'erc721votes',
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
testGovernor('governor with erc721votes omit decimals', {
|
|
74
|
-
votes: 'erc721votes',
|
|
75
|
-
decimals: 6,
|
|
76
|
-
proposalThreshold: '1',
|
|
77
|
-
quorumMode: 'absolute',
|
|
78
|
-
quorumAbsolute: '5',
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
testGovernor('governor with erc721votes settings omit decimals', {
|
|
82
|
-
votes: 'erc721votes',
|
|
83
|
-
decimals: 6,
|
|
84
|
-
proposalThreshold: '10',
|
|
85
|
-
settings: true,
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
testGovernor('governor with comp', {
|
|
89
|
-
votes: 'comp',
|
|
90
|
-
quorumMode: 'absolute',
|
|
91
|
-
quorumAbsolute: '1',
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
testGovernor('governor with percent quorum', {
|
|
95
|
-
quorumMode: 'percent',
|
|
96
|
-
quorumPercent: 6,
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
testGovernor('governor with fractional percent quorum', {
|
|
100
|
-
quorumMode: 'percent',
|
|
101
|
-
quorumPercent: 0.5,
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
testGovernor('governor with openzeppelin timelock', {
|
|
105
|
-
timelock: 'openzeppelin',
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
testGovernor('governor with compound timelock', {
|
|
109
|
-
timelock: 'compound',
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
testAPIEquivalence('API default');
|
|
113
|
-
|
|
114
|
-
testAPIEquivalence('API basic', { name: 'CustomGovernor', delay: '2 weeks', period: '2 week' });
|
|
115
|
-
|
|
116
|
-
testAPIEquivalence('API basic upgradeable', { name: 'CustomGovernor', delay: '2 weeks', period: '2 week', upgradeable: 'uups' });
|
|
117
|
-
|
|
118
|
-
test('API assert defaults', async t => {
|
|
119
|
-
t.is(governor.print(governor.defaults), governor.print());
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
test('API isAccessControlRequired', async t => {
|
|
123
|
-
t.is(governor.isAccessControlRequired({ upgradeable: 'uups' }), true);
|
|
124
|
-
t.is(governor.isAccessControlRequired({}), false);
|
|
125
|
-
});
|