Babylon에서 큰지도 값을 얻는 방법
2 대답
- 투표
-
- 2019-10-16
새로운 CLI 및 RPC 예상 원시 표현식 대신 스크립트 표현식의 해시. 해시를 얻으려면 다음과 같이 할 수 있습니다.
tezos-client hash data '"tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys"' of type address
이것은 다양한 형식으로 해시를 인쇄합니다. 예를 들어
Script-expression-ID-Hash
레이블이있는 형식을 원합니다.exprv6UsC1sN3Fk2XfgcJCL8NCerP5rCGy1PRESZAqr7L2JdzX55EN
.그런 다음 CLI와 함께 사용할 수 있습니다.
tezos-client get element exprv6UsC1sN3Fk2XfgcJCL8NCerP5rCGy1PRESZAqr7L2JdzX55EN of big map 22
및 RPC :
/chains/main/blocks/head/context/big_maps/22/exprv6UsC1sN3Fk2XfgcJCL8NCerP5rCGy1PRESZAqr7L2JdzX55EN
수정 :
더 간단한 큰지도 액세스를 위해 새로운 CLI 명령이 추가되었습니다.
tezos-client get big map value for '"tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys"' of type address in <src>
여기서
<src>
는 별칭,키 또는 리터럴 (귀하의 경우KT1DT9YwHdSbZuVuZDjd1SMUcfXm57R5bE9v
) 일 수 있습니다.The new CLI and RPC for big map expect hash of a script expression, instead of the raw expression. To obtain the hash you can e.g.:
tezos-client hash data '"tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys"' of type address
This will print hashes in bunch of different formats - you want the one with the label
Script-expression-ID-Hash
, e.g.exprv6UsC1sN3Fk2XfgcJCL8NCerP5rCGy1PRESZAqr7L2JdzX55EN
.Then you can use this with the CLI:
tezos-client get element exprv6UsC1sN3Fk2XfgcJCL8NCerP5rCGy1PRESZAqr7L2JdzX55EN of big map 22
and RPC at:
/chains/main/blocks/head/context/big_maps/22/exprv6UsC1sN3Fk2XfgcJCL8NCerP5rCGy1PRESZAqr7L2JdzX55EN
Edit:
A new CLI command has been added for simpler big map access:
tezos-client get big map value for '"tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys"' of type address in <src>
where
<src>
can be an alias, a key, or a literal (in your caseKT1DT9YwHdSbZuVuZDjd1SMUcfXm57R5bE9v
).-
이것이 왜 변경되었는지 언급 할 가치가 있습니다.1)이 쿼리에 POST 대신 GET을 사용하는 것이 의미 상 더 낫습니다.이 쿼리는 데이터 만 요청하고 백엔드에서 아무것도 변경하지 않습니다.2) Carthagenet 이전에는 계약이 하나의 큰지도 만 가질 수 있었지만 이제는 여러 개의 큰지도를 가질 수 있습니다.각각의 큰지도에는 고유 한 식별 키가 있습니다.It might be worth mention why this has changed. 1) Using GET instead of POST for this query is semantically more sound, this query only requests data and does not change anything on the backend. 2) Before Carthagenet, a contract could only have one big map, now it can have multiple big maps. Each of those big maps have a unique identifying key.
- 0
- 2020-06-18
- MCH
-
- 2019-10-15
cli 명령은
tezos-client get big map value for <key> of type <type of the key> in <contract>
.-l
옵션을 추가하면 RPC :/chains/main/blocks/head/context/contracts/<contract address>/big_map_get
도 얻습니다.실제로는 큰지도 색인을 알 필요가 없습니다. 같은 유형의 키를 가진 여러 개의big_map이 저장되어 있으면 모두 키를 검색합니다.
The cli command is
tezos-client get big map value for <key> of type <type of the key> in <contract>
. By adding the-l
option, we also get the RPC:/chains/main/blocks/head/context/contracts/<contract address>/big_map_get
.Actually, you do not need to know the big map index, if several big_maps with the same type of keys are stored, they will all be searched for the key.
-
'큰지도 값 가져 오기'가 이제 지원 중단됨으로 표시됩니다.=(`get big map value` is listed as deprecated now =(
- 0
- 2020-03-02
- Justin
-
개발 과정에서 '큰지도 값 얻기'가 훨씬 더 쉽다고 말할 것입니다.더 이상 사용되지 않는 것으로 표시 되더라도이 명령을 계속 사용할 수 있도록 설계된 계약이 많이 있습니다.물론 계약 저장소 상단에있는 쌍의 왼쪽에있는 큰지도에서만 작동합니다.I will say `get big map value` is much easier for the development process. I still see a lot of contracts designed such that they can continue using this command even though it is listed as deprecated. Of course, it only works for a big map that is in the left side of a pair at the top of a contracts storage.
- 0
- 2020-06-18
- MCH
Babylon은 http://tezos.gitlab.io/babylonnet/api/rpc.html#get-block-id-context-big-maps-big -map-id- 스크립트 -expr
새 계약으로 사용해 보았습니다. 저는이 계약을 배포했습니다.
올바르게 이해했다면 큰지도의 ID는
여야합니다.22
내 큰지도가
tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys
키로 초기화되었음을 알고 있습니다.cli 또는 rpc를 사용하여 값을 얻는 올바른 방법은 무엇입니까?
나는 시도했다 :
tezos get element tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys of big map 22
http://babylonnet-node.tzscan.io/chains/main/blocks/head/context/big_maps/22/tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys
둘 다 작동하지 않습니다. 올바르게 이해하면 키를 인코딩해야 할 것입니다. 필요한 인코딩이 무엇인지 잘 모르겠고 작동하는 예제를 찾을 수없는 것 같습니다.