diff --git a/contracts/nft/contracts/zetachain/UniversalNFTCore.sol b/contracts/nft/contracts/zetachain/UniversalNFTCore.sol index 7c81233..bce14ca 100644 --- a/contracts/nft/contracts/zetachain/UniversalNFTCore.sol +++ b/contracts/nft/contracts/zetachain/UniversalNFTCore.sol @@ -264,6 +264,12 @@ abstract contract UniversalNFTCore is _safeMint(sender, tokenId); _setTokenURI(tokenId, uri); emit TokenTransferReverted(sender, tokenId, uri); + + if (context.amount > 0 && context.asset != address(0)) { + if (!IZRC20(context.asset).transfer(sender, context.amount)) { + revert TransferFailed(); + } + } } /** diff --git a/contracts/token/contracts/zetachain/UniversalTokenCore.sol b/contracts/token/contracts/zetachain/UniversalTokenCore.sol index c49ee3b..373dae6 100644 --- a/contracts/token/contracts/zetachain/UniversalTokenCore.sol +++ b/contracts/token/contracts/zetachain/UniversalTokenCore.sol @@ -249,5 +249,11 @@ abstract contract UniversalTokenCore is ); _mint(sender, amount); emit TokenTransferReverted(sender, amount); + + if (context.amount > 0 && context.asset != address(0)) { + if (!IZRC20(context.asset).transfer(sender, context.amount)) { + revert TransferFailed(); + } + } } }