バビロンで大きな地図の価値を得る方法
2 回答
- 投票
-
- 2019-10-16
新しい
CLI と RPC forbig mapexpect生の式ではなく、スクリプト式のハッシュ.ハッシュを取得するには、例: 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の前は、契約には1つの大きなマップしか含めることができませんでしたが、現在は複数の大きなマップを持つことができます.これらの大きなマップにはそれぞれ、一意の識別キーがあります.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.
-
`getbig map value`は非推奨としてリストされています=(`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には、このリンクに従って大きなマップ値をクエリするための新しいRPCがあります http://tezos.gitlab.io/babylonnet/api/rpc.html#get-block-id-context-big-maps-big -map-id-script-expr
新しい契約で使ってみました.この契約を展開しました https://babylonnet.tzscan.io/KT1DT9YwHdSbZuVuZDjd1SMUcfXm57R5
正しく理解できれば、大きな地図の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
どちらも機能しません.正しく理解していれば、おそらくキーをエンコードする必要があります.必要なエンコーディングが何であるかわからないため、機能する例が見つからないようです.