@@ -33,21 +33,6 @@ pragma solidity ^0.8.4;
3333/// - The ERC20 token allowances and ERC721 token / operator approvals are separate.
3434/// - For MEV safety, users should NOT have concurrently open orders for the ERC20 and ERC721.
3535abstract contract DN404 {
36- /*«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-*/
37- /* ENUMS */
38- /*-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»*/
39-
40- /// @dev Denotes the default skip NFT status.
41- /// Override `_skipNFTDefault` to return a preferred value (defaults to `HasCode`).
42- enum SkipNFTDefault {
43- // `On` if the ERC20 owner has code, else `Off`.
44- HasCode,
45- // Skip NFT (ERC20 transfers will NOT trigger NFT minting / burning / transferring).
46- On,
47- // NOT skip NFT (ERC20 transfers will trigger NFT minting / burning / transferring).
48- Off
49- }
50-
5136 /*«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-*/
5237 /* EVENTS */
5338 /*-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»*/
@@ -326,9 +311,12 @@ abstract contract DN404 {
326311 /* CONFIGURABLES */
327312 /*-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»-»*/
328313
329- /// @dev Returns the default mode for the skip NFT status.
330- function _skipNFTDefault () internal view virtual returns (SkipNFTDefault) {
331- return SkipNFTDefault.HasCode;
314+ /// @dev Returns the default skip NFT flag for `owner`.
315+ function _skipNFTDefault (address owner ) internal view virtual returns (bool result ) {
316+ /// @solidity memory-safe-assembly
317+ assembly {
318+ result := iszero (iszero (extcodesize (owner)))
319+ }
332320 }
333321
334322 /// @dev Returns whether the tokens IDs are from `[1..n]` instead of `[0..n-1]`.
@@ -1061,14 +1049,7 @@ abstract contract DN404 {
10611049 uint8 flags = _getDN404Storage ().addressData[owner].flags;
10621050 result = flags & _ADDRESS_DATA_SKIP_NFT_FLAG != 0 ;
10631051 if (flags & _ADDRESS_DATA_SKIP_NFT_INITIALIZED_FLAG == uint256 (0 )) {
1064- if (_skipNFTDefault () == SkipNFTDefault.HasCode) {
1065- /// @solidity memory-safe-assembly
1066- assembly {
1067- result := iszero (iszero (extcodesize (owner)))
1068- }
1069- }
1070- if (_skipNFTDefault () == SkipNFTDefault.On) result = true ;
1071- if (_skipNFTDefault () == SkipNFTDefault.Off) result = false ;
1052+ result = _skipNFTDefault (owner);
10721053 }
10731054 }
10741055
0 commit comments