Cómo obtener un gran valor de mapa en Babylon
2 respuestas
- votos
-
- 2019-10-16
Lanueva CLI y RPC paragrandesmapasesperados hash de unaexpresión de script,en lugar de laexpresión sinformato. Para obtenerel hashpuede,porejemplo:
tezos-client hash data '"tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys"' of type address
Estoimprimirá hashesen unmontón deformatos diferentes; deseael quetenga laetiqueta
Script-expression-ID-Hash
,p.ej.exprv6UsC1sN3Fk2XfgcJCL8NCerP5rCGy1PRESZAqr7L2JdzX55EN
.Entoncespuede usaresto con la CLI:
tezos-client get element exprv6UsC1sN3Fk2XfgcJCL8NCerP5rCGy1PRESZAqr7L2JdzX55EN of big map 22
y RPCen:
/chains/main/blocks/head/context/big_maps/22/exprv6UsC1sN3Fk2XfgcJCL8NCerP5rCGy1PRESZAqr7L2JdzX55EN
Editar:
Se ha agregado unnuevo comando CLIpara un acceso amapasgrandesmás simple:
tezos-client get big map value for '"tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys"' of type address in <src>
donde
<src>
puede ser un alias,una clave o un literal (en su caso,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
).-
Vale lapenamencionarpor quéesto ha cambiado.1) Usar GETen lugar de POSTparaesta consultaes semánticamentemás sólido,esta consulta solo solicita datos yno cambianadaen elbackend.2) Antes de Carthagenet,un contrato solopodíatener unmapagrande,ahorapuedetener variosmapasgrandes.Cada uno deesosgrandesmapastiene una clave deidentificación única.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
El comando clies
tezos-client get big map value for <key> of type <type of the key> in <contract>
.Al agregar la opción-l
,también obtenemosel RPC:/chains/main/blocks/head/context/contracts/<contract address>/big_map_get
.En realidad,noesnecesario conocerel índice delmapagrande,si se almacenan variosmapasgrandes conelmismotipo de claves,sebuscará la claveen todosellos.
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` aparece como obsoleto ahora=(`get big map value` is listed as deprecated now =(
- 0
- 2020-03-02
- Justin
-
Diré que "obtener un valor demapagrande"esmuchomásfácilparaelproceso de desarrollo.Todavía veomuchos contratos diseñados demanera quepuedan continuar usandoeste comando aunqueesté listado como obsoleto.Por supuesto,solofuncionapara unmapagrande que seencuentraen el ladoizquierdo de unparen laparte superior del almacenamiento de contratos.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
Babylontendrá unnuevo RPCpara consultarel valor delmapagrande de acuerdo conesteenlace http://tezos.gitlab.io/babylonnet/api/rpc.html#get-block-id-context-big-maps-big -map-id-script-expr
Intenté usarlo con unnuevo contrato. Implementéeste contrato https://babylonnet.tzscan.io/KT1DT9Ed1vHdUcSb
Sientendí correctamente,laidentificación demi mapagrande debería ser
22
Sabiendo quemi mapagrande seinicializó con una clave
tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys
¿Cuáles laforma correcta de obtenerel valor usando cli o rpc?
Lointenté:
tezos get element tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys of big map 22
http://babylonnet-node.tzscan.io/chains/main/blocks/head/context/big_maps/22/tz1bwsEWCwSEXdRvnJxvegQZKeX5dj6oKEys
Ambosnofuncionan. Sientiendo correctamente,probablementenecesitaré codificarmi clave. Noestoy seguro de cuáles la codificación requerida yparece quenopuedoencontrar unejemplo quefuncione.