Use contratos para explorar o genoma de CryptoKitties
A Wolfram Language facilita a interação com contratos em blockchains. Este exemplo explora essa funcionalidade para sequenciar os genomas de um CryptoKitty e seus pais. Uma visualização dessas sequências ilustra a herança genética.
O CryptoKitties é um videogame desenvolvido pela Axiom Zen que opera na blockchain de Ethereum. Os jogadores podem comprar, vender, coletar e criar diferentes tipos de gatos virtuais únicos. Cada CryptoKitty tem um ID e um genoma. O fenótipo virtual se manifesta como atributos chamados de cattribute que podem ser passados dos pais para as próximas gerações.
Comece extraindo o endereço do contrato do CryptoKitties.
Use BlockchainContractValue para chamar a função getKitty do contract no CryptoKitty com a ID 949502.
A partir dos diferentes campos de dados sobre o CryptoKitty, extraia os genes e os IDs dos pais.
Agora extraia os genes dos pais.
Os genes são codificados usando a notação de Kai do jogo, que é uma representação de uma única letra Base58 do valor inteiro de segmentos de 5 bits. A função a seguir converte a representação de inteiros em uma lista de genes, usando o fato de que existem apenas 180 bits atualmente em uso.
Obtenha os genes do CryptoKitty e seus pais.
Isole os genes distintos presentes no CryptoKitty e seus pais.
Crie regras de cores para cada gene.
Finalmente, gere um ArrayPlot das três sequências. Cada grupo de quatro genes define um atributo que pode ser interpretado de acordo com as regras do jogo.