Mintbase actualizó 544 contratos NFT

Juan Enrique (jeph)
NEAR Translators Guild
5 min readJan 23, 2022

--

Sí, el principal motivo de fama de NEAR es que está configurada para ser una de las primeras cadenas de POS (Prueba de Participación) fragmentadas, pero para nosotros en Mintbase el sistema de cuentas es como la cereza del pastel. Primero tenemos que entender el sistema de claves de acceso, sumergirnos en lo que es posible y un poco en la hoja de ruta de Mintbase.

Sistema de cuentas NEAR

Las cuentas NEAR y los contratos son todos iguales. Puedes tener una cuenta llamada nate.near, (no 0x8d7dd7b604b4e……) y esto puede actuar como tu cuenta bancaria donde envías/recibes dinero de Internet. También podemos escribir un contrato inteligente en Rust o AssemblyScript e implementarlo en ese nombre de cuenta. Así que nate.near también puede ser un contrato inteligente DeFi o NFT. También obtenemos subdominios, por lo que neat.nate.near es un subdominio válido.

Fábrica de contratos de Mintbase

Nuestros usuarios implementan su propia tienda, que es su propio contrato inteligente donde tienen todas las reglas de propiedad. También pueden cambiar la propiedad del contrato, pero eso lo dejaremos para otra publicación. Implementamos nuestra fábrica de tiendas en mintbase1.near y así será cómo funcionará la nueva economía digital. Imagina que cada tienda es su propia empresa independiente, su propia dapp, un estadio lleno para sentarse, muchos puntos de partida para observar solo sus transacciones. Esto es extremadamente escalable, y apenas estamos comenzando.

Entonces, si deseas que el nombre de tu tienda sea wildeverse, implementa wildeverse.mintbase1.near. Al momento de escribir esto (El artículo original en inglés) tenemos 544 tiendas, todas las cuales se actualizaron ayer con nuevos nombres de funciones y mejores estructuras de retorno (algo realmente bueno para los desarrolladores).

Lo que es posible en NEAR

Instala NEAR CLI y cambia a mainnet de la siguiente manera...

npm install -g near-cli
export NEAR_ENV=mainnet
near keys wildeverse.mintbase1.near

Retorna

[
{
access_key: { nonce: 1, permission: 'FullAccess' },
public_key: 'ed25519:2ib9oB8DXNw3ddhZ4Te9oP9MTeSqD9ouXiJoRxv8EktT'
}
]

Demos un paso atrás

Una cuenta NEAR puede tener varias claves. Puedes tener nate.near y puedes acceder a él de varias maneras, como Ledger y otras billeteras de hardware, y Trust Wallet al mismo tiempo. NEAR Web Wallet hace un uso interesante de esto con 2FA por teléfono, correo electrónico, semilla o ledger. Puedes agregar o eliminar cualquiera en cualquier momento.

Se crea una nueva clave de acceso para cada conexión de dapp / wallet que realices y tú eliges que nivel de confianza tienes con esa dapp (muy a lo SSO). Puedes otorgar una asignación para que el juego que conecta gaste una pequeña cantidad en tu nombre para que no esté apareciendo petición de la billetera como en Ethereum, o podemos ser súper granulares, creando claves que sólo otorgan derechos específicos. llamadas de funciones, digamos, para oráculos.
¡Lo más importante es que podemos eliminar estas claves!

Mira lo que retorna en el caso de Nate

near keys nate.near

¿Por qué Mintbase tiene tus claves?

Sí, NEAR es muy nuevo, súper nuevo. Todavía estamos ayudando a modificar el estándar NFT NEP-171 (equivalente al ERC721) y las cosas siempre están cambiando. Estamos trabajando con diferentes leyes de la física en una cadena fragmentada con tiempos de bloque de un segundo, debemos tener en cuenta el costo de almacenamiento y la dinámica asíncrona fragmentada. Entonces, si el estándar cambia a la mitad del uso, como sucedió con la forma en que los desarrolladores ahora pueden obtener datos de NFT de propiedad de una cuenta, todos nuestros contratos no cumplirían con el. Optamos por el control actualizable por ahora para mantener el cumplimiento en marcha, ya que sin las claves de acceso completo serían solo un montón de activos no interoperables y eso no es realmente divertido ni útil.

