Skip to content

Commit

Permalink
Tidy
Browse files Browse the repository at this point in the history
  • Loading branch information
Vectorized committed Mar 17, 2024
1 parent adb7049 commit 919a855
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 38 deletions.
60 changes: 30 additions & 30 deletions .gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -176,38 +176,38 @@ DN404Test:testWrapAround(uint32,uint256) (runs: 256, μ: 3702166, ~: 3426300)
DN404Test:test__codesize() (gas: 59075)
DN69OnlyERC20Test:testApprove() (gas: 35770)
DN69OnlyERC20Test:testApprove(address,uint256) (runs: 256, μ: 30077, ~: 31321)
DN69OnlyERC20Test:testBurn() (gas: 50383)
DN69OnlyERC20Test:testBurn(address,uint256,uint256) (runs: 256, μ: 51564, ~: 51584)
DN69OnlyERC20Test:testBurnInsufficientBalanceReverts(address,uint256,uint256) (runs: 256, μ: 44645, ~: 44654)
DN69OnlyERC20Test:testInfiniteApproveTransferFrom() (gas: 102605)
DN69OnlyERC20Test:testBurn() (gas: 50511)
DN69OnlyERC20Test:testBurn(address,uint256,uint256) (runs: 256, μ: 51712, ~: 51712)
DN69OnlyERC20Test:testBurnInsufficientBalanceReverts(address,uint256,uint256) (runs: 256, μ: 44694, ~: 44773)
DN69OnlyERC20Test:testInfiniteApproveTransferFrom() (gas: 102733)
DN69OnlyERC20Test:testMaxSupplyTrick(uint256) (runs: 256, μ: 541, ~: 541)
DN69OnlyERC20Test:testMetadata() (gas: 10112)
DN69OnlyERC20Test:testMint() (gas: 45897)
DN69OnlyERC20Test:testMintOverMaxLimitReverts() (gas: 41879)
DN69OnlyERC20Test:testMintz(address,uint256) (runs: 256, μ: 46273, ~: 46319)
DN69OnlyERC20Test:testTransfer() (gas: 75334)
DN69OnlyERC20Test:testTransfer(address,uint256) (runs: 256, μ: 75670, ~: 75791)
DN69OnlyERC20Test:testTransferFrom() (gas: 85063)
DN69OnlyERC20Test:testTransferFrom(address,address,address,uint256,uint256) (runs: 256, μ: 105716, ~: 108033)
DN69OnlyERC20Test:testTransferFromInsufficientAllowanceReverts() (gas: 68597)
DN69OnlyERC20Test:testTransferFromInsufficientAllowanceReverts(address,uint256,uint256) (runs: 256, μ: 69108, ~: 69698)
DN69OnlyERC20Test:testTransferFromInsufficientBalanceReverts() (gas: 75540)
DN69OnlyERC20Test:testTransferFromInsufficientBalanceReverts(address,uint256,uint256) (runs: 256, μ: 76598, ~: 76661)
DN69OnlyERC20Test:testTransferInsufficientBalanceReverts() (gas: 67028)
DN69OnlyERC20Test:testTransferInsufficientBalanceReverts(address,uint256,uint256) (runs: 256, μ: 68046, ~: 68115)
DN69OnlyERC20Test:test__codesize() (gas: 28001)
DN69Test:testERC1155Methods(uint256) (runs: 256, μ: 4370955, ~: 4629231)
DN69Test:testERC1155MethodsSelfTransfers(uint256) (runs: 256, μ: 2402468, ~: 2088950)
DN69Test:testFindOwnedIds() (gas: 2677402)
DN69Test:testMintToNonERC155RecipientReverts(uint256) (runs: 256, μ: 897125, ~: 806618)
DN69Test:testMintToRevertingERC155RecipientReverts(uint256) (runs: 256, μ: 1313013, ~: 986821)
DN69Test:testMintToZeroReverts(uint256) (runs: 256, μ: 767043, ~: 671689)
DN69Test:testMixed(uint256) (runs: 256, μ: 10593273, ~: 6457552)
DN69Test:testSafeBatchTransferFromToERC1155Recipient(uint256) (runs: 256, μ: 2235111, ~: 2196463)
DN69Test:testSafeTransferFromToERC1155Recipient(uint256) (runs: 256, μ: 1751949, ~: 1502812)
DN69Test:testTransferFromToERC1155Recipient(uint256) (runs: 256, μ: 2895327, ~: 2881818)
DN69Test:testTransferMixedReverts(uint256) (runs: 256, μ: 4625575, ~: 3415438)
DN69Test:test__codesize() (gas: 66702)
DN69OnlyERC20Test:testMint() (gas: 46025)
DN69OnlyERC20Test:testMintOverMaxLimitReverts() (gas: 42073)
DN69OnlyERC20Test:testMintz(address,uint256) (runs: 256, μ: 46326, ~: 46447)
DN69OnlyERC20Test:testTransfer() (gas: 75528)
DN69OnlyERC20Test:testTransfer(address,uint256) (runs: 256, μ: 75869, ~: 75985)
DN69OnlyERC20Test:testTransferFrom() (gas: 85191)
DN69OnlyERC20Test:testTransferFrom(address,address,address,uint256,uint256) (runs: 256, μ: 106032, ~: 108161)
DN69OnlyERC20Test:testTransferFromInsufficientAllowanceReverts() (gas: 68725)
DN69OnlyERC20Test:testTransferFromInsufficientAllowanceReverts(address,uint256,uint256) (runs: 256, μ: 69244, ~: 69826)
DN69OnlyERC20Test:testTransferFromInsufficientBalanceReverts() (gas: 75668)
DN69OnlyERC20Test:testTransferFromInsufficientBalanceReverts(address,uint256,uint256) (runs: 256, μ: 76713, ~: 76789)
DN69OnlyERC20Test:testTransferInsufficientBalanceReverts() (gas: 67222)
DN69OnlyERC20Test:testTransferInsufficientBalanceReverts(address,uint256,uint256) (runs: 256, μ: 68423, ~: 68309)
DN69OnlyERC20Test:test__codesize() (gas: 27992)
DN69Test:testERC1155Methods(uint256) (runs: 256, μ: 4371548, ~: 4622394)
DN69Test:testERC1155MethodsSelfTransfers(uint256) (runs: 256, μ: 2429564, ~: 2085077)
DN69Test:testFindOwnedIds() (gas: 2672084)
DN69Test:testMintToNonERC155RecipientReverts(uint256) (runs: 256, μ: 932612, ~: 805445)
DN69Test:testMintToRevertingERC155RecipientReverts(uint256) (runs: 256, μ: 1318593, ~: 988075)
DN69Test:testMintToZeroReverts(uint256) (runs: 256, μ: 720123, ~: 670289)
DN69Test:testMixed(uint256) (runs: 256, μ: 10952485, ~: 6444538)
DN69Test:testSafeBatchTransferFromToERC1155Recipient(uint256) (runs: 256, μ: 2272827, ~: 2193852)
DN69Test:testSafeTransferFromToERC1155Recipient(uint256) (runs: 256, μ: 1779505, ~: 1491578)
DN69Test:testTransferFromToERC1155Recipient(uint256) (runs: 256, μ: 2892318, ~: 2879203)
DN69Test:testTransferMixedReverts(uint256) (runs: 256, μ: 4428259, ~: 3387398)
DN69Test:test__codesize() (gas: 66683)
MappingsTest:testAddressPairMapSetAndGet(address[2],address[2],uint256,uint256) (runs: 256, μ: 45753, ~: 47075)
MappingsTest:testBitmapSetAndGet(uint256) (runs: 256, μ: 445667, ~: 397521)
MappingsTest:testBitmapSetAndGet(uint256,uint256,bool,bool) (runs: 256, μ: 25662, ~: 26319)
Expand Down
18 changes: 10 additions & 8 deletions src/DN69.sol
Original file line number Diff line number Diff line change
Expand Up @@ -439,11 +439,12 @@ abstract contract DN69 {
maxId = totalSupply_ / _unit();
$.tokenIdUpTo = uint32(_max($.tokenIdUpTo, maxId));
}
uint256[] memory ids;
unchecked {
if (toAddressData.flags & _ADDRESS_DATA_SKIP_NFT_FLAG == 0) {
t.numNFTMints = _zeroFloorSub(t.toEnd, toAddressData.ownedCount);
if (t.numNFTMints != 0) {
uint256[] memory ids = _idsMalloc(t.numNFTMints);
ids = _idsMalloc(t.numNFTMints);
Bitmap storage toOwned = $.owned[to];
t.ownedCheckpoint = toAddressData.ownedCheckpoint;
t.nextTokenId = _wrapNFTId($.nextTokenId, maxId);
Expand All @@ -465,7 +466,6 @@ abstract contract DN69 {
toAddressData.ownedCount = uint32(t.toEnd);
$.nextTokenId = uint32(t.nextTokenId);
_batchTransferEmit(address(0), to, ids);
if (_hasCode(to)) _checkOnERC1155BatchReceived(address(0), to, ids, data);
}
}
}
Expand All @@ -475,6 +475,7 @@ abstract contract DN69 {
mstore(0x00, amount)
log3(0x00, 0x20, _TRANSFER_EVENT_SIGNATURE, 0, shr(96, shl(96, to)))
}
if (_hasCode(to)) _checkOnERC1155BatchReceived(address(0), to, ids, data);
}

