You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pt/17_5_Using_Scripts_in_Libwally.md
+22-22Lines changed: 22 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,16 @@
1
-
# 16.5: Usando Scripts na Libwally
1
+
# 17.5: Usando Scripts na Libwally
2
2
3
3
> :information_source:**NOTA:** Esta seção foi adicionada recentemente ao curso e é um rascunho inicial que ainda pode estar aguardando revisão.
4
4
5
-
Na seção 3 deste capítulo, ao apresentar os scripts, dissemos que era provável que criássemos transações usando scripts com uma API e dissemos que este era um tópico para o futuro. Bem, o futuro já chegou.
5
+
Na seção 3 deste capítulo, ao apresentar os scripts, dissemos que era provável que criássemos transações usando scripts com uma API e dissemos que este era um tópico para o futuro. Bem, agora o futuro chegou.
6
6
7
7
## Criando o Script
8
8
9
-
Criar o script é a coisa mais _fácil_ de se fazer na Libwally. Veja o exemplo a seguir, um simples [Puzzle Script](13_1_Writing_Puzzle_Scripts.md) ao qual retornamos de vez em quando:
9
+
Criar o script é a coisa _mais fácil_ de se fazer na Libwally. Veja o exemplo a seguir, um simples [Script Quebra-Cabeça](13_1_Writing_Puzzle_Scripts.md) ao qual retornamos de vez em quando:
10
10
```
11
11
OP_ADD 99 OP_EQUAL
12
12
```
13
-
Usando o `btcc`, podemos serializar isso.
13
+
Usando o `btcc`, podemos serializar isto.
14
14
```
15
15
$ btcc OP_ADD 99 OP_EQUAL
16
16
warning: ambiguous input 99 is interpreted as a numeric value; use 0x99 to force into hexadecimal interpretation
@@ -25,7 +25,7 @@ Primeiro, a Libwally precisa converter o hex em bytes, uma vez que os bytes são
Esse é nosso velho amigo `OP_HASH160 3f58b4f7b14847a9083694b9b3b52a4cea2569ed OP_EQUAL`.
42
+
Este é o nosso velho amigo `OP_HASH160 3f58b4f7b14847a9083694b9b3b52a4cea2569ed OP_EQUAL`.
43
43
44
44
Basicamente, a Libwally pegou nosso script de resgate serializado, fez o hash para nós com SHA-256 e RIPEMD-160 e aplicou o enquadramento padrão para transformá-lo em um P2SH adequado. Fizemos um trabalho semelhante ao feito na seção [§10.2](10_2_Building_the_Structure_of_P2SH.md), mas com um excesso de comandos shell.
A fim de fazer uso do `pubScriptKey` que acabamos de criar, precisamos criar uma transação e incorporar o `pubScriptKey` dentro, e esta é a grande mudança para o `bitcoin-cli`. Podemos criar manualmente uma transação com um script P2SH.
55
+
A fim de fazer uso do `pubScriptKey` que acabamos de criar, precisamos criar uma transação e incorporar o `pubScriptKey` dentro dela (e esta é a grande mudança do `bitcoin-cli`: podemos criar manualmente uma transação com um script P2SH).
56
56
57
57
O processo de criação de uma transação na Libwally é muito intenso, assim como o processo de criação de um PSBT, portanto, vamos apenas esboçá-lo, pegando um atalho e, em seguida, deixando um método sem atalhos para investigação futura.
58
58
@@ -63,7 +63,7 @@ Criar uma transação em si é fácil, só precisamos dizer ao comando `wally_tx
63
63
```
64
64
Preencher essas entradas e saídas é onde as coisas ficam complicadas!
65
65
66
-
### Criando uma saída na transação
66
+
### Criando uma Saída de Transação
67
67
68
68
Para criar uma saída, dizemos a `wally_tx_output_init_alloc` quantos satoshis estamos gastando, além de entregar o script de bloqueio:
69
69
```
@@ -77,9 +77,9 @@ Mais um comando o adiciona à nossa transação:
77
77
lw_response = wally_tx_add_output(tx,tx_output);
78
78
```
79
79
80
-
### Criando uma entrada na transação
80
+
### Criando uma Entrada de Transação
81
81
82
-
Criar a entrada é muito mais difícil porque temos que empilhar informações nas rotinas de criação, nem todas as quais são intuitivamente acessíveis quando usamos a Libwally. Então, ao invés de ir mergulhar fundo nessa biblioteca, é neste momento que pegamos nosso atalho. Escrevemos o código de forma que seja passado o código hexadecimal para uma transação que já foi criada e, em seguida, apenas reutilizamos a entrada.
82
+
Criar a entrada é muito mais difícil porque temos que empilhar informações nas rotinas de criação, nem todas as quais são intuitivamente acessíveis quando usamos a Libwally. Então, ao invés de mergulharmos fundo nessa biblioteca, é neste momento que pegamos nosso atalho. Escrevemos o código de forma que seja passado o código hexadecimal para uma transação que já foi criada e, em seguida, apenas reutilizamos a entrada.
83
83
84
84
A conversão do código hexadecimal é feita com `wally_tx_from_hex`:
85
85
```
@@ -92,27 +92,27 @@ Então podemos roubar as entradas de nosso código hexadecimal para criar uma en
Como seria de esperar, adicionamos essa entrada à nossa transação:
95
+
Como seria de se esperar, adicionamos essa entrada à nossa transação:
96
96
```
97
97
lw_response = wally_tx_add_input(tx,tx_input);
98
98
```
99
99
100
-
> **NOTA:** Obviamente, iremos querer criar nossas próprias entradas se estivermos usando Libwally aplicativos reais, mas isso é uma primeira etapa. E, na verdade, pode ser útil para integração com o `bitcoin-cli`, como veremos na seção [§16.7](16_7_Integrating_Libwally_and_Bitcoin-CLI.md).
100
+
> **NOTA:** Obviamente, iremos querer criar nossas próprias entradas se estivermos usando Libwally para aplicações reais, mas isso é uma primeira etapa. E, na verdade, pode ser útil para integração com o `bitcoin-cli`, como veremos na seção [§17.7](17_7_Integrating_Libwally_and_Bitcoin-CLI.md).
101
101
102
-
### Mostrando na tela uma transação
102
+
### Vendo uma Transação
103
103
104
-
Teoricamente, poderíamos assinar e enviar esta transação para nosso programa C construído na Libwally, mas mantendo a ideia de que estamos apenas usando um programa C simples para substituir um P2SH, vamos imprimir o novo hex. Isso é feito com a ajuda de `wally_tx_to_hex`:
104
+
Teoricamente, poderíamos assinar e enviar esta transação para nosso programa C construído na Libwally, mas mantendo a ideia de que estamos apenas usando um programa C simples para substituir um P2SH, vamos imprimir o novo hex. Isto é feito com a ajuda de `wally_tx_to_hex`:
105
105
```
106
106
char *tx_hex;
107
107
lw_response = wally_tx_to_hex(tx,0, &tx_hex);
108
108
109
109
printf("%s\n",tx_hex);
110
110
```
111
-
Mostraremos como fazer uso disso na seção §16.7.
111
+
Mostraremos como fazer uso disso na seção §17.7.
112
112
113
-
## Testando nosso script de substituição
113
+
## Testando Nosso Script de Substituição
114
114
115
-
Podemos pegar o código de teste do [diretório src/](src/16_5_replacewithscript.c) e compilá-lo:
115
+
Podemos pegar o código de teste do [diretório src/](src/17_5_replacewithscript.c) e compilá-lo:
116
116
```
117
117
$ cc replacewithscript.c -lwallycore -o replacewithscript
118
118
```
@@ -170,10 +170,10 @@ O `vin` deve apenas corresponder à entrada que substituímos, mas é o `vout` q
170
170
171
171
## Resumo: Usando Scripts na Libwally
172
172
173
-
A criação de transações na Libwally é outro tópico que pode ocupar um capítulo inteiro, mas o melhor é que, uma vez que demos esse salto, pode introduzir um P2SH `scriptPubKey`, e só essa parte é muito fácil. Embora a metodologia detalhada neste capítulo exija que já tenhamos um hex de transação em mãos (provavelmente criado com o `bitcoin-cli`) se nos aprofundarmos na Libwally, podemos fazer tudo sozinho.
173
+
A criação de transações na Libwally é outro tópico que pode ocupar um capítulo inteiro, mas o melhor é que uma vez que demos esse salto, podemos introduzir um P2SH `scriptPubKey`, e só essa parte é muito fácil. Embora a metodologia detalhada neste capítulo exija que já tenhamos um hex de transação em mãos (provavelmente criado com o `bitcoin-cli`), se nos aprofundarmos na Libwally, podemos fazer tudo sozinhos.
174
174
175
-
> :fire:***Qual é o poder dos scripts no Libwally?*** De maneira bem simples, podemos fazer algo que não podíamos antes. Criar uma transação bloqueada com um P2SH arbitrário.
175
+
> :fire:***Qual é o poder dos scripts na Libwally?*** De maneira bem simples, podemos fazer algo que não podíamos antes. Criar uma transação bloqueada com um P2SH arbitrário.
176
176
177
177
## O Que Vem Depois?
178
178
179
-
Vamos aprender mais sobre "Programando o Bitcoind usando o Libwally" na seção [§16.6: Usando Outras Funções no Libwally](16_6_Using_Other_Functions_in_Libwally.md).
179
+
Vamos aprender mais sobre "Programando Bitcoin com Libwally" na seção [§17.6: Usando Outras Funções na Libwally](17_6_Using_Other_Functions_in_Libwally.md).
0 commit comments