- # Ethereum Provider API
- # Table of Contents
- # Basic Usage
- # Chain IDs
- # Properties
- # ethereum.isMetaMask
- # Methods
- # ethereum.isConnected()
- # ethereum.request(args)
- # Example
- # Events
- # connect
- # disconnect
- # accountsChanged
- # chainChanged
- # message
- # Errors
- # Using the Provider
- # Experimental API
- # Experimental Methods
- # ethereum._metamask.isUnlocked()
- # Legacy API
- # Legacy Properties
- # ethereum.chainId (DEPRECATED)
- # ethereum.networkVersion (DEPRECATED)
- # ethereum.selectedAddress (DEPRECATED)
- No Ethereum Provider Was Found on Window Ethereum
- Что случилось с сетью Ethereum
- Dive into Ethereum
- Создаем контракт-визитку
- Etheratom
- Ethereum Wallet Syncing Problems
- Fast Sync Just Completed, Transitioning To Normal Sync [ edit ]
- Slow Syncing Between Blocks 2, 283, 397 And 2, 717, 576 [ edit ]
- Spin up your own Ethereum node
- Rinkeby Faucet No Ethereum Address Found #22031
- Comments
- anti-seal commented Dec 17, 2020
- ravisriv commented Dec 22, 2020
- sanoyphilippe commented Dec 22, 2020
- bernatfp commented Dec 22, 2020
- reuvenpo commented Dec 23, 2020
- ligi commented Dec 23, 2020
- sanoyphilippe commented Dec 23, 2020
- ligi commented Dec 23, 2020
- sanoyphilippe commented Dec 23, 2020
- ligi commented Dec 23, 2020
- ravisriv commented Dec 23, 2020 •
- ligi commented Dec 23, 2020
- samson9993 commented Dec 23, 2020
- ligi commented Dec 23, 2020
- samson9993 commented Dec 23, 2020
- bernatfp commented Dec 23, 2020
- reuvenpo commented Dec 23, 2020 •
- ligi commented Dec 23, 2020
- Tigo9527 commented Dec 24, 2020
- WuYansong commented Dec 24, 2020 •
- yayahappywork commented Dec 25, 2020
- dr3amboy commented Dec 26, 2020
- CarlGocht commented Dec 27, 2020
- InsureFiX commented Dec 27, 2020
- nilankanayana commented Dec 27, 2020
- dlarchikov commented Dec 27, 2020
- ligi commented Dec 27, 2020
- malbecAr commented Dec 30, 2020
- aloisius82 commented Dec 30, 2020
- SvyatoslavLiven commented Dec 30, 2020 •
- cristocer commented Dec 31, 2020
- thelastjosh commented Dec 31, 2020
- millileakz commented Dec 31, 2020 •
- einfach-edel commented Dec 31, 2020
- ttakumat commented Dec 31, 2020
- lordkayag commented Dec 31, 2020
- noahc66260 commented Jan 1, 2021
- z330789559 commented Jan 1, 2021
- vnavascues commented Jan 1, 2021
- Kronoxis commented Jan 1, 2021
- foravneet commented Jan 2, 2021
- Ezparga commented Jan 3, 2021
- luongs3 commented Jan 3, 2021
- setragk commented Jan 3, 2021
- karalabe commented Jan 5, 2021
- eebit2020 commented Jan 10, 2021
- montalban commented Feb 13, 2021
- UsabilitySpace commented Mar 7, 2021
- knottl commented Mar 20, 2021
- kietfriends commented Apr 4, 2021
# Ethereum Provider API
Tip Recommended Reading
We recommend that all web3 site developers read the Basic Usage section.
Recent Breaking Provider Changes
If you are an Ethereum application developer and are looking for information about our January 2021 provider API changes, please see our Migration Guide for more details.
MetaMask injects a global API into websites visited by its users at window.ethereum . This API allows websites to request users’ Ethereum accounts, read data from blockchains the user is connected to, and suggest that the user sign messages and transactions. The presence of the provider object indicates an Ethereum user. We recommend using @metamask/detect-provider
(opens new window) to detect our provider, on any platform or browser.
The Ethereum JavaScript provider API is specified by EIP-1193
# Table of Contents
# Basic Usage
For any non-trivial Ethereum web application — a.k.a. dapp, web3 site etc. — to work, you will have to:
- Detect the Ethereum provider ( window.ethereum )
- Detect which Ethereum network the user is connected to
- Get the user’s Ethereum account(s)
The snippet at the top of this page is sufficient for detecting the provider. You can learn how to accomplish the other two by reviewing the snippet in the Using the Provider section.
The provider API is all you need to create a full-featured web3 application.
That said, many developers use a convenience library, such as ethers
(opens new window) , instead of using the provider directly. If you are in need of higher-level abstractions than those provided by this API, we recommend that you use a convenience library.
# Chain IDs
These are the IDs of the Ethereum chains that MetaMask supports by default. Consult chainid.network
Hex | Decimal | Network |
---|---|---|
0x1 | 1 | Ethereum Main Network (Mainnet) |
0x3 | 3 | Ropsten Test Network |
0x4 | 4 | Rinkeby Test Network |
0x5 | 5 | Goerli Test Network |
0x2a | 42 | Kovan Test Network |
# Properties
# ethereum.isMetaMask
This property is non-standard. Non-MetaMask providers may also set this property to true .
true if the user has MetaMask installed.
# Methods
# ethereum.isConnected()
Note that this method has nothing to do with the user’s accounts.
You may often encounter the word «connected» in reference to whether a web3 site can access the user’s accounts. In the provider interface, however, «connected» and «disconnected» refer to whether the provider can make RPC requests to the current chain.
Returns true if the provider is connected to the current chain, and false otherwise.
If the provider is not connected, the page will have to be reloaded in order for connection to be re-established. Please see the connect and disconnect events for more information.
# ethereum.request(args)
Use request to submit RPC requests to Ethereum via MetaMask. It returns a Promise that resolves to the result of the RPC method call.
The params and return value will vary by RPC method. In practice, if a method has any params , they are almost always of type Array .
If the request fails for any reason, the Promise will reject with an Ethereum RPC Error.
MetaMask supports most standardized Ethereum RPC methods, in addition to a number of methods that may not be supported by other wallets. See the MetaMask RPC API documentation for details.
# Example
# Events
The MetaMask provider implements the Node.js EventEmitter
(opens new window) API. This sections details the events emitted via that API. There are innumerable EventEmitter guides elsewhere, but you can listen for events like this:
# connect
The MetaMask provider emits this event when it first becomes able to submit RPC requests to a chain. We recommend using a connect event handler and the ethereum.isConnected() method in order to determine when/if the provider is connected.
# disconnect
The MetaMask provider emits this event if it becomes unable to submit RPC requests to any chain. In general, this will only happen due to network connectivity issues or some unforeseen error.
Once disconnect has been emitted, the provider will not accept any new requests until the connection to the chain has been re-restablished, which requires reloading the page. You can also use the ethereum.isConnected() method to determine if the provider is disconnected.
# accountsChanged
The MetaMask provider emits this event whenever the return value of the eth_accounts RPC method changes. eth_accounts returns an array that is either empty or contains a single account address. The returned address, if any, is the address of the most recently used account that the caller is permitted to access. Callers are identified by their URL origin, which means that all sites with the same origin share the same permissions.
This means that accountsChanged will be emitted whenever the user’s exposed account address changes.
We plan to allow the eth_accounts array to be able to contain multiple addresses in the near future.
# chainChanged
See the Chain IDs section for MetaMask’s default chains and their chain IDs.
The MetaMask provider emits this event when the currently connected chain changes.
All RPC requests are submitted to the currently connected chain. Therefore, it’s critical to keep track of the current chain ID by listening for this event.
We strongly recommend reloading the page on chain changes, unless you have good reason not to.
# message
The MetaMask provider emits this event when it receives some message that the consumer should be notified of. The kind of message is identified by the type string.
RPC subscription updates are a common use case for the message event. For example, if you create a subscription using eth_subscribe , each subscription update will be emitted as a message event with a type of eth_subscription .
# Errors
All errors thrown or returned by the MetaMask provider follow this interface:
The ethereum.request(args) method throws errors eagerly. You can often use the error code property to determine why the request failed. Common codes and their meaning include:
- 4001
- The request was rejected by the user
- -32602
- The parameters were invalid
- -32603
- Internal error
For the complete list of errors, please see EIP-1193
(opens new window) package implements all RPC errors thrown by the MetaMask provider, and can help you identify their meaning.
# Using the Provider
This snippet explains how to accomplish the three most common requirements for web3 sites:
- Detect the Ethereum provider ( window.ethereum )
- Detect which Ethereum network the user is connected to
- Get the user’s Ethereum account(s)
# Experimental API
There is no guarantee that the methods and properties defined in this section will remain stable. Use it at your own risk.
We expose some experimental, MetaMask-specific methods under the ethereum._metamask property.
# Experimental Methods
# ethereum._metamask.isUnlocked()
This method returns a Promise that resolves to a boolean indicating if MetaMask is unlocked by the user. MetaMask must be unlocked in order to perform any operation involving user accounts. Note that this method does not indicate if the user has exposed any accounts to the caller.
# Legacy API
You should never rely on any of these methods, properties, or events in practice.
This section documents our legacy provider API. MetaMask only supported this API before the provider API was standardized via EIP-1193
(opens new window) in 2020. Because of this, you may find web3 sites that use this API, or other providers that implement it.
# Legacy Properties
# ethereum.chainId (DEPRECATED)
This property is non-standard, and therefore deprecated.
If you need to retrieve the current chain ID, use ethereum.request(< method: 'eth_chainId' >) . See also the chainChanged event for more information about how to handle chain IDs.
The value of this property can change at any time.
A hexadecimal string representing the current chain ID.
# ethereum.networkVersion (DEPRECATED)
You should always prefer the chain ID over the network ID.
The value of this property can change at any time.
A decimal string representing the current blockchain’s network ID.
# ethereum.selectedAddress (DEPRECATED)
The value of this property can change at any time.
Returns a hexadecimal string representing the user’s «currently selected» address.
The «currently selected» address is the first item in the array returned by eth_accounts .
Источник
No Ethereum Provider Was Found on Window Ethereum
«Сервисы пользуются такими нодами, поскольку у них есть ряд специфических вызовов API, которые позволят показывать больше данных о транзакции, по сравнению с geth, которые являются нодами по умолчанию», — добавил эксперт.
Что случилось с сетью Ethereum
Заметьте, что мы не можем сравнить две строки привычным способом ‘aaa’ == ‘bbb’ . Причина все та же, string — это динамический тип данных, работа с ними довольно болезненна. Так что остается либо сравнивать хэши, либо использовать функцию для посимвольного сравнения. В этом случае можете использовать популярную библиотеку stringUtils.sol, в ней есть такая функция.
Dive into Ethereum
Создаем контракт-визитку
Сначала, само собой, заливаем весь код (финальную версию можете найти в репозитории проекта). Далее в выпадающем списке Select execution environment выберите Javascript VM — пока что протестируем контракт на JS эмуляторе блокчейна, чуть позже научимся работать и с настоящим. Если с контрактом все в порядке, то вам будет доступна кнопка Create — нажимаем и видим: Отдаем данные
Etheratom
Для этого будем использовать самый обычный mapping, который нужно объявить в начало контракта. Администрирование
BTW На всякий случай отмечу, что кроме локального файла, Remix умеет импортировать .sol файлы по ссылке на Github и даже с помощью протокола Swarm (это что-то вроде распределенного хранилища для Ethereum, подробнее здесь)
Note that Ethereum Wallet will not display your account balance correctly when it is not synced fully or correctly.
Ethereum Wallet Syncing Problems
Unable To Sync edit.
Fast Sync Just Completed, Transitioning To Normal Sync [ edit ]
And following is the equivalent geth 1.6.0 message from a full sync transitioning to incremental single block updates. The blocks will sync in batches, and when your blockchain data is up to date, single blocks are received approximately every 14 seconds: Alternatives [ edit ]
Slow Syncing Between Blocks 2, 283, 397 And 2, 717, 576 [ edit ]
Fast Sync Just Completed, Transitioning To Normal Sync edit. How can I tell if my node client is fast syncing or not? [ edit ]
Refer to Network Ports, Files And Directories for more information on the location of Ethereum software files and directories on your computer.
Executable binaries for stable mainnet client implementations can be downloaded from their release pages:
Spin up your own Ethereum node
This means you can run nodes on regular desktop or server machines with the operating system OS that suits you the best.
- Manually calling them with a suitable protocol (e.g. using curl )
- Attaching a provided console (e.g. geth attach )
- Implementing them in applications
Therefore you have various options for deploying based on your needs.
You can also host access to your RPC interface by pointing service of web server, like Nginx, to your client’s local address and port.
§ And following is the equivalent geth 1.6.0 message from a full sync transitioning to incremental single block updates. The blocks will sync in batches, and when your blockchain data is up to date, single blocks are received approximately every 14 seconds:
You can use Parity as a back end to Ethereum Wallet. Start Parity with the following command line
Источник
Rinkeby Faucet No Ethereum Address Found #22031
Comments
anti-seal commented Dec 17, 2020
So I clearly have a tweet with a valid ethereum address, but it says no ethereum address found.
The text was updated successfully, but these errors were encountered:
ravisriv commented Dec 22, 2020
Same here. I tweeted several times. It can’t read a tweet. Basically, it is not working. It keeps on saying no Ethereum address found. Its not working.
sanoyphilippe commented Dec 22, 2020
same issue for me
bernatfp commented Dec 22, 2020
Same, can’t get it to work with tweets nor with FB posts.
reuvenpo commented Dec 23, 2020
ligi commented Dec 23, 2020
Please let me know your addresses and how much rinkeby ether you need
sanoyphilippe commented Dec 23, 2020
Please let me know your addresses and how much rinkeby ether you need
0xaEa9a49dEd76F9954DCD41E988Ee68EeA550CF47
10 ETH rinkeby
ligi commented Dec 23, 2020
this seems to be a token contract that does not accept ether — please send an EOA
sanoyphilippe commented Dec 23, 2020
this seems to be a token contract that does not accept ether — please send an EOA
what’s EOA? also why doesn’t it accept ether? do I need ether to create NFTs? I am still new to this. thank you
ligi commented Dec 23, 2020
EOA -> Externally Owned Address
Unfortunately I do not see the code of your contract — so I do not know why it does not accept it.
Yes — you need ether to create NFTs
ravisriv commented Dec 23, 2020 •
Please let me know your addresses and how much rinkeby ether you need
About 18 ETH would be great.
ligi commented Dec 23, 2020
@ravisriv you have >18 ETH now in your account
samson9993 commented Dec 23, 2020
@ligi Some ETH (10) to this account would be great. Thank you!
ligi commented Dec 23, 2020
samson9993 commented Dec 23, 2020
bernatfp commented Dec 23, 2020
Please let me know your addresses and how much rinkeby ether you need
Would it be possible to get 20 Rinkeby ETH?
reuvenpo commented Dec 23, 2020 •
My address is 0x60baA9f4ab5FC82B72d06Bc66Da1Eb1e8FDE60E1 , I’d like 10 rinkeby ETH
Thanks @ligi ! 😄
ligi commented Dec 23, 2020
Tigo9527 commented Dec 24, 2020
@ligi Please help me and my team mates: each for 6 eth or 18 eth to me. we runs a new chain and interact with ethereum, need eth to test cross chain operation. Thanks.
0xa1F29a57BD2240aAECABcAfB3Febed914648b64E
0xd76f955ac8FAa0eb9c139A32cBf19d9E678Cd1F9
0x9a5ef76F0e2d03dEDa0e42bA692B36d685C93F2e me
WuYansong commented Dec 24, 2020 •
@ligi Please help me. My address is 0xdA9914E4479C87FBf80c8C2ECe3fe9A97F2f0fba, 10 ETH(Rinkeby) to this account would be great.Thank you
yayahappywork commented Dec 25, 2020
@ligi Please help me, my address is 0x5584A45499d9A19D83173894Bf57986E769E6198,I’d like 10 rinkeby ETH
Thanks
dr3amboy commented Dec 26, 2020
I haven’t been able to get any of the test faucets to work, @ligi if you could possibly send some Rinkeby test ETH to 0x5D79b92efed4Aa3a6a69868ab775A4773b712d4F that would be greatly appreciated!
CarlGocht commented Dec 27, 2020
@ligi same issue as the others, can’t get the rinkeby faucets to work, 10 rinkeby eth to 0xd1015Efa96441d2326F8194E7b1f5FE8425b84f8 would be appreciated. Thank You!
InsureFiX commented Dec 27, 2020
@ligi Same issue as the others, cant get the rinkeby faucets to work, 10 rinkeby eth to 0xdbC2E36941De2a4724EbfD25098c44B8F1ce476D would be awesome. THANK YOU!
nilankanayana commented Dec 27, 2020
same issue, if you could send me 10 eth, it would be great, thanks.
address: 0xDc7026F5a4AEc3001817ed661Ff9B786E9186e28
post: https://twitter.com/nilankanayana/status/1343044369893355522
dlarchikov commented Dec 27, 2020
Same problem
ligi commented Dec 27, 2020
You should all have rinkeby ether now
@Tigo9527 I send 18 to you — please distribute to your mates
@dlarchikov please provide an address here so I can send you some
malbecAr commented Dec 30, 2020
@ligi 10 eth please
0xcC4768Dfaae25224103A4801dED30787b74Ec28d
aloisius82 commented Dec 30, 2020
please send me 20 eth 0xD5fB11a7655D0095fE9E090c205C91a8f0CDef47
thanks
SvyatoslavLiven commented Dec 30, 2020 •
@ligi 5 ETH please)
0x696CC718d80fDd2eC8e2CE0b29cFcEA4c16d9496
cristocer commented Dec 31, 2020
@ligi 15 eth would be nice please
0x66353521A464345BE1AdCd74A25D686981a359c6
thelastjosh commented Dec 31, 2020
@ligi Same issue. 10 ETH please!
0x356bd1169A2b94B5a3C9D9F356FA5D35E584A521
millileakz commented Dec 31, 2020 •
same issues — if anyone has some Rinkeby ETh to spare for test i will appreciate this 🙂
einfach-edel commented Dec 31, 2020
same issue — I created my first account, shared my EOA via Facebook and Twitter. Entered the link on https://faucet.rinkeby.io/ and got the error message «No Eth address found to fund».
Can someone send me 1 Rinkeby Eth to
0xF5aa9a685fCc792C1E616803B57a8c0F1015e0f1
ttakumat commented Dec 31, 2020
Hi. same issue here.
I’d really appreciate if someone can fund 1 eth to
0x348c0a7a93F86E451971DFC89D2A74519bBaEBfd
Thanks.
lordkayag commented Dec 31, 2020
Having same issue.
Please send 5 eth rinkeby to 0x43A0033408C2bCc86102385F1A4FcB37bABFe8f8
noahc66260 commented Jan 1, 2021
Me too.
Please send 3 ETH rinkeby to 0x71849D7a22890f60C6D6BE83E2E48cdB4A24CEA7
Post: https://twitter.com/devilscompiler/status/1344848283626180609
z330789559 commented Jan 1, 2021
@ravisriv you have >18 ETH now in your account
me too
Please send 18ETH rinkeby to 0x896267e34bD86ecc9478333F412705235Fc66E4a
https://twitter.com/al84628047/status/1343894099783372801?s=20
vnavascues commented Jan 1, 2021
Please let me know your addresses and how much rinkeby ether you need
Hi, can I get 18 ETH at 0x5E1e93B6D25690B7A26d70468f81d5b6441885c4? Many thanks
https://twitter.com/vnavascues1/status/1345022515408756745
Kronoxis commented Jan 1, 2021
We’re planning on doing some extensive testing with 4 devs tomorrow, so I could use some more ETH to distribute among my team. Can you send 16-20 ETH to the following address?
0x57b2D27191d80afDb520AD07AD407C2a99B34127
Thanks!
foravneet commented Jan 2, 2021
2-3 ETH at this address will help. Thanks ! — 0x1600431bD009a0EEb62247a429dE609b9E0014B5
Ezparga commented Jan 3, 2021
Just found this thread, we’re urgently needing to carry out some testing and the faucet isn’t working
Please could you send 15 ETH to:
luongs3 commented Jan 3, 2021
Please 15 ETH to 0x91878ec5288E944fD4A357022d60DbE9Ab49c46f
I really need it now to test my product
setragk commented Jan 3, 2021
Can someone please send 10 ether to 0xB3D8C850aD1f50CF5863600b3F49c1AC068400e4
karalabe commented Jan 5, 2021
This was fixed yesterday, needed a new Twitter auth workflow.
eebit2020 commented Jan 10, 2021
Please send me 1 ethe 0x8f6f2f241A993EBE06E7d383ab9D4945BF189138
montalban commented Feb 13, 2021
Could someone please send 10 ETH to 0xf8B17B25032b82CBDDEe3413FDb7E195D6D2752C Thanks!!
UsabilitySpace commented Mar 7, 2021
It’s not working for me too.
So, would someone send some test ether to 0x9413391975190f0413ddc331c41A2F32847D960d
knottl commented Mar 20, 2021
Can someone send me some ether to 0xb89238b93Fb85a99daeb15121DF828F225f467BE thank you @ligi
kietfriends commented Apr 4, 2021
Could someone please send 10 ETH to 0xD3afb233FA3CB3982e59497a269D1de290373b74 Thanks!!
Источник