@@ -192,67 +192,6 @@ invariant balanceOfConsistency(address user)
192
192
}
193
193
194
194
195
-
196
- /*
197
- ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
198
- │ Invariant : fundamental ERC721 consistency : if an owner owns 2 different tokens , balance >= 2 │
199
- └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
200
- */
201
- invariant ownersBalancesConsistency(uint256 tokenId1, uint256 tokenId2)
202
- (tokenId1 != tokenId2 &&
203
- unsafeOwnerOf(tokenId1) != 0 &&
204
- unsafeOwnerOf(tokenId2) != 0 &&
205
- unsafeOwnerOf(tokenId1) == unsafeOwnerOf(tokenId2)) =>
206
- balanceOf(unsafeOwnerOf(tokenId1)) >= 2
207
- {
208
- preserved mint(address to, uint256 tokenId) with (env e) {
209
- require balanceLimited(to);
210
- requireInvariant ownerHasBalance(tokenId1);
211
- requireInvariant ownerHasBalance(tokenId2);
212
- }
213
- preserved safeMint(address to, uint256 tokenId) with (env e) {
214
- require balanceLimited(to);
215
- requireInvariant ownerHasBalance(tokenId1);
216
- requireInvariant ownerHasBalance(tokenId2);
217
- }
218
- preserved safeMint(address to, uint256 tokenId, bytes data) with (env e) {
219
- require balanceLimited(to);
220
- requireInvariant ownerHasBalance(tokenId1);
221
- requireInvariant ownerHasBalance(tokenId2);
222
- }
223
- preserved transferFrom(address from, address to, uint256 tokenId) with (env e) {
224
- require from != unsafeOwnerOf(tokenId1);
225
- require balanceLimited(to);
226
- requireInvariant ownerHasBalance(tokenId1);
227
- requireInvariant ownerHasBalance(tokenId2);
228
- requireInvariant balanceOfConsistency(from);
229
- requireInvariant balanceOfConsistency(to);
230
- }
231
- preserved safeTransferFrom(address from, address to, uint256 tokenId) with (env e) {
232
- require from != unsafeOwnerOf(tokenId1);
233
- require balanceLimited(to);
234
- requireInvariant ownerHasBalance(tokenId1);
235
- requireInvariant ownerHasBalance(tokenId2);
236
- requireInvariant balanceOfConsistency(from);
237
- requireInvariant balanceOfConsistency(to);
238
- }
239
- preserved safeTransferFrom(address from, address to, uint256 tokenId, bytes data) with (env e) {
240
- require from != unsafeOwnerOf(tokenId1);
241
- require balanceLimited(to);
242
- requireInvariant ownerHasBalance(tokenId1);
243
- requireInvariant ownerHasBalance(tokenId2);
244
- requireInvariant balanceOfConsistency(from);
245
- requireInvariant balanceOfConsistency(to);
246
- }
247
- preserved burn(uint256 tokenId) with (env e) {
248
- require unsafeOwnerOf(tokenId) != unsafeOwnerOf(tokenId1);
249
- requireInvariant ownerHasBalance(tokenId1);
250
- requireInvariant ownerHasBalance(tokenId2);
251
- requireInvariant balanceOfConsistency(unsafeOwnerOf(tokenId));
252
- require balanceLimited(unsafeOwnerOf(tokenId));
253
- }
254
- }
255
-
256
195
/*
257
196
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
258
197
│ Invariant : owner of a token must have some balance │
0 commit comments