Primeiros passos em eth.build

Hash Functions

Generating the hash color of...

... a string

/assets/learn-with-ethereum/screenshot_1.png

O input principal é o bloco TEXT, no qual está sendo usado o valor "Hello Word".

O bloco HASH está pegando esse valor de TEXT no seu input e esta retornando como output uma hash keccak256 (eth-hash).

O bloco STRING esta exibindo essa hash como uma string. O bloco LENGTH esta exibindo o tamanho dessa hash.

O bloco SUBSTRING está pegando essa hash, e esta fazendo um tratamento de extração de uma string, usando como parâmetro o start, que determina a partir de qual índice da hash original será feito o tratamento, e o parâmetro length, que determina a quantidade de caracteres extraídos. O bloco esta retornando como output a string extraída de 6 caracteres a partir do terceiro carácter da hash original, como estipulados nos parâmetros.

O segundo bloco STRING esta exibindo o output do SUBSTRING, e esta envidando para o bloco COLOR, que por sua vez esta exibindo uma cor baseada na string recebida como um hexadecimal.

... a file

/assets/learn-with-ethereum/screenshot_2.png

Os mesmos passos que com uma string, porem substituindo um bloco STRING por um bloco FILE DROP. O bloco FILE DROP recebe um arquivo como input.

... combinations of hashes

/assets/learn-with-ethereum/screenshot_3.png
/assets/learn-with-ethereum/screenshot_4.png

Aqui estou usando o bloco COMBINE para combinar as hashes anteriores e gerar uma nova cor com o mesmo processo.

Qualquer mudança no input inicial de qualquer um dos 3 blocos TEXT irá alterar tanto o resultado daquele workflow em específico, quanto o do resultado usando o COMBINE.

Key Pair

/assets/learn-with-ethereum/screenshot_5.png

Generate fingerprints

KEY PAIR é um bloco que consegue gerar uma private key, uma public key e um address baseado em um string aleatória (neste caso quem ta gerando uma string aleatória é o bloco BUTTON).

Private Key: 0x7eed612b561d9a7a738bd009a810577fd7023842b481b7523af95aa50350dd16

Public Key: 0x299be7653d60ae3f8a6e5bf003c3989eb626e0f5e4240bae1cd0914da17b441960f99ec90445fbd4e5566b6dc0856ff167fdf65f128eb697a9995fe8ba459da7

Address:

/assets/learn-with-ethereum/screenshot_6.png

Sign a message

O bloco SIGN vai usar como parâmetro de input uma mensagem, no caso "the bear is stick with honey", e uma private key. A partir disso ele vai gerar uma assinatura como output: 0x21fa2503c40eab0c53ef362c79b2b84e8cb9b46bb3c4db8cd981394461ce4a32515f17c0d7ed62bb52fdd2a1c09fe22973cefaed8fd98bdcb852a125ffacd4711b

Verify a message

/assets/learn-with-ethereum/screenshot_7.png
click here to edit this workflow on eth.build

O bloco RECOVER é capaz de pegar a mensagem e a assinatura, e verificar se a assinatura é válida de um determinado endereço.

Send and Receive values

Create a receiver address

/assets/learn-with-ethereum/screenshot_8.png
click here to edit this workflow on eth.build

O bloco HASH recebe um texto ("bowtiefriday") e devolve um hash, o bloco KEY PAIR recebe essa hash como uma chave privada e devolve um address.

O bloco QR exibe um QR Code, esse QR Code será o usado para receber transações.

O bloco BALANCE recebe como parâmetro o endereço de uma rede blockchain existente e o endereço, e devolve o balanço monetário atual disponível para aquele endereço. O bloco FROM WEI converte esse valor do tipo string para o tipo number, e o bloco DOLLARS pega ess número e formata como um valor monetário em dólar.

Send values

/assets/learn-with-ethereum/screenshot_9.png
click here to edit this workflow on eth.build

O bloco TRANSACTION é o bloco que vai fazer a transação de moedas, ele recebe 3 parâmetros, privateKey, to e value.

A privateKey é a chave privada do endereço que vai enviar a moeda, o parâmetro to é o endereço que vai receber a moeda, e o parâmetro value é o valor que será enviado. Este bloco retorna a hash de assinatura da transação, o signed.

O bloco SEND TX é o bloco que vai executar a transação, ele recebe o parâmetro signed da tramação e o endereços da rede blockchain usada. Ele retorna uma hash de confirmação da transação, que no caso ai não ocorreu por algum motivo, eu acredito que seja porque a rede que estou usando não é minha, é de que vez a playlist de videos que estou acompanhando.


Referências

Austin Griffith: https://www.youtube.com/playlist?list=PLJz1HruEnenCXH7KW7wBCEBnBLOVkiqIi

eth-hash: https://github.com/ethereum/eth-hash [fork]