From 6575db4c445690afd6f35214cc4d9c78d401c2a8 Mon Sep 17 00:00:00 2001 From: cebgcontract <99630598+cebgcontract@users.noreply.github.com> Date: Mon, 15 Aug 2022 14:55:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=B8=80=E4=B8=AA=E7=A2=8E?= =?UTF-8?q?=E7=89=87mint=E9=94=99=E8=AF=AF=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/logic/MinterFactory.sol | 2 +- contracts/logic/UserMinterFactory.sol | 78 ++++++++++++++++++++++++--- 2 files changed, 73 insertions(+), 7 deletions(-) diff --git a/contracts/logic/MinterFactory.sol b/contracts/logic/MinterFactory.sol index f6dddbe..3482597 100644 --- a/contracts/logic/MinterFactory.sol +++ b/contracts/logic/MinterFactory.sol @@ -146,7 +146,7 @@ contract MinterFactory is Ownable, Initializable, HasSignature { ids.length == amounts.length, "MinterFactory: ids and amounts length mismatch" ); - mint1155NFTBatch(to, ids, amounts, chip); + mint1155NFTBatch(to, ids, amounts, shard); } function mint721ByUser( diff --git a/contracts/logic/UserMinterFactory.sol b/contracts/logic/UserMinterFactory.sol index dc96aec..ab5a048 100644 --- a/contracts/logic/UserMinterFactory.sol +++ b/contracts/logic/UserMinterFactory.sol @@ -36,9 +36,31 @@ contract UserMinterFactory is Ownable, Initializable { uint256 startTime, uint256 saltNonce, bytes calldata signature - ) external { + ) external returns (bool success){ address to = _msgSender(); - factory.mint721ByUser(to, tokenId, startTime, saltNonce, signature, hero); + try factory.mint721ByUser(to, tokenId, startTime, saltNonce, signature, hero) { + return true; + } catch Error(string memory reason) { + bytes memory by; + factory.ignoreSignature(signature); + emit TokenMintFail( + to, + signature, + reason, + by + ); + return false; + } catch (bytes memory lowLevelData) { + string memory reason; + emit TokenMintFail( + to, + signature, + reason, + lowLevelData + ); + return false; + } + } /** @@ -49,9 +71,31 @@ contract UserMinterFactory is Ownable, Initializable { uint256 startTime, uint256 saltNonce, bytes calldata signature - ) external { + ) external returns (bool success){ address to = _msgSender(); - factory.mint721ByUser(to, tokenId, startTime, saltNonce, signature, equip); + try factory.mint721ByUser(to, tokenId, startTime, saltNonce, signature, equip) { + return true; + } catch Error(string memory reason) { + bytes memory by; + factory.ignoreSignature(signature); + emit TokenMintFail( + to, + signature, + reason, + by + ); + return false; + } catch (bytes memory lowLevelData) { + string memory reason; + emit TokenMintFail( + to, + signature, + reason, + lowLevelData + ); + return false; + } + } /** @@ -102,9 +146,31 @@ contract UserMinterFactory is Ownable, Initializable { uint256 startTime, uint256 saltNonce, bytes calldata signature - ) external { + ) external returns (bool success){ address to = _msgSender(); - factory.mint1155BatchByUser(to, ids, amounts, startTime, saltNonce, signature, shard); + try factory.mint1155BatchByUser(to, ids, amounts, startTime, saltNonce, signature, shard) { + return true; + } catch Error(string memory reason) { + bytes memory by; + factory.ignoreSignature(signature); + emit TokenMintFail( + to, + signature, + reason, + by + ); + return false; + } catch (bytes memory lowLevelData) { + string memory reason; + emit TokenMintFail( + to, + signature, + reason, + lowLevelData + ); + return false; + } + } }