#blockchain #ethereum #erc20
Вопрос:
Я пытаюсь использовать реализацию openzeppelin ERC20, но получаю ошибку. Адрес токена — это адрес существующего токена ERC20, например USDC- 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.0-solc-0.7/contracts/token/ERC20/ERC20.sol";
ERC20 token = ERC20(tokenAddress);
token.balanceOf(msg.sender);
Ошибка
возврат Транзакция была возвращена в исходное состояние. Примечание: Вызываемая функция должна быть оплачена, если вы отправляете значение, а значение, которое вы отправляете, должно быть меньше вашего текущего баланса. Отладьте транзакцию, чтобы получить дополнительную информацию.
Комментарии:
1.
0xA0b8...
Адрес содержит контракт в сети Ethereum mainnet. Возникает ли ошибка в основной сети? Или вы пытаетесь выполнить его в другой среде (например, эмулятор виртуальной машины Remix JS, тестовая сеть, …)?2. Я пытаюсь включиться в ремикс
3. Я ищу решение, в котором я мог бы принимать платежи в существующих токенах ERC20
4. Адрес 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 является монетой USDC на основе интерфейса ERC20
Ответ №1:
Эмулятор виртуальной машины Remix не может связаться с контрактом, развернутым по адресу mainnet, — он находится в другой среде.
Однако вы можете подключить основную сеть к своей локальной среде, а затем подключить Remix к этой локальной среде.
Вот статья, описывающая, как раскошелиться на основную сеть Ethereum с помощью Ganache.
Решение в один клик на основе статьи:
ganache-cli --fork https://mainnet.infura.io/v3/{infura_project_id}
По умолчанию Ganache использует порт 7545 для JSON-RPC, поэтому вы можете выбрать пользовательского поставщика в конфигурации Remix
и введите локальный адрес с 7545
портом
http://127.0.0.1:7545
Комментарии:
1. Мне удалось создать экземпляр токенов, но как я получу некоторые из них для платежей?