ERC 721 передача вызова от третьей стороны (не владельца NFT или смарт-контракта)

#ethereum #solidity #nft

#эфириум #прочность #nft

Вопрос:

У меня есть контракт NFT, в котором есть только один NFT (лидер). Лидера можно «свергнуть», если кто-то заплатит более высокую цену, чем заплатил нынешний Лидер, чтобы стать лидером. Я хочу, чтобы это был контракт на основе NFT, но у меня возникли проблемы с функцией переноса из-за утверждений. Конечно, владелец Leader NFT не стал бы добровольно утверждать, что кто-то теряет свою должность; есть ли способ принудительно утвердить все будущие адреса? Вот функция, с которой у меня возникли проблемы:

 //shadowMan = where the money goes to when successful.   function overThrow(uint _amount) payable public {  require(_amount gt; overThrowFund, "The Rebellion has been quashed.");  payable(shadowMan).transfer(_amount);  transferFrom(ownerOf(1), msg.sender, 1);  overThrowFund = _amount; }  

Комментарии:

1. Является ли это частью контракта на инкассацию NFT или внешнего контракта? Если это часть договора о сборе, какую реализацию вы используете — OpenZeppelin, custom, другую?