Примечание: Вызываемая функция должна быть оплачена, если вы отправляете значение, а значение, которое вы отправляете, должно быть меньше вашего текущего баланса

#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

Выберите Web3Provider

и введите локальный адрес с 7545 портом

 http://127.0.0.1:7545
 

Локальный Провайдер Web3

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

1. Мне удалось создать экземпляр токенов, но как я получу некоторые из них для платежей?