/// @dev Mints `amount` tokens to `to`, increasing the total supply.
Expand Down Expand Up @@ -511,11 +512,12 @@ abstract contract DN69 {
toAddressData.balance = uint96(toBalance);
t.toEnd = toBalance / _unit();
}
uint256[] memory ids;
unchecked {
if (toAddressData.flags & _ADDRESS_DATA_SKIP_NFT_FLAG == 0) {
t.numNFTMints = _zeroFloorSub(t.toEnd, toAddressData.ownedCount);
if (t.numNFTMints != 0) {
uint256[] memory ids = _idsMalloc(t.numNFTMints);
ids = _idsMalloc(t.numNFTMints);
Bitmap storage toOwned = $.owned[to];
t.ownedCheckpoint = toAddressData.ownedCheckpoint;
// Mint loop.
Expand All @@ -535,7 +537,6 @@ abstract contract DN69 {
toAddressData.ownedCheckpoint = uint32(t.ownedCheckpoint);
toAddressData.ownedCount = uint32(t.toEnd);
_batchTransferEmit(address(0), to, ids);
if (_hasCode(to)) _checkOnERC1155BatchReceived(address(0), to, ids, data);
}
}
}
Expand All @@ -545,6 +546,7 @@ abstract contract DN69 {
mstore(0x00, amount)
log3(0x00, 0x20, _TRANSFER_EVENT_SIGNATURE, 0, shr(96, shl(96, to)))
}
if (_hasCode(to)) _checkOnERC1155BatchReceived(address(0), to, ids, data);
}

/*«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-«-*/
Expand Down Expand Up @@ -728,17 +730,17 @@ abstract contract DN69 {
_batchTransferEmit(address(0), to, t.mintIds);
}
}
if (_hasCode(to)) {
_checkOnERC1155BatchReceived(from, to, t.directIds, data);
_checkOnERC1155BatchReceived(address(0), to, t.mintIds, data);
}
/// @solidity memory-safe-assembly
assembly {
// Emit the {Transfer} event.
mstore(0x00, amount)
// forgefmt: disable-next-item
log3(0x00, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, shl(96, from)), shr(96, shl(96, to)))
}
if (_hasCode(to)) {
_checkOnERC1155BatchReceived(from, to, t.directIds, data);
_checkOnERC1155BatchReceived(address(0), to, t.mintIds, data);
}
}

/// @dev Transfers ERC1155 `id` from `from` to `to`.
Expand Down

0 comments on commit 919a855

Please sign in to comment.