Envié una cierta cantidad de ETH a una billetera. Revisé el saldo de las carteras en la cadena de éter. Ingresé la dirección en el campo de búsqueda y noté que las versiones en minúsculas y mayúsculas de la dirección parecían funcionar.
Quería comprar unos cuantos dólares más, pero ahora no estoy seguro de si hay algún problema con la dirección que creé. Agradecería alguna orientación.
Las direcciones de las carteras de Ethereum están en hexadecimal [0-9A-F]*. Si bien la dirección en sí no distingue entre mayúsculas y minúsculas ( A
es lo mismo a
que la red), la distinción entre mayúsculas y minúsculas se usa como una suma de verificación (opcional). Fue construido como una ocurrencia tardía para un esquema de direccionamiento que carecía de validación de suma de comprobación básica.
https://github.com/ethereum/EIPs/issues/55#issuecomment-187159063
La suma de comprobación funciona así:
Entonces, sha3 hash la dirección y observa cada N-ésimo carácter del resultado sha. Si es 7 o inferior, el carácter N de la dirección es minúscula. Si es 8 o superior, ese carácter está en mayúscula.
(Traído de un antiguo foro de Ethereum cuyo enlace ahora está roto ).
Las mayúsculas simplemente significan que la dirección tiene una suma de verificación. Debe usar la dirección en mayúsculas debido a esto, pero ambos funcionarán.
capitalization address
significa exactamente esta respuesta es un poco ambiguaMira estos ejemplos:
> Web3.utils.toChecksumAddress("0x03fB09251eC05ee9Ca36c98644070B89111D4b3F".toLowerCase());
'0x03FB09251eC05ee9Ca36c98644070B89111D4b3F'
> Web3.utils.toChecksumAddress("0x03fB09251eC05ee9Ca36c98644070B89111D4b3f".toLowerCase());
'0x03FB09251eC05ee9Ca36c98644070B89111D4b3F'
> Web3.utils.toChecksumAddress("0x03fB09251eC05ee9Ca36c98644070B89111D4b3e".toLowerCase());
'0x03Fb09251ec05eE9CA36c98644070B89111D4b3e'
> Web3.utils.isAddress("0x03FB09251eC05ee9Ca36c98644070B89111D4b3f".toLowerCase());
true
> Web3.utils.isAddress("0x03FB09251eC05ee9Ca36c98644070B89111D4b3F".toLowerCase());
true
> Web3.utils.isAddress("0x03FB09251eC05ee9Ca36c98644070B89111D4b3F");
true
> Web3.utils.isAddress("0x03FB09251eC05ee9Ca36c98644070B89111D4b3f");
false
> Web3.utils.isAddress("0x03FB09251eC05ee9Ca36c98644070B89111D4b3e");
false
> Web3.utils.isAddress("0x03FB09251eC05ee9Ca36c98644070B89111D4b3E");
false
Tenga en cuenta el último carácter;)
eric