package block import ( "strconv" "gno.land/p/demo/tokens/grc1155" "gno.land/p/nt/ufmt" "gno.land/r/akkadia/admin" ) func getAdmin() address { return admin.GetAdmin() } func assertIsAdmin(address address) { if address != getAdmin() { panic("admin access required") } } func parseAddress(str string) address { addr := address(str) if !addr.IsValid() { panic("invalid address: " + str) } return addr } func blockIDToKey(blockID uint32) string { s := strconv.FormatUint(uint64(blockID), 10) // Pad to 10 digits for proper AVL tree sorting for len(s) < 10 { s = "0" + s } return s } func blockIDToString(blockID uint32) string { return ufmt.Sprintf("%d", blockID) } func stringToBlockID(blockIDStr string) uint32 { value, err := strconv.ParseUint(blockIDStr, 10, 32) if err != nil { panic("invalid blockID: " + err.Error()) } return uint32(value) } func blockIDToTokenID(blockID uint32) grc1155.TokenID { return grc1155.TokenID(blockIDToString(blockID)) }