Comment obtenir une grande valeur de carte sur Babylon
2 réponses
- votes
-
- 2019-10-16
Lenouveau CLI et RPC pour unegrande carte attend hachage d'uneexpression de script,au lieu de l'expressionbrute. Pour obtenir le hachage,vouspouvezparexemple.:
Tezos-Client Hash Data '& Quot;tz1bwsewcwsexdrvnjxvegqzkex5dj6okeys & quot;' adresse detype
Ceciimprimera des hachagesen tas deformats différents - vous voulez celui avec l'étiquette
script-expression-id-hachage
,parexemple.EXPRV6USC1SN3FK2XFGCJCL8NCERP5RCGY1PRESZAQR7L2JDZX55EL
.Ensuite,vouspouvez l'utiliser avec le CLI:
Tezos-Client Get Elément EXPRV6USC1SN3FK2XFGCJCL8NCERP5RCGY1PRESZAQR7L2JDZX55EL de lagrande carte 22
et RPC à:
/Chaînes/Main/Blocs/Tête/Contexte/Big_maps/22/EXPRV6USC1SN3FK2XFGCJCL8NCERP5RCGY1PRESZAQR7L2JDZX55FR
EDIT:
Unenouvelle commande CLI a été ajoutéepour l'accèsplus simple de la carte:
Tezos-Client Obtenez unegrande valeur de cartepour '& quot;tz1bwsewcwsexdrvnjxvegqzkex5dj6okeys & quot;' adresse detype dans & lt; src >
où
& lt; src >
peut être un alias,une clé ou un littéral (dans votre caskt1dt9ywwwsbzuvuzdjd1smucfxm57r5be9v
).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
).-
Ilpeut êtreintéressant demention que cela a changé.1) L'utilisation d'obtenir à laplace de lapostepour cette requêteest sémantiquementplus de son,cette requêtene demande que des donnéeset ne change rien sur lebackend.2) Avant Carthagenet,un contratne pouvait avoir qu'unegrande carte,ilpeut désormais avoirplusieursgrandes cartes.Chacune de cesgrandes cartes a une clé d'identification unique.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
La commande CLIest
Tezos-Client Obtenez unegrande valeur de cartepour & lt; Key & GT;detype & lt;type de la clé >dans & lt; contrat >
.En ajoutant l'option-l
,nous obtenons également le RPC:/Chaînes/Main/Blocs/Tête/Contexte/Contrats/& LT; Adresse du contrat & GT;/BIG_MAP_GET
.En réalité,vousn'avezpasbesoin de connaître l'index de lagrande carte,siplusieurs Big_Maps avec lemêmetype de clés sont stockés,ils seronttous recherchéspour la clé.
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.
-
`Obtenir unegrande valeur de carte`est répertorié comme obsolètemaintenant=(`get big map value` is listed as deprecated now =(
- 0
- 2020-03-02
- Justin
-
Je dirai «Obtenir unegrande valeur de carte»estbeaucoupplusfacilepour leprocessus de développement.Je voistoujoursbeaucoup de contrats conçus detelle sorte qu'ilspuissent continuer à utiliser cette commandemême s'ilestinscrit comme obsolète.Bien sûr,celane fonctionne quepour unegrande carte qui setrouve àgauche d'unepaire au sommet d'un stockage de contrats.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 aura unenouvelle RPCpourinterroger unegrande valeur de carteen fonction de ce lien http://tezos.gitlab.IO/babylonnet/api/rpc.html#get-Block-id-context-big-maps-big -Map-ID-Script-Expr
J'aiessayé de l'utiliser avec unnouveau contrat. J'ai déployé ce contrat https://babylonnet.tzscan.io/kt1dt9ywhdsbzuzdjd1smucfxm57r5be9v
Sij'aibien compris,l'ID demagrande carte devrait être
22
sachant quemagrande carte a étéinitialisée avec une clé
tz1bwsewcwsexdrvnjxvegqzkex5dj6okeys
Quelest lemoyen correct d'obtenir la valeuren utilisant la CLI ou le RPC?
J'aiessayé:
Tezos Get Elément TZ1BWSEWCWSEXDNJXVEGQZKEXDJ6OWEYS de Big Map 22
http://babylonnenet-node.tzscan.io/chains/main/blocks/head/context/big_maps/22/tz1bwsewcwsexdrvnjxvegqzkex5dj6okeys
Les deuxne fonctionnentpas. Sije comprendsbien,je devraiprobablementencoderma clé. Jene suispas sûr de ce que le codage requisestet nepeutpas semblertrouver unexemple quifonctionne.