¿Te los transferiremos?

Probablemente, o al menos el nuestro será borrado. Como se mencionó anteriormente, podemos eliminar esta clave de acceso completo y cualquiera puede verlo con los comandos anteriores. Esperamos que en el proceso de eliminación de la nuestra en el futuro, le demos a la cuenta que implementó el contrato acceso total o parcial para que no pueda eliminar a otras personas que ahora poseen el NFT. Es todo muy temprano.

Nuestro plan es que una vez que las cosas comiencen a asentarse y realmente logremos la interoperabilidad con otras dapps como Paras, NFT HipHop y Plumite, haremos de código abierto nuestros contratos. Idealmente, tendremos un botón de actualización para el implementador del contrato donde pueda decidir si quiere obtener nuevas características de propiedad fraccional o de préstamo.

Lo que se actualizó

Cuando presionaste la función nft_tokens_for_owner antes, solo devolvimos una serie de identificadores de token como en Ethereum, pero ahora estamos trabajando con un nuevo mundo, obteniendo mejores resultados.

Antes Retornaba

returned ["103", "104"]

Ahora Retorna

[
{
id: 103,
owner_id: { Account: ‘mintspace.near’ },
approvals: { ‘market.mintbase1.near’: 137 },
metadata: {
title: null,
description: null,
media: null,
media_hash: null,
copies: 10,
issued_at: null,
expires_at: null,
starts_at: null,
updated_at: null,
extra: null,
reference: ‘bZnQvm7TCIACOeucqO00FXMSQQSSZorRbvNnHD — Rjk’,
reference_hash: null
},
royalty: {
split_between: {
‘caro.near’: { numerator: 1000 },
‘wildeverse.near’: { numerator: 2000 },
‘nate.near’: { numerator: 1000 },
‘mintspace.near’: { numerator: 6000 }
},
percentage: { numerator: 1000 }
},
split_owners: null,
minter: ‘mintspace.near’,
loan: null,
composeable_stats: { local_depth: 0, cross_contract_children: 0 },
origin_key: null
},
{
id: 88,
owner_id: { Account: ‘mintspace.near’ },
approvals: { ‘market.mintbase1.near’: 130 },
metadata: {
title: null,
description: null,
media: null,
media_hash: null,
copies: 10,
issued_at: null,
expires_at: null,
starts_at: null,
updated_at: null,
extra: null,
reference: ‘bZnQvm7TCIACOeucqO00FXMSQQSSZorRbvNnHD — Rjk’,
reference_hash: null
},
royalty: {
split_between: {
‘caro.near’: { numerator: 1000 },
‘mintspace.near’: { numerator: 6000 },
‘nate.near’: { numerator: 1000 },
‘wildeverse.near’: { numerator: 2000 }
},
percentage: { numerator: 1000 }
},
split_owners: null,
minter: ‘mintspace.near’,
loan: null,
composeable_stats: { local_depth: 0, cross_contract_children: 0 },
origin_key: null
},
]

Otras actualizaciones

Paginación

Puedes quedarte sin gas al obtener demasiados datos de un contrato, por lo que ahora tenemos bits de paginación para obtener todos los tokens: `nft_tokens` y mejores datos de retorno de un solo `nft_token`.

near view wildeverse.mintbase1.near nft_token '{"token_id": "6"}'
near view wildeverse.mintbase1.near nft_tokens '{"from_index": "0", "limit": 10}'

Ayudas del indexador para Wallet y otros

Cambiamos el nombre de nuestra función batch_transfer a nft_batch_transfer para que los indexadores puedan recoger mejor los recibos (esperamos que NEAR Web Wallet tenga un mejor acceso).

También agregamos nft_batch_mint y nft_batch_burn

Gracias por mantener la mente abierta. Estamos abriéndonos camino aquí en el desierto profundo y nos encanta.

Nate

Thanks to Carolin_Berlin.

Artículo original:

Mintbase Upgraded 544 NFT Contracts | by Nate Geier | Mintbase | Sep 2021 | Medium

Traducido por jeph.near

--

--

Juan Enrique (jeph)
NEAR Translators Guild

Blockchain and Mobile App Developer. Unity 3D and Unreal Engine in Hobby time.