可以转移到智能合约
我正在尝试使用以太货币将Matic转移到孟买测试网中的智能合约。
我正在使用Hardhat -Greater带来的最基本合同。 sol。
使用以太货币的客户端传输:
const provider = new ethers.providers.Web3Provider(ethereum);
const signer = provider.getSigner();
const erc20Contract = new ethers.Contract("0x0000000000000000000000000000000000001010", erc20abi, signer);
const parsedAmount = ethers.utils.parseUnits(amount.toString(), 'ether');
const transferTokens = await erc20Contract.transfer(contractAddress , parsedAmount);
entrer.sol:
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;
import "hardhat/console.sol";
contract Greeter {
string private greeting;
constructor(string memory _greeting) {
console.log("Deploying a Greeter with greeting:", _greeting);
greeting = _greeting;
}
function greet() public view returns (string memory) {
return greeting;
}
function setGreeting(string memory _greeting) public {
console.log("Changing greeting from '%s' to '%s'", greeting, _greeting);
greeting = _greeting;
}
}
另外,当我手动尝试使用metamsk将Matic发送到智能合约时,它给了我相同的错误(仅是合同,而不是其他钱包)。 但是,如果我尝试其他令牌,它可以正常工作 - 我缺少什么吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的合同需要实现
接收()
或hallback()
功能,以便能够接受网络的本机货币。文档:
示例:
Your contract needs to implement either
receive()
orfallback()
function to be able to accept native currency of the network.Docs: https://docs.soliditylang.org/en/v0.8.13/contracts.html#special-functions
Example: