Aujourd'hui, nous accueillons Geez, Kodas, Chimpers et HV-MTL sur Amazon. Rendre ces codes échangeables on-chain a été un défi amusant. Tout cela est alimenté par le simple mais puissant RedemptionCodeRegistry créé pour Boximus. Voici comment cela fonctionne 1/🧵
Othersidemeta
Othersidemetail y a 10 heures
Les Feels sont maintenant disponibles sur la boutique Amazon US d'Otherside : → Otherside → @hvmtl2 → @GeezOnApe → @ChimpersHQ Ravi d'apporter la propriété intellectuelle de la communauté à @AMZNvideogames avec Feels, des GIFs expressifs qui apparaissent au-dessus de votre avatar dans Otherside pour montrer votre humeur.
2/ Tout d'abord, chaque code est généré de manière sécurisée hors chaîne. Chaque code se voit attribuer des données de rachat composées d'un sélecteur de fonction (4 octets), d'un ID de jeton (jusqu'à 8 octets) et d'une adresse de mint (20 octets). Cela est conçu pour être empaqueté dans un seul bytes32 afin de minimiser les coûts de stockage sur chaîne.
3/ Chaque code de rachat est ensuite haché hors chaîne, et le hachage est stocké sur chaîne dans une correspondance pointant vers ses données de rachat correspondantes. Stocker uniquement la valeur hachée protège le code sous-jacent de l'exposition.
4/ Stocker tout cela sur la chaîne nous permet d'éliminer le besoin de vérifications de temps de rachat hors chaîne comme les preuves de Merkle des signatures, en échange d'un coût d'environ 0,04 cent par code grâce à l'emballage des données.
5/ Les utilisateurs peuvent désormais acheter ces codes sur Amazon. Lorsque le code est utilisé dans Otherside, le contrat calcule le hachage, utilise cela pour récupérer les données de rachat, s'assure qu'il n'a pas été utilisé (puis le marque comme utilisé), et enfin décode les données et les utilise pour appeler le contrat de mint.
6/ Pour Boximus, chaque code était associé à un ID de jeton spécifique qui était frappé lors de la rédemption. Pour Feels, nous avons dû faire preuve d'un peu de créativité. Au lieu de frapper un seul jeton ERC721, vous frappez un pack de 1155. Pour utiliser le même format de codage, nous avons dû adapter le système.
7/ Au lieu d'un "ID de jeton", nous avons créé l'idée d'un StickerPack - une structure flexible et optimisée pour le stockage au sein du 1155 qui stocke quels autocollants frapper pour un "ID" donné. Pour le lancement d'aujourd'hui, chaque code permet de récupérer le Pack n°1, qui contient un de chaque ID de un à dix.
8/ Ce qui est cool, c'est que ces packs d'autocollants ont un concept de randomisation si désiré. Les packs futurs peuvent être marqués comme aléatoires, où chaque ID de jeton a X% de chances d'être tiré, et chaque pack a Y nombre de tirages.
9/ Aucun VRF n'est requis ici - le caractère aléatoire est déterminé par le code de rachat lui-même. Les paquets aléatoires subissent le mécanisme de sélection suivant, utilisant une combinaison du code de rachat et des poids définis par le propriétaire pour chaque carte afin de déterminer quelles cartes sont tirées pour un paquet.
10/ J'ai hâte de voir comment Feels évolue dans Otherside. Quelles autres communautés vont embarquer ensuite ? Qui va réaliser un graal (la chance de tir peut être aussi basse que 0,01 %), et qui sera le premier à l'obtenir ? Dans le Metavers, tout le monde a besoin d'un flex numérique. Amusons-nous.
196