Especificação de formato de endereço do contrato
1 responda
- votos
-
- 2019-02-11
Quando sua originar um contrato,vocêenvia uma "operação"para a rede.Esta operação éentão serializadaem formato debytee um hash é derivado -esta é a hash de operaçãopara a operação determinada.
Se uma operaçãogerar umnovo contrato,vocêpoderá calcularmanualmente onovoendereço KT1por hashingthe Operation Hash + umbyte de índice (apartir de 0).Usamos um índice como algumas operações originam váriosnovosendereços KT1.É assim que Eztzfaz: https://github.com/Teztech/eztz/blob/master/src/main.js#l751
Nãotenho certezaporque vocêprecisa disso,vocênãoprecisa saber onovoendereço antes de originar?
When your originate a contract, you send an "operation" to the network. This operation is then serialized into byte format and a hash is derived - this is the operation hash for the given operation.
If an operation generates a new contract, you can manually calculate the new KT1 address by hashing the operation hash + an index byte (starting from 0). We use an index as some operations originate multiple new KT1 addresses. This is how eztz does it: https://github.com/TezTech/eztz/blob/master/src/main.js#L751
I'm unsure why you need this though - you don't need to know the new address before originating?
-
Obrigado.Portanto,só épossível calcular oendereço de contrato originado,certo?Euestouperguntandoporqueestouescrevendo umintérprete de Michelsone háinstrução deendereço.Sempre retorna oendereço de um contrato (não "valor da opção").Issoimplica que éimpossível colocar um contrato sobre apilha seeste contratonãotiver sido originado? Eufiz umexperimento usando "./alphanet.sh client script".Eu calculei oendereço de "auto`e"pack ".Em seguida,passouessesbytespara outro roteiroe sem recompensar com sucesso.Maseste contratonão é originado.Comofunciona?Thanks. So it's only possible to compute address of originated contract, right? I am asking because I am writing an interpreter of Michelson and there is `ADDRESS` instruction. It always returns address of a contract (not `option` value). Does it imply that it's impossible to put a contract on stack if this contract hasn't been originated? I made an experiment using `./alphanet.sh client run script`. I computed address of `SELF` and `PACK`ed. Then passed those bytes to another script and succesfully `UNPACK`ed them. But this contract is not originated. How does it work?
- 1
- 2019-02-12
- Ivan Gromakovskii
-
Além disso,quais operaçõespodem originar váriosendereços KT1?Euencontrei as seguintes operaçõesnaespecificação: `Create_Contract`,` Create_Account`,`transfer_tokens`e` set_delegate`.Tanto quantoeuentendo,oprimeiro origina 1endereço KT1e outras operaçõesnãogeramendereços KT1.Also which operations can originate multiple KT1 addresses? I found the following operations in the spec: `CREATE_CONTRACT`, `CREATE_ACCOUNT`, `TRANSFER_TOKENS` and `SET_DELEGATE`. As far as I understand, the first one originates 1 KT1 address and other operations don't generate KT1 addresses at all.
- 1
- 2019-02-14
- Ivan Gromakovskii
-
Também qual algoritmo de hash é usado?É Blake2b ambas as vezes?Also which hashing algorithm is used? Is it blake2b both times?
- 0
- 2019-02-15
- Ivan Gromakovskii
Existe umaespecificaçãoem algum lugar queexplica como calcular umendereço legívelpor humanos de um contrato?
Para originar um contrato,precisofornecer seu código,valor de armazenamentoiniciale alguns outros dadose,em seguida,receberei seuendereço.Como é calculado?