From 27104fa20064d47da2169e996cec01f7e807f3a3 Mon Sep 17 00:00:00 2001 From: Vectorized Date: Sun, 26 Jan 2025 17:53:41 +0000 Subject: [PATCH] Fix pullOwner --- src/DN404Mirror.sol | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/DN404Mirror.sol b/src/DN404Mirror.sol index 852bbdf..3c3265c 100644 --- a/src/DN404Mirror.sol +++ b/src/DN404Mirror.sol @@ -363,14 +363,15 @@ contract DN404Mirror { address newOwner; address base = baseERC20(); uint32 baseOwnerFunctionSelector = uint32(_baseOwnerFunctionSelector()); + DN404NFTStorage storage $ = _getDN404NFTStorage(); + address oldOwner = $.owner; /// @solidity memory-safe-assembly assembly { mstore(0x00, baseOwnerFunctionSelector) let success := staticcall(gas(), base, 0x1c, 0x04, 0x00, 0x20) newOwner := mul(shr(96, mload(0x0c)), and(gt(returndatasize(), 0x1f), success)) + if iszero(success) { if shl(96, oldOwner) { revert(0x00, 0x00) } } } - DN404NFTStorage storage $ = _getDN404NFTStorage(); - address oldOwner = $.owner; if (oldOwner != newOwner) { $.owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner);