CRYPTO NEWS

WeChat Outlaws All Crypto Activities, Offenders Risk Permanent Ban

WeChat

    • WeChat has proscribed all cryptocurrency and non-fungible tokens (NFT) activities.
    • Violating accounts will need to rectify within a time frame until the ultimate ban.
    • The cryptocurrency market is currently on a relief rally, recovering by almost 15% in the last 24 hours.

WeChat, a Chinese instant messaging app, in recent terms of use update, proscribed all activities related to cryptocurrency and non-fungible tokens (NFT). Its rules of conduct highlighted four critical components of virtual currency activities that WeChat public accounts must shun.

Article 3.24.1 outlawed transactions and exchanges between virtual and real currency, virtual currency, and virtual currency. Meanwhile, Article 3.24.2 outlawed providing information intermediary and pricing services for virtual currency transactions. Finally, Article 3.24.3 outlawed token issuance financing and virtual currency derivatives trading.

To capture NFTs, they said accounts that provide services or content related to the secondary transaction of digital collections have similar implications as the preceding.

The WeChat team reiterated that once they can identify such violations, the WeChat public platform will order the violating account to rectify itself within a time limit before restricting some functions of the account until its permanent ban according to the severity of the violation.

WeChat is an instant messaging, social media, and mobile payment app developed by Tencent with over 1.1 billion daily active users in China. According to Wikipedia, it became the world’s largest standalone mobile app in 2018, with over 1 billion monthly active users.

In other news, the cryptocurrency market is currently on a relief rally, recovering by almost 15% in the last 24 hours. Bitcoin, the one number cryptocurrency, traded very close to the $21,000 price point today, having touched $17,800 during the weekend. Ethereum (ETH), Binance Coin (BNB), and other top coins are also regaining value alongside BTC.

ERC777: token recipient contract has no implementer for ERC777TokensRecipient

In my Hardhat test, I can deploy the following: ERC1820 contract via a Hardhat plugin ERC777 contract Staking contract to hold ERC777 tokens Then I can mint some ERC777 tokens to an user: await lpToken777.connect(owner).mint(user1Addr, userInitBalance); But when I tried to mint some ERC777 tokens to my Staking contract await rwToken777.connect(owner).mint(erc777StakingAddr, rwTokenTotalSupply); That failed with::Listen

In my Hardhat test, I can deploy the following:

  • ERC1820 contract via a Hardhat plugin
  • ERC777 contract
  • Staking contract to hold ERC777 tokens

Then I can mint some ERC777 tokens to an user:

await lpToken777.connect(owner).mint(user1Addr, userInitBalance); 

But when I tried to mint some ERC777 tokens to my Staking contract

await rwToken777.connect(owner).mint(erc777StakingAddr, rwTokenTotalSupply); 

That failed with the error message: "ERC777: token recipient contract has no implementer for ERC777TokensRecipient"

I found some explanation about that error:

https://docs.openzeppelin.com/contracts/4.x/erc777 : recipient contract has not registered itself as aware of the ERC777 protocol, so transfers to it are disabled to prevent tokens from being locked forever

https://docs.openzeppelin.com/contracts/4.x/api/utils#ERC1820Implementer IERC1820Registry.setInterfaceImplementer should then be called for the registration to be complete.

I traced that error back to OpenZeppelin’s ERC777Upgradeable.sol, which the parent contract of my ERC777 contract:

    function _callTokensReceived(         address operator,         address from,         address to,         uint256 amount,         bytes memory userData,         bytes memory operatorData,         bool requireReceptionAck     ) private {         address implementer = _ERC1820_REGISTRY.getInterfaceImplementer(to, _TOKENS_RECIPIENT_INTERFACE_HASH);         if (implementer != address(0)) {             IERC777RecipientUpgradeable(implementer).tokensReceived(operator, from, to, amount, userData, operatorData);         } else if (requireReceptionAck) {             require(!to.isContract(), "ERC777: token recipient contract has no implementer for ERC777TokensRecipient");         }     } 

I see I need to deploy this _ERC1820_REGISTRY contract somehow, then register my Staking contract onto it… That sounds like a lot of extra work… Is there a much better way for me to do it? how can I deploy erc1820 with OpenZeppelin and register my staking contract?

WeChat Outlaws All Crypto Activities, Offenders Risk Permanent Ban

Shopping cart
There are no products in the cart!
Continue shopping
0