diff --git a/micheline/script.go b/micheline/script.go index 2a5f047d..790d633d 100644 --- a/micheline/script.go +++ b/micheline/script.go @@ -367,39 +367,41 @@ func DetectBigmapTypes(typ Prim) map[string]Type { } _ = typ.Walk(func(p Prim) error { switch p.OpCode { - case T_BIG_MAP: - named[uniqueName(p.GetVarAnnoAny())] = NewType(p) - return PrimSkip + case K_STORAGE: + return nil + case T_MAP: - if p.Args[1].OpCode != T_BIG_MAP { - return PrimSkip + key := p.Args[0].String + if key == "" { + key = fmt.Sprint(p.Args[0].Hash64()) } - name := p.GetVarAnnoAny() - if n := p.Args[1].GetVarAnnoAny(); n != "" { - name = n + for _, v := range DetectBigmapTypes(p.Args[1]) { + named[uniqueName(key)] = v } - named[uniqueName(name)] = NewType(p.Args[1]) return PrimSkip - case T_LIST: - if p.Args[0].OpCode != T_BIG_MAP { - return PrimSkip - } - name := p.GetVarAnnoAny() - if n := p.Args[0].GetVarAnnoAny(); n != "" { - name = n + + case T_BIG_MAP: + named[uniqueName(p.GetVarAnnoAny())] = NewType(p) + return PrimSkip + + case T_LIST, T_OPTION: + for n, v := range DetectBigmapTypes(p.Args[0]) { + named[uniqueName(n)] = v } - named[uniqueName(name)] = NewType(p.Args[0]) return PrimSkip - case T_LAMBDA: + case T_OR, T_PAIR: + for _, pp := range p.Args { + for n, v := range DetectBigmapTypes(pp) { + named[uniqueName(n)] = v + } + } return PrimSkip default: - // return PrimSkip - return nil + return PrimSkip } }) - return named } diff --git a/micheline/type_test.go b/micheline/type_test.go index 23077724..6cb7131f 100644 --- a/micheline/type_test.go +++ b/micheline/type_test.go @@ -424,14 +424,12 @@ var bigmapDetectTests = []bigmapDetectTest{ Value: `{"prim":"Pair","args":[{"prim":"Pair","args":[{"int":"5316609"},{"int":"20480"},{"int":"86400"},{"int":"20"},{"int":"100"},{"int":"1"},{"int":"5"},{"int":"75"}]},{"prim":"Some","args":[{"prim":"Pair","args":[{"int":"39"},{"prim":"Left","args":[{"prim":"Pair","args":[{"int":"652701"},{"int":"652702"},{"int":"652703"},{"prim":"None"},{"prim":"None"},{"int":"668907990893488"}]}]}]}]},{"prim":"Some","args":[{"prim":"Pair","args":[{"bytes":"00e58c94bd5a793b09e8b127a1fcf4958c72ca6f86078a78760b41415fb3a7801d"},{"int":"652704"}]}]},{"int":"619238"}]}`, Expect: map[string]int64{"upvoters_upvotes_count": 652701, "upvoters_proposals": 652702, "proposals": 652703, "trigger_history": 652704, "metadata": 619238}, }, - /* - { - Name: "KT1CRyVS5t8JSoj3ADXwt422vSm7uRxubyWQ_test_list", - Type: `{"prim":"storage","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"nat","annots":["%adminsMax"]},{"prim":"nat","annots":["%memberRequestMax"]}]},{"prim":"nat","annots":["%organizationMax"]}],"annots":["%limits"]},{"prim":"address","annots":["%nftAddress"]}]},{"prim":"list","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"set","args":[{"prim":"address"}],"annots":["%admins"]},{"prim":"string","annots":["%business"]}]},{"prim":"option","args":[{"prim":"address"}],"annots":["%fundingAddress"]},{"prim":"string","annots":["%ipfsNftUrl"]}]},{"prim":"pair","args":[{"prim":"string","annots":["%logoUrl"]},{"prim":"set","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"string","annots":["%contactId"]},{"prim":"string","annots":["%contactIdProvider"]}]},{"prim":"string","annots":["%orgName"]},{"prim":"string","annots":["%reason"]}],"annots":["%joinRequest"]},{"prim":"address","annots":["%user"]}]}],"annots":["%memberRequests"]}]},{"prim":"big_map","args":[{"prim":"address"},{"prim":"unit"}],"annots":["%members"]},{"prim":"string","annots":["%name"]}]},{"prim":"string","annots":["%siteUrl"]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"unit","annots":["%active"]},{"prim":"unit","annots":["%frozen"]}]},{"prim":"unit","annots":["%pendingApproval"]}],"annots":["%status"]}]}],"annots":["%organizations"]},{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"set","args":[{"prim":"address"}],"annots":["%admins"]},{"prim":"string","annots":["%business"]}]},{"prim":"option","args":[{"prim":"address"}],"annots":["%fundingAddress"]},{"prim":"string","annots":["%ipfsNftUrl"]}]},{"prim":"pair","args":[{"prim":"string","annots":["%logoUrl"]},{"prim":"set","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"string","annots":["%contactId"]},{"prim":"string","annots":["%contactIdProvider"]}]},{"prim":"string","annots":["%orgName"]},{"prim":"string","annots":["%reason"]}],"annots":["%joinRequest"]},{"prim":"address","annots":["%user"]}]}],"annots":["%memberRequests"]}]},{"prim":"big_map","args":[{"prim":"address"},{"prim":"unit"}],"annots":["%members"]},{"prim":"string","annots":["%name"]}]},{"prim":"string","annots":["%siteUrl"]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"unit","annots":["%active"]},{"prim":"unit","annots":["%frozen"]}]},{"prim":"unit","annots":["%pendingApproval"]}],"annots":["%status"]}],"annots":["%tezosOrganization"]}]}]}`, - Value: `{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"int":"50"},{"int":"50"}]},{"int":"1000"}]},{"string":"KT1VeeSjhKRjr6qbFiGWjiuHXTxbfMqHiZR8"}]},[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1cBifXeAimEXewxjuisUUZ6PwvdRRLNpAB"}],{"string":"Block Born is a tournament platform for gamers on Tezos and a content management system for game studios."}]},{"prim":"Some","args":[{"string":"tz1cBifXeAimEXewxjuisUUZ6PwvdRRLNpAB"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://storage.googleapis.com/block-born-prod/assets/Logo%40500x500.png"},[]]},{"int":"488518"},{"string":"Block Born"}]},{"string":"https://blockborn.gg/"},{"prim":"Right","args":[{"prim":"Unit"}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1d473kD8ctsHnJVtmoLAGW1wBZzYzMuU7n"}],{"string":"Decentralized lending and borrowing platform on Tezos blockchain. Lending pools guided by an automated interest rate market maker "}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":""},[]]},{"int":"483020"},{"string":"TezFin (Tezos Finance)"}]},{"string":"https://tezos.finance"},{"prim":"Right","args":[{"prim":"Unit"}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1QssZXqqGznmaj5mEK53mtbjsnaasfo1Nf"}],{"string":"The Plenty team is building an all-in-one decentralized platform on Tezos. Plenty DEX allows swaps on uncorrelated assets, low-cost trades on tightly correlated assets, and features a bridge from Ethereum and Polygon to Tezos. Plenty manages Ctez, a synth"}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://uploads-ssl.webflow.com/6307b856943c0f1358714dab/6307be3a634c24b505d20cb3_plentyIcon.svg"},[]]},{"int":"478686"},{"string":"Plenty Labs"}]},{"string":""},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}],{"string":"BatBits is a colony of cute Batsies, living in a cave on Tezos ecosystem! It's a community driven project which tries to give back to the community and to support the artists!"}]},{"prim":"Some","args":[{"string":"tz1bZ7eUmhbV99wy3qZxJXrTAVj3LARQq791"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://twitter.com/batbitsofficial/photo"},[]]},{"int":"471429"},{"string":"BatBits"}]},{"string":"https://batbits.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1UZZnrre9H7KzAufFVm7ubuJh5cCfjGwam"},{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}],{"string":"Chainborn is a TCG for existing pfp collections on Tezos. You can summon a Hero from one of your existing NFT pfp collections and start battling other Heroes for fame and glory. By engaging in battles a Hero gains experience to become stronger!"}]},{"prim":"Some","args":[{"string":"tz1Tj4ZaQSnQiUEom25v8qb573XFwT32obhQ"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://chainborn.xyz/static/media/logo-big-color.8c8a0cec.webp"},[]]},{"int":"471422"},{"string":"Chainborn"}]},{"string":"https://chainborn.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}],{"string":"This project is all about charity and helping those in need - may it be animals or humans!"}]},{"prim":"Some","args":[{"string":"tz1PLQv5F7qvzjRZKrgB8Nt9vxifqigdvM18"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://cdn.discordapp.com/attachments/952344765939208244/1116808941091950642/IMG_20230503_124736.jpg"},[]]},{"int":"471416"},{"string":"First Rain Charity"}]},{"string":"https://objkt.com/profile/firstraincharity/collections"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}],{"string":"I'm a hobby photographer who also likes to write. I try to combine these two passions with my NFTs. At the same time I try to bring some awereness of mental health and that each and everyone of us is beautiful and important."}]},{"prim":"Some","args":[{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://cdn.discordapp.com/attachments/952344765939208244/1116808523041488896/Profilbild.jpg"},[]]},{"int":"471403"},{"string":"First Rain"}]},{"string":"https://objkt.com/profile/firstrain/collections"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1MY1BKQd2QFDDsjCpkKi6vVDxPKycGiJA3"}],{"string":"IP and World Building"}]},{"prim":"Some","args":[{"string":"tz1MY1BKQd2QFDDsjCpkKi6vVDxPKycGiJA3"}]},{"string":""}]},{"prim":"Pair","args":[{"string":""},[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"string":"@_FirstRain_"},{"string":"TWITTER"}]},{"string":"Vessels"},{"string":"I'm your number one fan!"}]},{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}]}]]},{"int":"471259"},{"string":"Vessels"}]},{"string":"https://vesselsproject.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1PaCaFf6cf6tL8vkVE71WELKuYXyoSG5C6"},{"string":"tz1i35AGt1HS1FKN1Mqw4DuCMYHvWAHnUT3H"}],{"string":"Creation, Collection, Exhibition and Education of Blockchain/Crypto/Generative Art"}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://images.squarespace-cdn.com/content/v1/621e19e02a75bc5e24ce9a20/377b2c63-db90-4369-8b0a-3e47a5f2f6f4/Frame.png?format=1500w"},[]]},{"int":"471053"},{"string":"Volume DAO"}]},{"string":"https://www.volumedao.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1ZW6AvZCjSvz5xARo2L9QVKq3ofHU6Z6Hc"}],{"string":"Human-readable names on Tezos"}]},{"prim":"Some","args":[{"string":"KT1W56o8dK5En5hM46VsD1zKtgpqWPhs3bLh"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://app.tezos.domains/assets/img/logo_notext.svg"},[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"string":"@_FirstRain_"},{"string":"TWITTER"}]},{"string":"Tezos Domains"},{"string":"Because I'm using tez domains myself and I think it's a good thing. =)"}]},{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}]}]]},{"int":"470833"},{"string":"Tezos Domains"}]},{"string":"https://tezos.domains"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz29DrxbfkcfpUveVGsmhgvWqjgkVtGXbQyP"}],{"string":"An artistic expansion to the Ottez project. 5993 evolved Ottez are now on Tezos."}]},{"prim":"Some","args":[{"string":"tz29DrxbfkcfpUveVGsmhgvWqjgkVtGXbQyP"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://assets.objkt.media/file/assets-002/collection-logos/ottez_evolution.png"},[]]},{"int":"470466"},{"string":"Ottez Evolution"}]},{"string":"https://www.ottez.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz29DrxbfkcfpUveVGsmhgvWqjgkVtGXbQyP"}],{"string":"Humans are gone, Ottez have moved in. 4,007 generative artworks on the Tezos blockchain."}]},{"prim":"Some","args":[{"string":"tz29DrxbfkcfpUveVGsmhgvWqjgkVtGXbQyP"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://assets.objkt.media/file/assets-002/collection-logos/ottez.png"},[]]},{"int":"470460"},{"string":"Ottez"}]},{"string":"https://www.ottez.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz2HZsWyZvQfq8whWk3N2oKozaeFBNoPxP9D"}],{"string":"TZ APAC Pte. Ltd. (\"TZ APAC\") is the leading Asia-based blockchain adoption entity supporting the Tezos ecosystem. "}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":""},[]]},{"int":"469614"},{"string":"TZ APAC "}]},{"string":""},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1RZN17j7FuPtDpGpXKgMXbx57WEhpZGF6B"}],{"string":"We are a community driven project and we thrive to be a neutral hub for the tezos community to discuss everything tezos. We wanna learn together, hang out together and have some fun together."}]},{"prim":"Some","args":[{"string":"tz1RZN17j7FuPtDpGpXKgMXbx57WEhpZGF6B"}]},{"string":"Didn't get the member card yet but claimed it already =)"}]},{"prim":"Pair","args":[{"string":"https://cdn.discordapp.com/attachments/973238864342839357/1116093223119618220/ron_west_TTC_logo_01.jpg"},[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"string":"@webidente"},{"string":"TWITTER"}]},{"string":"TheTezosCommunity"},{"string":"most open and inclusive community"}]},{"string":"tz2K1rDmszPuzVQYUcyDFxeSm7ZEJdDvhXx4"}]}]]},{"int":"469228"},{"string":"TheTezosCommunity"}]},{"string":"https://zealy.io/c/thetezoscommunity/questboard"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1ZMeJMXynXg5v8DaciSZjz3hmsxqZjaEnu"}],{"string":"Tezos core developer"}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://www.dailambda.jp/img/triangle.png"},[]]},{"int":"468241"},{"string":"DaiLambda, Inc."}]},{"string":"https://dailamba.jp"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1LRHZKL44bCSV1pKmwTyh9ghiSCc3LyJoA"}],{"string":"vDL Digital Ventures GmbH"}]},{"prim":"Some","args":[{"string":"tz1g8vkmcde6sWKaG2NN9WKzCkDM6Rziq194"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://avatars.githubusercontent.com/u/104824659?s=200&v=4"},[]]},{"int":"465577"},{"string":"StakeNow"}]},{"string":"https://vdl.digital/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1STaURypfCdS7FRkK5csHhi8eqdSs8CcPt"},{"string":"tz1XtjZTzEM6EQ3TnUPUQviCD6WfcsZRHXbj"},{"string":"tz1g6JRCpsEnD2BLiAzPNK3GBD1fKicV9rCx"}],{"string":"Community powered art platform on the Tezos Blockchain"}]},{"prim":"Some","args":[{"string":"KT1J9FYz29RBQi1oGLw8uXyACrzXzV1dHuvb"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://ipfs.io/ipfs/QmdNYgc5crenyLGViykvcnW3sAfC8XE59fWyv7Q7mTTBGH"},[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"string":"@_FirstRain_"},{"string":"TWITTER"}]},{"string":"Teia DAO LLC"},{"string":"Because I'm your number 1 fan!"}]},{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}]}]]},{"int":"465578"},{"string":"Teia DAO LLC"}]},{"string":"https://teia.art"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1QoiKkkjzNrqGEi7URiWr9nH26xbyJqvf3"}],{"string":"Functori is a R&D company created by experienced engineers in programming languages (particularly OCaml and Rust), formal verification (automated reasoning, model checking), and blockchain technology (core, smart contracts and applications development)."}]},{"prim":"Some","args":[{"string":"tz1QoiKkkjzNrqGEi7URiWr9nH26xbyJqvf3"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://www.functori.com/assets/img/brand/functori_logotype_square.svg"},[]]},{"int":"465579"},{"string":"Functori"}]},{"string":"https://www.functori.com/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1LB2f981WfmnXhz42hxybpabx1C7Js8f2y"},{"string":"tz1h5GajcQWq4ybaWuwSiYrR5PvmUxndm8T8"}],{"string":"Tezos core protocol and adoption"}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://bit.ly/MarigolddevLogo"},[]]},{"int":"465580"},{"string":"Marigold"}]},{"string":"https://www.marigold.dev/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1iAuFqKbnrK6p18di4CEdVCZgB7X5tS4hX"}],{"string":"News, projects, artists and events ; the only online media to gather the French Tezos community"}]},{"prim":"Some","args":[{"string":"tz1iAuFqKbnrK6p18di4CEdVCZgB7X5tS4hX"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://pbs.twimg.com/profile_images/1567279396590870529/tS9DP6ax_400x400.jpg"},[]]},{"int":"465581"},{"string":"Tezos France"}]},{"string":"https://tezosfrance.substack.com"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1iAuFqKbnrK6p18di4CEdVCZgB7X5tS4hX"}],{"string":"PyratzLabs is the first Startup Studio fully specialized in Web3. We take innovative ideas from concept all the way through to launch, using our expertise in market leading Technology, Funding & Advisory."}]},{"prim":"Some","args":[{"string":"tz1iAuFqKbnrK6p18di4CEdVCZgB7X5tS4hX"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://uploads-ssl.webflow.com/63808b3b41be273d52703f26/63808b3b41be27dd8e703f60_logo-piratz-lab.svg"},[]]},{"int":"465582"},{"string":"Pyratz Labs"}]},{"string":"https://pyratzlabs.com"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1KmELgMMvCGamLRyMNr9qDoNaPBvDDBQux"}],{"string":"Tezos India, a Bengaluru-based startup funded by Tezos Foundation, promotes blockchain adoption in India. We tackle barriers to adoption by focusing on developer adoption, education, training, and ecosystem development. Advancing innovation in the Indian blockchain space is their goal."}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://images.yourstory.com/cs/images/companies/zN5FSNQj400x4001-1646805134262.jpg"},[]]},{"int":"465583"},{"string":"TZ INDIA PVT. LTD"}]},{"string":"https://tezosindia.org.in/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1QVzFA321GhZEBpvR7tEV2Tzd95wCQ74UD"}],{"string":"Research, development and key infrastructure support for the Tezos community."}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://www.oxheadalpha.com/images/oxheadalpha.svg"},[]]},{"int":"465584"},{"string":"Oxhead Alpha"}]},{"string":"https://www.oxheadalpha.com/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1b1sH2FmuVazszFdkUn8GvfvZpNxSa7C8J"}],{"string":"alterHEN is a collective of artists exploring the cultural economy of NFT's, with a mission to present these transformative new models to the art world as accessible, art-focused and exciting opportunities that will benefit museums, curators, festivals and artists."}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://pbs.twimg.com/profile_images/1438787875169054725/nQW0PNQp.jpg"},[]]},{"int":"465585"},{"string":"alterHEN"}]},{"string":"https://alterhen.art/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1SRqikWtR2KNpugCApreA9QeZuqh8swQMa"}],{"string":"The Tezos Commons Foundation empowers the community to be the architects through bootstrapping local communities, communications, promotion, education, funding open source initiatives and advocacy."}]},{"prim":"None"},{"string":"ipfs://QmZKSrCZwp9XmZQ2GiSdZ73RWpEGcrocAAiYU7CzZi3gBj"}]},{"prim":"Pair","args":[{"string":"https://gateway.pinata.cloud/ipfs/QmZKSrCZwp9XmZQ2GiSdZ73RWpEGcrocAAiYU7CzZi3gBj"},[]]},{"int":"465586"},{"string":"Tezos Commons"}]},{"string":"https://tezoscommons.org/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]}],{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1h5GajcQWq4ybaWuwSiYrR5PvmUxndm8T8"}],{"string":"Save the planet"}]},{"prim":"None"},{"string":"ipfs://QmdHrYEHaaDQBXVF7vZJXudLgeMaeoiPE4UuGapMNe25ej"}]},{"prim":"Pair","args":[{"string":"https://bit.ly/TZIMAGE"},[]]},{"int":"465587"},{"string":"TEZOS"}]},{"string":"https://tezos.com"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]}`, - Expect: map[string]int64{"members": 488518, "members_0": 483020, "members_1": 478686, "members_2": 471429, "members_3": 471422, "members_4": 471416, "members_5": 471403, "members_6": 471259, "members_7": 471053, "members_8": 470833, "members_9": 470466, "members_10": 470460, "members_11": 469614, "members_12": 469228, "members_13": 468241, "members_14": 465577, "members_15": 465578, "members_16": 465579, "members_17": 465580, "members_18": 465581, "members_19": 465582, "members_20": 465583, "members_21": 465584, "members_22": 465585, "members_23": 465586, "members_24": 465587}, - }, - */ + { + Name: "KT1CRyVS5t8JSoj3ADXwt422vSm7uRxubyWQ_test_list", + Type: `{"prim":"storage","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"nat","annots":["%adminsMax"]},{"prim":"nat","annots":["%memberRequestMax"]}]},{"prim":"nat","annots":["%organizationMax"]}],"annots":["%limits"]},{"prim":"address","annots":["%nftAddress"]}]},{"prim":"list","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"set","args":[{"prim":"address"}],"annots":["%admins"]},{"prim":"string","annots":["%business"]}]},{"prim":"option","args":[{"prim":"address"}],"annots":["%fundingAddress"]},{"prim":"string","annots":["%ipfsNftUrl"]}]},{"prim":"pair","args":[{"prim":"string","annots":["%logoUrl"]},{"prim":"set","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"string","annots":["%contactId"]},{"prim":"string","annots":["%contactIdProvider"]}]},{"prim":"string","annots":["%orgName"]},{"prim":"string","annots":["%reason"]}],"annots":["%joinRequest"]},{"prim":"address","annots":["%user"]}]}],"annots":["%memberRequests"]}]},{"prim":"big_map","args":[{"prim":"address"},{"prim":"unit"}],"annots":["%members"]},{"prim":"string","annots":["%name"]}]},{"prim":"string","annots":["%siteUrl"]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"unit","annots":["%active"]},{"prim":"unit","annots":["%frozen"]}]},{"prim":"unit","annots":["%pendingApproval"]}],"annots":["%status"]}]}],"annots":["%organizations"]},{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"set","args":[{"prim":"address"}],"annots":["%admins"]},{"prim":"string","annots":["%business"]}]},{"prim":"option","args":[{"prim":"address"}],"annots":["%fundingAddress"]},{"prim":"string","annots":["%ipfsNftUrl"]}]},{"prim":"pair","args":[{"prim":"string","annots":["%logoUrl"]},{"prim":"set","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"string","annots":["%contactId"]},{"prim":"string","annots":["%contactIdProvider"]}]},{"prim":"string","annots":["%orgName"]},{"prim":"string","annots":["%reason"]}],"annots":["%joinRequest"]},{"prim":"address","annots":["%user"]}]}],"annots":["%memberRequests"]}]},{"prim":"big_map","args":[{"prim":"address"},{"prim":"unit"}],"annots":["%members"]},{"prim":"string","annots":["%name"]}]},{"prim":"string","annots":["%siteUrl"]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"unit","annots":["%active"]},{"prim":"unit","annots":["%frozen"]}]},{"prim":"unit","annots":["%pendingApproval"]}],"annots":["%status"]}],"annots":["%tezosOrganization"]}]}]}`, + Value: `{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"int":"50"},{"int":"50"}]},{"int":"1000"}]},{"string":"KT1VeeSjhKRjr6qbFiGWjiuHXTxbfMqHiZR8"}]},[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1cBifXeAimEXewxjuisUUZ6PwvdRRLNpAB"}],{"string":"Block Born is a tournament platform for gamers on Tezos and a content management system for game studios."}]},{"prim":"Some","args":[{"string":"tz1cBifXeAimEXewxjuisUUZ6PwvdRRLNpAB"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://storage.googleapis.com/block-born-prod/assets/Logo%40500x500.png"},[]]},{"int":"488518"},{"string":"Block Born"}]},{"string":"https://blockborn.gg/"},{"prim":"Right","args":[{"prim":"Unit"}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1d473kD8ctsHnJVtmoLAGW1wBZzYzMuU7n"}],{"string":"Decentralized lending and borrowing platform on Tezos blockchain. Lending pools guided by an automated interest rate market maker "}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":""},[]]},{"int":"483020"},{"string":"TezFin (Tezos Finance)"}]},{"string":"https://tezos.finance"},{"prim":"Right","args":[{"prim":"Unit"}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1QssZXqqGznmaj5mEK53mtbjsnaasfo1Nf"}],{"string":"The Plenty team is building an all-in-one decentralized platform on Tezos. Plenty DEX allows swaps on uncorrelated assets, low-cost trades on tightly correlated assets, and features a bridge from Ethereum and Polygon to Tezos. Plenty manages Ctez, a synth"}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://uploads-ssl.webflow.com/6307b856943c0f1358714dab/6307be3a634c24b505d20cb3_plentyIcon.svg"},[]]},{"int":"478686"},{"string":"Plenty Labs"}]},{"string":""},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}],{"string":"BatBits is a colony of cute Batsies, living in a cave on Tezos ecosystem! It's a community driven project which tries to give back to the community and to support the artists!"}]},{"prim":"Some","args":[{"string":"tz1bZ7eUmhbV99wy3qZxJXrTAVj3LARQq791"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://twitter.com/batbitsofficial/photo"},[]]},{"int":"471429"},{"string":"BatBits"}]},{"string":"https://batbits.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1UZZnrre9H7KzAufFVm7ubuJh5cCfjGwam"},{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}],{"string":"Chainborn is a TCG for existing pfp collections on Tezos. You can summon a Hero from one of your existing NFT pfp collections and start battling other Heroes for fame and glory. By engaging in battles a Hero gains experience to become stronger!"}]},{"prim":"Some","args":[{"string":"tz1Tj4ZaQSnQiUEom25v8qb573XFwT32obhQ"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://chainborn.xyz/static/media/logo-big-color.8c8a0cec.webp"},[]]},{"int":"471422"},{"string":"Chainborn"}]},{"string":"https://chainborn.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}],{"string":"This project is all about charity and helping those in need - may it be animals or humans!"}]},{"prim":"Some","args":[{"string":"tz1PLQv5F7qvzjRZKrgB8Nt9vxifqigdvM18"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://cdn.discordapp.com/attachments/952344765939208244/1116808941091950642/IMG_20230503_124736.jpg"},[]]},{"int":"471416"},{"string":"First Rain Charity"}]},{"string":"https://objkt.com/profile/firstraincharity/collections"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}],{"string":"I'm a hobby photographer who also likes to write. I try to combine these two passions with my NFTs. At the same time I try to bring some awereness of mental health and that each and everyone of us is beautiful and important."}]},{"prim":"Some","args":[{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://cdn.discordapp.com/attachments/952344765939208244/1116808523041488896/Profilbild.jpg"},[]]},{"int":"471403"},{"string":"First Rain"}]},{"string":"https://objkt.com/profile/firstrain/collections"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1MY1BKQd2QFDDsjCpkKi6vVDxPKycGiJA3"}],{"string":"IP and World Building"}]},{"prim":"Some","args":[{"string":"tz1MY1BKQd2QFDDsjCpkKi6vVDxPKycGiJA3"}]},{"string":""}]},{"prim":"Pair","args":[{"string":""},[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"string":"@_FirstRain_"},{"string":"TWITTER"}]},{"string":"Vessels"},{"string":"I'm your number one fan!"}]},{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}]}]]},{"int":"471259"},{"string":"Vessels"}]},{"string":"https://vesselsproject.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1PaCaFf6cf6tL8vkVE71WELKuYXyoSG5C6"},{"string":"tz1i35AGt1HS1FKN1Mqw4DuCMYHvWAHnUT3H"}],{"string":"Creation, Collection, Exhibition and Education of Blockchain/Crypto/Generative Art"}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://images.squarespace-cdn.com/content/v1/621e19e02a75bc5e24ce9a20/377b2c63-db90-4369-8b0a-3e47a5f2f6f4/Frame.png?format=1500w"},[]]},{"int":"471053"},{"string":"Volume DAO"}]},{"string":"https://www.volumedao.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1ZW6AvZCjSvz5xARo2L9QVKq3ofHU6Z6Hc"}],{"string":"Human-readable names on Tezos"}]},{"prim":"Some","args":[{"string":"KT1W56o8dK5En5hM46VsD1zKtgpqWPhs3bLh"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://app.tezos.domains/assets/img/logo_notext.svg"},[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"string":"@_FirstRain_"},{"string":"TWITTER"}]},{"string":"Tezos Domains"},{"string":"Because I'm using tez domains myself and I think it's a good thing. =)"}]},{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}]}]]},{"int":"470833"},{"string":"Tezos Domains"}]},{"string":"https://tezos.domains"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz29DrxbfkcfpUveVGsmhgvWqjgkVtGXbQyP"}],{"string":"An artistic expansion to the Ottez project. 5993 evolved Ottez are now on Tezos."}]},{"prim":"Some","args":[{"string":"tz29DrxbfkcfpUveVGsmhgvWqjgkVtGXbQyP"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://assets.objkt.media/file/assets-002/collection-logos/ottez_evolution.png"},[]]},{"int":"470466"},{"string":"Ottez Evolution"}]},{"string":"https://www.ottez.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz29DrxbfkcfpUveVGsmhgvWqjgkVtGXbQyP"}],{"string":"Humans are gone, Ottez have moved in. 4,007 generative artworks on the Tezos blockchain."}]},{"prim":"Some","args":[{"string":"tz29DrxbfkcfpUveVGsmhgvWqjgkVtGXbQyP"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://assets.objkt.media/file/assets-002/collection-logos/ottez.png"},[]]},{"int":"470460"},{"string":"Ottez"}]},{"string":"https://www.ottez.xyz/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz2HZsWyZvQfq8whWk3N2oKozaeFBNoPxP9D"}],{"string":"TZ APAC Pte. Ltd. (\"TZ APAC\") is the leading Asia-based blockchain adoption entity supporting the Tezos ecosystem. "}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":""},[]]},{"int":"469614"},{"string":"TZ APAC "}]},{"string":""},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1RZN17j7FuPtDpGpXKgMXbx57WEhpZGF6B"}],{"string":"We are a community driven project and we thrive to be a neutral hub for the tezos community to discuss everything tezos. We wanna learn together, hang out together and have some fun together."}]},{"prim":"Some","args":[{"string":"tz1RZN17j7FuPtDpGpXKgMXbx57WEhpZGF6B"}]},{"string":"Didn't get the member card yet but claimed it already =)"}]},{"prim":"Pair","args":[{"string":"https://cdn.discordapp.com/attachments/973238864342839357/1116093223119618220/ron_west_TTC_logo_01.jpg"},[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"string":"@webidente"},{"string":"TWITTER"}]},{"string":"TheTezosCommunity"},{"string":"most open and inclusive community"}]},{"string":"tz2K1rDmszPuzVQYUcyDFxeSm7ZEJdDvhXx4"}]}]]},{"int":"469228"},{"string":"TheTezosCommunity"}]},{"string":"https://zealy.io/c/thetezoscommunity/questboard"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1ZMeJMXynXg5v8DaciSZjz3hmsxqZjaEnu"}],{"string":"Tezos core developer"}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://www.dailambda.jp/img/triangle.png"},[]]},{"int":"468241"},{"string":"DaiLambda, Inc."}]},{"string":"https://dailamba.jp"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1LRHZKL44bCSV1pKmwTyh9ghiSCc3LyJoA"}],{"string":"vDL Digital Ventures GmbH"}]},{"prim":"Some","args":[{"string":"tz1g8vkmcde6sWKaG2NN9WKzCkDM6Rziq194"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://avatars.githubusercontent.com/u/104824659?s=200&v=4"},[]]},{"int":"465577"},{"string":"StakeNow"}]},{"string":"https://vdl.digital/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1STaURypfCdS7FRkK5csHhi8eqdSs8CcPt"},{"string":"tz1XtjZTzEM6EQ3TnUPUQviCD6WfcsZRHXbj"},{"string":"tz1g6JRCpsEnD2BLiAzPNK3GBD1fKicV9rCx"}],{"string":"Community powered art platform on the Tezos Blockchain"}]},{"prim":"Some","args":[{"string":"KT1J9FYz29RBQi1oGLw8uXyACrzXzV1dHuvb"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://ipfs.io/ipfs/QmdNYgc5crenyLGViykvcnW3sAfC8XE59fWyv7Q7mTTBGH"},[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"string":"@_FirstRain_"},{"string":"TWITTER"}]},{"string":"Teia DAO LLC"},{"string":"Because I'm your number 1 fan!"}]},{"string":"tz1a95jRX4Z9WG7iHbPXZoQMLB9qN6wJvp4W"}]}]]},{"int":"465578"},{"string":"Teia DAO LLC"}]},{"string":"https://teia.art"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1QoiKkkjzNrqGEi7URiWr9nH26xbyJqvf3"}],{"string":"Functori is a R&D company created by experienced engineers in programming languages (particularly OCaml and Rust), formal verification (automated reasoning, model checking), and blockchain technology (core, smart contracts and applications development)."}]},{"prim":"Some","args":[{"string":"tz1QoiKkkjzNrqGEi7URiWr9nH26xbyJqvf3"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://www.functori.com/assets/img/brand/functori_logotype_square.svg"},[]]},{"int":"465579"},{"string":"Functori"}]},{"string":"https://www.functori.com/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1LB2f981WfmnXhz42hxybpabx1C7Js8f2y"},{"string":"tz1h5GajcQWq4ybaWuwSiYrR5PvmUxndm8T8"}],{"string":"Tezos core protocol and adoption"}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://bit.ly/MarigolddevLogo"},[]]},{"int":"465580"},{"string":"Marigold"}]},{"string":"https://www.marigold.dev/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1iAuFqKbnrK6p18di4CEdVCZgB7X5tS4hX"}],{"string":"News, projects, artists and events ; the only online media to gather the French Tezos community"}]},{"prim":"Some","args":[{"string":"tz1iAuFqKbnrK6p18di4CEdVCZgB7X5tS4hX"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://pbs.twimg.com/profile_images/1567279396590870529/tS9DP6ax_400x400.jpg"},[]]},{"int":"465581"},{"string":"Tezos France"}]},{"string":"https://tezosfrance.substack.com"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1iAuFqKbnrK6p18di4CEdVCZgB7X5tS4hX"}],{"string":"PyratzLabs is the first Startup Studio fully specialized in Web3. We take innovative ideas from concept all the way through to launch, using our expertise in market leading Technology, Funding & Advisory."}]},{"prim":"Some","args":[{"string":"tz1iAuFqKbnrK6p18di4CEdVCZgB7X5tS4hX"}]},{"string":""}]},{"prim":"Pair","args":[{"string":"https://uploads-ssl.webflow.com/63808b3b41be273d52703f26/63808b3b41be27dd8e703f60_logo-piratz-lab.svg"},[]]},{"int":"465582"},{"string":"Pyratz Labs"}]},{"string":"https://pyratzlabs.com"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1KmELgMMvCGamLRyMNr9qDoNaPBvDDBQux"}],{"string":"Tezos India, a Bengaluru-based startup funded by Tezos Foundation, promotes blockchain adoption in India. We tackle barriers to adoption by focusing on developer adoption, education, training, and ecosystem development. Advancing innovation in the Indian blockchain space is their goal."}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://images.yourstory.com/cs/images/companies/zN5FSNQj400x4001-1646805134262.jpg"},[]]},{"int":"465583"},{"string":"TZ INDIA PVT. LTD"}]},{"string":"https://tezosindia.org.in/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1QVzFA321GhZEBpvR7tEV2Tzd95wCQ74UD"}],{"string":"Research, development and key infrastructure support for the Tezos community."}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://www.oxheadalpha.com/images/oxheadalpha.svg"},[]]},{"int":"465584"},{"string":"Oxhead Alpha"}]},{"string":"https://www.oxheadalpha.com/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1b1sH2FmuVazszFdkUn8GvfvZpNxSa7C8J"}],{"string":"alterHEN is a collective of artists exploring the cultural economy of NFT's, with a mission to present these transformative new models to the art world as accessible, art-focused and exciting opportunities that will benefit museums, curators, festivals and artists."}]},{"prim":"None"},{"string":""}]},{"prim":"Pair","args":[{"string":"https://pbs.twimg.com/profile_images/1438787875169054725/nQW0PNQp.jpg"},[]]},{"int":"465585"},{"string":"alterHEN"}]},{"string":"https://alterhen.art/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]},{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1SRqikWtR2KNpugCApreA9QeZuqh8swQMa"}],{"string":"The Tezos Commons Foundation empowers the community to be the architects through bootstrapping local communities, communications, promotion, education, funding open source initiatives and advocacy."}]},{"prim":"None"},{"string":"ipfs://QmZKSrCZwp9XmZQ2GiSdZ73RWpEGcrocAAiYU7CzZi3gBj"}]},{"prim":"Pair","args":[{"string":"https://gateway.pinata.cloud/ipfs/QmZKSrCZwp9XmZQ2GiSdZ73RWpEGcrocAAiYU7CzZi3gBj"},[]]},{"int":"465586"},{"string":"Tezos Commons"}]},{"string":"https://tezoscommons.org/"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]}],{"prim":"Pair","args":[{"prim":"Pair","args":[{"prim":"Pair","args":[[{"string":"tz1h5GajcQWq4ybaWuwSiYrR5PvmUxndm8T8"}],{"string":"Save the planet"}]},{"prim":"None"},{"string":"ipfs://QmdHrYEHaaDQBXVF7vZJXudLgeMaeoiPE4UuGapMNe25ej"}]},{"prim":"Pair","args":[{"string":"https://bit.ly/TZIMAGE"},[]]},{"int":"465587"},{"string":"TEZOS"}]},{"string":"https://tezos.com"},{"prim":"Left","args":[{"prim":"Left","args":[{"prim":"Unit"}]}]}]}`, + Expect: map[string]int64{"members": 488518, "members_0": 483020, "members_1": 478686, "members_2": 471429, "members_3": 471422, "members_4": 471416, "members_5": 471403, "members_6": 471259, "members_7": 471053, "members_8": 470833, "members_9": 470466, "members_10": 470460, "members_11": 469614, "members_12": 469228, "members_13": 468241, "members_14": 465577, "members_15": 465578, "members_16": 465579, "members_17": 465580, "members_18": 465581, "members_19": 465582, "members_20": 465583, "members_21": 465584, "members_22": 465585, "members_23": 465586, "members_24": 465587}, + }, // { // Name: "", // Type: ``, @@ -520,10 +518,22 @@ func detectBigmapTypes(p Prim) map[string]Type { if n == "" { n = "bigmap_" + strconv.Itoa(i) } - if _, ok := named[n]; ok { - n += "_" + strconv.Itoa(i) + uniqueName := func(n string) string { + if _, ok := named[n]; !ok && n != "" { + return n + } + if n == "" { + n = "bigmap" + } + for i := 0; ; i++ { + name := n + "_" + strconv.Itoa(i) + if _, ok := named[name]; ok { + continue + } + return name + } } - named[n] = NewType(bigmaps[i]) + named[uniqueName(n)] = NewType(bigmaps[i]) } return named }