계약의 주소 형식 사양
1 대답
- 투표
-
- 2019-02-11
계약을 시작할 때 네트워크에 "작업"을 보냅니다.이 작업은 바이트 형식으로 직렬화되고 해시가 파생됩니다. 이것은 주어진 작업에 대한 작업 해시입니다.
작업이 새 계약을 생성하는 경우 작업 해시 + 인덱스 바이트 (0부터 시작)를 해싱하여 새 KT1 주소를 수동으로 계산할 수 있습니다.일부 작업은 여러 개의 새 KT1 주소에서 시작되므로 인덱스를 사용합니다.eztz가하는 방법은 다음과 같습니다. https://github.com/TezTech/eztz/blob/master/src/main.js#L751
왜이 정보가 필요한지 잘 모르겠습니다. 새 주소를 시작하기 전에 알 필요가 없나요?
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?
-
감사.그래서 시작된 계약의 주소 만 계산할 수 있습니다. 그렇죠?나는 Michelson의 통역사를 쓰고 있고`ADDRESS` 지시가 있기 때문에 묻는 것입니다.항상 계약의 주소를 반환합니다 ( '옵션'값이 아님).이 계약이 시작되지 않은 경우 계약을 스택에 넣는 것이 불가능하다는 것을 의미합니까? `./alphanet.sh 클라이언트 실행 스크립트`를 사용하여 실험을했습니다.나는`SELF`와`PACK`의 주소를 계산했습니다.그런 다음 해당 바이트를 다른 스크립트에 전달하고 성공적으로`UNPACK` 처리했습니다.그러나이 계약은 시작되지 않았습니다.어떻게 작동합니까?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
-
또한 어떤 작업이 여러 KT1 주소를 시작할 수 있습니까?사양에서`CREATE_CONTRACT`,`CREATE_ACCOUNT`,`TRANSFER_TOKENS` 및`SET_DELEGATE` 작업을 찾았습니다.내가 아는 한,첫 번째는 1 KT1 주소를 시작하고 다른 작업은 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
-
또한 어떤 해싱 알고리즘이 사용됩니까?두 번 모두blake2b입니까?Also which hashing algorithm is used? Is it blake2b both times?
- 0
- 2019-02-15
- Ivan Gromakovskii
인간이 읽을 수있는 계약 주소를 계산하는 방법을 설명하는 사양이 있습니까?
계약을 시작하려면 코드,초기 저장 값 및 기타 데이터를 제공해야합니다. 그러면 해당 주소를 받게됩니다.어떻게 계산 되나요?